Spawn Help
#1

Hello eveyone. When I spawn in my server, I can run around for some seconds, then it kind of restarts and stops. The whole server. I can't figure out whats wrong either..
So I downloaded the Crashdetect plugin and got this;

Код:
 [01:23:30] [deb
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:30] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:30] [debug] AMX backtrace:
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:30] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:30] [debug] AMX backtrace:
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:30] [debug] #0 00003db0 in public AutoFix () from score.amx
[01:23:30] [debug] AMX backtrace:
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:30] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:30] [debug] AMX backtrace:
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:30] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:30] [debug] AMX backtrace:
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:30] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:30] [debug] AMX backtrace:
[01:23:30] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:30] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 00003db0 in public AutoFix () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 00003db0 in public AutoFix () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:29] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:29] [debug] AMX backtrace:
[01:23:29] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:29] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 00003db0 in public AutoFix () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:28] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:28] [debug] AMX backtrace:
[01:23:28] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:28] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 00003db0 in public AutoFix () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 00003db0 in public AutoFix () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000290c in public AngleUpdate () from score.amx
[01:23:27] [debug] AMX backtrace:
[01:23:27] [debug]  Accessing element at index 500 past array upper bound 499
[01:23:27] [debug] Run time error 4: "Array index out of bounds"
[01:23:27] [debug] #0 0000387c in public CheckPlayerState () from score.amx
its updating like this all the time when its online..There is NOTHING wrong with the score.amx / score.pwn script. I've used it for like a year now, and havent changed anything on it. It have to be the gamemode somehow, but what is it? Anyone have an idea?

- Kudoz.
Reply
#2

Show your CheckPlayerState, AngleUpdate and AutoFix functions. If CrashDetect reports this is in score.amx, it is in score.amx and thus there is something wrong in there.

Seeing the errors, you seem to be accessing values outside of the array. (probably in a loop) This happens when you do something like this:
Код:
new array[20];
printf("integer: %i", array[35]);
In the example above I'm trying to get the 35th integer in the array, but the array has only 20, thus giving off this error.
Reply
#3

I can't seem to find anything wrong here ;

Код:
 ////////////////////////////////////////////////////////////
/////////////// DRIFT POINTS COUNTER BY LUBY ///////////////
/////////////// A little editted by Abhinav ////////////////
////////////////////////////////////////////////////////////

#include <a_samp> // by I dont know .. :D lol
#include <streamer>

#define DRIFT_MINKAT 10.0 // by Luby
#define DRIFT_MAXKAT 90.0 // by Luby
#define DRIFT_SPEED 30.0 // by Luby

//////////// Added by Abhinav///////
#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]; // Added by Abhinav
new TimerA,TimerB,TimerC; // Added by Abhinav

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

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

new Text:TDLabels[3]; // Added by Abhinav
new Text:TDValueDrift[MAX_PLAYERS]; // Added by Abhinav
new Text:TDValueBonus[MAX_PLAYERS]; // Added by Abhinav
new Text:TDValueCash[MAX_PLAYERS]; // Added by Abhinav

forward Drift(); // by Luby
forward AngleUpdate(); // by Luby
forward DriftExit(playerid); // by Luby
forward CheckPlayerState(); // Added by Abhinav
forward AutoFix(); // Added by Abhinav

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

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

Float:GetPlayerTheoreticAngle(i) // By Luby
{
        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){ // By Luby
        PlayerDriftCancellation[playerid] = 0;

		 ////////////////// by Abhinav ///////////////////
        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]);
        SetPlayerScore(playerid,GetPlayerScore(playerid)+DriftPointsNow[playerid]*2);
        ////////////////////////////////////////////////////

        DriftPointsNow[playerid] = 0;
}

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

public Drift(){ // By Luby
        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){
                    ///////////// by Abhinav ////////////////////
                    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(){ // By Luby
        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){ // By Luby
        new str[256];
        format(str, 256, "%.0f", val);
        return todec(str);
}

todec(str[]){ // By Luby
        return strval(str);
}

LoadTextDraws(){ // by Abhinav
	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(){ //by Abhinav
	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,"Failed",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(){ // By abhinav
	new i;
	for(i=0;i<=MAX_PLAYERS;i++){
		if(AutoFixBool[i] && IsPlayerInAnyVehicle(i)){
			SetVehicleHealth(GetPlayerVehicleID(i),HealthInit[i]);
		}
	}
}

GetVType(vid){ // By Abhinav

	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
#4

Check your loops.
Код:
for(i=0;i<=MAX_PLAYERS;i++)
Someone can't have the playerid of 500, which is MAX_PLAYERS. There are a max of 500 playerids, but those ids only go from 0 to 499.

Short story shorter: change the <= to < in the loops where the error occurs.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)