[FilterScript] LTFS - Sistema de Horas Jogadas/Level/Salario
#7

Quote:
Originally Posted by Los
Посмотреть сообщение
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
Muito Obrigado LOS, estou aprendendo a usar loops ainda, e vou estudar essa include do time fix, de qualquer jeito obrigado por gastar um certo tempo para postar isso, +rep.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)