From 844c814cfeb2a812c3e9467d87c321962e03b8c1 Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 10 Apr 2013 18:32:31 -0500 Subject: [PATCH] fixes --- dayz_code/config.cpp | 125 +++++++++++++++++++- dayz_code/system/player_monitor.fsm | 2 +- dayz_server/compile/server_updateObject.sqf | 24 ++-- dayz_server/init/server_functions.sqf | 29 +++-- 4 files changed, 151 insertions(+), 29 deletions(-) diff --git a/dayz_code/config.cpp b/dayz_code/config.cpp index d0ca90004..6b579115c 100644 --- a/dayz_code/config.cpp +++ b/dayz_code/config.cpp @@ -40,7 +40,7 @@ class CfgMods hidePicture = 0; hideName = 0; action = "http://www.dayzepoch.com"; - version = "1.0.0.1"; + version = "1.0.0.2"; hiveVersion = 0.96; //0.93 }; }; @@ -2740,6 +2740,127 @@ class HeliCrash_No50s: Default { {-1.51141,1.30359,-1.33611}, {2.23376,0.0710449,-1.33611}}; }; - + // Namalsk + class land_seb_vod_vez: Industrial { + lootPos[] = {{2.02881,0.0849609,15.155}}; + }; + class land_seb_near_fac: Industrial { + lootPos[] = {{-10.4116,-18.0859,1.75552}}; + }; + class land_seb_rozvodna: Industrial { + lootPos[] = {{-1.2168,2.9668,0.583904}}; + }; + class land_seb_mine_maringotka: Residential { + lootPos[] = {{0.423828,0.721191,-0.612675},{-0.976563,-1.32764,-0.612675}}; + }; + class Land_hut_old01: Residential { + lootPos[] = {{2.2793,-7.06348,-3.06107},{-3.3584,-1.7334,-3.01178},{-5.0332,-0.929688,-3.0112}}; + }; + class land_st_vez: MilitarySpecial { + lootPos[] = {{-5.56445,4.23975,-3.31476},{-5.05566,-3.17627,-3.31476},{4.12109,3.92822,2.42732},{-1.73389,2.68896,6.40834},{-4.23584,1.29736,6.40834},{-3.80322,-1.09277,6.40834},{0.430664,1.31787,6.40834},{-2.45166,-2.16748,6.40834},{-0.608398,-0.57666,-11.095},{-2.08691,1.10303,-11.0649},{0.259277,-3.89697,-3.31476},{3.9375,3.30957,-8.50825}}; + }; + class Land_Mil_Guardhouse: Military { + lootPos[] = {{-2.53271,3.17871,-1.66939},{-2.39014,0.878906,-1.66939}}; + }; + class Land_dulni_bs: Residential { + lootPos[] = {{2.76758,2.70068,-1.75205},{2.34668,-1.28564,-1.75205},{-0.478516,-2.64844,-1.75205},{-0.53418,3.11133,-1.75205}}; + }; + class land_bunka: Office { + lootPos[] = {{1.83496,0.451172,-1.51244},{-2.04492,2.11377,-1.51245},{3.07324,2.41675,-1.51245}}; + }; + class land_pozorovatelna: Military { + lootPos[] = {{-2.36328,-2.79248,-2.49767},{3.11426,-2.92969,-2.49767},{0.740234,2.47852,-2.49767},{-1.67578,-2.50049,7.54509},{-1.23047,1.90283,7.54509},{2.88477,2.08496,7.54509},{2.61426,-2.48096,7.54509},{0.491211,-0.290527,7.54509}}; + }; + class land_panelova3: Residential { + lootPos[] = {{-0.0615234,2.92871,0.0510063},{6.44482,-0.967773,0.0510063},{6.26807,-3.85547,0.0510063},{-0.0327148,-5.30273,0.0510063}}; + }; + class land_vysoky2: Residential { + lootPos[] = {{6.74121,-2.95508,-15.7673},{6.63232,4.17676,-15.7673},{0.72998,-2.63574,-15.7051},{1.1958,0.116211,-15.6513},{2.84131,2.35742,13.1248},{-0.51123,2.16699,13.1248},{4.37012,0.773438,13.1248},{9.61328,13.2432,13.1248},{6.39307,-12.292,13.1248}}; + }; + class land_vysoky1: Residential { + lootPos[] = {{-6.74414,5.46875,13.2833},{0.54541,4.38379,13.2833},{10.9004,1.47949,13.2833},{6.0415,-13.4297,13.2833},{1.12744,-2.39258,13.2833}}; + }; + class land_hotel_p2: Residential { + lootPos[] = {{-3.26953,3.02783,-7.29951},{4.04395,-1.92188,-7.29951},{9.48145,0.459473,-7.32974},{1.53711,0.0078125,6.06893},{4.5332,0.862305,6.06893},{4.73438,-3.63232,6.06893}}; + }; + class land_hotel_p1: Residential { + lootPos[] = {{-12.1006,-3.29248,-4.92428},{-3.09375,-1.66357,-4.92429},{-1.78125,3.53271,-4.92429},{-5.97852,3.80273,-4.92428},{13.8809,1.77246,-1.39091},{13.751,-9.81104,-1.39091},{12.1787,0.0078125,-3.22923}}; + }; + class land_trubice: Industrial { + lootPos[] = {{-2.36719,2.7627,2.59438},{5.82715,3.01563,2.59438},{1.57617,0.709961,2.59438}}; + }; + class land_dlouhy1: Residential { + lootPos[] = {{-6.40918,-0.21875,-9.60495},{-12.395,2.47559,-9.60091},{1.38428,3.15332,-9.61021},{1.91748,8.89746,-9.61057},{-6.90918,8.53027,-9.60461},{-12.3315,8.00195,-9.60096},{-17.9946,9.73926,-9.59713},{-9.91797,5.16699,-9.60259},{6.95801,9.37988,-9.61397},{4.39404,7.64941,-9.61224},{5.43994,9.80469,-5.09157},{0.418457,-0.611328,-5.09031},{-5.27051,7.41895,-5.08631},{2.20361,8.79004,-5.09157},{-8.93848,6.08301,-5.08698},{-9.49854,11.3086,-5.08437},{9.38232,1.54199,-5.09157},{8.95361,9.74707,-5.09157},{11.436,11.4756,-5.08435}}; + }; + class land_dlouhy2: Residential { + lootPos[] = {{1.73047,5.30957,-9.32314},{-1.38867,-0.568848,-9.31474},{-1.47461,-5.5957,-9.3145}}; + }; + class land_jzd_kr2: Farm { + lootPos[] = {{1.92139,-4.90527,-6.17321},{0.709961,5.00488,-6.17321},{1.8623,7.37109,1.40623},{3.00684,-3.30566,1.41873},{-3.0625,-3.38477,-2.05339},{-2.62646,10.8418,-2.05339}}; + }; + class land_jzd_kr1: Farm { + lootPos[] = {{-1.04834,-3.67578,-6.27279},{1.63818,0.775391,-6.27279},{-1.41992,5.10449,-6.27279},{-0.993164,2.94629,-2.15298},{0.717285,-3.79688,-2.15298}}; + }; + class land_jzd_stodola2: Farm { + lootPos[] = {{8.15527,11.8477,-2.0262},{5.5127,5.6377,-2.0262},{-4.16113,3.67383,-2.0262},{7.53223,-14.4741,-2.0262},{1.16992,0.390625,1.31123}}; + }; + class land_jzd_stodola1: Farm { + lootPos[] = {{-3.81592,-11.418,-2.0262},{1.73877,-6.20605,-2.0262},{-4.13477,-0.265625,-2.0262},{-1.04883,0.180664,-2.0262}}; + }; + class land_jzd_silo_tes: Industrial { + lootPos[] = {{2.74902,6.52246,0.214748},{11.5796,5.20703,0.214748},{5.72949,0.644531,0.21475},{10.6719,-6.1416,0.214748},{0.97998,-2.64844,0.214373},{3.22168,-7.55664,0.214746},{-2.62695,-0.580078,10.224}}; + }; + class land_rozvodna: Residential { + lootPos[] = {{-6.8208,-1.58789,-0.369419}}; + }; + class land_jzd_4silka: Industrial { + lootPos[] = {{0.551758,-5.24219,1.64133},{0.224609,1.37646,1.64133},{3.04492,0.456055,1.64133},{4.31641,5.94189,5.51407},{-3.53125,-5.80127,5.51407}}; + }; + class land_jzd_bezstrechy: Residential { + lootPos[] = {{-10.4614,-2.97461,-5.22504},{0.170898,0.177734,-5.22504},{-0.368652,-3.34668,-5.22504},{0.905762,2.52344,-5.22504},{0.802246,2.12305,-0.40476},{1.05615,1.88574,-3.01179},{8.00244,0.787109,-5.22504}}; + }; + class land_AII_last_floor: MilitarySpecial { + lootPos[] = {{-1.73975,-7.99756,11.6976},{-1.73975,-7.99756,11.6976},{-1.20801,5.45605,4.6129},{-3.82813,2.81494,5.46183}}; + }; + class land_AII_middle_floor: Military { + lootPos[] = {{-7.64941,4.97412,0.510368},{-7.7207,5.10498,0.510216},{-7.27979,-0.931152,0.518509},{8.47461,-2.3252,-4.63377},{9.20508,0.508301,-4.63377},{4.36768,3.7998,-4.63377},{-0.669434,2.74805,-4.63377},{-10.3594,5.03516,-4.63377},{-13.9766,9.10059,-4.63377},{-8.021,1.22314,-4.63377},{6.07227,-2.64551,-4.63377},{-8.75293,8.79297,-2.10379}}; + }; + class land_x_skladiste_low_tex: Industrial { + lootPos[] = {{-8.12354,-0.32373,-2.85032},{-2.31592,-4.27539,-2.5975},{8.15527,-6.89307,-2.5975},{0.398926,4.80029,-2.82628},{-6.0249,-7.64355,-2.85032}}; + }; + class Land_budova4_winter: MilitarySpecial { + lootPos[] = {{-7.73389,0.300049,-1.09824},{-7.7666,1.97388,-1.09824},{-5.85645,1.92651,-1.09824},{-4.82373,0.194336,-1.09824},{-4.82715,-2.00244,-1.09824},{-8.09766,-2.28149,-1.09824},{-3.06787,2.24805,-1.09824},{-1.65283,-1.91821,-1.09824},{-1.41309,-0.034668,-1.09824},{0.266602,1.76807,-1.09824},{1.28369,0.289307,-1.09824},{1.81982,-2.28687,-1.09824},{4.37549,2.14941,-1.09824},{5.61865,1.71338,-1.09824},{5.06787,-1.74316,-1.09824},{2.54785,2.33716,-1.09824}}; + }; + class land_domek_podhradi_1: Residential { + lootPos[] = {{5.20862,3.45215,-2.7391},{3.04761,1.61621,-2.73912},{2.7594,-1.33691,-2.73915},{-3.32617,4.14404,-2.73909}}; + }; + class land_b_small1: Industrial { + lootPos[] = {{-3.14185,1.36816,-1.50033},{-0.0275879,-1.74707,-1.50033},{-3.59619,-3.18945,-1.50033},{-0.729004,-4.95996,-1.50033}}; + }; + class land_cast1: Industrial { + lootPos[] = {{-5.39551,6.56055,-4.38392},{-5.68555,9.04297,-4.38393},{-5.57251,9.08203,-4.38393},{-3.05396,14.5527,-4.38392},{2.97681,13.9014,-4.38392},{-0.227783,11.8418,-4.38393},{1.44995,3.27246,-3.50372},{2.53198,-5.45508,-3.5118},{-4.85596,-2.20898,-3.4266},{1.04224,0.729492,-1.06585}}; + }; + class land_vstup: Military { + lootPos[] = {{-11.51,-2.64844,-1.53312},{-6.24463,-2.85059,-1.53312},{-1.16992,-2.84961,-1.53312},{2.70898,-2.85059,-1.53312}}; + }; + class land_panelova: Industrial { + lootPos[] = {{16,-14.6357,-4.04666},{3.79102,1.25659,-4.08966},{-15.4639,-8.38086,-4.08966},{-14.3535,-0.195313,-4.08966},{-1.61719,-12.8313,-4.08966},{15.4287,-4.25635,3.37273},{9.19336,-14.6272,3.37141},{5.80957,9.09253,3.37141},{9.95508,9.7937,3.37141},{-8.11523,-2.98291,3.34401},{-15.2598,-8.56641,3.34401}}; + }; + class land_garaze: Industrial { + lootPos[] = {{-0.00292969,-7.72925,-2.12658},{3.7334,1.02759,-2.12658},{3.2793,6.28857,-2.12658},{6.72949,7.34131,-2.12658},{1.68848,-3.91479,-2.12658}}; + }; + class land_seb_bouda3: Industrial { + lootPos[] = {{2.63574,-3.0332,-1.72872},{-2.71875,-5.08691,-1.72873},{-3.00293,-1.50781,-1.72877},{-2.91357,3.86328,-1.72876},{3.12891,3.01563,-1.72879}}; + }; + class Land_bouda2_vnitrek: Residential { + lootPos[] = {{2.33496,0.372559,-0.610508},{-0.845703,2.32129,-0.610506},{-3.27344,-2.27295,-0.610508}}; + }; + class land_f_b2: Industrial { + lootPos[] = {{1.58398,0.899414,-4.24147},{-1.33301,-0.991211,-4.24147},{1.91113,-1.68262,-4.24147}}; + }; + class land_bud2: Industrial { + lootPos[] = {{-2.32031,-1.25,-1.76814},{-1.58008,-2.3125,-1.77484}}; + }; + }; diff --git a/dayz_code/system/player_monitor.fsm b/dayz_code/system/player_monitor.fsm index 20a132c4f..de3ee2f05 100644 --- a/dayz_code/system/player_monitor.fsm +++ b/dayz_code/system/player_monitor.fsm @@ -691,7 +691,7 @@ class FSM "_setDir = _worldspace select 0;" \n "_setPos = _worldspace select 1;" \n "" \n - "if(dayz_paraSpawn) then {" \n + "if(dayz_paraSpawn and !(player isKindOf ""PZombie_VB"")) then {" \n " _para = createVehicle [""ParachuteWest"", _setPos, [], 0, ""FLY""]; " \n " player moveInDriver _para;" \n "} else {" \n diff --git a/dayz_server/compile/server_updateObject.sqf b/dayz_server/compile/server_updateObject.sqf index a322b549e..cc0af84f6 100644 --- a/dayz_server/compile/server_updateObject.sqf +++ b/dayz_server/compile/server_updateObject.sqf @@ -1,7 +1,7 @@ /* [_object,_type] spawn server_updateObject; */ -private ["_object","_type","_objectID","_uid","_lastUpdate","_needUpdate","_object_position","_object_inventory","_object_damage","_isNotOk"]; +private ["_object","_type","_objectID","_uid","_lastUpdate","_needUpdate","_object_position","_object_inventory","_object_damage","_isNotOk","_counter","_removeCounter","_parachuteWest","_firstTime","_object_killed","_object_repair"]; _object = _this select 0; _type = _this select 1; @@ -9,6 +9,8 @@ _parachuteWest = typeOf _object == "ParachuteWest"; _isNotOk = false; _firstTime = false; +_removeCounter = 0; + _objectID = _object getVariable ["ObjectID","0"]; _uid = _object getVariable ["ObjectUID","0"]; @@ -23,18 +25,18 @@ if (!_parachuteWest) then { if (_objectID == "0" && _uid == "0") then { _object_position = getPosATL _object; - diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]", - typeOf _object, - _object_position select 0, - _object_position select 1, - _object_position select 2]); - _isNotOk = true; + diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]", + typeOf _object, + _object_position select 0, + _object_position select 1, + _object_position select 2]); + _isNotOk = true; - // Loop to wait it out - _counter = _object getVariable ["markedForRemoval","0"]; + // Loop to wait it out + _counter = _object getVariable ["markedForRemoval","0"]; - _removeCounter = _counter + 1; - _object setVariable ["markedForRemoval",(_counter + 1)]; + _removeCounter = _counter + 1; + _object setVariable ["markedForRemoval",(_counter + 1)]; }; }; diff --git a/dayz_server/init/server_functions.sqf b/dayz_server/init/server_functions.sqf index dc4379e2e..ad203c1d5 100644 --- a/dayz_server/init/server_functions.sqf +++ b/dayz_server/init/server_functions.sqf @@ -260,6 +260,8 @@ spawn_vehicles = { _allCfgLoots = [] + (getArray (configFile >> "cfgLoot")); _num = floor(random 4); + diag_log("DEBUG: spawing loot inside vehicle " + str(_allCfgLoots)); + for "_x" from 1 to _num do { _iClass = _allCfgLoots call BIS_fnc_selectRandom; @@ -271,7 +273,8 @@ spawn_vehicles = { _index = floor(random _cntWeights); _index = _weights select _index; _itemType = _itemTypes select _index; - _item addMagazineCargoGlobal [_itemType,1]; + _veh addMagazineCargoGlobal [_itemType,1]; + diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType)); }; [_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh; @@ -297,7 +300,6 @@ spawn_roadblocks = { if ((count _position) == 2) then { // Get position with ground - _istoomany = _position nearObjects ["All",5]; if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); }; @@ -307,24 +309,21 @@ spawn_roadblocks = { _marker setMarkerShape "ICON"; _marker setMarkerType "DOT"; }; - + + waitUntil{!isNil "BIS_fnc_selectRandom"}; _spawnveh = _WreckList call BIS_fnc_selectRandom; - - if(_spawnveh == "HMMWVWreck" or _spawnveh == "UralWreck" or _spawnveh == "UAZWreck") then { + _spawnloot = "DynamicDebris"; + + if((_spawnveh == "HMMWVWreck") or (_spawnveh == "UralWreck") or (_spawnveh == "UAZWreck")) then { _spawnloot = "DynamicDebrisMilitary"; - } else { - _spawnloot = "DynamicDebris"; }; - diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position)); _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; // Randomize placement a bit _veh setDir round(random 360); _veh setpos _position; - - dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_veh]; _veh setVariable ["ObjectID",1,true]; @@ -368,19 +367,19 @@ if(isnil "DynamicVehicleDamageHigh") then { // Damage generator function generate_new_damage = { private ["_damage"]; - _damage = (random ((DynamicVehicleDamageHigh-DynamicVehicleDamageLow)+DynamicVehicleDamageLow))/100; + _damage = (random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow)+DynamicVehicleDamageLow) / 100; _damage; }; // Damage generator fuction generate_exp_damage = { private ["_damage"]; - _damage = (random ((DynamicVehicleDamageHigh-DynamicVehicleDamageLow)+DynamicVehicleDamageLow))/100; + _damage = (random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow)+DynamicVehicleDamageLow) / 100; // limit this to 85% since vehicle would blow up otherwise. - if(_damage >= 0.85) then { - _damage = 0.85; - }; + //if(_damage >= 0.85) then { + // _damage = 0.85; + //}; _damage; };