Sistema de LEVEL UP -
tcharles2011 - 27.06.2017
Bom estou procurando um sistema de LEVEL UP estilo da GM DTEN que os jogadores upa por tempo jogado EX:
TEMPO_DE_EXP 5 minutos
MAX_EXP 5
LEVEL_POR_EXP 1
queria algo parecido sendo SISTEMA DE level por tempo jogado ta mas que bom.
Re: Sistema de LEVEL UP -
MorteAmerica - 28.06.2017
Topo do GM
PHP код:
#include <dini> //include de salvamento de dados.
new EXP[MAX_PLAYERS], Score[MAX_PLAYERS]; // Variбveis de armazenamento de dados.
new TimerEXP[MAX_PLAYERS]; // Variбvel de armazenamento de Timer.
OnPlayerConnect
PHP код:
new arq[128]; // Variavel que armazena o caminho do arquivo da conta.
format(arq, sizeof(arq), "Contas/%s.ini", PlayerName(playerid)); //Formatando a variбvel para o caminho do arquivo usando seu nick.
if(dini_Exists(arq)) //Verificando se o arquivo existe
{
EXP[playerid] = dini_Int(arq, "EXP"); //Getando a informaзгo do arquivo para variбvel.
Score[playerid] = dini_Int(arq, "Score"); // o mesmo dito a cima
TimerEXP[playerid] = SetTimerEx("OnPlayerEXP", 600000, true, "d", playerid); // criando um timer de 10 minutos que se repetirб atй ser destruнdo.
}
OnPlayerDisconnect
PHP код:
new arq[128]; // Variavel que armazena o caminho do arquivo da conta.
format(arq, sizeof(arq), "Contas/%s.ini", PlayerName(playerid)); //Formatand a variavel para o caminho do arquivo usando seu nick.
if(!dini_Exists(arq)) dini_Create(arq); // Verifica se o arquivo NГO existe, para poder cria-lo.
dini_IntSet(arq, "EXP", EXP[playerid]); //Geta as informaзхes da variavel para o arquivo.
dini_IntSet(arq, "Score", Score[playerid]);// o mesmo dito a cima
KillTimer(TimerEXP[playerid]); //Destroi o timer.
Final do GM
PHP код:
forward OnPlayerEXP(playerid); //Declarando a callback
public OnPlayerEXP(playerid) // criando a callback
{
if(EXP[playerid] < 6) //Verificando se o EXP e menor que 6
{
EXP[playerid] ++; //somando + 1 no valor atual da variбvel.
SendClientMessage(playerid, -1, "**Vocк somou + 1 EXP.");
}
else //Se nгo for menor que 6.
{
Score[playerid]++; //Soma um level na variбvel.
EXP[playerid] = 0; //Seta o EXP para 0 pois o player ja somou 6 EXP de 10 minutos totalizando 1 hora.
SetPlayerScore(playerid, Score[playerid]); // geta o valor salvo na variбvel para o a funзгo score do proprio SAMP.(Evita que aqueles ******'s adicionem valores, pois assim que somar 1 score na variбvel, os adicionados pelo hack seriam resetados)
SendClientMessage(playerid, -1, "**Vocк upou + 1 Score."); //Manda uma msg avisando.
}
}
stock PlayerName(playerid) // Este code getarб o nick do Player.
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
return Nome;
}
Fiz na corrida, se tiver algum erro sу me avisar.
Re: Sistema de LEVEL UP -
tcharles2011 - 30.06.2017
VLW ai irei testar agуra
Re: Sistema de LEVEL UP -
tcharles2011 - 30.06.2017
VLW ai funcionou
Re: Sistema de LEVEL UP -
Jonorusc - 30.06.2017
Quote:
Originally Posted by tcharles2011
VLW ai funcionou
|
coloca uma progressbar
PHP код:
#include <progress> //para podermos usa as funзхes
PHP код:
OnGameModeinit
EXPP = CreateProgressBar(170.00, 424.00, 279.50, 3.50, -1, 120.0); //essa posiзгo e em baixo da tela, tu criar uma
progress etc
SetProgressBarMaxValue(EXPP, 60); //vou da o valor maximo a ela de 60 pq sгo 6 upzzinhos ate o up(meu jeito :))
GamemodeExit
PHP код:
HideProgressBarForAll(EXPP);
OnplayerSpawn //Nos queremos que a progressbar so aparece quando ele spawnar, para n fica a barra la entrada de login etc
PHP код:
ShowProgressBarForPlayer(playerid, EXPP);
SetProgressBarColor(XPA, COR_DA_PROGRESSBAR);
agora vem a public
PHP код:
public OnPlayerEXP(playerid) // criando a callback
{
if(EXP[playerid] == 1)
{
SetProgressBarValue(EXPP, 10.0);
UpdateProgressBar(EXPP, playerid);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,"+>EXP!",1000,2);
EXP[playerid] ++; //somando + 1 no valor atual da variбvel.
SendClientMessage(playerid, -1, "**Vocк somou + 1 EXP.");
}
if(EXP[playerid] == 2)
{
SetProgressBarValue(EXPP, 20.0);
UpdateProgressBar(EXPP, playerid);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,"+>EXP!",1000,2);
EXP[playerid] ++; //somando + 1 no valor atual da variбvel.
SendClientMessage(playerid, -1, "**Vocк somou + 1 EXP.");
}
if(EXP[playerid] == 3)
{
SetProgressBarValue(EXPP, 30.0);
UpdateProgressBar(EXPP, playerid);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,"+>EXP!",1000,2);
EXP[playerid] ++; //somando + 1 no valor atual da variбvel.
SendClientMessage(playerid, -1, "**Vocк somou + 1 EXP.");
}
if(EXP[playerid] == 4)
{
SetProgressBarValue(EXPP, 40.0);
UpdateProgressBar(EXPP, playerid);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,"+>EXP!",1000,2);
EXP[playerid] ++; //somando + 1 no valor atual da variбvel.
SendClientMessage(playerid, -1, "**Vocк somou + 1 EXP.");
}
if(EXP[playerid] == 5)
{
SetProgressBarValue(EXPP, 50.0);
UpdateProgressBar(EXPP, playerid);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,"+>EXP!",1000,2);
EXP[playerid] ++; //somando + 1 no valor atual da variбvel.
SendClientMessage(playerid, -1, "**Vocк somou + 1 EXP.");
}
if(EXP[playerid] == 6)
{
SetProgressBarValue(EXPP, 60.0);
UpdateProgressBar(EXPP, playerid);
Score[playerid]++; //Soma um level na variбvel.
EXP[playerid] = 0; //Seta o EXP para 0 pois o player ja somou 6 EXP de 10 minutos totalizando 1 hora.
SetPlayerScore(playerid, Score[playerid]);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,">UP<",1000,2);
SendClientMessage(playerid, -1, "**Vocк upou + 1 Score."); //Manda uma msg avisando.
SetProgressBarValue(XPA, -00.0);
UpdateProgressBar(XPA, playerid);
}
}