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

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

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

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

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

Чат и реакция на сообщения

Подскажите товарищи, есть ли скрипт или мод на систему протокола, что бы человек вводил сообщение в чат и единоразово получал вещь, но что бы активировать можно было только один раз в неделю данное действие.

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


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

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






  • 0

Интересная тема, но было бы интереснее посмотреть в код) Конкретнее, какими функциями перехватывать сообщения от пользователей в чат?

Например, в серверном скрипте есть определённый список команд. Если в чате появляется сообщение - оно сравнивается со списком, и если это команда:
1) Пользователь (какой при этом ловится идентификатор или объект?) отправляется аргументом в определённую функцию
2) Сообщение по возможности даже не уходит в чат, обрабатывается скриптом и "гасится".
В целом главный вопрос только в первом, как определить, какой пользователь и что написал? Второе уже визуальщина)

 

В основном это нужно, чтобы вызывать определённые функции по команде, не дожидаясь каких-то событий. В Арме, помню, была возможность повесить срабатывание скрипта на радиосигналы из рации, альфа-браво и т.д. Тут бы для отладки тоже пригодились определённые сигналы, которые вызывают определённую реакцию.

Что-то типа такого)) Какие классы/функции движка оверрайдить?

modded class SomeChatClass { // Моддим какой-то класс    
  override void SomeChatRecieveFunction(PlayerBase Player, string Message) { // Оверрайдим какую-то функцию
    if (...) { // Проверяем, что сообщение является командой
      StartSomeShit(Player); // Выполняем действие
    } else {
      super.SomeChatRecieveFunction(PlayerBase Player, string Message); // Обрабатываем дальше как обычное сообщение чата
    }
  }
}


 

Изменено пользователем Torlan (история изменений)

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, Torlan сказал:

Интересная тема, но было бы интереснее посмотреть в код) Конкретнее, какими функциями перехватывать сообщения от пользователей в чат?

Например, в серверном скрипте есть определённый список команд. Если в чате появляется сообщение - оно сравнивается со списком, и если это команда:
1) Пользователь (какой при этом ловится идентификатор или объект?) отправляется аргументом в определённую функцию
2) Сообщение по возможности даже не уходит в чат, обрабатывается скриптом и "гасится".
В целом главный вопрос только в первом, как определить, какой пользователь и что написал? Второе уже визуальщина)

 

В основном это нужно, чтобы вызывать определённые функции по команде, не дожидаясь каких-то событий. В Арме, помню, была возможность повесить срабатывание скрипта на радиосигналы из рации, альфа-браво и т.д. Тут бы для отладки тоже пригодились определённые сигналы, которые вызывают определённую реакцию.

Что-то типа такого)) Какие классы/функции движка оверрайдить?

modded class SomeChatClass { // Моддим какой-то класс override void SomeChatRecieveFunction(PlayerBase Player, string Message) { // Оверрайдим какую-то функцию if (...) { // Проверяем, что сообщение является командой StartSomeShit(Player); // Выполняем действие } else { super.SomeChatRecieveFunction(PlayerBase Player, string Message); // Обрабатываем дальше как обычное сообщение чата } } }


modded class SomeChatClass { // Моддим какой-то класс    
  override void SomeChatRecieveFunction(PlayerBase Player, string Message) { // Оверрайдим какую-то функцию
    if (...) { // Проверяем, что сообщение является командой
      StartSomeShit(Player); // Выполняем действие
    } else {
      super.SomeChatRecieveFunction(PlayerBase Player, string Message); // Обрабатываем дальше как обычное сообщение чата
    }
  }
}


 

так вот тебе 2 товара, бери любой и смотри код)

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
modded class MissionServer
{	
    override void OnEvent(EventType eventTypeId, Param params)
	{
        super.OnEvent(eventTypeId,params);
		if ( eventTypeId == ChatMessageEventTypeID )
        {
			ChatMessageEventParams chat_params = ChatMessageEventParams.Cast( params );
            //chat_params.param1 - канал
			//chat_params.param2 - ник
			//chat_params.param3 - чат текст
        }
	}
}

далее крути верти как тебе надо уже сам

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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