-
Posts
868 -
Joined
-
Last visited
-
Days Won
27
Content Type
Profiles
Forums
Articles
Posts posted by theduke
-
-
In the sanford and son trader mod i released, I have this server side. in a file called sanford.sqf
_vehicle_121= objNull; if (true) then { _this = createVehicle ["WarfareBunkerSign", [9919.52, 5422.02, 0.490173], [], 0, "CAN_COLLIDE"]; _vehicle_121 = _this; _this setDir 288.201; _this setVehicleInit "this SetObjectTexture [0,""graphics\sandfordandson.jpg""]"; };
I call this file in the server functions. (server side)
And the image goes into the mission pbo.
Also, if your pixels are off by 1, it will throw things off. you can use the picture in the sanford mod as a template.
-
1 hour ago, chi said:
Not sure if you guys caught it, but @NoxSicarius updated the admin tools to work with 1.0.6.1. That was the version at the time of the update. I think that the battleye filters need some work for the 1.0.6.2 update, but here's the link
https://github.com/noxsicarius/Epoch-Admin-Tools/tree/TestBranch
Enjoy & Thanks Nox!!
@JasonTM is the one who has been taking this project over
-
4 hours ago, Thug said:
I loaded the new WAI and modifed two files. After the 4th mission came up, it would not clear. it was the one with all the pot. btw was able to cut it down-lets say Im happy..
No other mission would spawn.Can someone help me with this?
Server RPT
wai config.sqf
spawnpoints.sqf
you need to add the map you use in the blacklist. Same thing happened to me for sahrani
if (use_blacklist) then {
call {
if (toLower worldName == "chernarus") exitWith {blacklist = [
[[0,16000,0],[1000,-0,0]], // Left
[[0,16000,0],[16000.0,14580.3,0]] // Top
];};
if (toLower worldName == "namalsk") exitWith {blacklist = [];};
if (toLower worldName == "panthera") exitWith {blacklist = [];};
if (toLower worldName == "tavi") exitWith {blacklist = [];};
if (toLower worldName == "lingor") exitWith {blacklist = [];};
if (toLower worldName == "napf") exitWith {blacklist = [];};
if (toLower worldName == " sauerland ") exitWith {blacklist = [];};
};
};diag_log "WAI: Blacklist Loaded";
-
i can confirm you dont need to be close to the door. When i installed this default, i was a fair distance from the door and was able to open it.
maybe something in the fn selfactions got messed up?
try diffmerging the files if you havnt.
-
5 hours ago, Bricktop said:
LOL
So .. I merged and just couldn't figure out why it wasn't working.
Everything was in place ... this is strange ...
==================
and then it struck me!
I really shouldn't do this stuff at 3am
my EXACT garageDoorOpener.sqf
+/*
+ Garage door opener script by salival (https://github.com/oiad)
+*/
+
+if (dayz_actionInProgress) exitWith {"You are already performing an action, wait for the current action to finish." call dayz_rollingMessages;};
+dayz_actionInProgress = true;
+
+private "_door";
+
+_door = _this select 3;
+
+if (isNull _door) exitWith {dayz_actionInProgress = false; systemChat "Selected door is NULL!";};
+
+{DZE_myVehicle removeAction _x} count s_player_gdoor_opener;s_player_gdoor_opener = [];
+s_player_gdoor_opener_ctrl = 1;
+
+if (_door animationPhase "Open_door" == 0) then {
+ systemChat "Opening door";
+ _door animate ["Open_door",1];
+} else {
+ systemChat "Closing door";
+ _door animate ["Open_door",0];
+};
+
+s_player_gdoor_opener_ctrl = -1;
+dayz_actionInProgress = false;result of copying and pasting from github :)
-
3 minutes ago, Kimarik said:
Hello! I am having problems with the remote vehicle option. For the players, the menu goes up for a second and they can not use it.
Furthermore, players can not search for coins in their corpses. They do not get an option an mouswheel. Everything works fine for the admins.
Infistar for the first one, its blocking the dialogs. Second one would have to see rpt
-
20 minutes ago, BetterDeadThanZed said:
Infistar's antiteleport is kicking in. As far as I know the only way to fix that is to disable the antiteleport. I ended up changing the config and replacing the name of the plane with "" so they just paradrop instead. When I disabled the antitelepor and flew them in the planet, some players reported their legs breaking in the plane, so the regular paradrop was the best solution to me.
im not really sure why this is happening.... i hve this installed on 3 servers since the update and all working fine.
I would assume the client or server RPTs might have something.
Also, when you launch the game. Add this in your launch parameters. it'll throw an error in your screen as it happens.
-showscripterrors
-
16 hours ago, Alone said:
I'm new to script programming, how do I change clothes in spaw?
below my settings, thanks to anyone who can help.class_selection = true; //Enable class selection dialog
#define START_ITEMS "ItemMorphine","ItemBandage",2,"ItemPainkiller","ItemWaterbottle","FoodPistachio"
class_public = [ // These are visible to anyone on the server[(localize "str_playerstats_bandit")+" Lvl1","Bandit1_DZ","BanditW1_DZ",[START_ITEMS,"17Rnd_9x19_glock17",2,"8Rnd_12Gauge_Slug",2],["G17_DZ","Remington870_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"",[],[],0,-5000,0,""],
[(localize "str_playerstats_bandit")+" Lvl2","Bandit1_DZ","BanditW1_DZ",[START_ITEMS,"17Rnd_9x19_glock17",3,"10Rnd_303British",2],["G17_DZ","LeeEnfield_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_Assault_Pack_EP1",[],[],0,-10000,0,""],
[(localize "str_playerstats_bandit")+" Lvl3","Bandit1_DZ","BanditW1_DZ",[START_ITEMS,"17Rnd_9x19_glock17",4,"15Rnd_W1866_Slug",2],["G17_DZ","Winchester1866_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,-15000,0,"MeleeHatchet"],
[(localize "str_playerstats_bandit")+" Lvl4","Bandit1_DZ","BanditW1_DZ",[START_ITEMS,"17Rnd_9x19_glock17",4,"75Rnd_545x39_RPK",2],["G17_DZ","RPK74_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,-50000,0,"MeleeHatchet"],
[(localize "str_playerstats_bandit")+" Lvl5","Bandit1_DZ","BanditW1_DZ",[START_ITEMS,"17Rnd_9x19_glock17",4,"30Rnd_556x45_Stanag",2],["G17_DZ","BAF_L85A2_RIS_SUSAT","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,-100000,0,"MeleeHatchet"],
[(localize "str_playerstats_bandit")+" Lvl6","Bandit1_DZ","BanditW1_DZ",[START_ITEMS,"17Rnd_9x19_glock17",4,"30Rnd_556x45_Stanag",2],["G17_DZ","SCAR_L_STD_HOLO","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,-150000,0,"MeleeHatchet"],[(localize "str_playerstats_hero")+" Lvl1",if (class_epoch) then {"Soldier_Sniper_PMC_DZ"} else {"Survivor3_DZ"},"SurvivorW2_DZ",[START_ITEMS,"6Rnd_45ACP",2,"10Rnd_303British",2],["Revolver_DZ","LeeEnfield_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"",[],[],0,5000,0,""],
[(localize "str_playerstats_hero")+" Lvl2",if (class_epoch) then {"Soldier_Sniper_PMC_DZ"} else {"Survivor3_DZ"},"SurvivorW2_DZ",[START_ITEMS,"6Rnd_45ACP",3,"15Rnd_W1866_Slug",2],["Revolver_DZ","Winchester1866_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_Assault_Pack_EP1",[],[],0,10000,0,""],
[(localize "str_playerstats_hero")+" Lvl3",if (class_epoch) then {"Soldier_Sniper_PMC_DZ"} else {"Survivor3_DZ"},"SurvivorW2_DZ",[START_ITEMS,"6Rnd_45ACP",4,"30Rnd_556x45_Stanag",2],["Revolver_DZ","M16A2_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,15000,0,"MeleeHatchet"],
[(localize "str_playerstats_hero")+" Lvl4",if (class_epoch) then {"Soldier_Sniper_PMC_DZ"} else {"Survivor3_DZ"},"SurvivorW2_DZ",[START_ITEMS,"6Rnd_45ACP",4,"75Rnd_545x39_RPK",2],["Revolver_DZ","RPK74_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,30000,0,"MeleeHatchet"],
[(localize "str_playerstats_hero")+" Lvl5",if (class_epoch) then {"Soldier_Sniper_PMC_DZ"} else {"Survivor3_DZ"},"SurvivorW2_DZ",[START_ITEMS,"6Rnd_45ACP",4,"30Rnd_556x45_Stanag",2],["Revolver_DZ","BAF_L85A2_RIS_SUSAT","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,60000,0,"MeleeHatchet"],
[(localize "str_playerstats_hero")+" Lvl6",if (class_epoch) then {"Soldier_Sniper_PMC_DZ"} else {"Survivor3_DZ"},"SurvivorW2_DZ",[START_ITEMS,"6Rnd_45ACP",4,"30Rnd_556x45_Stanag",2],["Revolver_DZ","SCAR_L_STD_HOLO","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"DZ_TK_Assault_Pack_EP1",[],[],0,100000,0,"MeleeHatchet"],[localize "str_playerstats_survivor","Survivor2_DZ","SurvivorW2_DZ",[START_ITEMS,"8Rnd_9x18_Makarov",2],["Makarov_DZ","ItemRadio","ItemFlashlight","ItemMap","ItemCompass","ItemKnife","Itemtoolbox"],"",[],[],0,0,0]
];Visit ebays documentation page. He documents stuff way better than bohemia does.
https://github.com/ebayShopper/ESSV3/blob/master/DOCUMENTATION.md
-
-
-
Thanks, already re-added it from 1061. Works well.
Just curious if it had any FPS impact just sitting there? Or if it was more a aesthetic thing to remove it? lol
Also i've tried to make one for weapons, but cant get it to work... is there something different that gets the weapons info? Like "CfgMagazines"
Thanks
Duke
-
46 minutes ago, chi said:
I actually have check wallet working on zombies and a working local_eventKill that spawns coins on them. Its in array format though, and I really prefer the round random configuration. I'll attach the array version thats working with check wallet on zombies (provided to me by @juandayz)
//[unit, selectionName, damage, source, projectile]
//will only run when local to the created object
//record any key hits to the required selection
private["_killer","_coins","_rand"];_array = _this select 0;
_zed = _array select 0;
_killer = _array select 1;
_type = _this select 1;if (local _zed) then {
_coins = _zed getVariable [Z_moneyVariable,0];_a =17;
_b =29;
_c =34;
_d =48;
_e =54;
_addcoins = [_e,_d,_c,_b,_a] call BIS_fnc_selectRandom;
_zed setVariable[Z_moneyVariable,_addcoins,true];_kills = _killer getVariable[_type,0];
_killer setVariable[_type,(_kills + 1),true];//increase players humanity when zed killed
_humanity = _killer getVariable["humanity",0];
_humanity = _humanity + 5;
_killer setVariable["humanity",_humanity,true];
};Thanks again to all of you for helping me out!
I should have phrased that better. lol it will work, but for the performance of what it does, with check wallet it adds alot more "actions" for the server.
Hence hurting the FPS.
But...every server owner does things differently. Thanks for sharing :)
-
2 hours ago, Klemaly said:
I have the same problem, can someone help me? When I join a server with DayZLauncher I have the same problem with the files, after pressing continue it drops me back to the main menu. I tried to disable the "DayZ Epoch" mod from expansions, but i cant do that. And when i launch the vanilla Arma 2 OA there is no "Dayz Epoch" mod in the expensions....
you need to redownload the 1061 version to join any server who hasnt updated yet, which is most likely 100% of servers lol
I didnt find a link anywhere for it, so i have to upload it for our players to be able to connect.
www.eliteslk.com
follow the instructions on my homepage to fix this issue
-
Hi, this question is mostly for one person, but i figured id make a post incase others came accross the same issue i did.
Some of my scripts use certain functions, and so far ive noticed one thats missing.
player_removeItems
@ebayShopper Just curious as to why this function would be removed from 1062? I was actually hoping that one for weapons would be implemented.
Hopefully you can shed some light on this and maybe guide us to patch this
Thanks
Duke
-
-
5 hours ago, chi said:
@JasonTM That works great to spawn coins on the player. I've tried to get the coins to spawn on the zombie by changing the killer setvariable to zed set variable, but again, I can't get the coins to spawn on the zombie.
I hate to ask more of you on this topic, but can you show me how to make them spawn on the zombies so that players have to use "Check Wallet" to get the coins?
Thanks again!!
This is what I had.. im no coder so don't laugh to hard... lol
//[unit, selectionName, damage, source, projectile]
//will only run when local to the created object
//record any key hits to the required selection
private ["_killer","_coins","_chance"];_array = _this select 0;
_zed = _array select 0;
_killer = _array select 1;
_type = _this select 1;if (local _zed) then {
_coins = _zed getVariable [Z_moneyVariable,0];
_chance = random 1;if (_chance <= .1) then { //10% chance that player gets up to 500 coins
_addcoins = round(random 500);
} else { // 90% chance that player gets random amount from 0 to 50
_addcoins = round(random 50);
};
_zed setVariable[Z_moneyVariable,_addcoins,true];_kills = _killer getVariable[_type,0];
_killer setVariable[_type,(_kills + 1),true];//increase players humanity when zed killed
_humanity = _killer getVariable["humanity",0];
_humanity = _humanity + 5;
_killer setVariable["humanity",_humanity,true];
};using the check wallet on zombies will not work. Ill have time to work on this in a bit for you
-
Thx for the good work ebay!
Installed with your latest git updates and so far so good on my test server
-
does your user have access to modify the database?
I need to give permission to the user for database access otherwise it wont work
-
dont think this can be done this way.
I do it a bit differently than what you're looking for.
But... It adds coins to players WHEN you kill the zombie.
This is my local_eventkill.sqf
Spoiler//[unit, selectionName, damage, source, projectile]
//will only run when local to the created object
//record any key hits to the required selection
private ["_zed","_killer","_kills","_array","_type","_humanity","_player_add_wealth"];_array = _this select 0;
_zed = _array select 0;
_killer = _array select 1;
_type = _this select 1;if (local _zed) then {
_kills = _killer getVariable[_type,0];
_killer setVariable[_type,(_kills + 1),true];
_player_wealth = _killer getVariable [Z_moneyVariable,0];
//_player_add_wealth = 50;
//increase players humanity when zed killed
_humanity = _killer getVariable["humanity",0];
_humanity = _humanity + 5;
switch true do {
case (_humanity <= -50000): {_player_add_wealth = 5};
case (_humanity <= -5000): {_player_add_wealth = 50};
case (_humanity >= 50000): {_player_add_wealth = 250};
case (_humanity >= 10000): {_player_add_wealth = 100};
default {_player_add_wealth = 50}; // You can use this as a default variable, not sure if it's needed in this situation.
};
_killer setVariable["humanity",_humanity,true];
_killer setVariable[Z_moneyVariable,(_player_wealth + _player_add_wealth),true];
call player_forceSave;
};it adds more coins depending on humanity level. You can change to your needs. but keep the structure the same, otherwise it'll break it.
This file is called in your compiles, you will need to change the paths.
GL
- Schalldampfer and chi
- 2
-
4 hours ago, Shelf74 said:
i replase Coins to worth.
no resault, suv dont's selling. but i can buy suv's with skin.
and i can sell item if i choose: Sell from vichel
where is this file - trader configs
this means the base class of the vehicle must be in the trader files also. I would assume they are as they are there as default. unless you removed them.
SUV_Green_DZE4 < Fully upgraded
SUV_Green_DZE < Base Class
-
5 hours ago, salival said:
Nah, that doesn't matter
would this be a possibility? seems fixed in 1062 when it comes out
[FIXED] Unable to sell upgraded _DZE[1-4] vehicle variants if their base vehicle class is removed from the trader configs
-
3 hours ago, Shelf74 said:
I dont think so.
config trader:
class Category_565 {
class SUV_TK_CIV_EP1_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Charcoal_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Green_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Yellow_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_White_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Silver_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Red_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Pink_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Orange_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Blue_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
class SUV_Camo_DZE4 {type = "trade_any_vehicle";buy[] = {20000,"Coins"};sell[] = {10000,"Coins"};};
your trader files seem wrong. If im not mistaken. its "worth" not "coins".
-
On 12/16/2017 at 1:56 PM, Shelf74 said:
I have one little problem. Suv skins scripr work allright. but I dont sell suv with skins at trader. epoch 1061
server_publishVehicle2.sqf
private ["_activatingPlayer","_isOK","_worldspace","_location","_dir","_class","_uid","_key","_keySelected","_characterID","_donotusekey"];
//PVDZE_veh_Publish2 = [[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"_worldspace = _this select 0;
_class = _this select 1;
_donotusekey = _this select 2;
_keySelected = _this select 3;
_activatingPlayer = _this select 4;if(_donotusekey) then {
_isOK = true;
} else {
_isOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
};if(!_isOK) exitWith { diag_log ("HIVE: CARKEY DOES NOT EXIST: "+ str(_keySelected)); };
if(_donotusekey) then {
_characterID = _keySelected;
} else {
_characterID = str(getNumber(configFile >> "CfgWeapons" >> _keySelected >> "keyid"));
};_dir = _worldspace select 0;
_location = _worldspace select 1;
_uid = _worldspace call dayz_objectUID2;//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid];#ifdef OBJECT_DEBUG
diag_log ("HIVE: WRITE: "+ str(_key));
#endif_key call server_hiveWrite;
// Switched to spawn so we can wait a bit for the ID
[_uid,_characterID,_class,_dir,_location,_donotusekey,_activatingPlayer] spawn {
private ["_object","_uid","_characterID","_done","_retry","_key","_result","_outcome","_oid","_class","_location","_object_para","_donotusekey","_activatingPlayer"];_uid = _this select 0;
_characterID = _this select 1;
_class = _this select 2;
//_dir = _this select 3;
_location = _this select 4;
_donotusekey = _this select 5;
_activatingPlayer = _this select 6;_done = false;
_retry = 0;
// TODO: Needs major overhaul for 1.1
while {_retry < 10} do {
// GET DB ID
_key = format["CHILD:388:%1:",_uid];
#ifdef OBJECT_DEBUG
diag_log ("HIVE: WRITE: "+ str(_key));
#endif
_result = _key call server_hiveReadWrite;
_outcome = _result select 0;
if (_outcome == "PASS") then {
_oid = _result select 1;
#ifdef OBJECT_DEBUG
diag_log("CUSTOM: Selected " + str(_oid));
#endif
_done = true;
_retry = 100;} else {
diag_log("CUSTOM: trying again to get id for: " + str(_uid));
_done = false;
_retry = _retry + 1;
uiSleep 1;
};
};if(!_done) exitWith { diag_log("CUSTOM: failed to get id for : " + str(_uid)); };
if(DZE_TRADER_SPAWNMODE) then {
//_object_para = createVehicle ["ParachuteMediumWest", [0,0,0], [], 0, "CAN_COLLIDE"];
_object_para = "ParachuteMediumWest" createVehicle [0,0,0];
_object_para setPos [_location select 0, _location select 1,(_location select 2) + 65];
//_object = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
_object = _class createVehicle [0,0,0];
} else {
//_object = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"];
// Don't use setPos or CAN_COLLIDE here. It will spawn inside other vehicles
_object = _class createVehicle _location;
};
_type = typeof _object;
if (_type == "SUV_TK_CIV_EP1_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_TK_CIV_EP1_DZE4.jpg''];';};
if (_type == "SUV_Charcoal_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Charcoal_DZE4.jpg''];';};
if (_type == "SUV_Green_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Green_DZE4.jpg''];';};
if (_type == "SUV_Yellow_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Yellow_DZE4.jpg''];';};
if (_type == "SUV_White_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_White_DZE4.jpg''];';};
if (_type == "SUV_Silver_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Silver_DZE4.jpg''];';};
if (_type == "SUV_Red_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Red_DZE4.jpg''];';};
if (_type == "SUV_Pink_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Pink_DZE4.jpg''];';};
if (_type == "SUV_Orange_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Orange_DZE4.jpg''];';};
if (_type == "SUV_Blue_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Blue_DZE4.jpg''];';};
if (_type == "SUV_Camo_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Camo_DZE4.jpg''];';};
if(!_donotusekey) then {
// Lock vehicle
_object setvehiclelock "locked";
};clearWeaponCargoGlobal _object;
clearMagazineCargoGlobal _object;
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
_object setVariable ["ObjectID", _oid, true];
_object setVariable ["lastUpdate",time];
_object setVariable ["CharacterID", _characterID, true];
//годмод
_szs = _activatingPlayer getVariable ['inSafeZone',0];
if (_szs == 1) then
{
[_object] spawn
{
_object = _this select 0;
player_fired = {
deleteVehicle (nearestObject [_this select 0,_this select 4]);
cutText ['You can not fire in a SafeZone!','WHITE IN'];
};
zombie_generate = {};
fnc_usec_damageHandler = {};
_object removeAllEventHandlers 'Fired';
_object addEventHandler ['Fired', {_this call player_fired;}];
{
_x removeAllEventHandlers 'Fired';
_x addEventHandler ['Fired', {_this call player_fired;}];
} forEach (crew _object);
fnc_veh_handleDam = {false};
_object removeAllEventHandlers 'HandleDamage';
_object addeventhandler ['HandleDamage',{ _this call fnc_veh_handleDam } ];
_object allowDamage false;
};
};
diag_log format["server_publishVehicle.sqf:%1",typeof _object];
//_object setVelocity [0,0,1];if(DZE_TRADER_SPAWNMODE) then {
_object attachTo [_object_para, [0,0,-1.6]];
uiSleep 1;
WaitUntil{(([_object] call FNC_GetPos) select 2) < 0.1};
detach _object;
deleteVehicle _object_para;
};
_object call fnc_veh_ResetEH;
// for non JIP users this should make sure everyone has eventhandlers for vehicles.
PVDZE_veh_Init = _object;
publicVariable "PVDZE_veh_Init";
processInitCommands;
diag_log format["PUBLISH: %1(%2) bought %3 with ObjectUID %4",if (alive _activatingPlayer) then {name _activatingPlayer} else {"DeadPlayer"},getPlayerUID _activatingPlayer,_class,_uid];
};
server_publishVehicle3.sqfprivate ["_activatingPlayer","_isOK","_object","_worldspace","_location","_dir","_class","_uid","_key","_keySelected","_characterID","_donotusekey"];
//PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"_object = _this select 0;
_worldspace = _this select 1;
_class = _this select 2;
_donotusekey = _this select 3;
_keySelected = _this select 4;
_activatingPlayer = _this select 5;
_characterID = _keySelected;_isOK = isClass(configFile >> "CfgVehicles" >> _class);
if (!_isOK || isNull _object) exitWith {
diag_log ("HIVE-pv3: Vehicle does not exist: "+ str(_class));
dze_waiting = "fail";
(owner _activatingPlayer) publicVariableClient "dze_waiting";
};#ifdef OBJECT_DEBUG
diag_log ("PUBLISH: Attempt " + str(_object));
#endif_dir = _worldspace select 0;
_location = _worldspace select 1;
_uid = _worldspace call dayz_objectUID2;//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid];
#ifdef OBJECT_DEBUG
diag_log ("HIVE: WRITE: "+ str(_key));
#endif_key call server_hiveWrite;
// Switched to spawn so we can wait a bit for the ID
[_object,_uid,_characterID,_class,_dir,_location,_donotusekey,_activatingPlayer] spawn {
private ["_object","_uid","_characterID","_done","_retry","_key","_result","_outcome","_oid","_class","_location","_donotusekey","_activatingPlayer","_countr","_objectID","_objectUID","_dir","_newobject","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty"];_object = _this select 0;
_objectID = _object getVariable ["ObjectID","0"];
_objectUID = _object getVariable ["ObjectUID","0"];
_uid = _this select 1;
_characterID = _this select 2;
_class = _this select 3;
_dir = _this select 4;
// _location = _this select 5;
_location = getPosATL _object;
_donotusekey = _this select 6;
_activatingPlayer = _this select 7;_done = false;
_retry = 0;
// TODO: Needs major overhaul for 1.1
while {_retry < 10} do {
// GET DB ID
_key = format["CHILD:388:%1:",_uid];
#ifdef OBJECT_DEBUG
diag_log ("HIVE: WRITE: "+ str(_key));
#endif
_result = _key call server_hiveReadWrite;
_outcome = _result select 0;
if (_outcome == "PASS") then {
_oid = _result select 1;
//_object setVariable ["ObjectID", _oid, true];
#ifdef OBJECT_DEBUG
diag_log("CUSTOM: Selected " + str(_oid));
#endif
_done = true;
_retry = 100;} else {
diag_log("CUSTOM: trying again to get id for: " + str(_uid));
_done = false;
_retry = _retry + 1;
uiSleep 1;
};
};if (!_done) exitWith {
diag_log("HIVE-pv3: failed to get id for : " + str(_uid));
_key = format["CHILD:310:%1:",_uid];
_key call server_hiveWrite;
dze_waiting = "fail";
(owner _activatingPlayer) publicVariableClient "dze_waiting";
};// add items from previous vehicle here
_weapons = getWeaponCargo _object;
_magazines = getMagazineCargo _object;
_backpacks = getBackpackCargo _object;clearWeaponCargoGlobal _object;
clearMagazineCargoGlobal _object;
clearBackpackCargoGlobal _object;// Remove marker
deleteVehicle _object;//_newobject = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
_newobject = _class createVehicle [0,0,0];// remove old vehicle from DB
[_objectID,_objectUID,_activatingPlayer] call server_deleteObj;// switch var to new vehicle at this point.
_object = _newobject;_object setDir _dir;
_object setPosATL _location;
//Add weapons
_objWpnTypes = _weapons select 0;
_objWpnQty = _weapons select 1;
_countr = 0;
{
_object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;
if (_type == "SUV_TK_CIV_EP1_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_TK_CIV_EP1_DZE4.jpg''];';};
if (_type == "SUV_Charcoal_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Charcoal_DZE4.jpg''];';};
if (_type == "SUV_Green_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Green_DZE4.jpg''];';};
if (_type == "SUV_Yellow_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Yellow_DZE4.jpg''];';};
if (_type == "SUV_White_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_White_DZE4.jpg''];';};
if (_type == "SUV_Silver_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Silver_DZE4.jpg''];';};
if (_type == "SUV_Red_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Red_DZE4.jpg''];';};
if (_type == "SUV_Pink_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Pink_DZE4.jpg''];';};
if (_type == "SUV_Orange_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Orange_DZE4.jpg''];';};
if (_type == "SUV_Blue_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Blue_DZE4.jpg''];';};
if (_type == "SUV_Camo_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Camo_DZE4.jpg''];';};
//Add Magazines
_objWpnTypes = _magazines select 0;
_objWpnQty = _magazines select 1;
_countr = 0;
{
_object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;//Add Backpacks
_objWpnTypes = _backpacks select 0;
_objWpnQty = _backpacks select 1;
_countr = 0;
{
_object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;_object setVariable ["ObjectID", _oid, true];
_object setVariable ["lastUpdate",time];
_object setVariable ["CharacterID", _characterID, true];dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
_object call fnc_veh_ResetEH;
// for non JIP users this should make sure everyone has eventhandlers for vehicles.
PVDZE_veh_Init = _object;
publicVariable "PVDZE_veh_Init";
dze_waiting = "success";
(owner _activatingPlayer) publicVariableClient "dze_waiting";
processInitCommands;
diag_log ("PUBLISH: " + str(_activatingPlayer) + " Upgraded " + (_class) + " with ID " + str(_uid));
};
server_monitor.sqf
private ["_date","_year","_month","_day","_hour","_minute","_date1","_key","_objectCount","_dir","_point","_i","_action","_dam","_selection","_wantExplosiveParts","_entity","_worldspace","_damage","_booleans","_rawData","_ObjectID","_class","_CharacterID","_inventory","_hitpoints","_fuel","_id","_objectArray","_script","_result","_outcome","_shutdown","_res"];
[] execVM "\z\addons\dayz_server\system\s_fps.sqf"; //server monitor FPS (writes each ~181s diag_fps+181s diag_fpsmin*)
#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"waitUntil {!isNil "BIS_MPF_InitDone" && initialized};
if (!isNil "sm_done") exitWith {}; // prevent server_monitor be called twice (bug during login of the first player)
sm_done = false;_legacyStreamingMethod = false; //use old object streaming method, more secure but will be slower and subject to the callExtension return size limitation.
dayz_serverIDMonitor = [];
_DZE_VehObjects = [];
dayz_versionNo = getText (configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo = getNumber (configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
_hiveLoaded = false;
_serverVehicleCounter = [];
_tempMaint = DayZ_WoodenFence + DayZ_WoodenGates;
diag_log "HIVE: Starting";//Set the Time
_key = "CHILD:307:";
_result = _key call server_hiveReadWrite;
_outcome = _result select 0;
if (_outcome == "PASS") then {
_date = _result select 1;
_year = _date select 0;
_month = _date select 1;
_day = _date select 2;
_hour = _date select 3;
_minute = _date select 4;if (dayz_ForcefullmoonNights) then {_date = [2012,8,2,_hour,_minute];};
diag_log ["TIME SYNC: Local Time set to:", _date, "Fullmoon:",dayz_ForcefullmoonNights,"Date given by HiveExt.dll:",_result select 1];
setDate _date;
dayzSetDate = _date;
publicVariable "dayzSetDate";
};//Stream in objects
/* STREAM OBJECTS */
//Send the key
_timeStart = diag_tickTime;for "_i" from 1 to 5 do {
diag_log "HIVE: trying to get objects";
_key = format["CHILD:302:%1:%2:",dayZ_instance, _legacyStreamingMethod];
_result = _key call server_hiveReadWrite;
if (typeName _result == "STRING") then {
_shutdown = format["CHILD:400:%1:",(profileNamespace getVariable "SUPERKEY")];
_res = _shutdown call server_hiveReadWrite;
diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res));
} else {
diag_log ("HIVE: found "+str(_result select 1)+" objects" );
_i = 99; // break
};
};if (typeName _result == "STRING") exitWith {
diag_log "HIVE: Connection error. Server_monitor.sqf is exiting.";
};diag_log "HIVE: Request sent";
_myArray = [];
_val = 0;
_status = _result select 0; //Process result
_val = _result select 1;
if (_legacyStreamingMethod) then {
if (_status == "ObjectStreamStart") then {
profileNamespace setVariable ["SUPERKEY",(_result select 2)];
_hiveLoaded = true;
//Stream Objects
diag_log ("HIVE: Commence Object Streaming...");
for "_i" from 1 to _val do {
_result = _key call server_hiveReadWriteLarge;
_status = _result select 0;
_myArray set [count _myArray,_result];
};
};
} else {
if (_val > 0) then {
_fileName = _key call server_hiveReadWrite;
_lastFN = profileNamespace getVariable["lastFN",""];
profileNamespace setVariable["lastFN",_fileName];
saveProfileNamespace;
if (_status == "ObjectStreamStart") then {
profileNamespace setVariable ["SUPERKEY",(_result select 2)];
_hiveLoaded = true;
_myArray = Call Compile PreProcessFile _fileName;
_key = format["CHILD:302:%1:%2:",_lastFN, _legacyStreamingMethod];
_result = _key call server_hiveReadWrite; //deletes previous object data dump
};
} else {
if (_status == "ObjectStreamStart") then {
profileNamespace setVariable ["SUPERKEY",(_result select 2)];
_hiveLoaded = true;
};
};
};diag_log ("HIVE: Streamed " + str(_val) + " objects");
// Don't spawn objects if no clients are online (createVehicle fails with Ref to nonnetwork object)
if ((playersNumber west + playersNumber civilian) == 0) exitWith {
diag_log "All clients disconnected. Server_monitor.sqf is exiting.";
};{
private ["_object","_posATL"];
//Parse Array
_action = _x select 0;
_idKey = _x select 1;
_type = _x select 2;
_ownerID = _x select 3;
_worldspace = _x select 4;
_inventory = _x select 5;
_hitPoints = _x select 6;
_fuel = _x select 7;
_damage = _x select 8;
_storageMoney = _x select 9;//set object to be in maintenance mode
_maintenanceMode = false;
_maintenanceModeVars = [];
_dir = 90;
_pos = [0,0,0];
_wsDone = false;
_wsCount = count _worldspace;//Vector building
_vector = [[0,0,0],[0,0,0]];
_vecExists = false;
_ownerPUID = "0";if (_wsCount >= 2) then {
_dir = _worldspace select 0;
_posATL = _worldspace select 1;
if (count _posATL == 3) then {
_pos = _posATL;
_wsDone = true;
};
if (_wsCount >= 3) then{
_ws2TN = typename (_worldspace select 2);
_ws3TN = typename (_worldspace select 3);
if (_wsCount == 3) then{
if (_ws2TN == "STRING") then{
_ownerPUID = _worldspace select 2;
} else {
if (_ws2TN == "ARRAY") then{
_vector = _worldspace select 2;
_vecExists = true;
};
};
} else {
if (_wsCount == 4) then{
if (_ws3TN == "STRING") then{
_ownerPUID = _worldspace select 3;
} else {
if (_ws2TN == "STRING") then{
_ownerPUID = _worldspace select 2;
};
};
if (_ws2TN == "ARRAY") then{
_vector = _worldspace select 2;
_vecExists = true;
} else {
if (_ws3TN == "ARRAY") then{
_vector = _worldspace select 3;
_vecExists = true;
};
};
};
};
} else {
_worldspace set [count _worldspace, "0"];
};
};if (!_wsDone) then {
if ((count _posATL) >= 2) then {
_pos = [_posATL select 0,_posATL select 1,0];
diag_log format["MOVED OBJ: %1 of class %2 with worldspace array = %3 to pos: %4",_idKey,_type,_worldspace,_pos];
} else {
diag_log format["MOVED OBJ: %1 of class %2 with worldspace array = %3 to pos: [0,0,0]",_idKey,_type,_worldspace];
};
};//diag_log format["OBJ: %1 - %2,%3,%4,%5,%6,%7,%8", _idKey,_type,_ownerID,_worldspace,_inventory,_hitPoints,_fuel,_damage];
/*
if (_type in _tempMaint) then {
//Use hitpoints for Maintenance system and other systems later.
//Enable model swap for a damaged model.
if ("Maintenance" in _hitPoints) then {
_maintenanceModeVars = [_type,_pos];
_type = _type + "_Damaged";
};
//TODO add remove object and readd old fence (hideobject would be nice to use here :-( )
//Pending change to new fence models\Layout
};
*/
_nonCollide = _type in DayZ_nonCollide;
//Create it
if (_nonCollide) then {
_object = createVehicle [_type, [0,0,0], [], 0, "NONE"];
} else {
_object = _type createVehicle [0,0,0]; //more than 2x faster than createvehicle array
};
_object setDir _dir;
_object setPosATL _pos;
_object setDamage _damage;
if (_vecExists) then {
_object setVectorDirAndUp _vector;
};
_object enableSimulation false;_doorLocked = _type in DZE_DoorsLocked;
_isPlot = _type == "Plastic_Pole_EP1_DZ";
// prevent immediate hive write when vehicle parts are set up
_object setVariable ["lastUpdate",diag_ticktime];
_object setVariable ["ObjectID", _idKey, true];
_object setVariable ["OwnerPUID", _ownerPUID, true];
if (Z_SingleCurrency && {(_type in DZE_MoneyStorageClasses) || (_object isKindOf "AllVehicles")}) then {
_object setVariable [Z_MoneyVariable, _storageMoney, true];
};dayz_serverIDMonitor set [count dayz_serverIDMonitor,_idKey];
if (!_wsDone) then {[_object,"position",true] call server_updateObject;};
if (_type == "Base_Fire_DZ") then {_object spawn base_fireMonitor;};
_isDZ_Buildable = _object isKindOf "DZ_buildables";
_isTrapItem = _object isKindOf "TrapItems";
_isSafeObject = _type in DayZ_SafeObjects;
//Dont add inventory for traps.
if (!_isDZ_Buildable && !_isTrapItem) then {
clearWeaponCargoGlobal _object;
clearMagazineCargoGlobal _object;
clearBackpackCargoGlobal _object;
if( (count _inventory > 0) && !_isPlot && !_doorLocked) then {
if (_type in DZE_LockedStorage) then {
// Do not send big arrays over network! Only server needs these
_object setVariable ["WeaponCargo",(_inventory select 0),false];
_object setVariable ["MagazineCargo",(_inventory select 1),false];
_object setVariable ["BackpackCargo",(_inventory select 2),false];
} else {
_weaponcargo = _inventory select 0 select 0;
_magcargo = _inventory select 1 select 0;
_backpackcargo = _inventory select 2 select 0;
_weaponqty = _inventory select 0 select 1;
{_object addWeaponCargoGlobal [_x, _weaponqty select _foreachindex];} foreach _weaponcargo;_magqty = _inventory select 1 select 1;
{_object addMagazineCargoGlobal [_x, _magqty select _foreachindex];} foreach _magcargo;_backpackqty = _inventory select 2 select 1;
{_object addBackpackCargoGlobal [_x, _backpackqty select _foreachindex];} foreach _backpackcargo;
};
} else {
if (DZE_permanentPlot && _isPlot) then {
_object setVariable ["plotfriends", _inventory, true];
};
if (DZE_doorManagement && _doorLocked) then {
_object setVariable ["doorfriends", _inventory, true];
};
};
};
if (_type == "SUV_TK_CIV_EP1_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_TK_CIV_EP1_DZE4.jpg''];';};
if (_type == "SUV_Charcoal_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Charcoal_DZE4.jpg''];';};
if (_type == "SUV_Green_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Green_DZE4.jpg''];';};
if (_type == "SUV_Yellow_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Yellow_DZE4.jpg''];';};
if (_type == "SUV_White_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_White_DZE4.jpg''];';};
if (_type == "SUV_Silver_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Silver_DZE4.jpg''];';};
if (_type == "SUV_Red_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Red_DZE4.jpg''];';};
if (_type == "SUV_Pink_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Pink_DZE4.jpg''];';};
if (_type == "SUV_Orange_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Orange_DZE4.jpg''];';};
if (_type == "SUV_Blue_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Blue_DZE4.jpg''];';};
if (_type == "SUV_Camo_DZE4") then {_object setVehicleInit 'this setObjectTexture [0, ''scripts\SUVskins\SUV_Camo_DZE4.jpg''];';};
if (_object isKindOf "AllVehicles") then {
_object setVariable ["CharacterID", _ownerID, true];
_isAir = _object isKindOf "Air";
{
_selection = _x select 0;
_dam = if (!_isAir && {_selection in dayZ_explosiveParts}) then {(_x select 1) min 0.8;} else {_x select 1;};
_strH = "hit_" + (_selection);
_object setHit[_selection,_dam];
_object setVariable [_strH,_dam,true];
} foreach _hitpoints;
[_object,"damage"] call server_updateObject;_object setFuel _fuel;
if (!_isSafeObject) then {
_DZE_VehObjects set [count _DZE_VehObjects,_object];
_object call fnc_veh_ResetEH;
if (_ownerID != "0" && {!(_object isKindOf "Bicycle")}) then {_object setVehicleLock "locked";};
_serverVehicleCounter set [count _serverVehicleCounter,_type]; // total each vehicle
} else {
_object enableSimulation true;
};[_object] execVM "dayz_code\compile\server_deleteSafezones.sqf";
} else {
// Fix for leading zero issues on safe codes after restart
_lockable = getNumber (configFile >> "CfgVehicles" >> _type >> "lockable");
_codeCount = count (toArray _ownerID);
switch (_lockable) do {
case 4: {
switch (_codeCount) do {
case 3: {_ownerID = format["0%1",_ownerID];};
case 2: {_ownerID = format["00%1",_ownerID];};
case 1: {_ownerID = format["000%1",_ownerID];};
};
};
case 3: {
switch (_codeCount) do {
case 2: {_ownerID = format["0%1",_ownerID];};
case 1: {_ownerID = format["00%1",_ownerID];};
};
};
};
_object setVariable ["CharacterID", _ownerID, true];
if (_isDZ_Buildable || {(_isSafeObject && !_isTrapItem)}) then {
_object setVariable["memDir",_dir,true];
if (DZE_GodModeBase && {!(_type in DZE_GodModeBaseExclude)}) then {
_object addEventHandler ["HandleDamage",{false}];
} else {
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
};
_object setVariable ["OEMPos",_pos,true]; // used for inplace upgrades and lock/unlock of safe
} else {
_object enableSimulation true;
};
if (_isDZ_Buildable || {_isTrapItem}) then {
//Use inventory for owner/clan info and traps armed state
{
_xTypeName = typeName _x;
switch (_xTypeName) do {
case "ARRAY": {
_x1 = _x select 1;
switch (_x select 0) do {
case "ownerArray" : { _object setVariable ["ownerArray", _x1, true]; };
case "clanArray" : { _object setVariable ["clanArray", _x1, true]; };
case "armed" : { _object setVariable ["armed", _x1, true]; };
case "padlockCombination" : { _object setVariable ["dayz_padlockCombination", _x1, false]; };
case "BuildLock" : { _object setVariable ["BuildLock", _x1, true]; };
};
};
case "STRING": {_object setVariable ["ownerArray", [_x], true]; };
case "BOOLEAN": {_object setVariable ["armed", _x, true]};
};
} foreach _inventory;
if (_maintenanceMode) then { _object setVariable ["Maintenance", true, true]; _object setVariable ["MaintenanceVars", _maintenanceModeVars]; };
};
};
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object]; //Monitor the object
} forEach _myArray;//enable simulation on vehicles after all buildables are spawned
{
_x enableSimulation true;
_x setVelocity [0,0,1];
} forEach _DZE_VehObjects;diag_log format["HIVE: BENCHMARK - Server_monitor.sqf finished streaming %1 objects in %2 seconds (unscheduled)",_val,diag_tickTime - _timeStart];
// # END OF STREAMING #
processInitCommands;
if (dayz_townGenerator) then {
call compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_plantSpawner.sqf"; // Draw the pseudo random seeds
};[] execFSM "\z\addons\dayz_server\system\server_vehicleSync.fsm";
[] execVM "\z\addons\dayz_server\system\scheduler\sched_init.sqf"; // launch the new task schedulercreateCenter civilian;
actualSpawnMarkerCount = 0;
// count valid spawn markers, since different maps have different amounts
for "_i" from 0 to 10 do {
if ((getMarkerPos format["spawn%1",_i]) distance [0,0,0] > 0) then {
actualSpawnMarkerCount = actualSpawnMarkerCount + 1;
} else {
_i = 11; // exit since we did not find any further markers
};
};
diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount];if (isDedicated) then {endLoadingScreen;};
allowConnection = true;
sm_done = true;
publicVariable "sm_done";// Trap loop
[] spawn {
private ["_array","_array2","_array3","_script","_armed"];
_array = str dayz_traps;
_array2 = str dayz_traps_active;
_array3 = str dayz_traps_trigger;while {1 == 1} do {
if ((str dayz_traps != _array) || (str dayz_traps_active != _array2) || (str dayz_traps_trigger != _array3)) then {
_array = str dayz_traps;
_array2 = str dayz_traps_active;
_array3 = str dayz_traps_trigger;
//diag_log "DEBUG: traps";
//diag_log format["dayz_traps (%2) -> %1", dayz_traps, count dayz_traps];
//diag_log format["dayz_traps_active (%2) -> %1", dayz_traps_active, count dayz_traps_active];
//diag_log format["dayz_traps_trigger (%2) -> %1", dayz_traps_trigger, count dayz_traps_trigger];
//diag_log "DEBUG: end traps";
};{
if (isNull _x) then {
dayz_traps = dayz_traps - [_x];
_armed = false;
_script = {};
} else {
_armed = _x getVariable ["armed", false];
_script = call compile getText (configFile >> "CfgVehicles" >> typeOf _x >> "script");
};
if (_armed) then {
if !(_x in dayz_traps_active) then {["arm", _x] call _script;};
} else {
if (_x in dayz_traps_active) then {["disarm", _x] call _script;};
};
uiSleep 0.01;
} forEach dayz_traps;
uiSleep 1;
};
};//Points of interest
//[] execVM "\z\addons\dayz_server\compile\server_spawnInfectedCamps.sqf"; //Adds random spawned camps in the woods with corpses and loot tents (negatively impacts FPS)
[] execVM "\z\addons\dayz_server\compile\server_spawnCarePackages.sqf";
[] execVM "\z\addons\dayz_server\compile\server_spawnCrashSites.sqf";if (dayz_townGenerator) then {execVM "\z\addons\dayz_server\system\lit_fireplaces.sqf";};
"PVDZ_sec_atp" addPublicVariableEventHandler {
_x = _this select 1;
switch (1==1) do {
case (typeName (_x select 0) == "SCALAR") : { // just some logs from the client
diag_log (toString _x);
};
case (count _x == 2) : { // wrong side
diag_log format["P1ayer %1 reports possible 'side' hack. Server may be compromised!",(_x select 1) call fa_plr2Str];
};
default { // player hit
_unit = _x select 0;
_source = _x select 1;
_victim_pos = getPosATL _unit;
_agressor_pos = getPosATL _source;
if (!isNull _source) then {
diag_log format ["P1ayer %1%7(%8) hit by %2%9(%10) %3 from %4 meters in %5 for %6 damage",
_unit call fa_plr2Str, _source call fa_plr2Str, toString (_x select 2), _x select 3, _x select 4, _x select 5, _victim_pos, mapGridPosition(_victim_pos), _agressor_pos, mapGridPosition(_agressor_pos)];
};
};
};
};"PVDZ_objgather_Knockdown" addPublicVariableEventHandler {
_tree = (_this select 1) select 0;
_player = (_this select 1) select 1;
_dis = _player distance _tree;
_name = if (alive _player) then {name _player} else {"DeadPlayer"};
_uid = getPlayerUID _player;
_treeModel = _tree call fn_getModelName;if ((_dis < 30) && (_treeModel in dayz_trees) && (_uid != "")) then {
_tree setDamage 1;
dayz_choppedTrees set [count dayz_choppedTrees,_tree];
diag_log format["Server setDamage on tree %1 chopped down by %2(%3)",_treeModel,_name,_uid];
};
};// preload server traders menu data into cache
if !(DZE_ConfigTrader) then {
{
// get tids
_traderData = call compile format["menu_%1;",_x];
if (!isNil "_traderData") then {
{
_traderid = _x select 1;
_retrader = [];_key = format["CHILD:399:%1:",_traderid];
_data = "HiveEXT" callExtension _key;
_result = call compile format["%1",_data];
_status = _result select 0;
if (_status == "ObjectStreamStart") then {
_val = _result select 1;
call compile format["ServerTcache_%1 = [];",_traderid];
for "_i" from 1 to _val do {
_data = "HiveEXT" callExtension _key;
_result = call compile format ["%1",_data];
call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result];
_retrader set [count _retrader,_result];
};
};
} forEach (_traderData select 0);
};
} forEach serverTraders;
};if (_hiveLoaded) then {
_serverVehicleCounter spawn {
// spawn_vehicles
// Get all buildings and roads only once. Very taxing, but only on first startup
_serverVehicleCounter = _this;
_vehiclesToUpdate = [];
_startTime = diag_tickTime;
_buildingList = [];
_cfgLootFile = missionConfigFile >> "CfgLoot" >> "Buildings";
{
if (isClass (_cfgLootFile >> typeOf _x)) then {
_buildingList set [count _buildingList,_x];
};
} count (getMarkerPos "center" nearObjects ["building",((getMarkerSize "center") select 1)]);
_roadList = getMarkerPos "center" nearRoads ((getMarkerSize "center") select 1);
_vehLimit = MaxVehicleLimit - (count _serverVehicleCounter);
if (_vehLimit > 0) then {
diag_log ("HIVE: Spawning # of Vehicles: " + str(_vehLimit));
for "_x" from 1 to _vehLimit do {call spawn_vehicles;};
} else {
diag_log "HIVE: Vehicle Spawn limit reached!";
_vehLimit = 0;
};
if (dayz_townGenerator) then {
// Vanilla town generator spawns debris locally on each client
MaxDynamicDebris = 0;
} else {
// Epoch global dynamic debris
diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris));
for "_x" from 1 to MaxDynamicDebris do {call spawn_roadblocks;};
};diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes));
for "_x" from 1 to MaxAmmoBoxes do {call spawn_ammosupply;};diag_log ("HIVE: Spawning # of Veins: " + str(MaxMineVeins));
for "_x" from 1 to MaxMineVeins do {call spawn_mineveins;};
diag_log format["HIVE: BENCHMARK - Server finished spawning %1 DynamicVehicles, %2 Debris, %3 SupplyCrates and %4 MineVeins in %5 seconds (scheduled)",_vehLimit,MaxDynamicDebris,MaxAmmoBoxes,MaxMineVeins,diag_tickTime - _startTime];
//Update gear last after all dynamic vehicles are created to save random loot to database (low priority)
{[_x,"gear"] call server_updateObject} count _vehiclesToUpdate;
};
};[] spawn server_spawnEvents;
/* //Causes issues with changing clothes
_debugMarkerPosition = [(respawn_west_original select 0),(respawn_west_original select 1),1];
_vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"];
_vehicle_0 setPos _debugMarkerPosition;
_vehicle_0 setVariable ["ObjectID","1",true];
*/
Thats most likely because of he classname of the vehicle.
SUV_TK_CIV_EP1_DZE4 is the Upgraded version of the regular SUV which the classname would be SUV_TK_CIV_EP1_DZE. Notice the 4 is not there at the end.
You'll need to add those specific vehicles to your trader files.
-
5 hours ago, Bricktop said:
I have this working perfect on my server and I added gems to the zombies but I can't seem to figure out where to increase the chance that zombies will have loot on them.
I found this - \dayz.epoch.chernarus\dayz_code\configs\CfgLoot\Groups\Zombies
ZombieSuit[] =
{
{Loot_GROUP, 6, Consumable},
{Loot_GROUP, 1, AmmoCivilian},
{Loot_MAGAZINE, 3, ItemBandage},
{Loot_MAGAZINE, 2, ItemObsidian}, <<----- added gem here
{Loot_MAGAZINE, 2, ItemAntibacterialWipe},
{Loot_MAGAZINE, 3, ItemDocument}
};ZombieSuitViral[] =
{
{Loot_GROUP, 10, ZombieSuit},
{Loot_MAGAZINE, 1, ItemAntibiotic1}
};
I think these settings only control what loot zeds have on them and % of that loot
BUT
I trying to increase the chance that zed have loot not what loot they have.
=========================Any help would be appreciated,
increasing the chance is done by the zombie_generate.sqf like A man mentioned, but you need to make sure that the loot file you change (the one in this quote), is also in your mission file. You might need to change some paths.
Problem with a custom sign
in Scripting
Posted
you're asking in the forums for a solution. I gave you a solution. Suit yourself.
Ill refrain from helping you in the future ;) don't seem to appreciate it