Cyrill
Новичок
Создавать команды в Squirrel проще, чем вы думаете.
С помощью функции split(), создание команд с несколькими параметрами так же просто, как [1] [2] [3]...
Главное вдумайтесь смысл и все получиться.
Команды без параметров
Нам понадобится событие onPlayerCommand.
playerid - ИД игрока
command - сама команда, которую ввел игрок
Давайте сделаем простую команду /givehealth, которая будет давать игроку 100% жизней
Теперь сделаем функцию для перемещения игрока.
Сейчас будем делать команды с несколькими параметрами
Команды с параметрами
Создание команд с параметрами не сложнее обычных команд. Всю сложную работу делает за нас функция split().И так начнем
Принципе нет нечего сложного главное вдумайтесь.
Теперь сделаем команду /gotoloc, но с возможностью установки своих координат.
Команды для других игроков
Это не сложней, чем предыдущие примеры. Надо просто ввести еще один параметр, который будет содержать ИД другого игрока.
Ну вот и конец урока.Думаю что я помог кому нибудь.Ставим + если не жалко)
С помощью функции split(), создание команд с несколькими параметрами так же просто, как [1] [2] [3]...
Главное вдумайтесь смысл и все получиться.
Команды без параметров
Нам понадобится событие onPlayerCommand.
playerid - ИД игрока
command - сама команда, которую ввел игрок
Давайте сделаем простую команду /givehealth, которая будет давать игроку 100% жизней
PHP:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " "); //Разделяем команду на массив слов, разделитель - пробел
if(cmd[0] == "/givehealth") //cmd[0] это первое слово в команде.
{
setPlayerHealth(playerid, 100); //Даем игроку 100% жизней
sendPlayerMessage(playerid, "Вы вылечили себя", 0xFFFFFFAA);
return 1; //Необходимо возвращать 1 во всех командах.
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);//Привязываем функцию к событию
PHP:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/gotoloc")
{
setPlayerCoordinates(playerid, 1501, 616, 8846); //Перемещаем игрока в эти координаты. Внимание! Координаты для примера!
sendPlayerMessage(playerid, "Перемещение!", 0xFFFFFFAA);
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);
Команды с параметрами
Создание команд с параметрами не сложнее обычных команд. Всю сложную работу делает за нас функция split().И так начнем
PHP:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/givehealth")
{
//Длина команды, включающая /command (следовательно /givehealth 100 будет иметь длинну равную 2).
//Тут мы проверяем длину команды, дабы избежать ошибок.
if(cmd.len() != 2) {
sendPlayerMessage(playerid, "Использование: /givehealth [amt]", 0xFFFFFFAA);
return 1;
}
setPlayerHealth(playerid, cmd[1].tofloat()); //Устанавливаем значение жизней, путем превращения второго слова (100) в тип float.
sendPlayerMessage(playerid, 0xFFFFFFAA, "Устанавливаем жизни на " + cmd[1] + "%");
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);
Теперь сделаем команду /gotoloc, но с возможностью установки своих координат.
PHP:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/gotoloc")
{
if(cmd.len() != 4) {
sendPlayerMessage(playerid, 0xFFFFFFAA, "Использование: /gotoloc [x] [y] [z]");
return 1;
}
setPlayerCoordinates(playerid, cmd[1].tofloat(), cmd[2].tofloat(), cmd[3].tofloat()); //Устанавливаем координаты
sendPlayerMessage(playerid, "Перемещение: " + cmd[1] + ", " + cmd[2] + ", " + cmd[3], 0xFFFFFFAA);
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);
Это не сложней, чем предыдущие примеры. Надо просто ввести еще один параметр, который будет содержать ИД другого игрока.
PHP:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/skin")
{
if(cmd.len() != 3) {
sendPlayerMessage(playerid, "Использование: /skin [playerid] [skin]", 0xFFFFFFAA);
return 1;
}
//Проверяем, есть ли игрок в сети
local id = cmd[1].tointeger();
local skin = cmd[2].tointeger();
if(!isPlayerConnected(id)) {
sendPlayerMessage(playerid, 0xFFFFFFAA, "Неправильный ИД");
return 1;
}
setPlayerModel(id, skin);
sendPlayerMessage(playerid, "Вы установили игроку " + getPlayerName(id) + " скин " + skin, 0xFFFFFFAA);
sendPlayerMessage(id, getPlayerName(playerd) + " установил ваш скин на " + skin, 0xFFFFFFAA);
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);
Последнее редактирование модератором:
