[Ajuda] Como Posso Salvar e somar.
#1

Boa noite a Todos, tenho um servidor de Drift e tenho um contador de Drift, so que estou tendo uma dorzinha de cabeзa para fazer com que some os pontos de drift e que salve e quando chegar a um determinado ponrto que seria 20000 ele resetaria. Mas gostaria que quando o player saisse so servidor e ficasse salvo os pontos de drift dele.

O Codigo.
Код:
for(new x=0;x<200;x++){
        DriftTD[x] = TextDrawCreate(3.000000, 431.422515, "Drift:");
        TextDrawBackgroundColor(DriftTD[x], 255);
        TextDrawFont(DriftTD[x], 1);
        TextDrawLetterSize(DriftTD[x], 0.400000, 1.600000);
        TextDrawColor(DriftTD[x], -2147483393);
        TextDrawSetOutline(DriftTD[x], 1);
        TextDrawSetProportional(DriftTD[x], 1);

        DriftTD2[x] = TextDrawCreate(3.000000, 431.422515, "Drift:");
        TextDrawBackgroundColor(DriftTD2[x], 255);
        TextDrawFont(DriftTD2[x], 1);
        TextDrawLetterSize(DriftTD2[x], 0.400000, 1.600000);
        TextDrawColor(DriftTD2[x], -1378294017);
        TextDrawSetOutline(DriftTD2[x], 1);
        TextDrawSetProportional(DriftTD2[x], 1);
        }
        SetTimer("AngleUpdate" , 700, true);
        SetTimer("LicznikDriftu", 500, true);
        return 1;
        }
        IsCar(vid)
        {
        new model = GetVehicleModel(vid);
        switch(model)
        {
        case 443:return 0;
        case 448:return 0;
        case 461:return 0;
        case 462:return 0;
        case 463:return 0;
        case 468:return 0;
        case 521:return 0;
        case 522:return 0;
        case 523:return 0;
        case 581:return 0;
        case 586:return 0;
        case 481:return 0;
        case 509:return 0;
        case 510:return 0;
        case 430:return 0;
        case 446:return 0;
        case 452:return 0;
        case 453:return 0;
        case 454:return 0;
        case 472:return 0;
        case 473:return 0;
        case 484:return 0;
        case 493:return 0;
        case 595:return 0;
        case 417:return 0;
        case 425:return 0;
        case 447:return 0;
        case 465:return 0;
        case 469:return 0;
        case 487:return 0;
        case 488:return 0;
        case 497:return 0;
        case 501:return 0;
        case 548:return 0;
        case 563:return 0;
        case 406:return 0;
        case 444:return 0;
        case 556:return 0;
        case 557:return 0;
        case 573:return 0;
        case 460:return 0;
        case 464:return 0;
        case 476:return 0;
        case 511:return 0;
        case 512:return 0;
        case 513:return 0;
        case 519:return 0;
        case 520:return 0;
        case 539:return 0;
        case 553:return 0;
        case 577:return 0;
        case 592:return 0;
        case 593:return 0;
        case 471:return 0;
        }
        return 1;
        }
        forward AngleUpdate();
        public AngleUpdate(){
        for(new g=0;g<200;g++){
        new Float:x, Float:y, Float:z;
        if(IsPlayerInAnyVehicle(g))GetVehiclePos(GetPlayerVehicleID(g), x, y, z); else GetPlayerPos(g, x, y, z);
        ppos[g][0] = x;
        ppos[g][1] = y;
        ppos[g][2] = z;
        }
        }
        Float:GetPlayerTheoreticAngle(i)
        {
        new Float:sin;
        new Float:dis;
        new Float:angle2;
        new Float:x,Float:y,Float:z;
        new Float:tmp3;
        new Float:tmp4;
        new Float:MindAngle;
        if(IsPlayerConnected(i)){
        GetPlayerPos(i,x,y,z);
        dis = floatsqroot(floatpower(floatabs(floatsub(x,ppos[i][0])),2)+floatpower(floatabs(floatsub(y,ppos[i][1])),2));
        if(IsPlayerInAnyVehicle(i))GetVehicleZAngle(GetPlayerVehicleID(i), angle2); else GetPlayerFacingAngle(i, angle2);
        if(x>ppos[i][0]){tmp3=x-ppos[i][0];}else{tmp3=ppos[i][0]-x;}
        if(y>ppos[i][1]){tmp4=y-ppos[i][1];}else{tmp4=ppos[i][1]-y;}
        if(ppos[i][1]>y && ppos[i][0]>x){ //1
            sin = asin(tmp3/dis);
            MindAngle = floatsub(floatsub(floatadd(sin, 90), floatmul(sin, 2)), -90.0);
        }
        if(ppos[i][1]<y && ppos[i][0]>x){ //2
            sin = asin(tmp3/dis);
            MindAngle = floatsub(floatadd(sin, 180), 180.0);
        }
        if(ppos[i][1]<y && ppos[i][0]<x){ //3
            sin = acos(tmp4/dis);
            MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2));
        }
        if(ppos[i][1]>y && ppos[i][0]<x){ //4
            sin = asin(tmp3/dis);
            MindAngle = floatadd(sin, 180);
        }
        }
        if(MindAngle == 0.0){
        return angle2;
        } else
        return MindAngle;
        }
        public PodsumowanieDriftu(playerid){
        PunktyDriftuGracza[playerid] = 0;

        GivePlayerMoney(playerid,DriftPointsNow[playerid]);
        SetPlayerScore(playerid,DriftPointsNow[playerid]);
        DriftPointsNow[playerid] = 0;
        //TextDrawSetString(DriftTD[playerid]," ");
        //TextDrawSetString(DriftTD2[playerid]," ");
        SetTimer("DMCDP",1000,false);
        }

        Float:ReturnPlayerAngle(playerid){
        new Float:Ang;
        if(IsPlayerInAnyVehicle(playerid))GetVehicleZAngle(GetPlayerVehicleID(playerid), Ang); else GetPlayerFacingAngle(playerid, Ang);
        return Ang;
        }
        public LicznikDriftu(){
        new Float:Angle1, Float:Angle2, Float:BySpeed, s[256];
        new Float:Z;
        new Float:X;
        new Float:Y;
        new Float:SpeedX;
        for(new g=0;g<200;g++){
        GetPlayerPos(g, X, Y, Z);
        SpeedX = floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos[ g ][ sX ])),2),floatpower(floatabs(floatsub(Y,SavedPos[ g ][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos[ g ][ sZ ])),2)));
        Angle1 = ReturnPlayerAngle(g);
        Angle2 = GetPlayerTheoreticAngle(g);
        BySpeed = floatmul(SpeedX, 12);
        if(GetPlayerState(g) == PLAYER_STATE_DRIVER && IsCar(GetPlayerVehicleID(g)) &&  floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT &&      BySpeed > DRIFT_SPEED){
        if(PunktyDriftuGracza[g] > 0)KillTimer(PunktyDriftuGracza[g]);
        PunktyDriftuGracza[g] = 0;
        DriftPointsNow[g] += floatval( floatabs(floatsub(Angle1, Angle2)) * 3 * (BySpeed*0.1) )/10;
        PunktyDriftuGracza[g] = SetTimerEx("PodsumowanieDriftu", 3000, 0, "d", g);
        }
        if(DriftPointsNow[g] > 0){
            format(s, sizeof(s), " ", DriftPointsNow[g]);
            TextDrawSetString(DriftTD[g], s);
            format(s, sizeof(s), "Drift:~g~%d", DriftPointsNow[g]);
            TextDrawSetString(DriftTD2[g], s);
        }
        SavedPos[ g ][ sX ] = X;
        SavedPos[ g ][ sY ] = Y;
        SavedPos[ g ][ sZ ] = Z;
        }
        }
        //Split(s1[], s2[], s3[]=""){new rxx[256];format(rxx, 256, "%s%s%s", s1, s2, s3);return rxx;}
        //tostr(int){new st[256];format(st, 256, "%d", int);return st;}
        floatval(Float:val){new str[256];format(str, 256, "%.0f", val);return todec(str);}
        todec(str[]){return strval(str);}



        TextDrawShowForPlayer(playerid, DriftTD[x]);
        TextDrawHideForPlayer(playerid, DriftTD2[x]);
Reply
#2

Pra quк esse loop na criaзгo da TextDraw?

- Use como exemplo:

PHP код:
new @_vardrift[MAX_PLAYERS] = 0;
DOF2_SetInt("Sua_Conta.ini""Drift", @_vardrift[playerid]);
@
_vardrift[playerid] = DOF2_GetInt("Sua_Conta.ini""Drift");
if(@
_vardrift[playerid] == 20000) {
    
printf("ID %d chegou ao mбximo de pontos drift e foi resetado."playerid);
    @
_vardrift[playerid] = 0;


Lembre-se: GetInt й pra pegar o valor, e SetInt й pra salvar.
Reply
#3

Vou tentar fazer essa adaptaзгo ae. Obrigado
Reply
#4

para melhor entendimento:
PHP код:
// topo do seu script
new @_vardrift[MAX_PLAYERS] = 0

// usamos para salvar os dados do usuбrio
DOF2_SetInt("Sua_Conta.ini""Drift", @_vardrift[playerid]); 

// uamos para carregar os dados
@_vardrift[playerid] = DOF2_GetInt("Sua_Conta.ini""Drift"); 

// verificamos o pontos no drift do usuбrio.
if(@_vardrift[playerid] == 20000) { 
    
printf("ID %d chegou ao mбximo de pontos drift e foi resetado."playerid); 
    @
_vardrift[playerid] = 0

Reply
#5

Obrigado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)