toribio

toribio

Jan 19th, 2009
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.33 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3.  
  4. //voc� n�o precisa colocar uma cache salvando os tickets do player na enum, etc, basta usar fun��es diretas...
  5.  
  6. //pra dar tickets pro jogador use:
  7. //GivePlayerTickets(playerid, tickets); //tickets = quantos tickets dar (� "dar" e n�o "setar/definir" eim...)
  8.  
  9. //e pra capturar os tickets voc� usa isso:
  10. //printf("O playerid tem %d tickets", GetPlayerTickets(playerid)); //ou seja: GetPlayerTickets(playerid)
  11.  
  12. //e pra resetar os tickets voc� usa:
  13. //ResetPlayerTickets(playerid);
  14.  
  15. //se voc� quizer setar/definir os tickets do player envez de dar tickets a mais, ou retirar tickets, faz quenem a fun��o GivePlayerMoney, s�o id�nticas...:
  16. //GivePlayerTickets(playerid, -quantia);
  17.  
  18. //agora vem as fun��es, coloca no final do mode:
  19. stock GivePlayerTickets(playerid, tickets)
  20. {
  21.     if(!IsPlayerConnected(playerid))return 0; //retorna 0 caso o jogador n�o esteja conectado
  22.     new pname[24], string[128];
  23.     GetPlayerName(playerid, pname, sizeof pname);
  24.     format(string, sizeof string, "%s.ini", pname); //aqui no exemplo � "nome.ini", formate como bem quizer
  25.     dini_IntSet(string, "tickets", GetPlayerTickets(playerid) + tickets); //caso seja "-": "-+" = "-" ^^
  26.     return 1; //retorna 1 se feito com �xito
  27. }
  28.  
  29. stock GetPlayerTickets(playerid)
  30. {
  31.     if(!IsPlayerConnected(playerid))return 0xFFFF; //caso ele n�o esteja conectado, retorna 0xFFFF
  32.     new pname[24], string[128];
  33.     GetPlayerName(playerid, pname, sizeof pname);
  34.     format(string, sizeof string, "%s.ini", pname); //aqui no exemplo � "nome.ini", formate como bem quizer
  35.     return dini_Int(string, "tickets"); //retorna a quantia de tickets que o jogador tem
  36. }
  37.  
  38. stock ResetPlayerTickets(playerid)
  39. {
  40.     if(!IsPlayerConnected(playerid))return 0; //retorna 0 caso o jogador n�o esteja conectado
  41.     new pname[24], string[128];
  42.     GetPlayerName(playerid, pname, sizeof pname);
  43.     format(string, sizeof string, "%s.ini", pname); //aqui no exemplo � "nome.ini", formate como bem quizer
  44.     dini_IntSet(string, "tickets", 0); //zera os tickets do jogador
  45.     return 1; //retorna 1 se feito com �xito
  46. }
  47.  
  48. public OnPlayerCommandText(playerid, cmdtext[])
  49. {
  50.     new cmd[256], idx;
  51.     cmd = strtok(cmdtext, idx);
  52.     if(!strcmp(cmd, "/tickets", true))
  53.     {
  54.         new tmp[256], string[256], value, tickets;
  55.         tmp = strtok(cmdtext, idx); //voc� esqueceu de definir o valor string da vari�vel tmp.
  56.         value = strval(tmp); //fica mais bonito
  57.         if(!strlen(tmp))
  58.             return SendClientMessage(playerid, 0xAAAAAAAA, "USE: /tickets [quantia]");
  59.         if(GetPlayerMoney(playerid) > 0)
  60.         {
  61.             tickets = (GetPlayerMoney(playerid) < (value * 50)) ? (GetPlayerMoney(playerid) / 50) : value;
  62.             //n�o adianta tentar entender a express�o acima ^^
  63.             GivePlayerTickets(playerid, tickets);
  64.             GivePlayerMoney(playerid, -(tickets * 50));
  65.             format(string, sizeof(string), "Antes voc� tinha %d ticket%s, comprou %d ticket%s com %d reais e agora tem %d ticket%s",
  66.                 GetPlayerTickets(playerid)-tickets, GetPlayerTickets(playerid) > 1 ? ("s") : (""), tickets, tickets > 1 ? ("s") : (""), tickets*50, GetPlayerTickets(playerid));
  67.             SendClientMessage(playerid, 0x00AA00AA, string);
  68.         } else {
  69.             SendClientMessage(playerid, 0xAA0000AA, "Voc� n�o tem dinheiro!");
  70.         }
  71.         return 1; //pra n�o aparecer "SERVER: Unknown command."
  72.     }
  73.     //o resto dos comandos...
  74.     return 0; //pra apaerecer "SERVER: Unknown command." caso o comando n�o exista...
  75. }
Advertisement
Add Comment
Please, Sign In to add comment