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

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

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

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

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

Вывод даты сервера в сообщения игрокам

Господа, спасители!
Настроена погода, но она сильно разнится по месяцам, дабы игроков не путать, возникла идея создать сообщения, настает новый день и в чат глобал админ или хз кто\что - пишет - день такой-то, октябрь... Насколько много я захотел?)

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


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

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

  • 0
modded class PlayerBase
{
	override void OnConnect()
	{
		super.OnConnect();
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.OnConnectMessage, 10000, false);
	}
	void OnConnectMessage()
	{
		int year, month, day, hour, minute;
		GetGame().GetWorld().GetDate(year, month, day, hour, minute);
		MessageAction("Сегодня " + day + "." + month + "." + year);
	}
}

GetDate - это игровое время
месяц по номеру можно превратит в текстовый

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


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

Спасибо! эту радость сервермодом надо  я так понял?

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


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

но и персистент тайм не забудь включить в сервердз.сфг

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
28.12.2023 в 13:56, Archon7th сказал:

 

 


modded class PlayerBase и т.д.
 

Я дико извиняюсь, не подскажете в каком файле внести эти изменения?

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

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


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

@billylee сервермод используете ServerListMod ?
если да, то можете в любой папке с 4-ми скриптами  создать файл например PlayerConnMessage.c
прописать к нему путь в ServerListMod\4_World_modded.txt
ну и всё

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


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

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

 

 

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


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

@paranoyk А в чем проблема-то?
если не личная температура каждого игрока
без учета высоты
без учета поверхности на которой находится игрок
без учета "в машине" и "в здании"
именно температура воздуха, то вот так:

modded class MissionServer
{
	override void OnInit()
	{
		super.OnInit();
		GetGame().GetCallQueue( CALL_CATEGORY_SYSTEM ).CallLater( this.Every15MinMessage, 15*60000, true );
	}

	void Every15MinMessage()
	{
		Weather weather	= GetGame().GetWeather();
		float temperature;
		temperature = GetGame().GetMission().GetWorldData().GetBaseEnvTemperature();
		temperature += Math.AbsFloat(temperature * weather.GetOvercast().GetActual() * GameConstants.ENVIRO_CLOUDS_TEMP_EFFECT);
		
		temperature -= GameConstants.ENVIRO_TEMPERATURE_WIND_COEF * weather.GetWindSpeed() / weather.GetWindMaximumSpeed();
		temperature -= Math.AbsFloat(temperature * weather.GetFog().GetActual() * GameConstants.ENVIRO_FOG_TEMP_EFFECT);
		
		int year, month, day, hour, minute;
		GetGame().GetWorld().GetDate(year, month, day, hour, minute);
		
		array<Man> players = new array<Man>();
		GetGame().GetPlayers(players);
			
		foreach (Man man : players)
		{
			PlayerBase player;
			if (Class.CastTo(player, man))
				player.MessageAction("Сегодня " + day + "." + month + "." + year + " температура воздуха "+Math.Round(temperature));
		}
	}
};


если личная температура окружения игрока (типа термометр на игроке)
то достаточно убрать все подсчеты температуры выше 

if (Class.CastTo(player, man) && player.m_Environment)
{
	float temperature = player.m_Environment.GetTemperature();
	player.MessageAction("Сегодня " + day + "." + month + "." + year + " температура "+Math.Round(temperature));
}

но не забыть убедиться что m_Environment уже проинициализировался, а-то будет ошибко

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


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

сервермод используете ServerListMod ?

"-servermod= вот так использую в батнике строку)

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

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


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

ОГРОМНОЕ СПАСИБО! Заработало, добавил первый самый код сервермодом, второй с температурой чтото не захотел))), но там уже расковыряю что к чему, безмерно благодарен.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка