Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Sistema de Moedas Verdes v2.0 - by BrinqueDo
- Versão 1.0 - Créditos BrinqueDo
- - Salvamento de moedas para cada usuario em DOF2.
- - Primeiro comando de compra com mv's criados para seguirem o exemplo.
- - Comando /moedasv criado para ver todos os comandos do FS
- - Verifica se o usuario tem ou não mv's suficientes para efetuar a compra.
- Versão 2.0 - Créditos BrinqueDo
- - Consertado bugs e agora funcionando na maioria dos GM'S
- - Adicionada função de ver moedas.
- - No caso de contas novas, não é preciso relogar para ativar as mv's.
- - 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)
- Versão 2.1 - Créditos BrinqueDo
- - Adicionado comando de transferir moedas entre players.
- Créditos: Criação do nome - BPF / Criação do code: BriqueDo
- Requisitos:
- - É necessario ter o plugin sscanf.inc dentro da pasta plugins no diretorio do seu servidor.
- - Ter a linha "plugins sscanf" ao seu server.cfg.
- - Ter a pasta moedas criada dentro da pasta scriptfiles do diretorio do seu servirdor. (SEUSERVIDOR/scriptfiles/moedas).
- */
- #include <a_samp>
- #include <DOF2>
- #include <zcmd>
- #include <sscanf2>
- //Defines
- #define amarelo 0xFFFF00FF
- #define azul 0x058AFFFF
- #define rosa 0xFF05CDFF
- #define verde 0x33AA33AA
- #define vermelho 0xFFFFFFAA
- #define branco 0xFFFFFFFF
- #define preto 0x000000FF
- #define cinza 0x878787FF
- #define azulclaro 0x03F2FFFF
- #define verdeclaro 0x03FF35FF
- #define roxo 0x7D03FFFF
- #define roxoclaro 0x9A03FFFF
- #define laranja 0xFF7403FF
- //enum's
- enum MoedasInfo
- {
- moedas,
- }
- // News
- new PlayerMoedasInfo[MAX_PLAYERS][MoedasInfo];
- new MoedasV[MAX_PLAYERS];
- new Text:Moedas;
- // Forwards
- forward MoedasVerdes(playerid);
- //Publics
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("Sistema de Moedas Verdes - by BrinqueDo");
- print("--------------------------------------\n");
- SetTimer("MoedasVerdes",1000, 1); // Fica atualizando o numero de moedas
- return 1;
- }
- main (){}
- public OnPlayerConnect(playerid)
- {
- new nome[MAX_PLAYER_NAME];
- new arquivo[40];
- GetPlayerName(playerid, nome, 32);
- format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
- if(DOF2_FileExists(arquivo))
- {
- CarregarMoedas(playerid);
- }
- else
- {
- CriarMoedas(playerid);
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- TextDrawShowForPlayer(playerid, Moedas);
- }
- public MoedasVerdes(playerid)
- {
- TextDrawDestroy(Moedas);
- new str[128];
- format(str, 256, "~g~MV~r~:~w~%d", PlayerMoedasInfo[playerid][moedas]);
- Moedas = TextDrawCreate(496.000000, 122.000000,str);
- TextDrawBackgroundColor(Moedas, 255);
- TextDrawFont(Moedas, 2);
- TextDrawLetterSize(Moedas, 0.509999, 2.100000);
- TextDrawColor(Moedas, -1);
- TextDrawSetOutline(Moedas, 1);
- TextDrawSetProportional(Moedas, 0);
- for(new i; i < MAX_PLAYERS; i ++)
- {
- if(IsPlayerConnected(i))
- {
- TextDrawHideForPlayer(i, Moedas);
- TextDrawShowForPlayer(i, Moedas);
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SalvarMoedas(playerid);
- return 1;
- }
- public OnFilterScriptExit()
- {
- TextDrawHideForAll(Moedas);
- TextDrawDestroy(Moedas);
- DOF2_Exit();
- return 1;
- }
- CMD:moedasverdes(playerid)
- {
- SendClientMessage(playerid, azul, "Comandos Player: /comprardinheiro /comprarscore /transferirmoedasv");
- SendClientMessage(playerid, azul, "Ajuda: Você ganha moedas verdes em eventos.");
- return 1;
- }
- CMD:moedasvadmin(playerid)
- {
- SendClientMessage(playerid, azul, "Comandos Admin: /darmoedasv - /darmoedasvtodos - /setarmoedasv - /setarmoedasvtodos - /resetarmoedasv - /vermoedas");
- SendClientMessage(playerid, azul, "Ajuda: Você precisa estar logado na rcon. (/rcon login [senha])");
- return 1;
- }
- // Comandos Admin
- CMD:darmoedasv(playerid,params[])
- {
- new ID, MOEDAS;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
- if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasv [ID][QUANTIDADE]");
- if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
- PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
- new msgadm[200];
- format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para %s.", MOEDAS, GetName(ID));
- SendClientMessage(playerid, verdeclaro, msgadm);
- new msgplayer[200];
- format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
- SendClientMessage(playerid, verdeclaro, msgplayer);
- return 1;
- }
- CMD:darmoedasvtodos(playerid,params[])
- {
- new MOEDAS;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
- if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasvtodos [QUANTIDADE]");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- PlayerMoedasInfo[i][moedas] = PlayerMoedasInfo[i][moedas] + MOEDAS;
- }
- }
- new msgadm[200];
- format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para todos.", MOEDAS);
- SendClientMessage(playerid, verdeclaro, msgadm);
- new msgplayer[200];
- format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
- SendClientMessage(playerid, verdeclaro, msgplayer);
- return 1;
- }
- CMD:setarmoedasvtodos(playerid,params[])
- {
- new MOEDAS;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
- if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasvtodos [QUANTIDADE]");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- PlayerMoedasInfo[i][moedas] = MOEDAS;
- }
- }
- new msgadm[200];
- format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de todos para %d.", MOEDAS);
- SendClientMessageToAll(verdeclaro, msgadm);
- new msgplayer[200];
- format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
- SendClientMessage(playerid, verdeclaro, msgplayer);
- return 1;
- }
- CMD:setarmoedasv(playerid,params[])
- {
- new ID, MOEDAS;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
- if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasv [ID][QUANTIDADE]");
- if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
- PlayerMoedasInfo[ID][moedas] = MOEDAS;
- new msgadm[200];
- format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de %s para %d.", GetName(ID), MOEDAS);
- SendClientMessage(playerid, verdeclaro, msgadm);
- new msgplayer[200];
- format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
- SendClientMessage(playerid, verdeclaro, msgplayer);
- return 1;
- }
- CMD:resetarmoedasv(playerid,params[])
- {
- new ID;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
- if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /resetarmoedasv [ID]");
- if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
- PlayerMoedasInfo[ID][moedas] = 0;
- new msgadm[200];
- format(msgadm, sizeof(msgadm),"[MOEDAS] Você resetou as moedas de %s.", GetName(ID));
- SendClientMessage(playerid, verdeclaro, msgadm);
- new msgplayer[200];
- format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram resetadas pelo admin %s.", GetName(playerid));
- SendClientMessage(playerid, verdeclaro, msgplayer);
- return 1;
- }
- CMD:vermoedasv(playerid,params[])
- {
- new ID;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
- if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /vermoedasv [ID]");
- new vermoedasv[200];
- format(vermoedasv, sizeof(vermoedasv),"[MOEDAS] %s tem %d moedas verdes.",GetName(ID), GetPlayerMoedasV(ID));
- SendClientMessage(playerid, verdeclaro, vermoedasv);
- return 1;
- }
- CMD:transferirmoedasv(playerid,params[])
- {
- new ID, MOEDAS;
- if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /transferirmoedasv [ID][QUANTIDADE]");
- if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
- if(MOEDAS >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
- PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - MOEDAS;
- PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
- new msgadm[200];
- format(msgadm, sizeof(msgadm),"[MOEDAS] Você transferiu %d moedas para %s.", MOEDAS, GetName(ID));
- SendClientMessage(playerid, verdeclaro, msgadm);
- new msgplayer[200];
- format(msgplayer, sizeof(msgplayer),"[MOEDAS] %s transferiu %d moedas para você.", GetName(playerid), MOEDAS);
- SendClientMessage(playerid, verdeclaro, msgplayer);
- return 1;
- }
- // Comandos Player
- CMD:comprardinheiro(playerid,params[])
- {
- new qtd;
- if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprardinheiro [QUANTIDADE] - 10000 Reais = 10 MV");
- if(qtd < 10000 || qtd > 500000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 10000 Reais - Valor Máximo: 500000 Reais");
- if(qtd/1000 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
- PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/1000;
- GivePlayerMoney(playerid, qtd);
- return 1;
- }
- CMD:comprarscore(playerid,params[])
- {
- new qtd;
- if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprarscore [QUANTIDADE] - 1000 Score = 10 MV");
- if(qtd < 1000 || qtd > 50000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 1000 Score - Valor Máximo: 50000 Score por compra.");
- if(qtd/100 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
- PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/100;
- SetPlayerScore(playerid,GetPlayerScore(playerid) +qtd);
- return 1;
- }
- // Stocks
- stock GetName(playerid)
- {
- new name[24];
- GetPlayerName(playerid,name,24);
- return name;
- }
- stock CriarMoedas(playerid)
- {
- new arquivo[36];
- format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
- DOF2_CreateFile(arquivo);
- DOF2_SetInt(arquivo, "moedas", 0);
- DOF2_SaveFile();
- PlayerMoedasInfo[playerid][moedas] = 0;
- }
- stock CarregarMoedas(playerid)
- {
- new arquivo[36];
- format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
- PlayerMoedasInfo[playerid][moedas] = 0;
- PlayerMoedasInfo[playerid][moedas] = DOF2_GetInt(arquivo, "moedas");
- }
- stock SalvarMoedas(playerid)
- {
- new arquivo[36];
- format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
- DOF2_SetInt(arquivo, "moedas", PlayerMoedasInfo[playerid][moedas]);
- DOF2_SaveFile();
- }
- stock GetPlayerMoedasV(playerid)
- {
- return MoedasV[playerid];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement