Loose identifination
#6

this happen for spaces difference like when you do:

Код:
public OnPlayerConnect(playerid) {
          SendClientMessage(playerid,-1,"HI");
          // look to that code space
       print("HI");
       return 1;
}
it will be fixed when you put the as same spaces like:
Код:
public OnPlayerConnect(playerid) {
          SendClientMessage(playerid,-1,"HI");
          // look to that code space
          print("HI");
          return 1;
}
also i've fixed your code
PHP код:
#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:PosFloat: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"200true);
        
TimerB=SetTimer("AutoFix"500true);
        
TimerC=SetTimer("CheckPlayerState"100true);
        
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(iangle2);}

                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]>&& ppos[i][0]>x){
                
sin asin(tmp3/dis);
                
MindAngle floatsub(floatsub(floatadd(sin90), floatmul(sin2)), -90.0);
                }

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

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

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

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

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

                 
////////////////// by Drifter ///////////////////
        
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(playeridAng);
        return 
Ang;
}

public 
Drift(){
        new 
Float:Angle1Float:Angle2Float:BySpeed;
        new 
Float:Z;
        new 
Float:X;
        new 
Float:Y;
        new 
Float:SpeedX;
        for(new 
g=0;g<200;g++){
                
GetPlayerPos(gXYZ);
                
SpeedX floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos][ sX ])),2),floatpower(floatabs(floatsub(Y,SavedPos][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos][ sZ ])),2)));
                
Angle1 ReturnPlayerAngle(g);
                
Angle2 GetPlayerTheoreticAngle(g);
                
BySpeed floatmul(SpeedX12);
                if(
IsPlayerInAnyVehicle(g) && GetVType(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1Angle2)) < DRIFT_MAXKAT && BySpeed DRIFT_SPEED){
                        if(
PlayerDriftCancellation[g] > 0)KillTimer(PlayerDriftCancellation[g]);
                        
PlayerDriftCancellation[g] = 0;
                        
DriftPointsNow[g] += floatvalfloatabs(floatsub(Angle1Angle2)) * * (BySpeed*0.1) )/10;
                        
PlayerDriftCancellation[g] = SetTimerEx("DriftExit"30000"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][ sX ] = X;
                
SavedPos][ sY ] = Y;
                
SavedPos][ sZ ] = Z;
        }
}

public 
AngleUpdate(){
        for(new 
g=0;g<=MAX_PLAYERS;g++){
                new 
Float:xFloat:yFloat:z;
                if(
IsPlayerInAnyVehicle(g))GetVehiclePos(GetPlayerVehicleID(g), xyz); else GetPlayerPos(gxyz);
                
ppos[g][0] = x;
                
ppos[g][1] = y;
                
ppos[g][2] = z;
        }
}

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

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

LoadTextDraws(){
        
TDLabels[0]=TextDrawCreate(Label_X,TD_Y,"Drift Points");
        
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 Cash");
        
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"200true"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]={480533439555};
        new 
Industrial[26]={499422482498609524578455403414582443514413515440543605459531408552478456554};
        new 
LowRider[8]={536575534567535566576412};
        new 
OffRoad[13]={568424573579400500444556557470489505595};
        new 
Service[19]={416433431438437523427490528407544596596597598599432601420};
        new 
Saloon[35]={445504401518527542507562585419526604466492474546517410551516467600426436547405580560550549540491529421};
        new 
Sports[20]={602429496402541415589587565494502503411559603475506451558477};
        new 
Wagons[5]={418404479458561};

        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
Loose identifination - by Kakarot - 28.10.2015, 23:54
Re: Loose identifination - by Sew_Sumi - 29.10.2015, 00:01
Re: Loose identifination - by lucamsx - 29.10.2015, 00:39
Re: Loose identifination - by Infinity - 29.10.2015, 08:28
Re: Loose identifination - by lucamsx - 29.10.2015, 09:13
Re: Loose identifination - by jlalt - 29.10.2015, 09:32
Re: Loose identifination - by Sew_Sumi - 30.10.2015, 20:33
Re: Loose identifination - by AbyssMorgan - 30.10.2015, 20:38

Forum Jump:


Users browsing this thread: 2 Guest(s)