Добавляем в папку packages/keker/commands файл pm.js со следующим содержанием:
Когда пользователь введёт команду:
Примеры:
ВАЖНО!
Требуется сохранить файл pm.js в кодировке UTF-8 (Unicode), т.к. в нём присутствует кириллица!
Иначе все системные сообщения, написанные на русском, в игре будут отображаться знаками вопроса вместо букв.
Совет:
Создавайте команды в разных файлах, 1 файл = 1 команда!
JavaScript:
findPlayerByIdOrNickname = playerName => {
var foundPlayer = null;
// Проверяем, число ли это
if (playerName == parseInt(playerName)) {
// Если число - ищем среди ID'ов пользователей
foundPlayer = mp.players.at(playerName);
}
// Если пользователь не найден по ID - ищем по никам
if (!foundPlayer) {
mp.players.forEach((_player) => {
if (_player.name === playerName) {
foundPlayer = _player;
}
});
}
return foundPlayer;
};
module.exports = {
// Добавляем команду `/pm`
"pm": (player, args) => {
// Проверяем корректность введённой команды
if (args.length < 3 || !args[1].length || !args[2].length) {
// Если что-то в команде было введено не так, то выводим соответствующее сообщение
player.outputChatBox('Для отправки личного сообщения введите:<br /><b>/pm [id_получателя_или_ник] [текст сообщения]</b>');
return false;
}
// Ищем пользователя по иду или нику среди всех пользователей сервера
const recipient = findPlayerByIdOrNickname(args[1]);
// Если пользователь не найден, то выводим соответствующее сообщение
if (!recipient) {
player.outputChatBox('<b>Указанный пользователь не найден в игре</b>');
return false;
}
// Собираем текст сообщения из агрументов, игнорируя команду `/pm` и ид/ник получателя в аргументах
const message = args.slice(2).join(' ');
// Генерируем строку для чата в формате:
// [PM] Ник_Отправителя[ID_Отправителя] -> Ник_Получателя[ID_Получателя]: Текст сообщения
const str = `<b>[PM] ${player.name}[${player.id}] -> ${recipient.name}[${recipient.id}]</b>: ${message}`;
// Отправляем сообщение в чат получателю
recipient.outputChatBox(str);
// Отправляем сообщение в чат отправителю
player.outputChatBox(str);
}
};
Когда пользователь введёт команду:
Будет отправляться личное сообщение указанному игроку./pm [id или ник игрока] [текст сообщения]
Примеры:
/pm 0 Текст сообщения
/pm ragetestmaster Текст сообщения
ВАЖНО!
Требуется сохранить файл pm.js в кодировке UTF-8 (Unicode), т.к. в нём присутствует кириллица!
Иначе все системные сообщения, написанные на русском, в игре будут отображаться знаками вопроса вместо букв.
Совет:
Создавайте команды в разных файлах, 1 файл = 1 команда!