• 0
Sign in to follow this  
Followers 0
Mironchik

Ошибка public OnDialogResponse, public OnIncomingPacket

Question

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

 

[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

@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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • danya_white
      By danya_white
      Доброго времени суток, хочу выставить на продажу игровой мод проекта Renaissance RP.
       
      Данный мод является не последний актуальный версии проекта, а версия ниже, многие актуальные систему отсутствуют, но они будут дополняться, со временем. Основные функции на проекте Renaissance RP присутствую в данном моде, это первая версия проекта, поэтому буду дополнять тему своими доработками, также есть TEST IP, реальному покупателю в личные сообщение на форуме, дам данные.
       
      Информация о моде:
      Версия MYSQL - R39-6
      Античит - Встроенный + SAMP-AC
      Стример - Streamer Plugin v2.9.4 by Incognito
      Командный процессор - Pawn CMD
      Основа мода - Brilliant RP
      Остальное Все плагины обновлены до последней версии
       
       
      Основные системы которые присутствуют в данном моде:
      - Система промокодов для семей (/family) - Система выборов - Динамичная система (/lmenu), возможность назначать транспорт, форму сотрудников - Система подразделений в гос.организациях - Система КАЗИНО - Система акксесуаров - Оптимизация игрового мода. - Риелторское агенство. - Квестовая линия (НАЧАЛО) p.s И еще многие другие системы, более подробно на тестовом сервере.
    • danya_white
      By danya_white


      Просмотр файла Игровой мод Renaissance RolePlay
      Доброго времени суток, хочу выставить на продажу игровой мод проекта Renaissance RP.
       
      Данный мод является не последний актуальный версии проекта, а версия ниже, многие актуальные систему отсутствуют, но они будут дополняться, со временем. Основные функции на проекте Renaissance RP присутствую в данном моде, это первая версия проекта, поэтому буду дополнять тему своими доработками, также есть TEST IP, реальному покупателю в личные сообщение на форуме, дам данные.
       
      Информация о моде:
      Версия MYSQL - R39-6
      Античит - Встроенный + SAMP-AC
      Стример - Streamer Plugin v2.9.4 by Incognito
      Командный процессор - Pawn CMD
      Основа мода - Brilliant RP
      Остальное Все плагины обновлены до последней версии
       
       
      Основные системы которые присутствуют в данном моде:
      - Система промокодов для семей (/family) - Система выборов - Динамичная система (/lmenu), возможность назначать транспорт, форму сотрудников - Система подразделений в гос.организациях - Система КАЗИНО - Система акксесуаров - Оптимизация игрового мода. - Риелторское агенство. - Квестовая линия (НАЧАЛО) p.s И еще многие другие системы, более подробно на тестовом сервере.
      Добавил danya_white Добавлено 26.10.2021 Категория Моды Автор danya  
    • Kirill_Bess
      By Kirill_Bess
      Приветствую
      При запуске сервера на хостинге выдаёт ошибку [Unknown] 
      При запуске сервера через приложение samp-server.exe выдаёт ошибки плагинов,но я не знаю как из исправить подскажите пожалуйста
      Сразу спасибо за помощь
      Вот логи: