Разбор нововведений в 1.7.5 изнутри: обзор кода

Aflertis

Модератор
Ур
0
 
C++:
+private["_object","_position"];
 
+_object = _this select 3;
 
+_position = [position _object,0,0,0,0,0,0,position player] call BIS_fnc_findSafePos;
 
+//Standup
+//player playMove "amovpercmstpsraswrfldnon_amovpknlmstpslowwrfldnon";
+//sleep 1;
+//waitUntil { animationState player != "amovpercmstpsraswrfldnon_amovpknlmstpslowwrfldnon"};
 
+//Kneel Down
+player playMove "amovpknlmstpslowwrfldnon_amovpercmstpsraswrfldnon";
+waitUntil { animationState player != "amovpknlmstpslowwrfldnon_amovpercmstpsraswrfldnon"};
+_object setpos _position;
+//Other possibilities
+//[_object,0, 0] call bis_fnc_setpitchbank;
+//_object setpos [getpos _object select 0, getpos _object select 1, 0];

Это функция переворота АТВ. Из неё видно, что игрок будет приседать на колено, и по прошествии 3-х секунд квадроциклу будет присвоена позиция с 0 углом поворота. Единственное, может я не точно увидел, но берется позиция объекта и игрока и вызывается функция поиска "безопасного места". Не могу понять как в данном случае используется позиция игрока (не могу знать работу функции), не будет ли проблем при попытке переворота около здания (в здании), в лесу, учитывается ли позиция игрока для того, чтобы он не застрял в атв и не переломал ноги?
 

Aflertis

Модератор
Ур
0
 
Updated Zombie checks/attacks to make them a little harder to deal with within the limits.

Судя по изменениям в коде:

SQF/dayz_code/compile/player_zombieCheck.sqf
C++:
//_listTalk = (position _refObj) nearEntities ["zZombie_Base",200];
 
_listTalk = (position _refObj) nearEntities ["zZombie_Base",100];

SQF/dayz_code/compile/zombie_findTarget.sqf
C++:
-_range = 500;
 
+_range = 300;

SQF/dayz_code/compile/zombie_generate.sqf
C++:
//_position = [_position,0,20,10,0,20,0] call BIS_fnc_findSafePos; Orignal
 
_position = [_position,0,20,20,0,20,0] call BIS_fnc_findSafePos;


Зомби теперь имеют меньший радиус атаки и обнаружения цели (не обнаружения самого игрока, а именно подходящего момента для атаки), а также, как я понял, появляются они дальше от игрока
 

Aflertis

Модератор
Ур
0
 
Изменены таблицы лута:

ПНВ:
1) Увеличен в 2 раза шанс спавна на хеликрэше с 0.1 до 0.2
2) ПНВ больше не спавнится в милитари бараках (MilitarySpecial), раньше был шанс 0.1

Больница:
Изменены шансы спавна медицины и коробки: увеличен в 2 раза (с 0.5 до 1) шанс спавна медицины, уменьшен с 0.5 до 0.2 шанс спавна мед коробки.

Уменьшен спавн патронов в 2 раза

Изменено количество получаемого мяса при освежевании:
1) Обычное количество мяса уменьшено в 2 раза (до 1) (*заяц, курица)
2) Корова вместо 8 даёт 6
3) Коза вместо 3 даёт 4
4) Овца вместо 5 даёт 3
5) Кабан вместо 4 даёт 2
 

Aflertis

Модератор
Ур
0
 
Updated Spawn's So limited amount of zeds will always spawn while players are in vehicles. Updated Zed attack to allow zeds to attack vehicles again.

Обновлён спавн - Лимитированное количество зомби будет постоянно появятся пока игроки находятся в автомобиле. Также зомби снова могут атаковать автомобили (видимо отключали)

SQF/dayz_code/compile/player_spawnCheck.sqf
C++:
_maxZombiesvehicle = 15;
Судя по всему на автомобиль может появиться не более 15 зомби


C++:
if (_inVehicle) then {
+        if ((time - dayz_spawnWait) > dayz_spawnDelay and _dis < 200) then {
+          if (dayz_spawnZombies < _maxZombiesvehicle) then {
+            if (!_tooManyZs) then {
+              private["_zombied"];
+              _zombied = (_x getVariable ["zombieSpawn",-0.1]);
+              _dateNow = (DateToNumber date);
+              _age = (_dateNow - _zombied) * 525948;
+              //diag_log(format["Date: %1 | ZombieSpawn: %2 | age: %3 | building: %4 (%5)", _dateNow, _zombied, _age, str(_x), _dis]);
+              if (_age > 1) then {
+                _bPos = getPosATL _x;
+                _zombiesNum = {alive _x} count (_bPos nearEntities ["zZambie_Base",(((sizeOf _type) * 2) + 10)]);
+                if (_zombiesNum == 0) then {
+                  //Randomize Zombies
+                  _x setVariable ["zombieSpawn",_dateNow,true];
+                  _handle = [_x,_fastRun] spawn building_spawnZombies;
+                  waitUntil{scriptDone _handle};
+                //} else {
+                  //_x setVariable ["zombieSpawn",_dateNow,true];
+                };
+              };
+            };
+          } else {
+            dayz_spawnWait = time;
+            //dayz_spawnZombies = 0;
+          };
+        };

Из кода видно, что если вокруг игрока в автомобиле нет зомби:
C++:
_zombiesNum = {alive _x} count (_bPos nearEntities ["zZambie_Base",(((sizeOf _type) * 2) + 10)]);
if (_zombiesNum == 0) then {
то включается функция спавна зомби, как будто при спавне вокруг здания ( spawn building_spawnZombies )

Могу ошибаться, т.к. не смотрел функцию спавна зомби
 

SalvioHexia

Администратор.
Ур
9
 
Жаль, ничерта не понимаю :) Но есть инфа, что если кто-то будет стоять на месте, куда переворачивают АТВ, его накроет не хилым уроном :)
 

Volodiakom

Модератор
Ур
0
 
За пнв спасибо, а вот животных жалко :(
 
Сверху