SA-MP Forums

Go Back   SA-MP Forums > SA-MP Server > Server Support

Reply
 
Thread Tools Display Modes
Old 12/11/2015, 01:39 PM   #1
Andrei1255
Little Clucker
 
Join Date: Jul 2014
Posts: 21
Reputation: 0
Default Run time error 4: "Array index out of bounds" problem

Hi ! I have a problem with the following error (in server_log.txt) :

Code:
[16:30:17] [debug] AMX backtrace:
[16:30:17] [debug] #0 00092974 in public OnPlayerStateChange (6, 2, 1) from vitalcs.amx
[16:30:18] [debug] Run time error 4: "Array index out of bounds"
[16:30:18] [debug]  Accessing element at index 255 past array upper bound 199
[16:30:18] [debug] AMX backtrace:
[16:30:18] [debug] #0 00099ac4 in public OtherTimer () from vitalcs.amx
[16:30:19] [debug] Run time error 4: "Array index out of bounds"
[16:30:19] [debug]  Accessing element at index 255 past array upper bound 199
[16:30:19] [debug] AMX backtrace:
[16:30:19] [debug] #0 00099ac4 in public OtherTimer () from vitalcs.amx
[16:30:20] [debug] Run time error 4: "Array index out of bounds"
[16:30:20] [debug]  Accessing element at index 255 past array upper bound 199
[16:30:20] [debug] AMX backtrace:
[16:30:20] [debug] #0 00099ac4 in public OtherTimer () from vitalcs.amx
[16:30:21] [debug] Run time error 4: "Array index out of bounds"
[16:30:21] [debug]  Accessing element at index 255 past array upper bound 199
So, you can see that it is spammed very fastly, 4-5 times per second, and I think that it gets lag to the server, sometimes crash too .

I tried to use the " if(i != INVALID_PLAYER_ID) " function , but it is still so .

Other Timer Code:

Code:
public OtherTimer()
{
    //new Float:maxspeed = 175.0;
    //new plname[MAX_PLAYER_NAME];
	new string[128];//era 256
	new Float:oldposx, Float:oldposy, Float:oldposz;
    for(new i = 0; i < MAX_PLAYERS; i++)
	{
	    if(IsPlayerConnected(i) && i != INVALID_PLAYER_ID)
	    {
            if(SafeTime[i] > 0)
			{
				SafeTime[i]--;
			}
			if(SafeTime[i] == 1)
			{
				if(gPlayerAccount[i] == 1 && gPlayerLogged[i] == 0)
				{
					new loginname[64];
					new loginstring[128];
					GetPlayerName(i,loginname,64);
					format(loginstring,sizeof(loginstring),"{FFFFFF}Welcome, {F81414} %s \n \n{FFFFFF}You can now login:\nPlease enter your {6EF83C}password {FFFFFF}below:",loginname);
					ShowPlayerDialog(i,12346,DIALOG_STYLE_PASSWORD,"Login",loginstring,"Login","Exit");
				}
			}
		    if(GetPlayerState(i) == 2)
		    {
				GetPlayerPos(i, TelePos[i][3], TelePos[i][4], TelePos[i][5]);
				if(TelePos[i][5] > 550.0)
				{
					TelePos[i][0] = 0.0;
					TelePos[i][1] = 0.0;
				}
				if(TelePos[i][0] != 0.0)
				{
					new Float:xdist = TelePos[i][3]-TelePos[i][0];
					new Float:ydist = TelePos[i][4]-TelePos[i][1];
					new Float:sqxdist = xdist*xdist;
					new Float:sqydist = ydist*ydist;
					new Float:distance = (sqxdist+sqydist)/31;
					if(gSpeedo[i] == 2)
					{
						if(distance <10)
						{
							format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~g~mph :   ~w~%.0f",distance);
						}
						if(distance > 10 && distance < 100)
						{
							format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~g~mph :  ~w~%.0f",distance);
						}
						if(distance > 100)
						{
							format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~g~mph : ~w~%.0f",distance);
						}
						GameTextForPlayer(i, string, 2000, 5);
					}
					/*if(distance > maxspeed && PlayerInfo[i][pAdmin] < 1)
					{
						new tmpcar = GetPlayerVehicleID(i);
						if(!IsAPlane(tmpcar))
						{
							GetPlayerName(i, plname, sizeof(plname));
							format(string, sizeof(string), "AdmWarning: [%d]%s %.0f mph",i,plname,distance);
							ABroadCast(COLOR_YELLOW,string,1);
						}
					}*/
				}
				if(TelePos[i][5] < 550.0 && TelePos[i][3] != 0.0)
				{
					TelePos[i][0] = TelePos[i][3];
					TelePos[i][1] = TelePos[i][4];
				}
			}
		    if(PlayerInfo[i][pLocal] != 255 && PlayerInfo[i][pInt] != 0)
			{
				new house = PlayerInfo[i][pLocal];
				GetPlayerPos(i, oldposx, oldposy, oldposz);
				if(oldposz != 0.0)
				{
					if(oldposz < 600.0)
					{
						if(house > 10000)
						{
							new tmpcar = GetPlayerVehicleID(i);
							if (!PlayerToPoint(6, i,1040.6,-1021.0,31.7) && house == 10001 ||!PlayerToPoint(6, i,-2720.5,217.5,4.1) && house == 10002 ||!PlayerToPoint(6, i,2644.6,-2044.9,13.3) && house == 10003)
							{
								if (GetPlayerState(i) == 2)
								{
									SetVehiclePos(tmpcar, HouseCarSpawns[tmpcar-1][0], HouseCarSpawns[tmpcar-1][1], HouseCarSpawns[tmpcar-1][2]);
									SetVehicleZAngle(tmpcar, HouseCarSpawns[tmpcar-1][3]);
								}
								else
								{
									SetPlayerPos(i, HouseCarSpawns[tmpcar-1][0], HouseCarSpawns[tmpcar-1][1], HouseCarSpawns[tmpcar-1][2]);
								}
								new oldcash = gSpentCash[i];
								new Total = GetPlayerCash(i) - oldcash;
								printf("Total %d = GetPlayerCash(playerid) %d - oldcash %d",Total,GetPlayerCash(i),oldcash);
								new name[MAX_PLAYER_NAME];
								GetPlayerName(i, name, sizeof(name));
								format(string, sizeof(string),"<< %s has left the homemodshop with $%d >>",name,Total);
								PayLog(string);
								gSpentCash[i] = 0;
								TelePos[i][0] = 0.0;
								TelePos[i][1] = 0.0;
								PlayerInfo[i][pLocal] = 255;
								SetPlayerInterior(i,0);
								PlayerInfo[i][pInt] = 0;
								Spectate[i] = 255;
							}
						}
						if(house == 241)//City Hall
						{
						    SetPlayerInterior(i,0);
							SetPlayerPos(i,1480.9103,-1770.3743,18.7958);
							PlayerInfo[i][pInt] = 0;
							PlayerInfo[i][pLocal] = 255;
						}
						if(house == 242)
						{
						    SetPlayerInterior(i,0);
							SetPlayerPos(i,1073.0619,-344.5148,73.9922);
							PlayerInfo[i][pInt] = 0;
							PlayerInfo[i][pLocal] = 255;
						}
						if(house >= 99 && house != 10000)
						{
							SetPlayerPos(i, BizzInfo[house-99][bEntranceX], BizzInfo[house-99][bEntranceY],BizzInfo[house-99][bEntranceZ]); // Warp the player
							PlayerInfo[i][pLocal] = 255;
							SetPlayerInterior(i,0);
							PlayerInfo[i][pInt] = 0;
						}
						else if(house < 99 && house != 10000)
						{
							SetPlayerPos(i, HouseInfo[house][hEntrancex], HouseInfo[house][hEntrancey],HouseInfo[house][hEntrancez]); // Warp the player
							PlayerInfo[i][pLocal] = 255;
							SetPlayerInterior(i,0);
							PlayerInfo[i][pInt] = 0;
							SetPlayerVirtualWorld(i,0);
							PlayerInfo[i][pVirWorld] = 0;
						}
					}
				}
			}
		    if(CellTime[i] > 0)
			{
				if (CellTime[i] == cchargetime)
				{
					CellTime[i] = 1;
					if(Mobile[Mobile[i]] == i)
					{
						CallCost[i] = CallCost[i]+callcost;
					}
				}
				CellTime[i] = CellTime[i] +1;
				if (Mobile[Mobile[i]] == 255 && CellTime[i] == 5)
				{
				    if(IsPlayerConnected(Mobile[i]))
				    {
						new called[MAX_PLAYER_NAME];
						GetPlayerName(Mobile[i], called, sizeof(called));
						format(string, sizeof(string), "* %s's phone rings.", called);
						RingTone[Mobile[i]] = 10;
						ProxDetector(30.0, Mobile[i], string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					}
				}
			}
			if(CellTime[i] == 0 && CallCost[i] > 0)
			{
				format(string, sizeof(string), "~w~The call cost~n~~r~$%d",CallCost[i]);
				GivePlayerCash(i, -CallCost[i]);
				SBizzInfo[2][sbTill] += CallCost[i];
				ExtortionSBiz(2, CallCost[i]);
				GameTextForPlayer(i, string, 5000, 1);
				CallCost[i] = 0;
			}
			if(BowlingTimer[i] > 0) BowlingTimer[i] --;
			if(PacaneleTimer[i] > 0) PacaneleTimer[i] --;
			if(TransportTime[i] > 0)
			{//Taxi driver and passenger only
			    if(TransportTime[i] >= 16)
				{
					TransportTime[i] = 1;
					if(TransportDriver[i] < 999)
					{
						if(IsPlayerConnected(TransportDriver[i]))
						{
	      					TransportCost[i] += TransportValue[TransportDriver[i]];
						    TransportCost[TransportDriver[i]] = TransportCost[i];
						}
					}
				}
			    TransportTime[i] += 1;
			    format(string, sizeof(string), "~r~%d ~w~: ~g~$%d",TransportTime[i],TransportCost[i]);
			    GameTextForPlayer(i, string, 15000, 6);
			}
		}
	}
	return 1;
}
So, can anyone help me, please ? Thanks !
Andrei1255 is offline   Reply With Quote
Old 16/11/2015, 06:03 PM   #2
Andrei1255
Little Clucker
 
Join Date: Jul 2014
Posts: 21
Reputation: 0
Default Re: Run time error 4: "Array index out of bounds" problem

UP !!!
Andrei1255 is offline   Reply With Quote
Old 16/11/2015, 06:10 PM   #3
Yousha
Banned
 
Join Date: May 2013
Posts: 118
Reputation: 7
Default Re: Run time error 4: "Array index out of bounds" problem

follow these posts/solutions @ here
Yousha is offline   Reply With Quote
Old 18/11/2015, 06:01 PM   #4
Andrei1255
Little Clucker
 
Join Date: Jul 2014
Posts: 21
Reputation: 0
Default Re: Run time error 4: "Array index out of bounds" problem

UP... Other solution, please ?
Andrei1255 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[REP++ WHO HELPS] Run time error 4: "Array index out of bounds" buburuzu19 Scripting Help 3 14/08/2015 09:21 AM
[debug] Run time error 4: "Array index out of bounds" [++REP] simo0000 Scripting Help 3 13/07/2015 02:16 PM
[debug] Run time error 4: "Array index out of bounds" and many more errors :P ntmp Scripting Help 2 11/08/2014 02:10 PM
[debug] Run time error 4: "Array index out of bounds" gotwarzone Scripting Help 3 24/11/2013 03:59 PM
Run time error 4: "Array index out of bounds" in public turftaking [SF]OutLawZ Scripting Help 1 01/08/2012 05:07 AM


All times are GMT. The time now is 10:07 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.