eZscvirt 8 Опубликовано 13 апреля, 2018 Такой вопрос возник. Будет ли " ShowPlayerDialogEx " работать на CRMP 0.3e? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 13 апреля, 2018 (изменено) Если там исключительно проверка на то, нет ли перехвата диалога, конечно будет работать. Вообще, насколько я знаю, уже давно исправлено и такого быть не может. Но если очень переживаешь за это, подключи файлик в начале мода (INC) с таким содержимым и удаляй свой ShowPlayerDialogEx. #if defined _inc_ac_dialog #endinput #endif #define _inc_ac_dialog static gDialogID[MAX_PLAYERS]; public OnPlayerConnect(playerid) { gDialogID[playerid] = -1; #if defined ac_dialog_OnPlayerConnect return ac_dialog_OnPlayerConnect(playerid); #else return 1; #endif } #if defined _ALS_OnPlayerConnect #undef OnPlayerConnect #else #define _ALS_OnPlayerConnect #endif #define OnPlayerConnect ac_dialog_OnPlayerConnect #if defined ac_dialog_OnPlayerConnect forward ac_dialog_OnPlayerConnect(playerid); #endif stock ac_dialog_ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]) { gDialogID[playerid] = dialogid; return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2); } #if defined _ALS_ShowPlayerDialog #undef ShowPlayerDialog #else #define _ALS_ShowPlayerDialog #endif #define ShowPlayerDialog ac_dialog_ShowPlayerDialog public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid != gDialogID[playerid]) SetTimerEx("Kick", 250, false, "i", playerid); // кикнем игрока, если использовал подмену #if defined ac_dialog_OnDialogResponse return ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); #else return 1; #endif } #if defined _ALS_OnDialogResponse #undef OnDialogResponse #else #define _ALS_OnDialogResponse #endif #define OnDialogResponse ac_dialog_OnDialogResponse #if defined ac_dialog_OnDialogResponse forward ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); #endif Изменено 13 апреля, 2018 пользователем Elrmrnt-Kritik Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
eZscvirt 8 Опубликовано 13 апреля, 2018 (изменено) ShowPlayerDialogEx То есть, удалить? Может просто заменить на это ShowPlayerDialogEx на ShowPlayerDialog ? Будут тогда диалоги отображаться? P/S А сам инклуд то как назвать? Изменено 13 апреля, 2018 пользователем eZscvirt Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 13 апреля, 2018 @eZscvirt, функцию ShowPlayerDialogEx удалить, а вызов диалога через ShowPlayerDialogEx заменить на ShowPlayerDialog. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
eZscvirt 8 Опубликовано 13 апреля, 2018 (изменено) , error 017: undefined symbol "MAX_PLAYERS" error 009: invalid array size (negative, zero or out of bounds) warning 235: public function lacks forward declaration (symbol "OnPlayerConnect") warning 235: public function lacks forward declaration (symbol "OnDialogResponse") error 017: undefined symbol "SetTimerEx" warning 215: expression has no effect Изменено 13 апреля, 2018 пользователем eZscvirt Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 13 апреля, 2018 (изменено) @eZscvirt, после всех основных INC стоило подключить (как минимум, после a_samp). Изменено 13 апреля, 2018 пользователем Elrmrnt-Kritik Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
eZscvirt 8 Опубликовано 13 апреля, 2018 #if defined _inc_ac_dialog #endinput #endif #define _inc_ac_dialog static gDialogID[MAX_PLAYERS]; public OnPlayerConnect(playerid) { gDialogID[playerid] = -1; #if defined ac_dialog_OnPlayerConnect return ac_dialog_OnPlayerConnect(playerid); #else return 1; #endif } #if defined _ALS_OnPlayerConnect #undef OnPlayerConnect #else #define _ALS_OnPlayerConnect #endif #define OnPlayerConnect ac_dialog_OnPlayerConnect #if defined ac_dialog_OnPlayerConnect forward ac_dialog_OnPlayerConnect(playerid); #endif stock ac_dialog_ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]) { gDialogID[playerid] = dialogid; return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2); } #if defined _ALS_ShowPlayerDialog #undef ShowPlayerDialog #else #define _ALS_ShowPlayerDialog #endif #define ShowPlayerDialog ac_dialog_ShowPlayerDialog public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid != gDialogID[playerid]) SetTimerEx("Kick", 250, false, "i", playerid); // кикнем игрока, если использовал подмену #if defined ac_dialog_OnDialogResponse return ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); #else return 1; #endif } #if defined _ALS_OnDialogResponse #undef OnDialogResponse #else #define _ALS_OnDialogResponse #endif #define OnDialogResponse ac_dialog_OnDialogResponse #if defined ac_dialog_OnDialogResponse forward ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); #endif error 025: function heading differs from prototype Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 13 апреля, 2018 @eZscvirt, на какую именно строку (нет возможности пока что это скомпилировать и проверить самому)? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
eZscvirt 8 Опубликовано 13 апреля, 2018 , Вот сама строка. forward ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext); ,Все исправил Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 13 апреля, 2018 @eZscvirt, вот на эту замени: forward ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты