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

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

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

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

Ставим проверку на команду/действие

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

Nike_

Умник
Этот урок я сделал специально для новичков
Опытным скриптером он будет мало чем полезен


И так начнём
Вкратце​

Что же такое проверка?
Это то что даёт определённому игроку/действию доступ к чему либо (( команде или другому действию ))

Как поставить эту самую проверку и какой от неё толк?
Рассмотрим всё на примерах!

Дана команды /hp (( я её немного сократил! ))

HTML:
else if(strcmp(cmdtext, "/hp", true) == 0)
  {
	SetPlayerHealthAC(playerid, 100.0);
	PlayerInfo[playerid][pHP] = 100;
           return 1;
}
Поставим на неё проверку администратора
И количества ХП

Я вам опишу 2 способа проверки

Первый способ

HTML:
if(Тут ваша проверка) { SendClientMessage(playerid, COLOR_GREY, "Тут текст который будет выводится в чат если игрок не прошёл проверку!"); return 1; }

//Вот пример

if(PlayerInfo[playerid][pAdmin] == 1) { SendClientMessage(playerid, COLOR_GREY, "Вы не администратор 1 ЛВЛ и выше!"); return 1; }
Попробуем вшить эту проверку в нашу команду
HTML:
else if(strcmp(cmdtext, "/hp", true) == 0)
  {
         if(PlayerInfo[playerid][pAdmin] == 1) { SendClientMessage(playerid, COLOR_GREY, "Вы не администратор 1 ЛВЛ и выше!"); return 1; }
	SetPlayerHealthAC(playerid, 100.0);
	PlayerInfo[playerid][pHP] = 100;
         return 1;
}
Как это работает?
HTML:
//там где
if(PlayerInfo[playerid][pAdmin] == 1)//Идёт проверка на администратора 1 лвл (( в моде rls!!! PlayerInfo ))
//там где
SendClientMessage(playerid, COLOR_GREY, "Вы не администратор 1 ЛВЛ и выше!");// что будет происходить если игрок не прошёл проверку
//и в конце return 1; возвращает ос о том что функция выполнились
//и он не даёт сделать своё дело команде /hp
Второй способ

HTML:
if(Тут ваша проверка)
{
Тут ваша команда
}
Пример
HTML:
else if(strcmp(cmdtext, "/hp", true) == 0)
  {
         if(PlayerInfo[playerid][pAdmin] == 1)
         {
	SetPlayerHealthAC(playerid, 100.0);
	PlayerInfo[playerid][pHP] = 100;
         }
         return 1;
}
HTML:
Тут получается так
Если игрок прошёл проверку то всё что заключено в скобки
{
Тут команда
}
Будет выполнено
А если игрок проверку не проходит то
Просто срабатывает функция
return 1;
Которая не заключена в скобки

Заметьте функция
return 1;
Сработает если игрок прошёл проверку 
и если игрок не прошёл проверку
То есть в обоих случаях
Точно так же и с количеством ХП
Пример первый
HTML:
else if(strcmp(cmdtext, "/hp", true) == 0)
  {
         if(PlayerInfo[playerid][pHp] >= 100) { SendClientMessage(playerid, COLOR_GREY, "Вы здоровы!"); return 1; }
           SetPlayerHealthAC(playerid, 100.0);
	PlayerInfo[playerid][pHP] = 100;
         return 1;
}
Если у игрока 100 хп
и больше
(( Функция >= 100 ))
То команда не срабатывает так как игрок здоров
И ему в чат выводится сообщение Вы здоровы!
А если у игрока 99 хп и меньше то команда срабатывает так как ХП игрока не прошло проверку
И первая функция
return 1; } пропускается
Что идёт после надписи Вы здоровы!

Пример второй
HTML:
else if(strcmp(cmdtext, "/hp", true) == 0)
  {
         if(PlayerInfo[playerid][pHp] <= 99)
         {
	SetPlayerHealthAC(playerid, 100.0);
	PlayerInfo[playerid][pHP] = 100;
         }
         return 1;
}
Если у игрока 99 хп
и меньше
(( Функция <= 99 ))
То команда срабатывает и у игрока становится 100 ХП
А если у игрока 100 хп и выше то команда не срабатывает так как ХП игрока не прошло проверку

Вот так та
В 1 случаи чтобы команда сработала проверку нужно обойти
А во 2 случаи чтобы команда сработала проверку нужно пройти

:de::de::de:

Автор: Nike_
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу