shape1
shape2
shape3
shape4
shape7
shape8

Создание/перевод команд на ZCMD/DC_CMD


Batka1337

Хацкер-программист
Пользователь
08.12.2014
363
154
0
26
Для создания или перевода команды нам понадобится, так называемая шапка команды.
Создадим команду для отправки сообщения
 
Код:
CMD:text(playerid,params[])
{
// тело команды
return true;
}
Объясню что за что отвечает.
text - это наша команда, то есть название, что вы будите вводить в игре
Далее мы создаём перемененные playerid и params[]
И потом мы просто ставим скобку и делаем возвращение.
Переходим к телу
Далее идёт создание параметров
Пишем:
 ​
Код:
if(sscanf(params, "us[32]", params[0],params[1])) return SendClientMessage(playerid,0x00000FF,"/text [id] [text]");
 ​
Тут мы объявляем параметры, то что в кавычках это тип параметров
Вот все параметры которые есть:
u - id или имя игрока
i - целое число
d - целое число
s[кол-во символов] - строка
f - число с плавающей точкой т.е дробь или координаты
Далее просто называем какой какой параметр, то есть
u - это params[0]
s[32] - это params[1]
Если данные параметры не введены у нас будет выдавать SendClientMessage(playerid,0x00000FF,"/text [id] [text]");
Далее просто дописываем команду
Вот что получилось:
 
Код:
CMD:text(playerid,params[])
{
if(sscanf(params, "us[100]", params[0],params[1])) return SendClientMessage(playerid,0x00000FF,"/text [id] [text]");
if(!IsPlayerConnected(params[0]) return SendClientMessage(playerid,0x00000FF,"Данный игрок не подключён");
new string[144];
format(string,sizeof(string),"%s",params[1]);
SendClientMessage(params[0],0x00000FF,string);
SendClientMessage(playerid,0x00000FF,"Вы отправили сообщение");
return true;
}
Объяснил как смог...
Автор:
Batka1337
 
 

BadBoy

Новичок
Пользователь
31.12.2015
69
9
0
У меня пару вопросов...

1) к пункту про: "s[кол-во символов]", а где считать или как определить сколько мне надо символов вписать сюда?

2) в конечной команде есть переменная "new string", для чего она нужна? И как там определять сколько нужно символов вписать в скобки?

Заранее: спасибо!

 

Batka1337

Хацкер-программист
Пользователь
08.12.2014
363
154
0
26
@BadBoy,

1. Например у тебя команда как у меня вводить текст надо и то число это максимальное кол во символов для вводимого текста

2. Стринг для format'a

 

BadBoy

Новичок
Пользователь
31.12.2015
69
9
0
@Batka1337,за 1ответ спасибо, а вот про 2 еще больше вопросов стало...но я найду в интернете.
 

Anton_Styazhkin

Новичок
Пользователь
06.01.2016
20
6
0
26
Лучше использовать переменные, а не ячейки параметров. Почему? Так быстрее! Можно даже не создавать массив, а использовать сам параметр команды.

Код:
CMD:text(playerid, params[])
{
	new cmd_targetid;	
	if(sscanf(params, "us[100]", cmd_targetid, params)){
		return SendClientMessage(playerid, 0x00000FF, "/text [id] [text]");
	}
	if(0 == IsPlayerConnected(cmd_targetid)){
		return SendClientMessage(playerid, 0x00000FF, "Данный игрок не подключён");
	}
	SendClientMessage(cmd_targetid, 0x00000FF, params);
	SendClientMessage(playerid, 0x00000FF, "Вы отправили сообщение");
	return 1;
}