Jump to content

RAMBO

Member
  • Posts

    52
  • Joined

  • Last visited

Posts posted by RAMBO

  1. Its very simple, open up Arma 2 Operation Arrowhead, in the main menu, press Alt + E. Part 1/5 complete

     

    This will take you to a 2D map, now simply choose the area you want to customize and first choose ''Centre F10'' on the right hand side of the screen, now click anywhere on the map and press Ok, part 2/5 complete. 

     

    Next you have to create a group, again on the right hand side of the screen select ''Group'' and click anywhere on the map. Next you will need a playable unit, so click on ''Unit'' and click on the map, this will bring up a menu, you dont have to alter anything apart form the second to last box, you want it in Playable. Part 3/5 done!

     

    Next click on the 3D editior, to place buildings, click on the ''Vehicles'' tab and have a play around with that. Yep, thats part 4/5 finished!

     

    To check your building work, you can click on 'Preview' at any time, saving  it will be your part 5/5 and finito!

     

    This shows how to use the 3d editor in general... However, it does not display any of the Epoch buildables. Perhaps I am missing an addon or something?

  2. If you are looking to increase the radius all you need to do is change the A & B functions of the sensors in your mission.sqm:

     

    class Item1
            {
                position[]={4063.4226,365.00577,11664.19};
                a=100;
                b=100;
                activationBy="WEST";
                repeating=1;
                interruptable=1;
                age="UNKNOWN";
                name="zonebash";
                expCond="(player distance zonebash) < 100;";
                expActiv="TitleText[""Now entering SAFE city Bash"",""PLAIN DOWN""]; canbuild = false;";
                expDesactiv="TitleText[""Now leaving SAFE city Bash"",""PLAIN DOWN""]; canbuild = true;";
                class Effects
                {
              

    If you want a new safezone entirely, you need to add an additional class item with similar information to the one above. And then replace the setpos.

  3. I have found that there are times where it is easier just to copy and paste another persons file... With that said, you are more than welcome to try using my fn_selfactions.sqf.

     

    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"];

    if (TradeInprogress) 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 and !r_player_unconscious and !_onLadder);

    // ---------------------------------------Krixes Self Bloodbag Start------------------------------------
        _mags = magazines player;
     
        // Krixes Self Bloodbag
        if ("ItemBloodbag" in _mags) then {
            hasBagItem = true;
        } else { hasBagItem = false;};
        if((speed player <= 1) && hasBagItem && _canDo) then {
            if (s_player_selfBloodbag < 0) then {
                s_player_selfBloodbag = player addaction[("<t color="#c70000"">" + ("Self Bloodbag") +"</t>"),"Scripts\player_selfbloodbag.sqf","",5,false,true,"", "];
            };
        } else {
            player removeAction s_player_selfBloodbag;
            s_player_selfBloodbag = -1;
        };
    // ---------------------------------------Krixes Self Bloodbag End------------------------------------

    _nearLight =     nearestObject [player,"LitObject"];
    _canPickLight = false;
    if (!isNull _nearLight) then {
        if (_nearLight distance player < 4) then {
            _canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
        };
    };

    //Grab Flare
    if (_canPickLight and !dayz_hasLight and !_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(_isPZombie) then {
        if (s_player_callzombies < 0) then {
            s_player_callzombies = player addAction ["Raise Horde", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""];
        };
        if (s_player_pzombiesattack < 0) then {
            s_player_pzombiesattack = player addAction ["Attack", "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf",cursorTarget, 6, true, false, "",""];
        };
        if (s_player_pzombiesvision < 0) then {
            s_player_pzombiesvision = player addAction ["Night Vision", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];
        };
        if (!isNull cursorTarget and (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 or animal
            if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested) then {
                if (s_player_pzombiesfeed < 0) then {
                    s_player_pzombiesfeed = player addAction ["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 OR SHIP
    _allowedDistance = 4;
    _isAir = cursorTarget isKindOf "Air";
    _isShip = cursorTarget isKindOf "Ship";
    if(_isAir or _isShip) then {
        _allowedDistance = 6;
    };

    if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _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 and magazines only once
        _magazinesPlayer = magazines player;

        //boiled Water
        _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer;
        _hastinitem = false;
        {
            if (_x in _magazinesPlayer) then {
                _hastinitem = true;
            };
        } forEach boil_tin_cans;
        _hasFuelE =     "ItemJerrycanEmpty" in _magazinesPlayer;
        _hasFuelBarrelE =     "ItemFuelBarrelEmpty" in _magazinesPlayer;

        _itemsPlayer = items player;
        
        _temp_keys = [];
        // 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");
                _temp_keys set [count _temp_keys,str(_ownerKeyId)];
            };
        } forEach _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;
        
        _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;
            };
        } forEach _rawmeat;
        
        _isFuel = false;
        if (_hasFuelE or _hasFuelBarrelE) then {
            {
                if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;};
            } forEach 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;

        // CURSOR TARGET ALIVE
        if(_isAlive) then {
            
            //Allow player to delete objects
            if(_isDestructable or _isWreck or _isRemovable or _isWreckBuilding) then {
                if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then {
                    _player_deleteBuild = true;
                };
            };
            
            // CURSOR TARGET VEHICLE
            if(_isVehicle) then {
                
                //flip vehicle small vehicles by your self and all other vehicles with help nearby
                if (!(canmove _cursorTarget) and (player distance _cursorTarget >= 2) and (count (crew _cursorTarget))== 0 and ((vectorUp _cursorTarget) select 2) < 0.5) then {
                    _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]);
                    if(_isVehicletype or (_playersNear >= 2)) then {
                        _player_flipveh = true;    
                    };
                };


                if(!_isMan and _ownerID != "0") 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;
        };

        
        // Allow Owner to lock and 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 or _oldOwner) then {
                        _Unlock = player addAction [format["Unlock %1",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",_cursorTarget, 2, true, true, "", ""];
                        s_player_lockunlock set [count s_player_lockunlock,_Unlock];
                        s_player_lockUnlock_crtl = 1;
                    } else {
                        _Unlock = player addAction ["<t color=#ff0000'>Vehicle Locked</t>", "",_cursorTarget, 2, true, true, "", "];
                        s_player_lockunlock set [count s_player_lockunlock,_Unlock];
                        s_player_lockUnlock_crtl = 1;
                    };
                } else {
                    if(_hasKey or _oldOwner) then {
                        _lock = player addAction [format["Lock %1",_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} forEach s_player_lockunlock;s_player_lockunlock = [];
            s_player_lockUnlock_crtl = -1;
        };

        if(DZE_AllowForceSave) then {
            //Allow player to force save
            if((_isVehicle or _isTent) and !_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 or _isTent or _isnewstorage) and _isAlive and !_isMan) then {
                if (s_player_checkGear < 0) then {
                    s_player_checkGear = player addAction ["Cargo Check", "\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 and 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 or _hasFuelBarrelE) and _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;

        // CURSOR TARGET NOT ALIVE
        if (!_isAlive) then {

            // Gut animal/zed
            if((_isAnimal or _isZombie) and _hasKnife) then {
                _isHarvested = _cursorTarget getVariable["meatHarvested",false];
                if (!_isHarvested) then {
                    _player_butcher = true;
                };
            };

            // Study body
            if (_isMan and !_isZombie) then {
                _player_studybody = true;
            }
        };


        // Human Gut animal or zombie
        if (_player_butcher) then {
            if (s_player_butcher < 0) then {
                if(_isZombie) then {
                    s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 3, 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 and _hastinitem) then {
                _player_boil = true;
            };
        };

        //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) and !(inflamed _cursorTarget) and (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 and _ownerID == dayz_characterID) then {
            if ((s_player_packtent < 0) and (player distance _cursorTarget < 3)) then {
                s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""];
            };
        } else {
            player removeAction s_player_packtent;
            s_player_packtent = -1;
        };

        //Allow owner to unlock vault
        if((_typeOfCursorTarget in DZE_LockableStorage) and _ownerID != "0" and (player distance _cursorTarget < 3)) then {
            if (s_player_unlockvault < 0) then {
                if(_typeOfCursorTarget in DZE_LockedStorage) then {
                    if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then {
                        _combi = player addAction [format["Open %1",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
                    } else {
                        _combi = player addAction [format["Unlock %1",_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 and _ownerID != dayz_playerUID) then {
                        _combi = player addAction ["Re-Enter Combination", "\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} forEach s_player_combi;s_player_combi = [];
            s_player_unlockvault = -1;
        };

        //Allow owner to pack vault
        if(_typeOfCursorTarget in DZE_UnLockedStorage and _ownerID != "0" and (player distance _cursorTarget < 3)) then {

            if (s_player_lockvault < 0) then {
                if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then {
                    s_player_lockvault = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""];
                };
            };
            if (s_player_packvault < 0 and (_ownerID == dayz_combination or _ownerID == dayz_playerUID)) then {
                s_player_packvault = player addAction [format["<t color=#ff0000'>Pack %1</t>",_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 ["Recent Murders", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 0, 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 and (_x getVariable ["GeneratorRunning", false])) then {
                        _findNearestGen set [(count _findNearestGen),_x];
                    };
                } foreach _findNearestGens;
                _IsNearRunningGen = count (_findNearestGen);
                
                // show that pump needs power if no generator nearby.
                if(_IsNearRunningGen > 0) then {
                    s_player_fuelauto = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""];
                } else {
                    s_player_fuelauto = player addAction ["<t color=#ff0000'>Needs Power</t>", "",[], 0, false, true, "","];
                };
            };
        } else {
            player removeAction s_player_fuelauto;
            s_player_fuelauto = -1;
        };

        //Fuel Pump on truck
        if(_typeOfCursorTarget in DZE_fueltruckarray and 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 ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""];
                } else {
                    s_player_fuelauto2 = player addAction ["<t color=#ff0000'>Needs Power</t>", "",[], 0, false, true, "","];
                };
            };
        } else {
            player removeAction s_player_fuelauto2;
            s_player_fuelauto2 = -1;
        };


        if ((_cursorTarget isKindOf "ModularItems") or (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") or (_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["Upgrade %1",_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;
        };
        

        // inplace maintenance tool
        if((_isDestructable or _cursorTarget isKindOf "ModularItems" or _cursorTarget isKindOf "DZE_Housebase")) then {
            if ((s_player_lastTarget select 1) != _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 [1,_cursorTarget];
                s_player_maint_build = player addAction [format["Maintain %1",_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 ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""];                
                } else {
                // check if not filled and player has jerry.
                    if((_cursorTarget getVariable ["GeneratorFilled", false])) then {
                        s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
                    } else {
                        if("ItemJerrycan" in _magazinesPlayer) then {
                            s_player_fillgen = player addAction ["Fill and Start Generator", "\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 == "VIL_asistvan_DZE") then {
            if (s_player_towing < 0) then {
                if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
                    s_player_towing = player addAction ["Attach Straps", "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""];                
                } else {
                    s_player_towing = player addAction ["Detach Straps", "\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 and _ownerID == dayz_characterID) then {
            if ((s_player_sleep < 0) and (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;
        };
        
        //Repairing Vehicles
        if ((dayz_myCursorTarget != _cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage _cursorTarget < 1) and !_isDisallowRepair) then {
            if (s_player_repair_crtl < 0) then {
                dayz_myCursorTarget = _cursorTarget;
                _menu = dayz_myCursorTarget addAction ["Repair Vehicle", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
                _menu1 = dayz_myCursorTarget addAction ["Salvage Vehicle", "\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} forEach s_player_repairActions;s_player_repairActions = [];
                s_player_repair_crtl = -1;
            };
        };

        // All Traders
        if (_isMan and !_isPZombie and _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["Your humanity is too %1 this trader refuses to talk to you.",_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];
                    
                    } forEach (_traderMenu select 1);
                    // Database menu
                    _buy = player addAction ["Trader Menu", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 99, true, false, "",""];
                    s_player_parts set [count s_player_parts,_buy];
                    
                    // Add static metals trader options under sub menu
                    _metals_trader = player addAction ["Trade Metals", "\z\addons\dayz_code\actions\trade_metals.sqf",["na"], 0, true, false, "",""];
                    s_player_parts set [count s_player_parts,_metals_trader];

                };
                s_player_parts_crtl = 1;
                
            };
        } else {
            {player removeAction _x} forEach s_player_parts;s_player_parts = [];
            s_player_parts_crtl = -1;
        };

        
        if(dayz_tameDogs) then {
            
            //Dog
            if (_isDog and _isAlive and (_hasRawMeat) and _ownerID == "0" and 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 and _ownerID == dayz_characterID and _isAlive) then {
                _dogHandle = player getVariable ["dogID", 0];
                if (s_player_feeddog < 0 and _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 and "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 = "Quiet"; _warn = false; } else { _text = "Alert"; _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} forEach s_player_repairActions;s_player_repairActions = [];
        s_player_repair_crtl = -1;

        {player removeAction _x} forEach s_player_combi;s_player_combi = [];
            
        dayz_myCursorTarget = objNull;
        s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull];

        {player removeAction _x} forEach s_player_parts;s_player_parts = [];
        s_player_parts_crtl = -1;

        {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = [];
        s_player_lockUnlock_crtl = -1;

        player removeAction s_player_checkGear;
        s_player_checkGear = -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_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 and !_inVehicle and alive _dog and _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 = "Walk";
                _speed = 0;
                if (_dog getVariable ["currentSpeed",1] == 0) then { _speed = 1; _text = "Run"; };
                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;
    };

     

    Hope it works,

     

    RAMBO

  4. Most of us here started on vanilla dayz, so to an extent I would agree with Krunchy. However, Epoch really is quite a unique experience and I would encourage you to jump right into it. The devs have done a remarkable job of creating this game and keeping it running smoothly. This website is an amazing resource, continue to use it and ask any questions you need answers to.

     

    Also, as far as downloading is concerned... here is a link to dayzcommander http://dayzcommander.com/. This program will be your bestfriend when it comes to updating and downloading various Dayz mods (including Epoch!!).

     

    Goodluck,

     

    ~ RAMBO

×
×
  • Create New...