Algumas observaзхes/crнticas.
Vocк fez uma mб utilizaзгo do timer, a variбvel
segundos foi criada atoa, sendo que tava para criar/chamar/parar na prуpria public.
Timers para esse tipo de sistema nгo sгo precisos, o timer pode atrasar ou adiantar, recomendo o uso da include
timerfix para consertar isso, basta coloca-la no script e o problema estб resolvido.
LevelUP pode atй ser uma funзгo, mas nгo deixa de necessitar de um return. Toda funзгo/public/stock e etc necessita retornar algo.
Loops utilizando:
pawn Код:
for ( new i = 0; i < MAX_PLAYERS; i++ )
Nгo sгo otimizados, jб que irгo dar loops 500x ou atй 1000x dependendo da versгo do servidor, independente da capacidade do server. O ideal seria:
pawn Код:
for ( new slots = GetMaxPlayers ( ), i; i < slots; i++ )
Jб que
GetMaxPlayers irб obter a quantidade de slots do servidor e dar loop somente naquele valor.
Vocк poderia ter simplificado isso tudo:
pawn Код:
public OnPlayerDisconnect(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(arquivo, sizeof(arquivo), LEVEL, playername);
if(DOF2_FileExists(arquivo))
{
DOF2_SetInt(arquivo, "Segundos", PlayerInfo[playerid][pSegundos]);
DOF2_SetInt(arquivo, "Level", PlayerInfo[playerid][pLevel]);
DOF2_SaveFile();
}
else
{
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Segundos", PlayerInfo[playerid][pSegundos]);
DOF2_SetInt(arquivo, "Level", PlayerInfo[playerid][pLevel]);
DOF2_SaveFile();
}
return 1;
}
Em apenas:
pawn Код:
public OnPlayerDisconnect(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(arquivo, sizeof(arquivo), LEVEL, playername);
if(!DOF2_FileExists(arquivo))
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Segundos", PlayerInfo[playerid][pSegundos]);
DOF2_SetInt(arquivo, "Level", PlayerInfo[playerid][pLevel]);
DOF2_SaveFile();
return 1;
}
E na minha opiniгo, nгo era necessбrio criar 1 enum para alocar 2 variбveis...
--
Bom script, parece funcional, estude oque eu disse acima e tente melhora-lo