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

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

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

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

Создания команд

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

Cyrill

Новичок
Создавать команды в Squirrel проще, чем вы думаете.
С помощью функции 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);
Ну вот и конец урока.Думаю что я помог кому нибудь.Ставим + если не жалко)
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу