Jump to content
DAYZ-CODE.RU - Создай свой игровой сервер

_MayHem_

VIP user
  • Posts

    112
  • Joined

  • Last visited

  • Days Won

    4
  • Отзыв

    0%

Everything posted by _MayHem_

  1. Маппинг не нужен, можно скриптами заменить.
  2. Для это тебе нужен Linux (Kali или подобный). Если ты готов, то я на полках у себя пошукаю... Для примера можешь использовать программу со статическим кличем
  3. Ты не прав. Посмотри статьи по инкриптингу
  4. Деобфускаторы есть. Просто поищи. Тебе главное иметь ключ обфускации
  5. Это все ваша интерпретация запроса. Я уточнил лишь моменты... В этом моде нет ничего того, что я сам не смогу сделать. Мой вопрос был в том - где его найти.
  6. Подскажите как отключить ванильную стройку на сервере? Спасибо!
  7. Всем привет! Пишу собственный мод для сервера в режиме Hard Survival. Для реализации механик, частенько заглядываю в чужие моды для просмотра реализации того либо иного. Но вот уже несколько раз скачал паки серверов с модами, что представил на скринах. В общем доступе, на тех ресурсах, что я смотрел их нет. Вопрос такой откуда люди их берут? Может где-то есть слитые варианты и т.д. Спасибо! З.Ы. - интересует именно моды с приставкой АР
  8. Не давно начал заниматься написанием собственного мода. Для примера посмотрел мод из мастерской. И столкнулся с проблемой - чем разбинарить texHeaders.bin ? Помогите пожалуйста
  9. Что входит в твою сборку (какие моды, кастомные скрипты и т.д.)?
  10. Привет всем! Пишу свой мод, задумка которого "аренда" домов. Для удовбства использую яблока как клас который можно будет потом заменить. И вот запутался. Столкнулся с тем, что при соблюдении всех условия (яблоко в руках), меню взаимодействия с объектом нет. Помогите разобраться. Структура мода: @HouseLockSystem ├── Config.cpp ├── meta.cpp └── Scripts └── 4_World ├── HouseCore.c ├── HouseApple.c ├── HouseWrench.c └── HouseDoors.c Config.cpp class CfgMods { class HouseLockSystem { dir = "HouseLockSystem"; name = "House Lock System"; author = "https://steamcommunity.com/profiles/76561199218849472/"; version = 2.1; dependencies[] = {"Game", "World", "Mission"}; class defs { class gameScriptModule { files[] = {"HouseLockSystem/Scripts/4_World"}; }; class worldScriptModule { files[] = {"HouseLockSystem/Scripts/4_World"}; }; class missionScriptModule { files[] = {"HouseLockSystem/Scripts/4_World"}; }; }; }; }; class CfgScripts { class HouseLockSystem_Init { postInit = 1; init = "HouseLockSystem\Scripts\4_World\HouseCore.c"; }; }; HouseCore.c class HouseCore { protected static ref HouseCore m_Instance; protected ref map<string, ref HouseData> m_Houses; protected ref map<string, ref BreachData> m_Breaches; protected string m_DataFile = "$profile/HouseData.json"; // Singleton static HouseCore Get() { if (!m_Instance) m_Instance = new HouseCore(); return m_Instance; } void HouseCore() { m_Houses = new map<string, ref HouseData>(); m_Breaches = new map<string, ref BreachData>(); LoadData(); ScheduleChecks(); } void ScheduleChecks() { GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(CheckHouseExpiry, 30000, true); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(CheckBreachProgress, 1000, true); } void CheckHouseExpiry() { int currentTime = GetGame().GetTime(); foreach (string houseID, HouseData data: m_Houses) { if (currentTime > data.m_ExpireTime) ReleaseHouse(houseID); } } void CheckBreachProgress() { int currentTime = GetGame().GetTime(); foreach (string houseID, BreachData data: m_Breaches) { if (currentTime - data.m_StartTime > 1200) CompleteBreach(houseID); } } void ReleaseHouse(string houseID) { if (m_Houses.Contains(houseID)) { OpenAllDoors(m_Houses.Get(houseID).m_Position); m_Houses.Remove(houseID); SaveData(); } } void CompleteBreach(string houseID) { if (m_Breaches.Contains(houseID)) { OpenAllDoors(m_Houses.Get(houseID).m_Position); m_Breaches.Remove(houseID); } } string GenerateHouseID(vector pos) { return pos.ToString().Substring(0, 16); } bool ClaimHouse(PlayerBase player, vector pos) { string uid = player.GetIdentity().GetId(); string houseID = GenerateHouseID(pos); if (m_Houses.Contains(houseID)) { player.MessageAction("Дом уже занят!"); return false; } if (GetPlayerHouseCount(uid) >= 1) { player.MessageAction("Можно иметь только 1 дом!"); return false; } m_Houses.Insert(houseID, new HouseData(uid, GetGame().GetTime() + 604800, pos)); SaveData(); return true; } void StartBreach(PlayerBase player, vector pos) { string houseID = GenerateHouseID(pos); if (!m_Breaches.Contains(houseID)) { m_Breaches.Insert(houseID, new BreachData()); } } }; HouseApple.c modded class Apple { override bool CanBeTargeted() { return true; } override string GetActionText(Object target) { if (target.IsInherited(Building)) return "Закрепить дом"; return super.GetActionText(target); } override void OnAction(PlayerBase player, Object target, int action) { super.OnAction(player, target, action); if (action == UA_USE && target.IsInherited(Building)) { vector pos = target.GetPosition(); if (HouseCore.Get().ClaimHouse(player, pos)) { player.MessageAction("Дом зарезервирован на 7 дней!"); Delete(); } } } }; HouseWrench.c modded class Wrench { override bool CanBeTargeted() { return true; } override string GetActionText(Object target) { if (target.IsInherited(Building)) return "Взломать (20 мин)"; return super.GetActionText(target); } override void OnAction(PlayerBase player, Object target, int action) { super.OnAction(player, target, action); if (action == UA_USE && target.IsInherited(Building)) { HouseCore.Get().StartBreach(player, target.GetPosition()); player.MessageAction("Начался процесс взлома..."); } } }; HouseDoors.c modded class Building { override bool CanInteractWith(PlayerBase player, ActionTarget target) { HouseCore core = HouseCore.Get(); string houseID = core.GenerateHouseID(GetPosition()); // Для владельца if (core.m_Houses.Contains(houseID) && core.m_Houses.Get(houseID).m_OwnerUID == player.GetIdentity().GetId()) { return true; } // Для взломщиков if (core.m_Breaches.Contains(houseID)) { return true; } return super.CanInteractWith(player, target); } override void CloseDoor(int index) { super.CloseDoor(index); HouseCore.Get().SaveDoorState(GetPosition(), index, true); } override void OpenDoor(int index) { super.OpenDoor(index); HouseCore.Get().SaveDoorState(GetPosition(), index, false); } };
×
×
  • Create New...