На сколько я понимаю, этот режим дает возможность вводить команды не в консоли, а в самой игре, но не в чате, то есть по сути дела это консоль. И по этому работа с этим режимом точно такая же как с консолью, только тут надо не консоль открыть для ввода команды, а включить данный режим.
Теперь давайте разберемся на конкретном примере:
Для начала нам нужно зарегистрировать команду для вызова самого режима messagemode.
Что бы не нагромождать код в виде меню, сделаем простую команду say /m, обратите внимание что это команда вызывает функцию, а не сам режим сообщения. А так же нужно зарегистрировать команду которая будет выполняться через этот режим у на это amx_message.
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Команда вызывающая "ввод сообщения"
register_clcmd("say /m","message")
//Исполняемая команда для сообщения
register_clcmd("amx_message","CommandMessage")
}
Дальше необходимо разобраться как включить данный режим игроку, на самом деле все просто, в функции которую мы вызвали командой say /m,
вызывается функция client_cmd, с помощью которой и выполняется команда messagemode amx_message на клиенте.
public message(id){
client_cmd(id,"messagemode amx_message")
}
Как вы понимаете это уже вызовет режим сообщения и можно будет что то написать, но необходимо еще и понять, что там игрок написал, тут уже совсем все просто, так как далее работа точно такая же как с обычными консольными командами.
public CommandMessage(id){
new Args[256]
read_args(Args,sizeof(Args)-1)
remove_quotes(Args)
client_print(id,print_chat,"Messsage:%s",Args)
}
Данный кусочек выведет наше сообщение в чат игроку.
Весь код с дополнительными комментариями целиком:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[amxxmodx.ru] messagemode"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Команда вызывающая "ввод сообщения"
register_clcmd("say /m","message")
//Исполняемая команда для сообщения
register_clcmd("amx_message","CommandMessage")
}
public message(id){
//Вызхывается режим messagemode с командой amx_message
//Для которой есть функция CommandMessage
client_cmd(id,"messagemode amx_message")
}
//Функция вызывается в результатае messagemode amx_message
public CommandMessage(id){
//Получение что было написано в сообщении
new Args[256]
read_args(Args,sizeof(Args)-1)
//Удаление кавычек
remove_quotes(Args)
//Вывод того что мы там написали в сообщении
client_print(id,print_chat,"Messsage:%s",Args)
}
На этом думаю можно закончить, самое главное что бы вы поняли принцип работы, а не предназначение функций.
*DEAD* Name :
я бы добавил
П.С: При быстром редактировании сообщения не работает тэг [pawn]