Вечер добрый, написал значи-ца системку, а были проблемы с диалогом, пока я их не залогировал и получилось что параметр listitem = 4339556
Откуда может получиться такое мифическое число?
Вечер добрый, написал значи-ца системку, а были проблемы с диалогом, пока я их не залогировал и получилось что параметр listitem = 4339556
Откуда может получиться такое мифическое число?
Как минимум, стоит скинуть код, который приводит к появлению такого значения.
Вероятнее всего это либо ошибка в самом коде, либо в mdialog.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
DialogCreate:DIALOG_JOB_AIR_CONTRACT(playerid){ Dialog_Open ( playerid, #DIALOG_JOB_AIR_CONTRACT, DIALOG_STYLE_MSGBOX, "{FF9900}Договор", "Компания предлагает Вам устроится на работу!\n\n"\ "По началу будет предложена низкооплачиваемая работа, но со временем вы сможете повышать уровень квалификации:\n\n\t\t\t"\ "Вариант 1[0 EXP]\n \t\t\t"\ "Вариант 2[400 EXP]\n \t\t\t"\ "Вариант 3[3600 EXP]\n \t\t\t"\ "Вариант 4[7500 EXP]\n \t\t\t"\ "Вариант 5[13000 EXP]\n\n"\ "С момента подписания договора будет фиксироваться Ваш стаж и опыт.\n"\ "Именно благодаря этому Вы и сможете приступать к новым видам работ в будущем.\n\n "\ "Вы согласны с условиями и готовы подписать договор?", "Подпись", "Нет" ); } DialogResponse:DIALOG_JOB_AIR_CONTRACT(playerid, dialogid, response, listitem, inputtext[]) { if(!response) return false; return Dialog_Show(playerid, #DIALOG_JOB_AIR); } DialogCreate:DIALOG_JOB_AIR(playerid) { new string[512]; ( string, sizeof string, "Вариант 1[%d EXP]\n \t\t\t"\ "Вариант 2[%d EXP]\n \t\t\t"\ "Вариант 3[%d EXP]\n \t\t\t"\ "Вариант 4[%d EXP]\n \t\t\t"\ "Вариант 5[%d EXP]\n\n"\ EXP_1_JOB, EXP_2_JOB, EXP_3_JOB, EXP_4_JOB, EXP_5_JOB ); Dialog_Open ( playerid, #DIALOG_JOB_AIR, DIALOG_STYLE_LIST, "{FF9900}Вакансии", string, "Выбрать", "" ); } DialogResponse:DIALOG_JOB_AIR(playerid, dialogid, response, listitem, inputtext[]) { if(!response) Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); new bool:error_job = false; if(GetPlayerLevel(playerid) < 2 ) { SendClientMessage(playerid, -1, "Компания не может принять Вас в связи с минимальным временем проживания Вами в городе."); SendClientMessage(playerid, -1, "Для устройства в аэропорт необходимо иметь не ниже 2-ого уровня."); } if(listitem == 1 && GetPlayerAirEXP(playerid) < EXP_1_JOB ) error_job = true; if(listitem == 2 && GetPlayerAirEXP(playerid) < EXP_2_JOB ) error_job = true; if(listitem == 3 && GetPlayerAirEXP(playerid) < EXP_3_JOB ) error_job = true; if(listitem == 4 && GetPlayerAirEXP(playerid) < EXP_4_JOB ) error_job = true; if(error_job == true) { Dialog_Show(playerid, #DIALOG_JOB_AIR); SendClientMessage(playerid, -1, "Вынуждены отказать, поскольку Ваш стаж и опыт слишком мал, чтобы доверить Вам данный вид деятельности."); } if(GetPlayerJob(playerid) == listitem + 1 ) { Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); } if(GetPlayerJob(playerid) > 5 || GetPlayerJob(playerid) < 1) { SendClientMessage(playerid, -1, "Поздравляем! Вы успешно приняты нашей компанией. Можете приступать к работе."); } GetPlayerJob(playerid) = listitem + 1; MySQL_SaveInt(playerid, "job", GetPlayerJob(playerid)); static job_str[22 +1], string[MAX_CHATBUBBLE_LENGTH +1]; job_str[0] = EOS; string[0] = EOS; switch(GetPlayerJob(playerid)) { case 1: job_str = "вариант 1"; case 2: job_str = "вариант 2"; case 3: job_str = "вариант 3"; case 4: job_str = "вариант 4"; case 5: job_str = "вариант 5"; default: job_str = "вариант 1"; } format(string, sizeof string, "Компания допускает Вас к данному виду деятельности. Можете приступать к работе {FFFF00}%s", job_str); Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); } DialogCreate:DIALOG_JOB_AIR_CARD(playerid) { new job_info[22], string[256 +1]; switch(GetPlayerJob(playerid)) { case 1: job_info = "вариант 1"; case 2: job_info = "вариант 2"; case 3: job_info = "вариант 3"; case 4: job_info = "вариант 4"; case 5: job_info = "вариант 5"; default: job_info = "вариант 1"; } ( string, sizeof string, "{FFFFFF}Опыт и стаж работы: {FFFF00}%d EXP\n"\ "Вид деятельности: {FF9900}%s\n"\ "{FFFFFF}- {74C2FF}Взять транспорт\n "\ "{FFFFFF}- {CB2D2D}Изменить вид деятельности\n "\ "{FFFFFF}- {74C2FF}Помощь", GetPlayerAirEXP(playerid), job_info ); Dialog_Open(playerid, #DIALOG_JOB_AIR_CARD, DIALOG_STYLE_LIST, "{FF9900}Трудовая карточка", string, "Выбрать", "Закрыть"); } DialogResponse:DIALOG_JOB_AIR_CARD(playerid, dialogid, response, listitem, inputtext[]) { if(!response) return 1; if( listitem == 0 || listitem == 1 ) return Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); switch(listitem) { case 2: { if(GetPlayerJob(playerid) == 1) { if(airport_wash == 20) { Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); SendClientMessage(playerid, -1, "К сожалению весь служебный транспорт на данный момент занят. Ожидайте, пока освободится."); } airport_wash++; } if(GetPlayerJob(playerid) == 2) { if(airport_baggage == 10) { Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); SendClientMessage(playerid, -1, "К сожалению весь служебный транспорт на данный момент занят. Ожидайте, пока освободится."); } airport_baggage++; } if( GetPlayerJob(playerid) == 5 ) { new bool:result = false; for(new i; i != sizeof( airport_plane ); i++) { if( airport_plane_s[ i ] == 1 ) { continue; } else { result = true; airport_plane_s[ i ] = 1; break; } } if( result == false ) { Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD); SendClientMessage(playerid, -1, "К сожалению весь служебный транспорт на данный момент занят. Ожидайте, пока освободится."); } new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx( GetPVarInt( playerid, "airport_plane" ), engine,lights,alarm,doors,bonnet,boot,objective ); SetVehicleParamsEx( GetPVarInt( playerid, "airport_plane" ), VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective ), g_vehicle_params[GetPVarInt( playerid, "airport_plane" )][V_ENGINE] = VEHICLE_PARAMS_ON; AirportTextDraw( playerid, true ); } SendClientMessage(playerid, -1, "Мы приготовили для Вас рабочий транспорт. Можете его использовать." ); } case 3: Dialog_Show(playerid, #DIALOG_JOB_AIR); case 4: { switch(GetPlayerJob(playerid)) { case 1: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_1, "Назад", "" ); case 2: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_2, "Назад", "" ); case 3: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_3, "Назад", "" ); case 4: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_4, "Назад", "" ); case 5: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_5, "Назад", "" ); default: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_1, "Назад", "" ); } } } return 1; }
Сделай в самом mdialog логирование listitem и посмотри: такое значение туда приходит изначально или нет.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
http://prntscr.com/pvb0t5 - сам диалог предоставленный выше
http://prntscr.com/pvb22o - рега и авторизация
Очень странное дерьмо, он всегда показывает 32700?
Так а где информация из mdialog для диалога DIALOG_JOB_AIR?
Скинь нормально код логирования mdialog + полный лог сессии.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
- - - Добавлено - - -PHP код:
[13:19:16] dialogid: 32700 | response: 1 | listitem: -1
[13:19:19] dialogid: 32700 | response: 1 | listitem: 0
[13:19:19] DIALOG_JOB_AIR | dialogid: 1 | response: 0 | listitem: 5030368
[13:19:19] тест 1
[13:19:19] тест 2
[13:19:19] тест 3
[13:19:19] тест 4
[13:19:19] тест 5
[13:19:19] тест 6
[13:19:19] тест 7
[13:19:19] тест 8
[13:19:19] тест 9
[13:19:19] тест 10
[13:19:19] тест 11
[13:19:21] dialogid: 32700 | response: 1 | listitem: 2
[13:19:21] DIALOG_JOB_AIR_CARD | dialogid: 1 | response: 2 | listitem: 5030376
crashdetect если что - подключен, но от него нет никаких сообщений. Компилирую как и нужно с ключем -d3
Лол, конструкция DialogResponse неверная :D
Необходимо (playerid, response, listitem, inputtext[])
А я видимо по глупости скопировал с OnDialogResponse аргументы, ибо dialogid не должен там быть. Сейчас протестирую, в очередной раз убеждаюсь, что нужно больше спать и есть чернику, которая нормальному зрению способствует.
Благодарочка f0Re3t за подсказку.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)