Advertisement
Guest User

Untitled

a guest
Jul 30th, 2011
835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.22 KB | None | 0 0
  1. /*
  2. Notka autora - usuniesz, tracisz prawo do wystawiania/korzystania z tego includa
  3. MultiLanguageMessage by RPS (aka Diler)
  4. Last update: 29.07.2011
  5.  
  6. ========================================
  7.     Wyprodukowano dla GTACenter.Info
  8. ========================================
  9.  
  10. native LanguageMessage(playerid, color, ...);
  11. native LanguageMessageToAll(color, ...);
  12. native LanguageTextDrawMessage(playerid, Text:ID, ...);
  13. native LanguageGameTextForPlayer(playerid, styleid, czas, ...);
  14. native LanguageGameTextForAll(styleid, czas, ...);
  15. native LanguageDialogForPlayer(playerid, dialogid, style, ...);
  16. */
  17.  
  18. #include <a_samp>
  19.  
  20. #define LANGUAGE_POLISH 0
  21. #define LANGUAGE_ENGLISH 1
  22. #define LANGUAGE_DEFAULT 2
  23. //An example of another:
  24. //#define LANGUAGE_NAME 3
  25.  
  26. #define LANGUAGE_SIZE 128
  27. #define LANGUAGE_DIALOG 100 // DIALOG ID
  28. #define LANGUAGE_INFO "Polski\nEnglish\nInny" // Next add acc. pattern "\nLanguage"
  29.  
  30. #define ChooseLanguage(%0) ShowPlayerDialog(%0, LANGUAGE_DIALOG, DIALOG_STYLE_LIST, "Choose language", LANGUAGE_INFO, "OK", "") // Function showing the language selection dialog
  31.  
  32. stock LANGUAGE_ODR(playerid, dialogid, response, listitem) // Use this in OnDialogResponse
  33. {
  34.     if(dialogid == LANGUAGE_DIALOG && response)
  35.         SetPVarInt(playerid, "Language", listitem);
  36.     else if(dialogid == LANGUAGE_DIALOG && !response)
  37.         SetPVarInt(playerid, "Language", 0);
  38. }
  39.  
  40. stock LanguageMessage(playerid, color, ...)
  41. {
  42.     new msg[LANGUAGE_SIZE];
  43.     new args = numargs();
  44.     new language = GetPVarInt(playerid, "Language");
  45.    
  46.     for(new i=2; i < args; i++)
  47.     {
  48.         if(language == i-2)
  49.         {
  50.             for(new chr; chr < sizeof msg; chr++)
  51.                 msg[chr] = getarg((i+1+language), chr);
  52.                
  53.             if(msg[0] == '\0')
  54.                 SendClientMessage(playerid, color, "Error in script: LanguageMessage doesn't work, report this problem to server admin.");
  55.             else
  56.                 SendClientMessage(playerid, color, msg);
  57.         }
  58.     }
  59.     return language;
  60. }
  61.  
  62. stock LanguageMessageToAll(color, ...)
  63. {
  64.     new msg[LANGUAGE_SIZE];
  65.     new args = numargs();
  66.     new language;
  67.    
  68.     for(new i, g = GetMaxPlayers(); i < g; i++)
  69.     {
  70.         if(IsPlayerConnected(i))
  71.         {
  72.             language = GetPVarInt(i, "Language");
  73.             for(new a=1; a < args; a++)
  74.             {
  75.                 if(language == a-1)
  76.                 {
  77.                     for(new chr; chr < sizeof msg; chr++)
  78.                         msg[chr] = getarg((a+1+language), chr);
  79.                    
  80.                     if(msg[0] == '\0')
  81.                         SendClientMessage(i, color, "Error in script: LanguageMessageToAll doesn't work, report this problem to server admin.");
  82.                     else
  83.                         SendClientMessage(i, color, msg);
  84.                 }
  85.             }
  86.         }
  87.     }  
  88.     return 1;
  89. }
  90.  
  91. stock LanguageTextDrawMessage(playerid, Text:ID, ...)
  92. {
  93.     new msg[LANGUAGE_SIZE];
  94.     new args = numargs();
  95.     new language = GetPVarInt(playerid, "Language");
  96.    
  97.     for(new i=2; i < args; i++)
  98.     {
  99.         if(language == i-2)
  100.         {
  101.             for(new chr; chr < sizeof msg; chr++)
  102.                 msg[chr] = getarg((i+1+language), chr);
  103.                
  104.             if(msg[0] == '\0')
  105.                 TextDrawSetString(ID, "Error in script: LanguageTextDrawMessage doesn't work, report this problem to server admin.");
  106.             else
  107.                 TextDrawSetString(ID, msg);
  108.         }
  109.     }
  110.     return language;
  111. }
  112.  
  113. stock LanguageGameTextForPlayer(playerid, styleid, czas, ...)
  114. {
  115.     new msg[LANGUAGE_SIZE];
  116.     new args = numargs();
  117.     new language = GetPVarInt(playerid, "Language");
  118.    
  119.     for(new i=3; i < args; i++)
  120.     {
  121.         if(language == i-3)
  122.         {
  123.             for(new chr; chr < sizeof msg; chr++)
  124.                 msg[chr] = getarg((i+1+language), chr);
  125.                
  126.             if(msg[0] == '\0')
  127.                 GameTextForPlayer(playerid, "Error in script: LanguageGameTextForPlayer doesn't work, report this problem to server admin.", czas, styleid);
  128.             else
  129.                 GameTextForPlayer(playerid, msg, czas, styleid);
  130.         }
  131.     }
  132.     return language;
  133. }
  134.  
  135. stock LanguageGameTextForAll(styleid, czas, ...)
  136. {
  137.     new msg[LANGUAGE_SIZE];
  138.     new args = numargs();
  139.     new language;
  140.    
  141.     for(new a, g = GetMaxPlayers(); a < g; a++)
  142.     {
  143.         if(IsPlayerConnected(a))
  144.         {
  145.             language = GetPVarInt(a, "Language");
  146.             for(new i=2; i < args; i++)
  147.             {
  148.                 if(language == i-2)
  149.                 {
  150.                     for(new chr; chr < sizeof msg; chr++)
  151.                         msg[chr] = getarg((i+1+language), chr);
  152.                        
  153.                     if(msg[0] == '\0')
  154.                         GameTextForPlayer(a, "Error in script: LanguageGameTextForAll doesn't work, report this problem to server admin.", czas, styleid);
  155.                     else
  156.                         GameTextForPlayer(a, msg, czas, styleid);
  157.                 }
  158.             }
  159.         }
  160.     }
  161.     return language;
  162. }
  163.  
  164. stock LanguageDialogForPlayer(playerid, dialogid, style, ...)
  165. {
  166.     new msg[4][LANGUAGE_SIZE];
  167.     new largs = ((numargs()-3) /5);
  168.     new language = GetPVarInt(playerid, "Language");
  169.     new last = 7;
  170.    
  171.     if(language)
  172.         last += (language * 5);
  173.    
  174.     for(new i=0; i < largs; i++)
  175.     {
  176.         if(language == i)
  177.         {
  178.             for(new chr; chr < sizeof msg[]; chr++)
  179.             {
  180.                 msg[0][chr] = getarg((last - 3), chr);
  181.                 msg[1][chr] = getarg((last - 2), chr);
  182.                 msg[2][chr] = getarg((last - 1), chr);
  183.                 msg[3][chr] = getarg((last), chr);
  184.             }
  185.            
  186.             if((msg[0][0] == '\0') || (msg[1][0] == '\0') || (msg[2][0] == '\0'))
  187.                 ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_MSGBOX, "Error", "Error in script: LanguageDialogForPlayer doesn't work, report this problem to server admin.", "OK", "");
  188.             else
  189.                 ShowPlayerDialog(playerid, dialogid, style, msg[0], msg[1], msg[2], msg[3]);
  190.         }
  191.     }
  192.     return language;
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement