Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Подробное описание для новичков, о коммандах на ZCMD

Статус
В этой теме нельзя размещать новые ответы.

Habel15

Дебютант
И так, ребята это вообще мой первый пост на pawno-info, по этому не судите строго :bz:
Сегодня я вам расскажу подробно и разжеванно о работе командного процессора ZCMD.
Допустим вы решили, создать комманду на передачу денег, если ее писать на стандартном процессоре, эта команда займет довольно много кода, и не факт что вы еще раз 10 не вернетесь к ней, дабы исправить неожиданные баги:cg:
Тут же, все довольно просто :by:
Код:
CMD:givemoney(playerid, params[])
	  {
	    new plID,money; //объявляем 2 целочисленные переменные т.е они будут принимать значения типа INT
	    if(sscanf(params,"dd",plID,money)) // проверяем "если игрок ввел команду, но не ввел хотябы одно значение, то выдадим ему строку возврата, "dd" означает что игрок должен ввести 2 целочисленные переменные, в нашем случае это plID и money, "dd" можно так же представить как %d%d т.е вместо "dd" может быть и "ss", "sd" и т.д
	   return SendClientMessage(playerid, 0xFF0000AA, "Ведите: /givemoney [id][money]"); // это свойственно, возврат ошибки если персонаж ввел неверное кол-во значений
	   if(GetPlayerMoney(playerid) >= money) // это проверка, "если у игрока денег больше или ровно столько сколько он хочет передать, то выполнится следующий код" (GetPlayerMoney(playerid) эта функция узнает количество денег у игрока, в нашем случае, мы узнали кол. во денег игрока и сравнили с тем что он хочет передать.
	   {
	        Player[playerid][pMoney] = GetPlayerMoney(playerid) - money; // тут мы сохраняем в нашем enum, думаю вы вкурсе что это, сохраняем тут разность имеющихся у персонажа денег до обмена, с теми которые он хочет передать.
	        ResetPlayerMoney(playerid); // эта функция сбрасывает деньги того кто хочет передать другому персонажу денег чтобы не размножать деньги
	        GivePlayerMoney(plID,money); // эта функция передаст количество денег заданное в веденной игроком команде, другому игроку
	        GivePlayerMoney(playerid,Player[playerid][pMoney]); // здесь мы возвращаем остаток денег от которых вы отняли и передали другому игроку, чтобы обьяснить более простым языком представьте  - вот у меня 1000$, я хочу вам передать 200$, и иду в банк, даю им 1000$, они берут и отправляют вам 200$ и возвращают мне сдачи 800$, т.е я в миг лишаюсь денег, и потом получаю заранее сохраненный остаток от них обратно.
	   }
	   else // а если мы введем количество денег которое превышает нашу сумму, то выдадим сообщение
	   {
	        SendClientMessage(playerid,COLOR_RED,"У вас недостаточно денег!"); 
	   }
	return 1;
	}
возможно где то было, но все написано лично мной, просто не видел похожих уроков, возможно кому-нибудь пригодится..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу