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

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

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

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

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

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


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

Отображаются публикации с наибольшей репутацией на 11/29/18 во всех областях

  1. 1 балл
    123new

    [DayZ 0.63] Создаем Сейвзону на сервере

    В данной теме я распишу мой вариант установки сейвзоны, работающий на момент публикации статьи на версии сервера игры 0.63.149525. Установка 1. Открываем 'init.c' в 'MpMissions' вашей. 2. Вверху файла добавляем 1 строкой: #include "$CurrentDir:\\mpmissions\\dayzoffline.chernarusplus\\Scripts\safezone.c" ref SafeZone_PlugIn SafeZone = new SafeZone_PlugIn(); Где 'dayzoffline.chernarusplus' - имя папки с активной 'MpMissions' вашей. Пример: 3. В этом же файле находим блок начала класса 'CustomMission: MissionServer' и в его начале после открытия класса добавляем bool Activate_SafeZone_PlugIn = true; // safezone on (true) or off (false) override void TickScheduler(float timeslice) { GetGame().GetWorld().GetPlayerList(m_Players); if( m_Players.Count() == 0 ) return; for(int i = 0; i < SCHEDULER_PLAYERS_PER_TICK; i++) { if(m_currentPlayer >= m_Players.Count() ) { m_currentPlayer = 0; } PlayerBase currentPlayer = PlayerBase.Cast(m_Players.Get(m_currentPlayer)); if (Activate_SafeZone_PlugIn) { SafeZone_PlugIn.CheckingPosition(currentPlayer); } //Check if player is near safezone currentPlayer.OnTick(); m_currentPlayer++; } } Пример: 4. Создаем папку 'Scripts' в корне 'MpMissions' вашей, а в ней создаем файл с именем 'safezone.c' следующего содержания: class SafeZone_PlugIn { protected static vector SAFEZONE_LOACTION = "15145.1 32.9793 13919.0"; //Map coords (position of the safe zone) protected static float SAFEZONE_RADIUS = 100; //In meter protected static string SAFEZONE_ENTRY_MESSAGE = "Welcome to The SafeZone! Godmode ENABLED!"; protected static string SAFEZONE_EXIT_MESSAGE = "You Have Left The SafeZone! Godmode DISABLED!"; //Runs every tick (Stat time tick!) IMPORANT: Does reduce about 120 FPS when server is High-Full Pop! static void CheckingPosition(PlayerBase player) { private float SAFEZONE_distance; private string SAFEZONE_ZoneCheck, SAFEZONE_UID_PLAYER, SAFEZONE_NAME_PLAYER; SAFEZONE_NAME_PLAYER = player.GetIdentity().GetName(); SAFEZONE_UID_PLAYER = player.GetIdentity().GetPlainId(); //Steam 64 private Param1<string> SAFEZONE_Msgparam; private vector SAFEZONE_pos_player = player.GetPosition(); private vector SAFEZONE_LOCATION_FIXED = CorrectToGroundPosY(SAFEZONE_LOACTION); private string name_mesage_profile = "GodModeEnabledFor:" + SAFEZONE_UID_PLAYER; SAFEZONE_distance = vector.Distance(SAFEZONE_pos_player,SAFEZONE_LOCATION_FIXED); if (SAFEZONE_distance <= SAFEZONE_RADIUS) //Player Inside Zone { SAFEZONE_ZoneCheck = ""; GetGame().GetProfileString(name_mesage_profile,SAFEZONE_ZoneCheck); if (SAFEZONE_ZoneCheck == "true") //Already in zone { return; } else { GetGame().SetProfileString(name_mesage_profile,"true"); Print("[SafeZone] " + SAFEZONE_NAME_PLAYER + " (" + SAFEZONE_UID_PLAYER + ") Enter in safeZone in position: " + SAFEZONE_LOCATION_FIXED.ToString()); SendPersonalMessage(SAFEZONE_ENTRY_MESSAGE, player); } } else if (SAFEZONE_distance > SAFEZONE_RADIUS) //Player Outside of Zone { SAFEZONE_ZoneCheck = ""; GetGame().GetProfileString(name_mesage_profile,SAFEZONE_ZoneCheck); if (SAFEZONE_ZoneCheck == "false") { return; } else { if (SAFEZONE_ZoneCheck != "") { GetGame().SetProfileString(name_mesage_profile,"false"); Print("[SafeZone] " + SAFEZONE_NAME_PLAYER + " (" + SAFEZONE_UID_PLAYER + ") Left safeZone in position: " + SAFEZONE_LOCATION_FIXED.ToString()); SendPersonalMessage(SAFEZONE_EXIT_MESSAGE, player); } else { return; } } } } static vector CorrectToGroundPosY(vector pos) { private float pos_x = pos[0]; private float pos_z = pos[2]; private float pos_y = GetGame().SurfaceY(pos_x, pos_z); private vector tmp_pos = Vector(pos_x, pos_y, pos_z); return tmp_pos; } static void SendPersonalMessage(string message, PlayerBase casted_player) { Man player; Class.CastTo(player, casted_player); if(( player ) && (message != "")) { Param1<string> m_GlobalMessage = new Param1<string>(message); GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_GlobalMessage, true, player.GetIdentity()); } } } Ну или скачиваем его отсюда в готовом виде: safezone.c Здесь: 'SAFEZONE_LOACTION' - координаты точки центра сейвзоны. 'SAFEZONE_RADIUS' - радиус от указанного центра севзоны, на котором действует защита 'ENTRY_MESSAGE' - сообщение о входе в зону (не рекоммендуется указывать русский язык, может не отображаться) 'EXIT_MESSAGE' - сообщение о выходе из зоны (не рекоммендуется указывать русский язык, может не отображаться) 5. Распаковываем в папку с сервером в корень вот этот архив: ModdedScripts.rar 6. В параметры запуска сервера добавляем: -mod=ModdedScripts 7. Запускаем сервер и проверяем. Для совсем ленивых готовая миссия сервера с настроенной сейвзоной. dayzOffline.chernarusplus.rar Пункты 5-7 из инструкции выше после этого необходимо повторить, иначе годмод работать не будет!!! P.S. Если у вас в корне сервера лежала папка scripts и она читалась сервером, после этого она может перестать считываться! P.P.S. Да, да, за основу взята сборка от DaOne, и по тому же принципу сделана и safe-zone с незначительными изменениями. За что ему огромное спасибо. Более корректной реализации метода God-Mode не встречал.
  2. 1 балл
    BorizzK

    [Dayz 0.63] Миссия и Админка в игре

    123new Сервера можно подключить к своей mysql базе и все будет храниться в ней и к ней можно подключить несколько серверов функционал такой в движке точно есть но вот как это реализовать - фиг знает P.S. class Hive { proto native void InitOnline( string host = "" ); proto native void InitOffline(); proto native void InitSandbox(); proto native void SetShardID( string shard ); proto native void SetEnviroment( string env ); proto native void CharacterSave( Man player ); proto native void CharacterKill( Man player ); proto native void CharacterExit( Man player ); proto native void CallUpdater( string content ); }; proto native Hive CreateHive(); proto native void DestroyHive(); proto native Hive GetHive(); Если кто-то делал такое для 0.62, то с большой долей вероятности в 0.63 аналогично
×
×
  • Создать...

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

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

Поддержка