Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Вопрос]public OnPlayerKeyStateChange

Статус
В этой теме нельзя размещать новые ответы.

ADIDAS_

Ученик
Всем привет.Вообщем поставил плагин crashdetect, и увидел ошибку, когда открываеш/закрываеш ворота по клавише выдаёт такую ошибку:
PHP:
[20:00:20] [debug] Run time error 4: "Array index out of bounds"
[20:00:20] [debug]  Accessing element at index 14 past array upper bound 13
[20:00:20] [debug] AMX backtrace:
[20:00:20] [debug] #0 0015a7dc in public OnPlayerKeyStateChange () from limix.amx
Некак не пойму как исправить.Вот паблик:
PHP:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)	{
	new string[255];
    if(IsPlayerConnected(playerid))
    {
        new vid = GetPlayerVehicleID(playerid);
	    new sendername[MAX_PLAYER_NAME];
	    GetPlayerName(playerid, sendername, sizeof(sendername));
		if(newkeys&KEY_ANALOG_LEFT)
		{
		    new engine,lights,alarm,doors,bonnet,boot,objective;
            if(BoatVeh(vid) || PlaneVeh(vid) || BikeVeh(vid))
            {
			    return 1;
			}
			if(Gas[vid] > 0)
            {
			    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && EngineCar[vid] == 0)
                {
                    if(Refueling[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "{F5DEB3}[Помощь]{FFFFFF}: Подождите пока закончиться заправка");
                    new Float:health;
    				GetVehicleHealth(vid, health);
					if(health < 300)
					{
						if(PlayerInfo[playerid][pSex] == 1)
						{
						    Action(playerid, "попытался завести двигатель (неудачно).");
						}
						else if(PlayerInfo[playerid][pSex] == 2)
						{
						    Action(playerid, "попыталась завести двигатель (неудачно).");
						}
						SendClientMessage(playerid, COLOR_GREY, "Двигатель разбит, транспорт не заводится, вы можете вызвать механика (/service mechanic)");
					    return 1;
					}
    				EngineCar[vid] = 1;
                    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
					if(LightCar[vid] == 1) { SetVehicleParamsEx(vid,1,1,alarm,doors,bonnet,boot,objective); }
					else if(LightCar[vid] == 0) { SetVehicleParamsEx(vid,1,0,alarm,doors,bonnet,boot,objective); }
					if(PlayerInfo[playerid][pSex] == 1)
					{
					    format(string, sizeof(string), "завёл двигатель.");
					}
					else if(PlayerInfo[playerid][pSex] == 2)
					{
					    format(string, sizeof(string), "завела двигатель.");
					}
					Action(playerid, string);
	    			if(Gas[vid] <= 10)
	   				{
	   					PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
	   					format(string, sizeof(string), "~y~Fuel:~w~%d", Gas[vid]);
	   				}
	   				else
	   				{
						format(string, sizeof(string), "~y~Fuel:~w~%d", Gas[vid]);
					}
					TimerGas[playerid] = SetTimerEx("CheckGas",MAX_CHECK_GAS,true,"i",playerid);
					TextDrawShowForPlayer(playerid, FUEL[playerid]);
			    }
		        else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && EngineCar[vid] == 1)
                {
				    EngineCar[vid] = 0;
                    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(vid,0,0,alarm,doors,bonnet,boot,objective);
					if(PlayerInfo[playerid][pSex] == 1)
					{
					    format(string, sizeof(string), "заглушил двигатель.");
					}
					else if(PlayerInfo[playerid][pSex] == 2)
					{
					    format(string, sizeof(string), "заглушила двигатель.");
					}
                    Action(playerid, string);
                    TextDrawHideForPlayer(playerid, FUEL[playerid]);
                    TextDrawHideForPlayer(playerid, VHS[playerid]);
                    KillTimer(TimerGas[playerid]);
                    VHSCreated[playerid] = false;
			    }
			}
   			else if(Gas[vid] == 0)
   			{
                SendClientMessage(playerid, COLOR_GREY, "{F5DEB3}[Помощь]{FFFFFF} В автомобиле нет бензина.");
				return 1;
			}
		    return 1;
		}
//------------------------------------------------------------------------------
        if(newkeys == KEY_FIRE)
		{
        if(PlayerToPoint(40.0,playerid,-2033.2883,-97.0586,35.1641)||//Автошкола
       	PlayerToPoint(40.0,playerid,2635.9849,2340.4253,10.6719 ))
		{
			SendClientMessage(playerid, 0xFFFFFFAA, "{F5DEB3}< Внимание >: {F5DEB3}В этом месте драться запрещено.");
			TogglePlayerControllable(playerid, false);
			SetTimerEx("UnfreezePlayer", 5000, false, "i", playerid);
		}
			return 1;
		}
//------------------------------------------------------------------------------
		if(newkeys == 2)
        {
        OnPlayerCommandText(playerid,"/opengate");
        }
        if(newkeys == 1024)
        {
        OnPlayerCommandText(playerid,"/opengate");
        }
        if(newkeys == 2)
        {
        OnPlayerCommandText(playerid,"/kfc");
        }
        if(newkeys == 1024)
        {
        OnPlayerCommandText(playerid,"/kfc");
        }
        if(newkeys == 1024)
        {
        if(IsPlayerInRangeOfPoint(playerid,2.0,210.1433,-129.6538,1003.5152))
        OnPlayerCommandText(playerid,"/odezhdals");
        if(IsPlayerInRangeOfPoint(playerid,2.0,210.5603,-4.6740,1001.2109))
        OnPlayerCommandText(playerid,"/odezhdasf");
        if(IsPlayerInRangeOfPoint(playerid,2.0,167.4527,-92.3457,1001.8047))
        OnPlayerCommandText(playerid,"/odezhdalv");
        if(IsPlayerInRangeOfPoint(playerid,2.0,208.6143,-162.4974,1000.5234))
        OnPlayerCommandText(playerid,"/odezhdadevls");
        }
		if(newkeys == 1024)
        {
            OnPlayerCommandText(playerid,"/enter");
            OnPlayerCommandText(playerid,"/exit");
            if(IsPlayerInRangeOfPoint(playerid,1.0,349.82131958008, -1490.6264648438, 35.941207885742)
            || IsPlayerInRangeOfPoint(playerid,1.0,-338.6393,1310.2911,51.9748)
            || IsPlayerInRangeOfPoint(playerid,1.0,1464.3440,-1749.2555,15.4453)
            || IsPlayerInRangeOfPoint(playerid,1.0,2173.5720,-1666.8235,15.0859)
            || IsPlayerInRangeOfPoint(playerid,1.0,-2650.2864,577.0932,14.6094)
            || IsPlayerInRangeOfPoint(playerid,1.0,558.8949,-1293.2034,17.2482)
            || IsPlayerInRangeOfPoint(playerid,1.0,1931.9969,1327.3584,9.2501)
            || IsPlayerInRangeOfPoint(playerid,1.0,1943.8210,2174.5723,10.8203)
            || IsPlayerInRangeOfPoint(playerid,1.0,-1571.3605,647.3433,7.1875)
			|| IsPlayerInRangeOfPoint(playerid,1.0,-2029.1298828125, -101.7184753418, 35.066207885742)) {
                OnPlayerCommandText(playerid,"/atm");
			}
		}
		if (newkeys == 512 && IsPlayerInVehicle(playerid,GetPlayerVehicleID(playerid)) && !BikeVeh(vid))
    {

           new engine,lights,alarm,doors,bonnet,boot,objective;
        GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
           if(lights){SetVehicleParamsEx(vid,engine,false,alarm,doors,bonnet,boot,objective);}
           else if(!lights){SetVehicleParamsEx(vid,engine,true,alarm,doors,bonnet,boot,objective);}

    }
  		if((newkeys == 2) && (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)) {
  		    if(IsPlayerInVehicle(playerid,GetPlayerVehicleID(playerid)) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  		        for(new g; g <= MAX_GAS_STATION; g++) {
  		            if(IsPlayerInRangeOfPoint(playerid,2.0,GasStations[g][0],GasStations[g][1],GasStations[g][2])) {
          		    	if(EngineCar[GetPlayerVehicleID(playerid)] == 0) {
							ShowPlayerDialog(playerid,58,DIALOG_STYLE_LIST,"Заправка","10 литров\n25 литров\n50 литров\nПолный бак","Заправить","Отмена");
						}
						else return SendClientMessage(playerid, COLOR_GREY, "{F5DEB3}[Помощь]{FFFFFF} Сначало нужно заглушить двигатель. (Чтобы заглушить нажмите цифру NUM4)");
					}
				}
			}
			else return SendClientMessage(playerid,-1,"Инфо: Вы должны находиться в автомобиле (За рулем)!");
		}
		if(newkeys == 1024)
		{
			if(IsACop(playerid) && PlayerToPoint(5.0, playerid,246.4354095459, 72.455558776855, 1004.2604370117))
			{
		    	MoveObject(lspddoor,246.4354095459, 72.455558776855, 1006.5104370117, 3);
		    	SetTimer("lspddoorclose", 3000, 0);
		    	return 1;
			}
		}
		if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && gSpectateID[playerid] != INVALID_PLAYER_ID)
		{
			if(newkeys == KEY_JUMP)
			{
				AdvanceSpectate(playerid);
			}
			else if(newkeys == KEY_SPRINT)
			{
				ReverseSpectate(playerid);
			}
		}
	}
	return 1;
}
Помогите пожалуйста,кому не сложно :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу