diff --git a/dayz_code/actions/list_playerDeaths.sqf b/dayz_code/actions/list_playerDeaths.sqf new file mode 100644 index 000000000..3f60ec8e6 --- /dev/null +++ b/dayz_code/actions/list_playerDeaths.sqf @@ -0,0 +1,23 @@ +private["_activatingPlayer","_trader_id","_category","_action","_id","_type","_loc","_name","_qty","_cost","_qty","_sell","_cur","_order","_tid","_currency","_actionFile","_in","_out","_part","_cat","_cancel","_Display","_File","_textCurrency","_textPart"]; + +// [ _trader_id, _category, _action ]; +_activatingPlayer = _this select 1; + +diag_log format["DEBUG DEATH OBJ: %1", _this select 0]; + +["dayzPlayerDeaths",[_activatingPlayer]] call callRpcProcedure; + +waitUntil {!isNil "dayzPlayerDeathsResult"}; + +diag_log format["DEBUG Death: %1", dayzPlayerDeathsResult]; + +if((count dayzPlayerDeathsResult) > 0) then { + "Recent Player Deaths:" hintC dayzPlayerDeathsResult; +} else { + "Recent Player Deaths:" hintC "No recent Deaths."; +}; + + + +// Clear Data maybe consider cacheing results +dayzPlayerDeathsResult = nil; \ No newline at end of file diff --git a/dayz_code/actions/player_craftItem.sqf b/dayz_code/actions/player_craftItem.sqf index c91a04c77..69072917a 100644 --- a/dayz_code/actions/player_craftItem.sqf +++ b/dayz_code/actions/player_craftItem.sqf @@ -59,7 +59,9 @@ if (inflamed cursorTarget and _canDo) then { _recipe_ItemTinBar = [["TrashTinCan",6]]; _recipe_ItemAluminumBar = [["ItemSodaEmpty",6]]; _recipe_ItemBronzeBar = [["ItemCopperBar",3],["ItemTinBar",3]]; - + _recipe_ItemGoldBar10oz = [["ItemGoldBar",10]]; + _recipe_ItemGoldBar = [["ItemGoldBar10oz",1]]; + _recipe_FoodChickenNoodle = [["FoodchickenRaw",1],["FoodCanPasta",1],["ItemWaterbottle",1]]; _recipe_FoodBeefBakedBeans = [["FoodbeefRaw",1],["FoodCanBakedBeans",1]]; diff --git a/dayz_code/actions/sell_db.sqf b/dayz_code/actions/sell_db.sqf index 676c1102f..1b78a7dfe 100644 --- a/dayz_code/actions/sell_db.sqf +++ b/dayz_code/actions/sell_db.sqf @@ -92,13 +92,13 @@ diag_log format["DEBUG Buy: %1", dayzTraderMenuResult]; _count = 0; if(_stype == "CfgVehicles") then { _count = position player nearObjects [_name,10]; - } + }; if(_stype == "CfgMagazines") then { _count = {_x == _name} count magazines player; - } + }; if(_stype == "CfgWeapons") then { _count = {_x == _name} count items player; - } + }; if (_count > 0) then { _Display = format["Sell %1 for %2 %3 each", _textPart, _sqty, _textCurrency]; diff --git a/dayz_code/cfgVehicles.hpp b/dayz_code/cfgVehicles.hpp index 304343524..c42f5e5ca 100644 --- a/dayz_code/cfgVehicles.hpp +++ b/dayz_code/cfgVehicles.hpp @@ -934,6 +934,41 @@ class HMMWV_Base; transportMaxWeapons = 5; transportMaxBackpacks = 1; }; + class M113Ambul_UN_EP1; + class M113Ambul_UN_EP1_DZ: M113Ambul_UN_EP1 + { + scope = 2; + side = 2; + crew = ""; + typicalCargo[] = {}; + hiddenSelections[] = {}; + class TransportMagazines{}; + class TransportWeapons{}; + commanderCanSee = 2+16+32; + gunnerCanSee = 2+16+32; + driverCanSee = 2+16+32; + transportMaxWeapons = 5; + transportMaxMagazines = 25; + transportmaxbackpacks = 4; + }; + class M113Ambul_TK_EP1; + class M113Ambul_TK_EP1_DZ: M113Ambul_TK_EP1 + { + scope = 2; + side = 2; + crew = ""; + typicalCargo[] = {}; + hiddenSelections[] = {}; + class TransportMagazines{}; + class TransportWeapons{}; + commanderCanSee = 2+16+32; + gunnerCanSee = 2+16+32; + driverCanSee = 2+16+32; + transportMaxWeapons = 5; + transportMaxMagazines = 25; + transportmaxbackpacks = 4; + }; + // Lingor hangars //class land_ibr_hangar: land_ibr_hangar diff --git a/dayz_code/compile/building_spawnZombies.sqf b/dayz_code/compile/building_spawnZombies.sqf index 11fe6ed95..e14232280 100644 --- a/dayz_code/compile/building_spawnZombies.sqf +++ b/dayz_code/compile/building_spawnZombies.sqf @@ -5,15 +5,15 @@ _config = configFile >> "CfgBuildingLoot" >> _type; _canLoot = isClass (_config); _originalPos = getPosATL _obj; -if (_canLoot) then { +if (_canLoot and placevault) then { //Get zombie class _unitTypes = getArray (_config >> "zombieClass"); _min = getNumber (_config >> "minRoaming"); _max = getNumber (_config >> "maxRoaming"); -//Walking Zombies + //Walking Zombies _num = round(random _max) min _min; _config = configFile >> "CfgBuildingLoot" >> _type; -//Get zombie class + //Get zombie class _zombieChance = getNumber (_config >> "zombieChance"); _rnd = random 0.5; _chance = round(random 20); @@ -21,23 +21,22 @@ if (_canLoot) then { //if (_rnd < _zombieChance) then { if ((_chance % 2) == 0) then { - _noPlayerNear = (count ((getPosATL _obj) nearEntities ["CAManBase",30])) == 0; + _noPlayerNear = (count ((getPosATL _obj) nearEntities ["CAManBase",30])) == 0; - if (_noPlayerNear) then { + if (_noPlayerNear) then { - _position = _obj buildingExit 0; - if ((_position select 0) == 0) then { - _position = getPosATL _obj; + _position = _obj buildingExit 0; + if ((_position select 0) == 0) then { + _position = getPosATL _obj; + }; + + //diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num)); + for "_i" from 1 to _num do + { + [_position,_unitTypes] call zombie_generate; + }; }; - - //diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num)); - for "_i" from 1 to _num do - { - [_position,_unitTypes] call zombie_generate; - }; - }; -}; //Add Internal Zombies _clean = {alive _x} count ((getPosATL _obj) nearEntities ["zZombie_Base",(sizeOf _type)]) == 0; diff --git a/dayz_code/compile/fn_selfActions.sqf b/dayz_code/compile/fn_selfActions.sqf index c11f33d45..366943223 100644 --- a/dayz_code/compile/fn_selfActions.sqf +++ b/dayz_code/compile/fn_selfActions.sqf @@ -250,6 +250,19 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 6)) s_player_lockvault = -1; }; + + + //Player Deaths + if(cursorTarget isKindOf "Info_Board_EP1" and _canDo) then { + if ((s_player_information < 0) and (player distance cursorTarget < 3)) then { + s_player_information = player addAction ["Recent Deaths", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 0, false, true, "",""]; + }; + } else { + player removeAction s_player_information; + s_player_information = -1; + }; + + //Sleep if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then { if ((s_player_sleep < 0) and (player distance cursorTarget < 3)) then { diff --git a/dayz_code/config.cpp b/dayz_code/config.cpp index 8a972cd8f..3125a7576 100644 --- a/dayz_code/config.cpp +++ b/dayz_code/config.cpp @@ -33,7 +33,7 @@ class CfgMods hidePicture = 0; hideName = 0; action = "http://www.dayzepoch.com"; - version = "0.936"; + version = "0.94"; hiveVersion = 0.96; //0.93 }; }; diff --git a/dayz_code/init/variables.sqf b/dayz_code/init/variables.sqf index 02b919576..d8cbda5e7 100644 --- a/dayz_code/init/variables.sqf +++ b/dayz_code/init/variables.sqf @@ -79,6 +79,7 @@ SleepTemperatur = 90 / 100; //Firs Value = Minutes untill Player reaches the c allowConnection = false; isSinglePlayer = false; dayz_serverObjectMonitor = []; +PlayerDeaths = []; //Streaming Variables (player only) dayz_Locations = []; @@ -129,6 +130,7 @@ dayz_resetSelfActions = { s_player_warndog = -1; s_player_followdog = -1; s_player_repair_crtl = -1; + s_player_information = -1; }; call dayz_resetSelfActions; @@ -252,6 +254,7 @@ dayzHideBody = objNull; dayzPublishVeh = []; // for vehicle traders dayzTradeObject = []; // For all traders increment qty dayzTraderMenu = []; // For all traders +dayzPlayerDeaths = []; //DayZ settings dayz_dawn = 6; diff --git a/dayz_code/rscTitles.hpp b/dayz_code/rscTitles.hpp index 2c46da232..3983cb6b3 100644 --- a/dayz_code/rscTitles.hpp +++ b/dayz_code/rscTitles.hpp @@ -87,7 +87,7 @@ class RscDisplayMain : RscStandardDisplay class DAYZ_Version : CA_Version { idc = -1; - text = "DayZ Epoch 0.936 (1.7.5.1)"; + text = "DayZ Epoch 0.94 (1.7.5.1)"; y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)"; }; class CA_TitleMainMenu; diff --git a/dayz_code/system/player_monitor.fsm b/dayz_code/system/player_monitor.fsm index 020d1214a..42909d0b5 100644 --- a/dayz_code/system/player_monitor.fsm +++ b/dayz_code/system/player_monitor.fsm @@ -1,4 +1,4 @@ -/*%FSM*/ +/*%FSM*/ /*%FSM*/ /* item0[] = {"init",0,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"init"}; @@ -18,7 +18,7 @@ item13[] = {"no_PlayerID",4,218,50.000000,150.000000,150.000000,200.000000,2.000 item14[] = {"ERROR__No_Player",2,250,175.000000,150.000000,275.000000,200.000000,0.000000,"ERROR:" \n "No PlayerID"}; item15[] = {"Request",2,250,-75.000000,250.000000,25.000000,300.000000,0.000000,"Request"}; item16[] = {"Response",4,218,-175.000000,300.000000,-75.000000,350.000000,0.000000,"Response"}; -item17[] = {"Parse_Login",2,250,-75.000000,350.000000,25.000000,400.000000,0.000000,"Parse Login"}; +item17[] = {"Parse_Login",2,4346,-75.000000,350.000000,25.000000,400.000000,0.000000,"Parse Login"}; item18[] = {"Hive_Bad",4,218,50.000000,350.000000,150.000000,400.000000,10.000000,"Hive" \n "Bad"}; item19[] = {"ERROR__Wrong_HIVE",2,250,175.000000,350.000000,275.000000,400.000000,0.000000,"ERROR:" \n "Wrong HIVE" \n "Version"}; item20[] = {"Hive_Ok",4,218,-175.000000,400.000000,-75.000000,450.000000,0.000000,"Hive" \n "Ok"}; @@ -36,7 +36,7 @@ item31[] = {"ERROR__Bad_Versi",2,250,175.000000,650.000000,275.000000,700.000000 item32[] = {"Display_Ready",4,218,-175.000000,900.000000,-75.000000,950.000000,0.000000,"Display" \n "Ready"}; item33[] = {"Preload_Display",2,250,-75.000000,950.000000,25.000000,1000.000000,0.000000,"Preload" \n "Display"}; item34[] = {"Preload_Done",4,218,-175.000000,1000.000000,-75.000000,1050.000000,0.000000,"Preload" \n "Done"}; -item35[] = {"Initialize",2,4346,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"}; +item35[] = {"Initialize",2,250,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"}; item36[] = {"Finish",1,250,-75.000000,1150.000000,25.000000,1200.000000,0.000000,"Finish"}; item37[] = {"True",8,218,25.000000,1100.000000,125.000000,1150.000000,0.000000,"True"}; item38[] = {"Too_Long",4,218,300.000000,150.000000,400.000000,200.000000,0.000000,"Too" \n "Long"}; @@ -119,8 +119,8 @@ link59[] = {51,52}; link60[] = {52,29}; link61[] = {53,54}; link62[] = {54,20}; -globals[] = {25.000000,1,0,0,0,640,480,1,85,6316128,1,-783.086182,670.969788,804.274658,-149.949509,960,630,1}; -window[] = {2,-1,-1,-1,-1,760,21,992,0,3,978}; +globals[] = {25.000000,1,0,0,0,640,480,1,85,6316128,1,-442.430725,330.314087,709.154297,0.804942,960,880,1}; +window[] = {2,-1,-1,-1,-1,872,2033,3004,112,3,978}; *//*%FSM*/ class FSM { @@ -484,6 +484,7 @@ class FSM "" \n "if (_model == ""Survivor1_DZ"") then {" \n " _model = ""Survivor2_DZ"";" \n + " diag_log (""PLOGIN: Model was default, loading as survivor"");" \n "};" \n "" \n "_isHack = false;" \n diff --git a/dayz_equip/config.cpp b/dayz_equip/config.cpp index 73e7e1681..ee947fa03 100644 --- a/dayz_equip/config.cpp +++ b/dayz_equip/config.cpp @@ -1378,6 +1378,34 @@ class CfgMagazines model = "\dayz_equip\models\gold_bar.p3d"; picture = "\dayz_equip\textures\equip_bar_gold_CA.paa"; descriptionShort = "Gold Bar"; + class ItemActions + { + class Crafting + { + text = "Smelt 10oz bar"; + script = "spawn player_craftItem;"; + output[] = {"ItemGoldBar10oz"}; + }; + }; + }; + class ItemGoldBar10oz: CA_Magazine + { + scope = 2; + count = 1; + type = 256; + displayName = "Gold"; + model = "\dayz_equip\models\gold_bar_10oz.p3d"; + picture = "\dayz_equip\textures\equip_bar_gold_CA.paa"; + descriptionShort = "10oz Gold Bar"; + class ItemActions + { + class Crafting + { + text = "Smelt 1oz bars"; + script = "spawn player_craftItem;"; + output[] = {"ItemGoldBar10oz"}; + }; + }; }; class ItemSilverBar: CA_Magazine { @@ -1398,6 +1426,15 @@ class CfgMagazines model = "\dayz_equip\models\copper_bar.p3d"; picture = "\dayz_equip\textures\equip_bar_copper_CA.paa"; descriptionShort = "Copper Bar"; + class ItemActions + { + class Crafting + { + text = "Smelt Bronze"; + script = "spawn player_craftItem;"; + output[] = {"ItemBronzeBar"}; + }; + }; }; class ItemBronzeBar: CA_Magazine diff --git a/dayz_equip/models/bronze_bar.p3d b/dayz_equip/models/bronze_bar.p3d index c8ec29ef7..ceea95933 100644 Binary files a/dayz_equip/models/bronze_bar.p3d and b/dayz_equip/models/bronze_bar.p3d differ diff --git a/dayz_equip/models/gold_bar_10oz.p3d b/dayz_equip/models/gold_bar_10oz.p3d new file mode 100644 index 000000000..ca712b6cf Binary files /dev/null and b/dayz_equip/models/gold_bar_10oz.p3d differ diff --git a/dayz_equip/textures/goldbartexture10.paa b/dayz_equip/textures/goldbartexture10.paa new file mode 100644 index 000000000..0347e15a1 Binary files /dev/null and b/dayz_equip/textures/goldbartexture10.paa differ diff --git a/dayz_equip/textures/goldbartexture10.rvmat b/dayz_equip/textures/goldbartexture10.rvmat new file mode 100644 index 000000000..04f05483f --- /dev/null +++ b/dayz_equip/textures/goldbartexture10.rvmat @@ -0,0 +1,41 @@ +//////////////////////////////////////////////////////////////////// +//DeRap: Produced from mikero's Dos Tools Dll version 3.97 +//http://dev-heaven.net/projects/list_files/mikero-pbodll +//////////////////////////////////////////////////////////////////// + +#define _ARMA_ + +//Class dayz_equip : textures\goldbartexture10.rvmat{ +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,1.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {0.99498,0.99498,0.99498,1.0}; +specularPower = 100.799995; +PixelShaderID = "NormalMapSpecularMap"; +VertexShaderID = "NormalMap"; +class Stage1 +{ + texture = "dayz_equip\textures\goldbartexture10_NOHQ.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0,0,0}; + }; +}; +class Stage2 +{ + texture = "dayz_equip\textures\goldbartexture10_SMDI.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0,0,0}; + }; +}; +//}; \ No newline at end of file diff --git a/dayz_equip/textures/goldbartexture10_AS.paa b/dayz_equip/textures/goldbartexture10_AS.paa new file mode 100644 index 000000000..7debbd155 Binary files /dev/null and b/dayz_equip/textures/goldbartexture10_AS.paa differ diff --git a/dayz_equip/textures/goldbartexture10_NOHQ.paa b/dayz_equip/textures/goldbartexture10_NOHQ.paa new file mode 100644 index 000000000..bf44abe40 Binary files /dev/null and b/dayz_equip/textures/goldbartexture10_NOHQ.paa differ diff --git a/dayz_equip/textures/goldbartexture10_SMDI.paa b/dayz_equip/textures/goldbartexture10_SMDI.paa new file mode 100644 index 000000000..89791f634 Binary files /dev/null and b/dayz_equip/textures/goldbartexture10_SMDI.paa differ diff --git a/dayz_server/compile/server_playerDeaths.sqf b/dayz_server/compile/server_playerDeaths.sqf new file mode 100644 index 000000000..0ba7dbfb0 --- /dev/null +++ b/dayz_server/compile/server_playerDeaths.sqf @@ -0,0 +1,14 @@ +private["_character","_clientID"]; + +_character = _this select 0; +_clientID = owner _character; + +diag_log ("HIVE: Player Death list Request by ClientID: "+ str(_clientID)); + +diag_log(PlayerDeaths); + +dayzPlayerDeathsResult = PlayerDeaths; + +_clientID publicVariableClient "dayzPlayerDeathsResult"; + +PlayerDeaths \ No newline at end of file diff --git a/dayz_server/compile/server_playerDied.sqf b/dayz_server/compile/server_playerDied.sqf index ef6609aad..b190b3052 100644 --- a/dayz_server/compile/server_playerDied.sqf +++ b/dayz_server/compile/server_playerDied.sqf @@ -34,8 +34,11 @@ if (_killerName != "nil") then }; diag_log _loc_message; - [nil, nil, rspawn, [_killer, _message], { (_this select 0) globalChat (_this select 1) }] call RE; - //[nil, nil, rHINT, _message] call RE; + // [nil, nil, rspawn, [_killer, _message], { (_this select 0) globalChat (_this select 1) }] call RE; + // [nil, nil, rHINT, _message] call RE; + + // build array to store death messages to allow viewing at message board in trader citys. + PlayerDeaths set [count PlayerDeaths,_message]; // Cleanup _victim setVariable["AttackedBy", "nil", true]; diff --git a/dayz_server/init/publicEH_server.sqf b/dayz_server/init/publicEH_server.sqf index a611daab9..058c3b6cf 100644 --- a/dayz_server/init/publicEH_server.sqf +++ b/dayz_server/init/publicEH_server.sqf @@ -22,4 +22,5 @@ registerServerRpc = { ["dayzPublishVeh", { (_this select 1) spawn server_publishVeh; } ] call registerServerRpc; ["dayzTradeObject", { (_this select 1) spawn server_tradeObj; } ] call registerServerRpc; ["dayzTraderMenu", { (_this select 1) spawn server_traders; } ] call registerServerRpc; +["dayzPlayerDeaths", { (_this select 1) spawn server_deaths; } ] call registerServerRpc; \ No newline at end of file diff --git a/dayz_server/init/server_functions.sqf b/dayz_server/init/server_functions.sqf index 91f0884d6..db113b103 100644 --- a/dayz_server/init/server_functions.sqf +++ b/dayz_server/init/server_functions.sqf @@ -22,6 +22,7 @@ zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\co server_updateNearbyObjects = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf"; server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf"; fnc_plyrHit = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf"; +server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf"; vehicle_handleInteract = {