Просмотр полной версии : [Вопрос] Макрос на команды стандартного типа
#define if(command("%0")) if(strcmp(cmd,"%0",true)==0)
Всем привет ребят.
Для удобства в работе, решил написать макрос для упрощения работы с командами, да и код приятен. Выше показан пример, как это делал, но к сожалению не работает. Пишу команду, в ответ получаю мол такой команды не существует. Меня на стандартный вид, работает.
Подскажите пожалуйста, что не так сделано? И желательно, если не затруднит, посодействуйте в его реализации.
#define if(command("%0")) if(strcmp(cmd,"%0",true)==0)
Всем привет ребят.
Для удобства в работе, решил написать макрос для упрощения работы с командами, да и код приятен. Выше показан пример, как это делал, но к сожалению не работает. Пишу команду, в ответ получаю мол такой команды не существует. Меня на стандартный вид, работает.
Подскажите пожалуйста, что не так сделано? И желательно, если не затруднит, посодействуйте в его реализации.
Покажите как вы используете данный макрос, и если у вас переменная cmd.
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))
Лично я бы использовал первый вариант, т.к. с ним редактор будет подсвечивать строку с названием команды и её проще будет различить на фоне остального кода.
NewGreen, твой вариант не работает, но меня ничего не остановит дать тебе + за старания. Спасибо.
Daniel_Cortez, а вот твой вариант работает как никакой.)))) Спасибо огромное за помощь. +)))
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot