[02:41:35] [debug] AMX backtrace: [02:41:35] [debug] #0 000025d8 in public AngleUpdate () from driftpoints.amx [02:41:35] [debug] Run time error 4: "Array index out of bounds" [02:41:35] [debug] Accessing element at index 200 past array upper bound 199 [02:41:35] [debug] AMX backtrace: [02:41:35] [debug] #0 0000356c in public CheckPlayerState () from driftpoints.amx [02:41:35] [debug] Run time error 4: "Array index out of bounds" [02:41:35] [debug] Accessing element at index 200 past array upper bound 199 [02:41:35] [debug] AMX backtrace: [02:41:35] [debug] #0 0000356c in public CheckPlayerState () from driftpoints.amx
public CheckPlayerState(){ //by Abhinav new i,cs; for(i=0;i<=MAX_PLAYERS;i++){ if(i != INVALID_PLAYER_ID) { 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(){ // By abhinav new i; for(i=0;i<=MAX_PLAYERS;i++){ if(i != INVALID_PLAYER_ID) { if(AutoFixBool[i] && IsPlayerInAnyVehicle(i)){ SetVehicleHealth(GetPlayerVehicleID(i),HealthInit[i]); } } } }
for(i=0;i<=MAX_PLAYERS;i++)
// correct:
for(i=0;i<MAX_PLAYERS;i++)
When you declare an array with size of MAX_PLAYERS, the valid bounds are between 0 and MAX_PLAYERS-1. So using "<=" instead of "<" or "!=" will give the run time error 4.
Replace every player loop from: pawn Код:
pawn Код:
|