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

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

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

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

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

DayZ Standalone v0.62.142963 Server Files + рабочий респавн персонажа и лута

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

Смотрел сейчас сервер 123new (0.59)

Обратил внимание, что в файле description.ext

есть такой кусок кода:

class CfgSounds
{
    sounds[] =
    {};
    class introSong
    {
    name="introSong";
    sound[]={soundtr.ogg,0.5,1};
    titles[] = {};
    };
};

При входе в игру проигрывает мелодию с ходячих.

Перенос кода и файла с мелодией в 0,62 ничего не дал.

Что-то необходимо сделать еще или не поддерживается вызов CfgSounds?

 

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


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

Splinter тоже пробовал, не выходило. И судя с девблогов по 63 патчу проскользнула мысль, что это пока не работает. но могу ошибаться.

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


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

123new 

Splinter 

 

С 60го патча вроде поддержку проигрывания музыки убрали

 

Ну а пока

Требуется помосЧ в решении вышеуказанной задачки по поиску машин )))

 

В SpawnCars.sqf в процедуре fnc_spawnCar в начале после чтения переменных

 

fnc_spawnCar =
{
 _SelectedLine = _this;
 _selected_type_car = _this select 0;
 _selected_point_car = _this select 1;
 _selected_items_car = _this select 2;
 _count_incar_loot = 0;
 _count_aroundcar_loot = 0;

 diag_log format [" SpawnCar: Defined type car: %1. Look for %1 with initial position %2",_selected_type_car,_selected_point_car];
 

Вставил

 

 {
  if ((typeOf _x) in _selected_type_car) then // проверяем тип найденого обьекта на предмет соответствия типа машины из массива

  {

   //если соттветствует выполняем код тут
   diag_log format [" SpawnCar: Found car %1 on server - object %2",_selected_type_car,_x];
  };
 } forEach (allMissionObjects "");

 

скрипт целиком пеерстает выполняться (((

 

 

Например мы получаем в _x CivilianSedan:2:2 и в переменной _selected_type_car - CivilianSedan

 

Значит if ((typeOf CivilianSedan:2:2) in CivilianSedan) then

{

 должен выполниться код

};

 

Но где-то что-то не работает

 

Код выполняется до первого diag_log который после переменных

и все

 

С палатками такое работает же

 

 

Все - разобрался

if ((typeOf _x) in _selected_type_car) - _selected_type_car должен быть определен как массив!

 

Например вот так

 

if ((typeOf _x) in [_selected_type_car]) если   _selected_type_car = "CivilianSedan";

 

 

 

 

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

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


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

BorizzK верно. если необходимо сравнивать с именно _selected_type_car то корректнее будет так сравнивать:

if ((typeOf _x) == _selected_type_car)  then

 

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


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

123new 

Точно

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

 

Получили в _x обьект с карты, сравнили с нужным типом, он совпал, затем

_carposition = _x getVariable ["CARPOSITION"];

Теперь нужно грамотно убедиться что _carposition определена и не пустая

 

If (!isNill "_carposition") then {

  if (!isNull _carposition) then {

    //переменная не пуста и готова к сравнению

//если на сервере не обнаружится такого же обьекта и координаты из переменной _carposition не совпадут с сохраненными в свойствах обьекта, то будет запущен процесс спавна

  };

};

 

Тк не за компом, то теоретизирую

Думаю, как грамотно сделать последовательность проверок

 

 

 

 

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


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

BorizzK хмм, интересная идейка, может и проканать.

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


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

123new 

изменил названия переменных (для удобства)

во время первого спавна машины

_car_in_server setVariable ["INITCARPOS",_selected_point_car]; //прописали исходное место спавна

 

в последствии перед запуском процедуры спавна получаем в процедуре в _x обьект с сервера - forEach (allMissionObjects "");

затем проверяем тип

если совпал

 

_init_car_position = _x getVariable "INITCARPOS";

 

теперь надо проверить определена переменная и пустая переменная или нет и если определена и не пустая, то сравнить координаты по которым планируется спавн с полученными в _init_car_position, если  совпали то по этим координатам не спавним пропускаем спавн с этими координатами, а если ниразу не совпали, то запускаем процедуру спавна

 

и вот что-то у меня с этим затык .... что-то никак не соображу как организовать проследовательность проверок....

 

If (!isNil "_carposition") then {

  if !(isNull _carposition) then {

   if (_selected_point_car == _init_car_position) then {

 

   };

  };

};

 

ща сяду на бумаге алгоритм нарисую...

 

А теперь странно, не сохраняется доппеременная в свойствах в базе...

 

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

типа _all_vars = _x getVariable *;

 

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

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


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

BorizzK такого не встречал. Может и есть, но скверно в этой верится.

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

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

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


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

123new Ну вот сейчас так и сделаю

 

ЧИстый это dbInitEconomy [false]; ?

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

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


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

123new Неа

Не арбайтен

если dbInitEconomy [false];

 

то

 

2018/04/03, 22:02:24 LoadHost primary: https://lb01-bis.multiplay.co.uk:8080/
2018/04/03, 22:02:24 Trying to initialize environment from primary host ...
2018/04/03, 22:02:26 Enviroment init failed...

 

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


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

BorizzK попробуй так

dbInitEconomy ["блаблабла"]; 

по сути то же самое, что и dbInitEconomy [false];  но указывается фейковый несуществующий хост, данные с которого бд не читает также.

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


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

123new 

Вобщем поэксперементировал

То сохраняет переменную в свойствах обьекта, то нет

Хрен знает

 

Пока накатал проверку есть ли такая машина в радиусе 50м (скрипт прилагаю), и если есть, спавн пропускаем, кривовато немного, зато просто.

Заодно убрал спавн волги на сз в палаточном под тентом, тк ее разворачивает и она руинится.

Надо еще автобус из ангара пожарки убрать.

 А дальше буду выяснять и думать...

 

 

 

 

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

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

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


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

Я правильно понимаю?:

Если включить _Enable_SPAWNER_CARS = true;

и заменить SpawnCars.sqf на Ваш, то машины будут спауниться постоянно, но c одной поправкой, не друг в друга, а с учетом существующей на этом месте другой машины?

 

Если так, то можно ли сделать что-то вроде конфига от 0,59 патча?

MAX_CAR = 70;
Чтобы можно было регулировать кол-во машин на сервере.

 

Или такой пример:

Max_Niva = 30;

Max_Volga = 30;

Max_Bus = 10;

Max_Cargo = 10;

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

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

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


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

Splinter 

SpawnCars.sqf спавнит машины ДОПОЛНИТЕЛЬНО к тем которые спавнит сам движок игры

Движок спавнит максимум по 5 машин каждого вида на сервер, те максимум 25 машин

 

SpawnCars.sqf спавнит машины согласно указанным в массиве - там просто все

2 массива

1й это обвес машины (колеса, двери)

2й сама машина, координаты, и переменная содержащая обвес машины)

 

В оригинальном SpawnCars.sqf скачанным с сервером или миссией есть ошибка - нивы спавнятся разобранные - в моем варианте я это исправил

Машины пытаются спавнится при каждом рестарте постоянно, но если в радиусе 50м от координаты спавна УЖЕ есть авто такого типа, то спавна в этом месте не будет

 

P.S. Большое кол-во машин сильно нагружает сервер, особенно когда на них передвигаются

P.S.2. Подсчет машин и ограничение спавна машин в этом скрипте запилю сегодня к вечеру

 

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

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


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

BorizzK ну спавн по проверке в 50 метрах от точки спавна тоже не корректен, т.к. если машинку игрок увезет с точки, то со след рестартом там новая появится. А теперь давай представим, что сервер популярный, игроки прознали точку с наличием тачки. И каждый рестарт уводят тачку к себе. Соответственно прикинь, сколько машин станет рестартов через 10-15 на сервере)).

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

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

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


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

123new 

да, это понятно, но, можно добавить подсчет машин

20 в3с

20 волг и тп

и если вдруг в3с_карго стало 19 - спавним 1штуку рандомно из набора

 

 

 

 

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


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

BorizzK ну это да. Впрочем, подсчет машин можно сделать и более корректно, поиском из всех объектов сервера нужных типов и подсчетом банальным. Причем при желании и координатки можно записать себе, и прочее, и никаких variables тут не потребуется)

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

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


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

123new Это я в курсе

Я перелопачу твой SpawnCars.sqf

Разделю массивы и вызовы на спавн каждого типа

и сделаю подсчет

 

 

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


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

123new 

Ты не пытался пока смотреть, что к чему с camcreate итп?

Пообщелася кратко с челом который имел отношение к 420gaming

Грит эффекты камеры все писаны на sqf, а не на enscript. Грит сам видел.

 

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


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

BorizzK да то понятно, что не на enscript. Примеры надо искать в армовских скриптах.
Пока не пытался, да и времени нету, на работе гемороя своего хватает.

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


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

BorizzK не мучайся с тачками, вот тебе вполне себе рабочий скрипт спавна и доспавна авто.

 

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

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

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


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

123new Ну, я то же самое начал делать, но по другому, учитывая вообще все машины на сервере

Мне интересен сам процесс

 

1 макс кол-во каждого типа машин - отдельные переменные

2 массивы запчастей для каждой машины

3 массивы машин с координатами

4 подсчет каждого типа машин на сервере - например _civsedan_server_count = count (allMissionObjects "CivilianSedan");

 

далее

если волг на сервере меньше чем макс

идет вызов процедуры проверки и вызова спавна с передачей массива волги

(процедура проверки и вызова проверяет нет ли машины поблизости и вызывает спавн машины если ее там нет - те уехала)

 

далее то же для нивы

для баса

для V3S_Chassis

для V3S_Cargo (с кузовом)

 

оттестирую и выложу

 

P.S.

4170.73, 11103 - это координаты под тентом  на сз- попробуй заведи )))

 

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

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


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

BorizzK то что ты описал именно все и сделано, и именно так. Разве что  количество техники каждого типа в переменную не вынесено, а в массиве задается.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: Troy1
      Всем привет. пишу мод и столкнулся с проблемой в реализации.
      Суть: Пытаюсь сделать проверку, если игрок стоит прям у окна или у дверного проёма он должен получать урон.
      Делал вот так.
      int wallHits = 0; float d = 2.2; // Дистанция до стены. Если стена дальше — считаем, что там окно или проем. // 8 направлений "снежинкой" для проверки стен вокруг игрока // Используем Vector(x, y, z) для точности ref array<vector> checkDirs = { Vector(d,0,0), Vector(-d,0,0), Vector(0,0,d), Vector(0,0,-d), Vector(d,0,d), Vector(-d,0,-d), Vector(d,0,-d), Vector(-d,0,d) }; foreach (vector dir : checkDirs) { // Пускаем горизонтальные лучи от позиции игрока (from) if (DayZPhysics.RayCastBullet(from, from + dir, collisionLayerMask, this, hitObject, hitPosition, hitNormal, hitFraction)) { // ПРОВЕРКА: Это должна быть вертикальная стена (Y нормали < 0.5) // Чтобы не засчитать низкий потолок за стену if (Math.AbsFloat(hitNormal[1]) < 0.5) { wallHits++; } } } // УСЛОВИЕ БЕЗОПАСНОСТИ: // В комнате wallHits будет 6-8. У окна или в проеме — 1-4. if (wallHits < 5) { hasSafeCeiling = false; // Слишком открытое пространство (окно/дверь) } Пытался менять дистанции, но всё ровно не как не хочет работать.
      Что я делаю не так, или я вообще делаю не то?
      Мне нужно проверять игрока, в укрытии он или нет.
      С высотой я разобрался, а вот с боковыми лучами у меня траблы и не во всех помещениях работает как нужно.
      В некоторых помещениях вообще не работает, удаляешь строки проверки, начинает работать и то по высоте.
      Просто забегаешь по навес и игрок под защитой, так не должно быть.
      Помогите пожалуйста  решить задачу.
    • Автор: Troy1
      Всем привет. Суть в чём, пишу мод на событие и когда происходит событие, параллельно должна меняться скорость ветра, не могу понять как заставить скрипт управлять силой ветра. Понижать силу ветра получилось сделать, а вот повышать не как. Только после перезагрузки сервера сила ветра задаётся в нужном значение.
      Как сделать, что бы по вызову функции менялась сила ветра в большую или в меньшую сторону?
      protected void SetWind(float wind, float time) { if (!g_Game) return; Weather m_Weather = g_Game.GetWeather(); if (!m_Weather) return; m_Weather.SetWindMaximumSpeed(wind); m_Weather.SetWind(Vector(1/Math.Sqrt(3), 1/Math.Sqrt(3), 1/Math.Sqrt(3)) * wind); m_Weather.SetWindSpeed(wind); m_Weather.SetWindFunctionParams(1.0, 1.0, -1); } Это скрипт на понижение силы ветра.
      Работает понижение силы ветра в том случае, если до этого сила ветра была выше.
      Пример:
      Изначально на сервере сила ветра = 20 m/s А нужно понизить до 10 m/s
      Только в этом случае сработает скрипт который я приложил выше.
      Помогите пожалуйста решить этот вопрос.
      За ранние благодарю.
    • Автор: Troy1
      Пока ждал помощи, решил вопрос!
      Тема закрыта!!!
    • Автор: magliner
      Привет ! Ну вот моя история с вопросом в конце.. Я фанат Дэйз ванилы черноруси, заколебало сидеть на бездушных серверах со слабой админкой и терять лут от софтеров, решил создать под свои скромные запросы около ванильный сервер.. Нашел хорошего исполнителя, быстро и четко запустили отладили и ВОТ я имею СВОЙ сервер.. клас! вечер восторга и изучения
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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

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

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

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

Поддержка