Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
Karpenator

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

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

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts








  • 0

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

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

 

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

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

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


 

Edited by Torlan (see edit history)

Share this post


Link to post
Share on other sites
  • 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 товара, бери любой и смотри код)

Share this post


Link to post
Share on other sites
  • 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 - чат текст
        }
	}
}

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.