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

Продаёте или покупаете?

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

[FIX] Авто выкидывание игроков из взорванной техники + Удаления техники.

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

Авто выкидывание игроков из взорванной техники.

В server_updateObject.sqf
Путь: \dayz_server\compile

Найти 

_object_killed = {
	private["_hitpoints","_array","_hit","_selection","_key","_damage"];

Добавить поcле 
 

if((count crew _object) > 0) then{ { moveOut _x } forEach crew _object; };

Сохраняем, запаковываем всё обратно. 


Удаления взорванной техники.


В server_updateObject.sqf 

Найти 
 

_object_damage = {


В этом столбце после 
 

_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];

 

Добавить 
 

if ( _damage >= 1 ) then { deleteVehicle _object; };

Сохраняем.

Иногда при хорошем онлайне бывают задержки удаления техники или выкидывания игрока из сгоревшего транспорта. 



Ах да, забыл оригинал на авто выкидывания из техники игроков.  :smile: 
 

http://epochmod.com/forum/topic/42493-fix-automatically-eject-players-from-blown-up-vehicles/
Изменено пользователем RiMMON (история изменений)

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


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


Автор, исправь: "Добавить поле" 

 

на "Добавить после".

 

А то ищешь поле и не находишь  :wink:

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


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

Вот в идеале дописать бы чтобы если уж техника взорвалась, то игрок из неё уже мёртвый выпадает  :angry:

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


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

Вот в идеале дописать бы чтобы если уж техника взорвалась, то игрок из неё уже мёртвый выпадает  :angry:

Да, но ведь не всегда так происходит. Когда игрок остаётся в сгоревшей техники, у него остаётся 3-4к крови и в добавок он ещё без сознания  :smile:  

Говорят что в новом Епоче (1.0.6) это всё исправили.  

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


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

Я поставил и спасибо говорю  :smile:

И добавлю: если используете скрипт выпадения лута из уничтоженной техники, то не ставте фикс на удаление техники.

Иначе не успевает лут отспавнится, а техника уже тю-тю  :wink:

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


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

Я поставил и спасибо говорю  :smile:

И добавлю: если используете скрипт выпадения лута из уничтоженной техники, то не ставте фикс на удаление техники.

Иначе не успевает лут отспавнится, а техника уже тю-тю  :wink:

Можно банально задержку сделать.

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


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

Можно банально удаление прикрутить к скрипту выпадения лута,чтобы срабатывал уже после того, как лут вывалится. Но смысл вообще удалять уничтоженную тушку? Намного разумнее, чтобы запись из БД удалялась (особенно, у кого нет ивентов по чистке бд) с помощью функции server_deleteObj. А сгоревшая тушка, на производительность не повлияет, тем более, что после рестарта и не загрузится. Зато побудет игрокам ориентиром (вдруг за лутом своим вернуться захотят).

 

И вопрос, знатокам. В чём отличие moveOut _x; от давно используемого мной решения _x action ["eject", _object]; ? Одно и то же, по сути?

 

 

if((count crew _object) > 0) then{ { _x action ["eject", _object]; } forEach crew _object; };
 

 

Вот удаление из БД:

 

 

if (_objectID == "0") then {
    _key = format["CHILD:310:%1:",_objectUID];
} else {
    _key = format["CHILD:304:%1:",_objectID];
};

 

 

Вместо этого (удаления самой сгоревшей тушки):

 

 

if ( _damage >= 1 ) then { deleteVehicle _object; };
 

Можно и совместно использовать. Удалится и тушка и БД от записи очистится.

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

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


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

Можно банально удаление прикрутить к скрипту выпадения лута,чтобы срабатывал уже после того, как лут вывалится. Но смысл вообще удалять уничтоженную тушку? Намного разумнее, чтобы запись из БД удалялась (особенно, у кого нет ивентов по чистке бд) с помощью функции server_deleteObj. А сгоревшая тушка, на производительность не повлияет, тем более, что после рестарта и не загрузится. Зато побудет игрокам ориентиром (вдруг за лутом своим вернуться захотят).

 

И вопрос, знатокам. В чём отличие moveOut _x; от давно используемого мной решения _x action ["eject", _object]; ? Одно и то же, по сути?

 

 

if((count crew _object) > 0) then{ { _x action ["eject", _object]; } forEach crew _object; };
 

 

Вот удаление из БД:

 

 

if (_objectID == "0") then {
    _key = format["CHILD:310:%1:",_objectUID];
} else {
    _key = format["CHILD:304:%1:",_objectID];
};

 

 

Вместо этого (удаления самой сгоревшей тушки):

 

 

if ( _damage >= 1 ) then { deleteVehicle _object; };
 

Можно и совместно использовать. Удалится и тушка и БД от записи очистится.

Почему вы не написали гайд ранее? Когда всем нужно было, не кто не пишет а как только есть гайд начинаются "А вот так лучше"... :surprised: 

Я не когда не понимал таких людей. 

Если что простите  :tongue:

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


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

через раз чет у меня

Скорее всего, потому что на отспавненную до рестарта технику в инфи - это не действует.

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


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

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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: BorizzK
      Палатки пофикшены
      Ну разве что не ставятся на крест на церкви, ставятся чуть ниже
      Все чисто серверное
       
      Выложу завтра днем после небольшой доработки - что бы красиво было
       
      Вот резалт
       
       

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

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

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: Alex39
      ARMA 3 FIX V1.92/145639 NoSteam + DLC
      Выкладываю сюда так как на сайте нет отдельного раздела по пираткам клиента, так как стоит на данный момент мод @Exile.
       
      Файлы подходят для всех серверов, без исключения, только ставим свои файлы мода и сервера
    • Автор: ZigoFrend
      Нашёл одну статью на форуме ТЫК вот вам перевод. От себя скажу что у меня сервере постройки стоят уже 2-ую неделю.
       
       
      Здесь много постов с жалобами на нарушение настойчивости. На самом деле, он работает как задумано. Я знаю, что вы, вероятно, готовитесь разжечь меня прямо сейчас за это, но выслушайте меня. Я не говорю, что это хороший дизайн, на самом деле это ужасный дизайн, но технически он работает правильно. Я думаю, что часть проблемы здесь в том, что люди не понимают, как часто серверы выходят из строя. Именно сбои сервера и являются настоящей проблемой - они являются виновниками потери постоянства, а не самой системы сохранения.
      Позвольте мне показать вам, что я имею в виду. Я использовал свой собственный сервер, чтобы разместить палатку на острове Скалисты. Затем я выполнил команду taskkill / F / IM DayZServer_x64.exe, которая имитирует сбой сервера, поскольку ключ / F заставляет exe немедленно закрыться. Результат был такой:

      с последующим...

      ЭТО КЛЮЧЕВАЯ ТОЧКА ЗДЕСЬ. Я не могу сказать вам, сколько стримеров я смотрел, играя в DayZ, которые думают, что это был запланированный перезапуск.  Каждый раз, когда вы получаете красное сообщение об ошибке «Нет сообщений ...» в центре экрана, это сбой сервера, а не перезапуск, и в этот момент это означает, что сервер «потерял постоянство» состояние, потому что, если сервер возвращается без двоичных файлов (которые теперь повреждены) в папке (ях) хранения, заменяемой некоторыми файлами резервных копий, результат будет следующим:

      Я залогинился и, конечно же, палатка исчезла. Зачем? Поскольку двоичные файлы были повреждены, поэтому система загружает свежий Чернарус из файлов XML и создает новый набор файлов сохраняемости хранилища.
      Теперь давайте попробуем еще раз, на этот раз ожидаем перезапуска запланированного сервера. На моем сервере он перезапускается каждые 2 часа, поэтому я размещаю другую палатку примерно в том же месте ...

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

      Это ключевой момент, как хорошо. Это сообщение приводит вас к мысли, что это был сбой сервера, хотя на самом деле это не так.  Это был запланированный перезапуск моего сервера. Я подожду минуту, пока сервер снова включится, нажмите «Play», чтобы снова войти в систему, и ...

      ... палатка все еще там, потому что перезапуск корректно завершил работу exe, что означает отсутствие повреждения двоичных файлов (ПРИМЕЧАНИЕ: мой сервер работает в режиме реального времени, поэтому солнце установило немного, поэтому изображение выглядит несколько иначе) ,
      Смысл, который я пытаюсь здесь подчеркнуть, заключается в том, что Богемия не будет простым решением этой проблемы. Это было бы серьезным изменением того, как обрабатывается постоянство. Бинарная файловая система должна быть полностью уничтожена для чего-то другого. Вопрос в том, действительно ли Bohemia сделает это, чтобы исправить эту проблему, теперь, когда игра официально выпущена?
      Независимо от того, делают они это или нет, все вы, владельцы серверов, должны знать, что вам абсолютно необходимо регулярно создавать файлы резервных копий и восстанавливать последнюю резервную копию перед перезапуском, если вы получили сбой сервера, в противном случае вы наверняка потеряете постоянство. на вашем сервере. Если ваш GSP не позволяет вам этого делать, рассмотрите возможность переноса вашего сервера кому-то, кто разрешает игровые серверы на виртуальном сервере, что даст вам полный доступ к серверу, чтобы вы могли делать все, что вам угодно. На моем сервере у меня есть пакетный файл, выполняющий резервное копирование каждый час, поэтому наихудший случай для меня, мы должны были бы откатить 59 минут постоянства, если бы произошел сбой сервера на 59-й минуте часа перед следующей запланировано резервное копирование.
      Итак, настойчивость нарушена? Технически, нет, это не так. Он делает то, что должен делать - сохранять состояние мира на сервере и в результате коррупции загружать новый мир. Так "когда ты собираешься исправить настойчивость?" это не тот вопрос, который мы должны задавать. Реальный вопрос, который мы должны задать: почему сервер так часто падает? Выяснение сбоев сервера будет иметь большое значение для обеспечения стабильности постоянства.

       
       
       
       
    • Автор: BorizzK
      //AUTHOR: BORIZZ.K //Version 20.12.2018.0011 void PlaceAllCarsToGround() { array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; Object object; string className; int objectcount = 0; vector mapcenter = "7500 0 7500"; int radius = 20000; vector foundcar_pos; mapcenter[1] = GetGame().SurfaceY( mapcenter[0], mapcenter[2] ); GetGame().GetObjectsAtPosition(mapcenter, radius, nearest_objects, proxy_cargos); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( GetGame().IsKindOf(className, "Car" ) ) //if ( className == "OffroadHatchback" || className == "V3SVehicle" || className == "V3SChassis" || className == "CivilianSedan") { EntityAI objectEnt = EntityAI.Cast(object); if (objectEnt) { foundcar_pos = objectEnt.GetPosition(); Print("::: PlaceAllCarsToGround() ::: Found car: " + className + ", objectEnt: " + objectEnt + ", Position: " + foundcar_pos.ToString() + ", SurfaceGetNormal: " + GetGame().SurfaceGetNormal(foundcar_pos[0], foundcar_pos[2]).ToString()); //Check surface under car /* string surface_type; int liquidType; GetGame().SurfaceUnderObject(object, surface_type, liquidType); Print("::: PlaceAllCarsToGround() ::: Found car: " + className + ", objectEnt: " + objectEnt + ", surface_type: " + surface_type + ", liquidType: " + liquidType); */ if ( foundcar_pos[1] < (GetGame().SurfaceY(foundcar_pos[0], foundcar_pos[2])) - 0.1 || foundcar_pos[1] > (GetGame().SurfaceY(foundcar_pos[0], foundcar_pos[2])) + 0.1 ) { foundcar_pos[1] = GetGame().SurfaceY(foundcar_pos[0], foundcar_pos[2]); objectEnt.SetPosition(foundcar_pos); objectEnt.SetOrientation(objectEnt .GetOrientation()); objectEnt.SetDirection(objectEnt .GetDirection()); Print("::: PlaceAllCarsToGround() ::: Position changed for car : " + className + ", objectEnt: " + objectEnt + ", Position: " + foundcar_pos.ToString()); } else { Print("::: PlaceAllCarsToGround() ::: No position change required for car : " + className + ", objectEnt: " + objectEnt); } } } } } Добавить код в init.c (ВНЕ КЛАССА)
      Вызывать в конце функции main()
      Просто вставив в конце
      PlaceAllCarsToGround();
       
      P.S. Поправил код, + учел рекомендации Ультимы
      У меня на сервере с машинами все ок
       
    • Автор: STORMWAY
      Официальные серверные файлы DayZ Standalone 0.63.
       
      Официальная документация от Bohemia (на английском): https://forums.dayz.com/topic/239635-dayz-server-files-documentation/
      Перевод (на русском): 
       
       
      Скачать из Mega.Nz: https://mega.nz/#!VcUE2SDI!KzqEh791T_E-Iwaort4eVwkN5bbvaCwzjluhP0ZWZxw
      Скачать из Steam: https://store.steampowered.com/app/223350/DayZ_Server/
       
      Запуск сервера (У некоторых с этим проблемы)
       
      У некоторых пользователей, сразу возникли проблемы с запуском, а именно:
       

       
      Ошибка подобного содержания.
      Вот вам решение проблемы:
      Вам нужно, создать .bat файл в директории сервера, с этим содержанием:
      «start "" "DayZServer_x64.exe" -port=2302 -config=!ServerSettings\serverDZ.cfg -profiles=!ServerSettings -user=!ServerSettings -name=Server -freezecheck -autoinit»
      Поясняю:
      -port=2302 — Указать ваш открытый порт.
      -!ServerSettings — Папка с файлами конфигурации, базой данных игроков, настройками BattleEye и файлами логов сервера.
      P.S. Если нужно, дописываем в конце «-adminlog» для создания дополнительного файла с логами сервера формата .ADM
      Далее, создаем папку в корне сервера «!ServerSettings» про ! не забываем!
      И в эту папку переносим файл serverDZ.cfg
      Все, запускать сервер через созданный нами BAT файл.
       

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