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

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

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

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

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

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

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

BorizzK тока комманду надо знать для респавна

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


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

Вот почему не получается вынести в папку миссии brain_player_client.fsm

В логе на клиенте

Warning Message: Script scripts\fsm\brain_player_client.fsm not found

Он не с сервера на клиент передается, клиент его из своей виртуальной файловой системы (туда монтируются аддонсы) его подгружает

 

Кроме того exitGame; вызванный на стороне клиента закрывает игру полностью, а не делает выход с сервера.

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

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


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

Блин чего то намутил я с тайпсом у себя теперь клиент вылетает через минуту после присоединения к серверу (никакой ошибки не выдает) при этом сервер работает нормально.... Чует моё сердце нашёл я себе занятие на пару дней:sad:

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


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

Кроме того exitGame; вызванный на стороне клиента закрывает игру полностью, а не делает выход с сервера.

а иного варианта не существует в функциях игры.

10 часов назад, BorizzK сказал:

Вот почему не получается вынести в папку миссии brain_player_client.fsm

В логе на клиенте

Warning Message: Script scripts\fsm\brain_player_client.fsm not found

Он не с сервера на клиент передается, клиент его из своей виртуальной файловой системы (туда монтируются аддонсы) его подгружает

так а что мешает отправить fsm скрипт через spawnforclient и пробить на него путь?

1 час назад, Inqwizitor сказал:

Блин чего то намутил я с тайпсом у себя теперь клиент вылетает через минуту после присоединения к серверу (никакой ошибки не выдает) при этом сервер работает нормально.... Чует моё сердце нашёл я себе занятие на пару дней:sad:

сохранку перса почисть.

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


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

123new как отправить fsm на клиента? Если по типу compile player execFSM клиент пытается его подгрузить локально и если не находит в своих файлах, то ошибка

 

 

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


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

а иного варианта не существует в функциях игры.

так а что мешает отправить fsm скрипт через spawnforclient и пробить на него путь?

сохранку перса почисть.

123new спасибо помогло. 

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


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

123new как отправить fsm на клиента? Если по типу compile player execFSM клиент пытается его подгрузить локально и если не находит в своих файлах, то ошибка

 

 

не, я имею ввиду что попробуй что-то в стиле:

fnc_fsm 				= compile preprocessFileLineNumbers "Scripts\fsm\brain_player_client.fsm";
[_id,fnc_fsm] spawnForClient 
{
	fnc_fsm = _this select 1;
	compile format ["player execFSM %1",fnc_fsm];
};

чисто в теории может сработать

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


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

так а что мешает отправить fsm скрипт через spawnforclient и пробить на него путь?

 

Что мешает? А то что он и так "отправляется" через spawnforclient

[_id] spawnForClient compile "player execFSM '\dz\modulesDayZ\fsm\brain_player_client.fsm'";

Ток отправляется не файл или его код, а берется локальный

Дело в том что в данном случае fsm берется для клиента с клиента

Проверил неск раз пытаясь передать другие fsm

 

Либо править fsm и крутить его на сервере для каждого клиента, а уже внутри делать spawnforclient

 

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


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

123new Сейчас попробую

 

Это в init?

fnc_fsm = compile preprocessFileLineNumbers "Scripts\fsm\brain_player_client.fsm"

 

Это в initnewbody?

[_id,fnc_fsm] spawnForClient { fnc_fsm = _this select 1; compile format ["player execFSM %1",fnc_fsm]; };

 

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

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


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

BorizzK угу, примерно так. Если не получится, поиграться попробуй с коммандами "compile" и там и там. Возможно в "compile format ["player execFSM %1",fnc_fsm];" что-то не верно прописано или в "fnc_fsm = compile preprocessFileLineNumbers "Scripts\fsm\brain_player_client.fsm" лишняя compile

 

 

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

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


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

123new Не

Не прокатило

+ игра вылетать начала

И, кстати, а preprocessFileLineNumbers он только для sqf вроде

 

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

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


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

BorizzK ну насчет "для sqf" не слышал, может и так. Фишка вся в том. чтобы считать текст с файла в переменную. передать ее на сторону клиента коммандой spwanforclient (пример как раз на это и давал), и уже на стороне клиента с этой переменной считать содержимое переданное и выполнить как фсм

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

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


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

А может без compile?

Впрочем я справился и сделал так что после you are dead звук и изображение не пропадают, пока не пропадет перс

В конце event_playerKilled.sqf

[_id,DZ_TIME_DELETE_DEAD_PLAYER] spawnForClient {
	setEVUser 0;
	1 fadeSound 1;
	1 fadeSpeech 1;
	1 fadeRadio 1; 
	sleep 1;
	setEVUser 0;
	sleep 0.5;
	setEVUser 0;
	sleep 0.5;
	setEVUser 0;
	sleep 0.5;
	setEVUser 0;
	sleep 0.5;
	setEVUser 0;
	sleep 0.5;
	setEVUser 0;
	sleep 0.5;
	setEVUser 0;
  	// Вот тут планируется запихать код камеры показывающей убийцу со стороны
	sleep (_this select 1) - 14;
  	//перс пропал - плавно гасим звук и экран - надпись You are dead продолжает отображаться.
	2 fadeSound 0.0;
	2 fadeSpeech 0.0;
	2 fadeRadio 0.0; 
	setEVUser -1;
	sleep 0.5;
	setEVUser -2;
	sleep 0.5;
	setEVUser -3;
	sleep 0.5;
	setEVUser -4;
	sleep 0.5;
	setEVUser -5;
};

Теперь буду разбираться с камерой, тк в текущей реализации это чисто client-side execution как выяснилось

 

 

 

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

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


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

Приблизительно понял что к чему

Хочу попробовать вызвать на клиенте из addons из файла functions.pbo из его папки Misc скрипт fn_death.sqf

 

Входных параметров у него 2 - _player и _killer - судя по всему нужно передать обьекты, те сделать вызов так

 

[_id,_agent,_killer] spawnForClient {
 [_this select 1,_this select 2] execVM "\dz\functions\misc\fn_death.sqf"
};
 

Верно?

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

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


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

Приблизительно понял что к чему

Хочу попробовать вызвать на клиенте из addons из файла functions.pbo из его папки Misc скрипт fn_death.sqf

 

Входных параметров у него 2 - _player и _killer - судя по всему нужно передать обьекты, те сделать вызов так

 

[_id,_agent,_killer] spawnForClient {
 [_this select 1,_this select 2] execVM "\dz\functions\misc\fn_death.sqf"
};
 

Верно?

угу

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


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

123new Попробую поиграться родными скриптами, ну и поглядеть что к чему

 

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


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

123new 

А зачем ты так намудрил в fnc_PosBubbles.sqf

 

Координаты изменил от балды, что бы в окно влезало

_default_spawn_pos_players = [
[7052.37,2771.16,0.0],
[7054.37,2772.16,0.0]
];

_selected_massive_pos_spawn_player = _default_spawn_pos_players;
_selected_pos_spawn_player = _selected_massive_pos_spawn_player select (floor random (count _selected_massive_pos_spawn_player));

_selected_pos_spawn_player

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

 

_default_pos_spawn_players = [
[7052.37,2771.16,0.0],
[7054.37,2772.16,0.0]
];

_selected_pos_spawn_player = _default_pos_spawn_players select (floor random (count _default_pos_spawn_players));
_selected_pos_spawn_player

Мне кажется так лучше

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

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


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

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

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

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


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

Вопрос

 

есть определенные в init функции

 

fnc_myFunction1 = scripts\fnc_myFunction1.qf;

fnc_myFunction2 = scripts\fnc_myFunction2.f;

fnc_myFunction3 = scripts\fnc_myFunction3.sqf;

 

вызываются она так _var = _id call fnc_myFunction1;

В _var возвращается некое значение

 

Как в скрипте назначить эту функци переменной

типа _myfunc = fnc_myFunction1;

 

так?

 

что бы можно было вызвать так

_var = _id call _myfunc;

 

так?

 

это нужно что бы через case выбрать какую функцию в последствии выбрать для вызова...

 

 

 

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


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

BorizzK так через compile processfilelinenumbers сделай, пример для скрипта с авто есть. А там уже по case вызывай нужную функцию тупо

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


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

123new Ага

Я уже подумал

в init обьявлю в условии через case и все и буду вызывать где надо

 

Это я к вызову скрипта выбирающего координаты спавна игроков

 

Но так-то можно?

 

fnc_SelectPosForSpawn = fnc_posBubbles;

 

И про условие

 

A = true;

B = "TEXT";

C = 20;

 

Можно ли сделать множественную проверку в одном условии

 

если ( А true И B текст И С число) то {

выполняетм код;

};

 

if ( A && str B && dig C ) then {

 

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

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


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

BorizzK можно, при условии что ты знаешь что у тебя в fnc_posBubbles, поскольку его значение ты получишь с его типом в переменную fnc_SelectPosForSpawn.

У бена, насколько помню, там тупо масив координат присваивается в fnc_posBubbles, а значит  у тебя fnc_SelectPosForSpawn и станет тоже массивом.

В моей сборке функция fnc_posBubbles возвращает лишь одну координату в формате [x,y,z] из списка, соответственно в fnc_SelectPosForSpawn уже будет не массив из координат, а одна конкретно выбранная координата.

Ну и по аналогии. Потому не спеши с этой переменной играться, смотри что в каких скриптах у тебя и что возвращает и чем является.

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


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

123new 

 

Но можно так

fnc_SelectPosForSpawn = {

_posselect = _this call fnc_posBubbles; // или какую надо

_posselect

};

 

и вызывать

_pos = _uid fnc_SelectPosForSpawn;

 

И еще вопрос

 

_agent call fnc_reloadWeaponOnSpawn; - не работает?

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

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


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

BorizzK можно и так, разница не велика.

_agent call fnc_reloadWeaponOnSpawn; насколько я понял не работает, как ни тестировал этот скрипт, так и не понял его сути. Скорее всего автор скрипта пытался сделать зарядку оружия после загрузки сейва, но чет как-то не вышло судя по всему)

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


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

123new 

Судя по коду снятие магазина  и обратная установка

Но мне кажется тут надо делать _agent playAction ... , но какой, надо будет поразбираться

Я кстати так и не понял как в скрипте навесить аттачменты на оружие когда добавляю дополнительное в инвентарь

 

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 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, в противном случае мы будем считать, что вы согласны с этим.