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

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±

    Огромный listitem в mdialog

    Вечер добрый, написал значи-ца системку, а были проблемы с диалогом, пока я их не залогировал и получилось что параметр listitem = 4339556
    Откуда может получиться такое мифическое число?

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Как минимум, стоит скинуть код, который приводит к появлению такого значения.

    Вероятнее всего это либо ошибка в самом коде, либо в mdialog.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Kovshevoy
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    1. DialogCreate:DIALOG_JOB_AIR_CONTRACT(playerid){
    2. Dialog_Open
    3. (
    4. playerid, #DIALOG_JOB_AIR_CONTRACT, DIALOG_STYLE_MSGBOX,
    5. "{FF9900}Договор",
    6. "Компания предлагает Вам устроится на работу!\n\n"\
    7. "По началу будет предложена низкооплачиваемая работа, но со временем вы сможете повышать уровень квалификации:\n\n\t\t\t"\
    8. "Вариант 1[0 EXP]\n \t\t\t"\
    9. "Вариант 2[400 EXP]\n \t\t\t"\
    10. "Вариант 3[3600 EXP]\n \t\t\t"\
    11. "Вариант 4[7500 EXP]\n \t\t\t"\
    12. "Вариант 5[13000 EXP]\n\n"\
    13. "С момента подписания договора будет фиксироваться Ваш стаж и опыт.\n"\
    14. "Именно благодаря этому Вы и сможете приступать к новым видам работ в будущем.\n\n "\
    15. "Вы согласны с условиями и готовы подписать договор?",
    16. "Подпись", "Нет"
    17. );
    18. }
    19. DialogResponse:DIALOG_JOB_AIR_CONTRACT(playerid, dialogid, response, listitem, inputtext[])
    20. {
    21. if(!response)
    22. return false;
    23.  
    24. return Dialog_Show(playerid, #DIALOG_JOB_AIR);
    25. }
    26. DialogCreate:DIALOG_JOB_AIR(playerid)
    27. {
    28. new string[512];
    29.  
    30.  
    31. (
    32. string, sizeof string,
    33. "Вариант 1[%d EXP]\n \t\t\t"\
    34. "Вариант 2[%d EXP]\n \t\t\t"\
    35. "Вариант 3[%d EXP]\n \t\t\t"\
    36. "Вариант 4[%d EXP]\n \t\t\t"\
    37. "Вариант 5[%d EXP]\n\n"\
    38. EXP_1_JOB, EXP_2_JOB, EXP_3_JOB, EXP_4_JOB, EXP_5_JOB
    39. );
    40.  
    41.  
    42. Dialog_Open
    43. (
    44. playerid, #DIALOG_JOB_AIR, DIALOG_STYLE_LIST,
    45. "{FF9900}Вакансии",
    46. string,
    47. "Выбрать",
    48. ""
    49. );
    50. }
    51. DialogResponse:DIALOG_JOB_AIR(playerid, dialogid, response, listitem, inputtext[])
    52. {
    53. printf("dialogid: %d | response: %d | listitem: %d", dialogid, response, listitem);
    54.  
    55. if(!response) Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    56.  
    57. printf("тест 1");
    58. new bool:error_job = false;
    59. printf("тест 2");
    60. if(GetPlayerLevel(playerid) < 2 )
    61. {
    62. SendClientMessage(playerid, -1, "Компания не может принять Вас в связи с минимальным временем проживания Вами в городе.");
    63. SendClientMessage(playerid, -1, "Для устройства в аэропорт необходимо иметь не ниже 2-ого уровня.");
    64. }
    65. printf("тест 3");
    66. if(listitem == 1 && GetPlayerAirEXP(playerid) < EXP_1_JOB ) error_job = true;
    67. if(listitem == 2 && GetPlayerAirEXP(playerid) < EXP_2_JOB ) error_job = true;
    68. if(listitem == 3 && GetPlayerAirEXP(playerid) < EXP_3_JOB ) error_job = true;
    69. if(listitem == 4 && GetPlayerAirEXP(playerid) < EXP_4_JOB ) error_job = true;
    70. printf("тест 4");
    71. if(error_job == true)
    72. {
    73. Dialog_Show(playerid, #DIALOG_JOB_AIR);
    74. SendClientMessage(playerid, -1, "Вынуждены отказать, поскольку Ваш стаж и опыт слишком мал, чтобы доверить Вам данный вид деятельности.");
    75. }
    76. printf("тест 5");
    77. if(GetPlayerJob(playerid) == listitem + 1 )
    78. {
    79. SendClientMessage(playerid, -1, "Вы уже занимаетесь данным видом деятельности.");
    80. Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    81. }
    82. printf("тест 6");
    83. if(GetPlayerJob(playerid) > 5 || GetPlayerJob(playerid) < 1)
    84. {
    85. SendClientMessage(playerid, -1, "Поздравляем! Вы успешно приняты нашей компанией. Можете приступать к работе.");
    86. }
    87. printf("тест 7");
    88. GetPlayerJob(playerid) = listitem + 1;
    89. MySQL_SaveInt(playerid, "job", GetPlayerJob(playerid));
    90. printf("тест 8");
    91. static job_str[22 +1], string[MAX_CHATBUBBLE_LENGTH +1];
    92. job_str[0] = EOS; string[0] = EOS;
    93. printf("тест 9");
    94. switch(GetPlayerJob(playerid))
    95. {
    96. case 1: job_str = "вариант 1";
    97. case 2: job_str = "вариант 2";
    98. case 3: job_str = "вариант 3";
    99. case 4: job_str = "вариант 4";
    100. case 5: job_str = "вариант 5";
    101. default: job_str = "вариант 1";
    102. }
    103. printf("тест 10");
    104. format(string, sizeof string, "Компания допускает Вас к данному виду деятельности. Можете приступать к работе {FFFF00}%s", job_str);
    105. SendClientMessage(playerid, -1, string);
    106. printf("тест 11");
    107. Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    108. }
    109.  
    110.  
    111. DialogCreate:DIALOG_JOB_AIR_CARD(playerid)
    112. {
    113. new job_info[22], string[256 +1];
    114.  
    115. switch(GetPlayerJob(playerid))
    116. {
    117. case 1: job_info = "вариант 1";
    118. case 2: job_info = "вариант 2";
    119. case 3: job_info = "вариант 3";
    120. case 4: job_info = "вариант 4";
    121. case 5: job_info = "вариант 5";
    122. default: job_info = "вариант 1";
    123. }
    124.  
    125.  
    126. (
    127. string, sizeof string,
    128. "{FFFFFF}Опыт и стаж работы: {FFFF00}%d EXP\n"\
    129. "Вид деятельности: {FF9900}%s\n"\
    130. "{FFFFFF}- {74C2FF}Взять транспорт\n "\
    131. "{FFFFFF}- {CB2D2D}Изменить вид деятельности\n "\
    132. "{FFFFFF}- {74C2FF}Помощь",
    133. GetPlayerAirEXP(playerid), job_info
    134. );
    135. Dialog_Open(playerid, #DIALOG_JOB_AIR_CARD, DIALOG_STYLE_LIST, "{FF9900}Трудовая карточка", string, "Выбрать", "Закрыть");
    136. }
    137. DialogResponse:DIALOG_JOB_AIR_CARD(playerid, dialogid, response, listitem, inputtext[])
    138. {
    139. if(!response)
    140. return 1;
    141.  
    142.  
    143. if( listitem == 0 || listitem == 1 )
    144. return Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    145.  
    146. switch(listitem)
    147. {
    148. case 2:
    149. {
    150. if(GetPlayerJob(playerid) == 1)
    151. {
    152. if(airport_wash == 20)
    153. {
    154. Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    155. SendClientMessage(playerid, -1, "К сожалению весь служебный транспорт на данный момент занят. Ожидайте, пока освободится.");
    156. }
    157. airport_wash++;
    158. printf("тест 20");
    159. }
    160.  
    161. if(GetPlayerJob(playerid) == 2)
    162. {
    163. if(airport_baggage == 10)
    164. {
    165. Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    166. SendClientMessage(playerid, -1, "К сожалению весь служебный транспорт на данный момент занят. Ожидайте, пока освободится.");
    167. }
    168. airport_baggage++;
    169. }
    170.  
    171. if( GetPlayerJob(playerid) == 5 )
    172. {
    173. new
    174. bool:result = false;
    175.  
    176.  
    177. for(new i; i != sizeof( airport_plane ); i++)
    178. {
    179. if( airport_plane_s[ i ] == 1 )
    180. {
    181. continue;
    182. }
    183. else
    184. {
    185. SetPVarInt( playerid, "airport_status", 5 );
    186. result = true;
    187. airport_plane_s[ i ] = 1;
    188. SetPVarInt( playerid, "airport_plane", airport_plane[ i ] );
    189. break;
    190. }
    191. }
    192.  
    193.  
    194. if( result == false )
    195. {
    196. Dialog_Show(playerid, #DIALOG_JOB_AIR_CARD);
    197. SendClientMessage(playerid, -1, "К сожалению весь служебный транспорт на данный момент занят. Ожидайте, пока освободится.");
    198. }
    199.  
    200.  
    201. PutPlayerInVehicle( playerid, GetPVarInt( playerid, "airport_plane" ), 0 );
    202.  
    203.  
    204. new
    205. engine,lights,alarm,doors,bonnet,boot,objective;
    206.  
    207.  
    208. GetVehicleParamsEx( GetPVarInt( playerid, "airport_plane" ), engine,lights,alarm,doors,bonnet,boot,objective );
    209. 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;
    210.  
    211. SetPlayerRaceCheckpoint(playerid, 2, AIRPORT_LS_NAVZLET_1, AIRPORT_LS_NAVZLET_2, 25.0 );
    212. SetPVarInt( playerid, "farm_point", 1 );
    213. AirportTextDraw( playerid, true );
    214. }
    215.  
    216.  
    217. SetPlayerCheckpoint( playerid, AIRPORT_TRANSPORT_POS, 1.7 );
    218. SetPlayerSkin( playerid, 16 );
    219. printf("тест 21");
    220. SetPVarInt( playerid, "farm_point", 1 );
    221. SetPVarInt( playerid, "airport_status", GetPlayerJob(playerid) );
    222.  
    223.  
    224. SendClientMessage(playerid, -1, "Мы приготовили для Вас рабочий транспорт. Можете его использовать." );
    225. }
    226. case 3: Dialog_Show(playerid, #DIALOG_JOB_AIR);
    227. case 4:
    228. {
    229. switch(GetPlayerJob(playerid))
    230. {
    231. case 1: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_1, "Назад", "" );
    232. case 2: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_2, "Назад", "" );
    233. case 3: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_3, "Назад", "" );
    234. case 4: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_4, "Назад", "" );
    235. case 5: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_5, "Назад", "" );
    236. default: Dialog_Open(playerid, #DIALOG_JOB_AIR_INFO, DIALOG_STYLE_MSGBOX, "{FF9900}Информация", HELP_1, "Назад", "" );
    237. }
    238. }
    239. }
    240. return 1;
    241. }

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Сделай в самом mdialog логирование listitem и посмотри: такое значение туда приходит изначально или нет.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для Kovshevoy
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Сделай в самом mdialog логирование listitem и посмотри: такое значение туда приходит изначально или нет.
    http://prntscr.com/pvb0t5 - сам диалог предоставленный выше

    http://prntscr.com/pvb22o - рега и авторизация

    Очень странное дерьмо, он всегда показывает 32700?

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так а где информация из mdialog для диалога DIALOG_JOB_AIR?
    Скинь нормально код логирования mdialog + полный лог сессии.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для Kovshevoy
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    PHP код:
    [13:19:16dialogid32700 responselistitem: -1
    [13:19:19dialogid32700 responselistitem0
    [13:19:19DIALOG_JOB_AIR dialogidresponselistitem5030368
    [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:21dialogid32700 responselistitem2
    [13:19:21DIALOG_JOB_AIR_CARD dialogidresponselistitem5030376 
    - - - Добавлено - - -

    crashdetect если что - подключен, но от него нет никаких сообщений. Компилирую как и нужно с ключем -d3

  8. #8
    Аватар для vvw
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.08.2019
    Сообщений
    45
    Репутация:
    9 ±
    Цитата Сообщение от NichWell Посмотреть сообщение
    PHP код:
    [13:19:16dialogid32700 responselistitem: -1
    [13:19:19dialogid32700 responselistitem0
    [13:19:19DIALOG_JOB_AIR dialogidresponselistitem5030368
    [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:21dialogid32700 responselistitem2
    [13:19:21DIALOG_JOB_AIR_CARD dialogidresponselistitem5030376 
    - - - Добавлено - - -

    crashdetect если что - подключен, но от него нет никаких сообщений. Компилирую как и нужно с ключем -d3
    Почему у вас dialogid для DIALOG_JOB_AIR_CARD и DIALOG_JOB_AIR равен 1? Если вы используете mdialog, то он всегда должен быть 32700.

  9. #9
    Аватар для Kovshevoy
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    Цитата Сообщение от vvw Посмотреть сообщение
    Почему у вас dialogid для DIALOG_JOB_AIR_CARD и DIALOG_JOB_AIR равен 1? Если вы используете mdialog, то он всегда должен быть 32700.
    Потому что логирую непосредственно в DialogResponse: данных диалогов и так же в самом инклуде, дабы сравнить значения. И вижу, что они отличаются друг от друга, но почему - не знаю.

  10. #10
    Аватар для Kovshevoy
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    Лол, конструкция DialogResponse неверная :D
    Необходимо (playerid, response, listitem, inputtext[])
    А я видимо по глупости скопировал с OnDialogResponse аргументы, ибо dialogid не должен там быть. Сейчас протестирую, в очередной раз убеждаюсь, что нужно больше спать и есть чернику, которая нормальному зрению способствует.
    Благодарочка f0Re3t за подсказку.

 

 

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

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

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

Ваши права

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