[Pedido] Sistema de EXP - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (
https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Pedido] Sistema de EXP (
/showthread.php?tid=639706)
Sistema de EXP -
RemorseTheCoder - 21.08.2017
Preciso de um Sistema de EXP Que funcione desse estilo, porfavor \/
Score = 0
Total de EXP Que vocк tem que ter para pegar level 1 = 20
No caso Ficaria = 0/20
E AO Atingir 20 de EXP Vocк vai pro Level 1
E assim adiante atй o level 1000(A Quantia de EXP Que vocк tem que pegar, vai aumentando no decorrer do tempo em 20 e 20, Exemplo : 0/20, 0/40, 0/60, E ai vai atй o level 1000)
Estou precisando de um sistema assim, podem me ajudar? plz
Agradeзo desde jб!
Re: Sistema de EXP -
MorteAmerica - 21.08.2017
PHP код:
#include <a_samp>
#define TimerEXP 1 // = 1 minuto. Mude a seu gosto.
enum enum_pInfo
{
EXP,
Score,
TimerEXP,
}
new pInfo[MAX_PLAYERS][enum_pInfo];
public OnPlayerConnect(playerid)
{
pInfo[playerid][TimerEXP] = SetTimerEx("OnPlayerEXP", TimerEXP*60000, true, "d", playerid); // Criando um timer que irб se repetir pelo tempo que vocк escolher somando um EXP para o Player.
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
KillTimer(pInfo[playerid][TimerEXP]); // Termina o timer pois player desconectado nгo Upa.
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/meuexp", true)) // Comando para ver seu EXP e Score
{
new string[128];
format(string, sizeof(string), "**Seu Score atual й: %d **Seu EXP atual й: %d", pInfo[playerid][Score], pInfo[playerid][EXP]);
SendClientMessage(playerid, -1, string);
return 1;
}
return 0;
}
public OnPlayerEXP(playerid)
{
pInfo[playerid][EXP]++; // Soma 1 ao valor da variavel.
if((pInfo[playerid][Score]*10) == pInfo[playerid][EXP]) //Se o EXP for igual ao level vezes 10. 1*10=10, 2*10=20....
{
pInfo[playerid][Score]++; // Soma um Score pois vocк somou o valor esperado de EXP's
pInfo[playerid][EXP] = 0; // Retorna o EXP a 0.
SendClientMessage(playerid, -1, "**Vocк somou +1 Score.");
}
else
{
SendClientMessage(playerid, -1, "**Vocк somou +1 EXP.");
}
SetPlayerScore(playerid, pInfo[playerid][Score]);
}
Fiz agora bem rapido. Teste, e o mais importante, entenda. Qualquer BUG me avise.