Question

Mironchik
Новичок

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

 

[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, "");
                }
            }
        }

 

 

Share this post


Link to post
Share on other sites

1 answer to this question

  • 0
DEST
Maintainer

@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

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • тимормо
      By тимормо
      Копия Diamond RP (основа State 99)
      Скачать файл Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
      Добавил тимормо Добавлено 07/15/26 Категория Моды Автор #TomSnow  
    • тимормо
      By тимормо
      Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
    • x4reo
      By x4reo
      EPOCH ROLE PLAY | ВОЗВРАЩЕНИЕ В 90-Е Создаем атмосферный Full RP проект без «фарма» и лишней «дичи»     О ПРОЕКТЕ Epoch Role Play — это площадка для тех, кто ценит качество, а не статистику. Мы строим живой мир, где каждое действие имеет последствия, а экономика строится на социальном взаимодействии.   КОГО МЫ ИЩЕМ? • Lead Developer (Pawn/C#/JS): Создание ядра мода, БД, оптимизация. • Mapper/Level Designer: Создание аутентичных интерьеров 90-х. • Game Designer: Проработка ролевых правил и сценариев. • SMM-менеджер: Ведение соцсетей, создание контента. • Дизайнер: Оформление медиа и UI проекта. • Discord-архитектор: Настройка каналов и безопасности. • Web-разработчик: Сайт и форум проекта. • Bot-developer (VK/TG): Безопасность: 2FA, привязка аккаунтов.   НАШИ УСЛОВИЯ 1. Энтузиазм: Проект стартует без бюджета. Мы ищем единомышленников. 2. Соавторство: Каждый участник — полноценный совладелец проекта. 3. Партнерство: Вся прибыль от монетизации распределяется пропорционально вкладу.     КОНТАКТЫ ДЛЯ СВЯЗИ Telegram: x4reoo  
    • Gabriel C
      By Gabriel C
      Всем привет. Ищу клиентскую сборку Flin RP для ПК.
      Нужна полноценная версия клиента со всеми необходимыми файлами для запуска игры и подключения к серверу.
      Желательно сборку примерно 2023 года, так как по имеющимся файлам видно, что обновления клиента и систем Real Cars / Real Skins были сделаны в начале 2023 года.
      Нужна именно ПК-сборка/клиент Flin RP:
      лаунчер (если был); папка с игрой; ASI/плагины; cache/modpack с моделями. Если у кого-то осталась рабочая сборка или архив клиента — буду благодарен за помощь.