Skip to content

Player Commands RU

dev2alert edited this page Jan 26, 2022 · 1 revision

Главная ▸ Команды игрока

Прежде чем начать создавать команды, необходимо инициализировать их работу:

Player.command.init();

Создание команды:

Player.command("veh", "nnn", (player, model: number, color1: number, color2: number) => {
    const {x, y, z}: Position = player.pos;
    const rotation: number = player.angle;
    const vehicle: Vehicle = Vehicle.create({x, y, z, model, colors: [color1, color2], rotation});
    if(player.isInAnyVehicle())
        player.vehicle.destroy();
    player.put(vehicle);
});

Где veh - это имя команды, nnn - типы параметров.
А третьим аргументом принимается обработчик команды.

Типы параметров:

  • b - Булевой. 0 или 1.
  • i - Целое число. Например: 89.
  • f - Число с плавающей запятой. Например: 1,23 или 1.23.
  • n - Любое число. Например: 89, 1.23.
  • s - Строка. Например: Hello, world!
  • w - Слово. Например: Hello.

Создание альтернативного имени команде:

Player.command.alt("veh", "vehicle");

Где veh - имя команды, которой создается альтернативное имя, а vehicle - это альтернативное имя команды.

Событие, если команда введена некорректно:

Player.on("command-invalid", (player) => {
    player.send("[Error]{FFFFFF} Command invalid.", 0xe04010AA);
    player.retval = 1;
});

Событие, если команды не существует:

Player.on("command-not-found", (player, name) => {
    player.send(`[Error]{FFFFFF} Command {dbce12}${name}{FFFFFF} not found.`, 0xe04010AA);
    player.retval = 1;
});

Событие, если не соответствует типизация параметров команды:

Player.on("command-params-mismatch", (player, cmdList) => {
    if(cmdList.desc) {
        player.send(cmdList.desc, 0xdbdbdbAA);
        player.send();
    }
    for(const cmd of cmdList)
        player.send(`{b3afaf}/${cmd.name} {dbce12}${cmd.params.map(({name, type}) => `<${name}: ${Player.command.paramTypeNames[type]}>`).join(" ")}`);
    player.retval = 1;
});

Указание описания и имён параметров команды:

Player.command.desc("veh", "Create vehicle.");
Player.command("veh", [["n", "model"], ["n", "color1"], ["n", "color2"]], (player, model: number, color1: number, color2: number) => {
    /* <...> */
});

Перегрузка команды:

Player.command("health", "", (player) => {
    player.health = 100;
});
Player.command("health", [["n", "health"]], (player, health: number) => {
    player.health = health;
});

Clone this wiki locally