Помогите устранить проблему Crashdetect
#1

Здравствуйте уважаемые пользователи SA-MP.COM

Код где ошибка:
PHP код:
    if (newkeys == 1024)
    {
        new 
GetPlayerVirtualWorld(playerid)-100;
        if (!
IsPlayerInRangeOfPoint(playerid7.0HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])) return 1;
        if (
GetPlayerInterior(playerid) == 0) return 1;
        if (
GetPlayerVirtualWorld(playerid)-100 1) return 1;
        
SetPlayerInterior(playerid,0);
        
SetPlayerVirtualWorld(playerid,0);
        
SetPlayerPos(playerid,HouseInfo[h][hEnterX],HouseInfo[h][hEnterY],HouseInfo[h][hEnterZ]);
    } 
Строки:
PHP код:
new GetPlayerVirtualWorld(playerid)-100
и
PHP код:
if (GetPlayerVirtualWorld(playerid)-100 1) return 1
Crashdetect:
PHP код:
[06:35:26] [debugAMX backtrace:
[
06:35:26] [debug#0 000cd458 in public OnPlayerKeyStateChange (0x00000001, 0x00000400, 0x00000404) from new.amx
[06:35:26] [debugRun time error 4"Array index out of bounds"
[06:35:26] [debug]  Accessing element at negative index -100 
Reply
#2

if (GetPlayerVirtualWorld(playerid)-100 < 1) return 1;

нужно поставить перед:

if (!IsPlayerInRangeOfPoint(playerid, 7.0, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])) return 1;

по всем законам логики
Reply
#3

Quote:
Originally Posted by xJester
Посмотреть сообщение
if (GetPlayerVirtualWorld(playerid)-100 < 1) return 1;

нужно поставить перед:

if (!IsPlayerInRangeOfPoint(playerid, 7.0, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])) return 1;

по всем законам логики
Благодарю. Тему можно удалить.
Reply
#4

new h = GetPlayerVirtualWorld(playerid)-100;

отрицательный индекс может получится ведь... А его потом подставляете:
SetPlayerPos(playerid,HouseInfo[h][hEnterX],HouseInfo[h][hEnterY],HouseInfo[h][hEnterZ]);
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)