Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
LUGU

Как определять написал ли игрок чат?

Собрался написать скрипт, который телепортировал бы игрока на определенные координаты, при написании в чат !base. Однако не смог найти обработчик событий чата. Как проверить написал ли игрок что-то в чат, что именно и что за игрок это сделал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 1

тут 2 варианта:
1. через событие миссии в init.c 

class CustomMission: MissionServer
{
    // ...
    // тут всякий инициализационный код

	override void OnEvent(EventType eventTypeId, Param params) {
		super.OnEvent(eventTypeId,params);
		switch(eventTypeId) {
			case ChatMessageEventTypeID:
			ChatMessageEventParams chat_params = ChatMessageEventParams.Cast(params);
			if (chat_params.param2 != "" && chat_params.param3 != "" && chat_params.param3.Substring(0,1) == "/") {
                array<Man> players = new array<Man>;
				GetGame().GetPlayers( players );
				PlayerBase pb;
				for (int i = 0; i < players.Count(); i++)
				{
					if (Class.CastTo(pb, players.Get(i)) && pb.GetIdentity() && pb.GetIdentity().GetName() == param2)
					{
						// вот тут обрабатываешь конанду
                        // то что в chat_params.param3 это то что ввел игрок
						return;
					}
				}
			}
			break;
		}
	} 
}

но есть баг, что если игрок не имеет имени или быстро перезаходил и имеет имя вроде User 1, где 1 добавлена системой входа, то этот игрок не сможет пользоваться командами

2. ловить на игроке RPC, муторно описывать, но работоспособно и не имеет бага как в первом случае
а как быстрый способ сойдет первый

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка