[Ajuda] Coisa para Drift
#4

pawn Код:
#include <a_samp>

#define DRIFT_MINKAT 10.0
#define DRIFT_MAXKAT 90.0
#define DRIFT_SPEED 30.0


#define COLOR_Label 0xFFFFFFFF
#define COLOR_LabelOut 0x00000040
#define COLOR_ValueOut 0xFFFFFF40
#define COLOR_Value 0x000000FF

#define Label_X 500
#define Value_X 500
#define TD_Y 100


new DriftTimer[MAX_PLAYERS];
new TimerA,TimerB,TimerC;

new DriftPointsNow[MAX_PLAYERS];
new PlayerDriftCancellation[MAX_PLAYERS];
new Float:ppos[MAX_PLAYERS][3];
enum Float:Pos{ Float:sX,Float:sY,Float:sZ };
new Float:SavedPos[MAX_PLAYERS][Pos];

new bool:DriftMode[MAX_PLAYERS]=false;
new DriftBonus[MAX_PLAYERS]=1;
new Float:HealthInit[MAX_PLAYERS]=1000.0;
new bool:AutoFixBool[MAX_PLAYERS]=true;

new Text:TDLabels[3];
new Text:TDValueDrift[MAX_PLAYERS];
new Text:TDValueBonus[MAX_PLAYERS];
new Text:TDValueCash[MAX_PLAYERS];

forward Drift();
forward AngleUpdate();
forward DriftExit(playerid);
forward CheckPlayerState();
forward AutoFix();

public OnFilterScriptInit(){
        TimerA=SetTimer("AngleUpdate", 200, true);
        TimerB=SetTimer("AutoFix", 500, true);
        TimerC=SetTimer("CheckPlayerState", 100, true);
        LoadTextDraws();
        return 1;
}

public OnFilterScriptExit(){
        KillTimer(TimerA);
        KillTimer(TimerB);
        KillTimer(TimerC);
        return 1;
}

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){
                        sin = asin(tmp3/dis);
MindAngle = floatsub(floatsub(floatadd(sin, 90), floatmul(sin, 2)), -90.0);
                }

                if(ppos[i][1]<y && ppos[i][0]>x){
                    sin = asin(tmp3/dis);
                    MindAngle = floatsub(floatadd(sin, 180), 180.0);
                }

                if(ppos[i][1]<y && ppos[i][0]<x){
                    sin = acos(tmp4/dis);
                    MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2));
                }

                if(ppos[i][1]>y && ppos[i][0]<x){
                    sin = asin(tmp3/dis);
                    MindAngle = floatadd(sin, 180);
                }
        }

        if(MindAngle == 0.0){return angle2;}else{return MindAngle;}
}

public DriftExit(playerid){
        PlayerDriftCancellation[playerid] = 0;


        new Float:h;
        GetVehicleHealth(GetPlayerVehicleID(playerid),h);
        if(DriftPointsNow[playerid]>70 && DriftPointsNow[playerid]<10000 && h==HealthInit[playerid]) GivePlayerMoney(playerid,DriftPointsNow[playerid]*DriftBonus[playerid]);
        TextDrawHideForPlayer(playerid,TDLabels[0]);
        TextDrawHideForPlayer(playerid,TDLabels[1]);
        TextDrawHideForPlayer(playerid,TDLabels[2]);
        TextDrawHideForPlayer(playerid,TDValueDrift[playerid]);
        TextDrawHideForPlayer(playerid,TDValueBonus[playerid]);
        TextDrawHideForPlayer(playerid,TDValueCash[playerid]);
        DriftBonus[playerid]=1;
        AutoFixBool[playerid]=true;
        SetVehicleHealth(GetPlayerVehicleID(playerid),HealthInit[playerid]);


        DriftPointsNow[playerid] = 0;
}

Float:ReturnPlayerAngle(playerid){
        new Float:Ang;
        if(IsPlayerInAnyVehicle(playerid))GetVehicleZAngle(GetPlayerVehicleID(playerid), Ang); else GetPlayerFacingAngle(playerid, Ang);
        return Ang;
}

public Drift(){
        new Float:Angle1, Float:Angle2, Float:BySpeed;
        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(IsPlayerInAnyVehicle(g) && GetVType(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED){
                        if(PlayerDriftCancellation[g] > 0)KillTimer(PlayerDriftCancellation[g]);
                        PlayerDriftCancellation[g] = 0;
                        DriftPointsNow[g] += floatval( floatabs(floatsub(Angle1, Angle2)) * 3 * (BySpeed*0.1) )/10;
                        PlayerDriftCancellation[g] = SetTimerEx("DriftExit", 3000, 0, "d", g);
                }

                if(DriftPointsNow[g] > 70 && DriftPointsNow[g]<10000){

                    if(DriftPointsNow[g]<500){
                        DriftBonus[g]=1;
                                        }
                                        if(DriftPointsNow[g]>=500 && DriftPointsNow[g]<1000){
                        DriftBonus[g]=2;
                                        }
                    if(DriftPointsNow[g]>=1000 && DriftPointsNow[g]<1700){
                        DriftBonus[g]=3;
                                        }
                                        if(DriftPointsNow[g]>=1700 && DriftPointsNow[g]<2500){
                        DriftBonus[g]=4;
                                        }
                                        if(DriftPointsNow[g]>=2500){
                        DriftBonus[g]=5;
                                        }

                                        TextDrawShowForPlayer(g,TDLabels[0]);
                                        TextDrawShowForPlayer(g,TDLabels[1]);
                                        TextDrawShowForPlayer(g,TDLabels[2]);

                        TextDrawShowForPlayer(g,TDValueDrift[g]);
                        TextDrawShowForPlayer(g,TDValueBonus[g]);
                        TextDrawShowForPlayer(g,TDValueCash[g]);

                        new DPs[128],DBn[128],Cash[128],csh;

                        valstr(DPs,DriftPointsNow[g],false);
                        format(DBn,sizeof(DBn),"X%i",DriftBonus[g]);
                        csh=DriftPointsNow[g]*DriftBonus[g];
                        format(Cash,sizeof(Cash),"$%i",csh);

                    TextDrawSetString(TDValueDrift[g],DPs);
                    TextDrawSetString(TDValueBonus[g],DBn);
                    TextDrawSetString(TDValueCash[g],Cash);

                }
                SavedPos[ g ][ sX ] = X;
                SavedPos[ g ][ sY ] = Y;
                SavedPos[ g ][ sZ ] = Z;
        }
}

public AngleUpdate(){
        for(new g=0;g<=MAX_PLAYERS;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;
        }
}

floatval(Float:val){
        new str[256];
        format(str, 256, "%.0f", val);
        return todec(str);
}

todec(str[]){
        return strval(str);
}

LoadTextDraws(){
        TDLabels[0]=TextDrawCreate(Label_X,TD_Y,"Drift Pontos");
        TextDrawColor(TDLabels[0],COLOR_Label);
        TextDrawSetShadow(TDLabels[0],0);
        TextDrawSetOutline(TDLabels[0],1);
        TextDrawLetterSize(TDLabels[0],0.5,2);
        TextDrawBackgroundColor(TDLabels[0],COLOR_LabelOut);
        TextDrawFont(TDLabels[0],1);

        TDLabels[1]=TextDrawCreate(Label_X,TD_Y+50,"Drift Bonus");
        TextDrawColor(TDLabels[1],COLOR_Label);
        TextDrawSetShadow(TDLabels[1],0);
        TextDrawSetOutline(TDLabels[1],1);
        TextDrawLetterSize(TDLabels[1],0.5,2);
        TextDrawBackgroundColor(TDLabels[1],COLOR_LabelOut);
        TextDrawFont(TDLabels[1],1);

        TDLabels[2]=TextDrawCreate(Label_X,TD_Y+100,"Drift Grana");
        TextDrawColor(TDLabels[2],COLOR_Label);
        TextDrawSetShadow(TDLabels[2],0);
        TextDrawSetOutline(TDLabels[2],1);
        TextDrawLetterSize(TDLabels[2],0.5,2);
        TextDrawBackgroundColor(TDLabels[2],COLOR_LabelOut);
        TextDrawFont(TDLabels[2],1);

        new i;
        for(i=0;i<=MAX_PLAYERS;i++){
                TDValueDrift[i]=TextDrawCreate(Value_X,TD_Y+20,"0");
                TextDrawColor(TDValueDrift[i],COLOR_Value);
                TextDrawSetShadow(TDValueDrift[i],0);
                TextDrawSetOutline(TDValueDrift[i],1);
                TextDrawLetterSize(TDValueDrift[i],0.5,2);
                TextDrawBackgroundColor(TDValueDrift[i],COLOR_ValueOut);
                TextDrawFont(TDValueDrift[i],3);

                TDValueBonus[i]=TextDrawCreate(Value_X,TD_Y+70,"X1");
                TextDrawColor(TDValueBonus[i],COLOR_Value);
                TextDrawSetShadow(TDValueBonus[i],0);
                TextDrawSetOutline(TDValueBonus[i],1);
                TextDrawLetterSize(TDValueBonus[i],0.5,2);
                TextDrawBackgroundColor(TDValueBonus[i],COLOR_ValueOut);
                TextDrawFont(TDValueBonus[i],3);

                TDValueCash[i]=TextDrawCreate(Value_X,TD_Y+120,"$0");
                TextDrawColor(TDValueCash[i],COLOR_Value);
                TextDrawSetShadow(TDValueCash[i],0);
                TextDrawSetOutline(TDValueCash[i],1);
                TextDrawLetterSize(TDValueCash[i],0.5,2);
                TextDrawBackgroundColor(TDValueCash[i],COLOR_ValueOut);
                TextDrawFont(TDValueCash[i],3);
        }

        return 1;
}

public CheckPlayerState(){
        new i,cs;

        for(i=0;i<=MAX_PLAYERS;i++){
            cs=GetPlayerState(i);
            if(DriftMode[i] && cs==PLAYER_STATE_DRIVER && DriftPointsNow[i]>70){
                new Float:h;
                GetVehicleHealth(GetPlayerVehicleID(i),h);
                if(h<HealthInit[i]){
                        KillTimer(DriftTimer[i]);
                        DriftExit(i);
                        GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~r~Boom",800,5);
                        DriftMode[i]=false;
                        }
                }
            if(cs==PLAYER_STATE_DRIVER && DriftMode[i]==false){
                if(GetVType(GetPlayerVehicleID(i))){
                        DriftMode[i]=true;
                        GetVehicleHealth(GetPlayerVehicleID(i),HealthInit[i]);
                        AutoFixBool[i]=false;
                        DriftTimer[i]=SetTimerEx("Drift", 200, true, "i", i);
                        }
                }
                else if(cs!=PLAYER_STATE_DRIVER && DriftMode[i]==true){
                    KillTimer(DriftTimer[i]);
                    DriftMode[i]=false;
                    AutoFixBool[i]=true;
                }
                else{}
        }
        return 1;
}

public AutoFix(){
        new i;
        for(i=0;i<=MAX_PLAYERS;i++){
                if(AutoFixBool[i] && IsPlayerInAnyVehicle(i)){
                        SetVehicleHealth(GetPlayerVehicleID(i),HealthInit[i]);
                }
        }
}

GetVType(vid){

        new Convertibles[4]={480, 533, 439, 555};
        new Industrial[26]={499, 422, 482, 498, 609, 524, 578, 455, 403, 414, 582, 443, 514, 413, 515, 440, 543, 605, 459, 531, 408, 552, 478, 456, 554};
        new LowRider[8]={536, 575, 534, 567, 535, 566, 576, 412};
        new OffRoad[13]={568, 424, 573, 579, 400, 500, 444, 556, 557, 470, 489, 505, 595};
        new Service[19]={416, 433, 431, 438, 437, 523, 427, 490, 528, 407, 544, 596, 596, 597, 598, 599, 432, 601, 420};
        new Saloon[35]={445, 504, 401, 518, 527, 542, 507, 562, 585, 419, 526, 604, 466, 492, 474, 546, 517, 410, 551, 516, 467, 600, 426, 436, 547, 405, 580, 560, 550, 549, 540, 491, 529, 421};
        new Sports[20]={602, 429, 496, 402, 541, 415, 589, 587, 565, 494, 502, 503, 411, 559, 603, 475, 506, 451, 558, 477};
        new Wagons[5]={418, 404, 479, 458, 561};

        new modelid=GetVehicleModel(vid);
        new i;
        for(i=0;i<3;i++){
                    if(Convertibles[i]==modelid) return 1;
        }
        for(i=0;i<25;i++){
                    if(Industrial[i]==modelid) return 1;
        }
        for(i=0;i<7;i++){
                    if(LowRider[i]==modelid) return 1;
        }
        for(i=0;i<12;i++){
                    if(OffRoad[i]==modelid) return 1;
        }
        for(i=0;i<19;i++){
                    if(Service[i]==modelid) return 1;
        }
        for(i=0;i<35;i++){
                    if(Saloon[i]==modelid) return 1;
        }
        for(i=0;i<20;i++){
                    if(Sports[i]==modelid) return 1;
     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) { sin = asin(tmp3/dis); MindAngle = floatsub(floatsub(floatadd(sin, 90), floatmul(sin, 2)), -90.0); } if(ppos[i][1]<y && ppos[i][0]>x) { sin = asin(tmp3/dis); MindAngle = floatsub(floatadd(sin, 180), 180.0); } if(ppos[i][1]<y && ppos[i][0]<x) { sin = acos(tmp4/dis); MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2)); } if(ppos[i][1]>y && ppos[i][0]<x) { sin = asin(tmp3/dis); MindAngle = floatadd(sin, 180); } } if(MindAngle == 0.0) { return angle2; } else { return MindAngle; } } public DriftExit(playerid) { PlayerDriftCancellation[playerid] = 0; new Float:h; GetVehicleHealth(GetPlayerVehicleID(playerid),h); if(DriftPointsNow[playerid]>70 && DriftPointsNow[playerid]<10000 && h==HealthInit[playerid]) GivePlayerMoney(playerid,DriftPointsNow[playerid]*DriftBonus[playerid]); TextDrawHideForPlayer(playerid,TDLabels[0]); TextDrawHideForPlayer(playerid,TDLabels[1]); TextDrawHideForPlayer(playerid,TDLabels[2]); TextDrawHideForPlayer(playerid,TDValueDrift[playerid]); TextDrawHideForPlayer(playerid,TDValueBonus[playerid]); TextDrawHideForPlayer(playerid,TDValueCash[playerid]); DriftBonus[playerid]=1; AutoFixBool[playerid]=true; SetVehicleHealth(GetPlayerVehicleID(playerid),HealthInit[playerid]); DriftPointsNow[playerid] = 0; } Float:ReturnPlayerAngle(playerid) { new Float:Ang; if(IsPlayerInAnyVehicle(playerid))GetVehicleZAngle(GetPlayerVehicleID(playerid), Ang); else GetPlayerFacingAngle(playerid, Ang); return Ang; } public Drift() { new Float:Angle1, Float:Angle2, Float:BySpeed; 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(IsPlayerInAnyVehicle(g) && GetVType(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED) { if(PlayerDriftCancellation[g] > 0)KillTimer(PlayerDriftCancellation[g]); PlayerDriftCancellation[g] = 0; DriftPointsNow[g] += floatval( floatabs(floatsub(Angle1, Angle2)) * 3 * (BySpeed*0.1) )/10; PlayerDriftCancellation[g] = SetTimerEx("DriftExit", 3000, 0, "d", g); } if(DriftPointsNow[g] > 70 && DriftPointsNow[g]<10000) { if(DriftPointsNow[g]<500) { DriftBonus[g]=1; } if(DriftPointsNow[g]>=500 && DriftPointsNow[g]<1000) { DriftBonus[g]=2; } if(DriftPointsNow[g]>=1000 && DriftPointsNow[g]<1700) { DriftBonus[g]=3; } if(DriftPointsNow[g]>=1700 && DriftPointsNow[g]<2500) { DriftBonus[g]=4; } if(DriftPointsNow[g]>=2500) { DriftBonus[g]=5; } TextDrawShowForPlayer(g,TDLabels[0]); TextDrawShowForPlayer(g,TDLabels[1]); TextDrawShowForPlayer(g,TDLabels[2]); TextDrawShowForPlayer(g,TDValueDrift[g]); TextDrawShowForPlayer(g,TDValueBonus[g]); TextDrawShowForPlayer(g,TDValueCash[g]); new DPs[128],DBn[128],Cash[128],csh; valstr(DPs,DriftPointsNow[g],false); format(DBn,sizeof(DBn),"X%i",DriftBonus[g]); csh=DriftPointsNow[g]*DriftBonus[g]; format(Cash,sizeof(Cash),"$%i",csh); TextDrawSetString(TDValueDrift[g],DPs); TextDrawSetString(TDValueBonus[g],DBn); TextDrawSetString(TDValueCash[g],Cash); } SavedPos[ g ][ sX ] = X; SavedPos[ g ][ sY ] = Y; SavedPos[ g ][ sZ ] = Z; } } public AngleUpdate() { for(new g=0;g<=MAX_PLAYERS;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; } } floatval(Float:val) { new str[256]; format(str, 256, "%.0f", val); return todec(str); } todec(str[]) { return strval(str); } LoadTextDraws() { TDLabels[0]=TextDrawCreate(Label_X,TD_Y,"Drift Pontos"); TextDrawColor(TDLabels[0],COLOR_Label); TextDrawSetShadow(TDLabels[0],0); TextDrawSetOutline(TDLabels[0],1); TextDrawLetterSize(TDLabels[0],0.5,2); TextDrawBackgroundColor(TDLabels[0],COLOR_LabelOut); TextDrawFont(TDLabels[0],1); TDLabels[1]=TextDrawCreate(Label_X,TD_Y+50,"Drift Bonus"); TextDrawColor(TDLabels[1],COLOR_Label); TextDrawSetShadow(TDLabels[1],0); TextDrawSetOutline(TDLabels[1],1); TextDrawLetterSize(TDLabels[1],0.5,2); TextDrawBackgroundColor(TDLabels[1],COLOR_LabelOut); TextDrawFont(TDLabels[1],1); TDLabels[2]=TextDrawCreate(Label_X,TD_Y+100,"Drift Grana"); TextDrawColor(TDLabels[2],COLOR_Label); TextDrawSetShadow(TDLabels[2],0); TextDrawSetOutline(TDLabels[2],1); TextDrawLetterSize(TDLabels[2],0.5,2); TextDrawBackgroundColor(TDLabels[2],COLOR_LabelOut); TextDrawFont(TDLabels[2],1); new i; for(i=0;i<=MAX_PLAYERS;i++) { TDValueDrift[i]=TextDrawCreate(Value_X,TD_Y+20,"0"); TextDrawColor(TDValueDrift[i],COLOR_Value); TextDrawSetShadow(TDValueDrift[i],0); TextDrawSetOutline(TDValueDrift[i],1); TextDrawLetterSize(TDValueDrift[i],0.5,2); TextDrawBackgroundColor(TDValueDrift[i],COLOR_ValueOut); TextDrawFont(TDValueDrift[i],3); TDValueBonus[i]=TextDrawCreate(Value_X,TD_Y+70,"X1"); TextDrawColor(TDValueBonus[i],COLOR_Value); TextDrawSetShadow(TDValueBonus[i],0); TextDrawSetOutline(TDValueBonus[i],1); TextDrawLetterSize(TDValueBonus[i],0.5,2); TextDrawBackgroundColor(TDValueBonus[i],COLOR_ValueOut); TextDrawFont(TDValueBonus[i],3); TDValueCash[i]=TextDrawCreate(Value_X,TD_Y+120,"$0"); TextDrawColor(TDValueCash[i],COLOR_Value); TextDrawSetShadow(TDValueCash[i],0); TextDrawSetOutline(TDValueCash[i],1); TextDrawLetterSize(TDValueCash[i],0.5,2); TextDrawBackgroundColor(TDValueCash[i],COLOR_ValueOut); TextDrawFont(TDValueCash[i],3); } return 1; } public CheckPlayerState() { new i,cs; for(i=0;i<=MAX_PLAYERS;i++) { cs=GetPlayerState(i); if(DriftMode[i] && cs==PLAYER_STATE_DRIVER && DriftPointsNow[i]>70) { new Float:h; GetVehicleHealth(GetPlayerVehicleID(i),h); if(h<HealthInit[i]) { KillTimer(DriftTimer[i]); DriftExit(i); GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~r~Boom",800,5); DriftMode[i]=false; } } if(cs==PLAYER_STATE_DRIVER && DriftMode[i]==false) { if(GetVType(GetPlayerVehicleID(i))) { DriftMode[i]=true; GetVehicleHealth(GetPlayerVehicleID(i),HealthInit[i]); AutoFixBool[i]=false; DriftTimer[i]=SetTimerEx("Drift", 200, true, "i", i); } } else if(cs!=PLAYER_STATE_DRIVER && DriftMode[i]==true) { KillTimer(DriftTimer[i]); DriftMode[i]=false; AutoFixBool[i]=true; } else{} } return 1; } public AutoFix() { new i; for(i=0;i<=MAX_PLAYERS;i++) { if(AutoFixBool[i] && IsPlayerInAnyVehicle(i)) { SetVehicleHealth(GetPlayerVehicleID(i),HealthInit[i]); } } } GetVType(vid) { new Convertibles[4]={480, 533, 439, 555}; new Industrial[26]={499, 422, 482, 498, 609, 524, 578, 455, 403, 414, 582, 443, 514, 413, 515, 440, 543, 605, 459, 531, 408, 552, 478, 456, 554}; new LowRider[8]={536, 575, 534, 567, 535, 566, 576, 412}; new OffRoad[13]={568, 424, 573, 579, 400, 500, 444, 556, 557, 470, 489, 505, 595}; new Service[19]={416, 433, 431, 438, 437, 523, 427, 490, 528, 407, 544, 596, 596, 597, 598, 599, 432, 601, 420}; new Saloon[35]={445, 504, 401, 518, 527, 542, 507, 562, 585, 419, 526, 604, 466, 492, 474, 546, 517, 410, 551, 516, 467, 600, 426, 436, 547, 405, 580, 560, 550, 549, 540, 491, 529, 421}; new Sports[20]={602, 429, 496, 402, 541, 415, 589, 587, 565, 494, 502, 503, 411, 559, 603, 475, 506, 451, 558, 477}; new Wagons[5]={418, 404, 479, 458, 561}; new modelid=GetVehicleModel(vid); new i; for(i=0;i<3;i++) { if(Convertibles[i]==modelid) return 1; } for(i=0;i<25;i++) { if(Industrial[i]==modelid) return 1; } for(i=0;i<7;i++) { if(LowRider[i]==modelid) return 1; } for(i=0;i<12;i++) { if(OffRoad[i]==modelid) return 1; } for(i=0;i<19;i++) { if(Service[i]==modelid) return 1; } for(i=0;i<35;i++) { if(Saloon[i]==modelid) return 1; } for(i=0;i<20;i++) { if(Sports[i]==modelid) return 1;   }
        for(i=0;i<5;i++){
                    if(Wagons[i]==modelid) return 1;
        }
        return 0;
}
Reply


Messages In This Thread
[Ajuda] Coisa para Drift - by Kleinowski - 30.05.2012, 22:19
Re: [Ajuda] Coisa para Drift - by Kleinowski - 30.05.2012, 23:45
Re: [Ajuda] Coisa para Drift - by jamaica90 - 31.05.2012, 00:42
Re: [Ajuda] Coisa para Drift - by 'Duallity - 31.05.2012, 02:01
Re: [Ajuda] Coisa para Drift - by Schocc - 31.05.2012, 02:51
Re: [Ajuda] Coisa para Drift - by jamaica90 - 31.05.2012, 10:29
Re: [Ajuda] Coisa para Drift - by Schocc - 31.05.2012, 11:52
Re: [Ajuda] Coisa para Drift - by Kleinowski - 31.05.2012, 11:58

Forum Jump:


Users browsing this thread: 1 Guest(s)