• 0
Mironchik

[закрыто] Ошибка public OnDialogResponse, public OnIncomingPacket

Вопросы

Пишу команду (меню доната - коинов) и крашит сервер

 

[10:12:25] [debug] Server crashed while executing new.amx
[10:12:25] [debug] AMX backtrace:
[10:12:25] [debug] #0 00000014 in public OnDialogResponse (playerid=0, dialogid=271, response=1, listitem=2, inputtext[]=@017b5b8c "3. ") at C:\Users\fanti\OneDrive\Desktop\Мод 6.1\gamemodes\new.pwn:13
[10:12:25] [debug] #1 00bcb0c8 in public OnIncomingPacket () at C:\Users\fanti\OneDrive\Desktop\Мод 6.1\gamemodes\new.pwn:57310

 

Спойлер

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(strcmp(inputtext, "#", true) == 0 || strcmp(inputtext, "|", true) == 0 || strcmp(inputtext, "%", true) == 0 || strcmp(inputtext, "@", true) == 0 || strcmp(inputtext, "&", true) == 0)
    {
         SCM(playerid, -1, ".");
    }
    if(strfind(inputtext,"%") != -1)
    {
        return SendClientMessage(playerid, 0xFF6600FF, "В сообщение присутствуют запрещеные символы");
    }
    switch(dialogid)
    {
            case DIALOG_OWNABLE_TRAILER:
        {
            if(response)
            {
                new vehicleid = GetPlayerOwnableTrailerListitem(playerid);
                new index = GetVehicleData(vehicleid, V_ACTION_ID);
                if(vehicleid != INVALID_VEHICLE_ID)
                {
                    switch(listitem + 1)
                    {
                        case 1: // Открыть / закрыть
                        {
                            if(!IsPlayerInAnyVehicle(playerid))
                                return SendClientMessage(playerid, 0xCECECEFF, "Вы должны находиться в транспорте");


                            if(GetPlayerOwnableCars(playerid) == 0)
                                return SendClientMessage(playerid, 0xCECECEFF, "Вы должны находиться в личном транспорте");


                            new Float:pX,Float:pY,Float:pZ;
                            GetPlayerPos(playerid,pX,pY,pZ);
                            new Float:vX,Float:vY,Float:vZ;
                            GetVehiclePos(vehicleid,vX,vY,vZ);
                            if ((floatabs(pX-vX)<12.0)&&(floatabs(pY-vY)<12.0)&&(floatabs(pZ-vZ)<12.0)&& (vehicleid!=GetPlayerVehicleID(playerid)))
                            {
                                if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
                                {
                                    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
                                    GetVehiclePos(vehicleid, GetOwnableTrailerData(index, OT_POS_X), GetOwnableTrailerData(index, OT_POS_Y), GetOwnableTrailerData(index, OT_POS_Z));
                                    GetVehicleZAngle(vehicleid, GetOwnableTrailerData(index, OT_ANGLE));

                                    SaveOwnableTrailer(vehicleid);
                                }
                                else
                                {
                                    AttachTrailerToVehicle(vehicleid,GetPlayerVehicleID(playerid));
                                }
                            }
                            else SendClientMessage(playerid, 0x999999FF, "Вы должны находится возле дома на колёсах");
                            SetPVarInt(playerid, "go_list", 1);
                            //callcmd::lock(playerid, "1");
                        }
                        case 2: // Вставить / вытащить ключи
                        {
                            SetPVarInt(playerid, "go_list", 1);
                            if(vehicleid != INVALID_VEHICLE_ID)
                            {
                                new price = 5000;

                                if(GetPlayerGPSInfo(playerid, G_ENABLED) == GPS_STATUS_OFF)
                                {
                                    if(GetPlayerMoneyEx(playerid) >= price)
                                    {
                                        GivePlayerMoneyEx(playerid, -price, "Метка ТС на GPS", true, true);

                                        new Float: x, Float: y, Float: z;
                                        GetVehiclePos(vehicleid, x, y, z);

                                        EnablePlayerGPS(playerid, 55, x, y, z, "Местоположение Вашего транспорта отмечено на GPS");
                                        return 1;
                                    }
                                    else SendClientMessage(playerid, 0x999999FF, "Недостаточно денег");
                                }
                                else SendClientMessage(playerid, 0xCECECEFF, "На Вашем GPS уже отмечено место");
                            }
                        }
                        case 3: // Отметить транспорт на GPS
                        {
                            SetPVarInt(playerid, "go_list", 1);
                            if(DestroyOwnableTrailer(vehicleid))
                            {
                                new fmt_str[128];

                                new car_price = 1400000;
                                new percent = car_price * 20 / 100;
                                new price = car_price - percent;

                                SetPlayerTrailerData(playerid, GetPVarInt(playerid, "listitem_trailer"), INVALID_VEHICLE_ID);
                                AddPlayerData(playerid, P_BANK, +, price);

                                BankLog(playerid, price, "Продажа личного транспорта");

                                format(fmt_str, sizeof fmt_str, "UPDATE accounts SET bank=%d WHERE id=%d LIMIT 1", GetPlayerBankMoney(playerid), GetPlayerAccountID(playerid));
                                mysql_query(mysql, fmt_str, false);

                                SendClientMessage(playerid, 0x3399FFFF, "Вы продали личный дом на колёсах");

                                format(fmt_str, sizeof fmt_str, "Налоговый сбор составляет 30 процентов от его стоимости {FF9900}(%d руб)", percent);
                                SendClientMessage(playerid, 0xFFFFFFFF, fmt_str);

                                format(fmt_str, sizeof fmt_str, "На основной банковский счет переведено {FFFF00}%d руб", price);
                                SendClientMessage(playerid, 0x66CC00FF, fmt_str);

                                format(fmt_str, sizeof fmt_str, "~g~+%d rub", price);
                                GameText(playerid, fmt_str, 4000, 2);
                            }
                        }
                        case 4: // Содержимое багажника
                        {
                            SetVehiclePos(vehicleid, GetOwnableTrailerData(index,OT_POS_X), GetOwnableTrailerData(index,OT_POS_Y), GetOwnableTrailerData(index,OT_POS_Z));
                            SetVehicleZAngle(vehicleid, GetOwnableTrailerData(index, OT_ANGLE));
                        }
                        case 5: // Выгрузить транспорт
                        {
                            if(UnloadPlayerOwnableTrailer(playerid, GetPVarInt(playerid, "listitem_trailer")))
                                SendClientMessage(playerid, 0x66CC33FF, "Ваш трейлер успешно выгружен!");

                            else
                                SendClientMessage(playerid, 0x999999FF, "С момента загрузки данного трейлера еще не прошло 1 минуты");
                        }
                        default:
                            return 1;
                    }
                    //callcmd::car(playerid, "");
                }
            }
        }

 

Спойлер

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(strcmp(inputtext, "#", true) == 0 || strcmp(inputtext, "|", true) == 0 || strcmp(inputtext, "%", true) == 0 || strcmp(inputtext, "@", true) == 0 || strcmp(inputtext, "&", true) == 0)
    {
         SCM(playerid, -1, ".");
    }
    if(strfind(inputtext,"%") != -1)
    {
        return SendClientMessage(playerid, 0xFF6600FF, "В сообщение присутствуют запрещеные символы");
    }
    switch(dialogid)
    {
            case DIALOG_OWNABLE_TRAILER:
        {
            if(response)
            {
                new vehicleid = GetPlayerOwnableTrailerListitem(playerid);
                new index = GetVehicleData(vehicleid, V_ACTION_ID);
                if(vehicleid != INVALID_VEHICLE_ID)
                {
                    switch(listitem + 1)
                    {
                        case 1: // Открыть / закрыть
                        {
                            if(!IsPlayerInAnyVehicle(playerid))
                                return SendClientMessage(playerid, 0xCECECEFF, "Вы должны находиться в транспорте");


                            if(GetPlayerOwnableCars(playerid) == 0)
                                return SendClientMessage(playerid, 0xCECECEFF, "Вы должны находиться в личном транспорте");


                            new Float:pX,Float:pY,Float:pZ;
                            GetPlayerPos(playerid,pX,pY,pZ);
                            new Float:vX,Float:vY,Float:vZ;
                            GetVehiclePos(vehicleid,vX,vY,vZ);
                            if ((floatabs(pX-vX)<12.0)&&(floatabs(pY-vY)<12.0)&&(floatabs(pZ-vZ)<12.0)&& (vehicleid!=GetPlayerVehicleID(playerid)))
                            {
                                if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
                                {
                                    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
                                    GetVehiclePos(vehicleid, GetOwnableTrailerData(index, OT_POS_X), GetOwnableTrailerData(index, OT_POS_Y), GetOwnableTrailerData(index, OT_POS_Z));
                                    GetVehicleZAngle(vehicleid, GetOwnableTrailerData(index, OT_ANGLE));

                                    SaveOwnableTrailer(vehicleid);
                                }
                                else
                                {
                                    AttachTrailerToVehicle(vehicleid,GetPlayerVehicleID(playerid));
                                }
                            }
                            else SendClientMessage(playerid, 0x999999FF, "Вы должны находится возле дома на колёсах");
                            SetPVarInt(playerid, "go_list", 1);
                            //callcmd::lock(playerid, "1");
                        }
                        case 2: // Вставить / вытащить ключи
                        {
                            SetPVarInt(playerid, "go_list", 1);
                            if(vehicleid != INVALID_VEHICLE_ID)
                            {
                                new price = 5000;

                                if(GetPlayerGPSInfo(playerid, G_ENABLED) == GPS_STATUS_OFF)
                                {
                                    if(GetPlayerMoneyEx(playerid) >= price)
                                    {
                                        GivePlayerMoneyEx(playerid, -price, "Метка ТС на GPS", true, true);

                                        new Float: x, Float: y, Float: z;
                                        GetVehiclePos(vehicleid, x, y, z);

                                        EnablePlayerGPS(playerid, 55, x, y, z, "Местоположение Вашего транспорта отмечено на GPS");
                                        return 1;
                                    }
                                    else SendClientMessage(playerid, 0x999999FF, "Недостаточно денег");
                                }
                                else SendClientMessage(playerid, 0xCECECEFF, "На Вашем GPS уже отмечено место");
                            }
                        }
                        case 3: // Отметить транспорт на GPS
                        {
                            SetPVarInt(playerid, "go_list", 1);
                            if(DestroyOwnableTrailer(vehicleid))
                            {
                                new fmt_str[128];

                                new car_price = 1400000;
                                new percent = car_price * 20 / 100;
                                new price = car_price - percent;

                                SetPlayerTrailerData(playerid, GetPVarInt(playerid, "listitem_trailer"), INVALID_VEHICLE_ID);
                                AddPlayerData(playerid, P_BANK, +, price);

                                BankLog(playerid, price, "Продажа личного транспорта");

                                format(fmt_str, sizeof fmt_str, "UPDATE accounts SET bank=%d WHERE id=%d LIMIT 1", GetPlayerBankMoney(playerid), GetPlayerAccountID(playerid));
                                mysql_query(mysql, fmt_str, false);

                                SendClientMessage(playerid, 0x3399FFFF, "Вы продали личный дом на колёсах");

                                format(fmt_str, sizeof fmt_str, "Налоговый сбор составляет 30 процентов от его стоимости {FF9900}(%d руб)", percent);
                                SendClientMessage(playerid, 0xFFFFFFFF, fmt_str);

                                format(fmt_str, sizeof fmt_str, "На основной банковский счет переведено {FFFF00}%d руб", price);
                                SendClientMessage(playerid, 0x66CC00FF, fmt_str);

                                format(fmt_str, sizeof fmt_str, "~g~+%d rub", price);
                                GameText(playerid, fmt_str, 4000, 2);
                            }
                        }
                        case 4: // Содержимое багажника
                        {
                            SetVehiclePos(vehicleid, GetOwnableTrailerData(index,OT_POS_X), GetOwnableTrailerData(index,OT_POS_Y), GetOwnableTrailerData(index,OT_POS_Z));
                            SetVehicleZAngle(vehicleid, GetOwnableTrailerData(index, OT_ANGLE));
                        }
                        case 5: // Выгрузить транспорт
                        {
                            if(UnloadPlayerOwnableTrailer(playerid, GetPVarInt(playerid, "listitem_trailer")))
                                SendClientMessage(playerid, 0x66CC33FF, "Ваш трейлер успешно выгружен!");

                            else
                                SendClientMessage(playerid, 0x999999FF, "С момента загрузки данного трейлера еще не прошло 1 минуты");
                        }
                        default:
                            return 1;
                    }
                    //callcmd::car(playerid, "");
                }
            }
        }

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

  • 0

@Mironchik прикрепите полный лог, не нужно обрезать его. 

И выделите строчки, которые показаны в сообщении лога 

2 часа назад, Mironchik сказал:

at C:\Users\fanti\OneDrive\Desktop\Мод 6.1\gamemodes\new.pwn:57310

 

2 часа назад, Mironchik сказал:

at C:\Users\fanti\OneDrive\Desktop\Мод 6.1\gamemodes\new.pwn:13

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Доналдо Фарекелка
      От Доналдо Фарекелка


      Скачать файл Arizona RolePlay || Ser
      Приветствую, этот мод я нашёл на просторах интернета. 
      Скачал мод у автора:  Developer Stravinskiy
      Доработал мод: Donaldo_Farekelka
       
      Предупреждаю! Мод сырой, багов стало меньше, но они есть.
      Мод: Баня, Подвал, В некоторых местах маппинг, система коронавируса, 8 лвл админок
       
      Информация:
      1) Dc_Cmd
      2) Mysql, mode, language - Всё настраивается теперь в pawno ( UPDATE: 1.1.0 )
      3) Административные права в данный момент можно выдать только через MYSQL ( BD ).
       
      То что я сделал ( Всё что я делаю сейчас, смотрите в изменениях ):
       
      Добавил Доналдо Фарекелка Добавлено 13.04.2023 Категория Моды Автор shenol (vk.com/donaldo_farekelka)  
    • KAIF
      От KAIF


      Скачать файл GTA RolePlay-МОД,СБОРКА
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Единственный мод GTA RP.
      Добавил KAIF Добавлено 01.01.2024 Категория Моды Автор Aleksandr  
    • gooding
      От gooding
      Доброго времени суток! Я выложил на продажу игровой мод RedRow RolePlay!
       
      17 ТИТУЛОВ, 14 КОСТЮМОВ (КАМЕРМЭН, ФЕЯ, СИ-ДЖЕЙ, ДЭДПУЛ, СПАНЧ БОБ, НИНДЗЯ, ДЕД МОРОЗ и другие!),
      BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS, Rolls-Royce Phantom! Система рулетки  (Исправлена, теперь не выпадает одно и то же),
      Автопарки Фракций (FBI и банд), МОД ОПТИМИЗИРОВАЛИ под ИГРУ, ДОБАВИЛИ НОВЫЙ АНТИЧИТ (Latest Nex-AC) и АНТИЧИТ настроен. Проделано много работы (Над модом работали полгода) и исправили множество багов.
       
      Что было добавлено?
      1. 17 титулов,
      2. 14 костюмов,
      3. Эксклюзивный транспорт (SandKing, Rolls-Royce Phantom, BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS).
      4. Автопарк ФБР и всех банд.
      5. Новый анти-чит.
      6. Оптимизация игрового мода.
      7. Премиум и уникальные возможности для владельцев Премиума.
      8. Команда /bonus, где можно получить бесплатно Red Coins.
      9. За АКТИВ даются Red Coins!
      10. Рестарт сервера в 5:00 по МСК.
      11. Радужный клист.
      12. Уникальный тюнинг для эксклюзивных машин и ускорение.
      13. Новая система банка.
      14. Исправлено множество багов.
      15. Новый маппинг.
    • Redmondd
      От Redmondd
      Хочу сделать команду /gpsoff, которая убирает метку