Advertisement
Guest User

[FilterScript] Spray Tag System 0.2b - (MySQL R38)

a guest
Mar 10th, 2014
637
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 31.96 KB | None | 0 0
  1. /*
  2.     Spray Tag System criado por NurbWill;
  3.    
  4.    
  5.     Topico: http://forum.sa-mp.com/showthread.php?t=499642
  6.     Versão: 0.2b (MySQL)
  7.     Skype: Nurb.Will
  8.    
  9.     Thanks
  10.         Zeex for ZCMD
  11.         Incognito for Streamer
  12.         BlueG for MySQL
  13. */
  14.  
  15.  
  16. #include    <a_samp>
  17. #include    <a_mysql>
  18. #include    <streamer>
  19. #include    <zcmd>
  20.  
  21. /*
  22.     ##############################################################
  23.     ######################## DEFINE'S ############################
  24.     ##############################################################
  25. */
  26.  
  27. // ######### Config's #########
  28. #define     SQL_HOST                    "localhost"             // Mysql Host
  29. #define     SQL_DB                      "samp-evolution"        // Nome do Banco de Dados
  30. #define     SQL_USER                    "root"                  // Nome do usuário do MySQL
  31. #define     SQL_PASS                    ""                      // Senha do usuário do MySQL
  32.  
  33. #define     MAX_PLAYERS_TAGS            (5)                     // Maximo de spray tags criado por player.
  34. #define     SPRAY_TAG_TIMER             (4)                     // Segundos para criar a spray tag.
  35. #define     SPRAY_TAG_OBJECT            (19353)                 // ID do objeto.
  36. #define     SPRAY_TAG_OBJECT_DISTANCE   (200.0)                 // Distância em que pode ser visto a spray tag
  37.  
  38. #define     SPRAYTAG_THREAD_LOAD        (1)
  39. #define     SPRAYTAG_THREAD_SAVE        (2)
  40.  
  41. // ######### Custom Dialog's Type #########
  42. #define     TYPE_LIST_MENU              (0)
  43. #define     TYPE_LIST_EDIT              (1)
  44. #define     TYPE_LIST_CREATE            (2)
  45. #define     TYPE_LIST_TAGS              (3)
  46. #define     TYPE_LIST_TAGS_DELETE       (4)
  47. #define     TYPE_LIST_TAGS_CREATE       (5)
  48. #define     TYPE_LIST_TAGS_FIND         (6)
  49.  
  50. // ######### Dialog's ID #########
  51. #define     SPRAYTAG_MENU               (9800)
  52. #define     SPRAYTAG_DELETE             (9801)
  53. #define     SPRAYTAG_CREATE             (9802)
  54. #define     SPRAYTAG_CREATE_MAIN        (9803)
  55. #define     SPRAYTAG_CREATE_TEXT        (9804)
  56. #define     SPRAYTAG_CREATE_FONT        (9805)
  57. #define     SPRAYTAG_CREATE_SIZE        (9806)
  58. #define     SPRAYTAG_CREATE_COLOR       (9807)
  59. #define     SPRAYTAG_CREATE_FINISH      (9808)
  60. #define     SPRAYTAG_EDIT_MAIN          (9809)
  61. #define     SPRAYTAG_EDIT_TEXT          (9810)
  62. #define     SPRAYTAG_EDIT_FONT          (9811)
  63. #define     SPRAYTAG_EDIT_SIZE          (9812)
  64. #define     SPRAYTAG_EDIT_COLOR         (9813)
  65. #define     SPRAYTAG_EDIT_FINISH        (9814)
  66. #define     SPRAYTAG_EDIT_LIST          (9815)
  67. #define     SPRAYTAG_FIND               (9816)
  68. #define     SPRAYTAG_DIALOG_RETURN      (9817)
  69.  
  70. /*
  71.     ##############################################################
  72.     ########################## VAR'S #############################
  73.     ##############################################################
  74. */
  75.  
  76. enum SPRAYTAG_DATA
  77. {
  78.     _spSQLID,
  79.     _spObject,
  80.     _spText[50],
  81.     _spOwned[MAX_PLAYER_NAME],
  82.     _spFontColor,
  83.     _spBold,
  84.     _spFontSize,
  85.     _spFont[50],
  86.     Float:_spPosX,
  87.     Float:_spPosY,
  88.     Float:_spPosZ,
  89.     Float:_spPosRX,
  90.     Float:_spPosRY,
  91.     Float:_spPosRZ,
  92.     _spVW,
  93.     _spInt
  94. }
  95.  
  96. new
  97.     spraytag_mysql,
  98.     SprayTags[MAX_PLAYERS][MAX_PLAYERS_TAGS][SPRAYTAG_DATA],
  99.     spraytag_object[MAX_PLAYERS],
  100.     spraytag_timer[MAX_PLAYERS],
  101.     spraytag_timer_left[MAX_PLAYERS],
  102.     spraytag_find[MAX_PLAYERS],
  103.     spraytag_slot[MAX_PLAYERS],
  104.     spraytag_text[MAX_PLAYERS],
  105.     spraytag_size[MAX_PLAYERS],
  106.     spraytag_bold[MAX_PLAYERS],
  107.     spraytag_color[MAX_PLAYERS],
  108.     spraytag_font[MAX_PLAYERS],
  109.     Float:spraytag_positions[MAX_PLAYERS][6]
  110. ;
  111.  
  112. /*
  113.     ##############################################################
  114.     ######################### PUBLIC'S ###########################
  115.     ##############################################################
  116. */
  117.  
  118.  
  119. public OnFilterScriptInit()
  120. {
  121.     print("\n--------------------------------------");
  122.     print(" Spray Tag System [MySQL]| Versão: 0.2b - By: Nurb Will;");
  123.     print("--------------------------------------\n");
  124.     spraytag_mysql = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  125.     return 1;
  126. }
  127.  
  128. public OnPlayerConnect(playerid)
  129. {
  130.     new
  131.         szName[MAX_PLAYER_NAME],
  132.         szQuery[80]
  133.     ;
  134.     printf("[Spray Tag's] Carregando as spray tags de %s.", szName);
  135.     GetPlayerName(playerid, szName, MAX_PLAYER_NAME);
  136.     format(szQuery, sizeof szQuery, "SELECT * FROM `spray_tags` WHERE owner = '%s'", szName);
  137.     mysql_function_query(spraytag_mysql, szQuery, true, "SprayTag_Load", "ii", 0, SPRAYTAG_THREAD_LOAD);
  138.     return 1;
  139. }
  140.  
  141. forward SprayTag_Dialog(iPlayerID, iType);
  142. public SprayTag_Dialog(iPlayerID, iType)
  143. {
  144.     new
  145.         szDialog[500],
  146.         szText[50],
  147.         szFont[50],
  148.         szBold[4],
  149.         szColor[30]
  150.     ;
  151.    
  152.     switch(iType)
  153.     {
  154.         case TYPE_LIST_MENU:
  155.         {
  156.             ShowPlayerDialog(iPlayerID, SPRAYTAG_MENU, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Menu", "Criar spray tag\nEditar spray tag\nDeletar spray tag\nRastrear tag's", "Selecionar", "Sair");
  157.         }
  158.         case TYPE_LIST_CREATE:
  159.         {
  160.             switch(spraytag_bold[iPlayerID])
  161.             {
  162.                 case 0: szBold = "Não";
  163.                 case 1: szBold = "Sim";
  164.             }
  165.             switch(spraytag_color[iPlayerID])
  166.             {
  167.                 case -65536: szColor = "{FF0000}Vermelho";
  168.                 case -16468988: szColor = "{04B404}Verde";
  169.                 case -16730675: szColor = "{00B5CD}Azul Claro";
  170.                 case -256: szColor = "{FFFF00}Amarelo";
  171.                 case -16776961: szColor = "{0000FF}Azul";
  172.                 case -8092540: szColor = "{848484}Cinza";
  173.                 case -65281: szColor = "{FF00FF}Rosa";
  174.                 case -1: szColor = "{FFFFFF}Branco";
  175.             }
  176.            
  177.             format(szText, 50, spraytag_text[iPlayerID]);
  178.             format(szFont, 50, spraytag_font[iPlayerID]);
  179.            
  180.             format(szDialog, sizeof szDialog, "\
  181.                 {F7EC6F}Texto: %s\n\
  182.                 {F7EC6F}Fonte: %s\n\
  183.                 {F7EC6F}Tamanho: %d\n\
  184.                 {F7EC6F}Cor: %s\n\
  185.                 {F7EC6F}Negrito: %s\n\
  186.                 {FFB957}Criar Tag",
  187.                 szText,
  188.                 szFont,
  189.                 spraytag_size[iPlayerID],
  190.                 szColor,
  191.                 szBold
  192.             );
  193.             ShowPlayerDialog(iPlayerID, SPRAYTAG_CREATE_MAIN, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Customização", szDialog, "Selecionar", "Voltar");
  194.         }
  195.         case TYPE_LIST_EDIT:
  196.         {
  197.             switch(spraytag_bold[iPlayerID])
  198.             {
  199.                 case 0: szBold = "Não";
  200.                 case 1: szBold = "Sim";
  201.             }
  202.             switch(spraytag_color[iPlayerID])
  203.             {
  204.                 case -65536: szColor = "{FF0000}Vermelho";
  205.                 case -16468988: szColor = "{04B404}Verde";
  206.                 case -16730675: szColor = "{00B5CD}Azul Claro";
  207.                 case -256: szColor = "{FFFF00}Amarelo";
  208.                 case -16776961: szColor = "{0000FF}Azul";
  209.                 case -8092540: szColor = "{848484}Cinza";
  210.                 case -65281: szColor = "{FF00FF}Rosa";
  211.                 case -1: szColor = "{FFFFFF}Branco";
  212.             }
  213.  
  214.             format(szDialog, sizeof szDialog, "\
  215.                 {F7EC6F}Texto: %s\n\
  216.                 {F7EC6F}Fonte: %s\n\
  217.                 {F7EC6F}Tamanho: %d\n\
  218.                 {F7EC6F}Cor: %s\n\
  219.                 {F7EC6F}Negrito: %s\n\
  220.                 {1EAAD9}Editar Tag",
  221.                 spraytag_text[iPlayerID],
  222.                 spraytag_font[iPlayerID],
  223.                 spraytag_size[iPlayerID],
  224.                 szColor,
  225.                 szBold
  226.             );
  227.             ShowPlayerDialog(iPlayerID, SPRAYTAG_EDIT_LIST, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Customização", szDialog, "Selecionar", "Voltar");
  228.         }
  229.         case TYPE_LIST_TAGS:
  230.         {
  231.             new
  232.                 szName[MAX_PLAYER_NAME]
  233.             ;
  234.                    
  235.             GetPlayerName(iPlayerID, szName, sizeof szName);
  236.             for(new i; i < MAX_PLAYERS_TAGS; i++)
  237.             {
  238.                 new szTag[24];
  239.                 format(szTag, sizeof szTag, "{F7EC6F}Livre");
  240.                 if(strfind(SprayTags[iPlayerID][i][_spOwned], szName, true) != -1)
  241.                 {
  242.                     format(szTag, sizeof(szTag), "{F7EC6F}Spray Tag #%i", i);
  243.                 }
  244.                 format(szDialog, sizeof(szDialog), "%s%s\n", szDialog, szTag);
  245.             }
  246.            
  247.             ShowPlayerDialog(iPlayerID, SPRAYTAG_EDIT_MAIN, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Editar suas tag's", szDialog, "Selecionar", "Voltar");
  248.         }
  249.         case TYPE_LIST_TAGS_DELETE:
  250.         {
  251.             new
  252.                 szName[MAX_PLAYER_NAME]
  253.             ;
  254.                    
  255.             GetPlayerName(iPlayerID, szName, sizeof szName);
  256.                    
  257.             for(new i; i < MAX_PLAYERS_TAGS; i++)
  258.             {
  259.                 new szTag[24];
  260.                 format(szTag, sizeof szTag, "{F7EC6F}Livre");
  261.                 if(strfind(SprayTags[iPlayerID][i][_spOwned], szName, true) != -1)
  262.                 {
  263.                     format(szTag, sizeof(szTag), "{F7EC6F}Spray Tag #%i", i);
  264.                 }
  265.                 format(szDialog, sizeof(szDialog), "%s%s\n", szDialog, szTag);
  266.             }
  267.             ShowPlayerDialog(iPlayerID, SPRAYTAG_DELETE, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Deletar suas tag's", szDialog, "Selecionar", "Voltar");
  268.         }
  269.         case TYPE_LIST_TAGS_CREATE:
  270.         {
  271.             new
  272.                 szName[MAX_PLAYER_NAME]
  273.             ;
  274.                    
  275.             GetPlayerName(iPlayerID, szName, sizeof szName);
  276.                    
  277.             for(new i; i < MAX_PLAYERS_TAGS; i++)
  278.             {
  279.                 new szTag[24];
  280.                 format(szTag, sizeof szTag, "{F7EC6F}Livre");
  281.                 if(strfind(SprayTags[iPlayerID][i][_spOwned], szName, true) != -1)
  282.                 {
  283.                     format(szTag, sizeof(szTag), "{F7EC6F}Spray Tag #%i", i);
  284.                 }
  285.                 format(szDialog, sizeof(szDialog), "%s%s\n", szDialog, szTag);
  286.             }
  287.             ShowPlayerDialog(iPlayerID, SPRAYTAG_CREATE, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Selecione um slot livre", szDialog, "Selecionar", "Voltar");
  288.         }
  289.         case TYPE_LIST_TAGS_FIND:
  290.         {
  291.             new
  292.                 szName[MAX_PLAYER_NAME]
  293.             ;
  294.                    
  295.             GetPlayerName(iPlayerID, szName, sizeof szName);
  296.                    
  297.             for(new i; i < MAX_PLAYERS_TAGS; i++)
  298.             {
  299.                 new szTag[24];
  300.                 format(szTag, sizeof szTag, "{F7EC6F}Livre");
  301.                 if(strfind(SprayTags[iPlayerID][i][_spOwned], szName, true) != -1)
  302.                 {
  303.                     format(szTag, sizeof(szTag), "{F7EC6F}Spray Tag #%i", i);
  304.                 }
  305.                 format(szDialog, sizeof(szDialog), "%s%s\n", szDialog, szTag);
  306.             }
  307.             ShowPlayerDialog(iPlayerID, SPRAYTAG_FIND, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Selecione a tag que você deseja encontrar", szDialog, "Selecionar", "Voltar");
  308.         }
  309.     }
  310.     return 1;
  311. }
  312.  
  313. public OnPlayerEnterCheckpoint(playerid)
  314. {
  315.     if(spraytag_find[playerid])
  316.     {
  317.         SendClientMessage(playerid, -1, "Você chegou na sua spray tag.");
  318.         DisablePlayerCheckpoint(playerid);
  319.     }
  320.     return 1;
  321. }
  322.  
  323. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  324. {
  325.     switch(dialogid)
  326.     {
  327.         case SPRAYTAG_DIALOG_RETURN: SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  328.         case SPRAYTAG_MENU:
  329.         {
  330.             if(!response) return 1;
  331.             switch(listitem)
  332.             {
  333.                 case 0:
  334.                 {
  335.                     SprayTag_Dialog(playerid, TYPE_LIST_TAGS_CREATE);
  336.                 }
  337.                 case 1: SprayTag_Dialog(playerid, TYPE_LIST_TAGS);
  338.                 case 2: SprayTag_Dialog(playerid, TYPE_LIST_TAGS_DELETE);
  339.                 case 3:  SprayTag_Dialog(playerid, TYPE_LIST_TAGS_FIND);
  340.             }
  341.         }
  342.         case SPRAYTAG_EDIT_MAIN:
  343.         {
  344.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  345.             if(SprayTags[playerid][listitem][_spPosX] == 0.0)
  346.                 return ShowPlayerDialog(playerid, SPRAYTAG_DIALOG_RETURN, DIALOG_STYLE_MSGBOX, "{F7EC6F}Spray Tag - {BD0000} Ops!!", "Ops! Não tem nada nesse slot.", "Voltar", "");
  347.                
  348.             spraytag_slot[playerid] = listitem;
  349.            
  350.             spraytag_bold[playerid] = SprayTags[playerid][listitem][_spBold];
  351.             spraytag_color[playerid] = SprayTags[playerid][listitem][_spFontColor];
  352.             format(spraytag_text[playerid], 50, SprayTags[playerid][listitem][_spText]);
  353.             format(spraytag_font[playerid], 50, SprayTags[playerid][listitem][_spFont]);
  354.             spraytag_size[playerid] = SprayTags[playerid][listitem][_spFontSize];
  355.             SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  356.         }
  357.         case SPRAYTAG_DELETE:
  358.         {
  359.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  360.            
  361.             if(SprayTags[playerid][listitem][_spPosX] == 0.0)
  362.                 return ShowPlayerDialog(playerid, SPRAYTAG_DIALOG_RETURN, DIALOG_STYLE_MSGBOX, "{F7EC6F}Spray Tag - {BD0000} Ops!!", "Ops! Não tem nada nesse slot.", "Voltar", "");
  363.                
  364.             new
  365.                 szMessage[60]
  366.             ;
  367.                
  368.             SprayTag_Clear(playerid, listitem);
  369.             format(szMessage, sizeof szMessage, "[Spray Tag] A spray tag #%i foi deletada com sucesso.", listitem);
  370.             SendClientMessage(playerid, -1, szMessage);
  371.             SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  372.         }
  373.         case SPRAYTAG_FIND:
  374.         {
  375.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  376.            
  377.             if(SprayTags[playerid][listitem][_spPosX] == 0.0)
  378.                 return ShowPlayerDialog(playerid, SPRAYTAG_DIALOG_RETURN, DIALOG_STYLE_MSGBOX, "{F7EC6F}Spray Tag - {BD0000} Ops!!", "Ops! Não tem nada nesse slot.", "Voltar", "");
  379.                
  380.             new
  381.                 szMessage[60]
  382.             ;
  383.             spraytag_find[playerid] = SetPlayerCheckpoint(playerid, SprayTags[playerid][listitem][_spPosX], SprayTags[playerid][listitem][_spPosY], SprayTags[playerid][listitem][_spPosZ], 3.0);
  384.             format(szMessage, sizeof szMessage, "[Spray Tag] Um checkpoint foi marcado na sua spraytag #%i.", listitem);
  385.             SendClientMessage(playerid, -1, szMessage);
  386.         }
  387.         case SPRAYTAG_CREATE:
  388.         {
  389.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  390.            
  391.             if(SprayTags[playerid][listitem][_spPosX] == 0.0)
  392.             {
  393.                 spraytag_slot[playerid] = listitem;
  394.                 format(spraytag_text[playerid], 50, "Exemplo");
  395.                 format(spraytag_font[playerid], 50, "Arial");
  396.                 spraytag_color[playerid] = -1;
  397.                 spraytag_size[playerid] = 24;
  398.                 spraytag_bold[playerid] = 0;
  399.                 SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  400.             } else ShowPlayerDialog(playerid, SPRAYTAG_DIALOG_RETURN, DIALOG_STYLE_MSGBOX, "{F7EC6F}Spray Tag - {BD0000} Ops!!", "Ops! Este slot já está sendo usado.", "Voltar", "");
  401.         }
  402.         case SPRAYTAG_EDIT_LIST:
  403.         {
  404.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_TAGS);
  405.            
  406.             new
  407.                 iIndex = spraytag_slot[playerid]
  408.             ;
  409.            
  410.             switch(listitem)
  411.             {
  412.                 case 0: ShowPlayerDialog(playerid, SPRAYTAG_EDIT_TEXT, DIALOG_STYLE_INPUT, "{F7EC6F}Spray Tag - {469BF0}Texto", "Digite o texto que você quer que aparece na Spray Tag", "Certo", "Voltar");
  413.                 case 1: ShowPlayerDialog(playerid, SPRAYTAG_EDIT_FONT, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Fonte", "Arial\nCourier\nImpact\nPricedown\nDaredevil\nBombing\naaaiight! fat\nFrom Street Art\nGhang\nGraffogie\nGraphers Blog\nNosegrind Demo", "Certo", "Voltar");
  414.                 case 2: ShowPlayerDialog(playerid, SPRAYTAG_EDIT_SIZE, DIALOG_STYLE_INPUT, "{F7EC6F}Spray Tag - {469BF0}Tamanho", "Digite o tamanho que você quer que aparece na Spray Tag", "Certo", "Voltar");
  415.                 case 3: ShowPlayerDialog(playerid, SPRAYTAG_EDIT_COLOR, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Cor", "{FF0000}Vermelho\n{04B404}Verde\n{00B5CD}Azul Claro\n{FFFF00}Amarelo\n{0000FF}Azul\n{848484}Cinza\n{FF00FF}Rosa\n{FFFFFF}Branco", "Certo", "Voltar");
  416.                 case 4:
  417.                 {
  418.                     switch(spraytag_bold[playerid])
  419.                     {
  420.                         case 0: spraytag_bold[playerid] = 1;
  421.                         case 1: spraytag_bold[playerid] = 0;
  422.                     }
  423.                     SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  424.                 }
  425.                 case 5:
  426.                 {
  427.                     EditDynamicObject(playerid, SprayTags[playerid][iIndex][_spObject]);
  428.                     SetPVarInt(playerid, "SPRAYTAG_EDIT", 2);
  429.                 }
  430.             }
  431.         }
  432.         case SPRAYTAG_EDIT_TEXT:
  433.         {
  434.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  435.             format(spraytag_text[playerid], 32, inputtext);
  436.             SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  437.         }
  438.         case SPRAYTAG_EDIT_FONT:
  439.         {
  440.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  441.             format(spraytag_font[playerid], 32, inputtext);
  442.             SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  443.         }
  444.         case SPRAYTAG_EDIT_SIZE:
  445.         {
  446.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  447.             spraytag_size[playerid] = strval(inputtext);
  448.             SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  449.         }
  450.         case SPRAYTAG_EDIT_COLOR:
  451.         {
  452.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  453.             new iColor;
  454.             switch(listitem)
  455.             {
  456.                 case 0: iColor = HexToInt("0xFFFF0000");
  457.                 case 1: iColor = HexToInt("0xFF04B404");
  458.                 case 2: iColor = HexToInt("0xFF00B5CD");
  459.                 case 3: iColor = HexToInt("0xFFFFFF00");
  460.                 case 4: iColor = HexToInt("0xFF0000FF");
  461.                 case 5: iColor = HexToInt("0xFF848484");
  462.                 case 6: iColor = HexToInt("0xFFFF00FF");
  463.                 case 7: iColor = HexToInt("0xFFFFFFFF");
  464.             }
  465.             spraytag_color[playerid] = iColor;
  466.             SprayTag_Dialog(playerid, TYPE_LIST_EDIT);
  467.         }
  468.        
  469.         case SPRAYTAG_CREATE_MAIN:
  470.         {
  471.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_TAGS_CREATE);
  472.             switch(listitem)
  473.             {
  474.                 case 0: ShowPlayerDialog(playerid, SPRAYTAG_CREATE_TEXT, DIALOG_STYLE_INPUT, "{F7EC6F}Spray Tag - {469BF0}Texto", "Digite o texto que você quer que aparece na Spray Tag", "Certo", "Voltar");
  475.                 case 1: ShowPlayerDialog(playerid, SPRAYTAG_CREATE_FONT, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Fonte", "Arial\nCourier\nImpact\nPricedown\nDaredevil\nBombing\naaaiight! fat\nFrom Street Art\nGhang\nGraffogie\nGraphers Blog\nNosegrind Demo", "Certo", "Voltar");
  476.                 case 2: ShowPlayerDialog(playerid, SPRAYTAG_CREATE_SIZE, DIALOG_STYLE_INPUT, "{F7EC6F}Spray Tag - {469BF0}Tamanho", "Digite o tamanho que você quer que aparece na Spray Tag", "Certo", "Voltar");
  477.                 case 3: ShowPlayerDialog(playerid, SPRAYTAG_CREATE_COLOR, DIALOG_STYLE_LIST, "{F7EC6F}Spray Tag - {469BF0}Cor", "{FF0000}Vermelho\n{04B404}Verde\n{00B5CD}Azul Claro\n{FFFF00}Amarelo\n{0000FF}Azul\n{848484}Cinza\n{FF00FF}Rosa\n{FFFFFF}Branco", "Certo", "Voltar");
  478.                 case 4:
  479.                 {
  480.                     switch(spraytag_bold[playerid])
  481.                     {
  482.                         case 0: spraytag_bold[playerid] = 1;
  483.                         case 1: spraytag_bold[playerid] = 0;
  484.                     }
  485.                     SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  486.                 }
  487.                 case 5:
  488.                 {
  489.                     new
  490.                         Float:Position[3],
  491.                         szText[50],
  492.                         szFont[50]
  493.                     ;
  494.                    
  495.                     GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
  496.                     format(szText, 50, spraytag_text[playerid]);
  497.                     format(szFont, 50, spraytag_font[playerid]);
  498.                    
  499.                     spraytag_object[playerid] = CreateDynamicObject(SPRAY_TAG_OBJECT, Position[0]-1.0, Position[1], Position[2], 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, SPRAY_TAG_OBJECT_DISTANCE);
  500.                     SetDynamicObjectMaterialText(spraytag_object[playerid], 0, szText, OBJECT_MATERIAL_SIZE_512x512, szFont, spraytag_size[playerid], spraytag_bold[playerid], spraytag_color[playerid], 0, 1);
  501.                     EditDynamicObject(playerid, spraytag_object[playerid]);
  502.                     SetPVarInt(playerid, "SPRAYTAG_EDIT", 1);
  503.                 }
  504.             }
  505.         }
  506.         case SPRAYTAG_CREATE_TEXT:
  507.         {
  508.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  509.             format(spraytag_text[playerid], 50, inputtext);
  510.             SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  511.         }
  512.         case SPRAYTAG_CREATE_FONT:
  513.         {
  514.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  515.             format(spraytag_font[playerid], 50, inputtext);
  516.             SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  517.         }
  518.         case SPRAYTAG_CREATE_SIZE:
  519.         {
  520.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  521.             spraytag_size[playerid] = strval(inputtext);
  522.             SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  523.         }
  524.         case SPRAYTAG_CREATE_COLOR:
  525.         {
  526.             if(!response) return SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  527.             new iColor;
  528.             switch(listitem)
  529.             {
  530.                 case 0: iColor = HexToInt("0xFFFF0000");
  531.                 case 1: iColor = HexToInt("0xFF04B404");
  532.                 case 2: iColor = HexToInt("0xFF00B5CD");
  533.                 case 3: iColor = HexToInt("0xFFFFFF00");
  534.                 case 4: iColor = HexToInt("0xFF0000FF");
  535.                 case 5: iColor = HexToInt("0xFF848484");
  536.                 case 6: iColor = HexToInt("0xFFFF00FF");
  537.                 case 7: iColor = HexToInt("0xFFFFFFFF");
  538.             }
  539.             spraytag_color[playerid] = iColor;
  540.             SprayTag_Dialog(playerid, TYPE_LIST_CREATE);
  541.         }
  542.     }
  543.  
  544.     return 1;
  545. }
  546.  
  547. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  548. {
  549.     print("called;");
  550.     if(response == EDIT_RESPONSE_FINAL)
  551.     {
  552.         if(GetPVarInt(playerid, "SPRAYTAG_EDIT") == 1)
  553.         {
  554.             if(!IsPlayerInRangeOfPoint(playerid, 3, x, y, z))
  555.             {
  556.                 DestroyDynamicObject(spraytag_object[playerid]);
  557.                 DeletePVar(playerid, "SPRAYTAG_EDIT");
  558.                 return SendClientMessage(playerid, -1, "Você não está perto da spray tag.");
  559.             }
  560.            
  561.             spraytag_positions[playerid][0] = x;
  562.             spraytag_positions[playerid][1] = y;
  563.             spraytag_positions[playerid][2] = z;
  564.             spraytag_positions[playerid][3] = rx;
  565.             spraytag_positions[playerid][4] = ry;
  566.             spraytag_positions[playerid][5] = rz;
  567.            
  568.             spraytag_timer[playerid] = SetTimerEx("SprayTag", 1000, true, "ii", playerid, 2);
  569.            
  570.             ApplyAnimation(playerid, "SPRAYCAN", "spraycan_full", 4.0, 1, 1, 1, 0, 0, 1);
  571.            
  572.             spraytag_timer_left[playerid] = SPRAY_TAG_TIMER;
  573.             DestroyDynamicObject(spraytag_object[playerid]);
  574.         }
  575.         if(GetPVarInt(playerid, "SPRAYTAG_EDIT") == 2)
  576.         {
  577.             new
  578.                 iIndex = spraytag_slot[playerid]
  579.             ;
  580.            
  581.             if(!IsPlayerInRangeOfPoint(playerid, 3, x, y, z))
  582.             {
  583.                 DestroyDynamicObject(SprayTags[playerid][iIndex][_spObject]);
  584.                 SprayTag_Spawn(playerid, iIndex);
  585.                 DeletePVar(playerid, "SPRAYTAG_EDIT");
  586.                 return SendClientMessage(playerid, -1, "Você não está perto da spray tag.");
  587.             }
  588.                
  589.             spraytag_positions[playerid][0] = x;
  590.             spraytag_positions[playerid][1] = y;
  591.             spraytag_positions[playerid][2] = z;
  592.             spraytag_positions[playerid][3] = rx;
  593.             spraytag_positions[playerid][4] = ry;
  594.             spraytag_positions[playerid][5] = rz;
  595.            
  596.             spraytag_timer[playerid] = SetTimerEx("SprayTag", 1000, true, "ii", playerid, 1);
  597.            
  598.             ApplyAnimation(playerid, "SPRAYCAN", "spraycan_full", 4.0, 1, 1, 1, 0, 0, 1);
  599.            
  600.             spraytag_timer_left[playerid] = SPRAY_TAG_TIMER;
  601.             DestroyDynamicObject(SprayTags[playerid][iIndex][_spObject]);
  602.         }
  603.     }
  604.     if(response == EDIT_RESPONSE_CANCEL)
  605.     {
  606.         if(GetPVarInt(playerid, "SPRAYTAG_EDIT") >= 1)
  607.         {
  608.             DestroyDynamicObject(spraytag_object[playerid]);
  609.             DestroyDynamicObject(SprayTags[playerid][spraytag_slot[playerid]][_spObject]);
  610.             SprayTag_Spawn(playerid, spraytag_slot[playerid]);
  611.             DeletePVar(playerid, "SPRAYTAG_EDIT");
  612.         }
  613.     }
  614.     return 1;
  615. }
  616.  
  617. forward SprayTag(playerid, type);
  618. public SprayTag(playerid, type)
  619. {
  620.     new
  621.         iIndex = spraytag_slot[playerid]
  622.     ;
  623.    
  624.     if(!IsPlayerConnected(playerid))
  625.     {
  626.         spraytag_timer_left[playerid] = 0;
  627.         DeletePVar(playerid, "SPRAYTAG_EDIT");
  628.         KillTimer(spraytag_timer[playerid]);
  629.         return 1;
  630.     }
  631.    
  632.     spraytag_timer_left[playerid]--;
  633.    
  634.     switch(type)
  635.     {
  636.         case 1:
  637.         {
  638.             if(spraytag_timer_left[playerid] == 0)
  639.             {
  640.                 DestroyDynamicObject(SprayTags[playerid][iIndex][_spObject]);
  641.                 SprayTags[playerid][iIndex][_spPosX] = spraytag_positions[playerid][0];
  642.                 SprayTags[playerid][iIndex][_spPosY] = spraytag_positions[playerid][1];
  643.                 SprayTags[playerid][iIndex][_spPosZ] = spraytag_positions[playerid][2];
  644.                 SprayTags[playerid][iIndex][_spPosRX] = spraytag_positions[playerid][3];
  645.                 SprayTags[playerid][iIndex][_spPosRY] = spraytag_positions[playerid][4];
  646.                 SprayTags[playerid][iIndex][_spPosRZ] = spraytag_positions[playerid][5];
  647.                 format(SprayTags[playerid][iIndex][_spText], 50, spraytag_text[playerid]);
  648.                 format(SprayTags[playerid][iIndex][_spFont], 50, spraytag_font[playerid]);
  649.                 SprayTags[playerid][iIndex][_spFontColor] = spraytag_color[playerid];
  650.                 SprayTags[playerid][iIndex][_spFontSize] = spraytag_size[playerid];
  651.                 SprayTags[playerid][iIndex][_spBold] = spraytag_bold[playerid];
  652.                 SprayTag_Spawn(playerid, iIndex);
  653.                 SprayTag_Save(playerid, iIndex);
  654.                 ClearAnimations(playerid);
  655.                 ApplyAnimation(playerid, "GRAFFITI", "graffiti_Chkout", 4.0, 0, 0, 0, 0, 0, 1);
  656.                 KillTimer(spraytag_timer[playerid]);
  657.             }
  658.         }
  659.         case 2:
  660.         {
  661.             if(spraytag_timer_left[playerid] == 0)
  662.             {
  663.                 SprayTag_Create(playerid, spraytag_slot[playerid]);
  664.                 ClearAnimations(playerid);
  665.                 ApplyAnimation(playerid, "GRAFFITI", "graffiti_Chkout", 4.0, 0, 0, 0, 0, 0, 1);
  666.                 KillTimer(spraytag_timer[playerid]);
  667.             }
  668.         }
  669.     }
  670.     DeletePVar(playerid, "SPRAYTAG_EDIT");
  671.     return 1;
  672. }
  673.  
  674. forward SprayTag_Load(extraid, type);
  675. public SprayTag_Load(extraid, type) {
  676.     new rows, fields;
  677.     cache_get_data(rows, fields, spraytag_mysql);
  678.     switch(type)
  679.     {
  680.         case SPRAYTAG_THREAD_LOAD:
  681.         {
  682.             if(IsPlayerConnected(extraid))
  683.             {
  684.                 new i = 0;
  685.                 while( i < rows)
  686.                 {
  687.                     if(i >= MAX_PLAYERS_TAGS)
  688.                         break;
  689.                        
  690.                     new result[32];
  691.                     cache_get_field_content(i, "id", result, spraytag_mysql); SprayTags[extraid][i][_spSQLID] = strval(result);
  692.                     cache_get_field_content(i, "owner", SprayTags[extraid][i][_spOwned], spraytag_mysql, MAX_PLAYER_NAME);
  693.                     cache_get_field_content(i, "text", SprayTags[extraid][i][_spText], spraytag_mysql, MAX_PLAYER_NAME);
  694.                     cache_get_field_content(i, "font", SprayTags[extraid][i][_spFont], spraytag_mysql, MAX_PLAYER_NAME);
  695.                     cache_get_field_content(i, "fontsize", result, spraytag_mysql); SprayTags[extraid][i][_spFontSize] = strval(result);
  696.                     cache_get_field_content(i, "bold", result, spraytag_mysql); SprayTags[extraid][i][_spBold] = strval(result);
  697.                     cache_get_field_content(i, "color", result, spraytag_mysql); SprayTags[extraid][i][_spFontColor] = strval(result);
  698.                     cache_get_field_content(i, "posx", result, spraytag_mysql); SprayTags[extraid][i][_spPosX] = floatstr(result);
  699.                     cache_get_field_content(i, "posy", result, spraytag_mysql); SprayTags[extraid][i][_spPosY] = floatstr(result);
  700.                     cache_get_field_content(i, "posz", result, spraytag_mysql); SprayTags[extraid][i][_spPosZ] = floatstr(result);
  701.                     cache_get_field_content(i, "posrx", result, spraytag_mysql); SprayTags[extraid][i][_spPosRX] = floatstr(result);
  702.                     cache_get_field_content(i, "posry", result, spraytag_mysql); SprayTags[extraid][i][_spPosRY] = floatstr(result);
  703.                     cache_get_field_content(i, "posrz", result, spraytag_mysql); SprayTags[extraid][i][_spPosRZ] = floatstr(result);
  704.                     cache_get_field_content(i, "vw", result, spraytag_mysql); SprayTags[extraid][i][_spVW] = strval(result);
  705.                     cache_get_field_content(i, "interior", result, spraytag_mysql); SprayTags[extraid][i][_spInt] = strval(result);
  706.                     if(SprayTags[extraid][i][_spPosX] != 0.0)
  707.                     {
  708.                         SprayTag_Spawn(extraid, i);
  709.                     }
  710.                     printf("Spawnando I: %i SQLID: %i", i, SprayTags[extraid][i][_spSQLID]);
  711.                     i++;
  712.                 }
  713.             }
  714.         }
  715.         case SPRAYTAG_THREAD_SAVE:
  716.         {
  717.        
  718.         }
  719.     }
  720.     return 1;
  721. }
  722.  
  723. forward SprayTag_QueryCreate(playerid, iIndex);
  724. public SprayTag_QueryCreate(playerid, iIndex)
  725. {
  726.     SprayTags[playerid][iIndex][_spSQLID] = cache_insert_id(spraytag_mysql);
  727.     printf("Spray Tag ID: %d", SprayTags[playerid][iIndex][_spSQLID]);
  728.    
  729.     GetPlayerName(playerid, SprayTags[playerid][iIndex][_spOwned], MAX_PLAYER_NAME);
  730.    
  731.     SprayTags[playerid][iIndex][_spPosX] = spraytag_positions[playerid][0];
  732.     SprayTags[playerid][iIndex][_spPosY] = spraytag_positions[playerid][1];
  733.     SprayTags[playerid][iIndex][_spPosZ] = spraytag_positions[playerid][2];
  734.     SprayTags[playerid][iIndex][_spPosRX] = spraytag_positions[playerid][3];
  735.     SprayTags[playerid][iIndex][_spPosRY] = spraytag_positions[playerid][4];
  736.     SprayTags[playerid][iIndex][_spPosRZ] = spraytag_positions[playerid][5];
  737.    
  738.     format(SprayTags[playerid][iIndex][_spText], 50, spraytag_text[playerid]);
  739.     format(SprayTags[playerid][iIndex][_spFont], 50, spraytag_font[playerid]);
  740.    
  741.     SprayTags[playerid][iIndex][_spFontColor] = spraytag_color[playerid];
  742.     SprayTags[playerid][iIndex][_spFontSize] = spraytag_size[playerid];
  743.     SprayTags[playerid][iIndex][_spBold] = spraytag_bold[playerid];
  744.    
  745.     SprayTag_Spawn(playerid, iIndex);
  746.    
  747.     new
  748.         szMessage[128]
  749.     ;
  750.     format(szMessage, sizeof szMessage, "[Spray Tag] Você criou uma spray tag com ID # %i.", iIndex);
  751.     SendClientMessage(playerid, -1, szMessage);
  752.        
  753.     SprayTag_Save(playerid, iIndex);
  754. }
  755.  
  756. /*
  757.     ##############################################################
  758.     ######################### COMMAND'S ##########################
  759.     ##############################################################
  760. */
  761.  
  762. CMD:loadtags(playerid)
  763. {
  764.     new
  765.         szName[MAX_PLAYER_NAME],
  766.         szQuery[80]
  767.     ;
  768.     printf("[Spray Tag's] Carregando as spray tags de %s.", szName);
  769.     GetPlayerName(playerid, szName, MAX_PLAYER_NAME);
  770.     format(szQuery, sizeof szQuery, "SELECT * FROM `spray_tags` WHERE owner = '%s'", szName);
  771.     mysql_function_query(spraytag_mysql, szQuery, true, "SprayTag_Load", "ii", 0, SPRAYTAG_THREAD_LOAD);
  772.     return 1;
  773. }
  774.  
  775. CMD:tags(playerid)
  776. {
  777.     if(IsPlayerConnected(playerid)) SprayTag_Dialog(playerid, TYPE_LIST_MENU);
  778.     return 1;
  779. }
  780.  
  781. /*
  782.     ##############################################################
  783.     ######################### STOCK'S ############################
  784.     ##############################################################
  785. */
  786.  
  787. stock SprayTag_Create(playerid, iIndex)
  788. {
  789.     if(IsPlayerConnected(playerid))
  790.     {
  791.         new
  792.             szQuery[2048],
  793.             szName[MAX_PLAYER_NAME]
  794.         ;
  795.         GetPlayerName(playerid, szName, MAX_PLAYER_NAME);
  796.         format(szQuery, sizeof(szQuery), "INSERT INTO `spray_tags` (owner, text, font, fontsize, bold, color, posx, posy, posz, posrx, posry, posrz, vw, interior) VALUES ('%s', '%s', '%s', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%d', '%d')",
  797.         szName,
  798.         SprayTags[playerid][iIndex][_spText],
  799.         SprayTags[playerid][iIndex][_spFont],
  800.         SprayTags[playerid][iIndex][_spFontSize],
  801.         SprayTags[playerid][iIndex][_spBold],
  802.         SprayTags[playerid][iIndex][_spFontColor],
  803.         SprayTags[playerid][iIndex][_spPosX],
  804.         SprayTags[playerid][iIndex][_spPosY],
  805.         SprayTags[playerid][iIndex][_spPosZ],
  806.         SprayTags[playerid][iIndex][_spPosRX],
  807.         SprayTags[playerid][iIndex][_spPosRY],
  808.         SprayTags[playerid][iIndex][_spPosRZ],
  809.         SprayTags[playerid][iIndex][_spVW],
  810.         SprayTags[playerid][iIndex][_spInt]
  811.         );
  812.  
  813.         mysql_function_query(spraytag_mysql, szQuery, true, "SprayTag_QueryCreate", "ii", playerid, iIndex);
  814.     }
  815.     return 1;
  816. }
  817.  
  818. stock SprayTag_Spawn(playerid, iIndex)
  819. {
  820.     SprayTags[playerid][iIndex][_spObject] = CreateDynamicObject(SPRAY_TAG_OBJECT, SprayTags[playerid][iIndex][_spPosX], SprayTags[playerid][iIndex][_spPosY], SprayTags[playerid][iIndex][_spPosZ], SprayTags[playerid][iIndex][_spPosRX], SprayTags[playerid][iIndex][_spPosRY], SprayTags[playerid][iIndex][_spPosRZ], SprayTags[playerid][iIndex][_spVW], SprayTags[playerid][iIndex][_spInt], -1, SPRAY_TAG_OBJECT_DISTANCE);
  821.     SetDynamicObjectMaterialText(SprayTags[playerid][iIndex][_spObject], 0, SprayTags[playerid][iIndex][_spText], OBJECT_MATERIAL_SIZE_512x512, SprayTags[playerid][iIndex][_spFont], SprayTags[playerid][iIndex][_spFontSize], SprayTags[playerid][iIndex][_spBold], SprayTags[playerid][iIndex][_spFontColor], 0, 1);
  822.     return 1;
  823. }
  824.  
  825. stock SprayTag_Save(playerid, iIndex)
  826. {
  827.     if(IsPlayerConnected(playerid))
  828.     {
  829.         new query[400];
  830.         format(query, sizeof(query), "UPDATE `spray_tags` SET \
  831.             `owner` = '%s', \
  832.             `text` = '%s', \
  833.             `font` = '%s', \
  834.             `fontsize` = %d, \
  835.             `bold` = %d, \
  836.             `color` = %d, \
  837.             `posx` = %f, \
  838.             `posy` = %f, \
  839.             `posz` = %f, \
  840.             `posrx` = %f, \
  841.             `posry` = %f, \
  842.             `posrz` = %f, \
  843.             `vw` = %d, \
  844.             `interior` = %d WHERE `id` = %d",
  845.             SprayTags[playerid][iIndex][_spOwned],
  846.             SprayTags[playerid][iIndex][_spText],
  847.             SprayTags[playerid][iIndex][_spFont],
  848.             SprayTags[playerid][iIndex][_spFontSize],
  849.             SprayTags[playerid][iIndex][_spBold],
  850.             SprayTags[playerid][iIndex][_spFontColor],
  851.             SprayTags[playerid][iIndex][_spPosX],
  852.             SprayTags[playerid][iIndex][_spPosY],
  853.             SprayTags[playerid][iIndex][_spPosZ],
  854.             SprayTags[playerid][iIndex][_spPosRX],
  855.             SprayTags[playerid][iIndex][_spPosRY],
  856.             SprayTags[playerid][iIndex][_spPosRZ],
  857.             SprayTags[playerid][iIndex][_spVW],
  858.             SprayTags[playerid][iIndex][_spInt],
  859.             SprayTags[playerid][iIndex][_spSQLID]
  860.         );
  861.         mysql_function_query(spraytag_mysql, query, false, "SprayTag_Load", "ii", iIndex, SPRAYTAG_THREAD_SAVE);
  862.     }
  863.     return 1;
  864. }
  865.  
  866. stock SprayTag_Clear(playerid, iIndex)
  867. {
  868.     new szQuery[80];
  869.     format(szQuery, sizeof(szQuery), "DELETE FROM `spray_tags` WHERE `id` = '%d'", SprayTags[playerid][iIndex][_spSQLID]);
  870.     mysql_function_query(spraytag_mysql, szQuery, false, "SprayTag_Load", "ii", iIndex, SPRAYTAG_THREAD_SAVE);
  871.    
  872.     format(SprayTags[playerid][iIndex][_spOwned], 32, "Ninguem");
  873.     format(SprayTags[playerid][iIndex][_spText], 32, "Exemplo");
  874.     format(SprayTags[playerid][iIndex][_spFont], 32, "Arial");
  875.     SprayTags[playerid][iIndex][_spFontSize] = 24;
  876.     SprayTags[playerid][iIndex][_spBold] = 0;
  877.     SprayTags[playerid][iIndex][_spFontColor] = -1;
  878.     SprayTags[playerid][iIndex][_spPosX] = 0.0;
  879.     SprayTags[playerid][iIndex][_spPosY] = 0.0;
  880.     SprayTags[playerid][iIndex][_spPosZ] = 0.0;
  881.     SprayTags[playerid][iIndex][_spPosRX] = 0.0;
  882.     SprayTags[playerid][iIndex][_spPosRY] = 0.0;
  883.     SprayTags[playerid][iIndex][_spPosRZ] = 0.0;
  884.     SprayTags[playerid][iIndex][_spVW] = 0;
  885.     SprayTags[playerid][iIndex][_spInt] = 0;
  886.     DestroyDynamicObject(SprayTags[playerid][iIndex][_spObject]);
  887.     return 1;
  888. }
  889.  
  890. stock HexToInt(string[]) // Criado por Zamaroth ;
  891. {
  892.     if (string[0] == 0) return 0;
  893.    
  894.     new
  895.         i,
  896.         cur = 1,
  897.         res = 0
  898.     ;
  899.    
  900.     for (i = strlen(string); i > 0; i --) {
  901.         if (string[i-1] < 58) res = res + cur * (string[i-1]-48); else res = res + cur * (string[i-1]-65+10);
  902.         cur = cur * 16;
  903.     }
  904.     return res;
  905. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement