• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Краш сервера при смерти не от игрока.

Vfox

Дебютант
Добрый вечер. Кто может помогите пожалуйста.В Pawn разбираюсь не особо хорошо, но хочу пофиксить ошибку. Когда убиваю себя командой /sethp, падаю на землю или убиваю себя взрывом, выводится в лог сервера вот это:

[20:39:15] Игрок Vladimir_Rizhskiy только что использовал команду "/sethp 0 0 "
[20:39:15] Игрок Vladimir_Rizhskiy только что умер
[20:39:15] [debug] Run time error 4: "Array index out of bounds"
[20:39:15] [debug] Accessing element at index 65535 past array upper bound 499
[20:39:15] [debug] AMX backtrace:
[20:39:15] [debug] #0 003c5994 in public OnPlayerDeath (playerid=0, killerid=65535, reason=255) at C:\Servers\Province rp(CRMP)\gamemodes\PR-RP.pwn:14053
[20:39:15] [death] Vladimir_Rizhskiy died 255
[20:39:19] [debug] Server crashed while executing PR-RP.amx
[20:39:21] [debug] Server crashed while executing PR-RP.amx

Строка с ошибкой:
public OnPlayerDeath(playerid, killerid, reason)
{
if(PlayerLogged[playerid] == 0) return false;
PlayerSpawned[playerid] = 0;
ResetWeapon(playerid);
SetPVarInt(playerid,"K_Times",GetPVarInt(playerid,"K_Times") + 1);
if(reason == 38 && GetPlayerState(killerid) == PLAYER_STATE_PASSENGER)
{
KickEx(playerid,8881);
return true;
}
if(PlayerLie[playerid]) CheckBed(playerid);
if(GetPVarInt(playerid,"K_Times") > 1)
{
KickEx(playerid,0524);
return true;
}
if(reason >= 1 && reason <= 46 && GetPlayerWeapon(killerid) != reason && PlayerInfo[playerid][pLevel] <= 3)
{
KickEx(playerid,0525);
return true;
}
new gunname[32];
new string[250];
if(PlayerInfo[playerid][pJob] == J_TRUCKER) ResetTruck(playerid);
PlayerPlaySound(playerid, 30803, 0.0, 0.0, 0.0);
if(PlayerInfo[playerid][pHealthS] >= 9)
{
PlayerInfo[playerid][pHealthS] -= 4.00;
PlayerInfo[playerid][pHeal] = PlayerInfo[playerid][pHealthS];
}
else
{
PlayerInfo[playerid][pHealthS] = 10;
PlayerInfo[playerid][pHeal] = PlayerInfo[playerid][pHealthS];
SendClientMessage(playerid,COLOR_YELLOW,"{BEBEBE}[ ! ] Âàøå ñîñòîÿíèå çäîðîâüÿ íà ãðàíè!");
}
PlayerInfo[playerid][pHospital] = 1;
GunCheckTime[playerid] = 5;
GetWeaponName(reason,gunname,sizeof(gunname));
if(killerid == INVALID_PLAYER_ID || killerid == 65535) format(string, 128, "{AFAFAF}[ A ] >> %s (ID: %d) ïîãèá",PlayerInfo[playerid][pSendername], playerid);
else if(strlen(gunname) > 1 && killerid != 65535) format(string, 128,"{AFAFAF}[ A ] >> %s (ID: %d) óáèë èãðîêà %s (ID: %d) ñ %s",PlayerInfo[killerid][pSendername],killerid,PlayerInfo[playerid][pSendername],playerid,gunname);
else if(killerid != INVALID_PLAYER_ID && strlen(gunname) < 1) format(string, 128, "{AFAFAF}[ A ] >> %s (ID: %d) óáèë èãðîêà %s (ID: %d) êóëàêàìè",PlayerInfo[killerid][pSendername],killerid,PlayerInfo[playerid][pSendername],playerid);
SendAdminMessage(COLOR_LIGHTRED,string);
printf("Èãðîê %s òîëüêî ÷òî óìåð", PlayerInfo[playerid][pSendername]);
if(GetPVarInt(playerid,"pGPSWork") == 1)
{
DisablePlayerRaceCheckpoint(playerid);
}
DisablePlayerCheckpoint(playerid);
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid,3);
if(GetPVarInt(playerid, "ProductID") > 0)
{
DisablePlayerRaceCheckpoint(playerid);
Delete3DTextLabel(ProductInfo[GetPVarInt(playerid, "ProductID")][pText3D]);
ProductInfo[GetPVarInt(playerid, "ProductID")][pStatus] = false;
DeletePVar(playerid, "ProductID");
}
if(GetPVarInt(playerid, "FuelID") > 0)
{
DisablePlayerRaceCheckpoint(playerid);
Delete3DTextLabel(FuelInfo[GetPVarInt(playerid, "FuelID")][pText3D]);
FuelInfo[GetPVarInt(playerid, "FuelID")][pStatus] = false;
DeletePVar(playerid, "FuelID");
}
if(GetPVarInt(playerid, "Noun") > 0)
{
if(GetPVarInt(playerid, "NounObjID") > 0)
{
//DestroyObject(NounObject[GetPVarInt(playerid, "NounObjID")]);
// new objpos = GetPVarInt(playerid, "NounObjID");
// NounObject[objpos] = CreateObject(899, BuldozerCord[objpos][0], BuldozerCord[objpos][1], BuldozerCord[objpos][2], BuldozerCord[objpos][3]);
// if(GetPVarInt(playerid, "NounObjID") < 10) NounObject[GetPVarInt(playerid, "NounObjID")] = CreateObject(899,59.3836+random(10),1834.3936+random(40), 2.3487, 0.0000, 0.0000, 58.2000);
// else NounObject[GetPVarInt(playerid, "NounObjID")] = CreateObject(899,92.3481+random(20),1863.9661+random(40), 2.3487, 0.0000, 0.0000, 58.2000);
DeletePVar(playerid, "NounObjID");
}
DeletePVar(playerid, "Noun");
DeletePVar(playerid, "OldMinerSkin");
DeletePVar(playerid, "MinerKG");
DeletePVar(playerid, "MinerKG_One");
DisablePlayerRaceCheckpoint(playerid);
}
new caller = Mobile[playerid];
if(caller != -1)
{
SendClientMessage(caller, COLOR_GRAD2, "{CD5C5C}[?] {FFFFFF}Ñâÿçü îáîðâàëàñü");
CellTime[caller] = -1;
Mobile[caller] = -1;
Mobile[playerid] = -1;
CellTime[playerid] = -1;
DeletePVar(playerid, "CallTime");
DeletePVar(caller, "CallTime");
}
if(InShop[playerid] > 0 || GetPVarInt(playerid, "InShop") > 0)
{
DestroyVehicle(salonveh[playerid]);
DeletePVar(playerid, "InShop");
InShop[playerid] = 0;
PlayerTextDrawHide(playerid, VehNazv[playerid]);
PlayerTextDrawHide(playerid, VehCost[playerid]);
TextDrawHideForPlayer(playerid,PressA);
TextDrawHideForPlayer(playerid,PressD);
TextDrawHideForPlayer(playerid,PressH);
TextDrawHideForPlayer(playerid,PressC);
TextDrawHideForPlayer(playerid,PressB);
TextDrawHideForPlayer(playerid,VehBox);
}
if(GetPVarInt(playerid, "LicTest") > 0)
{
DeletePVar(playerid, "LicTest");
DeletePVar(playerid, "LicTestHealth");
DeletePVar(playerid, "LicTestError");
lictest_Time[playerid] = 0;
SendClientMessage(playerid, COLOR_LIGHTRED, "{BEBEBE}[!] {FA8072}Âû ïðîâàëèëè ýêçàìåí ïî âîæäåíèþ");
}
if(PlayerInfo[killerid][pMorgan] == 0)
{

if(IsACop(killerid) || PlayerInfo[killerid][pMember] == F_ARMY) { }
else
{
if(PlayerInfo[killerid][pWanted] >= 6) return true;
PlayerInfo[killerid][pWanted] += 2;
if(PlayerInfo[killerid][pWanted] >= 6) PlayerInfo[killerid][pWanted] = 6;
PlayerInfo[killerid][pWantedTime] = 1800 + random(300);
SetPlayerWantedLevel(killerid,PlayerInfo[killerid][pWanted]);
SetPlayerCriminal(killerid, "Íåèçâåñòíûé", "Óáèéñòâî ÷åëîâåêà");
SendMes(killerid,-1,"ïîãèá %s",PlayerInfo[playerid][pSendername]);
}
}




Что нужно сюда добавить чтобы сервер не крашило?
 
Сверху Снизу