Advertisement
BrinqueDo

Sistema de Moedas Verdes 2.0

Oct 17th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.80 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.     Créditos: Criação do nome - BPF / Criação do code: BriqueDo
  16.  
  17.     Requisitos:
  18.     - É necessario ter o plugin sscanf.inc dentro da pasta plugins no diretorio do seu servidor.
  19.     - Ter a linha "plugins sscanf" ao seu server.cfg.
  20.     - Ter a pasta moedas criada dentro da pasta scriptfiles do diretorio do seu servirdor. (SEUSERVIDOR/scriptfiles/moedas).
  21. */
  22.  
  23. #include <a_samp>
  24. #include <DOF2>
  25. #include <zcmd>
  26. #include <sscanf2>
  27.  
  28. //Defines
  29. #define amarelo 0xFFFF00FF
  30. #define azul 0x058AFFFF
  31. #define rosa 0xFF05CDFF
  32. #define verde 0x33AA33AA
  33. #define vermelho 0xFFFFFFAA
  34. #define branco 0xFFFFFFFF
  35. #define preto 0x000000FF
  36. #define cinza 0x878787FF
  37. #define azulclaro 0x03F2FFFF
  38. #define verdeclaro 0x03FF35FF
  39. #define roxo 0x7D03FFFF
  40. #define roxoclaro 0x9A03FFFF
  41. #define laranja 0xFF7403FF
  42.  
  43. //enum's
  44. enum MoedasInfo
  45. {
  46.     moedas,
  47. }
  48. // News
  49. new PlayerMoedasInfo[MAX_PLAYERS][MoedasInfo];
  50. new MoedasV[MAX_PLAYERS];
  51. new Text:Moedas;
  52.  
  53. // Forwards
  54. forward MoedasVerdes(playerid);
  55.  
  56. //Publics
  57. public OnFilterScriptInit()
  58. {
  59.     print("\n--------------------------------------");
  60.     print("Sistema de Moedas Verdes - by BrinqueDo");
  61.     print("--------------------------------------\n");
  62.     SetTimer("MoedasVerdes",1000, 1); // Fica atualizando o numero de moedas
  63.     return 1;
  64. }
  65.  
  66. main (){}
  67. public OnPlayerConnect(playerid)
  68. {
  69.  
  70.     new nome[MAX_PLAYER_NAME];
  71.     new arquivo[40];
  72.     GetPlayerName(playerid, nome, 32);
  73.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  74.     if(DOF2_FileExists(arquivo))
  75.     {
  76.         CarregarMoedas(playerid);
  77.     }
  78.     else
  79.     {
  80.         CriarMoedas(playerid);
  81.     }
  82.     return 1;
  83. }
  84.  
  85. public OnPlayerSpawn(playerid)
  86. {
  87.     TextDrawShowForPlayer(playerid, Moedas);
  88. }
  89.  
  90. public MoedasVerdes(playerid)
  91. {
  92.     TextDrawDestroy(Moedas);
  93.     new str[128];
  94.     format(str, 256, "~g~MV~r~:~w~%d", PlayerMoedasInfo[playerid][moedas]);
  95.     Moedas = TextDrawCreate(496.000000, 122.000000,str);
  96.     TextDrawBackgroundColor(Moedas, 255);
  97.     TextDrawFont(Moedas, 2);
  98.     TextDrawLetterSize(Moedas, 0.509999, 2.100000);
  99.     TextDrawColor(Moedas, -1);
  100.     TextDrawSetOutline(Moedas, 1);
  101.     TextDrawSetProportional(Moedas, 0);
  102.  
  103.     for(new i; i < MAX_PLAYERS; i ++)
  104.     {
  105.         if(IsPlayerConnected(i))
  106.         {
  107.             TextDrawHideForPlayer(i, Moedas);
  108.             TextDrawShowForPlayer(i, Moedas);
  109.         }
  110.     }
  111.     return 1;
  112. }
  113.  
  114. public OnPlayerDisconnect(playerid, reason)
  115. {
  116.     SalvarMoedas(playerid);
  117.     return 1;
  118. }
  119.  
  120. public OnFilterScriptExit()
  121. {
  122.     TextDrawHideForAll(Moedas);
  123.     TextDrawDestroy(Moedas);
  124.     DOF2_Exit();
  125.     return 1;
  126. }
  127.  
  128.  
  129. CMD:moedasv(playerid)
  130. {
  131.     SendClientMessage(playerid, azul, "Comandos Admin: /darmoedasv - /darmoedasvtodos - /setarmoedasv - /setarmoedasvtodos - /resetarmoedasv - /vermoedas");
  132.     SendClientMessage(playerid, azul, "Comandos Player: /comprardinheiro");
  133.     return 1;
  134. }
  135.  
  136. // Comandos Admin
  137.  
  138. CMD:darmoedasv(playerid,params[])
  139. {
  140.     new ID, MOEDAS;
  141.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  142.     if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasv [ID][QUANTIDADE]");
  143.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
  144.     PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
  145.     new msgadm[200];
  146.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para %s.", MOEDAS, GetName(ID));
  147.     SendClientMessage(playerid, verdeclaro, msgadm);
  148.     new msgplayer[200];
  149.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
  150.     SendClientMessage(playerid, verdeclaro, msgplayer);
  151.     return 1;
  152. }
  153.  
  154. CMD:darmoedasvtodos(playerid,params[])
  155. {
  156.     new MOEDAS;
  157.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  158.     if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasvtodos [QUANTIDADE]");
  159.     for(new i = 0; i < MAX_PLAYERS; i++)
  160.     {
  161.         if(IsPlayerConnected(i))
  162.         {
  163.             PlayerMoedasInfo[i][moedas] = PlayerMoedasInfo[i][moedas] + MOEDAS;
  164.         }
  165.     }
  166.     new msgadm[200];
  167.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para todos.", MOEDAS);
  168.     SendClientMessage(playerid, verdeclaro, msgadm);
  169.     new msgplayer[200];
  170.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
  171.     SendClientMessage(playerid, verdeclaro, msgplayer);
  172.  
  173.     return 1;
  174.    
  175. }
  176.  
  177. CMD:setarmoedasvtodos(playerid,params[])
  178. {
  179.     new MOEDAS;
  180.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  181.     if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasvtodos [QUANTIDADE]");
  182.     for(new i = 0; i < MAX_PLAYERS; i++)
  183.     {
  184.         if(IsPlayerConnected(i))
  185.         {
  186.             PlayerMoedasInfo[i][moedas] = MOEDAS;
  187.         }
  188.     }
  189.     new msgadm[200];
  190.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de todos para %d.", MOEDAS);
  191.     SendClientMessageToAll(verdeclaro, msgadm);
  192.     new msgplayer[200];
  193.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
  194.     SendClientMessage(playerid, verdeclaro, msgplayer);
  195.  
  196.     return 1;
  197. }
  198.  
  199. CMD:setarmoedasv(playerid,params[])
  200. {
  201.     new ID, MOEDAS;
  202.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  203.     if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasv [ID][QUANTIDADE]");
  204.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
  205.     PlayerMoedasInfo[ID][moedas] = MOEDAS;
  206.     new msgadm[200];
  207.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de %s para %d.", GetName(ID), MOEDAS);
  208.     SendClientMessage(playerid, verdeclaro, msgadm);
  209.     new msgplayer[200];
  210.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
  211.     SendClientMessage(playerid, verdeclaro, msgplayer);
  212.     return 1;
  213. }
  214.  
  215. CMD:resetarmoedasv(playerid,params[])
  216. {
  217.     new ID;
  218.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  219.     if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /resetarmoedasv [ID]");
  220.     if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
  221.     PlayerMoedasInfo[ID][moedas] = 0;
  222.     new msgadm[200];
  223.     format(msgadm, sizeof(msgadm),"[MOEDAS] Você resetou as moedas de %s.", GetName(ID));
  224.     SendClientMessage(playerid, verdeclaro, msgadm);
  225.     new msgplayer[200];
  226.     format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram resetadas pelo admin %s.", GetName(playerid));
  227.     SendClientMessage(playerid, verdeclaro, msgplayer);
  228.     return 1;
  229. }
  230.  
  231. CMD:vermoedasv(playerid,params[])
  232. {
  233.     new ID;
  234.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
  235.     if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /vermoedasv [ID]");
  236.     new vermoedasv[200];
  237.     format(vermoedasv, sizeof(vermoedasv),"[MOEDAS] %s tem %d moedas verdes.",GetName(ID), GetPlayerMoedasV(ID));
  238.     SendClientMessage(playerid, verdeclaro, vermoedasv);
  239.     return 1;
  240. }
  241.  
  242. // Comandos Player
  243.  
  244. CMD:comprardinheiro(playerid,params[])
  245. {
  246.     new qtd;
  247.     if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprardinheiro [QUANTIDADE] - 10000 Reais = 10 MV");
  248.     if(qtd < 10000 || qtd > 500000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 10000 Reais - Valor Máximo: 500000 Reais");
  249.     if(qtd/1000 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
  250.     PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/1000;
  251.     GivePlayerMoney(playerid, qtd);
  252.     return 1;
  253. }
  254.  
  255.  
  256. // Stocks
  257.  
  258. stock GetName(playerid)
  259. {
  260.     new name[24];
  261.     GetPlayerName(playerid,name,24);
  262.     return name;
  263. }
  264.  
  265. stock CriarMoedas(playerid)
  266. {
  267.     new arquivo[36];
  268.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  269.     DOF2_CreateFile(arquivo);
  270.     DOF2_SetInt(arquivo, "moedas", 0);
  271.     DOF2_SaveFile();
  272.     PlayerMoedasInfo[playerid][moedas] = 0;
  273. }
  274.  
  275. stock CarregarMoedas(playerid)
  276. {
  277.     new arquivo[36];
  278.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  279.     PlayerMoedasInfo[playerid][moedas] = 0;
  280.     PlayerMoedasInfo[playerid][moedas] = DOF2_GetInt(arquivo, "moedas");
  281.  
  282.  
  283. }
  284.  
  285. stock SalvarMoedas(playerid)
  286. {
  287.     new arquivo[36];
  288.     format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
  289.     DOF2_SetInt(arquivo, "moedas", PlayerMoedasInfo[playerid][moedas]);
  290.     DOF2_SaveFile();
  291. }
  292.  
  293. stock GetPlayerMoedasV(playerid)
  294. {
  295.     return MoedasV[playerid];
  296. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement