SA-MP Forums Archive
Zcmd - вопрос по поводу вызова команд - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Zcmd - вопрос по поводу вызова команд (/showthread.php?tid=372642)



Zcmd - вопрос по поводу вызова команд - Maikkk - 27.08.2012

Приветствую. Стандартным образом можно вызвать команды из любого другого места путем:
PHP код:
OnPlayerCommandText(playerid,"/command"); 
В zcmd:
PHP код:
OnPlayerCommandReceived(playerid,"/command"); 
Команды в моде у меня так:
PHP код:
CMD:command(playerid,params[])
{
/*code*/
return 1;

И когда я хочу вызвать через OnPlayerCommandRecceived я получаю это:
Quote:

function "OnPlayerCommandReceived" is not implemented

Объявляю функцию (public), ошибок нет, но команда не вызывается. Где-то прочитал что вызываются только те, которые в самом паблике:
PHP код:
public OnPlayerCommandReceived(playeridcmdtext[])
{
if (!
strcmp(cmdtext"/command"true))
{
SendClientMessage(playerid0x00FFFFFF"command");
return 
0;
}
SendClientMessage(playerid0xFFFFFFFF"SERVER: Unknown command");
return 
1;

Вопрос: Значит чтобы вызвать с другого места (например в диалоге) команду, я должен все переводить на strcmp и пихать в public ? И если это так, тогда для чего CMD:command(playerid...) ? Если их нельзя вызвать с любого другого места. Подскажите пожалуйста как можно было бы вызвать просто CMD не впихивая их в паблик и возможно ли это? Заранее спасибо за ответ.


Re: Zcmd - вопрос по поводу вызова команд - stabker - 27.08.2012

Попробуй вызывать так: cmd_команда(...)


Re: Zcmd - вопрос по поводу вызова команд - Maikkk - 28.08.2012

stabker - Спасибо, команда вызывается, но тут одно "но", при компилировании мода, варнинг, что несовпадение кол-во аргументов:

Quote:

warning 202: number of arguments does not match definition

сделал так:
Код:
cmd_command(playerid);
хотя в самом inc:
Код:
#define COMMAND:%1(%2)          \
			forward cmd_%1(%2); \
			public cmd_%1(%2)
... не подскажите в чем проблема?

p.s. Когда делаю так:
Код:
cmd_command(playerid,"");
Никаких варнингов нет, 2-й аргумент для параметров? Т.е. если у меня команда /test id я делаю атак?:
Код:
cmd_test(playerid,"i");
?


Re: Zcmd - вопрос по поводу вызова команд - OKStyle - 28.08.2012

pawn Код:
CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext);



Re: Zcmd - вопрос по поводу вызова команд - stabker - 28.08.2012

Quote:
Originally Posted by Maikkk
Посмотреть сообщение
stabker - Спасибо, команда вызывается, но тут одно "но", при компилировании мода, варнинг, что несовпадение кол-во аргументов:



сделал так:
Код:
cmd_command(playerid);
хотя в самом inc:
Код:
#define COMMAND:%1(%2)          \
			forward cmd_%1(%2); \
			public cmd_%1(%2)
... не подскажите в чем проблема?

p.s. Когда делаю так:
Код:
cmd_command(playerid,"");
Никаких варнингов нет, 2-й аргумент для параметров? Т.е. если у меня команда /test id я делаю атак?:
Код:
cmd_test(playerid,"i");
?
Да, для параметров.
Я думаю можно еще через format собирать их в одно, вставлять во второй аргумент. Хотя потом их sscanf будет обратно разбирать) Не знаю на сколько умно это будет.


Re: Zcmd - вопрос по поводу вызова команд - Maikkk - 28.08.2012

OKStyle - Спасибо за помощь, но команда не вызывается, возможно это будет работать только в том случаи когда сама команда будет в public'е, так?

stabker - На данный момент мне нужно вызывать команды без всяких параметров, работает. Кстати, протестировал действие /me:
Код:
cmd_me(playerid,"заводит двигатель");
работает). Если же вызывать команду через диалог и параметр вводишь через него же, думаю так будет работать:

Код:
cmd_test(playerid,strval(inputtext));
Еще раз большое спасибо за помощь .


Re: Zcmd - вопрос по поводу вызова команд - OKStyle - 28.08.2012

Если в диалоге нужно вводить текст, то не strval, а просто inputtext.


Re: Zcmd - вопрос по поводу вызова команд - Maikkk - 28.08.2012

OKStyle - Да, я в курсе , но все равно спасибо за помощь .