-
Posts
953 -
Joined
-
Last visited
-
Days Won
56
Reputation Activity
-
Ghostrider-GRG reacted to Zupa in [Alpha Release] Single Currency 3.0 & Storage DEFAULT HIVE ( No global banking).
Single Currency 3.0 & Storage DEFAULT HIVE ( No global banking).
AKA: ZSC
RELEASE 1: INDEPENDENT RELEASE ( No converting script yet to convert old SC money to this version).
REQUEST: If someone is good with MYSQL can he complete the qyuery on the bottom of this post? ^^ limited time here ^^.
What is it?
This script replaces gold,silver,tin,copper,briefcases by 1 virtual currency with a configurable name. You can buy,sell, give, receive, take (from dead bodies) and STORE this money like it was a normal inventory item. ( It will work with a different dialog then your gear dialog.)
No more smelting gold into silver or anything related to that. Everything is in one currency ( For example "ZupasticiumCoins").
Features.
Store Money in storage objects and vehicles ( max money in 1 storage depends on the size). No global access to your money. Anyone can take the money out ( for vault/lockbox it must be open of course). Trade with this currency for cars/items. Give money to other players. NO inventory issues with gold!
Whats the difference with your other single currency scripts?
You can use the default hive! No global bank! Back to normal epoch danger to lose cash! Cleaned up code Very low changes to default saving system. (DB friendly) NO database changes needed. NO ATMs, Safezones, atms in trader whatsoever... Store money in vehicles.
Technical data:
Storage money is saved in the gear section of the object in the Database Player Money is added to gear section of the player in the Database ( Again thanks to maca for pointing this out for me).
Extra
This build will have all of the fixes on errors out there ( Build on peterbeers all in on packages with the bugfixes). Reworked the transfering money between players to be sure trade goes to the right object/player. Store money in vehicles Credits
Maca - Original private single currency. Peterbeer - for putting all fixes together in 1 pack. Soul - Hives modifications and code changes for it. ( not applied on this script, jsut credited for hard work). Rocu - Great help on forums and fixes. DraftKid - Testing and screenshots
Please report bugs so I can solve them!
The config located IN
ZSC/gold/ZSCconfig.sqf /* Single Currency 3.0 uses storages to store money which can be accessed by anyone if open of course (safe,lockbox). Each storage has his own money, so no global access. */ // Name of your currency CurrencyName = "Coins"; // Objects that can hold money. Vehicles are added automaticly. Size of money capacity is depended on ammount of magazines the object can hold. ZSC_MoneyStorage = ["VaultStorage","LockboxStorage","StorageShed_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","GunRack_DZ","WoodCrate_DZ","TentStorage","TentStorageDomed","TentStorageDomed2"]; // Multiplier how much money an object can hold. This number X ammount of magazines it can hold. ( so URAL -> 500 items * 1000 = 5 MIL cash). ZSC_MaxMoneyInStorageMultiplier = 1000; // (True = No Animation / False = Animation) InstantTrading = false; // If TRUE: overwrite yours player_switchmodel with mine. | IF False: Change content yourself @ step D ZSC_Overwrite_SwitchModel = true; // if TRUE: Overwrites yours fn_selfactions with default 1 + edits. | IF False: Change content yourself @ step D ZSC_Overwrite_SelfActions = true; // if TRUE: Overwrites yours fn_selfactions with default 1 + edits. | IF False: Change content yourself @ step D ZSC_Overwrite_UnLockVault = true; // if TRUE: Overwrites yours fn_selfactions with default 1 + edits. | IF False: Change content yourself @ step D ZSC_Overwrite_LockVault = true; /* IF YOU USE different mods like P4L it's recommended to do changes yourself or it wont work */ There are pbo's provided for cherno 11. Or follow the installation instructions
https://github.com/EpochSC/SingleCurrencyStorage
Installation instructions. ( TRIED TO KEEP IT NOOB FRIENDLY ^^)
If u are going to use the full pbo?!
The missions.sqm is build for OVERPOCH. Delete the overwatch addons if you are just using it for Epoch.
MISSION PBO
A ) In your init.sqf:
A 1) You must have
/*ZSC*/ DZE_ConfigTrader = true; /*ZSC*/ in the top section ( for example right above "EpochEvents"); Place if you do not have it yet. ZSC requires Config traders, It will also help your server reduce lag!
A 2) PLACE
/*ZSC*/ call compile preprocessFileLineNumbers "ZSC\gold\ZSCinit.sqf"; /*ZSC*/ ABOVE
progressLoadingScreen 0.5; A 3) PLACE
execVM "ZSC\compiles\playerHud.sqf"; RIGHT UNDER
_playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf"; A 4 )
Change
call compile preprocessFileLineNumbers "server_traders.sqf"; to
call compile preprocessFileLineNumbers "server_traders_cherno_11.sqf"; ON THE BOTTOM OF THIS TOPIC THERE WILL BE AN EXPLANATION FOR OTHER MAPS / INSTANCES.
A 5 ) MAKE SURE
_serverMonitor = [] execVM "\z\addons\dayz_server\system\server_monitor.sqf"; this line is custom and doesnt have dayz_code in it. It should point at dayz_server or if u use another script to where ever that places it.
B ) In your description.ext
B 1) Place
#include "ZSC\config\cfgServerTrader.hpp" on the complete top.
B 2 ) Add if you do not have a RscTitles yet!
class RscTitles { #include "ZSC\config\ZSChud.hpp" }; at the bottom.
IF U ALREADY HAVE IT just add
#include "ZSC\config\ZSChud.hpp" behind whatever is in there.
B 3 ) JUST ADD AT THE COMPLETE BOTTOM
#include "ZSC\config\ZSCdefines.hpp" #include "ZSC\config\ZSCdialogs.hpp" B 4 ) If you come from another currency, u can remove the shit that was extra added in that one :).
C ) COPY FILES
C 1 ) Place the ZSC folder in your mission pbo ( take it out of the github's missions pbo).
C 2 ) Place server_traders_cherno_11.sqf in your missions pbo. ( If other map/instance check bottom of the topic.).
D ) fn_selfactions ( IF you use my overwrite, u do not have to to this step.
D 1 )PLACE
if(_typeOfCursorTarget in ZSC_MoneyStorage && (player distance _cursorTarget < 5)) then { if (s_bank_dialog < 0) then { s_bank_dialog = player addAction ["Money Storage", "ZSC\actions\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""]; }; } else { player removeAction s_bank_dialog; s_bank_dialog = -1; }; // cars if( _isVehicle && !_isMan &&_isAlive && !_isMan && !locked _cursorTarget && !(_cursorTarget isKindOf "Bicycle") && (player distance _cursorTarget < 5)) then { if (s_bank_dialog2 < 0) then { s_bank_dialog2 = player addAction ["Money Storage", "ZSC\actions\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""]; }; } else { player removeAction s_bank_dialog2; s_bank_dialog2 = -1; };
AFTER
} else { {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; D 2 )
if (_isMan and _isAlive and !_isZombie and !_isAnimal and !(_traderType in serverTraders)) then { if (s_givemoney_dialog < 0) then { s_givemoney_dialog = player addAction [format["Give Money to %1", (name _cursorTarget)], "ZSC\actions\give_player_dialog.sqf",_cursorTarget, 3, true, true, "", ""]; }; } else { player removeAction s_givemoney_dialog; s_givemoney_dialog = -1; }; ABOVE
if(_typeOfCursorTarget in dayz_fuelpumparray) then { D 3 ) CHANGE
if (_player_studybody) then { if (s_player_studybody < 0) then { s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; }; INTO
if (_player_studybody) then { if (s_player_studybody < 0) then { s_player_studybody = player addAction [("<t color=""#FF0000"">"+("Check Wallet") + "</t>"), "ZSC\actions\check_wallet.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; }; D 4 )
ADD
player removeAction s_givemoney_dialog; s_givemoney_dialog = -1; player removeAction s_bank_dialog; s_bank_dialog = -1; player removeAction s_bank_dialog2; s_bank_dialog2 = -1; BEHIND
player removeAction s_player_towing; s_player_towing = -1; player removeAction s_player_fuelauto; s_player_fuelauto = -1; player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; D 5 ) TO remove the client side errors u getting add in your VARIABLES.SQF
s_givemoney_dialog = -1; s_bank_dialog = -1; s_bank_dialog2 = -1; TO
dayz_resetSelfActions = { E ) player_switchModel.sqf again, if u overwriten with mine in first step, u can skip.
E 1 ) add
_cashMoney = player getVariable["cashMoney",0]; behind
_weapons = weapons player; _countMags = call player_countMagazines; _magazines = _countMags select 0; E 2 ) Add
player setVariable ["cashMoney",_cashMoney,true]; on the BOTTOM
E 3 ) CHANGE
//Create New Character _group = createGroup west; _newUnit = _group createUnit [_class,dayz_spawnPos,[],0,"NONE"]; _newUnit setPosATL _position; _newUnit setDir _dir; into
_group = createGroup west; _newUnit = _group createUnit [_class,dayz_spawnPos,[],0,"NONE"]; [_newUnit] joinSilent createGroup WEST; _newUnit setPosATL _position; _newUnit setDir _dir; _newUnit setVariable ["cashMoney",_cashMoney,true]; F) You can use my unclockVault in ZSCinit, If u got a custom one, do the following changes:
F1)
place
_objMoney = _obj getVariable["bankMoney",0]; behind
_dir = direction _obj; _pos = _obj getVariable["OEMPos",(getposATL _obj)]; _objectID = _obj getVariable["ObjectID","0"]; _objectUID = _obj getVariable["ObjectUID","0"]; F 2)
place
_holder setVariable ["bankMoney", _objMoney, true]; behind
_holder setVariable["CharacterID",_ownerID,true]; _holder setVariable["ObjectID",_objectID,true]; _holder setVariable["ObjectUID",_objectUID,true]; _holder setVariable ["OEMPos", _pos, true]; E) in LockVault.sqf if u got a custom one, otherwise use mine and set true in config:
E1 ) place)
_objMoney = _obj getVariable["bankMoney",0]; behind
_ownerID = _obj getVariable["CharacterID","0"]; _objectID = _obj getVariable["ObjectID","0"]; _objectUID = _obj getVariable["ObjectUID","0"]; E2 )
place
_holder setVariable ["bankMoney", _objMoney, true]; behind
_holder setVariable["CharacterID",_ownerID,true]; _holder setVariable["ObjectID",_objectID,true]; _holder setVariable["ObjectUID",_objectUID,true]; _holder setVariable ["OEMPos", _pos, true]; SERVER PBO
A ) REPLACE your "compiles/server_tradeObject.sqf" With my one ( not other script uses that anyways).
B ) IN compiles/server_updateObject.sqf
Change
_inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; into
_inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object /*ZSC*/ , _object getVariable["bankMoney",0] /*ZSC*/ ]; C ) In your server_monitor.sqf ( NOTE: the " _intentory' variable can be called "_inventory" at your files, so change my code to that, if it's the case).
Add
/*ZSC*/ if( count (_intentory) > 3)then{ _object setVariable ["bankMoney", _intentory select 3, true]; }else{ _object setVariable ["bankMoney", 0, true]; }; /*ZSC*/ ABOVE
if (_type in DZE_LockedStorage) then { // Fill variables with loot _object setVariable ["WeaponCargo", (_intentory select 0),true]; _object setVariable ["MagazineCargo", (_intentory select 1),true]; _object setVariable ["BackpackCargo", (_intentory select 2),true]; } else { D) in compiles/server_playerSync.sqf
Change
_playerGear = [weapons _character,_magazines]; into
_playerGear = [weapons _character,_magazines, _character getVariable["cashMoney",0]]; NOTE:
in the gold init i use a custom gearSet.sqf
If u would have a custom one, it's defined in the ZSCinit.sqf. Only differnecy will be the top where it checks for the money in your gear sections.
FAQ!
I use a different instance/map to play one! What do i do?
The only things that difference between maps where u need to worrie about is the server_traders.sqf. I included them for 4 maps, if your map is NOT in there u will have to change your original one.
FAIR SIMPLE:
1) Take your original server_traders
2) Open one of mine
3) Copy my categories with the correct numbes to your traders. You can choose also which traders sells what then ^^.
4) Share your file to me so i can put it in the list
Does it work with Overpoch(ins).
Simple: Yes, Everything with epoch as base.
Overwatch items or included in traders, remove the categories if you do not use them.
Can i convert from the older system?
You will have to revert your database to the default structure and maybe transfer money. Banks added to the players cash is the best solution.
How do i see my money and bank?
1 - Bank will not be visible cus their is none. You store money in storages like other items ( but in a different dialog). So the money can be accessed by anyone that has access to that storage.
2- Money is visisble with a money icon on the right side of the screen. Feel free to add it to other places aswell.
This will return your money:
player getVariable["cashMoney",0]; Can I use it with database traders?
No, this build is made for config traders. No support (Yet).
Screenshots
I probably will code this inthe default epoch code and send a merge request to Epoch Devs with an option to do
DZE_SingleCurrency = true/false; And if they accept it , it might be in 1.6 ^^
-
Ghostrider-GRG reacted to hambeast in [TUTORIAL] How to use Public Variables
FYI, this guide is for advanced arma coders. This guide will assume you know how to pack/unpack PBO's, edit files, and are comrfortable with coding. You must also have an understanding of locality as in client vs server side.
A note on locality: Your mpMissions folder is NOT only client side. When I started coding I made this assumption and I was wrong.
Lesson 1: Event Handlers Basics
Event handlers are the bread and butter of Arma2 MP coding. They are little logic functions that the server sets aside until they are called by a public variable. In my experience they have very low overhead so don't be afraid to make use of them.
example 1: Change players skin
Add this code to the bottom of your init.sqf (in your mpMission)
// expects: [_playerUID,_CharacterID,_skinClassName] // this line says ONLY run on the ClientSide. The server will see this and ignore it. This means that when a client gets this command, they and only they will execute this. if (!isDedicated) then { "PV_ChangePlayerSkin" addPublicVariableEventHandler { // handle our packet. _this select 0 returns the PV name, _this select 1 returns our input packet _packet = _this select 1; // should contain [_playerUID, _characterID, _skinClassName] _playerUID = _packet select 0; _characterID = _packet select 1; _skinClassName = _packet select 2; // set our player to the skin [_playeruid,_characterID, _skinClassName] spawn player_humanityMorph; }; }; Ok so now we got our event handler set up, if any client sends the PV "PV_ChangePlayerSkin" all clients connected will execute this event handler. Here is how we send the command to all players. This code can be called anywhere, on a client, or from the server itself.
example:
PV_ChangePlayerSkin = [_playerUID,_CharacterID,_skinClassName]; publicVariable "PV_ChangePlayerSkin"; But you may be asking, how do I set just a single player's skin instead of everyone on the server? We do this with publicVariableClient. I am unsure if you can call this command from clientside as I only use it serverside but here is how you do it regardless. // lets assume we want to set our cursorTarget's skin (the player we are looking at) _player = cursorTarget; _owner = owner _player; // owner command returns the client # we will need for the next step. _playerUID = getPlayerUID _player; _characterID = _player getVariable ["CharacterID","0"]; _skinClassName = "FR_GL"; // my personal skin PV_ChangePlayerSkin = [_playerUID, _characterID, _skinClassName]; _owner publicVariableClient "PV_ChangePlayerSkin"; // only send the PV to the specific client
Now when we send our public variable we only send it to the client we wish to. There are a myriad of ways to get player objects loaded into memory but that will be covered later.
-
Ghostrider-GRG reacted to hellraver in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)
Use this Code:
vkc_AllowedClaimVehicle = [ "SUV_Blue", "SUV_Camo", "SUV_Charcoal", "SUV_DZ", "SUV_Green", "SUV_Orange", "SUV_Pink" ]; if (!isNull cursorTarget && (typeOf cursorTarget) in vkc_AllowedClaimVehicle && (player distance cursorTarget <= 10) && (!isEngineOn cursorTarget)) then { -
Ghostrider-GRG reacted to TheVampire in [Release] DayZ Mission System
DZMS is a logic and useability rewrite of the DayZChernarus Mission System.
DZMS should be considered as an "updated" DayZChernarus Mission System.
Why Use DZMS instead of DayZChernarus MS?
DZMS has a simple Configuration File, no more digging through code No more junk code! (Anyone who has read add_unit_server will understand) Simple Install! DZMS Requires a single line edit. No more server_cleanup confusion! No more messy mission code! DZMS uses functions for most code. DZMS is rewrote with all maps in mind, not just Chernarus. Hence the Generic Rename. DZMS is completely server sided! No marker files needed in the Mission PBO! No more "Novy Sobor Bug"! Plus, many features have been added!
Option to save vehicles to the database! If Vehicle Saving is off, Users are warned when entering vehicles! Randomized Crate Loot! No more static crate loot! Adjustable Body Despawn Time! Optional: AI Ran Over have no gear! More!
The Current Version is v1.2
Download Instructions: https://github.com/SMVampire/DZMS-DayZMissionSystem
Project Tracking: https://github.com/SMVampire/DZMS-DayZMissionSystem/projects
(Note: I have given The Fuchs permission to use DZMS as the base for EMS.)
-
Ghostrider-GRG reacted to hellraver in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)
[RELEASE] Vehicle Key Changer - For making Masterkey - V 1.5.4 (Updated 26/10/2014)
Changes: Debugging (heli distance menu appears) I'm sorry. Was my fault.
Have Fun!
Best regards
hellraver
Hint: This is a unofficial version and is not from Otternas3!!!
VehicleKeyChanger_v1.5.4.zip
-
Ghostrider-GRG reacted to flakvest in Are vehicles being unlocked automatically?
You can also create a MYSQL event that will unlock abandoned cars after a certain period of time. Here is what I am using. Just edit to make the table name match the spelling and capitalization of your 'object_data' table. This unlocks vehicles that are at least 4 days old and haven't been touched in 10 days. You can change the numbers to reflect the time you want this to happen.
DROP EVENT IF EXISTS unlockAbandonedVehicles; CREATE EVENT unlockAbandonedVehicles ON SCHEDULE EVERY 1 DAY COMMENT 'Unlocks vehicles that have been abandoned' DO UPDATE `Object_DATA` SET `CharacterID` = 0 WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 4 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 10 DAY) AND `CharacterID` > 0 AND `Classname` NOT IN ('VaultStorage','LockboxStorage','VaultStorageLocked','LockboxStorageLocked','WoodShack_DZ','StorageShed_DZ','TentStorageDomed','TentStorageDomed2','TentStorage') AND `Inventory` <> '[]' AND `Inventory` IS NOT NULL; -
Ghostrider-GRG got a reaction from jackal40 in HiveExt Error Help
It looks as if there is an error in your database. You might try just rolling it back an hour. However, the hive error is for one of your trades, I believe for tid 493. Have you tried searching your traders_data table using 493 as the TID ? That should help you narrow down the problematic entry.
-
Ghostrider-GRG got a reaction from jackal40 in HiveExt Error Help
I am glad my input was helpful. Good luck with your new dedi-box.
-
Ghostrider-GRG reacted to DeanReid in [Resources] Scripts | Tools | AIO
Tutorials
===============
Admin Guide
================
- - RayMix
- NGHD
- - hambeast
- Editing Battleye Files - Apocalypsetiger
- Adding Custom Buildings - Blur
- - Gr8Boi
Tutorials
===============
A}
- jOoPs
- - Nemaconz
- - jOoPs
- Raymix
- - jOoPs
- Add Items/Vehicles/Weapons to Traders M1 - xBowBii
- Add Items/Vehicles/Weapons to Traders M2 - xBowBii
- f3cuk
- http://epochmod.com/forum/index.php?/topic/9917-how-to-anti-glitch-script-block-unconscious-players-from-being-dragged-into-bases/- Sandbird
- http://epochmod.com/forum/index.php?/topic/7874-how-to-watermark-on-the-bottom-left-of-screen/ - Indiculous
- http://epochmod.com/forum/index.php?/topic/9832-how-to-implement-picture-on-the-bottom-left-of-screen/ - BAROD
- http://epochmod.com/forum/index.php?/topic/7879-how-to-adding-intro-music/ - Indiculous
C}
- http://epochmod.com/forum/index.php?/topic/6844-tutorial-clickable-self-bloodbag-with-configurable-limitations-updated-02212014/ - adg
- http://epochmod.com/forum/index.php?/topic/16084-tutorial-clean-vehicle-flip-right-click-version/ - Chunk. No Captain Chunk
D}
- http://epochmod.com/forum/index.php?/topic/2112-tutorial-disabling-r3f-towlift-for-locked-vehicles/ - MrTesla
- http://epochmod.com/forum/index.php?/topic/4229-how-to-disable-rain-fog-multiple-setups-available/ - Scenic
- http://epochmod.com/forum/index.php?/topic/3009-how-to-default-starting-loadouts-and-custom-loadouts-through-database/ - AVendettaForYou
- http://epochmod.com/forum/index.php?/topic/9775-tutorialrelease-disable-the-salvage-vehicle-option-while-in-trader-city/ - WAE
E}
- http://epochmod.com/forum/index.php?/topic/13538-how-to-evd-mounted-weapons/ - Brockie
H}
- http://epochmod.com/forum/index.php?/topic/6755-tutorial-how-to-change-bloodhungerthirsttemp-gui/ - SpreadKiller
- http://epochmod.com/forum/index.php?/topic/11797-tutorial-harvestable-hemp-smoking-weed-pot-farms/ - FragZ
I}
- http://epochmod.com/forum/index.php?/topic/1673-how-to-cpc-indestructible-bases/ - ToejaM
K}
- http://epochmod.com/forum/index.php?/topic/9366-howto-release-keep-your-plot-pole-after-you-die/ - Spectral
M}
- Mission/Server Rotation - Turtle
R}
- http://epochmod.com/forum/index.php?/topic/11952-tutorial-removechange-trading-animations-for-faster-trading/ - Gr8Boi
- http://epochmod.com/forum/index.php?/topic/10743-fixtoolbox-remove-camo-net-and-remove-tank-trap/ - Zelik
- http://epochmod.com/forum/index.php?/topic/14950-howto-refresh-dynamic-vehicles-on-restart/- f3cuk
S}
- http://epochmod.com/forum/index.php?/topic/14447-how-toupdate-snap-build-pro-w-admin-fast-build-upgrade-and-extra-rc-building-system/ - KamikazeXeX
- http://epochmod.com/forum/index.php?/topic/9660-player-safe-reset-mission/ - Cramps2
T}
- http://epochmod.com/forum/index.php?/topic/9552-howtorelease-tie-playeruid-to-all-buildable-objects-keep-plot-pole-after-death-no-sql-triggers-update-16042014/ - WGC GeekGarage
U}
- http://epochmod.com/forum/index.php?/topic/6130-howto-use-journal/ - jOoPs
{Vehicle/Player/Zombie Reskin/Retextures}
===========================
- http://epochmod.com/forum/index.php?/topic/15116-how-to-reskinretexture-vehicles/?p=112257 - Brockie
- http://epochmod.com/forum/index.php?/topic/19731-release-10-custom-skin-textures/ - Zupa
{Vehicle Skins}
- http://epochmod.com/forum/index.php?/topic/19873-blood-splattered-ural-yellow/ - ZombieDanceTeamLeader
- http://epochmod.com/forum/index.php?/topic/19874-blood-splattered-v3s/- ZombieDanceTeamLeader
- http://epochmod.com/forum/index.php?/topic/19872-blood-splattered-lada-white/ - ZombieDanceTeamLeader
- http://epochmod.com/forum/index.php?/topic/19871-blood-splattered-hatchback-yellow/ - ZombieDanceTeamLeader
- http://epochmod.com/forum/index.php?/topic/19875-icarus-buses-coke-pepsi-mountain-dew/ - ZombieDanceTeamLeader
- http://epochmod.com/forum/index.php?/topic/19877-green-tractors-easier-to-hide-in-the-woods/ - ZombieDanceTeamLeader
- http://epochmod.com/forum/index.php?/topic/15301-new-suv-skinstextures/ - FriendlyPA
- http://epochmod.com/forum/index.php?/topic/13263-release-hollows-nissan-350zs/ - HollowAddiction *Overwatch/OverPoch ONLY*
{Player Skins}
{Zombie Skins}
- http://epochmod.com/forum/index.php?/topic/19876-female-zombie-originally-the-hooker-skin/ - ZombieDanceTeamLeader
{OverPoch Tutorials}
=======================
- http://epochmod.com/forum/index.php?/topic/12487-tutorial-overpoch-custom-traders-all-weaponsammovehicles-in-menus/ - RayMix
-
Ghostrider-GRG got a reaction from hellraver in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)
@hellraver,
Your version 1.4.2 works beautifully on my test server. Thank you very much for sorting the issues with this script. I will be adding it to our servers and will report any bugs identified.
-
Ghostrider-GRG reacted to raymix in [Tutorial] Overpoch - Custom traders, all weapons/ammo/vehicles in menus
This Video Tutorial covers:
Add custom Traders anywhere on map
Find positions on map (also covering safezones/sensors a little bit)
Add your own custom Menus to traders
Add all Overwatch weapons, ammo and vehicles to your menus
Use notepad++ to convert Loot CFG (or literary ANY) file into SQL query that you can to insert items faster into database.
Notepad++ tricks:
I will show you some cool tricks how to clean out junk data from files, filter out only stuff you need and convert it into a different code that can be used elsewhere.
In this video I will be using Macros, TextFX and Find&Replace options to show you awesome stuff you can do with notepad++ to affect thousands of lines automatically!
You will need TextFX plugin.
SQL:
I am using Heidi SQL to edit my databases. Any other tool is very well capable of doing the same job well. I just love filtering on heidi. It's also free.
This is by no means targeted towards advanced users, beginners only. If you are advanced user and dislike the method, please share your method instead for all of us to learn from.
I am not sharing actual SQL code because database names differs for different hosts, also I think notepad++ tricks are awesome thing to know, might be handy in future.
In fact If database structure ever changes, you can reuse tricks learned here instead to update it quickly.
Overwatch vehicles used in video:
Alternative list of all Overwatch weapons/ammo/vehicles (Test out your new Notepad++ skill and convert it into SQL!)
PROTIP: if using alternative list - to filter out ammo from weapons Write Ammo Type: in search, leave search window open. Then create macro:
[Home] > [F3] > [shift]+[END] > [DEL] > [Down] > [Home]
This will delete last part on all rows that says ammo and leave weapons only. Apply similar method to delete weapons instead.
Credits and [How to] Install server: infiSTAR for awesome AH/Admin tool
00:00 - 20:00 Adding traders 20:00 - 35:05 Notepad++ filtering out the junk 35:05 - 36:40 Notepad++ TextFX deleting duplicate rows 36:40 - 41:55 Notepad++ Seperating ammo from weapons using macros 41:55 - 57:42 Converting classnames into SQL query (adding stuff to traders in database) 57:42 - Final in-game test -
Ghostrider-GRG reacted to Zupa in [Release] 3.0 Door Management - No More Codes
[RELEASE] Door Management - No More Codes
First release ONLY for Plot 4 Life users.
Tired of giving in codes? Which code belongs to which door anyways? Geezus, some guy put a bot on my door to break the code. FUCK THAT
Here comes Door Management. Throw away your codes and enjoy a simple eye scan. Add your friends to your list on the door an enjoy a stress free "door opening" experience. Door opening too fast? dont worry just put the opening time a bit longer.
Inspired by plotManagement but now for Doors!
If you press the unlock action you will not see a code dialog anymore. My dialog overwrites this dialog with my personal one. Here you get to simple action to press EYE SCAN. This will open the door after 2 seconds of scanning. Fails when you are not on the manage list ofcourse. Only people on the manage list can manage the door ofcourse. Owner will be alwyas highest authority and can never be erased. (Thanks P4L - Rimblock).
[insert Image of the manage window here when i'm @ home, or anyone else provide it in the meantime]
If you press manual code you get the old dialog back. You can disable this in the config section.
This Scripts DOES not change anything gamebreaking or database related. The door code is still being used, but only codewise (back-end). You dont see anything in the front-end.
Instructions
0 - Download the files from github:
https://github.com/DevZupa/DoorManagement
1 - in your description.ext: ( Mission PBO )
Add to the bottom: ( THE DEFINES IS UPDATED, overwrite any other defines i gave u at other mods of mine!)
If you get any duplicates of classes, just delete them from the defines.hpp, problem solved.
#include "doorManagement\defines.hpp" #include "doorManagement\doorUnlock.hpp" #include "doorManagement\doorManagement.hpp" #include "doorManagement\ComboLockUI.hpp" 2 - In your compiles.sqf: ( Mission PBO ) Add the following lines
/*DoorManagement Zupa*/ DoorGetFriends = compile preprocessFileLineNumbers "doorManagement\doorGetFriends.sqf"; DoorNearbyHumans = compile preprocessFileLineNumbers "doorManagement\doorNearbyHumans.sqf"; DoorAddFriend = compile preprocessFileLineNumbers "doorManagement\doorAddFriend.sqf"; DoorRemoveFriend = compile preprocessFileLineNumbers "doorManagement\doorRemoveFriend.sqf"; player_unlockDoor = compile preprocessFileLineNumbers "doorManagement\player_unlockDoor.sqf"; player_unlockDoorCode = compile preprocessFileLineNumbers "doorManagement\player_unlockDoorCode.sqf"; player_manageDoor = compile preprocessFileLineNumbers "doorManagement\initDoorManagement.sqf"; player_enterCode = compile preprocessFileLineNumbers "doorManagement\player_enterCode.sqf"; player_changeCombo = compile preprocessFileLineNumbers "doorManagement\player_changeCombo.sqf"; /*DoorManagement End*/ Above
BIS_Effects_Burn = compile preprocessFile "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf"; AND place "//" infront of the normal player_actions so it looks like this:
// player_unlockDoor = compile preprocessFileLineNumbers "defaultfile.sqf"; //player_changeCombo = compile preprocessFileLineNumbers "defaultfike.sqf"; 3 - Variables.sqf: Add somewhere at the top: NOT FIRST LINE:
/**DoorManagement Config**/ DoorAdminList = ["-2","-3"]; // List of Player Id's of admins that can manage all doors AllowManualCode = true;// 2 reason| 1: Allows breaking codes (if 2nd config = false and code = 3 digits) | 2: Friends can access access not owned doors until owner gets on. HarderPenalty = true;// Cen's Penalty: Flashes screen white. And kicks player to lobby if failed more then (random number between 4 and 14) times. // AllowUncrackableCode = false; // in next release: if set to true, player can change code to more then 4 digits, The manualCode will always fail when he does. THIS is for AntiCodeCrack servers that allow Manual Code for people that like that system. // in next release. AllowManualCode will allow players to change the code in the DoorManagement Menu. /**DoorManagement Config END**/ DZE_DoorsLocked = ["Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallDoorLocked_DZ","CinderWallDoorSmallLocked_DZ"]; 4 - FN_SELFACTIONS.SQF:
a - Add the following
player removeAction s_player_manageDoor; s_player_manageDoor = -1; // u might also want to add this to variables reset in your variables.sqf Under
player removeAction s_player_barkdog; s_player_barkdog = -1; player removeAction s_player_warndog; s_player_warndog = -1; player removeAction s_player_followdog; s_player_followdog = -1; b - Place the following:
//Allow manage door if((_typeOfCursorTarget in DZE_DoorsLocked)) then { if (s_player_manageDoor < 0) then { s_player_manageDoor = player addAction ["<t color='#0059FF'>Manage Door</t>", "doorManagement\initDoorManagement.sqf", _cursorTarget, 5, false]; }; } else { player removeAction s_player_manageDoor; s_player_manageDoor = -1; }; above
//Allow owner to unlock vault Now in the Server.pbo
5 - server_monitor.sqf ( Mostly found in dayz_server/system/ if you are not using any modded one).
a) place
if (typeOf (_object) in DZE_DoorsLocked) then { _object setVariable ["doorfriends", _intentory, true]; }; under
_object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
B - Find ( IF NOT USING PLOTMANAGEMENT )
if (count _intentory > 0) then { Replace that with
if ((count _intentory > 0) && !(typeOf( _object) in DZE_DoorsLocked)) then { B - IF USING PLOT MANAGEMENT,
REplace:
if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ")) then { With
if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ") && !(typeOf( _object) in DZE_DoorsLocked)) then { 6 - server_UpdateObject.sqf ( Mostly found in dayz_server/compile/ if you are not using any modded one).
Change
_inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; into ( IF NOT using PLotManagement)
_isNormal = true; if (typeOf (_object)in DZE_DoorsLocked) then{ _isNormal = false; _inventory = _object getVariable ["doorfriends", []]; //We're replacing the inventory with UIDs for this item }; if(_isNormal)then { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; }; IF USING PLOT MANAGEMENT
Change
if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item } else { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; }; Into
_isNormal = true; if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _isNormal = false; _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item }; if (typeOf (_object)in DZE_DoorsLocked) then{ _isNormal = false; _inventory = _object getVariable ["doorfriends", []]; //We're replacing the inventory with UIDs for this item }; if(_isNormal)then { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; }; Infistar Antihack
If you're running Infistar Antihack, add this to the dialogs array;
711195, 41144 And this to the '_cMenu =' section
"DoorManagement","Entercode" IMPORTANT FOR NON PLOT 4 LIFE USERS
-
Ghostrider-GRG reacted to hellraver in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)
Hi Guys,
I have a new integrated method so that they cannot multiply vehicles with the commanding menu.
And I found a small error in the VehicleKeyChanger_init.sqf. Soon I integrate claim vehicles without key ;-)
Best regards
hellraver
Hint: This is a unofficial version and is not from Otternas3!!!
VehicleKeyChanger_v1.4.2.zip
-
Ghostrider-GRG reacted to kat in Overpoch Database Trader Entries
Config:
GitHub: Database Entries
;) I've made some entries for my custom traders for the new overpoch weapons/ammo.
Your trader TID will be different than mine so you will have to change that.
I've separated them into each class. *note some may be in the wrong section, forgive me, i'm not a gun nut... :rolleyes:
Feel free to adjust the prices etc.
I'm using navicat so It may be different using other methods.
But to add, create a new query and simply paste the below entries.
*note your "traders_data" may be different, change to suit your database.
*If you find any mistakes or feel that something needs to be more balanced price wise please comment and ill update, Thanks ;)
AK Variants:
G3 Variants:
Sidearms:
Masada ACR
SCAR Rifles:
HK416's
HK417's
LMG's
Snipers:
ACR snow camo:
ACR black camo:
-
Ghostrider-GRG reacted to Matijs in [TUTORIAL] How to install an overpoch server & custom loot tables
Here is a link to the Overpoch Server Config Folder and the MPMission file:
http://adf.ly/pbQHC
-
Ghostrider-GRG reacted to Zupa in [Release] 2.1 Plot Management - UPDATED Object Counter
Testing the following.
Instead of doing anything in remove.sqf ( RESTORED IT TO DEFAULt).
I use the following in fn_selfactions.sqf
P4L only.
///Allow owners to delete modulars if(_isModular) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0]; _IsNearPlot = count (_findNearestPoles); _fuid = []; _allowed = []; if(_IsNearPlot > 0)then{ _thePlot = _findNearestPoles select 0; _owner = _thePlot getVariable ["ownerPUID","010"]; _friends = _thePlot getVariable ["plotfriends", []]; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _fuid; if ( _playerUID in _allowed) then { // && _ownerID in _allowed // If u want that the object also belongs to someone on the plotpole. _player_deleteBuild = true; }; }else{ if(_ownerID == _playerUID)then{ _player_deleteBuild = true; }; }; }; }; //Allow owners to delete modular doors without locks if(_isModularDoor) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0]; _IsNearPlot = count (_findNearestPoles); _fuid = []; _allowed = []; if(_IsNearPlot > 0)then{ _thePlot = _findNearestPoles select 0; _owner = _thePlot getVariable ["ownerPUID","010"]; _friends = _thePlot getVariable ["plotfriends", []]; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _fuid; if ( _playerUID in _allowed) then { // && _ownerID in _allowed // If u want that the object also belongs to someone on the plotpole. _player_deleteBuild = true; }; }else{ if(_ownerID == _playerUID)then{ _player_deleteBuild = true; }; }; }; }; -
Ghostrider-GRG reacted to striker in [Release] Build Vectors - Rotate objects in Dayz Epoch (v2.34 P4L & non-P4L)
https://www.youtube.com/watch?v=gsa44JO02VQ&amp;feature=youtu.be
Credit Is Due Where Due
Special Thanks to Raymix and his Script!
Special Thanks to RimBlock and his
Special Thanks to Jossy and the future improvements I hope to see from him! Check out his work
Special Thanks to KamikazeXeX for his changes to the AdminBuild for Snap Building Pro and his help!
Notice
These files have been tested and work on the maps Chernarus and Taviana.
Installation
Warning: This script is fairly untested and could cause unforeseen problems. USE AT YOUR OWN RISK!
Please backup your database before you implement this encase something goes wrong!
Newest Build Vectors Installation (version 4)
Snap Build Pro Only
Files & Install guide
http://bitly.com/BuildVectorsSBPv4
Plot 4 Life & Snap Build Pro
Files:
http://bitly.com/BuildVectorsV4
Install Guide:
https://github.com/strikerforce/DayzBuildVectors
Legacy Installation (version 3)
Road Map
Keep menus up when clicked for better user experience Known Issues
None Change Log
Version 1:
Released
Version 1.1:
Updated server_monitor.sqf to make sure the vector is the correct format.
Version 2:
Updated files for the snap building pro update v1.3.
Added files for Adminbuild and Right Clickables.
Version 3:
Updated files for snap building pro v1.4.1
Ghost preview supported (Thanks Jossy!)
Version 4:
Cleaned up some of the HORRENDOUS code :P
Fixed issue with objects not snapping correctly to objects of a certain degree after restart. ;)
Appreciate and support my work?
-
Ghostrider-GRG got a reaction from rosska85 in [Release] 2.1 Plot Management - UPDATED Object Counter
Seems to work perfectly on a test server. I am running it with PP4L 2.26, SnapPro 1.4.1, and extra_rc build.
Many thanks for a great add-on.
-
Ghostrider-GRG reacted to Defay in [Release] Cen's Custom GUI for Epoch/Overpoch
Hey guys,
so I saw that there are lot of people asking how to get an GUI looking like this:
This is not my work, I'm only posting a tutorial on how to do it. This is from user Cen who was so nice to share it with us.
All credits go to: Cen
Tutorial:
1.) First download these files and extract them in the root of your mission folder or mission.pbo.
Download Link or Attached files.
2.) Add this to the bottom of description.ext
class RscPictureGUI { access = 0; type = 0; idc = -1; colorBackground[] = {0,0,0,0}; colorText[] = {0.38,0.63,0.26,0.75}; font = "TahomaB"; sizeEx = 0; lineSpacing = 0; text = ""; style = "0x30 + 0x100"; x = 0; y = 0; w = 0.2; h = 0.15; }; class RscTextGUIK { type = 0; idc = -1; style = 0x02; colorBackground[] = {0,0,0,0}; colorText[] = {1, 1, 1, 0.5}; //color[] = {1, 1, 1, 0.5}; font = "TahomaB"; size = 0.03; sizeEx = 0.03; x = 0; y = 0; w = 0.1; h = 0.2; }; #include "dayz_code\gui\ATD_Hud.h" 3.) Add this line to a custom compiles.sqf or overwrite the path in the existing compiles.sqf (depends how you call yours).
I will not do a tutorial on how to add custom compiles as there are plenty of them already out here on this forum.
player_updateGui = compile preprocessFileLineNumbers "dayz_code\compile\player_updateGui.sqf"; 4.) Edit ATD_Hud.h to your liking.
And that should be it! If you have any questions or problems with it, please post down below and I'll try to get back to you as soon as possible or send me a PM.
Let me know how I did for my first tutorial and thanks again to Cen for the HUD and letting me post a tutorial on this.
ATD-HUD-FILES.zip
-
Ghostrider-GRG reacted to WGC GeekGarage in [How To/Update] Build Snap with Right Click custom build, admin fast build + upgrade Version 1.6.5 IMPORTANT UPDATE: extra_rc
By request I have updated the player_build file for snapping so it will work with admin fast build (not remove) and right click custom build
Always do a backup of your own player_build.sqf before going further!
I do NOT take credit for anything other than the changes to the file. The majority of the script was done by Maca134 and OtterNas3 and Epoch Dev Team
Requirements:
- Install Maca134's right click script - http://epochservers.com/viewtopic.php?f=14&t=13
- Install Build Snap Extended -
Now to the update
Download this SQF file and replace the player_build.sqf in your Mission PBO\custom\snap_build folder:
http://www.wreckinggames.net/download/player_build.sqf
in your variables.sqf add this line
WG_adminBuild = ["123456789","987654321"]; near the top just below
disableSerialization; add player UID's to this array (change the example UID's) for those players who should have fast build
Here is an example of the extra_rc.hpp, i have used the ruby as a test inventory item
class ExtraRc { class ItemRuby { class menuItem1 { text = "Sandbag Tower"; script = "[""Land_Fort_Watchtower_EP1"",[""ItemToolbox"",""ItemHatchet_DZE""],[[""ItemRuby"", 1],[""PartGeneric"", 1]],[0,6.5,2.5]] execVM ""custom\snap_build\player_build.sqf"";"; }; }; }; Here is how the array works:
script = "[""Land_Fort_Watchtower_EP1"",[""ItemToolbox"",""ItemHatchet_DZE""],[[""ItemRuby"", 1],[""PartGeneric"", 1]],[0,6,2.5]] execVM ""custom\snap_build\player_build.sqf"";";
""Land_Fort_Watchtower_EP1"" is the object you want to build
[""ItemToolbox"",""ItemHatchet_DZE""] is the toolbelt items needed to build the object
[[""ItemRuby"", 1],[""PartGeneric"", 1]] List of items needed to build construction. Only have one of each item name and then set the number to how many of that item. If only a single item the array should look like this [[""PartGeneric"", 1]]
[0,6,2.5] is the item offset from your character. First number is Left/Right offset, second number is front/back offset, last number is Up/Down offset. Remember that comma is the seperator between the number and period is decimal seperator!
also remember the double quotes are VERY important around class names!
To be able to remove custom items as an owner only this is how you would go about it:
In your variables.sqf i would recommend near dayz_allowedObjects create a new public array containing the objects you would be able to remove i call mine
WG_OwnerRemove =[]; insert any classname you want from the custom build system.
in the custom fn_selfAction.sqf find
_isModular = _cursorTarget isKindOf "ModularItems"; and change it to
_isModular = (_cursorTarget isKindOf "ModularItems") or ((typeOf _cursorTarget) in WG_OwnerRemove); remember to add your custom objects in "dayz_allowedObjects" and "DZE_maintainClasses" in your variables.sqf any object added to "DZE_isRemovable" every one have a chance to remove!
Remember to share any objects that you might add so we all don't need to sit and create offsets for the same items and please only for items that you cannot already build in Epoch system
http://dayzepoch.com/wiki/index.php?title=Modular_Building_System
http://dayzepoch.com/wiki/index.php?title=Crafting_System
________________________________________________________________
Now to the admin fast upgrade, download the following file
http://www.wreckinggames.net/download/player_upgrade.sqf
Now just redirect in your fn_selfaction.sqf to the new player_upgrade.sqf where the current player_upgrade.sqf is being called
This requires that you have "WG_adminBuild" in your variables.sqf!
The reason why i added fast build and upgrade for admins is that I suck at using the 3D map editor, but wanted to build some event houses here and there on the map, so i use this fast build to do it. Just know that i think that admin fast build should not be misused by admins in any way just because you don't like to wait, if you play with your players, do it fully legit or you are a coward.
________________________________________________________________
To be able to remove non-target able objects you need to copy object_removeNet.sqf from dayz_code\compile and put it into your mission file.
Then in compiles.sqf you need to redirect it to your mission file and then open it and add the item to the array with the nets.
Now when standing on heli pad you can right click your toolbox and use the remove net option and it will remove the heli pad
________________________________________________________________
I'm hosting the files myself so it won't get deleted by accident
If you like my small update please visit my servers :) all info on www.wreckinggames.net
- GeekGarage
-
Ghostrider-GRG 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... :)
-
Ghostrider-GRG reacted to rosska85 in [RELEASE] One click currency combine from inventory
Just a very simple little addition which I mashed up from the Epoch Change script. One of the biggest annoyances I found with the Epoch currency system was how long it took to combine it all into nice neat piles for storing away, so this lets you do it in one click without having to travel all the way to a trader.
Tested with 1.0.5.1, instructions are provided for clean Epoch and modded Epoch.
Feature:
Simply adds a right click menu option to all currency in your inventory which lets you 'combine' all of your currency to the highest denomination. Saves so much time and no annoying medic animation to boot. Download Link
Installation instructions can be found on my GitHub.
Hopefully the instructions are ok, I put this together on my server a week or two ago and I had to try and remember exactly what parts were needed haha.
If you're running mudzereli's Deploy Anything, see
As requested, a video of it in action.
-
Ghostrider-GRG reacted to hellraver in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)
Hi Guys!
I have a new fix for the duping Problem.
In this Variant does not must to click on "Exit" it.
The script will now exit properly when you click on the right mouse button.
/***********************************/ /* Vehicle Key Changer v1.4.1 */ /* Written by OtterNas3 */ /* January, 11, 2014 */ /* Last update: 01/09/2014 */ /* Edited: hellraver */ /***********************************/ /* Setup the private variables */ private ["_locationPlayer","_magazinesPlayer","_max","_j","_actionArray","_targetVehicle","_targetVehicleID","_targetVehicleUID","_playerKeys","_playerKeysDisplayName","_targetVehicleKeyName","_itemKeyName","_targetVehicleClassname","_targetVehiclePos","_targetVehicleDir","_Price","_claimingPrice","_timeout"]; /* Remove the Action Menu entry */ player removeAction s_player_copyToKey; s_player_copyToKey = 0; player removeAction s_player_claimVehicle; s_player_claimVehicle = 0; /* Get the array and setup the variables */ _actionArray = _this select 3; _targetVehicle = _actionArray select 0; _targetVehicleID = _targetVehicle getVariable ["ObjectID","0"]; _targetVehicleUID = _targetVehicle getVariable ["ObjectUID","0"]; /* Check if the Vehicle is in the Database, if false exit */ if (_targetVehicleID == "0" && _targetVehicleUID == "0") exitWith {cutText ["Sorry but\nthis Vehicle does not support\nKeychange/Claiming!","PLAIN",0];s_player_copyToKey = -1;s_player_claimVehicle = -1;}; /* Setup more variables */ _playerKeys = _actionArray select 1; _playerKeysDisplayName = _actionArray select 3; _targetVehicleKeyName = _actionArray select 4; _itemKeyName = _actionArray select 5; _Price = _actionArray select 6; _claimingPrice = _actionArray select 7; _targetVehicleClassname = typeOf _targetVehicle; _targetVehiclePos = getPosATL _targetVehicle; _targetVehicleDir = getDir _targetVehicle; /* Just in case it is a just bought vehicle and does not yet have a ObjectUID variable set */ if (_targetVehicleUID == "0") then { _targetVehicleUID = ""; { _x = _x * 10; if ( _x < 0 ) then { _x = _x * -10 }; _targetVehicleUID = _targetVehicleUID + str(round(_x)); } forEach _targetVehiclePos; _targetVehicleUID = _targetVehicleUID + str(round(_targetVehicleDir + time)); _targetVehicle setVariable["ObjectUID",_targetVehicleUID,true]; }; /* Setup the Key Names list to select from */ keyNameList = []; for "_i" from 0 to (count _playerKeysDisplayName) -1 do { keyNameList set [(count keyNameList), _playerKeysDisplayName select _i]; }; /* Setup the Key Numbers list to select from */ keyNumberList = []; for "_i" from 0 to (count _playerKeys) -1 do { keyNumberList set [(count keyNumberList), _playerKeys select _i]; }; /* Resetting menu variables*/ keyNameSelect = ""; exitscript = true; snext = false; /* Creating the menu */ copyMenu = { private ["_keyMenu","_keyArray"]; _keyMenu = [["",true], ["Select the new Key:", [-1], "", -5, [["expression", ""]], "1", "0"]]; for "_i" from (_this select 0) to (_this select 1) do { _keyArray = [format['%1', keyNameList select (_i)], [_i - (_this select 0) + 2], "", -5, [["expression", format ["keyNameSelect = keyNameList select %1; keyNumberSelect = keyNumberList select %1", _i]]], "1", "1"]; _keyMenu set [_i + 2, _keyArray]; }; _keyMenu set [(_this select 1) + 2, ["", [-1], "", -5, [["expression", ""]], "1", "0"]]; if (count keyNameList > (_this select 1)) then { _keyMenu set [(_this select 1) + 3, ["Next", [12], "", -5, [["expression", "snext = true;"]], "1", "1"]]; } else { _keyMenu set [(_this select 1) + 3, ["", [-1], "", -5, [["expression", ""]], "1", "0"]]; }; _keyMenu set [(_this select 1) + 4, ["Exit", [13], "", -5, [["expression", "keyNameSelect = 'exitscript';"]], "1", "1"]]; showCommandingMenu "#USER:_keyMenu"; }; /* Wait for the player to select a Key from the list */ _j = 0; _max = 10; _locationPlayer = player modeltoworld [0,0,0]; if (_max > 9) then {_max = 10;}; while {keyNameSelect == ""} do { [_j, (_j + _max) min (count keyNameList)] call copyMenu; _j = _j + _max; waitUntil {keyNameSelect != "" || snext || player distance _locationPlayer > 0.2}; if (player distance _locationPlayer > 0.2) then { breakOut "exit"; }; snext = false; }; /* Player selected a Key, lets make the Vehicle update call */ if (keyNameSelect != "exitscript") then { /* Check again for the needed price or claiming price and remove em from the players inventory */ _magazinesPlayer = magazines player; if (_Price != "0") then { /* Player still has the costs in hi inventory */ if (_Price in _magazinesPlayer) then { [player, _Price, 1] call BIS_fnc_invRemove; systemChat (format["Keychange costs a %1, thanks for your Payment!", _Price]); /* Player doesn't have the costs anymore, tried to trick the system? */ } else { systemChat (format["Keychange costs a %1, you had it and tried to trick the system - Keychange for this Vehicle disabled!", _Price]); /* This disables the Keychange ability for this vehicle JUST for this Player */ /* However he can relog and try again but it is a little punishment for trying to trick it */ _targetVehicle setVariable ["VKC_disabled", 1]; s_player_copyToKey = -1; s_player_claimVehicle = -1; breakOut "exit"; }; }; if (_claimingPrice != "0") then { /* Player still has the costs in hi inventory */ if (_claimingPrice in _magazinesPlayer) then { [player, _claimingPrice, 1] call BIS_fnc_invRemove; systemChat (format["Claiming Vehicle costs a %1, thanks for your Payment!", _claimingPrice]); /* Player doesn't have the costs anymore, tried to trick the system? */ } else { systemChat (format["Claiming Vehicle costs a %1, you had it and tried to trick the system - Claiming for this Vehicle disabled!", Price]); /* This disables the Claiming ability for this vehicle JUST for this Player */ /* However he can relog and try again but it is a little punishment for trying to trick it */ _targetVehicle setVariable ["VKC_claiming_disabled", 1]; s_player_copyToKey = -1; s_player_claimVehicle = -1; breakOut "exit"; }; }; /* We got the Money lets do our Job */ /* Lock the vehicle */ _targetVehicle setVehicleLock "LOCKED"; /* The super duper OneForAllAnimation... */ player playActionNow "Medic"; /* Remove the Key from the Toolbelt of the player and put it in the Backpack - No Backpack and the Key gets lost */ if (_itemKeyName != "0") then { if (!isNull (unitBackpack player)) then { [player, _itemKeyName, 1] call BIS_fnc_invRemove; (unitBackpack (vehicle player)) addWeaponCargoGlobal [_itemKeyName, 1]; systemChat (format["%1 has been moved to your Backpack", _targetVehicleKeyName]); }; }; /* This calls the custom update function which we put it in server_updateObject.sqf */ PVDZE_veh_Update = [_targetVehicle, "vehiclekey", player, _targetVehicleClassname, keyNumberSelect, keyNameSelect, _targetVehicleID, _targetVehicleUID]; publicVariableServer "PVDZE_veh_Update"; /* Wait for success or timeout */ _timeout = 20; while {_timeout > 0 && isNil "PVDZE_vkc_Success"} do { if (_Price != "0") then { cutText["~~ Performing Keychange ~~\n~~ Please wait ~~","PLAIN",0.5]; }; if (_claimingPrice != "0") then { cutText["~~ Performing Claim ~~\n~~ Please wait ~~","PLAIN",0.5]; }; sleep 1; _timeout = _timeout - 1; }; /* Inform the player about the success and tell him to check the Key */ if (!isNil "PVDZE_vkc_Success") then { if (_Price != "0") then { cutText["~~ Vehicle Keychange - SUCCESS ~~","PLAIN",1]; systemChat (format["Changed Vehicle Key to %1", keyNameSelect]); systemChat (format["Please check Vehicle function with %1 before you throw away %2!", keyNameSelect, _targetVehicleKeyName]); }; if (_claimingPrice != "0") then { cutText["~~ Vehicle Claiming - SUCCESS ~~","PLAIN",1]; systemChat (format["You claimed this Vehicle with: %1", keyNameSelect]); }; PVDZE_vkc_Success = nil; /* This updates the Vehicle as it is now, position, gear, damage, fuel */ /* Should prevent the "backporting" some dudes reported. */ /* Just fyi i never had that but just in case... */ [nil,nil,nil,_targetVehicle] execVM "\z\addons\dayz_code\actions\forcesave.sqf"; /* Something went wrong, inform the player and refund the costs */ } else { if (_Price != "0") then { cutText["~~ Vehicle Keychange - FAIL ~~","PLAIN",1]; systemChat (format["Sorry something went wrong", keyNameSelect]); systemChat (format["Please try again. If it keeps failing, please contact a Admin!", keyNameSelect, _targetVehicleKeyName]); [player,_Price] call BIS_fnc_invAdd; systemChat (format["Refunded %1",_Price]); }; if (_claimingPrice != "0") then { cutText["~~ Vehicle Claiming - FAIL ~~","PLAIN",1]; systemChat ("Sorry something went wrong"); systemChat ("Please try again. If it keeps failing, please contact a Admin!"); [player,_claimingPrice] call BIS_fnc_invAdd; systemChat (format["Refunded %1",_claimingPrice]); }; }; }; /* Reset the action menu variables for a new run */ s_player_copyToKey = -1; s_player_claimVehicle = -1; /**************************************/ /* That's it, hope you enjoy this Mod */ /* */ /* Yours sincerly, */ /* Otter */ /**************************************/ Here the final Version and new Release as attached files which solves the problem with duping :-)
Greets
hellraver
VehicleKeyChanger_v1.4.1.zip
-
Ghostrider-GRG reacted to SpearMintTrooper in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)
Cheers hellraver will test this shortly :-)
-
Ghostrider-GRG reacted to BetterDeadThanZed in [Release] 2.1 Plot Management - UPDATED Object Counter
Once this is sorted out and bug free, I think it would make an excellent addition to Epoch as an included feature!