Jump to content

[Release] ComboKeyChanger_cKc [Updated 1.2]


Recommended Posts

https://github.com/SJossy/Combo-Key-Changer/tree/Release-2.0.0

 

if someone could verify that it works without plot for life that would be awesome, if anyone wants to contribute to the updates that would also be great, sorry if you're still here Barra but there's been no response from you for a month roughly :P

I really need to start reading to the end of threads. I've just spent the last several hours rewriting for use with P4L on my server, haha. Oh well, I guess I could have spent the time doing something worse. :)

 

Just a heads up, P4L uses 

_ownerID = _cursorTarget getVariable ["ownerPUID","0"];

in fn_selfActions and you have used _onwerPUID for all of your if statements so they wont see the player as the owner. Not a big deal if you change the values, but for people who rely on following instructions they may miss that and wonder why it doesn't work. 

Link to comment
Share on other sites

Your changes are actually much neater than mine, so I'm going with your code. :)

 

Next project, adding UIDs the plot pole so you don't lose the right to build at your base if your friend made the plot pole and you die after he logs out. 

Link to comment
Share on other sites

Your changes are actually much neater than mine, so I'm going with your code. :)

 

Next project, adding UIDs the plot pole so you don't lose the right to build at your base if your friend made the plot pole and you die after he logs out. 

 

That would be nice for those that have friends  :lol:

Link to comment
Share on other sites

ok i cant get this work at all :(

Do I put the compiles back into the dayz_code or a custom one?

And the fn_selfActions.sqf put these in a custom folder?

Im just lost sry guys

you can't put anything back into the dayz_code, all changes made from files within need to be redirected to a place inside the mission folder.

 

look up how to make a custom compiles before attempting this, it should be the first thing someone learns before modding any server.

Link to comment
Share on other sites

rgr that this is my custom compiles how does it look?

/*
    FUNCTION COMPILES
*/
//Player only
if (!isDedicated) then {

    "filmic" setToneMappingParams [0.07, 0.31, 0.23, 0.37, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";

    BIS_Effects_Burn =                 compile preprocessFile "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf";
    player_zombieCheck =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf";    //Run on a players computer, checks if the player is near a zombie
    player_zombieAttack =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieAttack.sqf";    //Run on a players computer, causes a nearby zombie to attack them
    fnc_usec_damageActions =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageActions.sqf";        //Checks which actions for nearby casualty
    fnc_inAngleSector =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inAngleSector.sqf";        //Checks which actions for nearby casualty
    fnc_usec_selfActions =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";        //Checks which actions for self
    fnc_usec_unconscious =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf";
    player_temp_calculation    =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_temperatur.sqf";        //Temperatur System    //TeeChange
    player_weaponFiredNear =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponFiredNear.sqf";
    player_animalCheck =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_animalCheck.sqf";
    player_spawnCheck =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnCheck.sqf";
    player_dumpBackpack =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_dumpBackpack.sqf";
    building_spawnLoot =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnLoot.sqf";
    building_spawnZombies =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnZombies.sqf";
    dayz_spaceInterrupt =            compile preprocessFileLineNumbers "custom\dayz_spaceInterrupt.sqf";
    player_fired =                    compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_fired.sqf";            //Runs when player fires. Alerts nearby Zeds depending on calibre && audial rating
    player_harvest =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_harvest.sqf";
    player_packTent =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packTent.sqf";
    player_packVault =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packVault.sqf";
    player_unlockVault =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockVault.sqf";

    player_removeObject =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\remove.sqf";
    player_removeNearby =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeNearby.sqf";

    player_removeTankTrap = {
        //Object Array, Range, Error Message (@Skaronator)
        [["Hedgehog_DZ"], 1,"STR_EPOCH_ACTIONS_14"] call player_removeNearby;
    };
    player_removeNet = {
        [["DesertLargeCamoNet","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ"], 5,"str_epoch_player_8"] call player_removeNearby;
    };

    player_login = {
        private ["_unit","_detail"];
        _unit = _this select 0;
        _detail = _this select 1;
        if(_unit == getPlayerUID player) then {
            player setVariable["publish",_detail];
        };
    };

    player_unlockDoor =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockDoor.sqf";
    ckc_button =                compile preprocessFileLineNumbers "ckc\ckc_button.sqf";                    // Change Door codes and Vaults
    ckc_upddoor =                compile preprocessFileLineNumbers "ckc\ckc_upddoor.sqf";                    // Change Door codes and Vaults
    ckc_updSafe =                compile preprocessFileLineNumbers "ckc\ckc_updSafe.sqf";                    // Change Door codes and Vaults
    player_changeCombo =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_changeCombo.sqf";

    player_lockVault =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_lockVault.sqf";
    player_updateGui =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_updateGui.sqf";
    player_crossbowBolt =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_crossbowBolt.sqf";
    player_music =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_music.sqf";            //Used to generate ambient music
    player_death =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf";
    player_switchModel =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_switchModel.sqf";
    player_checkStealth =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_checkStealth.sqf";
    world_sunRise =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_sunRise.sqf";
    world_surfaceNoise =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_surfaceNoise.sqf";
    player_humanityMorph =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityMorph.sqf";
    player_throwObject =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf";
    player_alertZombies =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf";
    player_fireMonitor =         compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf";
    fn_gearMenuChecks =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_gearMenuChecks.sqf";

    //Objects
    object_roadFlare =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_roadFlare.sqf";
    object_setpitchbank    =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf";
    object_monitorGear =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_monitorGear.sqf";

    local_roadDebris =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_roadDebris.sqf";

    //Zombies
    zombie_findTargetAgent =     compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_findTargetAgent.sqf";
    zombie_loiter =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_loiter.sqf";            //Server compile, used for loiter behaviour
    zombie_generate =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_generate.sqf";            //Server compile, used for loiter behaviour
    wild_spawnZombies =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\wild_spawnZombies.sqf";            //Server compile, used for loiter behaviour

    pz_attack =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf";

    dog_findTargetAgent =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf";

    //actions
    player_countmagazines =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_countmagazines.sqf";
    player_addToolbelt =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_addToolbelt.sqf";
    player_copyKey =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_copyKey.sqf";
    player_reloadMag =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_reloadMags.sqf";
    player_loadCrate =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_loadCrate.sqf";
    player_craftItem =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf";
    player_tentPitch =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\tent_pitch.sqf";
    player_vaultPitch =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\vault_pitch.sqf";
    player_drink =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_drink.sqf";
    player_eat =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_eat.sqf";
    player_useMeds =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_useMeds.sqf";
    player_fillWater =             compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\water_fill.sqf";
    player_makeFire =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf";
    player_harvestPlant =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_harvestPlant.sqf";
    player_goFishing =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.sqf";
    player_build =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
    player_wearClothes =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf";
    object_pickup =             compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf";
    player_flipvehicle =         compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf";
    player_sleep =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf";
    player_antiWall =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_antiWall.sqf";
    player_deathBoard =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\list_playerDeathsAlt.sqf";

    player_plotPreview =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_showPlotRadius.sqf";
    player_upgradeVehicle =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_upgradeVehicle.sqf";

    //ui
    player_selectSlot =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";
    player_gearSync    =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSync.sqf";
    player_gearSet    =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSet.sqf";
    ui_changeDisplay =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_changeDisplay.sqf";
    ui_gear_sound =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_gear_sound.sqf";

    //System
    player_monitor =            compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_monitor.sqf";
    player_spawn_1 =            compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_1.sqf";
    player_spawn_2 =            compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf";
    onPreloadStarted             "dayz_preloadFinished = false;";
    onPreloadFinished             "dayz_preloadFinished = true;";

    // helper functions
    player_hasTools =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_hasTools.sqf";
    player_checkItems =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_checkItems.sqf";
    player_removeItems =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_removeItems.sqf";
    //Trader ["Trader City Name",false,"enter"] - Trader City Name | Show Message | "enter" || "leave"
    player_traderCity =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderCity.sqf";

    // combination of check && remove items
    player_checkAndRemoveItems = {
        private ["_items","_b"];
        _items = _this;
        _b = _items call player_checkItems;
        if (_ B) then {
            _b = _items call player_removeItems;
        };
        _b
    };

    dayz_HungerThirst = {
        dayz_hunger = dayz_hunger + (_this select 0);
        dayz_thirst = dayz_thirst + (_this select 1);
    };

    epoch_totalCurrency = {
        // total currency
        _total_currency = 0;
        {
            _part =  (configFile >> "CfgMagazines" >> _x);
            _worth =  (_part >> "worth");
            if isNumber (_worth) then {
                _total_currency = _total_currency + getNumber(_worth);
            };
        } count (magazines player);
        _total_currency
    };

    epoch_itemCost = {
        _trade_total = 0;
        {
            _part_in_configClass =  configFile >> "CfgMagazines" >> (_x select 0);
            if (isClass (_part_in_configClass)) then {
                _part_inWorth = (_part_in_configClass >> "worth");
                if isNumber (_part_inWorth) then {
                    _trade_total = _trade_total + (getNumber(_part_inWorth) * (_x select 1));
                };
            };
        } count _this;

        //diag_log format["DEBUG TRADER ITEMCOST: %1", _this];
        _trade_total
    };

    epoch_returnChange =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\epoch_returnChange.sqf";
    // usage [["partinclassname",4]] call epoch_returnChange;

    dayz_losChance = {
        private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"];
        _agent =     _this select 0;
        _dis =        _this select 1;
        _maxDis =     _this select 2;
        // diag_log ("VAL:  " + str(_this));
        _val =         (_maxDis - _dis) max 0;
        _maxExp =     ((exp 2) * _maxDis);
        _myExp =     ((exp 2) * (_val)) / _maxExp;
        _myExp = _myExp * 0.7;
        _myExp
    };

    ui_initDisplay = {
        private["_control","_ctrlBleed","_display","_ctrlFracture","_ctrlDogFood","_ctrlDogWater","_ctrlDogWaterBorder", "_ctrlDogFoodBorder"];
        disableSerialization;
        _display = uiNamespace getVariable 'DAYZ_GUI_display';
        _control =     _display displayCtrl 1204;
        _control ctrlShow false;
        if (!r_player_injured) then {
            _ctrlBleed =     _display displayCtrl 1303;
            _ctrlBleed ctrlShow false;
        };
        if (!r_fracture_legs && !r_fracture_arms) then {
            _ctrlFracture =     _display displayCtrl 1203;
            _ctrlFracture ctrlShow false;
        };
        _ctrlDogFoodBorder = _display displayCtrl 1501;
        _ctrlDogFoodBorder ctrlShow false;
        _ctrlDogFood = _display displayCtrl 1701;
        _ctrlDogFood ctrlShow false;

        _ctrlDogWaterBorder = _display displayCtrl 1502;
        _ctrlDogWaterBorder ctrlShow false;
        _ctrlDogWater = _display displayCtrl 1702;
        _ctrlDogWater ctrlShow false
    };

    dayz_losCheck = {
        private["_target","_agent","_cantSee"];
        _target = _this select 0; // PUT THE PLAYER IN FIRST ARGUMENT!!!!
        _agent = _this select 1;
        _cantSee = true;
        if (!isNull _target) then {

            _tPos = visiblePositionASL _target;
            _zPos = visiblePositionASL _agent;

            _tPos set [2,(_tPos select 2)+1];
            _zPos set [2,(_zPos select 2)+1];

            if ((count _tPos > 0) && (count _zPos > 0)) then {
                _cantSee = terrainIntersectASL [_tPos, _zPos];
                if (!_cantSee) then {
                    _cantSee = lineIntersects [_tPos, _zPos, _agent, vehicle _target];
                };
            };
        };
        _cantSee
    };

    dayz_equipCheck = {
        private ["_empty", "_needed","_diff","_success"];
        _config = _this;
        _empty = [player] call BIS_fnc_invSlotsEmpty;
        _needed = [_config] call BIS_fnc_invSlotType;
        _diff = [_empty,_needed] call BIS_fnc_vectorDiff;

        _success = true;
        {
            if (_x > 0) then {_success = false};
        } count _diff;
        hint format["Config: %5\nEmpty: %1\nNeeded: %2\nDiff: %3\nSuccess: %4",_empty,_needed,_diff,_success,_config];
        _success
    };

    vehicle_gear_count = {
        private["_counter"];
        _counter = 0;
        {
            _counter = _counter + _x;
        } count _this;
        _counter
    };

    player_tagFriendlyMsg = {
        if(player == (_this select 0)) then {
            cutText[(localize "str_epoch_player_2"),"PLAIN DOWN"];
        };
    };

    player_serverModelChange = {
        private["_object","_model"];
        _object = _this select 0;
        _model = _this select 1;
        if (_object == player) then {
            _model call player_switchModel;
        };
    };

    player_guiControlFlash =     {
        private["_control"];
        _control = _this;
        if (ctrlShown _control) then {
            _control ctrlShow false;
        } else {
            _control ctrlShow true;
        };
    };
    
    gearDialog_create = {
        private ["_i","_dialog"];
        if (!isNull (findDisplay 106)) then {
            (findDisplay 106) closeDisplay 0;
        };
        openMap false;
        closeDialog 0;
        if (gear_done) then {sleep 0.001;};
        player action ["Gear", player];
        if (gear_done) then {sleep 0.001;};
        _dialog = findDisplay 106;
        _i = 0;
        while {isNull _dialog} do {//DO NOT CHANGE TO A FOR LOOP!
            _i = _i + 1;
            _dialog = findDisplay 106;
            if (gear_done) then {sleep 0.001;};
            if (_i in [100,200,299]) then {
                closeDialog 0;
                player action ["Gear", player];
            };
            if (_i > 300) exitWith {};
        };
        if (gear_done) then {sleep 0.001;};
        _dialog = findDisplay 106;
        if ((parseNumber(_this select 0)) != 0) then {
            ctrlActivate (_dialog displayCtrl 157);
            if (gear_done) then {
                waitUntil {ctrlShown (_dialog displayCtrl 159)};
                sleep 0.001;
            };
        };
        _dialog
    };

    gear_ui_offMenu = {
        private["_control","_parent","_menu"];
        disableSerialization;
        _control =     _this select 0;
        _parent =     findDisplay 106;
        if (!(_this select 3)) then {
            for "_i" from 0 to 9 do {
                _menu = _parent displayCtrl (1600 + _i);
                _menu ctrlShow false;
            };
            _grpPos = ctrlPosition _control;
            _grpPos set [3,0];
            _control ctrlSetPosition _grpPos;
            _control ctrlShow false;
            _control ctrlCommit 0;
        };
    };

    dze_surrender_off = {
        player setVariable ["DZE_Surrendered", false, true];
        DZE_Surrender = false;
    };

    gear_ui_init = {
        private["_control","_parent","_menu","_dspl","_grpPos"];
        disableSerialization;
        _parent = findDisplay 106;
        _control =     _parent displayCtrl 6902;
        for "_i" from 0 to 9 do {
            _menu = _parent displayCtrl (1600 + _i);
            _menu ctrlShow false;
        };
        _grpPos = ctrlPosition _control;
        _grpPos set [3,0];
        _control ctrlSetPosition _grpPos;
        _control ctrlShow false;
        _control ctrlCommit 0;
    };

    dayz_eyeDir = {
        private["_vval","_vdir"];
        _vval = (eyeDirection _this);
        _vdir = (_vval select 0) atan2 (_vval select 1);
        if (_vdir < 0) then {_vdir = 360 + _vdir};
        _vdir
    };

    DZE_getModelName = {
        _objInfo = toArray(str(_this));
        _lenInfo = count _objInfo - 1;
        _objName = [];
        _i = 0;
        // determine where the object name starts
        {
            if (58 == _objInfo select _i) exitWith {};
            _i = _i + 1;
        } count _objInfo;
        _i = _i + 2; // skip the ": " part
        for "_k" from _i to _lenInfo do {
            _objName set [(count _objName), (_objInfo select _k)];
        };
        _objName = toLower(toString(_objName));
        _objName
    };

    dze_isnearest_player = {
        private ["_notClosest","_playerDistance","_nearPlayers","_obj","_playerNear"];
        if(!isNull _this) then {
            _nearPlayers = _this nearEntities ["CAManBase", 12];
            _playerNear = ({isPlayer _x} count _nearPlayers) > 1;
            _notClosest = false;
            if (_playerNear) then {
                // check if another player is closer
                _playerDistance = player distance _this;
                {
                    if (_playerDistance > (_x distance _this)) exitWith { _notClosest = true; };
                } count _nearPlayers;
            };
        } else {
            _notClosest = false;
        };
        _notClosest
    };

    // trader menu code
    if (DZE_ConfigTrader) then {
        call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuConfig.sqf";
    }else{
        call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf";
    };
    // recent murders menu code
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_murderMenu.sqf";

    //This is still needed but the fsm should terminate if any errors pop up.
    [] spawn {
        private["_timeOut","_display","_control1","_control2"];
        disableSerialization;
        _timeOut = 0;
        dayz_loadScreenMsg = "";
        diag_log "DEBUG: loadscreen guard started.";
        _display = uiNameSpace getVariable "BIS_loadingScreen";
        if (!isNil "_display") then {
                _control1 = _display displayctrl 8400;
                _control2 = _display displayctrl 102;
        };
        if (!isNil "dayz_DisplayGenderSelect") then {
            waitUntil {!dayz_DisplayGenderSelect};
        };

        // 120 sec timeout (12000 * 0.01)
        while { _timeOut < 12000 } do {
            if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; };
            if (!isNil "_display") then {
                if ( isNull _display ) then {
                        waitUntil { !dialog; };
                        startLoadingScreen ["","RscDisplayLoadCustom"];
                        _display = uiNameSpace getVariable "BIS_loadingScreen";
                        _control1 = _display displayctrl 8400;
                        _control2 = _display displayctrl 102;
                };

                if ( dayz_loadScreenMsg != "" ) then {
                        _control1 ctrlSetText dayz_loadScreenMsg;
                        dayz_loadScreenMsg = "";
                };

                _control2 ctrlSetText format["%1",round(_timeOut*0.01)];
            };

            _timeOut = _timeOut + 1;

            if (_timeOut >= 12000) then {
                1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
                sleep 10;
                endLoadingScreen;
                endMission "END1";
            };

            sleep 0.01;
        };
    };

    dayz_meleeMagazineCheck = {
                private["_meleeNum","_magType"];
                _magType =         ([] + getArray (configFile >> "CfgWeapons" >> _wpnType >> "magazines")) select 0;
                _meleeNum = ({_x == _magType} count magazines player);
                if (_meleeNum < 1) then {
                        player addMagazine _magType;
                };
        };

    dayz_originalPlayer = player;

    progressLoadingScreen 0.8;
};

    //Both
    BIS_fnc_selectRandom =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_selectRandom.sqf";
    BIS_fnc_vectorAdd =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_vectorAdd.sqf";
    BIS_fnc_halo =              compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_halo.sqf";
    BIS_fnc_findNestedElement =    compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_findNestedElement.sqf";
    BIS_fnc_param =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_param.sqf";

    fnc_buildWeightedArray =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildWeightedArray.sqf";        //Checks which actions for nearby casualty
    fnc_usec_damageVehicle =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerVehicle.sqf";        //Event handler run on damage

    // object_vehicleKilled =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_vehicleKilled.sqf";        //Event handler run on damage
    object_setHitServer =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHitServer.sqf";    //process the hit as a NORMAL damage (useful for persistent vehicles)
    object_setFixServer =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setFixServer.sqf";    //process the hit as a NORMAL damage (useful for persistent vehicles)
    object_getHit =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_getHit.sqf";            //gets the hit value for a HitPoint (i.e. HitLegs) against the selection (i.e. "legs"), returns the value
    object_setHit =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHit.sqf";            //process the hit as a NORMAL damage (useful for persistent vehicles)
    object_processHit =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_processHit.sqf";        //process the hit in the REVO damage system (records && sets hit)
    object_delLocal =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_delLocal.sqf";
    // object_cargoCheck =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_cargoCheck.sqf";        //Run by the player || server to monitor changes in cargo contents
    fnc_usec_damageHandler =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";        //Event handler run on damage
    fnc_veh_ResetEH =             compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf";            //Initialize vehicle
    // Vehicle damage fix
    vehicle_handleDamage    =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf";
    vehicle_handleKilled    =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleKilled.sqf";
    //fnc_vehicleEventHandler =         compile preprocessFileLineNumbers "\z\addons\dayz_code\init\vehicle_init.sqf";            //Initialize vehicle
    fnc_inString =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inString.sqf";
    fnc_isInsideBuilding =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding;
    fnc_isInsideBuilding2 =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding2.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding2;
    fnc_isInsideBuilding3 =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding3.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding3;
    dayz_zombieSpeak =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf";            //Used to generate random speech for a unit
    vehicle_getHitpoints =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getHitpoints.sqf";
    local_gutObject =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObject.sqf";        //Generated on the server (|| local to unit) when gutting an object
    local_lockUnlock =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_lockUnlock.sqf";        //When vehicle is local to unit perform locking vehicle
    local_gutObjectZ =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObjectZ.sqf";        //Generated on the server (|| local to unit) when gutting an object
    local_zombieDamage =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerZ.sqf";        //Generated by the client who created a zombie to track damage
    local_eventKill =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_eventKill.sqf";        //Generated when something is killed
    //player_weaponCheck =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponCheck.sqf";    //Run by the player || server to monitor whether they have picked up a new weapon
    curTimeStr =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_curTimeStr.sqf";
    player_medBandage =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
    player_medInject =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medInject.sqf";
    player_medEpi =                compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medEpi.sqf";
    player_medTransfuse =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medTransfuse.sqf";
    player_medMorphine =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf";
    player_breaklegs =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBreakLegs.sqf";
    player_medPainkiller =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medPainkiller.sqf";
    world_isDay =                 {if ((daytime < (24 - dayz_sunRise)) && (daytime > dayz_sunRise)) then {true} else {false}};
    player_humanityChange =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityChange.sqf";
    spawn_loot =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot.sqf";
    spawn_loot_small = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot_small.sqf";
    // player_projectileNear =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_projectileNear.sqf";
    FNC_GetSetPos = { //DO NOT USE IF YOU NEED ANGLE COMPENSATION!!!!
        private "_pos";
        _thingy = _this select 0;
        _pos = getPosASL _thingy;
        if (surfaceIsWater _pos) then {
            _thingy setPosASL _pos;
        } else {
            _thingy setPosATL (ASLToATL _pos);
        };
    };
    FNC_GetPos = {
        private "_pos";
        if (isNil {_this select 0}) exitWith {[0,0,0]};
        _thingy = _this select 0;
        _pos = getPosASL _thingy;
        if !(surfaceIsWater _pos) then {
            _pos =  ASLToATL _pos;
        };
        _pos
    };
    local_setFuel =    {
        private["_qty","_vehicle"];
        _vehicle = _this select 0;
        _qty = _this select 1;
        _vehicle setFuel _qty;
    };
    zombie_initialize = {
        private ["_unit","_position"];
        _unit = _this select 0;
        if (isServer) then {
            _unit addEventHandler ["local", {_this call zombie_findOwner}];
        };
        _id = _unit addeventhandler["HandleDamage", { _this call local_zombieDamage }];
        _id = _unit addeventhandler["Killed", { [_this, "zombieKills"] call local_eventKill }];
    };

    dayz_EjectPlayer = {
        // check if player in vehicle
        private ["_noDriver","_vehicle","_inVehicle"];
        _vehicle = vehicle player;
        _inVehicle = (_vehicle != player);
        if(_inVehicle) then {
            _noDriver = ((_vehicle emptyPositions "driver") > 0);
            if (_noDriver && (speed _vehicle) != 0) then {
                player action [ "eject", _vehicle];
            };
        };
    };

    player_sumMedical = {
        private["_character","_wounds","_legs","_arms","_medical"];
        _character =     _this;
        _wounds =        [];
        if (_character getVariable["USEC_injured",false]) then {
            {
                if (_character getVariable[_x,false]) then {
                    _wounds set [count _wounds,_x];
                };
            } count USEC_typeOfWounds;
        };
        _legs = _character getVariable ["hit_legs",0];
        _arms = _character getVariable ["hit_arms",0];
        _medical = [
            _character getVariable["USEC_isDead",false],
            _character getVariable["NORRN_unconscious", false],
            _character getVariable["USEC_infected",false],
            _character getVariable["USEC_injured",false],
            _character getVariable["USEC_inPain",false],
            _character getVariable["USEC_isCardiac",false],
            _character getVariable["USEC_lowBlood",false],
            _character getVariable["USEC_BloodQty",12000],
            _wounds,
            [_legs,_arms],
            _character getVariable["unconsciousTime",0],
            _character getVariable["messing",[0,0]]
        ];
        _medical
    };

    //Server Only
    if (isServer) then {
        call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\server_functions.sqf";
    } else {
        eh_localCleanup = {};
    };

initialized = true;

if (!isDedicated) then {
    DZE_SNAP_BUILD_NUMKEYS = [0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B];

    player_build = compile preprocessFileLineNumbers "custom\snap_pro\player_build.sqf";
    snap_build = compile preprocessFileLineNumbers "custom\snap_pro\snap_build.sqf";
    dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\snap_pro\dayz_spaceInterrupt.sqf";
};

Link to comment
Share on other sites

it looks big and annoying, and taking up a lot of forum space lol

 

if you're going to post code that long plz use (spoiler)code(/spoiler)  with square brackets

 

as for the actual code itself, you don't have  fnc_usec_selfActions redirected from what I can see.

 

Also there is a much easier and smaller way to load custom compiles..

 

Make it like this in your init file

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";				//Compile regular functions
call compile preprocessFileLineNumbers "custom\dayz_code\init\compiles.sqf";				//Compile custom functions

then in your custom compiles file you will just need this

if (!isDedicated) then {
	fnc_usec_selfActions 	= compile preprocessFileLineNumbers "custom\dayz_code\compile\fn_selfActions.sqf";
	ckc_button    			= compile preprocessFileLineNumbers "custom\combokeychanger\ckc_button.sqf";
	ckc_upddoor    			= compile preprocessFileLineNumbers "custom\combokeychanger\ckc_upddoor.sqf";
	ckc_updSafe    			= compile preprocessFileLineNumbers "custom\combokeychanger\ckc_updSafe.sqf";
};
Link to comment
Share on other sites

So I can cut a lot out on that compiles?

I need to learn how to build one.

 

Thanks for taking time out to help a noob out.

 

Does it matter that I don't have a combokeychanger folder here? (it's just the ckc folder)

 

= compile preprocessFileLineNumbers "custom\combokeychanger\ckc_updSafe.sqf"

Do I put all the files in my custom folder or just the main mission folder with my init file?

compiles

fn_selActions.sqf

variables.sqf

Link to comment
Share on other sites

Hi Jossy, Thank you for uploading your re coded ver,

 

i have just added it and i can change safe code, but the option for the doors did not show up,

I do have  plot pole for life, And i wondered if it was to do  what was posted a few back.

 

Just a heads up, P4L uses 

_ownerID = _cursorTarget getVariable ["ownerPUID","0"];

 

If this is my problem is the code on git hub changed ref to this,   As im unsure to what i must change.

 

Many thanks for your time

 

Keith 

Link to comment
Share on other sites

Hi Jossy, Thank you for uploading your re coded ver,

 

i have just added it and i can change safe code, but the option for the doors did not show up,

I do have  plot pole for life, And i wondered if it was to do  what was posted a few back.

 

Just a heads up, P4L uses 

_ownerID = _cursorTarget getVariable ["ownerPUID","0"];

 

If this is my problem is the code on git hub changed ref to this,   As im unsure to what i must change.

 

Many thanks for your time

 

Keith 

besides the typos I had for the pathnames which I just noticed and updated, I'm not sure, but check those  :rolleyes:

Link to comment
Share on other sites

So I can cut a lot out on that compiles?

I need to learn how to build one.

 

Thanks for taking time out to help a noob out.

 

Does it matter that I don't have a combokeychanger folder here? (it's just the ckc folder)

 

= compile preprocessFileLineNumbers "custom\combokeychanger\ckc_updSafe.sqf"

Do I put all the files in my custom folder or just the main mission folder with my init file?

compiles

fn_selActions.sqf

variables.sqf

Sorry for all my path mistakes, I have a bad habit of renaming everyone's mods to suit my own folder structure lol

 

You can put the files where ever you want but you'll need to make sure the scripts point to the right place

Link to comment
Share on other sites

I cant get this to work, no errors on client or server , the options just dont show up in anything , vaults doors garage doors , anything.

 

I followed the guide for no P4L in github and still no luck, i didnt even rename anything just not to get this kind of trouble.

For some reason the condition in the selfactions doesnt work form me.

 

s_player_unlockvault = -1;
};
//Allow owner to change Door code
if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then {
    if ((s_player_lastTarget select 1) != _cursorTarget) then {
        if (s_player_ckc > 0) then {    
            player removeAction s_player_ckc;
            s_player_ckc = -1;
        };
    };
    if (s_player_ckc < 0) then {
        s_player_lastTarget set [1,_cursorTarget];  
            s_player_ckc = player addaction["Set new Code", "ckc\ckc_startUI.sqf","",0,false,true,"", ""];
    };
} else {
    player removeAction s_player_ckc;
    s_player_ckc = -1;
};
//Allow owner to change vault code
_unlockedVault = ["VaultStorage"];
if(typeOf(cursortarget) in _unlockedVault && _ownerID != "0" && (player distance _cursorTarget < 2)) then {
    if (s_player_Safe_ckc < 0) then {
        if ((typeOf(cursortarget) == "VaultStorage") &&(_ownerID == dayz_combination || _ownerID == dayz_playerUID)  ) then {
            s_player_Safe_ckc = player addaction["Set new Code", "ckc\ckc_startSafeUI.sqf","",1,false,true,"", ""];
        };
    };
} else {
    player removeAction s_player_Safe_ckc;
    s_player_Safe_ckc = -1;
};
 
 
//Allow owner to pack vault
 

 
The description is also changed and the file location as default ...
Link to comment
Share on other sites

 

I cant get this to work, no errors on client or server , the options just dont show up in anything , vaults doors garage doors , anything.

 

I followed the guide for no P4L in github and still no luck, i didnt even rename anything just not to get this kind of trouble.

For some reason the condition in the selfactions doesnt work form me.

 

s_player_unlockvault = -1;
};
//Allow owner to change Door code
if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then {
    if ((s_player_lastTarget select 1) != _cursorTarget) then {
        if (s_player_ckc > 0) then {    
            player removeAction s_player_ckc;
            s_player_ckc = -1;
        };
    };
    if (s_player_ckc < 0) then {
        s_player_lastTarget set [1,_cursorTarget];  
            s_player_ckc = player addaction["Set new Code", "ckc\ckc_startUI.sqf","",0,false,true,"", ""];
    };
} else {
    player removeAction s_player_ckc;
    s_player_ckc = -1;
};
//Allow owner to change vault code
_unlockedVault = ["VaultStorage"];
if(typeOf(cursortarget) in _unlockedVault && _ownerID != "0" && (player distance _cursorTarget < 2)) then {
    if (s_player_Safe_ckc < 0) then {
        if ((typeOf(cursortarget) == "VaultStorage") &&(_ownerID == dayz_combination || _ownerID == dayz_playerUID)  ) then {
            s_player_Safe_ckc = player addaction["Set new Code", "ckc\ckc_startSafeUI.sqf","",1,false,true,"", ""];
        };
    };
} else {
    player removeAction s_player_Safe_ckc;
    s_player_Safe_ckc = -1;
};
 
 
//Allow owner to pack vault
 

 
The description is also changed and the file location as default ...

 

Same here I never got this going after renaming the paths.

loaded up fine no errors in my APT file at all

Link to comment
Share on other sites

 

I cant get this to work, no errors on client or server , the options just dont show up in anything , vaults doors garage doors , anything.

 

I followed the guide for no P4L in github and still no luck, i didnt even rename anything just not to get this kind of trouble.

For some reason the condition in the selfactions doesnt work form me.

 

s_player_unlockvault = -1;
};
//Allow owner to change Door code
if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then {
    if ((s_player_lastTarget select 1) != _cursorTarget) then {
        if (s_player_ckc > 0) then {    
            player removeAction s_player_ckc;
            s_player_ckc = -1;
        };
    };
    if (s_player_ckc < 0) then {
        s_player_lastTarget set [1,_cursorTarget];  
            s_player_ckc = player addaction["Set new Code", "ckc\ckc_startUI.sqf","",0,false,true,"", ""];
    };
} else {
    player removeAction s_player_ckc;
    s_player_ckc = -1;
};
//Allow owner to change vault code
_unlockedVault = ["VaultStorage"];
if(typeOf(cursortarget) in _unlockedVault && _ownerID != "0" && (player distance _cursorTarget < 2)) then {
    if (s_player_Safe_ckc < 0) then {
        if ((typeOf(cursortarget) == "VaultStorage") &&(_ownerID == dayz_combination || _ownerID == dayz_playerUID)  ) then {
            s_player_Safe_ckc = player addaction["Set new Code", "ckc\ckc_startSafeUI.sqf","",1,false,true,"", ""];
        };
    };
} else {
    player removeAction s_player_Safe_ckc;
    s_player_Safe_ckc = -1;
};
 
 
//Allow owner to pack vault
 

 
The description is also changed and the file location as default ...

 

Well after not getting an answer from you I decided to setup a fresh server so I could debug the problem myself..

 

I found a missing variable in my setup instructions and I've updated the files accordingly, tested it and it run fine without P4L

 

Sorry for the inconvenience

 

https://github.com/SJossy/Combo-Key-Changer/archive/Release-2.0.1.zip

Link to comment
Share on other sites

Good news, i could change the door and vault codes with success.

Minor glitch , dont know if it happens to everybody. When setting a new code on the door the lock image appears with all 0's . if my actual code is for instance 777 when i press right the number goes from 0 to 8. If on the other hand i press left he goes to 6, its like he's showing me 000 but whats really there is the actual code. Dont know if happens to all of you or just me. 

 

Also on the client side RTP it shows the following.

 

Error in expression <upgrade_build = -1;
player removeAction s_player_ckc;
s_player_ckc = -1;
player >
  Error position: <s_player_ckc;
s_player_ckc = -1;
player >
  Error Undefined variable in expression: s_player_ckc
 
I think this is a remainder from the original script that had the need to add the following lines to the inplace tools in the self actions, i've removed them and after restart let you know if its fixed.
 
This is what i commented out.
 
if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then {
if ((s_player_lastTarget select 0) != _cursorTarget) then {
if (s_player_upgrade_build > 0) then {
player removeAction s_player_upgrade_build;
s_player_upgrade_build = -1;
};
};
if (s_player_upgrade_build < 0) then {
// s_player_lastTarget = _cursorTarget;
s_player_lastTarget set [0,_cursorTarget];
s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];
};
} else {
player removeAction s_player_upgrade_build;
s_player_upgrade_build = -1;
//player removeAction s_player_ckc;
//s_player_ckc = -1;
 //player removeAction s_player_Safe_ckc;
//s_player_Safe_ckc = -1;
};
 

Thanks for all the help Jossy, the script is awesome!

Link to comment
Share on other sites

Spoke too soon, i can change the codes apart from the glitch i reported before , the users on the other hand report that the numpad orlock  just blink so they cant ever set a new code. :\ It correctly displays the actual code but when its time to change it they cant because theres no place to input it ...

 

Server side RPT is clear , it doesnt show any error.

Link to comment
Share on other sites

Good news, i could change the door and vault codes with success.

Minor glitch , dont know if it happens to everybody. When setting a new code on the door the lock image appears with all 0's . if my actual code is for instance 777 when i press right the number goes from 0 to 8. If on the other hand i press left he goes to 6, its like he's showing me 000 but whats really there is the actual code. Dont know if happens to all of you or just me. 

 

Also on the client side RTP it shows the following.

 

Error in expression <upgrade_build = -1;
player removeAction s_player_ckc;
s_player_ckc = -1;
player >
  Error position: <s_player_ckc;
s_player_ckc = -1;
player >
  Error Undefined variable in expression: s_player_ckc
 
I think this is a remainder from the original script that had the need to add the following lines to the inplace tools in the self actions, i've removed them and after restart let you know if its fixed.
 
This is what i commented out.
 
if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then {
if ((s_player_lastTarget select 0) != _cursorTarget) then {
if (s_player_upgrade_build > 0) then {
player removeAction s_player_upgrade_build;
s_player_upgrade_build = -1;
};
};
if (s_player_upgrade_build < 0) then {
// s_player_lastTarget = _cursorTarget;
s_player_lastTarget set [0,_cursorTarget];
s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];
};
} else {
player removeAction s_player_upgrade_build;
s_player_upgrade_build = -1;
//player removeAction s_player_ckc;
//s_player_ckc = -1;
 //player removeAction s_player_Safe_ckc;
//s_player_Safe_ckc = -1;
};
 

Thanks for all the help Jossy, the script is awesome!

upgrade_build? you shouldn't be changing this  :lol:

 

also s_player_Safe_ckc is what the old script used so yeah that shouldn't be there

 

There won't be any server side errors as its all client side, can you check if the players got any errors?

Link to comment
Share on other sites

The only thing i changes is the commented section :)

 

//player removeAction s_player_ckc;
//s_player_ckc = -1;
//player removeAction s_player_Safe_ckc;
//s_player_Safe_ckc = -1;
 
They have no apparent errors but i'll ask one of them to send me his client log to see if we can find anything here.  If not i'll remove myself from the admin list and see of my self.
i'll get back to you as soon as possible.
 
Thanks for all the help.
Link to comment
Share on other sites

Where exactly does this go in the fn_selfactions.sqf ?

add


        player removeAction s_player_ckc;
    s_player_ckc = -1;
        player removeAction s_player_Safe_ckc;
        s_player_Safe_ckc = -1;


below



    player removeAction s_player_upgrade_build;
    s_player_upgrade_build = -1;
    player removeAction s_player_maint_build;
    s_player_maint_build = -1;
    player removeAction s_player_downgrade_build;
    s_player_downgrade_build = -1;

 

Can someone or the op upload their fn_selfactions.sqf and highlight where it should be please ?

 

Much appreciated ;-)

Link to comment
Share on other sites

Where exactly does this go in the fn_selfactions.sqf ?

add

        player removeAction s_player_ckc;

    s_player_ckc = -1;

        player removeAction s_player_Safe_ckc;

        s_player_Safe_ckc = -1;

below

    player removeAction s_player_upgrade_build;

    s_player_upgrade_build = -1;

    player removeAction s_player_maint_build;

    s_player_maint_build = -1;

    player removeAction s_player_downgrade_build;

    s_player_downgrade_build = -1;

 

Can someone or the op upload their fn_selfactions.sqf and highlight where it should be please ?

 

Much appreciated ;-)

Just hit ctrl+f while in notepad++, search for s_player_downgrade_build = -1; (it should be the 3rd instance) and place the code below that.

 

scriptName "Functions\misc\fn_selfActions.sqf";

/***********************************************************

    ADD ACTIONS FOR SELF

    - Function

    - [] call fnc_usec_selfActions;

************************************************************/

private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_isModularDoor","_ownerKeyName","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached"];

if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running.

_vehicle = vehicle player;

_isPZombie = player isKindOf "PZombie_VB";

_inVehicle = (_vehicle != player);

_onLadder =        (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;

_canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder);

_nearLight =     nearestObject [player,"LitObject"];

_canPickLight = false;

if (!isNull _nearLight) then {

    if (_nearLight distance player < 4) then {

        _canPickLight = isNull (_nearLight getVariable ["owner",objNull]);

    };

};

//Sirens

_isCopcar = typeOf _vehicle in ["ArmoredSUV_PMC","SUV_PMC","GAZ_Vodnik_MedEvac","HMMWV_Ambulance","S1203_ambulance_EP1","LadaLM","LadaLM_DZE1","LadaLM_DZE2","LadaLM_DZE3","LadaLM_DZE4","policecar"];

if (_inVehicle and _isCopcar and (driver _vehicle == player)) then {

        dayz_addsirens = _vehicle;

    if (s_player_sirens_on < 0) then {

        s_player_sirens_on = dayz_addsirens addAction [("<t color=#0040FF'>" + ("Siren On") + "</t>"),"custom\sirens\sirens_on.sqf",dayz_addsirens,2,false,true,"","];

        s_player_sirens_off = dayz_addsirens addAction [("<t color=#FF4000'>" + ("Siren Off") + "</t>"),"custom\sirens\sirens_off.sqf",dayz_addsirens,2,false,true,"","];

        };

    } else {

        dayz_addsirens removeAction s_player_sirens_on;

        dayz_addsirens removeAction s_player_sirens_off;

        s_player_sirens_on = -1;

        s_player_sirens_off = -1;

    };

//Grab Flare

if (_canPickLight && !dayz_hasLight && !_isPZombie) then {

    if (s_player_grabflare < 0) then {

        _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName");

        s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""];

        s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""];

    };

} else {

    player removeAction s_player_grabflare;

    player removeAction s_player_removeflare;

    s_player_grabflare = -1;

    s_player_removeflare = -1;

};

if (DZE_HeliLift) then {

    _hasAttached = _vehicle getVariable["hasAttached",false];

    if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) < 30) && (speed _vehicle < 5) && (typeName _hasAttached == "OBJECT")) then {

        if (s_player_heli_detach < 0) then {

            dayz_myLiftVehicle = _vehicle;

            s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true,"",""];

        };

    } else {

        dayz_myLiftVehicle removeAction s_player_heli_detach;

        s_player_heli_detach = -1;

    };

};

if(DZE_HaloJump) then {

    if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) > 400)) then {

        if (s_halo_action < 0) then {

            DZE_myHaloVehicle = _vehicle;

            s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""];

        };

    } else {

        DZE_myHaloVehicle removeAction s_halo_action;

        s_halo_action = -1;

    };

};

if (!DZE_ForceNameTagsOff) then {

    if (s_player_showname < 0 && !_isPZombie) then {

        if (DZE_ForceNameTags) then {

            s_player_showname = 1;

            player setVariable["DZE_display_name",true,true];

        } else {

            s_player_showname = player addAction [localize "STR_EPOCH_ACTIONS_NAMEYES", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""];

            s_player_showname1 = player addAction [localize "STR_EPOCH_ACTIONS_NAMENO", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""];

        };

    };

};

if(_isPZombie) then {

    if (s_player_callzombies < 0) then {

        s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""];

    };

    if (DZE_PZATTACK) then {

        call pz_attack;

        DZE_PZATTACK = false;

    };

    if (s_player_pzombiesvision < 0) then {

        s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];

    };

    if (!isNull cursorTarget && (player distance cursorTarget < 3)) then {    //Has some kind of target

        _isAnimal = cursorTarget isKindOf "Animal";

        _isZombie = cursorTarget isKindOf "zZombie_base";

        _isHarvested = cursorTarget getVariable["meatHarvested",false];

        _isMan = cursorTarget isKindOf "Man";

        // Pzombie Gut human corpse || animal

        if (!alive cursorTarget && (_isAnimal || _isMan) && !_isZombie && !_isHarvested) then {

            if (s_player_pzombiesfeed < 0) then {

                s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""];

            };

        } else {

            player removeAction s_player_pzombiesfeed;

            s_player_pzombiesfeed = -1;

        };

    } else {

        player removeAction s_player_pzombiesfeed;

        s_player_pzombiesfeed = -1;

    };

};

// Increase distance only if AIR || SHIP

_allowedDistance = 4;

_isAir = cursorTarget isKindOf "Air";

_isShip = cursorTarget isKindOf "Ship";

if(_isAir || _isShip) then {

    _allowedDistance = 8;

};

if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance cursorTarget < _allowedDistance) && _canDo) then {    //Has some kind of target

    // set cursortarget to variable

    _cursorTarget = cursorTarget;

    // get typeof cursortarget once

    _typeOfCursorTarget = typeOf _cursorTarget;

    // hintsilent _typeOfCursorTarget;

    _isVehicle = _cursorTarget isKindOf "AllVehicles";

    _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];

    _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage;

    

    // get items && magazines only once

    _magazinesPlayer = magazines player;

    //boiled Water

    _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer;

    _hastinitem = false;

    {

        if (_x in _magazinesPlayer) then {

            _hastinitem = true;

        };

    } count boil_tin_cans;

    _hasFuelE =     "ItemJerrycanEmpty" in _magazinesPlayer;

    _hasFuelBarrelE =     "ItemFuelBarrelEmpty" in _magazinesPlayer;

    _hasHotwireKit =     "ItemHotwireKit" in _magazinesPlayer;

    _itemsPlayer = items player;

    

    _temp_keys = [];

    _temp_keys_names = [];

    // find available keys

    _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];

    {

        if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then {

            _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid");

            _ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName");

            _temp_keys_names set [_ownerKeyId,_ownerKeyName];

            _temp_keys set [count _temp_keys,str(_ownerKeyId)];

        };

    } count _itemsPlayer;

    _hasKnife =     "ItemKnife" in _itemsPlayer;

    _hasToolbox =     "ItemToolbox" in _itemsPlayer;

    _isMan = _cursorTarget isKindOf "Man";

    _traderType = _typeOfCursorTarget;

    _ownerID = _cursorTarget getVariable ["CharacterID","0"];

    _isAnimal = _cursorTarget isKindOf "Animal";

    _isDog =  (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin");

    _isZombie = _cursorTarget isKindOf "zZombie_base";

    _isDestructable = _cursorTarget isKindOf "BuiltItems";

    _isWreck = _typeOfCursorTarget in DZE_isWreck;

    _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding;

    _isModular = _cursorTarget isKindOf "ModularItems";

    _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"];

    _isRemovable = _typeOfCursorTarget in DZE_isRemovable;

    _isDisallowRepair = _typeOfCursorTarget in ["M240Nest_DZ"];

    _isTent = _cursorTarget isKindOf "TentStorage";

    

    _isAlive = alive _cursorTarget;

    

    _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");

    

    _rawmeat = meatraw;

    _hasRawMeat = false;

    {

        if (_x in _magazinesPlayer) then {

            _hasRawMeat = true;

        };

    } count _rawmeat;

    

    _isFuel = false;

    if (_hasFuelE || _hasFuelBarrelE) then {

        {

            if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;};

        } count dayz_fuelsources;

    };

    // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));

    

    // logic vars

    _player_flipveh = false;

    _player_deleteBuild = false;

    _player_lockUnlock_crtl = false;

     if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then {

         if (s_player_maintain_area < 0) then {

              s_player_maintain_area = player addAction [format["<t color=#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false];

             s_player_maintain_area_preview = player addAction [format["<t color=#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false];

         };

     } else {

            player removeAction s_player_maintain_area;

            s_player_maintain_area = -1;

            player removeAction s_player_maintain_area_preview;

            s_player_maintain_area_preview = -1;

     };

    // CURSOR TARGET ALIVE

    if(_isAlive) then {

        

        //Allow player to delete objects

        if(_isDestructable || _isWreck || _isRemovable || _isWreckBuilding) then {

            if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {

                _player_deleteBuild = true;

            };

        };

        

        //Allow owners to delete modulars

                if(_isModular && (dayz_characterID == _ownerID)) then {

                        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {

                                _player_deleteBuild = true;

                        };

                };

        //Allow owners to delete modular doors without locks

                if(_isModularDoor && (dayz_characterID == _ownerID)) then {

                        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {

                                _player_deleteBuild = true;

                        };        

                };    

        // CURSOR TARGET VEHICLE

        if(_isVehicle) then {

            

            //flip vehicle small vehicles by your self && all other vehicles with help nearby

            if (!(canmove _cursorTarget) && (player distance _cursorTarget >= 2) && (count (crew _cursorTarget))== 0 && ((vectorUp _cursorTarget) select 2) < 0.5) then {

                _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]);

                if(_isVehicletype || (_playersNear >= 2)) then {

                    _player_flipveh = true;    

                };

            };

            if(!_isMan && _ownerID != "0" && !(_cursorTarget isKindOf "Bicycle")) then {

                _player_lockUnlock_crtl = true;

            };

        };

    

    };

    if(_player_deleteBuild) then {

        if (s_player_deleteBuild < 0) then {

            s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""];

        };

    } else {

        player removeAction s_player_deleteBuild;

        s_player_deleteBuild = -1;

    };

    

    if (DZE_HeliLift) then {

        _liftHeli = objNull;

        _found = false;

    

        _allowTow = false;

        if ((count (crew _cursorTarget)) == 0) then {

            {

                if(!_allowTow) then {

                    _allowTow = _cursorTarget isKindOf _x;

                };

            } count DZE_HeliAllowToTow;

        };

        //diag_log format["CREW: %1 ALLOW: %2",(count (crew _cursorTarget)),_allowTow];

        if (_allowTow) then {

            _liftHelis = nearestObjects [player, DZE_HeliAllowTowFrom, 15];

            {

                if(!_found) then {

                    _posL = [_x] call FNC_getPos;

                    _posC = [_cursorTarget] call FNC_getPos;

                    _height = (_posL select 2) - (_posC select 2);

                    _hasAttached = _x getVariable["hasAttached",false];

                    if(_height < 15 && _height > 5 && (typeName _hasAttached != "OBJECT")) then {

                        if(((abs((_posL select 0) - (_posC select 0))) < 10) && ((abs((_posL select 1) - (_posC select 1))) < 10)) then {

                            _liftHeli = _x;

                            _found = true;

                        };

                    };

                };

            } count _liftHelis;

        };

        //diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget];

        _attached = _cursorTarget getVariable["attached",false];

        if(_found && _allowTow && _canDo && !locked _cursorTarget && !_isPZombie && (typeName _attached != "OBJECT")) then {

            if (s_player_heli_lift < 0) then {

                s_player_heli_lift = player addAction ["Attach to Heli", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true, "",""];

            };

        } else {

            player removeAction s_player_heli_lift;

            s_player_heli_lift = -1;

        };

    };

    

    // Allow Owner to lock && unlock vehicle  

    if(_player_lockUnlock_crtl) then {

        if (s_player_lockUnlock_crtl < 0) then {

            _hasKey = _ownerID in _temp_keys;

            _oldOwner = (_ownerID == dayz_playerUID);

            if(locked _cursorTarget) then {

                if(_hasKey || _oldOwner) then {

                    _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true, "", ""];

                    s_player_lockunlock set [count s_player_lockunlock,_Unlock];

                    s_player_lockUnlock_crtl = 1;

                } else {

                    if(_hasHotwireKit) then {

                        _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true, "", ""];

                    } else {

                        _Unlock = player addAction [format["<t color=#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED], "",_cursorTarget, 2, true, true, "", ""];

                    };

                    s_player_lockunlock set [count s_player_lockunlock,_Unlock];

                    s_player_lockUnlock_crtl = 1;

                };

            } else {

                if(_hasKey || _oldOwner) then {

                    _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""];

                    s_player_lockunlock set [count s_player_lockunlock,_lock];

                    s_player_lockUnlock_crtl = 1;

                };

            };

        };

        

    } else {

        {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];

        s_player_lockUnlock_crtl = -1;

    };

    if(DZE_AllowForceSave) then {

        //Allow player to force save

        if((_isVehicle || _isTent) && !_isMan) then {

            if (s_player_forceSave < 0) then {

                s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget, 1, true, true, "", ""];

            };

        } else {

            player removeAction s_player_forceSave;

            s_player_forceSave = -1;

        };

    };

    

    

    If(DZE_AllowCargoCheck) then {

        if((_isVehicle || _isTent || _isnewstorage) && _isAlive && !_isMan && !locked _cursorTarget) then {

            if (s_player_checkGear < 0) then {

                s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""];

            };

        } else {

            player removeAction s_player_checkGear;

            s_player_checkGear = -1;

        };

    };

    

    

    //flip vehicle small vehicles by your self && all other vehicles with help nearby

    if(_player_flipveh) then {

        if (s_player_flipveh  < 0) then {

            s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true, "", ""];        

        };

    } else {

        player removeAction s_player_flipveh;

        s_player_flipveh = -1;

    };

    

    //Allow player to fill jerrycan

    if((_hasFuelE || _hasFuelBarrelE) && _isFuel) then {

        if (s_player_fillfuel < 0) then {

            s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true, "", ""];

        };

    } else {

        player removeAction s_player_fillfuel;

        s_player_fillfuel = -1;

    };

    

    // logic vars for addactions

    _player_butcher = false;

    _player_studybody = false;

    _player_SurrenderedGear = false;

    // CURSOR TARGET NOT ALIVE

    if (!_isAlive) then {

        // Gut animal/zed

        if((_isAnimal || _isZombie) && _hasKnife) then {

            _isHarvested = _cursorTarget getVariable["meatHarvested",false];

            if (!_isHarvested) then {

                _player_butcher = true;

            };

        };

        // Study body

        if (_isMan && !_isZombie && !_isAnimal) then {

            _player_studybody = true;

        }

    } else {

        // unit alive

        // gear access on surrendered player

        if(_isMan && !_isZombie && !_isAnimal) then {

            _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false];

            if (_isSurrendered) then {

                _player_SurrenderedGear = true;

            };

        };

    };

    // Human Gut animal || zombie

    if (_player_butcher) then {

        if (s_player_butcher < 0) then {

            if(_isZombie) then {

                s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""];

            } else {

                s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""];

            };

        };

    } else {

        player removeAction s_player_butcher;

        s_player_butcher = -1;

    };

 

    // Study Body

    if (_player_studybody) then {

        if (s_player_studybody < 0) then {

            s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""];

        };

    } else {

        player removeAction s_player_studybody;

        s_player_studybody = -1;

    };

    // logic vars

    _player_cook = false;

    _player_boil = false;

    // CURSOR TARGET IS FIRE

    if (inflamed _cursorTarget) then {

        

        //Fireplace Actions check

        if (_hasRawMeat) then {

            _player_cook = true;    

        };

        

        // Boil water

        if (_hasbottleitem && _hastinitem) then {

            _player_boil = true;

        };

    };

    if (_player_SurrenderedGear) then {

        if (s_player_SurrenderedGear < 0) then {

            s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTIONS_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true, "", ""];

        };

    } else {

        player removeAction s_player_SurrenderedGear;

        s_player_SurrenderedGear = -1;

    };

    //Fireplace Actions check

    if (_player_cook) then {

        if (s_player_cook < 0) then {

            s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true, "", ""];

        };

    } else {

        player removeAction s_player_cook;

        s_player_cook = -1;

    };

    

    // Boil water

    if (_player_boil) then {

        if (s_player_boil < 0) then {

            s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",_cursorTarget, 3, true, true, "", ""];

        };

    } else {

        player removeAction s_player_boil;

        s_player_boil = -1;

    };

    

    if(_cursorTarget == dayz_hasFire) then {

        if ((s_player_fireout < 0) && !(inflamed _cursorTarget) && (player distance _cursorTarget < 3)) then {

            s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true, "",""];

        };

    } else {

        player removeAction s_player_fireout;

        s_player_fireout = -1;

    };

    

    //Packing my tent

    if(_isTent && (player distance _cursorTarget < 3)) then {

        if (_ownerID == dayz_characterID) then {

            if (s_player_packtent < 0) then {

                s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""];

            };

        } else {

            if(("ItemJerrycan" in _magazinesPlayer) && ("ItemMatchbox_DZE" in weapons player)) then {

                if (s_player_packtent < 0) then {

                    s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""];

                };

            };

        };

    } else {

        player removeAction s_player_packtent;

        s_player_packtent = -1;

    };

    //Allow owner to unlock vault

    if((_typeOfCursorTarget in DZE_LockableStorage) && _ownerID != "0" && (player distance _cursorTarget < 3)) then {

        if (s_player_unlockvault < 0) then {

            if(_typeOfCursorTarget in DZE_LockedStorage) then {

                if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then {

                    _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];

                    s_player_combi set [count s_player_combi,_combi];

                } else {

                    _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];

                    s_player_combi set [count s_player_combi,_combi];

                };

                s_player_unlockvault = 1;

            } else {

                if(_ownerID != dayz_combination && _ownerID != dayz_playerUID) then {

                    _combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];

                    s_player_combi set [count s_player_combi,_combi];

                    s_player_unlockvault = 1;

                };

            };

        };

    } else {

        {player removeAction _x} count s_player_combi;s_player_combi = [];

        s_player_unlockvault = -1;

    };

    //Allow owner to pack vault

    if(_typeOfCursorTarget in DZE_UnLockedStorage && _ownerID != "0" && (player distance _cursorTarget < 3)) then {

        if (s_player_lockvault < 0) then {

            if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then {

                s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""];

            };

        };

        if (s_player_packvault < 0 && (_ownerID == dayz_combination || _ownerID == dayz_playerUID)) then {

            s_player_packvault = player addAction [format["<t color=#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "","];

        };

    } else {

        player removeAction s_player_packvault;

        s_player_packvault = -1;

        player removeAction s_player_lockvault;

        s_player_lockvault = -1;

    };

    

    //Player Deaths

    if(_typeOfCursorTarget == "Info_Board_EP1") then {

        if (s_player_information < 0) then {

            s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""];

        };

    } else {

        player removeAction s_player_information;

        s_player_information = -1;

    };

    

    //Fuel Pump

    if(_typeOfCursorTarget in dayz_fuelpumparray) then {    

        if (s_player_fuelauto < 0) then {

            

            // check if Generator_DZ is running within 30 meters

            _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30];

            _findNearestGen = [];

            {

                if (alive _x && (_x getVariable ["GeneratorRunning", false])) then {

                    _findNearestGen set [(count _findNearestGen),_x];

                };

            } count _findNearestGens;

            _IsNearRunningGen = count (_findNearestGen);

            

            // show that pump needs power if no generator nearby.

            if(_IsNearRunningGen > 0) then {

                s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""];

            } else {

                s_player_fuelauto = player addAction [format["<t color=#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER], "",[], 0, false, true, "",""];

            };

        };

    } else {

        player removeAction s_player_fuelauto;

        s_player_fuelauto = -1;

    };

    //Fuel Pump on truck

    if(_typeOfCursorTarget in DZE_fueltruckarray && alive _cursorTarget) then {    

        if (s_player_fuelauto2 < 0) then {

            // show that fuel truck pump needs power.

            if(isEngineOn _cursorTarget) then {

                s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""];

            } else {

                s_player_fuelauto2 = player addAction [format["<t color=#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER], "",[], 0, false, true, "",""];

            };

        };

    } else {

        player removeAction s_player_fuelauto2;

        s_player_fuelauto2 = -1;

    };

    // inplace upgrade tool

    if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then {

        if ((s_player_lastTarget select 0) != _cursorTarget) then {

            if (s_player_upgrade_build > 0) then {

                player removeAction s_player_upgrade_build;

                s_player_upgrade_build = -1;

            };

        };

        if (s_player_upgrade_build < 0) then {

            // s_player_lastTarget = _cursorTarget;

            s_player_lastTarget set [0,_cursorTarget];

            s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "custom\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];

        };

    } else {

        player removeAction s_player_upgrade_build;

        s_player_upgrade_build = -1;

    };

    

    // downgrade system

    if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then {

        if ((s_player_lastTarget select 1) != _cursorTarget) then {

            if (s_player_downgrade_build > 0) then {    

                player removeAction s_player_downgrade_build;

                s_player_downgrade_build = -1;

            };

        };

        if (s_player_downgrade_build < 0) then {

            s_player_lastTarget set [1,_cursorTarget];

            s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "custom\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];

        };

    } else {

        player removeAction s_player_downgrade_build;

        s_player_downgrade_build = -1;

    };

    // inplace maintenance tool

    if((_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ") && (damage _cursorTarget >= DZE_DamageBeforeMaint)) then {

        if ((s_player_lastTarget select 2) != _cursorTarget) then {

            if (s_player_maint_build > 0) then {    

                player removeAction s_player_maint_build;

                s_player_maint_build = -1;

            };

        };

        if (s_player_maint_build < 0) then {

            s_player_lastTarget set [2,_cursorTarget];

            s_player_maint_build = player addAction [format[localize "STR_EPOCH_ACTIONS_MAINTAIN",_text], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true, "",""];

        };

    } else {

        player removeAction s_player_maint_build;

        s_player_maint_build = -1;

    };

    //Start Generator

    if(_cursorTarget isKindOf "Generator_DZ") then {

        if (s_player_fillgen < 0) then {

            

            // check if not running

            if((_cursorTarget getVariable ["GeneratorRunning", false])) then {

                s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""];                

            } else {

            // check if not filled && player has jerry.

                if((_cursorTarget getVariable ["GeneratorFilled", false])) then {

                    s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];

                } else {

                    if("ItemJerrycan" in _magazinesPlayer) then {

                        s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];

                    };

                };

            };

        };

    } else {

        player removeAction s_player_fillgen;

        s_player_fillgen = -1;

    };

    //Towing with tow truck

    /*

    if(_typeOfCursorTarget == "TOW_DZE") then {

        if (s_player_towing < 0) then {

            if(!(_cursorTarget getVariable ["DZEinTow", false])) then {

                s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""];                

            } else {

                s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true, "",""];                

            };

        };

    } else {

        player removeAction s_player_towing;

        s_player_towing = -1;

    };

    */

    //Sleep

    if(_isTent && _ownerID == dayz_characterID) then {

        if ((s_player_sleep < 0) && (player distance _cursorTarget < 3)) then {

            s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true, "",""];

        };

    } else {

        player removeAction s_player_sleep;

        s_player_sleep = -1;

    };

    if (_isMan && !_isAlive && !_isAnimal) then {

        if (s_player_clothes < 0) then {

              s_player_clothes = player addAction [("<t color='#0096ff'>")+("Take Clothes")+("</t>"), "custom\Take_Clothes\takeclothes.sqf",cursorTarget, -10, false, true];

        };

    } else {

        player removeAction s_player_clothes;

        s_player_clothes = -1;

    };

    

        if (!_isAlive and !_isZombie and !_isAnimal and _isMan and _canDo) then {

        if (s_player_eat_human < 0) then {

            s_player_eat_human = player addAction [("<t color=#DF0101'>" + ("Eat Human") + "</t>"),"fixes\eat_human.sqf" ,cursorTarget, 3, true, true, "", "];

            }

        } else {

            player removeAction s_player_eat_human;

            s_player_eat_human = -1;

    };

    

    //Repairing Vehicles

    if ((dayz_myCursorTarget != _cursorTarget) && _isVehicle && !_isMan && _hasToolbox && (damage _cursorTarget < 1) && !_isDisallowRepair) then {

        if (s_player_repair_crtl < 0) then {

            dayz_myCursorTarget = _cursorTarget;

            _menu = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_REPAIRV", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false, "",""];

            _menu1 = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_SALVAGEV", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false, "",""];

            s_player_repairActions set [count s_player_repairActions,_menu];

            s_player_repairActions set [count s_player_repairActions,_menu1];

            s_player_repair_crtl = 1;

        } else {

            {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];

            s_player_repair_crtl = -1;

        };

    };

    // All Traders

    if (_isMan && !_isPZombie && _traderType in serverTraders) then {

        

        if (s_player_parts_crtl < 0) then {

            // get humanity

            _humanity = player getVariable ["humanity",0];

            _traderMenu = call compile format["menu_%1;",_traderType];

            // diag_log ("TRADER = " + str(_traderMenu));

            

            _low_high = "low";

            _humanity_logic = false;

            if((_traderMenu select 2) == "friendly") then {

                _humanity_logic = (_humanity < -5000);

            };

            if((_traderMenu select 2) == "hostile") then {

                _low_high = "high";

                _humanity_logic = (_humanity > -5000);

            };

            if((_traderMenu select 2) == "hero") then {

                _humanity_logic = (_humanity < 5000);

            };

            if(_humanity_logic) then {

                _cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""];

                s_player_parts set [count s_player_parts,_cancel];

            } else {

                

                // Static Menu

                {

                    //diag_log format["DEBUG TRADER: %1", _x];

                    _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true, "",""];

                    s_player_parts set [count s_player_parts,_buy];

                

                } count (_traderMenu select 1);

                // Database menu

                LastTraderMenu = (_traderMenu select 0);

                _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""];

                s_player_parts set [count s_player_parts,_buy];

            };

            s_player_parts_crtl = 1;

            

        };

    } else {

        {player removeAction _x} count s_player_parts;s_player_parts = [];

        s_player_parts_crtl = -1;

    };

    

    if(dayz_tameDogs) then {

        

        //Dog

        if (_isDog && _isAlive && (_hasRawMeat) && _ownerID == "0" && player getVariable ["dogID", 0] == 0) then {

            if (s_player_tamedog < 0) then {

                s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", _cursorTarget, 1, false, true, "", ""];

            };

        } else {

            player removeAction s_player_tamedog;

            s_player_tamedog = -1;

        };

        if (_isDog && _ownerID == dayz_characterID && _isAlive) then {

            _dogHandle = player getVariable ["dogID", 0];

            if (s_player_feeddog < 0 && _hasRawMeat) then {

                s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true,"",""];

            };

            if (s_player_waterdog < 0 && "ItemWaterbottle" in _magazinesPlayer) then {

                s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true,"",""];

            };

            if (s_player_staydog < 0) then {

                _lieDown = _dogHandle getFSMVariable "_actionLieDown";

                if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; };

                s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true,"",""];

            };

            if (s_player_trackdog < 0) then {

                s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle, 4, false, true,"",""];

            };

            if (s_player_barkdog < 0) then {

                s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", _cursorTarget, 3, false, true,"",""];

            };

            if (s_player_warndog < 0) then {

                _warn = _dogHandle getFSMVariable "_watchDog";

                if (_warn) then { _text = (localize "str_epoch_player_247"); _warn = false; } else { _text = (localize "str_epoch_player_248"); _warn = true; };

                s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true,"",""];        

            };

            if (s_player_followdog < 0) then {

                s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true,"",""];

            };

        } else {

            player removeAction s_player_feeddog;

            s_player_feeddog = -1;

            player removeAction s_player_waterdog;

            s_player_waterdog = -1;

            player removeAction s_player_staydog;

            s_player_staydog = -1;

            player removeAction s_player_trackdog;

            s_player_trackdog = -1;

            player removeAction s_player_barkdog;

            s_player_barkdog = -1;

            player removeAction s_player_warndog;

            s_player_warndog = -1;

            player removeAction s_player_followdog;

            s_player_followdog = -1;

        };

    };

} else {

    //Engineering

    {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];

    s_player_repair_crtl = -1;

    {player removeAction _x} count s_player_combi;s_player_combi = [];

        

    dayz_myCursorTarget = objNull;

    s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull];

    {player removeAction _x} count s_player_parts;s_player_parts = [];

    s_player_parts_crtl = -1;

    {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];

    s_player_lockUnlock_crtl = -1;

    player removeAction s_player_checkGear;

    s_player_checkGear = -1;

    player removeAction s_player_SurrenderedGear;

    s_player_SurrenderedGear = -1;

    //Others

    player removeAction s_player_forceSave;

    s_player_forceSave = -1;

    player removeAction s_player_flipveh;

    s_player_flipveh = -1;

    player removeAction s_player_sleep;

    s_player_sleep = -1;

    player removeAction s_player_deleteBuild;

    s_player_deleteBuild = -1;

    player removeAction s_player_butcher;

    s_player_butcher = -1;

    player removeAction s_player_cook;

    s_player_cook = -1;

    player removeAction s_player_boil;

    s_player_boil = -1;

    player removeAction s_player_fireout;

    s_player_fireout = -1;

    player removeAction s_player_packtent;

    s_player_packtent = -1;

    player removeAction s_player_fillfuel;

    s_player_fillfuel = -1;

    player removeAction s_player_studybody;

    s_player_studybody = -1;

    //Dog

    player removeAction s_player_tamedog;

    s_player_tamedog = -1;

    player removeAction s_player_feeddog;

    s_player_feeddog = -1;

    player removeAction s_player_waterdog;

    s_player_waterdog = -1;

    player removeAction s_player_staydog;

    s_player_staydog = -1;

    player removeAction s_player_trackdog;

    s_player_trackdog = -1;

    player removeAction s_player_barkdog;

    s_player_barkdog = -1;

    player removeAction s_player_warndog;

    s_player_warndog = -1;

    player removeAction s_player_followdog;

    s_player_followdog = -1;

    

    // vault

    player removeAction s_player_unlockvault;

    s_player_unlockvault = -1;

    player removeAction s_player_packvault;

    s_player_packvault = -1;

    player removeAction s_player_lockvault;

    s_player_lockvault = -1;

    player removeAction s_player_information;

    s_player_information = -1;

    player removeAction s_player_fillgen;

    s_player_fillgen = -1;

    player removeAction s_player_upgrade_build;

    s_player_upgrade_build = -1;

    player removeAction s_player_maint_build;

    s_player_maint_build = -1;

    player removeAction s_player_downgrade_build;

    s_player_downgrade_build = -1;

    INSERT CKC CODE HERE

    player removeAction s_player_towing;

    s_player_towing = -1;

    player removeAction s_player_fuelauto;

    s_player_fuelauto = -1;

    player removeAction s_player_fuelauto2;

    s_player_fuelauto2 = -1;

};

//Dog actions on player self

_dogHandle = player getVariable ["dogID", 0];

if (_dogHandle > 0) then {

    _dog = _dogHandle getFSMVariable "_dog";

    _ownerID = "0";

    if (!isNull cursorTarget) then { _ownerID = cursorTarget getVariable ["CharacterID","0"]; };

    if (_canDo && !_inVehicle && alive _dog && _ownerID != dayz_characterID) then {

        if (s_player_movedog < 0) then {

            s_player_movedog = player addAction [localize "str_actions_movedog", "\z\addons\dayz_code\actions\dog\move.sqf", player getVariable ["dogID", 0], 1, false, true, "", ""];

        };

        if (s_player_speeddog < 0) then {

            _text = (localize "str_epoch_player_249");

            _speed = 0;

            if (_dog getVariable ["currentSpeed",1] == 0) then { _speed = 1; _text = (localize "str_epoch_player_250"); };

            s_player_speeddog = player addAction [format[localize "str_actions_speeddog", _text], "\z\addons\dayz_code\actions\dog\speed.sqf",[player getVariable ["dogID", 0],_speed], 0, false, true, "", ""];

        };

        if (s_player_calldog < 0) then {

            s_player_calldog = player addAction [localize "str_actions_calldog", "\z\addons\dayz_code\actions\dog\follow.sqf", [player getVariable ["dogID", 0], true], 2, false, true, "", ""];

        };

    };

} else {

    player removeAction s_player_movedog;        

    s_player_movedog =        -1;

    player removeAction s_player_speeddog;

    s_player_speeddog =        -1;

    player removeAction s_player_calldog;

    s_player_calldog =         -1;

};

Link to comment
Share on other sites

Jossy , good news and great news!! The problem that i had with users not being able to change the lock codes because it just blinked? I though that looked like the behavior of something closing the dialog , no errors , no nothing.

 

I looked into infistar and found a way to fix it.

 

AHConfig.sqf in the server PBO inside the init folder.

 

This is the ckc UI code: 118339, found it inside of one of the hpp files.

 

/*  ALLOWED Dialogs       */ _ALLOWED_Dialogs = [-1,106,6900,6901,6902,6903,420420,41144,55510,118339];

 

So now it seems good, users can change the lock codes.

 

If i find a way to fix the glitch i told you about earlyer ( when setting a new lock code it presents 000 but the actual code is there ) i'll let you know.

 

Thanks again for maintaining this great script and for all the help!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Advertisement
×
×
  • Create New...