Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- //voc� n�o precisa colocar uma cache salvando os tickets do player na enum, etc, basta usar fun��es diretas...
- //pra dar tickets pro jogador use:
- //GivePlayerTickets(playerid, tickets); //tickets = quantos tickets dar (� "dar" e n�o "setar/definir" eim...)
- //e pra capturar os tickets voc� usa isso:
- //printf("O playerid tem %d tickets", GetPlayerTickets(playerid)); //ou seja: GetPlayerTickets(playerid)
- //e pra resetar os tickets voc� usa:
- //ResetPlayerTickets(playerid);
- //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...:
- //GivePlayerTickets(playerid, -quantia);
- //agora vem as fun��es, coloca no final do mode:
- stock GivePlayerTickets(playerid, tickets)
- {
- if(!IsPlayerConnected(playerid))return 0; //retorna 0 caso o jogador n�o esteja conectado
- new pname[24], string[128];
- GetPlayerName(playerid, pname, sizeof pname);
- format(string, sizeof string, "%s.ini", pname); //aqui no exemplo � "nome.ini", formate como bem quizer
- dini_IntSet(string, "tickets", GetPlayerTickets(playerid) + tickets); //caso seja "-": "-+" = "-" ^^
- return 1; //retorna 1 se feito com �xito
- }
- stock GetPlayerTickets(playerid)
- {
- if(!IsPlayerConnected(playerid))return 0xFFFF; //caso ele n�o esteja conectado, retorna 0xFFFF
- new pname[24], string[128];
- GetPlayerName(playerid, pname, sizeof pname);
- format(string, sizeof string, "%s.ini", pname); //aqui no exemplo � "nome.ini", formate como bem quizer
- return dini_Int(string, "tickets"); //retorna a quantia de tickets que o jogador tem
- }
- stock ResetPlayerTickets(playerid)
- {
- if(!IsPlayerConnected(playerid))return 0; //retorna 0 caso o jogador n�o esteja conectado
- new pname[24], string[128];
- GetPlayerName(playerid, pname, sizeof pname);
- format(string, sizeof string, "%s.ini", pname); //aqui no exemplo � "nome.ini", formate como bem quizer
- dini_IntSet(string, "tickets", 0); //zera os tickets do jogador
- return 1; //retorna 1 se feito com �xito
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/tickets", true))
- {
- new tmp[256], string[256], value, tickets;
- tmp = strtok(cmdtext, idx); //voc� esqueceu de definir o valor string da vari�vel tmp.
- value = strval(tmp); //fica mais bonito
- if(!strlen(tmp))
- return SendClientMessage(playerid, 0xAAAAAAAA, "USE: /tickets [quantia]");
- if(GetPlayerMoney(playerid) > 0)
- {
- tickets = (GetPlayerMoney(playerid) < (value * 50)) ? (GetPlayerMoney(playerid) / 50) : value;
- //n�o adianta tentar entender a express�o acima ^^
- GivePlayerTickets(playerid, tickets);
- GivePlayerMoney(playerid, -(tickets * 50));
- format(string, sizeof(string), "Antes voc� tinha %d ticket%s, comprou %d ticket%s com %d reais e agora tem %d ticket%s",
- GetPlayerTickets(playerid)-tickets, GetPlayerTickets(playerid) > 1 ? ("s") : (""), tickets, tickets > 1 ? ("s") : (""), tickets*50, GetPlayerTickets(playerid));
- SendClientMessage(playerid, 0x00AA00AA, string);
- } else {
- SendClientMessage(playerid, 0xAA0000AA, "Voc� n�o tem dinheiro!");
- }
- return 1; //pra n�o aparecer "SERVER: Unknown command."
- }
- //o resto dos comandos...
- return 0; //pra apaerecer "SERVER: Unknown command." caso o comando n�o exista...
- }
Advertisement
Add Comment
Please, Sign In to add comment