My microtransaction system doesn't provide the ownership of the model asset. It only provides a convenient method to achieve the item other than in-game methods.
This is the same as server hosting providers. Hosting providers are not selling you the operating system, just the convenient access to it.
There is one major difference between Epoch item shops and “pay-to-win”. You are not required to play alongside the players/servers that have item shops. For every one server that has an item shop, there are +20 that don’t.
Unlike when a microtransaction system is implemented in a AAA MMO/etc. the players don’t have the ability to play somewhere where microtransactions don’t exist.
First things first here is a preview of the addition. Situated in central Chernogorsk it acted as a last attempt to quell the infection, and save any survivors from the infected. But like most places on Chernarus it soon became too dangerous, and it's inhabitants were scattered to the wastes. The 'Chernogorsk Quarantine Zone' holds many items of values, apart from encircling two lootable buildings it also houses multiple military, medical and vehicle salvage points. Nothing too overpowered for a coastal town, but still something worth a trip to.
https://www.youtube.com/watch?v=C6k1PVnGMWQ
**All loot spawns are fully functional within this edit, they do not appear in this video preview as it was filmed in the map editor, tried and tested on multiple servers - confirmed working**
To install simply:
1) Copy the code below into a file called 'ChernoQuarantine_Zone.sqf'
2) Make a folder called 'Maps' in the root of your mission.pbo (skip if you already have a folder used for this)
3) Insert the 'ChernoQuarantie_Zone.sqf' into this folder
4) Finally in your init.sqf add this line of code at the bottom:
[] execVM "Maps\ChernoQuarantine_Zone.sqf";
Note* if you already have a folder for custom map content edit the following as required:
[] execVM "your folder\your file name.sqf";
Following is the code content for the ChernoQuarantine_Zone.sqf
http://pastebin.com/hJgGSee3
**There are also fixed loot spawns added, these will respawn with each server restart, they are clearly indicated in the code should you wish to remove them**
Alternately you may add the content server side to reduce mission file size for new players joining your server.
At the bottom of server_functions.sqf add this line:
execVM "\z\addons\dayz_server\init\quarantinezone.sqf";
Then save code in OP in a new .sqf in \init folder named quarantinezone.sqf
Please leave a like on the youtube vid if you liked the addition, and let me know what you think :)
Would it be possible to have gun display racks that can be mounted on walls?
Something like the peg board ones you see at gun shops would be cool I think.
I have taken to collecting one of each gun I like or just think looks cool, and would like to be able to mount them on the walls in my bunker.
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
It's a bug with arma2 on persistent servers with JIP(Join in progress) players. I have got this on arma2 servers, vanilla dayz, wasteland, takistan life, capture the island, origins, namalsk, epoch, 2017, ACE, and pretty much any modded arma2 server. More so with a mod that communicates and connects with a database to save any type of data that needs to be loaded on a palyer.
The bird spawning, is actually a feature that can be turned on for some servers, its armas spectator mode. So from my research, the problem has to do with AI dopplegangers taking up a slot the player that they select on the left hand side of the lobby screen. Basically when a JIP player connects it creates an AI in debug as his place holder, who then has his the player information and database information loaded onto it in a few steps, where the player will get control at some point, load in normally and be able to play. When there is latency issue, or the player is kicked or exits this loading process in the middle of it, it will sometimes bug out, and leave the AI place holder in that slot. This is where the bird problem starts, as when any player tries to join that slot, the AI place holder is still there, in debug, preventing a new placeholder from being spawned, and moves the connecting player to "spectator mode" as it doesn't know where else to put the player (just like if the player did not pick a team side, and left their name greyed out with the gold colored tab, and joined the game with no side, it defaults them to spectator).
So what others have done to 'band-aide' the issue is first to tell a player to select a new, unused slot on the left. It goes to 100, but there will become a point where this will no longer work. Next is to reassign roles, this clears all non persistent objects off the map, and is faster than a restart. All dead bodies, vehicle carcases, destroyed buildings, loot piles, and AI dopplegangers in debug will be cleared. You have to ask your players to join the lobby otherwise they will be forced to the lobby when you execute this option. Lastly, if it comes back after doing these two things, all one can do is restart the server to fix it.
Besides players not being able to play, it causes another problem, it allows them to spawn in as a bird above a random player and spy on them. To prevent this, just change in create vehicle txt file the line that says "1 seagull" to "5 seagull" to kick players who spawn in as a bird. It has helped contain the bird issue from spreading as fast as it kicks the player out, rather than them waiting, aborting to lobby, selecting a new slot, repeating this process and bugging out another slot.
Yea, and i would like to be able to craft a burn barrel and a perm fire pit as well. Even if you had to add wood to them. Being able to place a supply crate with wood beside it would be awesome as well.
Can you add a simple craftable wood stove that can be placed inside buildings. it will burn wood and function like a normal fire execpt it will store 20 piles instead of 8 and will not dissapear on restart like a normal fireplace plus it appears more realistic since one wonders how building a fire inside a shed doesent burn it down
Could use fuel like ammo as well so only has a limit of use before it needs to be refuelled. Could even need to add 2 stroke oil to a jerry can or it perm breaks the chain saw ;-)
Either that or loads of extension leads if its electrical :-D
Here's mine. Don't have the under-monitor lighting setup, yet. Been putting that off for about a year now, but I have the light bars sitting in a box on a shelf.