Перейти к содержанию
Авторизация  
eZscvirt

[Вопрос] ShowPlayerDialogEx

Рекомендуемые сообщения

eZscvirt

Такой вопрос возник.

Будет ли " ShowPlayerDialogEx " работать на CRMP 0.3e?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

Если там исключительно проверка на то, нет ли перехвата диалога, конечно будет работать. Вообще, насколько я знаю, уже давно исправлено и такого быть не может. Но если очень переживаешь за это, подключи файлик в начале мода (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



Изменено пользователем Elrmrnt-Kritik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

ShowPlayerDialogEx

То есть, удалить? Может просто заменить на это ShowPlayerDialogEx на ShowPlayerDialog ?

Будут тогда диалоги отображаться?

P/S А сам инклуд то как назвать?

Изменено пользователем eZscvirt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@eZscvirt, функцию ShowPlayerDialogEx удалить, а вызов диалога через ShowPlayerDialogEx заменить на ShowPlayerDialog. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

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
Изменено пользователем eZscvirt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@eZscvirt, после всех основных INC стоило подключить (как минимум, после a_samp).  

Изменено пользователем Elrmrnt-Kritik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

 

 


#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

@eZscvirt, на какую именно строку (нет возможности пока что это скомпилировать и проверить самому)? 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
eZscvirt

, Вот сама строка.

forward ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);

,Все исправил :D83DDE0A:  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@eZscvirt, вот на эту замени:

forward ac_dialog_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.