Leksarut
Умник
Привет друзья.Школяры, и те кто постарше!
Сегодня будет первый урок по скриптингу! Мы будем делать что-нибудь простое и понятное!Ну начнём:Берём любой код, пусть будет проверка на администратора и выдача денег:
PHP:
if(strcmp(cmd,"/money",true) == 0)
{
if(Player[playerid][pAdmin] == 1)
{
GivePlayerMoney(playerid,1000);
}
}
Но ведь можно попытаться понять это не трудно!
Все команды в OnPlayerCommandText начинаются с
PHP:
if(strcmp ...
Далее вы можете увидеть не понятную строку strcmp что эт вообще за фигня? ( Значение:проверка того что ввёл игрок. Использование:проверять ник купленной машины или дома, проверка на пароль и многое другое).
Что там дальше?Открываются скобки самой проверки strcmp(cmd,"/money",true).
Ну начнём! Что же такое cmd? Cmd - (Значение:локальная переменная создаваемая в начале паблика OnPlayerCommandText.Использование: определение параметров после команды. Не понятно? Это значит например введённый ид игрока, если использовать cmdtext то после команды ничего узнать нельзя будет!).
Ну в кавычках " " пишется сама команда у нас это /money можно написать любую.Да и не обязательно использовать слешь /,можете использовать любой другой символ например ~ или *.(отойти так сказать от норм).
Что там дальше? А true! true - (Значение:чувствительность к регистру.Использование:если поставить false,то /MOney и /mOneY будут разные команды!).
Далее всегда нужно ставить == 0. == 0 (Значение: если введённые символы совпадают.Использование:== 0)
Ну и понятное дело если в коде две открытых скобки (( должно быть и две закрытых )) . Так и здесь .
С первой строчкой окончено!!!
[HR][/HR]
Дальше идёт открытие фигурной скобки {, можно догадаться если скобка открыта то её надо и закрыть -> поэтому должна быть и закрытая }
Внутри фигурных скобок { } и совершается весь код команды!
Ну со скобками кончено!
[HR][/HR]
Теперь сама Начинка команды!
Внутри функция выдачи денег GivePlayerMoney. Если же написать GIvePlayerMONey - то компилятор выдаст ошибки.
Что же внутри GivePlayerMoney?Это в программировании называется "Аргументы". Умное слово, советую вам его запомнить!
Ну так что же там за Аргументы? 1. playerid - игрок.Как можно догадаться player- игрок id - ид, ид игрока.Трудно всё равно не правда ли? playerid - (Значение:игрок который ввёл команду, совершил действие.Использование:в командах, авторынках,системах - во всём. Это можно сказать самая "Популярная" переменная).На месте playerid можно поставить конкретный ид игрока который может ввести команду, например - 0,тогда другим этого сделать нельзя будет, а playerid - разрешает это делать всем(чтобы было понятнее).
Далее идет сумма денег выдаваемыех игроку. В нашем случае это 1000 долларов. Можно конечно-же вписать любое число, но так же можно выписать и глобальную переменную.Например:
PHP:
new money = 1000; // глобальная переменная money "=" присваивает 1000 этой переменной,не путайте "==" - это сравнивает.
if(strcmp(cmd,"/1000money",true) == 0)
{
GivePlayerMoney(playerid,money);// даём 1000 долларов игроку, которые мы присвоили в переменной money, мы так же можем их и отнять.
}
//отнятие денег:
if(strcmp(cmd,"/-1000money",true) == 0)
{
GivePlayerMoney(playerid,-money);//Следует запомнить что когда прибавляем деньги не надо ставить "+", а когда убавляем нужно ставить "-".Из за этого у вас могут быть ошибки!.
}
Выдача денег закончена!
[HR][/HR]
Теперь самое трудное в данной команде!
Проверка на администратора!
Тут нас встречает if(если), далее открывается скобка "(", и тут проверка!
Player[playerid][pAdmin] - что это? Player - в начале мода есть данные о игроке - enum(для вас ещё трудно),там записано всё что есть у игрока (деньги-pMoney, лвл - pScore ну и другое).Так вот после всех строчек есть глобальная переменная new Player..., Она может быть любой и PlayerInfo и PlayerStats и Players , смотрите какая у вас и в этой проверке используйте вашу.
То-есть:
PHP:
// у вас new PlayerInf[...][...];
//команда:
if(strcmp(cmd,"/money",true) == 0)// всё как было
{
if(PlayerInf[playerid][pAdmin] == 1)// видите нужно изменить на вашу, здесь проверка на pAdmin можно изменить на pScore(лвл), или же pMoney(деньги), смотря какая у вас цель. И не забудьте!!! "=" - значить присвоить. а "==" - значить сравнить!!!!!!!!
{
...
}
}
[HR][/HR]
[HR][/HR]
[HR][/HR]
Теперь у вас есть 1 вами написанная команда!По-экспирементируйте - добавьте проверку на уровень и на деньги!
Ну и как же без домашнего задания?
Добавьте в команду /money проверку на администратора и выдачу разную денег по такой схеме:
1 уровень админки - 1000 долларов
2 уровень админки - 2000 долларов
3 уровень админки - 3000 долларов
Всё поняли? Ответы на домашнее задание оставляйте в комментариях вместе с отзывами! Постараюсь продолжить уроки!
Последнее редактирование:
