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

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

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

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

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

[DayZ 0.60, 0.61, 0.62] Сообщения о смертях на сервере DayZ Standalone

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

В данной теме напишу простенький гайд о том, как сделать самому сообщения о смертях на своем собственном сервере DayZ.

 

Гайд пригодится тем, кто сам делает свою сборку сервера, либо по каким-то причинам пользуется не моей сборкой сервера (где это уже сделано), а чьей-либо еще. Обращаю ваше внимание на тот факт, что часть файлов, описанных в гайде, у вас могут уже быть вынесены в другое место или названы несколько иначе (это зависит от сборки сервера, которую вы используете, например, в сборке dankdayz вся mpmissions вынесена в отдельный файл в addons сервера), гайд основывается на чистых серверных файлах игры и отталкивается от них.
Гайд сделан для версий игры с серверной частью 0.60-0.62, но может быть совместим и с другими версиями игры, если файлы серверной части игры не поменяли своего текущего месторасположения и содержания. Гайд составлен по версии серверных файлов игры 0.62 чистой "девственной" и не правленой никем версии игры.

Напоминаю заранее, в моих серверных файлах версий 0.60, 0.61 и 0.62 из моих гайдов на данном форуме это уже сделано и делать это не нужно!!!

Нам понадобятся:

1. Notepad++ https://notepad-plus-plus.org/download/

2. Pbo Manager http://www.armaholic.com/page.php?id=16369

3. Ваши серверные файлы игры

 

И так, приступим.

1. Первое, что нам понадобится - достать чистые и оригинальные файлы сервера, не правленые никем, которые мы и будем изменять. Для этого открываем в серверной части игры папку "addons", находим там файл с именем "server_data.pbo", распаковываем его или открываем с помощью Pbo Manager. Получим вот такое содержимое:

 

 


acefd133cddbb6e74e8b4ad20d6d60f3.png
 

 

2. Далее открываем папку "scripts", затем "events", находим там файл "event_playerKilled.sqf" и копируем его куда-нибудь.

3. Открываем вашу "Mpmissions", далее папку с активной "MpMissions", и открываем файл "init.sqf" в Notepad++.
4. Находим в файле строки с "call compile preprocessFileLineNumbers" и строку "simulWeatherSync;"
5. Вставляем после всех "call compile preprocessFileLineNumbers" (или, если нету, после "simulWeatherSync;") следующее:

call compile preprocessFileLineNumbers "scripts\compiles.sqf";

6. Создаем в "mpmissions", если отсутствует, папку "scripts", а в ней файл с именем "compiles" в формате ".SQF". Если такой файл у вас имеется, рекоммендую имя файла "compiles" изменить на любое другое. В таком случае, его потребуется изменить и в ссылке, что мы вставляли в пункте выше, т.е. вот так:

call compile preprocessFileLineNumbers "scripts\{имя вашего файла}.sqf";

Открываем этот файл в Notepad++.
Если в файле есть данные, и вы решили не создавать новый файл, то новые строки вы будете добавлять в конце файла!

7. Добавляем в файл следующую строку:

event_playerKilled = 	compile preprocessFileLineNumbers "scripts\events\event_playerKilled.sqf";

Если такая или похожая строка там уже имелась с переменной "event_playerKilled" то вам необходимо ее удалить из файла.
8. Создаем папку "events" и помещаем в нее ранее скопированный "event_playerKilled.sqf". Если файл с таким именем у вас уже был по какой-либо причине, переименуйте его.

9. Открываем скопированный файл в Notepad++ и видим содержимое файла примерно такого содержания (пример от DayZ 0.62 на скриншоте и по тексту гайда ниже)

 

 


56999fc562db22947265dae2a74673ea.png
 

 

10. После строк:

private["_agent","_uid"];
_agent = _this select 0;
_killer = _this select 1;
_uid = getClientUID (owner _agent);

добавляем в этом файле строки

_textToAll   = "";
if (isNull _killer) then 
{
	_textToAll   = format["%1 kill yourself",(name _agent)];
}
else
{
	if (isNull _agent) then 
	{
		_textToAll   = format["Disconnected %1 kill yourself",(name _agent)];
	} else 
	{
		if (_agent == _killer) then 
		{
			_textToAll   = format["%1 kill yourself",(name _agent)];
		}
		else
		{
			if (_killer isKindOf "ZombieBase") then 
			{
				_textToAll   = format["%1 killed zombie",(name _agent)];
			} else
			{
				_kplayers = (_killer getVariable ["kplayers",0]);	
				_killer setVariable ["kplayers",(_kplayers + 1)];		
				_name_gun_killer = displayName (itemInHands _killer);
				if (_name_gun_killer == "") then { _name_gun_killer = "punch(hands)";};
				_dist_kill = ((position _killer) distance _agent);
				_textToAll   = format["%1 kill player %2 with [%3] form distance %4",(name _killer),(name _agent),_name_gun_killer,_dist_kill];
			};
		};
	};
}; 
if (DZ_Enable_Kill_Messages) then
{
	{
		[_x, _textToAll, "colorStatusChannel"] call fnc_playerMessage;
	} foreach players;
};

И сохраняем файл.

11. И последний штрих. Открываем вашу "Mpmissions", далее папку с активной "MpMissions", и открываем файл "init.sqf" в Notepad++. Добавляем в любом месте файла (лучше всего в начале или после после "simulWeatherSync;") следующее:

DZ_Enable_Kill_Messages = true; // Сообщения о смерти игроков в чат (true - включить, false - выключить)

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

 

Сам код сообщений из п. 10 гайда, логику их составления и обработки вы можете менять сами как вам угодно при наличии должных знаний в sqf-скриптинге армы. данный код является лишь примером реализации такой возможности.

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

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


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





123new  а на 0.63 не пробовал ещё замутить???в 63 server_data.pbo другой немнога( что если его перекинуть с 0.62?

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


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

mastaZz не прокатит перекидывание по одной простой причине - в 0.63 полностю убран SQF-язык, и заменен ENSCRIPT-языком чистым. Т.е. это где-то есть, но совсем в другом виде и в другом месте. Где? Где-то в scripts.pbo в dta. А вот где сказать сложно, у меня не было времени до таких сложностей доходить, пока по внутренним делам своего проекта вожусь.

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


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

123new подскажи почему у меня вот так ?

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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