PDA

Просмотр полной версии : [Вопрос] Макрос на команды стандартного типа



BadPawn
15.01.2016, 14:45
#define if(command("%0")) if(strcmp(cmd,"%0",true)==0)

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

Подскажите пожалуйста, что не так сделано? И желательно, если не затруднит, посодействуйте в его реализации.

VVWVV
15.01.2016, 15:48
#define if(command("%0")) if(strcmp(cmd,"%0",true)==0)

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

Подскажите пожалуйста, что не так сделано? И желательно, если не затруднит, посодействуйте в его реализации.

Покажите как вы используете данный макрос, и если у вас переменная cmd.

BadPawn
15.01.2016, 16:23
new cmd[128];
есть такой.
как использую:

if(command("/removehint"))
{
//код команды
return 1;
}

NewGreen
15.01.2016, 16:47
Перепишите так:

#define if(command(%0)) if(strcmp(cmd,%0,true) == 0)
или так:

#define command(%0) strcmp(cmd,%0,true) == 0

Daniel_Cortez
15.01.2016, 16:54
Способ первый:

#define command(%0) (0 == strcmp(cmd,(%0),true))
Пример:

if (command("/sampletext"))


Способ второй:

#define command(%0) (0 == strcmp(cmd,(#/%0),true))
Пример:

if (command(sampletext))


Лично я бы использовал первый вариант, т.к. с ним редактор будет подсвечивать строку с названием команды и её проще будет различить на фоне остального кода.

BadPawn
15.01.2016, 17:00
NewGreen, твой вариант не работает, но меня ничего не остановит дать тебе + за старания. Спасибо.

Daniel_Cortez, а вот твой вариант работает как никакой.)))) Спасибо огромное за помощь. +)))