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

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

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

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

    Там вы можете продать или купить
    Всё что касается игровых серверов
123new

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

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

В данной теме я распишу мой вариант установки сейвзоны, работающий на момент публикации статьи на версии сервера игры 1.0.150000.

 

Установка

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_LOACTION' - координаты точки центра сейвзоны.

'SAFEZONE_RADIUS' - радиус от указанного центра севзоны, на котором действует защита

'ENTRY_MESSAGE' - сообщение о входе в зону (не рекоммендуется указывать русский язык, может не отображаться)
'EXIT_MESSAGE' - сообщение о выходе из зоны (не рекоммендуется указывать русский язык, может не отображаться)
5. Распаковываем в папку с сервером в корень вот этот архив:

6. В параметры запуска сервера добавляем:

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

-mod=ModdedScripts -FilePatching

7. Запускаем сервер и проверяем.

 

Для совсем ленивых готовая миссия сервера с настроенной сейвзоной. 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

  Пункты 5-7 из инструкции выше после этого необходимо повторить, иначе годмод работать не будет!!!

 

P.S. Если у вас в корне сервера лежала папка scripts и она читалась сервером, после этого она может перестать считываться!

P.P.S. Да, да, за основу взята сборка от DaOne, и по тому же принципу сделана и safe-zone с незначительными изменениями. За что ему огромное спасибо. Более корректной реализации метода God-Mode не встречал.

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

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


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


EvGeNu4 вскрывать мод, вписывать в него изменения, запаковывать назад, перегенерировать ключи и подписи для нового мода, рассылать обновление игрокам. Увы, иного варианта, как я понял, Bohemia не предусмотрела

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


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

Привет стоит админка от ZomBerry, бессмертие не работает. Что-то конфликтует?

 

Только что пробовал без модов, только с Modded Scripts, бессмертие все равно не работает...

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

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


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

rNk1337 сочувствую, ставь начисто без лишних модов, и по очереди нужные подключай, выяснишь что конфликт вызывает. Ну а далее ... переписка этого мода вручную и объединение 2 модов в 1.

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


Ссылка на сообщение
Поделиться на других сайтах
49 минут назад, EvGeNu4 сказал:

123new Так год мод не работает? из оружия все равно убивает...

идеально? нет конечно. Можете попробовать сами написать более идеальный вариант работы мода.

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

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


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

NoNameUltima ну или мод трейдера перекапывать, но что-то мне подсказывает в таком случае без добавления на клиент мода не обойтись.

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


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

На одном сервер подсмотрел, что в сейфзоне если взять огнестрел в руки — он выкидывается на землю. В принципе, тоже решение.

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, elanc сказал:

На одном сервер подсмотрел, что в сейфзоне если взять огнестрел в руки — он выкидывается на землю. В принципе, тоже решение.

а если извне сейв-зоны по тебе шьют очередями?)

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


Ссылка на сообщение
Поделиться на других сайтах
В 1/28/2019 в 07:37, 123new сказал:

NoNameUltima ну или мод трейдера перекапывать, но что-то мне подсказывает в таком случае без добавления на клиент мода не обойтись.

Тоже была такая мысль, но как писали выше, скорее всего без мода на клиент не обойтись.

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


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

@123new и в чем проблема?

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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


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

@123new и в чем проблема?

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

вот в этом файле

Безымянный.png

неожиданно, правда?

сервер пишет конкретный файл и строку, вызвавшую проблему. надо эти строки смотреть.

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


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

@123new так я по инструкции ставил, что тогда смотреть, в чем проблема может быть.

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

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, inQ4 сказал:

@123new так я по инструкции ставил, что тогда смотреть, в чем проблема может быть.

значит с ошибками ставили, раз такие вещи возникают.
Проблема может быть в указанных в той ошибке строках в указанных в той ошибке файлах.
Выкладывайте скрины этих указанных файлов на этих строках, будем смотреть. ну или чистая миссия сервера на текущей 1.0 с этим скриптом уже, если уж совсем, как говорится, 'руки из жопы' (извиняюсь за прямоту): 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

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


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

@123new как только посмотрел на твой .rar - сразу понял в чем проблема. папка "Scripts" в корне -dayzOffline.chernarusplus, а не в "mpmissions".

извольте сударь, но Ваше упущение.) но за отзывчивость спасибо. 

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


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

@123new как только посмотрел на твой .rar - сразу понял в чем проблема. папка "Scripts" в корне -dayzOffline.chernarusplus, а не в "mpmissions".

извольте сударь, но Ваше упущение.) но за отзывчивость спасибо. 

до такой тупости я еще не додумываося О_о

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


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

@123new только вот она не работоспособна, только вывод сообщений. к сожалению, зомби дамажат, люди тоже, от падения высоты тоже не спасает, как и суицид. 

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


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

@123new только вот она не работоспособна, только вывод сообщений. к сожалению, зомби дамажат, люди тоже, от падения высоты тоже не спасает, как и суицид. 

вы мне в 7 раз предлагаете тему проверять и ставить одно и то же? Повторяю, на момент написания гайда все работало, зомби не дамажили.

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


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

Проверил в очередной раз мод, все работает. Сверяйтесь с гайдом. Немного обновил файл мода для корректности. Зомби не наносят урон.

Из минусов:

1. наверняка можно убить миной

2. возможно нанесение критического урона (а-ля хедшот) нанесет смерть игроку

По крайней мере из того что я понял.

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

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Miduznya
      Люди помогите кто знает, перепробовал множество вариантов
      ехе качал с сайта ragezone который типа переделан и в нем не работает БЕ
      но если зайти на сервер и выключить БЕ на клиенте через лаунчер, с сервера кикает, так что этот вариант не рабочий
      battleye = 0; тоже ничего не дает, кикает с сервера тоже.
      если не хотите тут можно и в лс , буду рад любой помощи.
    • Автор: Miduznya
      Собственно как, как отключить battleye на сервере античит

      параметр BattlEye=0; не работает я так понял 
    • Автор: 123new
      Здравствуйте, дорогие друзья и посетители сайта. В данной теме я распишу как создать свой "чистый" сервер на основе первых официальных серверных файлов игры, доступных каждому в steam для тех, кто приобрел эту замечательную игру. Для тех, кто не приобретал ее, не расстраивайтесь, добавлю зеркала на файлы.
      И так, приступим.
       
      Нам понадобятся:
      1. Официальные серверные файлы игры со steam ссылки на файлы имеются в теме:
      Копия Server Files от меня на момент публикации статьи (версия сервера игры 1.0.149923):  https://mega.nz/#!Pu50WKaY!K2LlvflSsHJj3-xWvoyMxYd4Prt-IPbO5Hy7YErZBBU
      Копия Server Tools от меня на момент публикации статьи (версия сервера игры 1.0.149923): https://mega.nz/#!7ugEkCZb!2sVV5n9Qssyd2NlUj4491bp8-NNXNAY9itY7GiAnCtQ
      Скачать можно и через SteamCMD:

      2. Официальный клиент игры из steam:
      https://store.steampowered.com/app/221100/DayZ/
      Зеркало на DayZ Client версию клиента игры 1.0.149923 на момент публикации: https://mega.nz/#!C3AHlAjK!5FOv8ZeXB8pS085ff1jkCoFQCr4uAr7bMs827u95Dls
      3. "Настроенная конфигурация серверной части игры" и батник для старта сервера:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      4. Notepad++ https://notepad-plus-plus.org/download
      И так, приступим.
      1. Распаковываем скачанные серверные файлы игры в отдельную папку
      2. Распаковываем архив с "Настроенной конфигурацией серверной части игры" в папку с серверными файлами
      Получим что-то типа такого

      Если вам необходимо, настраиваем cfg-файлы сервера вручную сами, как вам необходимо, информация по его настройке есть в теме во 2 ее сообщении
      Открывать cfg файлы через Notepad++.
      Ккомментарии по CFG файлам Battleye ниже:
      где 12345678 - rcon-пароль сервера
      500 - максимальный пинг, разрешенный battleye на сервере игры (не уверен, что работает)
      RestrictRCon 0 - подключение с rcon-клиентов с правами кика и бана игроков(например, dart и bec)(0 - разрешено все, 1 - запрещен кик и бан, только отправка в чат)
      По остальным настройкам и файлам читайте комментарии в файлах и в теме:
      3. Запускаем !!!Start_server.bat и наш сервер запустится
      4. Запускаем клиент игры со steam, находим наш сервер вручную по ip и порту, либо имени сервера.
      Если сервер запущен на том же компьютере, где и игра, и на стандартном порту 2302, то поумолчанию поиск выполняется по 127.0.0.1:2302
      Если сервер запущен на другом компьютере, то вместо 127.0.0.1 будет ip адрес компьютера, где запущен сервер, или его доменное имя. Например, myserver.com:2302 или 178.123.22.12:2302
      ВАЖНО: если сервер запущен на другом компьютере, отличном от компьютера где запущена игра, то для доступа на сервер игроков необходимо иметь "внешний" выделенный ip-адрес и открытый порт сервера!
      5. Для выключения сервера рекоммендуется пользоваться !!!Server_kill.bat файлом, созданным в соответствии с рекоммендациями разработчиков игры и официальной документацией.
       
      Для совсем "ленивых" запаковал уже настроенный сервер в архив с версией игры 1.0.149923:
      https://mega.nz/#!W3QhECTR!4m0hf8KGrL6a36Vo-6GY93vXCNfrbDraSIv3FrPgcrM
       
      Настраивайте лишь config сервера, battleye и bat-файл запуска сервера, и можете играть.
       
      Crack SmartSteamEmu v. 1.4.3 данной версии клиента игры и сервера:
      Скачать с Zippyshare.com: https://www64.zippyshare.com/v/mHmPweqg/file.html
      Скачать с Mega.nz: https://mega.nz/#!rnZBXK4b!KRrJm6obcJjUlzMpEPNQ3R8sy2z0pP-0Myb_ao4TVhg
      Скачать с yandex.disk: https://yadi.sk/d/4xSF1dSt6XN41g
      Инструкция по установке есть в архиве, дублирую:
       
      Для работы Battleye используйте ip-адрес и порт сервера, и любой rcon-клиент с паролем из BEServer_x64.cfg
      Для работы BEC делайте Battleye config файл BEServer.cfg идентичным по содержанию BEServer_x64.cfg иначе программа не будет работать!
      База данных (storage) теперь хранится по пути: mpmissions\dayzOffline.chernarusplus\storage_{номер instance с cfg сервера}
      В базе данных также хранится файл с сохранениями игроков на сервере с именем players.db
       
      Вот и все, приятной игры на сервере!
       
       
    • Автор: Peresvet
      нипанимайу. как сменить карту на сервере?
    • Автор: BorizzK
      Все вопросы на этот счет сюда
      Все решения, если есть, то же можно сюда
      Начало обсуждения тут
       
       
×
×
  • Создать...