Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Sistema de niveis
- By Lucas_Alemao
- Ou
- [iPs]Lucas
- Não retire os créditos
- */
- #include a_samp
- #include dof2
- #include zcmd
- #include sscanf2
- //Defina o tempo (em minutos) que o player irá ganhar +resp.
- #define TEMPO_RESPEITO 15 //aqui no caso é 15 minutos
- //Defina com quantos respeitos o jogador irá upar de nivel.
- #define RESPEITO_UPAR 10
- //Defina se o score do player será o mesmo do Nivel. true ou false
- #define SCORE_NIVEL true
- //quer usar os text draw embaixo do hud? true ou false
- #define USAR_TEXTS true
- #define GetarDado(%0,%1) PlayerDados[%0][%1]
- #define NovoDado(%0,%1,%2,%3); PlayerDados[%0][%1] %2 %3;
- #define Loop(%0,%1) for(new %0 = 0; %0 < %1; ++%0)
- #define Msg SendClientMessage
- #define MsgAll SendClientMessageToAll
- #define Azul 0x1BA8E096
- #define Verde 0x3CE01B96
- #define Vermelho 0xFC353596
- /* VARIAVEIS E ARRAYS */
- enum Alemao
- {
- Respeito,
- Nivel
- }
- new PlayerDados[MAX_PLAYERS][Alemao];
- new TimerResp[MAX_PLAYERS];
- new stralemao[200];
- #if USAR_TEXTS == true
- new
- Text:Valor[MAX_PLAYERS],
- Text:Resp1[MAX_PLAYERS]
- ;
- #endif
- forward AtualizarResp(playerid);
- forward VerificarResp(playerid);
- public OnFilterScriptInit()
- {
- print("\n\n\nSistema de niveis By [iPs]Lucas Carrogado com sucesso.\n\n\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- Loop(i, MAX_PLAYERS)
- {
- SalvarPlayer(i);
- }
- DOF2_Exit();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerDados[playerid][Nivel] = 0;
- PlayerDados[playerid][Respeito] = 0;
- AtualizarDados(playerid);
- TimerResp[playerid] = SetTimerEx("AtualizarResp", TEMPO_RESPEITO*60000, true, "i", playerid);
- NovoDado(playerid, Nivel, =, DOF2_GetInt(stralemao, "Nivel"));
- NovoDado(playerid, Respeito, =, DOF2_GetInt(stralemao, "Respeito"));
- VerificarResp(playerid);
- format(stralemao, sizeof stralemao, "Bem vindo %s, seu nivel é %d e você tem %d respeito.", Nome(playerid), GetarDado(playerid, Nivel), GetarDado(playerid, Respeito));
- Msg(playerid, Verde, stralemao);
- AtualizarTexts(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- KillTimer(TimerResp[playerid]);
- return 0;
- }
- CMD:niveis(playerid)
- {
- Msg(playerid, Azul, "Player online e seus respectivos níveis:");
- Loop(i, MAX_PLAYERS)
- {
- if(IsPlayerConnected(i))
- {
- format(stralemao, sizeof stralemao, "Nome: %s - Nivel: %d - Respeito: %d", Nome(i), GetarDado(i, Nivel), GetarDado(i, Respeito));
- Msg(playerid, Verde, stralemao);
- }
- }
- return 1;
- }
- CMD:setarnivel(playerid, params[])
- {
- new
- ID,
- Level;
- if(!IsPlayerAdmin(playerid)) return Msg(playerid, Vermelho, "Você precisa ser admin para usar esse comando.");
- if(sscanf(params, "ui", ID, Level)) return Msg(playerid, Verde, "Use /setarnivel [ID] [Nivel]");
- NovoDado(ID, Nivel, =, Level);
- format(stralemao, sizeof stralemao, "O Admin %s setou o nivel de %s para %d.", Nome(playerid), Nome(ID), Level);
- MsgAll(Verde, stralemao);
- AtualizarTexts(ID);
- return 1;
- }
- CMD:darnivel(playerid, params[])
- {
- new
- ID,
- Level;
- if(!IsPlayerAdmin(playerid)) return Msg(playerid, Vermelho, "Você precisa ser admin para usar esse comando.");
- if(sscanf(params, "ui", ID, Level)) return Msg(playerid, Verde, "Use /darnivel [ID] [Nivel]");
- NovoDado(ID, Nivel, +=, Level);
- format(stralemao, sizeof stralemao, "O Admin %s deu nivel %s para %d.", Nome(playerid), Nome(ID), Level);
- MsgAll(Verde, stralemao);
- AtualizarTexts(ID);
- return 1;
- }
- CMD:setarrespeito(playerid, params[])
- {
- new
- ID,
- Resp,
- Total;
- if(!IsPlayerAdmin(playerid)) return Msg(playerid, Vermelho, "Você precisa ser admin para usar esse comando.");
- if(sscanf(params, "ui", ID, Resp)) return Msg(playerid, Verde, "Use /setarrespeito [ID] [Respeito]");
- Total = GetarDado(ID, Respeito);
- NovoDado(ID, Respeito, =, Resp);
- if(GetarDado(ID, Respeito) > RESPEITO_UPAR)
- {
- format(stralemao, sizeof stralemao, "O respeito que você deu ao player (%d) é maior que respeito maximo (%d).", Resp, RESPEITO_UPAR);
- Msg(playerid, Azul, stralemao);
- NovoDado(ID, Respeito, =, Total);
- return 1;
- }
- format(stralemao, sizeof stralemao, "O Admin %s setou o nivel de %s para %d.", Nome(playerid), Nome(ID), Resp);
- MsgAll(Verde, stralemao);
- AtualizarTexts(ID);
- return 1;
- }
- CMD:darrespeito(playerid, params[])
- {
- new
- ID,
- Resp,
- Total;
- if(!IsPlayerAdmin(playerid)) return Msg(playerid, Vermelho, "Você precisa ser admin para usar esse comando.");
- if(sscanf(params, "ui", ID, Resp)) return Msg(playerid, Verde, "Use /darrespeito [ID] [Respeito]");
- Total = GetarDado(ID, Respeito);
- NovoDado(ID, Respeito, +=, Resp);
- if(GetarDado(ID, Respeito) > RESPEITO_UPAR)
- {
- format(stralemao, sizeof stralemao, "A soma do respeito que o player tem (%d) mais o respeito que você deu (%d) é maior que respeito maximo (%d).", Total, Resp, RESPEITO_UPAR);
- Msg(playerid, Azul, stralemao);
- NovoDado(ID, Respeito, =, Total);
- return 1;
- }
- format(stralemao, sizeof stralemao, "O Admin %s Deu %d niveis a %s.", Nome(playerid), Resp, Nome(ID));
- MsgAll(Verde, stralemao);
- AtualizarTexts(ID);
- return 1;
- }
- public AtualizarResp(playerid)
- {
- NovoDado(playerid, Respeito, +=, 1);
- format(stralemao, sizeof stralemao, "Parabens %s, Você acaba de ganhar um 1 respeito", Nome(playerid));
- Msg(playerid, Azul, stralemao);
- VerificarResp(playerid);
- SalvarPlayer(playerid);
- AtualizarTexts(playerid);
- return 1;
- }
- public VerificarResp(playerid)
- {
- if(GetarDado(playerid, Respeito) == RESPEITO_UPAR)
- {
- NovoDado(playerid, Nivel, +=, 1);
- NovoDado(playerid, Respeito, =, 0);
- format(stralemao, sizeof(stralemao), "Parabens %s, você conseguiu %d respeitos e agora está nivel %d!", Nome(playerid), RESPEITO_UPAR, GetarDado(playerid, Nivel));
- Msg(playerid, Azul, stralemao);
- format(stralemao, sizeof stralemao, "O Jogador %s Acaba de upar 1 nivel, agora ele é level %d", Nome(playerid), GetarDado(playerid, Nivel));
- MsgAll(Verde, stralemao);
- SalvarPlayer(playerid);
- Atualizar(playerid);
- AtualizarTexts(playerid);
- }
- return 1;
- }
- stock Nome(playerid)
- {
- new pname[24];
- GetPlayerName(playerid, pname, 24);
- return pname;
- }
- stock Atualizar(playerid)
- {
- #if SCORE_NIVEL == true
- SetPlayerScore(playerid, GetarDado(playerid, Nivel));
- #else
- #pragma unused playerid
- #endif
- return 1;
- }
- stock SalvarPlayer(playerid)
- {
- format(stralemao, sizeof(stralemao), "LANIVEIS/%s.sav", Nome(playerid));
- if(!DOF2_FileExists(stralemao))
- {
- DOF2_CreateFile(stralemao);
- }
- DOF2_SetInt(stralemao, "Nivel", GetarDado(playerid, Nivel));
- DOF2_SetInt(stralemao, "Respeito", GetarDado(playerid, Respeito));
- DOF2_SaveFile();
- /* debug:
- printf("Nivel e respeito do jogador %s salvo com sucesso.", Nome(playerid)); */
- return 1;
- }
- stock AtualizarDados(playerid)
- {
- format(stralemao, sizeof(stralemao), "LANIVEIS/%s.sav", Nome(playerid));
- if(!DOF2_FileExists(stralemao))
- {
- printf("O arquivo do jogador %s não existia e o mesmo foi criado automaticamente.", Nome(playerid));
- DOF2_SetInt(stralemao, "Nivel", 0);
- DOF2_SetInt(stralemao, "Respeito", 0);
- DOF2_SaveFile();
- }
- return 1;
- }
- stock AtualizarTexts(playerid)
- {
- #if USAR_TEXTS == true
- //respeito
- TextDrawHideForPlayer(playerid, Valor[playerid]);
- format(stralemao, sizeof stralemao, "Respeito: %d", GetarDado(playerid, Respeito));
- Valor[playerid] = TextDrawCreate(490.000000, 130.000000, stralemao);
- TextDrawBackgroundColor(Valor[playerid], 255);
- TextDrawFont(Valor[playerid], 3);
- TextDrawLetterSize(Valor[playerid], 0.559999, 1.700000);
- TextDrawColor(Valor[playerid], -1);
- TextDrawSetOutline(Valor[playerid], 1);
- TextDrawSetProportional(Valor[playerid], 1);
- //nivel
- TextDrawHideForPlayer(playerid, Resp1[playerid]);
- format(stralemao, sizeof stralemao, "Nivel: %d", GetarDado(playerid, Nivel));
- Resp1[playerid] = TextDrawCreate(490.000000, 170.000000, stralemao);
- TextDrawBackgroundColor(Resp1[playerid], 255);
- TextDrawFont(Resp1[playerid], 3);
- TextDrawLetterSize(Resp1[playerid], 0.689999, 1.600000);
- TextDrawColor(Resp1[playerid], -1);
- TextDrawSetOutline(Resp1[playerid], 1);
- TextDrawSetProportional(Resp1[playerid], 1);
- TextDrawShowForPlayer(playerid, Valor[playerid]);
- TextDrawShowForPlayer(playerid, Resp1[playerid]);
- #else
- #pragma unused playerid
- #endif
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement