document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*  ==========================================================================================
  2.     ==========================================================================================
  3.                             Include feita por Ricop522 ( sem clã )
  4.                             r-brz@hotmail.com
  5.                             Bugs, sugestões, postem no tópico
  6.  
  7.  
  8.  
  9.  
  10.                             Retirar Créditos é anti-ético !
  11.                             Não pegue uma coisa e fale que é sua.
  12.  
  13.     ==========================================================================================
  14.     ==========================================================================================
  15.     ==========================================================================================
  16. */
  17. #include < a_samp >
  18. #include < a_npc >
  19. /* Natives ..
  20. function advanced_OnPlayerCommandText(playerid, cmdtext);
  21. function checarHelper(playerid) // ultilizavel na public OnPlayerSpawn;
  22. function ad_giveHelper(playerd, dias, cargo);
  23. */
  24. /*Como usar: colocar advanced_OnPlayerCommandText(playerid, cmdtext); na public OnPlayerCommandText
  25.              colocar _helperConnect(playerid) na public OnPlayerConnect
  26.   Comandos:
  27.             /darhelper ( apenas admins RCON )
  28.             /helpers - mostra os helpers
  29.  
  30. */
  31. enum helper_Info { hDia, hMes, hAno, hCargo, }; new helperInfo[MAX_PLAYERS][helper_Info];
  32. stock advanced_OnPlayerCommandText(playerid, cmdtext) {
  33.     new cmd[128], tmp[128], idx;
  34.     cmd = strtok(cmdtext, idx);
  35.     if(strcmp(cmd, "/darhelper", true) == 0) {
  36.         if(!IsPlayerConnected(playerid) || !IsPlayerAdmin(playerid)) return SendClientMessageplayerid, -1, "Você não é Admin! ");
  37.         new ID, CARGO, DIAS;
  38.         tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_PINK, "/darhelper [ID] [0-1] [Dias]"); ID = ReturnUser(tmp);
  39.         tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_PINK, "/darhelper [ID] [0-1] [Dias]"); CARGO = strval(tmp);
  40.         tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_PINK, "/darhelper [ID] [0-1] [Dias]"); DIAS = strval(tmp);
  41.         if(CARGO < 0 || CARGO > 1) return SendClientMessageplayerid, -1, "Use cargos de 0 a 1.");
  42.         else if(DIAS < 1 || DIAS > 30) return SendClientMessageplayerid, -1, "Use dias de 1 a 30 dias.");
  43.         if(!IsPlayerConnected(ID) || ID == INVALID_PLAYER_ID) return SendClientMessageplayerid, -1, "Jogador offline / ID inválido / não conectado.");
  44.         format(string, sizeof(string),"%s deu %i dias de Helper level %i para %s.", ad_GetName(playerid), DIAS, CARGO, ad_GetName(ID));
  45.         ABroadCast(-1, string, 5);
  46.         if(CARGO > helperInfo[ID][pHelper])
  47.             format(string, sizeof(string), "PARABÉNS %s ! Você agora é helper, tem %i dias, com cargo %i para demonstrar o seu trabalho.", ad_GetName(ID), DIAS, CARGO);
  48.             SendClientMessage(ID, -1, string);
  49.         else
  50.             SendClientMessageplayerid, COLOR_RED, "<!> Você foi demitido de Helper.");
  51.         ad_GiveHelper(ID, DIAS, CARGO);
  52.         return 0x01;
  53.     }
  54.     if (!strcmp(cmd, "/helpers", true)) {
  55.         SendClientMessage(playerid, 0x0080FFAA, "Helpers Online:");
  56.         for(new i = 0; i < MAX_PLAYERS; ++i) {
  57.             if(IsPlayerConnected(i)) {
  58.                 if(helperInfo[i][pHelper] == 1) {
  59.                     new string[0x80];
  60.                     format(string, sizeof(string), "[ONLINE] Helper: {0093D9}%s (%d){FFFFFF} | Cargo: %i | Até: %i/%i/%i", ad_GetName, i, helperInfo[playerid][hCargo], helperInfo[playerid][hDia],helperInfo[playerid][hMes],helperInfo[playerid][hAno]);
  61.                     SendClientMessage(playerid, 0x0080C0AA, string);
  62.                 }
  63.             }
  64.         }
  65.         return 0x01;
  66.     }
  67. }
  68. stock ad_GiveHelper(playerid, dias, cargo) {
  69.     if(!IsPlayerConnected(playerid)) return SendClientMessageToAll(-1, "< ADMIN > O helper que você tentou dar está offline!");
  70.     if(cargo == 0) return helperInfo[playerid][hCargo] = 0;
  71.     new j_ano, j_dia, j_mes, j_String[128], j_Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, j_Nome, sizeof(j_Nome);
  72.     getdate(j_ano, j_mes, j_dia);
  73.     j_dia += dias;
  74.     while(j_dia > 31) {
  75.        j_dia -= 31;
  76.         j_mes++;
  77.     }
  78.     while(j_mes > 12) {
  79.         j_mes -= 12;
  80.         j_ano++;
  81.     }
  82.     format(j_String, sizeof(j_String), "Helper%s.ini", j_Nome);
  83.     if(!dini_Exists(j_String)) {
  84.         dini_Create(j_String);
  85.         dini_IntSet(j_String, "Dia", j_dia);
  86.         dini_IntSet(j_String, "Mes", j_mes);
  87.         dini_IntSet(j_String, "Ano", j_ano);
  88.         dini_IntSet(j_String, "Cargo", cargo);
  89.     }
  90.     else {
  91.         dini_IntSet(j_String, "Dia", j_dia);
  92.         dini_IntSet(j_String, "Mes", j_mes);
  93.         dini_IntSet(j_String, "Cargo", cargo);
  94.     }
  95.     helperInfo[playerid][hCargo] = cargo;
  96.     helperInfo[playerid][hDia] = j_dia;
  97.     helperInfo[playerid][hMes] = j_mes;
  98.     helperInfo[playerid][hAno] = j_ano;
  99.     return 0x01;
  100. }
  101. stock ad_GetName(playerid) {
  102.     new name[MAX_PLAYER_NAME];
  103.     GetPlayerName(playerid, name, sizeof(name));
  104.     return name;
  105. }
  106. strtok(const string[], &index) {
  107.     new length = strlen(string);
  108.     while ((index < length) && (string[index] <= \' \')) {
  109.         index++;
  110.     }
  111.     new offset = index, result[20];
  112.     while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1))) {
  113.         result[index - offset] = string[index];
  114.         index++;
  115.     }
  116.     result[index - offset] = EOS;
  117.     return result;
  118. }
  119. stock checarHelper(playerid)
  120. {
  121.     new ano, mes, dia, ricardo[MAX_PLAYER_NAME],j_String[0x80]; GetPlayerName(playerid, ricardo, sizeof(ricardo));
  122.     format(j_String, sizeof(j_String), "Helper%s.ini", ricardo);
  123.     if(dini_Exists(j_String)) {
  124.         helperInfo[playerid][hDia] = dini_Int(j_String, "Dia");
  125.         helperInfo[playerid][hMes] = dini_Int(j_String, "Mes");
  126.         helperInfo[playerid][hAno] = dini_Int(j_String, "Ano");
  127.     }
  128.     if(PlayerInfo[playerid][pHelper] > 1 && helperInfo[playerid][hDia] != 00 && helperInfo[playerid][hMes] != 00 && helperInfo[playerid][hAno] != 0000) {
  129.         getdate(ano,mes,dia);
  130.         format(SkillBase, sizeof(SkillBase), "%i/%i/%i", helperInfo[playerid][hDia], helperInfo[playerid][hMes], helperInfo[playerid][hAno]);
  131.         format(empresastring, sizeof(empresastring), "%i/%i/%i", dia, mes, ano);
  132.         if( strcmp((SkillBase),(empresastring),true) == 0)
  133.         {
  134.             format(j_String, sizeof(j_String), "Helper%s.ini", ricardo);
  135.             SCM(playerid, -1, "Muito obrigado pela sua ajuda como helper! O seu trabalho venceu.");
  136.             helperInfo[playerid][hDia] = 00;
  137.             helperInfo[playerid][hMes] = 00;
  138.             helperInfo[playerid][hAno] = 0000;
  139.             PlayerInfo[playerid][pHelper] = 0;
  140.             if(fexist(j_String)) fremove(j_String);
  141.             return 0x01;
  142.         }
  143.         else return SCM(playerid, -1, "<!> Você ainda tem alguns dias como helper.");
  144.     }
  145.     return 0x01;
  146. }
  147. stock _helperConnect(playerid) return helperInfo[playerid][hDia] = 00, helperInfo[playerid][hMes] = 00, helperInfo[playerid][hAno] = 0000, helperInfo[playerid][hCargo] = 0, print("Helper system by Ricop522 Loaded <!>");
');