Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
123new

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

Recommended Posts

В данной теме напишу простенький гайд о том, как сделать самому сообщения о смертях на своем собственном сервере 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-скриптинге армы. данный код является лишь примером реализации такой возможности.

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites



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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By magliner
      Привет ! Ну вот моя история с вопросом в конце.. Я фанат Дэйз ванилы черноруси, заколебало сидеть на бездушных серверах со слабой админкой и терять лут от софтеров, решил создать под свои скромные запросы около ванильный сервер.. Нашел хорошего исполнителя, быстро и четко запустили отладили и ВОТ я имею СВОЙ сервер.. клас! вечер восторга и изучения
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By SemKa1407
      Ссылка на архив: https://disk.yandex.ru/d/WmYW5AcZozGSiA
      Инструкция, написанная на коленке, есть в архиве (для полных нулей).
    • By Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • By radical
      Доброго времени суток! Хотел вот поинтересоваться, плюс по возможности чтобы растолковали что к чему.
      Суть вопроса: хочу на сервер сделать те же самые ванильные вещи, но, кхм, размер клеточек у ванильных по меньше прописать, чтоб в инвентаре поместились. Как это сделать я примерно понял, config.cpp я поправлю, но встал вопрос ребром:  но кроме этого файла, что надо делать. Вопросов много появляется, а в интернете информацию сложно накопать. Решил попросить помощи у знающих людей.
      1. По возможности хотелось бы от начала до конца увидеть весь путь изменения одного ванильного предмета
      2. Из просьбы что выше появляется вопрос: с остальными ванильными предметами такое же решение делать? ( Это при условии, если тема 1 решится)
       
      P.S. Если будут какие то файлы, ссылки, да даже просто объяснения, это меня сдвинет с мёртвой точки, а то завис)
    • By fedotovyasha
      Где можно достать карту в очень высоком разрешении, все в интернете такого себе качества. Хочу сделать свою карту
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.