Advertisement
BrinqueDo

Sistema de Moedas Verde 2.1

Oct 18th, 2013
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.83 KB | None | 0 0
  1. /* Sistema de Moedas Verdes v2.0 - by BrinqueDo
  2.  
  3.     Versão 1.0 - Créditos BrinqueDo
  4.     - Salvamento de moedas para cada usuario em DOF2.
  5.     - Primeiro comando de compra com mv's criados para seguirem o exemplo.
  6.     - Comando /moedasv criado para ver todos os comandos do FS
  7.     - Verifica se o usuario tem ou não mv's suficientes para efetuar a compra.
  8.    
  9.     Versão 2.0 - Créditos BrinqueDo
  10.     - Consertado bugs e agora funcionando na maioria dos GM'S
  11.     - Adicionada função de ver moedas.
  12.     - No caso de contas novas, não é preciso relogar para ativar as mv's.
  13.     - Adicionada mensagem de retorno em todas as ações. (ex. quando der moedas a um jogador, retorna a mensagem dizendo quantas moedas voce deu e quantas o player tem agora)
  14.  
  15.     Versão 2.1 - Créditos BrinqueDo
  16.     - Adicionado comando de transferir moedas entre players.
  17.    
  18.     Créditos: Criação do nome - BPF / Criação do code: BriqueDo
  19.  
  20.     Requisitos:
  21.     - É necessario ter o plugin sscanf.inc dentro da pasta plugins no diretorio do seu servidor.
  22.     - Ter a linha "plugins sscanf" ao seu server.cfg.
  23.     - Ter a pasta moedas criada dentro da pasta scriptfiles do diretorio do seu servirdor. (SEUSERVIDOR/scriptfiles/moedas).
  24. */
  25.  
  26. #include <a_samp>
  27. #include <DOF2>
  28. #include <zcmd>
  29. #include <sscanf2>
  30.  
  31. //Defines
  32. #define amarelo 0xFFFF00FF
  33. #define azul 0x058AFFFF
  34. #define rosa 0xFF05CDFF
  35. #define verde 0x33AA33AA
  36. #define vermelho 0xFFFFFFAA
  37. #define branco 0xFFFFFFFF
  38. #define preto 0x000000FF
  39. #define cinza 0x878787FF
  40. #define azulclaro 0x03F2FFFF
  41. #define verdeclaro 0x03FF35FF
  42. #define roxo 0x7D03FFFF
  43. #define roxoclaro 0x9A03FFFF
  44. #define laranja 0xFF7403FF
  45.  
  46. //enum's
  47. enum MoedasInfo
  48. {
  49.     moedas,
  50. }
  51. // News
  52. new PlayerMoedasInfo[MAX_PLAYERS][MoedasInfo];
  53. new MoedasV[MAX_PLAYERS];
  54. new Text:Moedas;
  55.  
  56. // Forwards
  57. forward MoedasVerdes(playerid);
  58.  
  59. //Publics
  60. public OnFilterScriptInit()
  61. {
  62.     print("\n--------------------------------------");
  63.     print("Sistema de Moedas Verdes - by BrinqueDo");
  64.     print("--------------------------------------\n");
  65.     SetTimer("MoedasVerdes",1000, 1); // Fica atualizando o numero de moedas
  66.     return 1;
  67. }
  68.  
  69. main (){}
  70. public OnPlayerConnect(playerid)
  71. {
  72.     new nome[MAX_PLAYER_NAME];
  73.     new arquivo[40];
  74.     GetPlayerName(playerid, nome, 32);
  75.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  76.     if(DOF2_FileExists(arquivo))
  77.     {
  78.         CarregarMoedas(playerid);
  79.     }
  80.     else
  81.     {
  82.         CriarMoedas(playerid);
  83.     }
  84.     return 1;
  85. }
  86.  
  87. public OnPlayerSpawn(playerid)
  88. {
  89.     TextDrawShowForPlayer(playerid, Moedas);
  90. }
  91.  
  92. public MoedasVerdes(playerid)
  93. {
  94.     TextDrawDestroy(Moedas);
  95.     new str[128];
  96.     format(str, 256, "~g~MV~r~:~w~%d", PlayerMoedasInfo[playerid][moedas]);
  97.     Moedas = TextDrawCreate(496.000000, 122.000000,str);
  98.     TextDrawBackgroundColor(Moedas, 255);
  99.     TextDrawFont(Moedas, 2);
  100.     TextDrawLetterSize(Moedas, 0.509999, 2.100000);
  101.     TextDrawColor(Moedas, -1);
  102.     TextDrawSetOutline(Moedas, 1);
  103.     TextDrawSetProportional(Moedas, 0);
  104.  
  105.     for(new i; i < MAX_PLAYERS; i ++)
  106.     {
  107.         if(IsPlayerConnected(i))
  108.         {
  109.             TextDrawHideForPlayer(i, Moedas);
  110.             TextDrawShowForPlayer(i, Moedas);
  111.         }
  112.     }
  113.     return 1;
  114. }
  115.  
  116. public OnPlayerDisconnect(playerid, reason)
  117. {
  118.     SalvarMoedas(playerid);
  119.     return 1;
  120. }
  121.  
  122. public OnFilterScriptExit()
  123. {
  124.     TextDrawHideForAll(Moedas);
  125.     TextDrawDestroy(Moedas);
  126.     DOF2_Exit();
  127.     return 1;
  128. }
  129.  
  130.  
  131. CMD:moedasverdes(playerid)
  132. {
  133.     SendClientMessage(playerid, azul, "Comandos Player: /comprardinheiro /comprarscore /transferirmoedasv");
  134.     SendClientMessage(playerid, azul, "Ajuda: Você ganha moedas verdes em eventos.");
  135.     return 1;
  136. }
  137.  
  138. CMD:moedasvadmin(playerid)
  139. {
  140.     SendClientMessage(playerid, azul, "Comandos Admin: /darmoedasv - /darmoedasvtodos - /setarmoedasv - /setarmoedasvtodos - /resetarmoedasv - /vermoedas");
  141.     SendClientMessage(playerid, azul, "Ajuda: Você precisa estar logado na rcon. (/rcon login [senha])");
  142.     return 1;
  143. }
  144. // Comandos Admin
  145.  
  146. CMD:darmoedasv(playerid,params[])
  147. {
  148.     new ID, MOEDAS;
  149.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  150.     if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasv [ID][QUANTIDADE]");
  151.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
  152.     PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
  153.     new msgadm[200];
  154.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para %s.", MOEDAS, GetName(ID));
  155.     SendClientMessage(playerid, verdeclaro, msgadm);
  156.     new msgplayer[200];
  157.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
  158.     SendClientMessage(playerid, verdeclaro, msgplayer);
  159.     return 1;
  160. }
  161.  
  162. CMD:darmoedasvtodos(playerid,params[])
  163. {
  164.     new MOEDAS;
  165.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  166.     if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasvtodos [QUANTIDADE]");
  167.     for(new i = 0; i < MAX_PLAYERS; i++)
  168.     {
  169.         if(IsPlayerConnected(i))
  170.         {
  171.             PlayerMoedasInfo[i][moedas] = PlayerMoedasInfo[i][moedas] + MOEDAS;
  172.         }
  173.     }
  174.     new msgadm[200];
  175.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para todos.", MOEDAS);
  176.     SendClientMessage(playerid, verdeclaro, msgadm);
  177.     new msgplayer[200];
  178.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
  179.     SendClientMessage(playerid, verdeclaro, msgplayer);
  180.  
  181.     return 1;
  182.    
  183. }
  184.  
  185. CMD:setarmoedasvtodos(playerid,params[])
  186. {
  187.     new MOEDAS;
  188.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  189.     if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasvtodos [QUANTIDADE]");
  190.     for(new i = 0; i < MAX_PLAYERS; i++)
  191.     {
  192.         if(IsPlayerConnected(i))
  193.         {
  194.             PlayerMoedasInfo[i][moedas] = MOEDAS;
  195.         }
  196.     }
  197.     new msgadm[200];
  198.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de todos para %d.", MOEDAS);
  199.     SendClientMessageToAll(verdeclaro, msgadm);
  200.     new msgplayer[200];
  201.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
  202.     SendClientMessage(playerid, verdeclaro, msgplayer);
  203.  
  204.     return 1;
  205. }
  206.  
  207. CMD:setarmoedasv(playerid,params[])
  208. {
  209.     new ID, MOEDAS;
  210.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  211.     if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasv [ID][QUANTIDADE]");
  212.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
  213.     PlayerMoedasInfo[ID][moedas] = MOEDAS;
  214.     new msgadm[200];
  215.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de %s para %d.", GetName(ID), MOEDAS);
  216.     SendClientMessage(playerid, verdeclaro, msgadm);
  217.     new msgplayer[200];
  218.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
  219.     SendClientMessage(playerid, verdeclaro, msgplayer);
  220.     return 1;
  221. }
  222.  
  223. CMD:resetarmoedasv(playerid,params[])
  224. {
  225.     new ID;
  226.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  227.     if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /resetarmoedasv [ID]");
  228.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
  229.     PlayerMoedasInfo[ID][moedas] = 0;
  230.     new msgadm[200];
  231.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você resetou as moedas de %s.", GetName(ID));
  232.     SendClientMessage(playerid, verdeclaro, msgadm);
  233.     new msgplayer[200];
  234.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram resetadas pelo admin %s.", GetName(playerid));
  235.     SendClientMessage(playerid, verdeclaro, msgplayer);
  236.     return 1;
  237. }
  238.  
  239. CMD:vermoedasv(playerid,params[])
  240. {
  241.     new ID;
  242.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  243.     if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /vermoedasv [ID]");
  244.     new vermoedasv[200];
  245.     format(vermoedasv, sizeof(vermoedasv),"[MOEDAS] %s tem %d moedas verdes.",GetName(ID), GetPlayerMoedasV(ID));
  246.     SendClientMessage(playerid, verdeclaro, vermoedasv);
  247.     return 1;
  248. }
  249.  
  250. CMD:transferirmoedasv(playerid,params[])
  251. {
  252.     new ID, MOEDAS;
  253.     if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /transferirmoedasv [ID][QUANTIDADE]");
  254.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
  255.     if(MOEDAS >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
  256.     PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - MOEDAS;
  257.     PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
  258.     new msgadm[200];
  259.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você transferiu %d moedas para %s.", MOEDAS, GetName(ID));
  260.     SendClientMessage(playerid, verdeclaro, msgadm);
  261.     new msgplayer[200];
  262.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] %s transferiu %d moedas para você.", GetName(playerid), MOEDAS);
  263.     SendClientMessage(playerid, verdeclaro, msgplayer);
  264.     return 1;
  265. }
  266.  
  267. // Comandos Player
  268.  
  269. CMD:comprardinheiro(playerid,params[])
  270. {
  271.     new qtd;
  272.     if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprardinheiro [QUANTIDADE] - 10000 Reais = 10 MV");
  273.     if(qtd < 10000 || qtd > 500000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 10000 Reais - Valor Máximo: 500000 Reais");
  274.     if(qtd/1000 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
  275.     PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/1000;
  276.     GivePlayerMoney(playerid, qtd);
  277.     return 1;
  278. }
  279.  
  280. CMD:comprarscore(playerid,params[])
  281. {
  282.     new qtd;
  283.     if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprarscore [QUANTIDADE] - 1000 Score = 10 MV");
  284.     if(qtd < 1000 || qtd > 50000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 1000 Score - Valor Máximo: 50000 Score por compra.");
  285.     if(qtd/100 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
  286.     PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/100;
  287.     SetPlayerScore(playerid,GetPlayerScore(playerid) +qtd);
  288.     return 1;
  289. }
  290.  
  291.  
  292. // Stocks
  293.  
  294. stock GetName(playerid)
  295. {
  296.     new name[24];
  297.     GetPlayerName(playerid,name,24);
  298.     return name;
  299. }
  300.  
  301. stock CriarMoedas(playerid)
  302. {
  303.     new arquivo[36];
  304.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  305.     DOF2_CreateFile(arquivo);
  306.     DOF2_SetInt(arquivo, "moedas", 0);
  307.     DOF2_SaveFile();
  308.     PlayerMoedasInfo[playerid][moedas] = 0;
  309. }
  310.  
  311. stock CarregarMoedas(playerid)
  312. {
  313.     new arquivo[36];
  314.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  315.     PlayerMoedasInfo[playerid][moedas] = 0;
  316.     PlayerMoedasInfo[playerid][moedas] = DOF2_GetInt(arquivo, "moedas");
  317.  
  318.  
  319. }
  320.  
  321. stock SalvarMoedas(playerid)
  322. {
  323.     new arquivo[36];
  324.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  325.     DOF2_SetInt(arquivo, "moedas", PlayerMoedasInfo[playerid][moedas]);
  326.     DOF2_SaveFile();
  327. }
  328.  
  329. stock GetPlayerMoedasV(playerid)
  330. {
  331.     return MoedasV[playerid];
  332. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement