CrashDetect [DEBUG]
#1

Ive never faced that problem before,anyone have solution?

Код:
[debug] AMX backtrace:
[debug] #0 00035280 in public VehicleListener () from rp.amx
[debug]  Accessing element at index 65535 past array upper bound 1999
Код:
public VehicleListener()
{

	if(derby_sys_countdown > 0) { derby_sys_countdown --; }
	if(derby_sys_countdown <= 4 && derby_sys_countdown > 0)
	{

	    new str[64];
	    format(str,sizeof(str),"DERBY STARTS IN: %d",(derby_sys_countdown - 1));
	    for(new a = 0; a < MAX_PLAYERS; a ++)
	    {

	        if(IsPlayerConnectedEx(a))
	        {

				if(derby_sys_driver[a])
				{

		            GameTextForPlayer(a,str,1000,5);
		            if(derby_sys_countdown >= 2)
		            {

		            	PlayerPlaySound(a,1056,0.0,0.0,0.0);

					}
					else if(derby_sys_countdown == 1)
					{

						PlayerPlaySound(a,1057,0.0,0.0,0.0);
						TogglePlayerControllable(a,1);

					}
				}

	        }

	    }

	}
	if(nascar_sys_countdown > 0) { nascar_sys_countdown --; }
	if(nascar_sys_countdown <= 4 && nascar_sys_countdown > 0)
	{

	    new str[64];
	    format(str,sizeof(str),"RACE STARTS IN: %d",(nascar_sys_countdown - 1));
	    for(new a = 0; a < MAX_PLAYERS; a ++)
	    {

	        if(IsPlayerConnectedEx(a))
	        {

				if(nascar_sys_driver[a])
				{

		            GameTextForPlayer(a,str,1000,5);
		            if(nascar_sys_countdown >= 2)
		            {

		            	PlayerPlaySound(a,1056,0.0,0.0,0.0);

					}
					else if(nascar_sys_countdown == 1)
					{

						PlayerPlaySound(a,1057,0.0,0.0,0.0);
						TogglePlayerControllable(a,1);
						RefreshNascarStage(a);

					}
				}

	        }

	    }

	}
	for(new slot = 0; slot < MAX_RP_VEHICLES; slot ++)
	{

		if(VehicleInfo[slot][vVehicle] > -1)
		{

    		if(sync_engine_off[VehicleInfo[slot][vVehicle]]) { StopEngine(VehicleInfo[slot][vVehicle]); sync_engine_off[VehicleInfo[slot][vVehicle]] = 0; }
			if(sync_attribs[VehicleInfo[slot][vVehicle]]) { AddVehicleMods(VehicleInfo[slot][vVehicle]); ResyncColors(VehicleInfo[slot][vVehicle]); sync_attribs[VehicleInfo[slot][vVehicle]] = 0; }
			if(VehicleInfo[slot][vSelling] > -1)
			{

			    if(gettime() >= VehicleInfo[slot][vSellingExpire])
			    {

			        if(!vehicle_creating)
			        {

			            vehicle_creating = 1;
				        SendMail(VehicleInfo[slot][vOwner],"Your sale has expired","Unfortunatelly your vehicle sale has expired, we couldnt find anyone that wanted your car!","Palomino Creek Used Vehicles",(slot + 20000));
						VehicleInfo[slot][vSelling] = -1;
						VehicleInfo[slot][vSellingExpire] = 0;
						VehicleInfo[slot][vSellingPrice] = 0;
						DestroyVehicle(VehicleInfo[slot][vVehicle]);
						VehicleInfo[slot][vVehicle] = CreateVehicle(VehicleInfo[slot][vModel],VehicleInfo[slot][vSpawnX],VehicleInfo[slot][vSpawnY],VehicleInfo[slot][vSpawnZ],VehicleInfo[slot][vSpawnR],VehicleInfo[slot][vColor1],VehicleInfo[slot][vColor2],-1);
						if(strlen(VehicleInfo[slot][vPlate])) { SetVehicleNumberPlate(VehicleInfo[slot][vVehicle],VehicleInfo[slot][vPlate]); }
						sync_attribs[VehicleInfo[slot][vVehicle]] = 1;
						sync_engine_off[VehicleInfo[slot][vVehicle]] = 1;
						for(new bizes = 0; bizes < MAX_BIZES; bizes ++)
						{

							if(BizInfo[bizes][bType] == BIZ_TYPE_VAUCTION)
							{

							    for(new z = 0; z < 5; z ++)
							    {

							        if(used_vehicle_slots[bizes][z] == slot)
							        {

							            DestroyPickup(used_vehicle_pickups[bizes][z]);
							            used_vehicle_slots[bizes][z] = -1;
							            used_vehicle_pickups[bizes][z] = 0;

							        }

							    }

							}

						}
						vehicle_creating = 0;

					}

			    }

			}
			if(IsEngineOn(VehicleInfo[slot][vVehicle]) && !sync_engine_off[VehicleInfo[slot][vVehicle]] && !IsPushbike(GetVehicleModel(VehicleInfo[slot][vVehicle])))
			{

				if(fuel_interval[VehicleInfo[slot][vVehicle]] <= 0) { VehicleInfo[slot][vFuel] --; fuel_interval[VehicleInfo[slot][vVehicle]] = FetchFuelInterval(VehicleInfo[slot][vVehicle]); FuelCheck(VehicleInfo[slot][vVehicle]); }
				else if(fuel_interval[VehicleInfo[slot][vVehicle]] > 0) { fuel_interval[VehicleInfo[slot][vVehicle]] --; }

			}
			if(vehicle_alarm_time[VehicleInfo[slot][vVehicle]] == 1)
			{

			    StopAlarm(VehicleInfo[slot][vVehicle]);
			    vehicle_alarm_time[VehicleInfo[slot][vVehicle]] = 0;

			}
			if(vehicle_alarm_time[VehicleInfo[slot][vVehicle]] > 1)
			{

			    vehicle_alarm_time[VehicleInfo[slot][vVehicle]] --;

			}
			if(VehicleInfo[slot][vDeathTime] == 1)
			{

		        new vehowner = -1;
			    for(new a = 0; a < MAX_PLAYERS; a ++)
			    {

			        if(IsPlayerConnectedEx(a))
			        {

			            if(CharacterInfo[a][active_character[a]][cID] == VehicleInfo[slot][vOwner])
			            {

							vehowner = a;

			            }

			        }

			    }
			    if(vehowner > -1)
			    {

			        new vname[256];
					new str[256];
					GetVehicleNameByModel(VehicleInfo[slot][vModel],vname);
					format(str,sizeof(str),"You failed to redeem your %s in time. You have lost it!",vname);
					SendClientMessageA(vehowner,COLOR_LIGHTRED,str);
					VehicleInfo[slot][vOwner] = 0;
			        VehicleInfo[slot][vInsurance] = 0;
			        VehicleInfo[slot][vDestroyed] = 0;
			        VehicleInfo[slot][vModel] = 0;
			        VehicleInfo[slot][vSpawnX] = 0.0;
			        VehicleInfo[slot][vSpawnY] = 0.0;
			        VehicleInfo[slot][vSpawnZ] = 0.0;
			        VehicleInfo[slot][vDeathTime] = 0;
					format(str,sizeof(str),"UPDATE rp_vehicles SET truncated = 1 WHERE id = '%d'",VehicleInfo[slot][vID]);
					mysql_query(str,slot);

			  	}

			}
			if(VehicleInfo[slot][vDeathTime] > 1)
			{

			    VehicleInfo[slot][vDeathTime] --;

			}
			if(startup_delay[VehicleInfo[slot][vVehicle]] > 0)
			{
				startup_delay[VehicleInfo[slot][vVehicle]] --;
				if(startup_delay[VehicleInfo[slot][vVehicle]] == 0 && IsPlayerInVehicle(startup_delay_sender[VehicleInfo[slot][vVehicle]],VehicleInfo[slot][vVehicle]))
				{

					new vname[128];
					GetVehicleNameByModel(GetVehicleModel(VehicleInfo[slot][vVehicle]),vname);
					new str[128];
					format(str,sizeof(str),"starts the %s's engine",vname);
					SendEmote(startup_delay_sender[VehicleInfo[slot][vVehicle]],str);
					StartEngine(VehicleInfo[slot][vVehicle]);
					startup_delay_sender[VehicleInfo[slot][vVehicle]] = -1;

				}
				else if(startup_delay[VehicleInfo[slot][vVehicle]] == 0) { startup_delay_sender[VehicleInfo[slot][vVehicle]] = -1; }

			}

		}

	}
	for(new i = 0; i < MAX_VEHICLES; i ++)
	{

	    if(GetVehicleDistanceFromPoint(i,vpos[i][0],vpos[i][1],vpos[i][2]) > 15.0 && vpos[i][0] != 0.0 && vpos[i][1] != 0.0 && vpos[i][2] != 0.0)
	    {

	        if(!IsAnyPlayerInVehicle(i))
	        {

	            SetVehiclePosEx(i,vpos[i][0],vpos[i][1],vpos[i][2]);
	            SetVehicleZAngle(i,vpos[i][3]);
				printf("Vehicle ID: %d just travelled more than 15 meters with no one in it! Resetting its position.");

			}

		}
	    new Float:X, Float:Y, Float:Z, Float:R;
		GetVehiclePos(i,X,Y,Z);
		GetVehicleZAngle(i,R);
		vpos[i][0] = X;
		vpos[i][1] = Y;
		vpos[i][2] = Z;
		vpos[i][3] = R;



	}

}
Reply
#2

65535 is INVALID_VEHICLE_ID, and you're trying to access array of size MAX_VEHICLES at index INVALID_VEHICLE_ID.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)