SA-MP Forums Archive
[Ajuda] Salvamento - 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: [Ajuda] Salvamento (/showthread.php?tid=598203)



Salvamento - Sharay - 09.01.2016

bom galera beleza ? tentei fazer um ranking para os vencedores de corridas no servidor (base fs do ryder) fiz assim :

pawn Код:
DOF2_SetInt(ReturnFileUser(playerid),"WinRace", Prize[1]);
porem ele so salva uma vez sу exemplo: venci uma corrida ganhei 10 pontos ai venзo outra e ganho novamente 10 pontos sendo que o certo seria para somar os pontos ganhos, tentei fazer assim :

pawn Код:
WinRace[ playerid ] ++ ;
mas sem resultados continua nao somando as wins ;-;


cуdigo do rRace que eu uso de base

pawn Код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    if(CPProgess[playerid] == TotalCP -1)
    {
        new
            TimeStamp,
            TotalRaceTime,
            string[150],
            rFile[80],
            pName[MAX_PLAYER_NAME],
            rTime[3],
            Prize[2],
            TempTotalTime,
            TempTime[3]
        ;
        Position++;
        GetPlayerName(playerid, pName, sizeof(pName));
        TimeStamp = GetTickCount();
        TotalRaceTime = TimeStamp - RaceTick;
        ConvertTime(var, TotalRaceTime, rTime[0], rTime[1], rTime[2]);
        switch(Position)
        {
            case 1: Prize[0] = (random(random(5000)) + 10000), Prize[1] = 10;
            case 2: Prize[0] = (random(random(4500)) + 9000), Prize[1] = 9;
            case 3: Prize[0] = (random(random(4000)) + 8000), Prize[1] = 8;
            case 4: Prize[0] = (random(random(3500)) + 7000), Prize[1] = 7;
            case 5: Prize[0] = (random(random(3000)) + 6000), Prize[1] = 6;
            case 6: Prize[0] = (random(random(2500)) + 5000), Prize[1] = 5;
            case 7: Prize[0] = (random(random(2000)) + 4000), Prize[1] = 4;
            case 8: Prize[0] = (random(random(1500)) + 3000), Prize[1] = 3;
            case 9: Prize[0] = (random(random(1000)) + 2000), Prize[1] = 2;
            default: Prize[0] = random(random(1000)), Prize[1] = 1;
        }
        format(string, sizeof(string), ">> \"%s\" finalizou a corrida na posiзгo \"%d\" - Tempo: \"%d:%d.%d\" - Valor: \"$%d mais +%d Score\"", pName, Position,rTime[0], rTime[1], rTime[2],Prize[0], Prize[1]);
        SendClientMessageToAll(WHITE, string);
        //aqui
       
        //WinRace[playerid] == ++;
        WinRace[ playerid ] ++ ;
        DOF2_SetInt(ReturnFileUser(playerid),"WinRace", Prize[1]);
       
       
        //SpawnPlayer(playerid);
        if(FinishCount <= 5)
        {
            format(rFile, sizeof(rFile), "/rRaceSystem/%s.RRACE", RaceName);
            format(string, sizeof(string), "BestRacerTime_%d", TimeProgress);
            TempTotalTime = DOF2_GetInt(rFile, string);
            ConvertTime(var1, TempTotalTime, TempTime[0], TempTime[1], TempTime[2]);
            if(TotalRaceTime <= DOF2_GetInt(rFile, string) || TempTotalTime == 0)
            {
                DOF2_SetInt(rFile, string, TotalRaceTime);
                format(string, sizeof(string), "BestRacer_%d", TimeProgress);
                if(TempTotalTime != 0) format(string, sizeof(string), ">> \"%s\" Quebrou o recorde de \"%s\" com \"%d\" segundos mais rapido \"%d\"'!", pName, DOF2_GetString(rFile, string), -(rTime[1] - TempTime[1]), TimeProgress+1);
                else format(string, sizeof(string), ">> \"%s\" Quebrou um novo recorde com o tempo de \"%d\"'!", pName, TimeProgress+1);
                SendClientMessageToAll(GREEN, "  ");
                SendClientMessageToAll(GREEN, string);
                SendClientMessageToAll(GREEN, "  ");
                format(string, sizeof(string), "BestRacer_%d", TimeProgress);
                DOF2_SetString(rFile, string, pName);
                TimeProgress++;
            }
        }
        SetPlayerRandomSpawn(playerid);
        SetPlayerVirtualWorld(playerid,0);
        FinishCount++;
        GivePlayerMoney(playerid, Prize[0]);
        SetPlayerScore(playerid, GetPlayerScore(playerid) + Prize[1]);
        DisablePlayerRaceCheckpoint(playerid);
        CPProgess[playerid]++;
        if(FinishCount >= JoinCount) return StopRace();
    }
    else
    {
        CPProgess[playerid]++;
        CPCoords[CPProgess[playerid]][3]++;
        RacePosition[playerid] = floatround(CPCoords[CPProgess[playerid]][3], floatround_floor);
        SetCP(playerid, CPProgess[playerid], CPProgess[playerid]+1, TotalCP, RaceType);
        PlayerPlaySound(playerid, 1137, 0.0, 0.0, 0.0);
    }
    return 1;
}

alguйm ajuda pls ;-;


Re: Salvamento - EditPawn - 09.01.2016

Utilize DOF2_SaveFile(); no final para salvar o arquivo.