Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7
  1. #1
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±

    Пропадают диалоги.

    Добрый вечер.Столкнулся с такой проблеммой.
    При конекте появляется диалог авторизации, я ввожу пароль, и все диалоги пропадают и не спавнится, а если я при это не был зарегистрирован, то при конекте вообще диалога не появится.
    Поставил crashdetect, он выявил:
    PHP код:
    19:09:26] [debugRun time error 4"Array index out of bounds"
    [19:09:26] [debug]  Accessing element at index 65535 past array upper bound 1999
    [19:09:26] [debugAMX backtrace:
    [
    19:09:26] [debug#0 00015fac in public OnPlayerLogin (playerid=0, password[]=@001b3b74 "123321") at C:\Users\Никита\Desktop\Somp-RP\gamemodes\new.pwn:937
    [19:09:28] [debugRun time error 4"Array index out of bounds"
    [19:09:28] [debug]  Accessing element at index 65535 past array upper bound 1999
    [19:09:28] [debugAMX backtrace:
    [
    19:09:28] [debug#0 0001c890 in public Itter_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Никита\Desktop\Somp-RP\gamemodes\new.pwn:1278
    [19:09:28] [debug#1 native CallLocalFunction () from samp-server.exe
    [19:09:28] [debug#2 0000d8f0 in public SSCANF_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Никита\Desktop\Somp-RP\pawno\include\foreach.inc:787
    [19:09:28] [debug#3 native CallLocalFunction () from samp-server.exe
    [19:09:28] [debug#4 00000e58 in public OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Никита\Desktop\Somp-RP\pawno\include\sscanf2.inc:223 
    PHP код:
    if(pData[playerid][pHousekey] != 999)
        {
            
    CarHouse[playerid] = AddStaticVehicleEx(pData[playerid][pCar], HouseInfo[pData[playerid][pHousekey]][hCarx],HouseInfo[pData[playerid][pHousekey]][hCary],HouseInfo[pData[playerid][pHousekey]][hCarz], HouseInfo[pData[playerid][pHousekey]][hCarc], pData[playerid][pColor][0], pData[playerid][pColor][1], 86400);
            if(
    pData[playerid][pCar] == 462CarFuel[CarHouse[playerid]] = 200;
            else 
    CarFuel[CarHouse[playerid]] = pData[playerid][FuelCar]; //Строка 937
            
    Doors(CarHouse[playerid],true);
            
    Engine(CarHouse[playerid],false);
            
    IsEngineBroken[CarHouse[playerid]] = false;
        } 
    PHP код:
        if(CarHouse[playerid])
        {
            
    pData[playerid][FuelCar] = CarFuel[CarHouse[playerid]];//Строка 1278
            
    DestroyVehicle(CarHouse[playerid]);
            
    IsEngineBroken[CarHouse[playerid]] = false;
            
    CarHouse[playerid] = 0;
        } 
    Последний раз редактировалось Bady; 16.08.2015 в 20:23.

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Инициализацию CarFuel в студию.

  3. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Bady Посмотреть сообщение
    PHP код:
    19:09:26] [debugRun time error 4"Array index out of bounds"
    [19:09:26] [debug]  Accessing element at index 65535 past array upper bound 1999
    [19:09:26] [debugAMX backtrace:
    [
    19:09:26] [debug#0 00015fac in public OnPlayerLogin (playerid=0, password[]=@001b3b74 "123321") at C:\Users\Никита\Desktop\Somp-RP\gamemodes\new.pwn:937 
    Имеем выход за пределы массива. В массиве 2000 ячеек (от 0 до 1999 - в логах крашдетекта указывается верхняя граница, а не кол-во элементов). Индекс: 65535 (в массиве из 2000 ячеек 65535-й ячейки точно нет).
    Цитата Сообщение от Bady Посмотреть сообщение
    PHP код:
    else CarFuel[CarHouse[playerid]] = pData[playerid][FuelCar]; //Строка 937 
    Вы правильно мыслите, ошибка возникает здесь.
    Но откуда могло взяться значение 65535? Скорее всего, это значение из CarHouse[playerid].
    Есть ещё вариант, что такое значение записано в playerid (INVALID_PLAYER_ID), но эта переменная используется для индексирования и до 937 строки, никаких ошибок там не вознкает.

    В другой ошибке, видимо, то же самое.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. Пользователь сказал cпасибо:
    Bady (17.08.2015)
  5. #4
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Проблема в CarHouse, а именно при создании авто. Ну вот я не могу понять что именно я не правильно делаю.
    PHP код:
    new CarHouse[MAX_PLAYERS]; 
    PHP код:
    new house pData[playerid][pHousekey];
            
    CarHouse[playerid] = AddStaticVehicleEx(pData[playerid][pCar], HouseInfo[house][hCarx],HouseInfo[house][hCary],HouseInfo[house][hCarz], HouseInfo[house][hCarc], pData[playerid][pColor][0], pData[playerid][pColor][1], 86400); 

  6. #5
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Цитата Сообщение от Bady Посмотреть сообщение
    Проблема в CarHouse, а именно при создании авто. Ну вот я не могу понять что именно я не правильно делаю.
    PHP код:
    new CarHouse[MAX_PLAYERS]; 
    PHP код:
    new house pData[playerid][pHousekey];
            
    CarHouse[playerid] = AddStaticVehicleEx(pData[playerid][pCar], HouseInfo[house][hCarx],HouseInfo[house][hCary],HouseInfo[house][hCarz], HouseInfo[house][hCarc], pData[playerid][pColor][0], pData[playerid][pColor][1], 86400); 
    AddStaticVehicle/Ex - можно использовать только в OnGameModeInit, это так к слову. Попробуй заменить на CreateVehicle

  7. #6
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Значит функция AddStaticVehicleEx не может создать транспорт и возвращает INVALID_VEHICLE_ID (65535). Либо слишком много машин на сервере, либо дело в параметрах функции (например, неправильный ID модели транспорта).

    Цитата Сообщение от wAx Посмотреть сообщение
    AddStaticVehicle/Ex - можно использовать только в OnGameModeInit, это так к слову. Попробуй заменить на CreateVehicle
    Я раньше пробовал создавать поезда через AddStaticVehicle (через CreateVehicle они не создаются) из команды - работало.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  8. Пользователь сказал cпасибо:
    Bady (17.08.2015)
  9. #7
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Значит функция AddStaticVehicleEx не может создать транспорт и возвращает INVALID_VEHICLE_ID (65535). Либо слишком много машин на сервере, либо дело в параметрах функции (например, неправильный ID модели транспорта).

    Я раньше пробовал создавать поезда через AddStaticVehicle (через CreateVehicle они не создаются) из команды - работало.
    Спасибо, не верный ид транспорта был!
    Закройте тему.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •