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

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

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

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

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

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 05/21/20 в Сообщения

  1. 2 балла
    123new

    ServerMonitor с автообновлением сервера и модов

    Описание: ServerMonitor - это управляемый на PowerShell автономный мониторинг сервера DayZ с настраиваемыми опциями, такими как автоматическое обновление модов (включая копирование ключей модов), автоматическое обновление файлов сервера, автоматическое архивирование логов для сохранения чистой папки профиля с полной поддержкой параметров-mod и-servermod. Это альтернатива популярным CFTools с одним существенным отличием: все ваши данные хранятся на вашем сервере и нет никакой зависимости от веб-службы для использования этого инструмента (пока ваш сервер подключен к интернету, этот инструмент будет работать). Возможности: автоматический запуск сервера в случае его включения автоматическое обновление сервера до актуальной версии игры в Steam при рестарте (Stable ветка) автоматическое обновление модификаций до актуальной версии в Мастерской Steam при рестарте (Stable ветка) Поддержка BEC Копирование и сортировка логов Требуется: Steamcmd Steam аккаунт с наличием приобретенной DayZ (для загрузки модификаций с мастерской) Выделенный сервер с возможностью запуска windows-приложений Установка: Создать папку SteamCMD и скачать steamcmd в нее Войти в steamcmd используя свои логин и пароль от Steam (как - читаем тут) Закрыть steamcmd вводом `quit` и нажатием `enter` Создать папку ServerMonitor и распаковать в нее файлы из архива с программой. Провести настройку в ServerMonitor.cfg Настроить списки модов в playersmodslist.txt и servermodlist.txt (для уточнения: playersmodslist.автоматически загружает модов на клиенте и сервере, в то время как servermodslist.txt-это моды, которые должны загружаться только на сервере, ни в коем случае это не должны быть одни и те же моды в обоих файлах) Пример заполнения файлов: BuildAnywhere - https://steamcommunity.com/sharedfiles/filedetails/?id=1574054508 KillFeed - https://steamcommunity.com/sharedfiles/filedetails/?id=1567872567 Запустить ServerMonitor.exe из папки ServerMonitor Дополнительная установка для автоматических рестартов: Загрузите, установите и настройте BEC (читаем тему) (программа должна соединяться с сервером успешно) Загрузите BECMonitor (ссылка ниже) и распакуйте zip-файл в нужном вам месте Настройте BECMonitor.cfg Запустите BECMonitor.exe Notes: Если DayZServer не установлен в указанный каталог, он будет установлен в указанный каталог Не копирует файлы конфигурации для модификаций в профиль, так как Моды должны автоматически создавать их, если они не существуют В настоящее время поддерживается только стабильный релиз DayZ Чтобы полностью выключить сервер, обязательно выключите ServerMonitor перед выключением DayZServer Не забудьте настроить файлы конфигурации сервера (указанный вами serverDZ.cfg) Может использоваться для нескольких экземпляров DayZServer, для достижения этого вы просто создаете 2-й экземпляр этой программы в другом каталоге с настроенной конфигурацией Убедитесь, что у Вас установлен SteamGuard на используемом вами аккаунте, так как данные вашего аккаунта будут храниться в виде обычного текста на вашем сервере и могут быть похищены. Также обратите внимание, что если учетная запись не предназначена для сервера, то код SteamGuard может потребоваться ввести вручную при каждом запуске. Файлы программы должны находиться в корневой папке с самой программой Рекоммендуется устанавливать корневой каталог сервера игры в корень диска (т. е.: C:\DayZServer или D:\DayZServer и т.д.) License: CC BY-ND 4.0 Ссылки: ServerMonitor.rar (ServerMonitor.rar ) BECMonitor.rar (BECMonitor.rar) Описание и авторские пояснения сохранены! Был выполнен только перевод статьи и зеркалирование файлов на момент написания. Авторская тема разработчика программы на официальном форуме: https://forums.dayz.com/topic/245162-servermonitor-with-updater-including-mod-updates/ Видео установки ServerMonitor: P.S. Пришлось тестировать на WIndows 8.1 т.к. на Windows 7 программа отказалась работать (старенький семерочный powershell ее чем-то не устроил, видимо)
  2. 1 балл
    BorizzK

    Охлаждение еды и кастрюли после готовки

    Довольно тупое охлаждение жратвы и кастрюли если они оказались на земле Прикрутить охлаждение содержимого кастрюли как 2 байта сами знаете что Сделать охлаждение после снятия с костра и тп вобщем то же не проблема Просто код и ничего лишнего Комментарии к коду добавлю позже Логгирование в коде закомментировано - раскомментируйте, что бы наблюдать за процессом Для жратвы убавление температуры раз в 10 сек на 1 градус Для кастрюли на 2 градуса Охлаждается до дневной температуры воздуха далее охлаждение прекращается У бгемотов есть 2 температуры воздуха - дневная и ночная Идиотизм? Однозначно Я пытался в погоде сделать ее плавное изменение в зависимости от Overcast, Rain и тп, но забил - потом как-нибудь Есть вопросы, задавайте, отвечу если будет время. Вобщем как-то так: //08.05.2020 modded class ItemBase extends InventoryItem { ref Timer m_TemperatureDecrease; private float m_InitTemperature; private float m_DecreaseTempTime = 10; private float m_TempDecreaseCoef = -1; void ItemBase() { m_InitTemperature = 12; //g_Game.GetMission().GetWorldData().GetDayTemperature(); // Не работает ((( какого художника - я хз if ( IsInherited(Pot) /* GetInventory().GetCargo() */ ) { m_TempDecreaseCoef = -2; } } override void AfterStoreLoad() { super.AfterStoreLoad(); if (!IsInherited(FireplaceBase)) TryToStartTempDecrease(); } private void TryToStartTempDecrease() { if (GetTemperature() > GetInitTemperature()) { if (!GetHierarchyParent()) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: Init: TryToStartTempDecrease: this: " + this + ": GetHierarchyParent(): " + GetHierarchyParent() + ": GetTemperature(): " + GetTemperature()); StartTemperatureDecrease(); } } } } override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc) { super.EEItemLocationChanged(oldLoc,newLoc); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": newLoc.GetType(): " + newLoc.GetType() + ": newLoc.GetParent(): " + newLoc.GetParent() + ": GetTemperature(): " + GetTemperature()); if (GetTemperature() > GetInitTemperature()) { if (!newLoc.GetParent() || newLoc.GetType() == InventoryLocationType.GROUND) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": Begin decrease temperature: GetTemperature(): " + GetTemperature()); StartTemperatureDecrease(); } } } else { if (m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": End decrease temperature: GetTemperature(): " + GetTemperature()); StopTemperatureDecrease(); } } } private void StartTemperatureDecrease() { m_TemperatureDecrease = new Timer( CALL_CATEGORY_SYSTEM ); m_TemperatureDecrease.Run(m_DecreaseTempTime, this, "DecreaseTemperature", NULL, true); } private void StopTemperatureDecrease() { m_TemperatureDecrease.Stop(); m_TemperatureDecrease = NULL; } void DecreaseTemperature() { if (GetTemperature() > GetInitTemperature()) { AddTemperature(GetTempDecreaseCoef()); if ( IsInherited(Pot) /* GetInventory().GetCargo() */) { DecreaseCargoTemperature(); } Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: this: " + this + ": Decrease: GetTemperature(): " + GetTemperature()); } else { SetTemperature(GetInitTemperature()); StopTemperatureDecrease(); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: this: " + this + ": Stop decrease: GetTemperature(): " + GetTemperature()); } } void DecreaseCargoTemperature() { ItemBase item; int item_count = GetInventory().GetCargo().GetItemCount(); for (int i = 0; i < item_count; i++) { item = ItemBase.Cast(GetInventory().GetCargo().GetItem(i)); if (item) { if (item.GetTemperature() > item.GetInitTemperature()) { item.AddTemperature(item.GetTempDecreaseCoef()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } else { item.SetTemperature(item.GetInitTemperature()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Stop decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } } } } float GetInitTemperature() { return m_InitTemperature; } float GetTempDecreaseCoef() { return m_TempDecreaseCoef; } } Немного переделал код Теперь охлаждается все если оно имеет Т выше 12, а если это кастрюля с содержимым, то и ее содержимое Получить Т воздуха в конструкторе не выходит потому указал руками
  3. 1 балл
    Функции называются одинаково, но имеют разное количество параметров Это как так-то? Или это просто фича?
  4. 1 балл
    nIkRon

    model.cfg

    Микеро платный, 40 евриков в год. А бесплатно новый вроде не получить, мне говорили что он щас по привязке сделал. У меня есть старый за конец 18-го года, могу только его скинуть.
  5. 1 балл
    AKuznecov

    Клин и износ оружия

    На счет износа не знаю но клин это в скрипте. ПО умолчанию он написан в Pistol_Base.с , RifleBoltFree_Base.c и RifleBoltLock_Base.c . Написан он для оружия, которое имеет магазин. Для не магазин нужен другой скрипт но короче, а выглядит он так: override float GetChanceToJam() { float chanceToJam = super.GetChanceToJam(); chanceToJam = chanceToJam + ((0.1 - chanceToJam) * 0.15); // 0.1 return chanceToJam; }
  6. 1 балл
    BorizzK

    Охлаждение еды и кастрюли после готовки

    Переделал, но тестить и тп времени нет и сил Нужно чуть поправить и тп сделал связь с костром и тд итп (класс костра прям тут же ниже) Там еще экшаны на питье отмоддил что бы от кипятка дох - потом выложу //20.05.2020 modded class ItemBase extends InventoryItem { ref Timer m_TemperatureDecrease; private float m_InitTemperature; private float m_DecreaseTempTime = 10; private float m_TempDecreaseCoef = 1; private float m_DamageTemperaturePlayer = 54; private float m_TempDamageCoef = 0.015; private int m_CurrentLocation = InventoryLocationType.GROUND; // ================================================================================================================== private bool m_DecTempAllow = true; bool IsDecTempAllow() { return m_DecTempAllow; } void SetDecTempAllow(bool value = true) //Uses for stop/start decrease temp if cooking on fireplace etc. //Используем для остановки остывания во время готовки и запуска остывания после прекращения { m_DecTempAllow = value; Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: SetDecTempAllow: " + GetGame().GetTickTime() + ": this: " + this + ": m_DecTempAllow: " + m_DecTempAllow); if (!m_DecTempAllow) { if (m_TemperatureDecrease) { StopTemperatureDecrease(); } } else { TryToStartTempDecrease(); } } void SetDecTempAllowToCargo(bool value = true) //End-to-end call for all inventory in cargo //Сквозной вызов для всего инвентаря { ItemBase item; Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: SetDecTempAllowToCargo: " + GetGame().GetTickTime() + ": this: " + this + ": Items count: " + GetInventory().GetCargo().GetItemCount() + ": m_DecTempAllow: " + m_DecTempAllow); for (int i = 0; i < GetInventory().GetCargo().GetItemCount(); i++) { item = ItemBase.Cast(GetInventory().GetCargo().GetItem(i)); if (item) { if (item.IsDecTempAllow() != value) item.SetDecTempAllow(value); } } } // ================================================================================================================== void ItemBase() { m_InitTemperature = 20; if ( IsInherited(Pot) ) { m_TempDecreaseCoef = m_TempDecreaseCoef * 2; } else if (IsInherited(FireplaceBase)) { m_DecTempAllow = false; } } void ~ItemBase() { if (m_TemperatureDecrease) { StopTemperatureDecrease(); } } // ================================================================================================================== override void AfterStoreLoad() { super.AfterStoreLoad(); if ( !IsInherited(FireplaceBase) ) TryToStartTempDecrease(); } private void TryToStartTempDecrease() { if (GetTemperature() > GetInitTemperature()) { if (GetHierarchyParent()) { if (GetHierarchyParent().IsInherited(PlayerBase)) { PlayerBase player = PlayerBase.Cast(GetHierarchyParent()); if (player) { if (player.GetHumanInventory().GetEntityInHands() == this) { m_CurrentLocation = InventoryLocationType.HANDS; } } else { m_CurrentLocation = -1; //Игрок есть, но он не на сервере! } } } if (m_CurrentLocation != -1) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: TryToStartTempDecrease: " + GetGame().GetTickTime() + ": this: " + this + ": Start decrease temperature: GetTemperature(): " + GetTemperature() + ": GetHierarchyParent(): " + GetHierarchyParent()); StartTemperatureDecrease(); } } } } // ================================================================================================================== override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc) { super.EEItemLocationChanged(oldLoc,newLoc); if (GetTemperature() > GetInitTemperature()) { if ( !IsInherited(FireplaceBase) ) { m_CurrentLocation = newLoc.GetType(); if (!m_TemperatureDecrease) { //if (IsDecTempAllow()) //{ m_DecTempAllow = true; Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: " + GetGame().GetTickTime() + ": this: " + this + ": Start decrease temperature: GetTemperature(): " + GetTemperature() + ": newLoc.GetParent(): " + newLoc.GetParent()); StartTemperatureDecrease(); //} } } } else { if (m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: " + GetGame().GetTickTime() + ": this: " + this + ": End decrease temperature: GetTemperature(): " + GetTemperature() + ": newLoc.GetParent(): " + newLoc.GetParent()); StopTemperatureDecrease(); } } } // ================================================================================================================== private void StartTemperatureDecrease() { DecreaseTemperature(); m_TemperatureDecrease = new Timer; m_TemperatureDecrease.Run(m_DecreaseTempTime, this, "DecreaseTemperature", NULL, true); if (GetInventory().GetCargo()) { SetDecTempAllowToCargo(true); } } private void StopTemperatureDecrease() { m_CurrentLocation = InventoryLocationType.UNKNOWN; m_TemperatureDecrease.Stop(); m_TemperatureDecrease = NULL; } // == COOLING == void DecreaseTemperature() { if (GetTemperature() > GetInitTemperature()) { if (m_CurrentLocation == InventoryLocationType.HANDS) { if (GetTemperature() >= GetDamageTemperaturePlayer()) { AddTemperatureDamageToPlayer(); } } AddTemperature(-GetTempDecreaseCoef()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: " + GetGame().GetTickTime() + ": this: " + this + ": Decrease: GetTemperature(): " + GetTemperature()); } else { SetTemperature(GetInitTemperature()); StopTemperatureDecrease(); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: " + GetGame().GetTickTime() + ": this: " + this + ": Stop decrease: GetTemperature(): " + GetTemperature()); } } private bool m_CargoDecTempState = false; void DecreaseCargoTemperature() { ItemBase item; m_CargoDecTempState = false; int item_count = GetInventory().GetCargo().GetItemCount(); for (int i = 0; i < item_count; i++) { item = ItemBase.Cast(GetInventory().GetCargo().GetItem(i)); if (item) { if (item.GetTemperature() > item.GetInitTemperature()) { m_CargoDecTempState = true; item.AddTemperature(-item.GetTempDecreaseCoef()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: " + GetGame().GetTickTime() + ": this: " + this + ": Decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } else { item.SetTemperature(item.GetInitTemperature()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: " + GetGame().GetTickTime() + ": this: " + this + ": Stop decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } } } } // == COOLING END == // ================================================================================================================== // == DAMAGE == void AddTemperatureDamageToPlayer() { PlayerBase player = PlayerBase.Cast(GetHierarchyParent()); if (player && player.IsAlive()) { float idmg = GetDamageTemperature(); ItemBase gloves = ItemBase.Cast(player.GetInventory().FindAttachment(InventorySlots.GLOVES)); if (gloves) { gloves.AddHealth("","Health", -idmg); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: AddTemperatureDamageToParent: " + GetGame().GetTickTime() + ": this: " + this + ": player: " + player + ": idmg: " + idmg + ": Gloves Health: " + gloves.GetHealth() + ": Gloves Max Health: " + gloves.GetMaxHealth()); if (gloves.GetHealth() > gloves.GetMaxHealth() * 0.5) { return; } else if (gloves.GetHealth() > gloves.GetMaxHealth() * 0.25) { idmg = idmg * 0.75; } } player.ProcessDirectDamage(DT_CUSTOM, this, "RightHand", "FireDamage", "0.5 0.5 0.5", idmg * 0.5); if (IsInherited(Pot)) player.ProcessDirectDamage(DT_CUSTOM, this, "LeftHand", "FireDamage", "0.5 0.5 0.5", idmg * 0.5); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: AddTemperatureDamageToParent: " + GetGame().GetTickTime() + ": this: " + this + ": player: " + player + ": idmg: " + idmg + ": Health: " + player.GetHealth() + ": RightHand: " + player.GetHealth("RightHand","Health") + ": LeftHand: " + player.GetHealth("LeftHand","Health")); } } float GetDamageTemperaturePlayer() { return m_DamageTemperaturePlayer; } float GetDamageTemperature() { return GetTemperature() * m_TempDamageCoef; } // == DAMAGE END == // ================================================================================================================== float GetInitTemperature() { return m_InitTemperature; } float GetTempDecreaseCoef() { if (!IsUnderRoof()) { return m_TempDecreaseCoef * (1 + GetRainAbove()); } return m_TempDecreaseCoef; } float GetRainAbove() { return GetGame().GetWeather().GetRain().GetActual(); } bool IsUnderRoof() { float actual_height; bool hit; FireplaceBase.LineHit( this, 20, hit, actual_height ); return hit; } // ================================================================================================================== } // ================================================================================================================== // ================================================================================================================== modded class FireplaceBase extends ItemBase { override void DestroyFireplace() { if (m_CookingEquipment) { if (m_CookingEquipment.IsInherited(Pot)) { m_CookingEquipment.SetDecTempAllow(true); } } super.DestroyFireplace(); } //Add cooking equipment override void SetCookingEquipment( ItemBase equipment ) { m_CookingEquipment = equipment; if (m_CookingEquipment) { if (m_CookingEquipment.IsInherited(Pot)) { Print("::: SERVER: [FireplaceBase extends ItemBase: Decreasetemp]: SetCookingEquipment: " + GetGame().GetTickTime() + ": this: " + this + ": m_CookingEquipment " + m_CookingEquipment); if (m_HeatingTimer) { m_CookingEquipment.SetDecTempAllow(false); } else { m_CookingEquipment.SetDecTempAllow(true); } } } } //Start heating protected void StartHeating() { if (m_CookingEquipment && m_CookingEquipment.IsInherited(Pot)) { Print("::: SERVER: [FireplaceBase extends ItemBase: Decreasetemp]: StartHeating: " + GetGame().GetTickTime() + ": this: " + this + ": m_CookingEquipment " + m_CookingEquipment); m_CookingEquipment.SetDecTempAllow(false); } super.StartHeating(); } //Stop heating protected void StopHeating() { super.StopHeating(); if (m_CookingEquipment && m_CookingEquipment.IsInherited(Pot)) { Print("::: SERVER: [FireplaceBase extends ItemBase: Decreasetemp]: StopHeating: " + GetGame().GetTickTime() + ": this: " + this + ": m_CookingEquipment " + m_CookingEquipment); m_CookingEquipment.SetDecTempAllow(true); } } }
  7. 1 балл
    paranoyk

    DayZ 1.0 Админка + Настройка своего сервера.

    @serich5 У меня ТОЧНо не совпадают версии, хотя вроде самые новые НАЖМИ МЕНЯ (но только в течении 24 часов)
  8. 1 балл
    BorizzK

    Охлаждение еды и кастрюли после готовки

    Теперь будет охлаждаться всегда хотя я для снижения нагрузки на серв оставил бы охлаждение только на земле или в руках //15.05.2020 modded class ItemBase extends InventoryItem { ref Timer m_TemperatureDecrease; private float m_InitTemperature; private float m_DecreaseTempTime = 10; private float m_TempDecreaseCoef = 1; private float m_TempDecreaseCoefPot = 2; private float m_DamageTemperatureBorder = 54; private float m_TempDamageCoef = 0.01; private int m_CurrentLocation = InventoryLocationType.UNKNOWN; void ItemBase() { m_InitTemperature = 20; //g_Game.GetMission().GetWorldData().GetDayTemperature(); // Не работает ((( какого художника - я хз if ( IsInherited(Pot) /* GetInventory().GetCargo() */ ) { m_TempDecreaseCoef = m_TempDecreaseCoefPot; } } override void AfterStoreLoad() { super.AfterStoreLoad(); if ( !IsInherited(FireplaceBase) ) TryToStartTempDecrease(); } private void TryToStartTempDecrease() { if (GetTemperature() > GetInitTemperature()) { if (GetHierarchyParent().IsInherited(PlayerBase)) { PlayerBase player = PlayerBase.Cast(GetHierarchyParent()); if (player) { if (player.GetHumanInventory().GetEntityInHands() == this) { m_CurrentLocation = InventoryLocationType.HANDS; } else { m_CurrentLocation = InventoryLocationType.UNKNOWN; } } else { m_CurrentLocation = InventoryLocationType.UNKNOWN; } } else { m_CurrentLocation = InventoryLocationType.UNKNOWN; } if (!m_TemperatureDecrease) { StartTemperatureDecrease(); } } } override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc) { super.EEItemLocationChanged(oldLoc,newLoc); if (GetTemperature() > GetInitTemperature()) { if (newLoc.GetParent() && newLoc.GetType() == InventoryLocationType.HANDS) { m_CurrentLocation = InventoryLocationType.HANDS; } else { m_CurrentLocation = InventoryLocationType.UNKNOWN; } if (!m_TemperatureDecrease) { //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": Start decrease temperature: GetTemperature(): " + GetTemperature()); DecreaseTemperature(); StartTemperatureDecrease(); } } else { if (m_TemperatureDecrease) { //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": End decrease temperature: GetTemperature(): " + GetTemperature()); StopTemperatureDecrease(); } } } private void StartTemperatureDecrease() { m_TemperatureDecrease = new Timer; m_TemperatureDecrease.Run(m_DecreaseTempTime, this, "DecreaseTemperature", NULL, true); } private void StopTemperatureDecrease() { m_CurrentLocation = InventoryLocationType.UNKNOWN; m_TemperatureDecrease.Stop(); m_TemperatureDecrease = NULL; } // == COOLING == void DecreaseTemperature() { if (GetTemperature() > GetInitTemperature()) { if (m_CurrentLocation == InventoryLocationType.HANDS) { if (GetTemperature() >= GetDamageTemperatureBorder()) { AddTemperatureDamageToPlayer(); } } AddTemperature(-GetTempDecreaseCoef()); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: " + GetGame().GetTickTime() + ": this: " + this + ": Decrease: GetTemperature(): " + GetTemperature()); if ( IsInherited(Pot) /* GetInventory().GetCargo() */) { DecreaseCargoTemperature(); } } else { SetTemperature(GetInitTemperature()); StopTemperatureDecrease(); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: " + GetGame().GetTickTime() + ": this: " + this + ": Stop decrease: GetTemperature(): " + GetTemperature()); } } void DecreaseCargoTemperature() { ItemBase item; int item_count = GetInventory().GetCargo().GetItemCount(); for (int i = 0; i < item_count; i++) { item = ItemBase.Cast(GetInventory().GetCargo().GetItem(i)); if (item) { if (item.GetTemperature() > item.GetInitTemperature()) { item.AddTemperature(-item.GetTempDecreaseCoef()); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } else { item.SetTemperature(item.GetInitTemperature()); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Stop decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } } } } // == COOLING END == // == DAMAGE == void AddTemperatureDamageToPlayer() { PlayerBase player = PlayerBase.Cast(GetHierarchyParent()); if (player) { float idmg = GetDamageTemperature(); ItemBase gloves = ItemBase.Cast(player.GetInventory().FindAttachment(InventorySlots.GLOVES)); if (gloves) { gloves.AddHealth("","Health", -idmg); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: AddTemperatureDamageToParent: this: " + this + ": player: " + player + ": idmg: " + idmg + ": Gloves Health: " + gloves.GetHealth() + ": Gloves Max Health: " + gloves.GetMaxHealth()); if (gloves.GetHealth() > gloves.GetMaxHealth() * 0.5) { return; } else if (gloves.GetHealth() > gloves.GetMaxHealth() * 0.25) { idmg = idmg * 0.75; } } player.ProcessDirectDamage(DT_CUSTOM, this, "RightHand", "FireDamage", "0.5 0.5 0.5", idmg * 0.5); if (IsInherited(Pot)) player.ProcessDirectDamage(DT_CUSTOM, this, "LeftHand", "FireDamage", "0.5 0.5 0.5", idmg * 0.5); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: AddTemperatureDamageToParent: this: " + this + ": player: " + player + ": idmg: " + idmg + ": Health: " + player.GetHealth() + ": RightHand: " + player.GetHealth("RightHand","Health") + ": LeftHand: " + player.GetHealth("LeftHand","Health")); } } float GetDamageTemperatureBorder() { return m_DamageTemperatureBorder; } float GetDamageTemperature() { return GetTemperature() * m_TempDamageCoef; } // == DAMAGE END == float GetInitTemperature() { return m_InitTemperature; } float GetTempDecreaseCoef() { if (!IsUnderRoof()) { return m_TempDecreaseCoef * (1 + GetRainAbove()); } return m_TempDecreaseCoef; } float GetRainAbove() { return GetGame().GetWeather().GetRain().GetActual(); } bool IsUnderRoof() { float actual_height; bool hit; FireplaceBase.LineHit( this, 20, hit, actual_height ); //Используем готовую нативную функцию из класса FireplaceBase что бы не засорять код - функция static потому и вызов такой - FireplaceBase.LineHit return hit; } }
  9. 0 баллов
    nIkRon

    model.cfg

    @CocaineBear1 https://drive.google.com/file/d/1xKRm-9unm-cQ7bhoKwB5BXAYCZNhsTgH/edit
  10. 0 баллов
    123new

    Кикает с сервера.

    после чего беда началась? мод может какой новый появился или еще что?
  11. 0 баллов
    BorizzK

    Кикает с сервера.

    Что моддили в миссии и как?
  12. 0 баллов
    123new

    Кикает с сервера.

    в базе данных players.db себя удалить пробовали?
  13. 0 баллов
    Irkutsk86

    Помощь выгрузкой со Steam

    del
  14. 0 баллов
    123new

    Помощь выгрузкой со Steam

    2 часть архива: https://yadi.sk/d/dQhPvjFgMmSXcA как загрузите, скажите, удалю и заменю на 1-ю, т.к. более 10 гб не помещаются на яндекс
  15. 0 баллов
    BorizzK

    кикает с сервера помогите

    Вывод - надо внимательно читать логи И не забывать жмакать спасибо )))
  16. 0 баллов
    BorizzK

    кикает с сервера помогите

    Cannot create non-ai vehicle SurvivorM_Eva Вот тут проблема Не создается перс с этим класснеймом
×
×
  • Создать...

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

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

Поддержка