Jump to content

raymix

Developer
  • Posts

    1374
  • Joined

  • Last visited

  • Days Won

    30

Reputation Activity

  1. Like
    raymix got a reaction from david in [Release] Remote key for locking/unlocking vehicles (0.3)   
    ok, here's a temporary fix that uses [right Shift] to lock/unlock vehicles, if people lock themselves in (due to inaccessible gear while inside locked car)
    Downsides:
    *It does not check if owner
    *It does not check if car has a key
    *It is spammable
     
    I'll stop here for now, since I've got bigger fish to fry now. But if anybody still interested, here's the code:
     
    init.sqf
    Inside of if (!isDedicated) then { somewhere at bottom after //Lights
    [] ExecVM "custom\remote\shiftlock.sqf"; shiftlock.sqf



     
    EDIT: doesn't cooperate with infistar, works for admins only. Not sure how to whitelist a function
  2. Like
    raymix got a reaction from OneManGang in [Release] Enhanced Vehicle Deployment (with right click option)   
    Hi, TheFarix, well done with the script.
    You might be interested in this part:
    _offset = [0,5,0]; // 5 meters Y _worldPos = player modelToWorld _offset; // in front of player _object = _type createVehicle (_worldPos); _object setVariable ["ObjectID",_objectID, true]; _object setVariable ["ObjectUID",_objectID, true]; _degrees = getDir player; //find out which direction player is looking at _object setDir _degrees; //rotate vehicle to match player's direction
  3. Like
    raymix got a reaction from cen in [Release] Deploy Bike Extendet   
    Not sure if anyone posted this, but if you are tired of searching for spawned vehicle every time you spawn one, then here's a quick fix:
     
    In all of your deploy SQF script files
     
    Find:
    sleep 6; _object = "MMT_Civ" createVehicle (position player); _object setVariable ["ObjectID", "1", true]; _object setVariable ["ObjectUID", "1", true]; player reveal _object; Replace with:
    sleep 6; _Offset = [0,5,0]; //change how far from player this vehicle will spawn X Y Z in meters, in this case 5 meters in front of player _worldPos = player modelToWorld _Offset; // spawn in front of player _object = "MMT_Civ" createVehicle (_worldPos); _object setVariable ["ObjectID", "1", true]; _object setVariable ["ObjectUID", "1", true]; _degrees = getDir player; //find out which direction player is looking at _object setDir _degrees; //rotate vehicle to match player's direction player reveal _object; Enjoy your bikes!
  4. Like
    raymix got a reaction from Brockie in [Discontinued] Emerald Interior Designer   
    Project has been discontinued 
    If you still want this mod, it will (and should) work with any beta or Epoch release, however I highly suggest using
     
     


     
    Very simple script that lets you right click ItemEmerald and spawn various interior items, using Epoch building system.
    I will assume you know your way around with scripts and have custom extra_rc, fn_selfActions.sqf and variables.sqf in your mission file, if not, ask below.
     
    Credits:
    Rocket
    DayZ Epoch Team for player_build.sqf
    Maca for extra_rc
    PetuniaEpoch for modified
    Rythron FIX for playerID tied to plotpole script, replace your http://epochmod.com/forum/index.php?/topic/10665-release-emerald-interior-designer/?p=77638 with his.
     
    UPDATE LOG v1.1.1:
    *Increased distance of objects to prevent people  from dying, please refer to _offset in spawn.sqf
    *Fixed issue with object height distance while using ALT+PgUP/PgDown
     
    UPDATE LOG v1.1:
    *Added huge list of external objects
    *Added Toggle-able plotpole requirement for spawn
    *Added Ability to remove items
    *Can't spawn or remove items if not owner or tagged friendly of nearby plotpole
     
     
    Download files:
    https://dl.dropboxusercontent.com/u/14423790/interiorV1.1.1.rar
     
    Or add yourself:
     
    custom\extra_rc.hpp (Updated V1.1):



     
    custom\variables.sqf (Updated V1.1): Find 
    dayz_allowedObjects = ["TentStorage"........  Change to: 



     
    description.ext:
    #include "interior\defines.hpp" #include "interior\dialogs.hpp" interior\defines.hpp:



     
    interior\dialogs.hpp (Do not use with newest Infistar AH):



     
    interior\dialogs.hpp (Only for people with newest Infistar Antihack):



     
    interior\items.sqf (Updated V1.1):



     
    interior\spawn.sqf (Updated v1.1.1):
    _plotReq = true; // can't build without nearby plotpole
    _plotReq = false; //can build without plotpole or near owned plotpole only
    _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player



     
    interior\remove.sqf (NEW):



     
    custom\fn_selfActions.sqf (Updated V1.1.1)
    Add to the very bottom of the file:



  5. Like
    raymix reacted to prominentalex in [Release] WPD's Action Menu (Deploy Vehicle/View Distance/Color Filters/Self Bloodbag/Suicide/Flip Vehicle)   
    What it does\includes:
     
    It's a scroll wheel menu that you get whenever you'd like. It allows you to do:
     
    Self Bloodbag
    Suicide with confirmation
    Flip Vehicle
    Deploy Bike
    Deploy Gyro
    Deploy Motorcycle
    Pack Vehicle
    Change Color Filters
    Change View Distance
    Spawn Donator boxes

    https://github.com/prominentalex/WPDs-Action-Menu
     
    Outdated** Video

    *This outdated video doesn't include deploy/pack vehicle or suicide & no longer contains Emotes
     
    Instructions:
     
    Step 1: In your MPmission folder, go into your init.sqf & at the very bottom copy and paste
     
     
    Step 2: Extract the files downloaded into your MPmission folder
     
    Step 3 (If using antihack): Add these to whitelist the CMD Menus
     
    Customization:
     
    Rules: Go to the ActionMenu\Tools\help.sqf you will find text. Here is where you can edit the rules to fit your server.
     
    Donator Boxes: In Donations you'll see a T3.sqf, that can be edited to spawn a box of gear that you desire. You can add more boxes by making a copy of the file, editing the contents & adding it to the DonatorMenu in the ActionMenu_main.sqf
     
    Player UID: In the ActionMenu_main.sqf you'll see a player ID section at the top, delete mine and replace it with yours so you can have access to the donator menu.
     
    Self Bloodbag: Change the infection rate and health gain on the self bloodbag by going to ActionMenu\Tools\bloodbag.sqf and editing the config at the top.
     
    Changing the Menu Color: Go to ActionMenu\actionmenu_activate.sqf & Find #00FFFF. Once you've done that go to this website: http://www.w3schools.com/html/html_colors.asp. Copy and paste a color code and replace the one in the file.
     
    Bugs/Features to Add (Please help or give input if you can):
     
    Disappears when switching skins - forced to relog
    No way of disabling snow
    Togglable Debug Monitor
    Disappears sometimes when logging in
    How could I add this to a self action?
     
     
    Special Thanks to:
     
    Krixes
    FreakingFred
    Shogun
    BluePhoenix
    Rosska85
  6. Like
    raymix got a reaction from Rythron in [Discontinued] Emerald Interior Designer   
    Hey, guys! Major update out, please refer to First 2 posts
     
    Also more objects to play around with (yes there's a snowman included, lol)

  7. Like
    raymix got a reaction from F507DMT in [Discontinued] Emerald Interior Designer   
    Figured out better solution to object placement:
     
    inside of spawn.sqf find this line:
    _offset = [0,1.5,0]; change it to 
    _offset = [0,3.5,0]; This will simply offset the location of object spawned away from your character by 2 meters (1.5m + 2m = 3.5m)
    Here's some pictures of examples:
    Map_kasna_new
    MAP_pumpa
     
    I will update spawn.sqf as soon as I figure out how to add height limit in response to ladders video
     
    @F507DMT: it wont work, it involves adding extra @addon of objects with reduced alpha and collision removed
     
    edit: fixed distance bug, it was a typo, updating spawn.sqf from first post. Thanks for your bug reports, guys, much appreciated.
  8. Like
    raymix got a reaction from F507DMT in [Discontinued] Emerald Interior Designer   
    in spawn.sqf
    fnc_Pos_fired3 = { disableSerialization; _indexBed = lbCurSel 2669; // index of selection _returnTextBed = lbText [2669, _indexBed]; // name of selection hint format["BAR : [%1] \n [%2]",_indexBed,_returnTextBed];// display the value classnameChange = _returnTextBed; player removeMagazine "ItemCitrine"; // add this line }; and remove or comment out third line here:
    PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname]; publicVariableServer "PVDZE_obj_Publish"; //player removeMagazine "ItemEmerald"; // comment out or remove this line
  9. Like
    raymix got a reaction from Stranger in Show us your loadScreen!   
    New loadscreens for us.
     

     

  10. Like
    raymix got a reaction from STENCHOVDETH in [Discontinued] Emerald Interior Designer   
    Project has been discontinued 
    If you still want this mod, it will (and should) work with any beta or Epoch release, however I highly suggest using
     
     


     
    Very simple script that lets you right click ItemEmerald and spawn various interior items, using Epoch building system.
    I will assume you know your way around with scripts and have custom extra_rc, fn_selfActions.sqf and variables.sqf in your mission file, if not, ask below.
     
    Credits:
    Rocket
    DayZ Epoch Team for player_build.sqf
    Maca for extra_rc
    PetuniaEpoch for modified
    Rythron FIX for playerID tied to plotpole script, replace your http://epochmod.com/forum/index.php?/topic/10665-release-emerald-interior-designer/?p=77638 with his.
     
    UPDATE LOG v1.1.1:
    *Increased distance of objects to prevent people  from dying, please refer to _offset in spawn.sqf
    *Fixed issue with object height distance while using ALT+PgUP/PgDown
     
    UPDATE LOG v1.1:
    *Added huge list of external objects
    *Added Toggle-able plotpole requirement for spawn
    *Added Ability to remove items
    *Can't spawn or remove items if not owner or tagged friendly of nearby plotpole
     
     
    Download files:
    https://dl.dropboxusercontent.com/u/14423790/interiorV1.1.1.rar
     
    Or add yourself:
     
    custom\extra_rc.hpp (Updated V1.1):



     
    custom\variables.sqf (Updated V1.1): Find 
    dayz_allowedObjects = ["TentStorage"........  Change to: 



     
    description.ext:
    #include "interior\defines.hpp" #include "interior\dialogs.hpp" interior\defines.hpp:



     
    interior\dialogs.hpp (Do not use with newest Infistar AH):



     
    interior\dialogs.hpp (Only for people with newest Infistar Antihack):



     
    interior\items.sqf (Updated V1.1):



     
    interior\spawn.sqf (Updated v1.1.1):
    _plotReq = true; // can't build without nearby plotpole
    _plotReq = false; //can build without plotpole or near owned plotpole only
    _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player



     
    interior\remove.sqf (NEW):



     
    custom\fn_selfActions.sqf (Updated V1.1.1)
    Add to the very bottom of the file:



  11. Like
    raymix reacted to Sandbird in [Release] Dayz.Epoch.3d.Editor.Live.Mission   
    Dayz.Epoch.3d.Editor.Live.Mission
     

    -=Youtube Demo=-
     
    What is this
    A custom mission file for the purpose of testing/writing scripts for DayZ Epoch without the need of a server. It emulates the dayz_server and dayz_mission files, for live testing of code inside the 3d editor.
     
    Features
    Fully working GUI, zombies, hit registration, addactions, everything! Write code and execute it on the fly. No need to start a server and join with a client to test things. 99% of your scripts should work ! (dynamic weather, default loadouts, custom scripts etc) 2 setups. DefaultLoadout from init.sqf or a Fake database entry. (copy/paste your character info from the database) Includes most of BIS_fnc functions, so actions like BIS_fn_invAdd will work (with some changes, see bellow) Installation

    DayzEpochTemplate.Chernarus
     
    Head over to the GitHub where the project is. Click Download on the right sidebar Extract the Chernarus mission file in your \My Documents\ArmA 2\missions Copy the DayzEpoch.bat file (included in the .zip) in your Arma2 OA root directory and execute it When the game launches, press Alt+E, select Chernarus, then Load and select mission DayzEpochTemplate Start editing your files located in \My Documents\ArmA 2\missions\DayzEpochTemplate with your customizations. Customizing and Important Notes

    Default setup vs Fake Database setup
    There are 2 ways of initializing your player.
    The default Epoch loadout (like the one in your init.sqf) A manually entry of fake database data (coordinates, medical states, inventory etc) The 1st way has no bugs (so far), and its the easiest thing you could start with.
    Just open the dayz_code\init\setupChar.sqf and at the bottom of the file change the values to your liking.
    Make sure in the init.sqf, DefaultTruePreMadeFalse is set to true; and also from there you can change the Default loadout of the player.

    The 2nd option is a bit more complicated. It works, but sometimes it bugs out, when you select Restart instead of Loading again the Mission file.
    I left the PlayerUID in the debug monitor...so IF you see that it is set to 0 then you know something went wrong...Just reload the mission file and you should be fine.
    To setup your character with the second method open dayz_code\init\variables.sqf. The first 55 lines until //Model Variables is where the magic happens.

    Some things have to be set twice. CharacterID and playerUID so we set them up here at first.
    player setIdentity "My_Player";                   //check description.ext file....There is no way to get the name of player otherwise in the editor. player setVariable ["CharacterID", "1", true];    // same as the line 28 (Your charID. Must be the same number) player setVariable ["playerUID", "111111", true]; // Your player's UID Further down is our first fake database entry. The first and second value, leave it like that. The 3rd has to be the same value as the one above.
    The only extra addition to this is the _survival state of the player. That is created in the dayz_server.pbo so i had to emulate the values.
        /*         OK or Error    = _primary select 0;         Is newPlayer (true/false) = _primary select 1;         _charID                   = _primary select 2;         _isInfected (1/0)         = _primary select 3;         _inventory                = _primary select 4;         _backpack                 = _primary select 5;         _survival                 = _primary select 6;  //last ate+ last drunk +totalminutes alive         _model                    = _primary select 7;         _hiveVer                  = _primary select 8;     */     primaryPre = [     "OK",     false,     "1", // My charID     "0",     [["ItemMap","ItemWatch","ItemToolbox","ItemFlashlightRed","Binocular_Vector","M9SD","NVGoggles","ItemRadio","ItemEtool","ItemHatchet_DZE","ItemCrowbar","ItemMatchbox_DZE","M4A1_HWS_GL_SD_Camo","ItemKnife","ItemCompass"],["30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","FoodSteakCooked","ItemSodaCoke","PartGeneric","PartGeneric","PartWheel","PartWheel","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","ItemBandage","ItemBandage","ItemBandage"]],     ["DZ_Backpack_EP1",[["AK_47_S"],[1]],[["ItemBloodbag"],[2]]],     [4320,114.9,42.753],   // ------ This is the only extra thing i had to add: 4320 means 3 days (survival time) in minutes, 114.9: last ate, 42.753: last drunk   -----     "TK_Commander_EP1_DZ",     11]; The second part is this
        /*         OK or Error        = _primary select 0;         _medical           = _primary select 1;         _stats             = _primary select 2;         _state             = _primary select 3;         _worldspace        = _primary select 4;         _humanity          = _primary select 5;         _lastinstance      = _primary select 6;     */     secondaryPre = [     "OK",     [false,false,false,false,false,false,false,6000,[],[0,0],0,[114.9,42.753]], // 6000 blood     [10,20,1,22], // Kill stats     ["M9SD","aidlpknlmstpsraswpstdnon_player_idlesteady02",42,["222222","333333"]],  //42 is the temperature, ["222222","333333"] are my friend UIDs     [91,[4965.1968,10002.998,0.001]], // Coordinates     11000,     11]; This is the medical condition, kill stats, stance, friendlist, coordinates, humanity and instance of the player.

    Like i said the 2nd option is a bit buggy, you have to reload or restart the mission sometimes, to get accurate results.
    Most of the scripts you'll test/write should work fine...but if you want to write code for something that requires more complex stuff,
    like for example that requires the friendsarray, then make sure the mission was loaded correctly.
    Loading the mission again doesn not affect your custom scripts. It will reload the mission.beidi file.

    The description.ext has your character's name in it. If you ever need to check player name...it will get it from there.
        class My_Player     {         name="DemoPlayer";         face="Face20";         glasses="None";         speaker="Dan";         pitch=1.1;     }; Important info

    Related to coding
    Since this is an emulation of the dayz_server some things will never work.
    For example:
    _playerUID = getPlayerUID player; will never work in the editor.
    To get the _playerUID you have to do this:
    _playerUID = player getVariable ["playerUID", "0"];
    This is the most important thing to remember. Lots of scripts use getPlayerUID. You have to remember to change it every time you want to use it.
    findDisplay 46 does not work in the editor :/ so scripts like the CCTV wont work

    Also some BIS_fnc functions have to be included in the dayz_code\init\compiles.sqf for them to work. For example i had to include:
    BIS_fnc_invAdd = compile preprocessFileLineNumbers "dayz_code\system\functions\inventory\fn_invAdd.sqf";     If your code has BIS_fnc functions in it then check the folder dayz_code\system\functions for the function and include it in the compiles.sqf.
    I am sure there is a way to parse the folder and add a BIS_ infront of all the files, like epoch does it...but i didnt want to waste time and ran into problems,
    so manually adding the files is fine by me.
    Use the debug option in the init.sqf if you are using the 2nd method (fake database entry). And ALWAYS check your RPT log file for debugging. Its located at : %AppData%\Local\ArmA 2 OA
    Also enable this in the init.sqf if you want more details:
    DZEdebug = true;  // Debug messages on log file Dont let the file names trick you...These are heavily modified files...Dont overwrite them with your own files. Add to them instead of replacing them.

    Related to mission file included
    You'll notice when you start the mission there are 2 bots standing there. If you double click the soldier you'll see that he initiates this script scripts\BotInit.sqf.
    I left that in purpose in case you want to do some scripting that requires 'another player', and you want to initialize the fake player like that.
    The other bot can be deleted. I just left it there because i was testing a Tag Friendly script, and needed a 3rd 'player' that has me as a friend. (i got no friends lol).
     
    In most of my scripts i use the playerUID to validate checks between owner and objects. Some default Epoch files use the characterID...meaning if you die...you lose ownership.
    Thats why i changed most of the stuff to playerUID instead...If for some reason you are using scripts that check CharacterID instead of playerUID, i would suggest you change that, because some things (with the 2nd method) might not work...due to the fact that my files are checking playerUID for validation. Worst case scenario if you cant edit the files....just use the same CharacterID and playerUID...so its always the same :)
     
    Example on how to use the superadmins.sqf (for actions restricted to admins only, just add your fake UID in the array)
     
    (In your fn_self_actions.sqf)
    //_adminList = call compile preProcessFileLineNumbers "superadmins.sqf"; // This line is already at the top of the file. _cursorTarget = cursorTarget; _typeOfCursorTarget = typeOf _cursorTarget; _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _playerUID = player getVariable ["playerUID", 0]; // Example on how to use _adminList if((typeOf(cursortarget) == "Plastic_Pole_EP1_DZ") and _ownerID != "0" and (player distance _cursorTarget < 2)) then { if (_playerUID in _adminList) then { cutText [format["Plot Pole Owner PUID is: %1",_playerUID], "PLAIN DOWN"]; }; }; Bugs
    I disabled the call player_switchModel, on the Fake database method..meaning it wont switch the player to your skin when you press Preview, because it deletes one player and creates a new one. When this happens it kinda breaks tons of stuff. If you want to enable it its at line 70 in the dayz_code\init\setupChar_Database.sqf Sometimes the player will spawn twice. That's because when you Preview the map you are also the Server and the Player. The code runs twice....hence the bugs with the 2nd method with the fake database. Sometimes the dayz_Login and Setup method get all messed up cause in the 3d editor you have to have a Playable character for the mission to start...but dayz server doesnt work this way. I did my best to 'ignore' the manually added player in the beidi file and use the player the game makes (2nd method) but sometimes this whole isServer isPlayer as well messes up things. There are no .fsm files so dont try to include them. 3d editor will not work with them, thats why i broke the player_monitor.fsm to 2 .sqf files...One emulates 'login to the server', and one 'setup of player'. findDisplay 46 doesnt work :/ in editor...if anyone knows a way to make it work...please post it.  
    Final Notes

    These files took me alot of time to make. It wasnt easy, and i am sure you'll find bugs or some things could have been writen a better way.
    The whole purpose of this project was to not waste any more time trying to code on this god forsaken Arma engine. I cant believe that there isnt an option to write code 'on the fly'. With a proper debugger...
    Sure there are little tricks and hacks you can add to diag_log variables, but to write an actual script that requires interaction with the environment or beta testing custom script ??? Forget it.
    I've included the Deploy bike and Self bloodbag scripts in the pack...just to see how easy it is to add/run/debug them. (Check the youtube video).
     
    And a personal note....You will NEVER find an easier way to code stuff for Dayz....period. I've been begging both here and on Opendayz for a Guru to point me to the right direction for fast coding/debugging code in  Dayz and i got nothing. Only some debuggers for a glorified diag_log option. This is the fastest way to write code and see it in action.

    Hope this code will help you write code faster and easier :)
  12. Like
    raymix reacted to Axe Cop in [Release] Vehicle Service Point (Refuel, Repair, Rearm) [Script]   
    Just made a new script for proper vehicle service points where you are able to refuel, repair and rearm your vehicles! (I could not find a good one, so I did it myself)
    "Proper" meaning everything is done like it should be in Epoch and saved to the database, e.g. the script is really repairing all vehicle parts and not just setting the damage to 0, so it's the same as if you would repair every damaged part yourself.
     
    Main Features:
    dynamic service points where you are able to select the options (default at every fuel station, if you want it's easy to add the epoch fuel pumps so you can build a service point in your base, you can also add vehicles or units if you want, like a NPC trader) you can refuel and repair any vehicle by just sitting inside and get close to a service station (default 10m), then you get the actions menu attached to the vehicle, with rearm you have to be in the gunner seat because only that turret will be rearmed (for all cases the vehicle has to be local to your PC, so your have to be the driver/pilot or are alone in the vehicle) the services don't have to be for free, you can add a price to every option like the traders (e.g. refuel is free but repair would cost 2 gold and rearm 3 10oz gold) dynamic costs based on vehicle type you can also disable any option if you don't want or need it, like disabling the rearm option completely anything important is configurable in one place with config variables (there are comments in the config block, just take a look at the file service_point.sqf)  
    The Installation is pretty simple, it's just a client side script.
    Add this to your init.sqf in the "if (!isDedicated) then { PUT HERE SOMEWHERE (at the end is ok) }" block (so it will only be started on your client and not the server):
    if (!isDedicated) then { // ... some other stuff ... // add the next line somewhere in this block execVM "service_point\service_point.sqf"; }; Download all files from here into a folder "service_point" inside your mission folder: https://github.com/vos/dayz/tree/master/service_point
    If you want to change the path, there is one config variable in the file service_point.sqf called "_folder", you have to change that so it can access the other files needed for the script.
     
    Here a screenshot how it looks like (click on the preview to show a full screenshot with the UAZ DShKM):

     
    Feel free to add features and tell me your ideas. :)
  13. Like
    raymix reacted to adg in Graphical Spawn Select for Taviana   
    \\Edit: I recommend you use this script: http://opendayz.net/threads/release-ess-enhanced-spawn-selection.19998/
     
    Heres my version of the spawn selector for Chernarus: https://dl.dropboxusercontent.com/u/14937351/spawnselect.zip
     
    Install instructions:
     
    -) Unpack the files in the archive to your mission folder.
     
    1) In the end of !isDedicated block in your MPMissions init.sqf file ->
     
    if (!isDedicated) then {
       ...jadajada... //just an example, don't change to this :D
       <--Place code-->
    };
     
    Place this code:
    waitUntil {!isNil ("PVDZE_plr_LoginRecord")}; if (dayzPlayerLogin2 select 2) then { [] execVM "custom\spawn_select\Spawn.sqf"; }; //After this comes the !isDedicated condition ending bracket! 2) Open your description.ext and paste this to the end:
    #include "custom\spawn_select\dialogs.hpp" 3) Unpbo your dayz_server.pbo and open file dayz_server\compile\server_playerSetup.sqf and change this (around line 236):
    dayzPlayerLogin2 = [_worldspace,_state]; to this:
    dayzPlayerLogin2 = [_worldspace,_state,_randomSpot]; 4) Repbo your dayz_server and enjoy :)
  14. Like
    raymix reacted to ToejaM in [How To] [CPC] Indestructible Bases   
    Patch 1.0.3 Information
    I would just like to point out that my script is working entirely flawlessly however the line numbers are wrong in some cases in the tutorials below but they are easy enough to see where it goes instead by searching for the correct words. All the information you need is in this post.
     
    At present I do not have time to write the tutorial on pulling the maintain_area.sqf from the DayZ code files, however you will need to do this as Axe Cop's script is now part of Epoch as standard.
     
    When I get time I will add this if someone hasn't done it already, its very quick and easy to do but I want to make sure I write it as perfectly as possible to avoid confusion. Its as simple as finding it in the file structure, placing it in your mission folder and then changing the path inside the self actions file.
     
    If you do not pull the maintain_area.sqf from the code and add my fix to it, when you maintain your base using the area function on the plot pole it will make your base vulnerable to attack until the restart.
     
    [CPC] Indestructible Bases - PART1: On Server Restart
     
    What it does:
     
    Anything you define inside the _cpcimmune tag will respawn on server restart entirely indestructible and will also not be able to be knocked down. You can add anything you like to the list. the list currently only comprises of the new modular base buildables.
     
    How to:
     
    Step 1)
     
    Unpack your dayz_server.pbo
     
    Step 2)
     
    Find \system\server_monitor.sqf add copy this at around line 6
    _script = getText(missionConfigFile >> "onPauseScript"); // ### [CPC] Indestructible Buildables Fix _cpcimmune =[ "WoodFloor_DZ", "WoodFloorHalf_DZ", "WoodFloorQuarter_DZ", "Land_DZE_LargeWoodDoorLocked", "WoodLargeWallDoor_DZ", "WoodLargeWallWin_DZ", "WoodLargeWall_DZ", "Land_DZE_WoodDoorLocked", "WoodSmallWallDoor_DZ", "WoodSmallWallWin_DZ", "Land_DZE_GarageWoodDoor", "Land_DZE_GarageWoodDoorLocked", "WoodLadder_DZ", "WoodStairsSans_DZ", "WoodStairs_DZ", "WoodSmallWall_DZ", "WoodSmallWallThird_DZ", "CinderWallHalf_DZ", "CinderWall_DZ", "CinderWallDoorway_DZ", "Land_DZE_LargeWoodDoor", "MetalFloor_DZ", "CinderWallDoorSmallLocked_DZ", "CinderWallSmallDoorway_DZ", "CinderWallDoor_DZ" ]; // ### [CPC] Indestructible Buildables Fix if ((count playableUnits == 0) and !isDedicated) then { Step 3)
     
    Scroll down to around line 180 and copy this
    _object setdir _dir; _object setpos _pos; _object setDamage _damage; // ### [CPC] Indestructible Buildables Fix if (typeOf(_object) in _cpcimmune) then { _object addEventHandler ["HandleDamage", {false}]; _object enableSimulation false; }; // ### [CPC] Indestructible Buildables Fix Step 4)
     
    Repack your dayz_server.pbo
     
    Notes:
     
    You're done, its as simple as that. This has been tested on my server for well over a few weeks and is entirely stable. We don't have buildables destructible until a server restart to allow players to remove them by force themselves if neccesary to reduce admin intervention.
     
    If you wish to contribute and add your a tutorial for spawning items indestructible without need for a server restart then send me a PM and I'll update this post.
     
    [CPC] Indestructible Base Fix - PART2: On Object Creation
     
    What it does
     
    This is how to make your base objects spawn immediately indestructible without the need for a restart - Credit to Snowmobil for the player_build.sqf coding.
     
    If you already have a custom compiles.sqf you can skip the first 3 steps
     
    Create a custom compiles.sqf in your mission file.
    Creating a custom compiles.sqf
     
    Step 1)
    Unpack your dayz_code.pbo in Dayz_Epoch\addons\
     
    Step 2)
    Pull out the compiles.sqf from dayz_code\init\ and place into your root mission folder (where mission.sqm is)
     
    Step 3)
     
    Edit your init.sqf inside your mission file around line 58 to look like this
    call compile preprocessFileLineNumbers "compiles.sqf"; //Compile regular functions Step 4)
     
    If not already done due to step 1, unpack your dayz_code.pbo in DayZ_Epoch\addons\
     
    Step 5)
     
    Find your player_build.sqf in your dayz_code\actions\
     
    Step 6)
     
    Around line 231 copy to look like this
    // Start Build _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; // ### [CPC] Indestructible Base Fix _tmpbuilt addEventHandler ["HandleDamage", {false}]; _tmpbuilt enableSimulation false; // ### [CPC] Indestructible Base Fix Save the file in its current location if not already made a copy elsewhere.
     
    Step 7)
    In your mission folder create a folder called "fixes" and place the player_build.sqf in there.
     
    Step 8)
     
    Edit your compiles.sqf around line 95
    player_build = compile preprocessFileLineNumbers "fixes\player_build.sqf"; Notes:
    You're now done. You don't need to repack your dayz_code folder as the fix overwrites the original file due to where its called from, you also don't need to save the player_buid.sqf in the folder you copied it from, you can copy it elsewhere if you wish to keep an original version incase you need to revert for what ever reason.
     
    This does not need the buildable array that the first part of this tutorial needs, however you will need the first part that edits the server side files for a restart to keep these buildables indestructible.
     
    Locations of files are optional, the compiles.sqf does not have to be in the root folder if you wish to have it in your fixes folder just amend the file path. This also means you do not need to name the folder where player_build.sqf goes to "fixes" it can be called anything you like, I just happen to use "fixes" for my custom files.
     
    If you use this fix or think its a good idea, please hit the like button on this post. It doesn't do anything for me but shows interest in having indestructible bases. Thanks.
     
    [CPC] Indestructible Base Fix - PART3: Prevent Maintenance Exploit
     
     
    Currently you can "maintain" an object and it becomes destructible. This stops players from "maintaining" your buildables and then destroying them, as the server swaps them out to destructible types. There are several ways to implement this fix. If someone wishes to modify the server_dayzswap file so that the swapped buildables are also indestructible I will update this post. This however is suitable for my servers needs and helps players to register their base.   If you have a custom fn_selfActions file you can skip to step 3.   Step 1)   Unpack your dayz_code.pbo in your @DayZ_Epoch client folder   Step 2)   Put the \addons\dayz_code\compile\fn_selfActions.sqf inside your fixes folder.   Step 3)   Modify your fn_selfActions.sqf this around line 501 and save   if (s_player_maint_build < 0) then { s_player_lastTarget set [1,_cursorTarget]; // ### [CPC] Maintenance Fix s_player_maint_build = player addAction [format["Maintain %1",_text], "fixes\cpcmaintfix.sqf",_cursorTarget, -2, false, true, "",""]; // ### [CPC] Maintenance Fix }; } else { Step 4)
     
    Create a new .sqf file, either by copying an existing one or renaming the file extension of a newly created .txt document. Name this file cpcmaintfix.sqf, place this in your fixes folder and put this code inside the newly created .sqf
    cutText [format["Maintenance is disabled on this server as it is not required. Please see our website on how to ensure your base is not deleted."], "PLAIN DOWN"]; Optionally customize the message to what you like, we run a base registration system so that we can delete old bases due to there being no viable cleanup system thanks to indestructible buildables and believing that maintenance as it stands, its too much work for base owners.
    Step 5)
    Modify your compiles.sqf (see above on this post on how to create one, you should have already done it by now if you're this far though) around line 17
    fnc_usec_selfActions = compile preprocessFileLineNumbers "fixes\fn_selfActions.sqf"; //Checks which actions for self Notes:
     
    None
     
    [CPC] Indestructible Base Fix - PART4: Swap Objects Fix
     
    When you maintain an object either through Axe Cop's areal maintenance script or by doing it individually on each object, it swaps out the object for a new one. You don't see a change but it does happen. This spawns it in using server_swapObject.sqf which does not have the indestructible code inside. You don't have to do this as a restart will make your objects indestructible again however, if you maintain many objects they will be vulnerable to normal attacks until a restart, so it is advised that you do this.
     
    Part 4a: Normal DayZ Epoch maintenance system
     
    Step 1)
     
    Decompile dayz_server.pbo
     
    Step 2)
     
    Goto: @DayZ_Epoch_Server\addons\dayz_server\compile\ and find server_swapObject.sqf
     
    Step 3)
     
    Around line 44 change this:
    _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; // Test disabling simulation server side on buildables only. _object enableSimulation false; to this:
    _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; // Test disabling simulation server side on buildables only. _object enableSimulation false; // ### CPC Swap Object Fix _object addEventHandler ["HandleDamage", {false}]; // ### CPC Swap Object Fix Step 4)
     
    Recompile your dayz_server.pbo and you're now done.
     
    Notes:
     
    None
     
    Part 4b: Axe Cop's Maintain Area Script
     
    Step 1)
     
    In your mission file, or where ever you have stored the script, open the file
     
    e.g mine: D:\Gameservers\testserver\MPMissions\DayZ_Epoch_11.Chernarus\fixes\maintain_area.sqf
     
    If neccesary you might need to unpack your mission.pbo
     
    Step 2)
     
    Go to around line 104
    // Set location _object setPosATL _location; PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID]; publicVariableServer "PVDZE_obj_Swap"; player reveal _object; } forEach _objects; and change to this
    // Set location _object setPosATL _location; // ### CPC Swap Object Fix _object enableSimulation false; _object addEventHandler ["HandleDamage", {false}]; // ### CPC Swap Object Fix PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID]; publicVariableServer "PVDZE_obj_Swap"; player reveal _object; } forEach _objects; Step 3)
     
    Save your file and if necessary, repack your mission.pbo and you're done.
     
    Notes:
     
    None
  15. Like
    raymix reacted to Axe Cop in Elevator Script for Players and Vehicles [WIP/Prototype]   
    I had an idea about doing an elevator script to extend the base building a little or just for some fun with ArmA/Epoch! :D
     
    Here is a video of the current prototype: (and don't laugh I got stuck after I fell from the roof  :P)

    Just recorded another video to show how to call an elevator, I've placed 4 stops around the house, looks kinda funny yeah :D

    If anyone is wondering, I use the preview version of the metal floor to display the stop points of the elevator.. some item has to be present so you can call the elevator there and the positions get saved to the database. This item can be changed in the config but the preview items have no collisions so you can just travel through it and it's easy to see where the elevator can stop.
     
    Everything is saved to the database without any need to modify the server files or database structure. It only updates the "CharacterID" field in the "object_data" table like safes or locked door also do in Epoch, I don't want to bore you with the technical details but I encoded the elevator and stop point ID's in an 8 digit long code, always starting with "6976" (that is ASCII code for "EL" :P), the next 3 digits are the elevator ID and the last the elevator stop ID. Meaning you can have up to 10 stops per elevator (0-9) for now. It looks like this (without the "-"), just in case you want to find an elevator in the database or whatever.
    ID 8 digits: EL-ID-STID = 6976-###-# e.g the ID's of an elevator with 2 additional stop points: 69760010 -> 69760011 -> 69760012
     
    The elevator can be build similar to the in-place upgrade system from Epoch, so just look at a metal floor (item can also be changed in the config) and you will get an option "Upgrade to Elevator" and "Upgrade to Elevator Stop", the elevator stop can only be build if there is an elevator in range (max. range for the elevator to travel can be changed, default 25m), you have to select an elevator first (the select action will be available if you look at an elevator, also new built elevator are selected by default).
    Once you have built an elevator with at least 1 stop point you can just look at it and select "Activate Elevator: Next Stop" or "Activate Elevator: Previous Stop", it will then find and move to the next/previous stop. If there is no stop in range you get a message and nothing happens, the menu could be hidden if there is no next stop for the elevator but in the first version the actions are always shown.
    You can also call the elevator at any stop point, it will travel along the way, stopping at every stop point and wait there (default 5 sec. can be changed in the config).
     
    Installation and configuration
    Ok now to the installation and configuration of the elevator script. The script is only client side, so very easy to add to your mission file!
    You can get the current scripts here: https://github.com/vos/dayz/tree/master/elevator just download the whole folder and extract it to your mission file.
    To enable the script on your server add this line to your init.sqf at the end of the block "if (!isDedicated) then {" (so just above the next "};" should be fine):
    ["elevator"] execVM "elevator\elevator_init.sqf"; Assuming your have the elevator folder with the scripts in your mission root, the only parameter of the script "elevator" is the folder relative to your mission file, it's needed to load the other scripts from that folder. You can change it to "scripts\elevator" if your put the elevator-folder there for example.
     
    That is all you have to do to install the elevator script on your server, there are some config variables you can change, take a look at the file "elevator_init.sqf" where it says "global variables", you can change the values there, but I would suggest changing it in your init.sqf like the Epoch settings, e.g.:
    ELE_MaxRange = 100; // maximum range the elevator can travel / stop points can be built (in meter) ELE_Speed = 5; // speed of the elevator (meters per second) ELE_StopWaitTime = 0; // disable the wait time if you call the elevator ... ["elevator"] execVM "elevator\elevator_init.sqf"; Added building requirements and upgrade animation to build the elevator and elevator stops. Default requirements are:
    ELE_RequiredBuildTools = ["ItemToolbox", "ItemCrowbar"]; // required tools for building an elevator and elevator stop ELE_RequiredBuildItems = [["PartGeneric",4], "PartEngine", "ItemGenerator", "ItemJerrycan"]; // required items to build an elevator ELE_RequiredBuildStopItems = [["PartGeneric",4]]; // required items to build an elevator stop You will get the default messages from Epoch if you are missing the tools or items.
     
    There are no access restrictions yet! Any player can built or use an elevator with this version, so keep that in mind if you want to use it on a live server. I already have some ideas to use the default car keys to use an elevator, that should work.. unless your have some better ideas for access control? :)
     
    Just one more thing, as I use the "MetalFloor_Preview_DZ" for the elevator stop by default, if you want to keep it like that you have to add that class to your allowed objects in Epoch, otherwise Epoch will delete it right after you upgrade a metal floor to a stop point. To do that the class needs to be added to the file "dayz_code\init\variables.sqf", at line 466 there is a list "dayz_allowedObjects", just add "MetalFloor_Preview_DZ" to that list and copy the file to your mission folder as usual (the file is referenced in the init.sqf). if you don't want to do that just replace the stop class with this config variable:
    ELE_StopClass = "MetalFloor_Preview_DZ"; Replace the classname with whatever you like, I didn't test any other but the elevator will just travel there and you can call the elevator with looking at that object.
     
    Remember this is still work in progress, there might be bugs and maybe the elevator ID gets changed so already built elevators might not work after an update, but you can already play around with the script and tell me what you think, Ideas are welcome... :)
  16. Like
    raymix reacted to david in [Release] Remote key for locking/unlocking vehicles (0.3)   
    Howdy,
     
    This is my first post here, so.. Hi..  :)
     
     
    This script adds a new right-click option for keys.
     
    If the player is near a vehicle (a distance of 50, can be changed) that matches the key, the option to lock or unlock the vehicle becomes available.
     
    Clicking either locks or unlocks the vehicle.
     
     
    Feel free to come with comments and suggestions.

    Changelog
    0.1 Initial public release.
    0.2 Not able to use this while in a vehicle, added remote engine start feature.
    0.3 Fixed so that remote key feature (and inventory overall) can be used within locked vehicles.


    Known issues 
    * Remote engine start only works if players have gotten into the car first at some point.
    * Remote engine stop does not work.


    1. Setup a custom compiles.sqf (skip this if you already have this)


    The functions you need to replace are ui_selectSlot and fn_gearMenuChecks.

    Copy compiles\ui_selectSlot.sqf from your dayz_code pbo to the custom folder in your mission folder and rename it to player_selectSlot.sqf.

    Do the same with fn_gearMenuChecks.sqf.
     
     
    2. Modify player_selectSlot.sqf
    Open custom\player_selectSlot.sqf in your mission folder.
     
    Find the following (most likely the first line):

    private ["_control","_button","_parent" ... In the end of this line, add:
    ,"_key_colors","_ownerKeyId","_itemsPlayer","_hasKey","_objects","_ownerID","_i" Your complete line should look something like this:
    private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType","_key_colors","_ownerKeyId","_itemsPlayer","_hasKey","_objects","_ownerID","_i"]; Now find this line:
    _pos set [3,_height]; Before this line, add the following code:








    /* Begin: Vehicle remote lock/unlock */ _itemsPlayer = items player; _temp_keys = []; _temp_keys_names = []; // find available keys _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]; if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _item)) in _key_colors) then { _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _item >> "keyid"); _ownerKeyName = getText(configFile >> "CfgWeapons" >> _item >> "displayName"); _temp_keys_names set [_ownerKeyId,_ownerKeyName]; _objects = nearestObjects [getPos player, ["LandVehicle","Helicopter","Plane","Ship"], 50]; _i = 0; { if (alive _x) then { _ownerID = _x getVariable ["CharacterID", "0"]; _hasKey = (_ownerID == str(_ownerKeyId)); _oldOwner = (_ownerID == dayz_playerUID); if(_hasKey or _oldOwner) then { if(locked _x) then { //Unlock _menu = _parent displayCtrl (1600 + _numActions); _menu ctrlShow true; _text = "Unlock"; _script = "[""" + _ownerID + """] execVM ""scripts\remote_unlock.sqf"""; _height = _height + (0.025 * safezoneH); uiNamespace setVariable ['uiControl', _control]; _menu ctrlSetText _text; _menu ctrlSetEventHandler ["ButtonClick",_script]; } else { //Lock _menu = _parent displayCtrl (1600 + _numActions); _menu ctrlShow true; _text = "Lock"; _script = "[""" + _ownerID + """] execVM ""scripts\remote_lock.sqf"""; _height = _height + (0.025 * safezoneH); uiNamespace setVariable ['uiControl', _control]; _menu ctrlSetText _text; _menu ctrlSetEventHandler ["ButtonClick",_script]; }; //Engine start _menu = _parent displayCtrl (1600 + _numActions + 1); _menu ctrlShow true; _text = "Engine"; _script = "[""" + _ownerID + """] execVM ""scripts\remote_engine.sqf"""; _height = _height + (0.025 * safezoneH); uiNamespace setVariable ['uiControl', _control]; _menu ctrlSetText _text; _menu ctrlSetEventHandler ["ButtonClick",_script]; }; _i = _i + 1; }; } forEach _objects; }; /* End: Vehicle remote lock/unlock */ 3. Modify fn_gearMenuChecks.sqf
    Find:



    if((locked _cTarget) and _isOk and (((vehicle player) distance _cTarget) < 12)) then {Replace it with: 

    if((locked _cTarget) and _isOk and !_inVehicle and(((vehicle player) distance _cTarget) < 12)) then { 4. Create remote_lock.sqfCreate a new file in your scripts folder in your missions folder (create the folder if it does not already exist) named remote_lock.sqf.
     
    Add the following code to that file:









    private ["_ownerID","_objects","_i","_ownerID2","_vehicle"]; _ownerID = _this select 0; _objects = nearestObjects [getPos player, ["LandVehicle","Helicopter","Plane","Ship"], 50]; _i = 0; { _vehicle = _x; if (alive _vehicle) then { _ownerID2 = _vehicle getVariable ["CharacterID", "0"]; if(_ownerID == _ownerID2) then { if(!locked _vehicle) then { if(player distance _vehicle < 50) then { DZE_ActionInProgress = true; {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = 1; PVDZE_veh_Lock = [_vehicle,true]; if (local _vehicle) then { PVDZE_veh_Lock spawn local_lockUnlock } else { publicVariable "PVDZE_veh_Lock"; }; titleText ["Vehicle has been locked","PLAIN DOWN"]; s_player_lockUnlock_crtl = -1; DZE_ActionInProgress = false; }; }; }; _i = _i + 1; }; } forEach _objects; 5. Create remote_unlock.sqfCreate a new file in your scripts folder in your missions folder (create the folder if it does not already exist) named remote_unlock.sqf.
     
    Add the following code to that file:










    private ["_ownerID","_objects","_i","_ownerID2","_vehicle"]; _ownerID = _this select 0; _objects = nearestObjects [getPos player, ["LandVehicle","Helicopter","Plane","Ship"], 50]; _i = 0; { _vehicle = _x; if (alive _vehicle) then { _ownerID2 = _vehicle getVariable ["CharacterID", "0"]; if(_ownerID == _ownerID2) then { if(locked _vehicle) then { if(player distance _vehicle < 50) then { DZE_ActionInProgress = true; {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = 1; PVDZE_veh_Lock = [_vehicle,false]; if (local _vehicle) then { PVDZE_veh_Lock spawn local_lockUnlock } else { publicVariable "PVDZE_veh_Lock"; }; titleText ["Vehicle has been unlocked","PLAIN DOWN"]; s_player_lockUnlock_crtl = -1; DZE_ActionInProgress = false; }; }; }; _i = _i + 1; }; } forEach _objects; 6. Create remote_engine.sqfCreate a new file in your scripts folder in your missions folder named remote_engine.sqf.
     
    Add the following code to that file:










    private ["_ownerID","_objects","_i","_ownerID2","_vehicle","_driver","_aigroup"]; _ownerID = _this select 0; _objects = nearestObjects [getPos player, ["LandVehicle","Helicopter","Plane","Ship"], 50]; _i = 0; { _vehicle = _x; if (alive _vehicle) then { _ownerID2 = _vehicle getVariable ["CharacterID", "0"]; if(_ownerID == _ownerID2) then { if(!locked _vehicle) then { if(player distance _vehicle < 50) then { DZE_ActionInProgress = true; if (isEngineOn _vehicle) then { player action ["engineOff", _vehicle]; } else { player action ["engineOn", _vehicle]; }; player action ["engineOn", _vehicle]; DZE_ActionInProgress = false; }; }; }; _i = _i + 1; }; } forEach _objects; 7. Optional: Add the iconic "beep beep" sound when locking or unlocking a vehicle.As an additional bonus, here's how to add a car alarm arm/disarm sound when locking or unlocking a vehicle (including when using the key remote).
     
    I claim no credits for this part, credits goes to Sukkaed i think - 
     
    Open the description.ext file in your mission folder.
     
    Find the following line:









    class RscLoadingText : RscText Before this line, add the following:
    class CfgSounds { sounds[] = { carLock }; class carLock { name="carLock"; sound[]={carlock.ogg,0.9,1}; titles[] = {}; }; }; ... Or if you already have CfgSounds defined, add the appropriate information to it. 
    Now change your compiles.sqf files reference to local_lockUnlock to the following:

    local_lockUnlock = compile preprocessFileLineNumbers "custom\local_lockUnlock.sqf"; //When vehicle is local to unit perform locking vehicle Create a new file custom\local_lockUnlock.sqf in your mission folder, add the following:
    private ["_vehicle","_status","_sounddist"]; _vehicle = _this select 0; _status = _this select 1; _sounddist = 20; if (local _vehicle) then { if(_status) then { _vehicle setVehicleLock "LOCKED"; player action ["lightOn", _vehicle]; _nul = [objNull, _vehicle, rSAY, "carLock", _sounddist] call RE; sleep 0.5; player action ["lightOff", _vehicle]; } else { _vehicle setVehicleLock "UNLOCKED"; player action ["lightOn", _vehicle]; _nul = [objNull, _vehicle, rSAY, "carLock", _sounddist] call RE; sleep 0.5; player action ["lightOff", _vehicle]; }; }; Add a carlock.ogg file with the sound to want to be played to your mission folder and you should be all done. 
    I have uploaded a sample ogg file here: carlock.ogg.
     
     
    8. All done!
    Save all, repack, upload and enjoy.


    Credits / attribution / thank you
    J.Dohja
    shaundibble69
    raymix
    maca134
    Sukkaed
    dgx
  17. Like
    raymix reacted to Axe Cop in Craft bike/motor as fresh-spawn   
    maybe that will help if you know a little about ArmA scripting, I've added a few global helper functions to Epoch 1.0.4,
    so client side scripts can make use of those, here an overview of the added functions:
     
     
    player_hasTools 
    Checks whether the player has the required tools equipped or not and displays a message if a tool is missing from the tool belt.   Parameter(s): _this: <array> list of tool names the player is required to have   Returns: Boolean (true if the player has all required tools)      How to use: _hasTools = ["ItemToolbox", "ItemCrowbar"] call player_hasTools;     player_checkItems 
    Checks whether the player has the required items (magazines) or not
    and displays a message if an item is missing.   Parameter(s): _this: <array> list of item names the player is required to have (can also be an sub-array with item name and quantity)   Returns: Boolean (true if the player has all required items)      How to use: _hasItems = [["PartGeneric",4], "PartEngine", ["ItemGenerator"]] call player_checkItems;     player_removeItems 
    Removes the items (magazines) from the player's inventory
    and performs a double check for the required items.   Parameter(s): _this: <array> list of item names to be removed (can also be an sub-array with item name and quantity)   Returns: Boolean (true if all items have been removed from the player's inventory)      How to use: _removed = [["PartGeneric",4], "PartEngine", ["ItemGenerator"]] call player_removeItems;     player_checkAndRemoveItems combination of check and remove items     so in your case you could use the convenience function player_checkAndRemoveItems to remove the wheels and other stuff, if the payer doesn't have the items a message will be shown by default (same way as if you would build something and don't have the items, or sell items at the trader) if ([["PartWheel",2], "PartGeneric"] call player_checkAndRemoveItems) then { // build the bike, player had 2 wheels and scrap metal and they have been removed }; that's easy, right? :)
  18. Like
    raymix reacted to Axe Cop in Base Destruction Dome (Admin Script)   
    Hello guys, I just want to share my new script for simple base destruction (removal of abandoned bases) for server admins. :)
    First a video demonstration of my script (it's just a backup on my test server, I did not actually destroy that beautiful base of one of my regular players haha):

     
    With this script you can destroy and remove any epoch base building parts and vehicles (toggleable) inside a definable dome within seconds.
    The script in this version works with 3 simple steps (actions):
    Set the center of the dome (where you stand) Set the radius of the dome (distance between you and the center point) Hit the destroy option and everything inside the dome will be obliterated :P For security reasons there is a limit for the maximum radius of the dome, so you cannot destroy the whole map (by accident or whatever lol), this can be changed within the script (default 100m).
    There is a toggleable option to also destroy all vehicles in the destruction area, keep in mind even if you disable that there might be collateral damage to vehicles and players from the explosion of base building parts!
    Players, safes, lockboxes and other buildings are not affected by the script, you can change the items in the script if you want.
     
    There is a preview option (Show Dome), so you can actually see the dome in the game and what will be inside of your selection. For simplicity the dome will only be rendered with a circle on the ground and a small ceiling on the top to see the height and size. The dome will be rendered with the translucent wooden walls from epoch and automatically deleted after 30 secounds. To mark the center of the dome a plot pole will be used, in case you are wondering where that comes from. :D
     
    Ok here is the complete script:
    private ["_option","_location","_object","_objects","_objectClasses","_i","_dir","_objectID","_objectUID"]; // global vars //if (isNil "BD_center") then { BD_center = [0,0,0]; }; if (isNil "BD_radius") then { BD_radius = 10; }; _option = _this select 0; switch (_option) do { case "center": { BD_center = getPos player; cutText [format["center set to %1", BD_center], "PLAIN DOWN"]; }; case "radius": { if (isNil "BD_center") then { cutText ["center not set", "PLAIN DOWN"]; } else { BD_radius = player distance BD_center; cutText [format["radius set to %1 m", BD_radius], "PLAIN DOWN"]; }; }; case "dome": { if (isNil "BD_center") then { cutText ["center not set", "PLAIN DOWN"]; } else { _objects = []; // center _object = createVehicle ["Plastic_Pole_EP1_DZ", BD_center, [], 0, "CAN_COLLIDE"]; _objects set [0, _object]; // circle for "_i" from 0 to 360 step (270 / BD_radius) do { _location = [(BD_center select 0) + ((cos _i) * BD_radius), (BD_center select 1) + ((sin _i) * BD_radius), BD_center select 2]; _object = createVehicle ["WoodLargeWall_Preview_DZ", _location, [], 0, "CAN_COLLIDE"]; _dir = ((BD_center select 0) - (_location select 0)) atan2 ((BD_center select 1) - (_location select 1)); _object setDir _dir; _objects set [count _objects, _object]; }; // top _location = [BD_center select 0, BD_center select 1, (BD_center select 2) + BD_radius]; _object = createVehicle ["WoodFloor_Preview_DZ", _location, [], 0, "CAN_COLLIDE"]; _objects set [count _objects, _object]; sleep 30; { deleteVehicle _x; } forEach _objects; }; }; case "destroy": { if (isNil "BD_center") then { cutText ["center not set", "PLAIN DOWN"]; } else { if (BD_radius > 100) then { cutText [format["area is to large for base destruction (radius %1 > 100)", BD_radius], "PLAIN DOWN"]; } else { _objectClasses = ["TentStorage","TentStorageDomed","TentStorageDomed2","Hedgehog_DZ","Sandbag1_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","Generator_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ"]; if (BD_vehicles) then { _objectClasses = _objectClasses + ["LandVehicle","Helicopter","Plane","Ship"]; }; _objects = nearestObjects [BD_center, _objectClasses, BD_radius]; _i = 0; { if (alive _x) then { _x setDamage 1; deleteVehicle _x; //_objectID = _x getVariable ["ObjectID", "0"]; //_objectUID = _x getVariable ["ObjectUID", "0"]; //PVDZE_obj_Delete = [_objectID, _objectUID, player]; //publicVariableServer "PVDZE_obj_Delete"; _i = _i + 1; }; } forEach _objects; cutText [format["%1 of %2 objects destroyed and deleted", _i, count _objects], "PLAIN DOWN"]; }; }; }; }; And the menu I am using to set the options and activate it:
    if (isNil "BD_vehicles") then {BD_vehicles = true;}; BaseDestructionMenu = [ ["Base Destruction",true], ["Set Center", [2], "", -5, [["expression", '["center"] execVM "admintools\tools\basedestruction.sqf"']], "1", "1"], ["Set Radius", [3], "", -5, [["expression", '["radius"] execVM "admintools\tools\basedestruction.sqf"']], "1", "1"], ["Show Dome", [4], "", -5, [["expression", '["dome"] execVM "admintools\tools\basedestruction.sqf"']], "1", "1"], [format["Include Vehicles (%1)",BD_vehicles], [5], "", -5, [["expression", "BD_vehicles = !BD_vehicles;"]], "1", "1"], ["DESTROY ALL INSIDE DOME", [6], "", -5, [["expression", '["destroy"] execVM "admintools\tools\basedestruction.sqf"']], "1", "1"], ["", [-1], "", -5, [["expression", ""]], "1", "0"], ["Exit", [13], "", -3, [["expression", ""]], "1", "1"] ]; Change the path to match your folder structure.
     
    In case you don't know how do display the menu, just embed it in your admin tools like this:
    ["Base Destruction", [0], "#USER:BaseDestructionMenu", -5, [["expression", ""]], "1", "1"],  or do something like this to just open it without any other admin menus:
    showCommandingMenu "#USER:BaseDestructionMenu"; Make sure to have proper access restriction, so only admins can use that menu and not every player on your server!! :D
    Also you might need to add exceptions to your BattlEye filters for setdamage.txt and deletevehicle.txt.
     
    Please write all questions or ideas in this thread, this was just a simple script I needed to get rid of old bases on my server. If there is a better way to do that please let me know and I will improve the script.
  19. Like
    raymix reacted to fr1nk in [Discontinued] Emerald Interior Designer   
    Try editing mission.sqm:
    version=11; class Mission { addOns[]= { "napf", "ca_modules_animals", "dayz_anim", "dayz_code", "dayz_communityassets", "dayz_weapons", "dayz_equip", "dayz_epoch", "dayz_vehicles", "cacharacters_pmc", "ca_modules_functions", "warfarebuildings", "glt_m300t", "pook_h13", "csj_gyroac", "map_eu", "jetskiyanahuiaddon", "warehouse", <--------------- "mbg_killhouses" <----------- };
  20. Like
    raymix got a reaction from Nakama Mind in [Discontinued] Emerald Interior Designer   
    Project has been discontinued 
    If you still want this mod, it will (and should) work with any beta or Epoch release, however I highly suggest using
     
     


     
    Very simple script that lets you right click ItemEmerald and spawn various interior items, using Epoch building system.
    I will assume you know your way around with scripts and have custom extra_rc, fn_selfActions.sqf and variables.sqf in your mission file, if not, ask below.
     
    Credits:
    Rocket
    DayZ Epoch Team for player_build.sqf
    Maca for extra_rc
    PetuniaEpoch for modified
    Rythron FIX for playerID tied to plotpole script, replace your http://epochmod.com/forum/index.php?/topic/10665-release-emerald-interior-designer/?p=77638 with his.
     
    UPDATE LOG v1.1.1:
    *Increased distance of objects to prevent people  from dying, please refer to _offset in spawn.sqf
    *Fixed issue with object height distance while using ALT+PgUP/PgDown
     
    UPDATE LOG v1.1:
    *Added huge list of external objects
    *Added Toggle-able plotpole requirement for spawn
    *Added Ability to remove items
    *Can't spawn or remove items if not owner or tagged friendly of nearby plotpole
     
     
    Download files:
    https://dl.dropboxusercontent.com/u/14423790/interiorV1.1.1.rar
     
    Or add yourself:
     
    custom\extra_rc.hpp (Updated V1.1):



     
    custom\variables.sqf (Updated V1.1): Find 
    dayz_allowedObjects = ["TentStorage"........  Change to: 



     
    description.ext:
    #include "interior\defines.hpp" #include "interior\dialogs.hpp" interior\defines.hpp:



     
    interior\dialogs.hpp (Do not use with newest Infistar AH):



     
    interior\dialogs.hpp (Only for people with newest Infistar Antihack):



     
    interior\items.sqf (Updated V1.1):



     
    interior\spawn.sqf (Updated v1.1.1):
    _plotReq = true; // can't build without nearby plotpole
    _plotReq = false; //can build without plotpole or near owned plotpole only
    _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player



     
    interior\remove.sqf (NEW):



     
    custom\fn_selfActions.sqf (Updated V1.1.1)
    Add to the very bottom of the file:



  21. Like
    raymix reacted to ilikepizza in [Release] Radio Communication Script v1.3.1   
    I created a script to mark friendly players positions on the Map/GPS and 3D.
     
    Description
     
    You need to have a radio in your toolbelt and tag an other player as friendly to let him see you on the map/gps. This simulates position updates by radio contact. Also the names of the players shown on the map, are shown in a seperate GUI in the left part of the screen. I have a better description here.
     

     
    If the players have both respectivly tag themselves as friendly, they can both see each other. Every player can deactivate this feature by removing the radio from their toolbelt. On death players normally loose their friendships and they don't send out their position anymore until adding other players as friendly again.
     

     
    3 Main features are currently available by this script:
    2D player positions on map/GPS Names of players currently in radio contact with 3D player positions  
    Technical Details
     
    New players which just fulfilled the 2 requirements (radio + friendly) are added as markers every 2 seconds (adjustable by "RC_addInterval"). Also at this intervall their markers are removed, if the conditions are not met anymore. Also the markers blink once at this time what makes them easier to spot on the map. The marker positions are updated every 0.5 seconds (adjustable by "RC_updateInterval").
     
    Several other variables can be configured in the config.sqf to adjust the visual properties to your liking or disable features. Also the script directory path can be adjusted in the init.sqf. This should make moving the script much easier in your mission file. Don't forget to also change the path to the desc_in.h in your description.ext.
     
    The radio item is 'ItemRadio'. This item does not spawn normally in DayZ Epoch. You have to add it somehow into your server. E.g.: Use the MissionLootTable feature explained adjust the item spawn configuration. Or add as gear to your AI missions or to the loot crates of the missions. Or change the starting gear to contain one.
     
    Since this script uses friendship variables, which are DayZ Epoch only, this script only supports that mod. But it is easy to remove that requirement.
     
    Installation
     
    I will not discuss here how to get the mission file or how to handel PBO-files. If you have access to such files, you should know by now.
     
    The project can be also found on github.
    Perform the following steps:
    Extract the attached ZIP-file (RCv1.3.1.zip), there should now be a directory "RC". Copy that into the mission directory. Add the following line at the end of your "init.sqf" in the mission file
    execVM "RC\init.sqf"; Change the configuration of the script in "RC\config.sqf". If GUI is enabled (enabled by default), add
    #include "RC\desc_inc.h" in your description.ext, in the RscTitles class
    class RscTitles { //here }; so that it looks like in the "description.ext" file in the ZIP. There may already be definitions in there, then add the line at the beginning or the end of the class RscTitles, but between the brackets. If you cand find this class, you may create it. Check the AntiHack part of this thread and apply if necessary. Finished. AntiHack
     
    Battleye
    This script works with the default DayZ Epoch 1.0.4.2 Battleye directory.
     
    infiSTAR
        This script does not work correctly with infiSTAR antihack. The map/GPS markers will only work for admins, if configured correctly.
     
    Map/GPS markers for admins
    You have to enable the local marker functions in your "AHconfig.sqf". Beware, this allows cheaters/hackers to use several different functions as well. This means they will  be able to create markers as they like to visualize other players/vehicles/bases on the map, spawn items and more. It means you are deactivating a securitx feature of infiSTAR. Apply at own risk.

        To enable the local marker functions search for the following line/variable in the "server_functions/init/AHconfig.sqf":
    /*  Break Functions ?     */  BHF =  true;     And set it to:
    /*  Break Functions ?     */  BHF =  false; If you can't find this variable, you need to update your infiSTAR to the latest version (supported since 16/04/2014/AH0328C).
     
    Others
    A list of used functions can be found in the github project. This could help you adding exceptions to your cheat protection software.
     
    Testing
     
    I have my own dedicated server with this script active (and others) and you are welcome to have fun there. The server is called "International Steel Company" and runs on the IP 178.63.4.168:2302. I also have a blog for the server, where I keep writing about updates and have more information about the server and its freatures.
     
    Debug Version
    If you encounter problems with the script and it isn't working correctly, you can install the debug version (RCv1.2Debug.zip) which executes some tests and reports the results into the Arma 2 OA error file. This file can be very important in finding the problem, why it doesn't work properly. I am talking about the arma2OA.rpt file. If you don't know where it is located read here. You can reduce the file to some important lines. These are located between
    "Checking RC Script ..." and
    "... finished checking RC Script." Example:
    "DAYZ: CLIENT IS RUNNING DAYZ_CODE "1.0.4.2"" "RC Debug initialized." "RC Script is Running." "Waiting ..." Fresnel k must be >0, given n=0.8,k=0 "PLAYER RESULT: true" "Checking RC Script ..." " RC Debug:dbg_hadEverFriend assert failed. Expected true, but was false" " RC Debug:dbg_fncCallIsFriend assert failed. Expected true, but was false" " RC Debug:dbg_fncCallAddUnitMarker assert failed. Expected true, but was false" " RC Debug:dbg_fncCallAddUnitCommunication assert failed. Expected true, but was false" "... finished checking RC Script." "PLOGIN: Login loop completed!" The informations from the tests don't really help you in finding the problem, but can help me, if you send me the results.
     
    Thanks for reading
     
    I hope you enjoy that feature.
     
    Changelog
    v1.3.1, May 3
    added realtime updating for 3D names added range limit for 3D names implemented missing 3d options v1.3, April 30
    added 3D player positions fixed GUI interferences with DayZ added script path variable to init.sqf April 22
    added 1.2 Debug Version for problem checking v1.2, April 21
    fixed direction of players in vehicles added marker for players in vehicles (square around player) added options for the vehicle marker added GUI with player names currnetly visible by radio fixed markers of dead players, they are not shown anymore April 16
    infiSTAR configuration help was added to this thread. v1.1, April 12
    added more config options (color, icon type, transparency) showing of player name next to marker icon v1.0, April 11
    inital realese  

    RCv1.3.1.zip
    RCv1.3.zip
    RCv1.2.zip
    RCv1.1.zip


    RCv1.2Debug.zip
  22. Like
    raymix reacted to Zelik in [FIX]Toolbox "Remove Camo Net" and "Remove Tank Trap"   
    I am the type of person who hates using the self action scroll buttons to do things so I decided to look into the remove options problem that the toolbox has. This will fix the problem with not being able to remove tank traps and some camo nets via the right click menu for the toolbox.
     
    Upon writing this tutorial/fix I assume everyone knows how to call a custom sqf file and I assume everyone already has a custom compiles.sqf. I also will NOT be held reliable if you break your server. I did this on my test server and my live server and have no problems. Lets begin.
     
    First thing we need to do is get your object_removeTankTrap.sqf and object_removeNet.sqf. Both of these files can be found in the compile folder within dayz_code.pbo. Place these two files in your custom/fixes folder within your mission.pbo. or mission folder.
     
    Now open your object_removeTankTrap.sqf and find this code
    _nearTankTraps = nearestObjects [player, ["Hedgehog_DZ"], 1]; and change it to 
    _nearTankTraps = nearestObjects [player, ["Hedgehog_DZ"], 3]; This increases the range a little bit to help the action actually work a little easier. I wouldn't change it to anything higher than 3. Save and close our sqf. 
    Now open your object_removeNet.sqf and find this code
    _nearNets = nearestObjects [player, ["DesertLargeCamoNet","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ"], 5]; and change it to
    _nearNets = nearestObjects [player, ["DesertCamoNet_DZ","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ"], 10]; What this does is increase the distance a little bit making the action happen a little easier and replaces the error in the code that had the large desert net referenced twice. Now all 4 of the nets can be removed with the toolbox. Don't change to anything higher than 10. Save and close your sqf. 
    Now open our custom compiles.sqf. Now find these lines. 
    player_removeNet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeNet.sqf"; player_removeTankTrap = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeTankTrap.sqf"; Comment them out and call your custom file location like so
    //player_removeNet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeNet.sqf"; //player_removeTankTrap = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeTankTrap.sqf"; player_removeNet = compile preprocessFileLineNumbers "custom\object_removeNet.sqf"; player_removeTankTrap = compile preprocessFileLineNumbers "custom\object_removeTankTrap.sqf"; Save your compiles and you're done. I don't think I did that bad for my very first tutorial lol. Have a good night and I hope I helped. I'm sure there are other people out there that noticed that the right clicking for the toolbox didn't work right. :)
  23. Like
    raymix reacted to Sukkaed in Police Sirens   
    Simple togglable police sirens and blinking head lights to Black SUV, Police Car and Police Lada :)
     
    Add to description.ext right above "class RscLoadingText : RscText"
    class CfgSounds { sounds[] = {siren}; class siren { name = "siren"; sound[] = {Scripts\sirens\siren.ogg,0.5,1}; titles[] = {}; }; }; Add to fn_selfActions.sqf right above "//Grab Flare"
    //Sirens _isCopcar = typeOf _vehicle in ["SUV_TK_CIV_EP1","SUV_TK_CIV_EP1_DZE1","SUV_TK_CIV_EP1_DZE2","SUV_TK_CIV_EP1_DZE3","SUV_TK_CIV_EP1_DZE4","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 ["Sirens on","Scripts\sirens\sirens_on.sqf",dayz_addsirens,2,false,true,"",""];         s_player_sirens_off = dayz_addsirens addAction ["Sirens off","Scripts\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;     }; Make "Scripts" folder to your mission file root if you don't have it yet and place "sirens" folder inside.
     
    DOWNLOAD
     
    Optional:
    Add police car to traders
    INSERT INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (0, '["policecar",2]', 50, '[1,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 565, 'trade_any_vehicle'), (0, '["policecar",2]', 50, '[1,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 568, 'trade_any_vehicle'), (0, '["policecar",2]', 50, '[1,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 591, 'trade_any_vehicle'), (0, '["policecar",2]', 50, '[1,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 661, 'trade_any_vehicle');
  24. Like
    raymix got a reaction from TNT in [Discontinued] Emerald Interior Designer   
    Project has been discontinued 
    If you still want this mod, it will (and should) work with any beta or Epoch release, however I highly suggest using
     
     


     
    Very simple script that lets you right click ItemEmerald and spawn various interior items, using Epoch building system.
    I will assume you know your way around with scripts and have custom extra_rc, fn_selfActions.sqf and variables.sqf in your mission file, if not, ask below.
     
    Credits:
    Rocket
    DayZ Epoch Team for player_build.sqf
    Maca for extra_rc
    PetuniaEpoch for modified
    Rythron FIX for playerID tied to plotpole script, replace your http://epochmod.com/forum/index.php?/topic/10665-release-emerald-interior-designer/?p=77638 with his.
     
    UPDATE LOG v1.1.1:
    *Increased distance of objects to prevent people  from dying, please refer to _offset in spawn.sqf
    *Fixed issue with object height distance while using ALT+PgUP/PgDown
     
    UPDATE LOG v1.1:
    *Added huge list of external objects
    *Added Toggle-able plotpole requirement for spawn
    *Added Ability to remove items
    *Can't spawn or remove items if not owner or tagged friendly of nearby plotpole
     
     
    Download files:
    https://dl.dropboxusercontent.com/u/14423790/interiorV1.1.1.rar
     
    Or add yourself:
     
    custom\extra_rc.hpp (Updated V1.1):



     
    custom\variables.sqf (Updated V1.1): Find 
    dayz_allowedObjects = ["TentStorage"........  Change to: 



     
    description.ext:
    #include "interior\defines.hpp" #include "interior\dialogs.hpp" interior\defines.hpp:



     
    interior\dialogs.hpp (Do not use with newest Infistar AH):



     
    interior\dialogs.hpp (Only for people with newest Infistar Antihack):



     
    interior\items.sqf (Updated V1.1):



     
    interior\spawn.sqf (Updated v1.1.1):
    _plotReq = true; // can't build without nearby plotpole
    _plotReq = false; //can build without plotpole or near owned plotpole only
    _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player



     
    interior\remove.sqf (NEW):



     
    custom\fn_selfActions.sqf (Updated V1.1.1)
    Add to the very bottom of the file:



  25. Like
    raymix got a reaction from oOSmokyOo in [Discontinued] Emerald Interior Designer   
    Project has been discontinued 
    If you still want this mod, it will (and should) work with any beta or Epoch release, however I highly suggest using
     
     


     
    Very simple script that lets you right click ItemEmerald and spawn various interior items, using Epoch building system.
    I will assume you know your way around with scripts and have custom extra_rc, fn_selfActions.sqf and variables.sqf in your mission file, if not, ask below.
     
    Credits:
    Rocket
    DayZ Epoch Team for player_build.sqf
    Maca for extra_rc
    PetuniaEpoch for modified
    Rythron FIX for playerID tied to plotpole script, replace your http://epochmod.com/forum/index.php?/topic/10665-release-emerald-interior-designer/?p=77638 with his.
     
    UPDATE LOG v1.1.1:
    *Increased distance of objects to prevent people  from dying, please refer to _offset in spawn.sqf
    *Fixed issue with object height distance while using ALT+PgUP/PgDown
     
    UPDATE LOG v1.1:
    *Added huge list of external objects
    *Added Toggle-able plotpole requirement for spawn
    *Added Ability to remove items
    *Can't spawn or remove items if not owner or tagged friendly of nearby plotpole
     
     
    Download files:
    https://dl.dropboxusercontent.com/u/14423790/interiorV1.1.1.rar
     
    Or add yourself:
     
    custom\extra_rc.hpp (Updated V1.1):



     
    custom\variables.sqf (Updated V1.1): Find 
    dayz_allowedObjects = ["TentStorage"........  Change to: 



     
    description.ext:
    #include "interior\defines.hpp" #include "interior\dialogs.hpp" interior\defines.hpp:



     
    interior\dialogs.hpp (Do not use with newest Infistar AH):



     
    interior\dialogs.hpp (Only for people with newest Infistar Antihack):



     
    interior\items.sqf (Updated V1.1):



     
    interior\spawn.sqf (Updated v1.1.1):
    _plotReq = true; // can't build without nearby plotpole
    _plotReq = false; //can build without plotpole or near owned plotpole only
    _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player



     
    interior\remove.sqf (NEW):



     
    custom\fn_selfActions.sqf (Updated V1.1.1)
    Add to the very bottom of the file:



×
×
  • Create New...