LuxurY forum (scripting SA-MP)

Объявление

с 29 марта 2007 года
LuxurY forum - крупнейший российский форум скриптинга в PAWNO
Новый форум
Задавайте свои вопросы

Архив скриптов


Наша кнопка:
LuxurY forum :: Scripting SA-MP
Код:

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » LuxurY forum (scripting SA-MP) » Обучающие статьи » Как использовать dcmd


Как использовать dcmd

Сообщений 1 страница 3 из 3

1

Как использовать dcmd?

dcmd создана для того, чтобы компактнее и быстрее писать команды.

Обычная команда выглядит так:

Код:
if(strcmp(cmdtext, "/cmd", true)==0) {
SendClientMessage(playerid, COLOR_GREEN, "*** Bla bla bla это хелп");
return 1;
}

а с использованием dcmd вот так:

Код:
dcmd_cmd(playerid, cmdtext[])
{
#pragma unused cmdtext
SendClientMessage(playerid, COLOR_GREEN, "*** Bla bla bla это хелп");
}

это только сама команда, нужно еще кое-что сделать:

В начале скрипта прописать строчку:
#define dcmd(%1,%2,%3) if ((strcmp(%3, "/%1", true, %2+1) == 0)&&(((%3[%2+1]==0)&&(dcmd_%1(playerid,"")))||((%3[%2+1]==32)&&(dcmd_%1(playerid,%3[%2+2]))))) return 1

эта команда отдельная ее не надо вставлять ни в какую функцию (вставляйте перед функцие OnPlayerCommandText)

Код:
dcmd_cmd(playerid, cmdtext[])
{
#pragma unused cmdtext
SendClientMessage(playerid, COLOR_GREEN, "*** Bla bla bla это хелп");
}

А функция OnPlayerCommandText будет выглядеть уже по-другому:

Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(cmd,3,cmdtext);
return 0;
}

разберем эту строчку:
dcmd(cmd,3,cmdtext);
в основном главное тут запомнить это цифру 3
эта цифра означает длинну команды (цифра может быть любой в зависимости от команды)
например:

Код:
dcmd(cmd,3,cmdtext);
dcmd(command,7,cmdtext);
dcmd(give,4,cmdtext);

вот и все ;)

строка: #pragma unused cmdtext
означает, что мы не используем cmdtext

да чуть не забыл cmd - это название самой функции т.е. в игре мы будем писать /cmd

0

2

Хех, все с ног на голову. :) Описание dcmd_%cmd(playerid, cmdtext[]) нужно проводить в отдельном блоке. return 1 в конце ставить не нужно, как видишь, он уже отдефайнен.
#pragma unused cmdtext ставиться только в том случае, если не используется cmdtext, т.е. параметры для команды не нужны.

Отредактировано divine (2007-05-06 12:51:13)

0

3

divine написал(а):

Хех, все с ног на голову.  Описание dcmd_%cmd(playerid, cmdtext[]) нужно проводить в отдельном блоке. return 1 в конце ставить не нужно, как видишь, он уже отдефайнен.
#pragma unused cmdtext ставиться только в том случае, если не используется cmdtext, т.е. параметры для команды не нужны.

в каком отдельном блоке?

#pragma unused cmdtext ставиться только в том случае, если не используется cmdtext, т.е. параметры для команды не нужны.

я так и написал

0


Вы здесь » LuxurY forum (scripting SA-MP) » Обучающие статьи » Как использовать dcmd