Rocu Posted November 10, 2014 Report Share Posted November 10, 2014 Version 1.1 (Last update: 13.11.2014) What is this? Mystery Briefcase is a simple addon script that turns an otherwise completely useless item into a prize-giving briefcase. You obtain the briefcase, right click on it, select Open and you are rewarded with 6 randomly picked items ranging from beans to chainsaws. Similar to Battlefield 4's battlepacks. Perfect for giving away during events. Demo video Check this video below for a more clear explanation: https://www.youtube.com/watch?v=3NxaCW_28xU Requirements Epoch mod 1.0.5.1 or later Maca's Right Click Option script (can be done without if you know what you're doing) Download Download available here: https://github.com/Rocu/Epoch_MysterBriefcase Installation Firstly, download & install Maca134's Right Click Option script if you haven't done it already Un-pack your mission's PBO (using PBO manager or a similar tool) Download Mystery Briefcase files from my GitHub page Copy the mbc folder into your mission's addons folder. If you don't have an addons folder in there then create it. (For example config.sqf path should now be: Your_mission_folder\addons\mbc\config.sqf) Open description.ext (from mission PBO) Find: class DayZ_loadingScreen Above it, add this: class CfgSounds { sounds[] = {Brief_Open_Sound}; class Brief_Open_Sound { name = "Brief_Open_Sound"; sound[] = {addons\mbc\brief_open.ogg,0.4,1}; titles[] = {}; }; }; Note that if you already have custom sounds in your description.ext then just add the Brief_Open_Sound class manually (using the example above) At the bottom of description.ext, add this: // Mystery Briefcase by Rocu #include "addons\mbc\dialogs.hpp" Save & close description.ext Open up your custom compiles.sqf file (if you don't have one, ) At the very bottom, add this: // Mystery Briefcase by Rocu call compile preprocessFileLineNumbers "addons\mbc\config.sqf"; Save & close compiles.sqf Open extra_rc.hpp (if you installed Maca's script correctly you should have that file in \custom\ folder) Find: class ExtraRc { Below it, add: class ItemBriefcase_Base { class OpenSurpriseBrief { text = "Open Briefcase"; script = "execVM 'addons\mbc\open_brief.sqf'"; }; }; Save & close extra_rc.hpp Re-pack your mission's PBO and you're done! If you wish to further configure the script you can do so in the config.sqf file. For Infistar's Anti-Hack users you may want to add this as well: Open AHconfig.sqf Add this: 81000 To: _ALLOWED_Dialogs Example: _ALLOWED_Dialogs = [-1,106,2200,6900,6901,6902,6903,...........,81000]; Thanks Zipper for this. Additional info NOTE! When you first install the script you should know that the briefcase item itself doesn't spawn anywhere by default so you need to add it to the game manually. You can add it to the loot tables or traders using the following class name: ItemBriefcase_Base. It does support Zupa's Single Currency (gives out cash as a reward). If you don't have Single Currency it will still work perfectly, just don't put coins in the reward list (it isn't there by default). If you're planning to sell the briefcase in traders I recommend not setting it's price lower than 200,000 (or 2 briefcases if you're not using Single Currency). I haven't really spent ages working on balancing the reward but 200k should be a decent price for this (considering how sometimes you won't even get 50k back but sometimes you quadruple your profits). Technical stuff For the more technical guys out there - as you can see I used the ItemBriefcase_Base class for this script as it has the model of a briefcase but no other properties. I understand it's being used as base item for other briefcases but AFAIK it doesn't affect any of the other briefcases. The script itself isn't really a game changer. Just generates 6 random items with a little UI and puts them in a box. It's completely independent and doesn't rely on other scripts which means if one were to reverse-engineer it you could attach it to virtually anywhere. If you're editing the config file the rarity field doesn't have to sum up to 100% anymore. The percentage of item's rarity depends on the sum of the rarity field. For example, let's say we have only 3 items in the loot table with 50 rarity for every item. This means that every item actually has 33,3% chance of being picked. But for the sake of the script's speed I recommend you keep the rarity number as low as possible. Having 3 items with 1 rarity is a lot better than having 3 items with 50 rarity even though in both versions they all have 33,3% chance of being picked. Credits Maca134 - For the right click option script Zipper - For Infistar's AH compatibility f3cuk - For contributing to the script +Many others who've been very helpful lately! fr1nk, bFe, GaspArt and 3 others 6 Link to comment Share on other sites More sharing options...
CordIAsis Posted November 10, 2014 Report Share Posted November 10, 2014 This looks great. It's a fantastic use of an otherwise useless item and the sound and GUI are spot on! Link to comment Share on other sites More sharing options...
GaspArt Posted November 10, 2014 Report Share Posted November 10, 2014 Hm, very cool. I think it can be used for lottery tickets :D Link to comment Share on other sites More sharing options...
Backtrack Posted November 11, 2014 Report Share Posted November 11, 2014 Battleeye FIlter? Link to comment Share on other sites More sharing options...
Rocu Posted November 11, 2014 Author Report Share Posted November 11, 2014 Battleeye FIlter? No filter needed, default ones should be enough. It doesn't use anything that explicit. Infistar is a different matter though. You probably need to add some UI exceptions in there as far as I know but I don't have Infistar myself so I probably need someone else's help with that. Hm, very cool. I think it can be used for lottery tickets :D Thanks and yes, you're right. It can be used for that. This looks great. It's a fantastic use of an otherwise useless item and the sound and GUI are spot on! Thanks, hope you'll find a good use out of it. Link to comment Share on other sites More sharing options...
Backtrack Posted November 11, 2014 Report Share Posted November 11, 2014 i have allready installed but i get all the Time Kick by Battleeye Link to comment Share on other sites More sharing options...
mimic Posted November 11, 2014 Report Share Posted November 11, 2014 I'm using infiSTAR. Getting kicked by Battleye constantly. Working my way through the filters though. So far I've had to: publicvariable.txt - add to the end of line 2: !="diagLogr" That fixed one type of kick. Now I'm getting the following: Player Canuck Brian kicked off by BattlEye: PublicVariable Value Restriction #100 Here's the BE Log: 11.11.2014 00:58:04: Canuck Brian (199.195.149.121:2304) 6271a627658b56eca6e19bd60b6db82e - Value Restriction #100 "diagLogr" = "[BRIEF] Array created: [["coins","Coins",50000,2,5],["group_mag","Skin_Sniper1_DZ",1,2,10],["group_mag","ItemPainkiller",1,1,2],["group_wep","SVD_des_EP1",2,2,8],["group_mag","ItemLockbox",1,2,10],["group_wep","MK_48_DZ",2,3,3]]" Can you share your publicvariable.txt file with us? Link to comment Share on other sites More sharing options...
Backtrack Posted November 11, 2014 Report Share Posted November 11, 2014 //new 5 "" !="diagLogr" !"PVDZE_" !"norrn" !"usec" !="remExField" !="remExFP" !="drn_AskServerDynamicWeatherEventArgs" !="cad_pvar_send_owner" !="norrinRAlie" !="BIS_effects_gepv" !="dayzPlayerLogin" !="dayzPlayerLogin2" !"PVAHR_" !="PVAH_AdminReq" !="PVAH_WriteLogReq" !="owner_B1" !="owner_B2" !="owner_B3" !="owner_H1" !="owner_H2" !="owner_H3" !="owner_SG" !="owner_LG" !="owner_KING" !="owner_SH" !="OriginsLockUnlock" !="currentInvites" !"DDOPP_pvSay" !"DDOPP_pvAnim" !"DDOPP_pvSpawn" !"DDOPP_pvChat" 5 "norrn" !="norrnRACarUp" !="norrnRAPicUp" !="norrnRaDrag" !="norrnR180" !="norrnRalie" !="norrnRLact" !="norrnRALW" !="norrnRDead" 5 "usec" !="usecMorphine" !="usecBandage" !="usecBleed" 5 "PVDZE_" !"PVDZE_account_Doublecheck" !"PVDZE_player" !="PVDZE_send" !="PVDZE_log_lockUnlock" !="PVDZE_Server_Simulation" !="PVDZE_veh_Update" !="PVDZE_plr_GutBody" !="PVDZE_plr_GutBodyZ" !="PVDZE_veh_Lock" !="PVDZE_plr_DeathB" !="PVDZE_maintainArea" !="PVDZE_obj_Publish" !="PVDZE_obj_Swap" !="PVDZE_plr_Save" !="PVDZE_obj_Delete" !="PVDZE_obj_Trade" !="PVDZE_veh_Publish2" !="PVDZE_zed_Spawn" !="PVDZE_plr_Died" !="PVDZE_plr_TradeMenu" !="PVDZE_veh_Upgrade" !="PVDZE_atp" !="PVDZE_plr_Login" !="PVDZE_plr_Login2" !="PVDZE_plr_LoginRecord" !="PVDZE_plr_DeathBResult" !="PVDZE_veh_SFix" !="PVDZE_plr_Hit" !="PVDZE_plr_HitV" !="PVDZE_veh_SFuel" !="PVDZE_plr_HideBody" !="PVDZE_plr_Morph" !="PVDZE_veh_Publish" !="PVDZE_plr_Characters" !="PVDZE_lockVault" !="PVDZE_obj_setlocalVars" !="PVDZE_obj_getlocalVars" !="PVDZE_bank_Save" 5 "PVAHR_" !"PVAHR_0_" !"PVAHR_0_dkwgqfknbauo" 5 "remExFP" !="\"remExFP\" = \[,,\"per\",\"execVM\",\"ca\\Modules\\Functions\\init.sqf\"\]" !"\[,,\"per\",\"execVM\",\"ca\\Modules\\Functions\\init.sqf\"\]" 5="player" 5="server" 5 "fnc_plyrHit" 5 "AntiHack" 1="PVAH_AdminReq" 1="PVAH_WriteLogReq" 1 "PVAHR_0_" 1 "Delete" Link to comment Share on other sites More sharing options...
calamity Posted November 11, 2014 Report Share Posted November 11, 2014 thankz for this. to use with deploy anything instead of extraRc edit overwrites\click_actions\config.sqf ["ItemBriefcase_Base","open briefcase","execVM 'addons\mbc\open_brief.sqf';","true"], for BE kick Value Restriction #99 "diagLogr" = "[BRIEF] Array created: [["group_mag","bulk_ItemSandbag",1,2,12],["magazine","PartPlywoodPack",15,2,7],["group_wep","M107_DZ",2,3,5],["magazine","PartPlankPack",15,2,7],["group_mag","FoodMRE",1,1,4],["group_mag","ItemSledgeHandle",1,2,12]]" edit publicvariableval.txt find 5 "createD" change to 1 "createD" or // 5 "createD" Rocu 1 Link to comment Share on other sites More sharing options...
zipper Posted November 11, 2014 Report Share Posted November 11, 2014 Hey Rocu, Thanks for the awesome addition. This might assist the infistar guys, i added the following to my AHconfig.sqf in the server.pbo Add this 81000 to _ALLOWED_Dialogs example: _ALLOWED_Dialogs = [-1,106,2200,6900,6901,6902,6903,...........,81000]; Hope this helps Rocu 1 Link to comment Share on other sites More sharing options...
Rocu Posted November 11, 2014 Author Report Share Posted November 11, 2014 I'm using infiSTAR. Getting kicked by Battleye constantly. Working my way through the filters though. Oh yes, that. I completely forgot about that. diagLogr is a completely separate script I use for debugging. It uses public variables and therefor players are being kicked. I accidentally left it in when I was last debugging it. Completely forgot. Updated the files & removed all debugging. You shouldn't get kicked anymore and you don't need to add diagLogr in publicvariable.txt. Link to comment Share on other sites More sharing options...
f3cuk Posted November 11, 2014 Report Share Posted November 11, 2014 Awesome mod! Also very nicely coded, thumbs up! Edit: Even better then expected! Our players will definitely love this! Rocu 1 Link to comment Share on other sites More sharing options...
Rocu Posted November 11, 2014 Author Report Share Posted November 11, 2014 Awesome mod! Also very nicely coded, thumbs up! Thank you for the kind words. Appreciate it. Edit// Zipper, I added your fix to the main post. Link to comment Share on other sites More sharing options...
zipper Posted November 11, 2014 Report Share Posted November 11, 2014 Thank you for the kind words. Appreciate it. Edit// Zipper, I added your fix to the main post. Awesome, glad to have been of an assistance. Link to comment Share on other sites More sharing options...
mimic Posted November 11, 2014 Report Share Posted November 11, 2014 Rocu, Thanks! That fixed it. Tested on my Chernarus server and worked like a charm. This is going to be a lot of fun for our players. Excellent idea! Link to comment Share on other sites More sharing options...
f3cuk Posted November 12, 2014 Report Share Posted November 12, 2014 Changed the config a little and added some more stuff (plus removed the gems). For anyone interested. /* Mystery Briefcase addon by Rocu Configuration file */ MBT_NAME = "EpochPacks"; //Name of the item that spawns the reward (this is just a visual thing, code won't break if you change this to something random) MBT_CRATEDELAY = 900; //How long until the reward crate disappears (in seconds) Default: 900 (15 minutes) MBT_DIALOG_TITLE = "EpochPack opening"; //Reward dialog title MBT_DIALOG_CLAIM = "Claim Your Reward"; //Claim reward button MBT_DIALOG_NOTE = "* After claiming your prize the reward crate will disappear in 15 minutes."; //Notation warning about the crate's delay /* REWARD CONFIGURATION Everything that has to do with the prize you get from the briefcase */ // Junk _junk_group = ["HandRoadFlare","TrashTinCan","FoodCanUnlabeled","HandChemBlue","HandChemRed","HandChemGreen","ItemBook3","ItemBook4","ItemSodaR4z0rEmpty","ItemSodaDrwasteEmpty","ItemSodaLemonadeEmpty","ItemSodaLvgEmpty","ItemSodaMzlyEmpty","ItemSodaRabbitEmpty","ItemSodaClaysEmpty","TrashJackDaniels","TrashTinCan","ItemLetter","ItemBook1","ItemBook2","ItemTrashRazor","FoodCanOrlokEmpty","FoodCanDemonEmpty","FoodCanTylersEmpty","FoodCanCornEmpty","FoodCanBoneboyEmpty","FoodCanBadguyEmpty","FoodCanGriffEmpty","FoodCanPowellEmpty","FoodCanHerpyEmpty","FoodCanUnlabeledEmpty","FoodCanCurgonEmpty","FoodCanFraggleosEmpty","ItemTrashToiletpaper"]; // Common _food_group = ["ItemWaterbottle","FoodNutmix","FoodPistachio","FoodMRE","ItemSodaOrangeSherbet","ItemSodaRbull","ItemSodaR4z0r","ItemSodaMdew","ItemSodaPepsi","ItemSodaCoke","FoodbaconCooked","FoodCanBakedBeans","FoodCanFrankBeans","FoodCanPasta","FoodCanSardines","FoodchickenCooked","FoodmuttonCooked","FoodrabbitCooked","ItemTroutCooked","ItemTunaCooked","ItemSeaBassCooked","FoodCanGriff","FoodCanTylers","FoodCanDemon","FoodCanPowell","FoodCanCorn","FoodCanOrlok","FoodCanHerpy","FoodCanBadguy","FoodCanBoneboy","FoodCanCurgon","FoodCanFraggleos","ItemSodaRabbit","ItemSodaMtngreenEmpty","ItemSodaSmashtEmpty","ItemSodaMtngreen","ItemSodaDrwaste","ItemSodaSmasht","ItemSodaClays","ItemSodaLemonade","ItemSodaLvg"]; _military_group = ["FlareWhite_M203","FlareGreen_M203","1Rnd_Smoke_M203","HandGrenade_west","HandGrenade_east","SmokeShell","SmokeShellRed","SmokeShellGreen","FoodMRE","Skin_Camo1_DZ","Skin_Rocket_DZ","Skin_Soldier1_DZ","Skin_Drake_Light_DZ"]; _medical_group = ["ItemAntibiotic","ItemBloodbag","ItemEpinephrine","ItemHeatPack","ItemMorphine","ItemBandage","FoodCanFrankBeans","FoodCanPasta"]; _vehicle_repair_group = ["PartEngine","PartFueltank","PartGeneric","PartGlass","PartVRotor","PartWheel"]; _common_group = ["ItemPlotDeed","ItemComboLock","ItemSledgeHead","ItemSledgeHandle","Skin_Sniper1_DZ","bulk_ItemSandbag"]; _assault_group = ["M16A4_ACG","Sa58V_RCO_EP1","SCAR_L_STD_Mk4CQT","M8_sharpshooter","M4A1_HWS_GL_camo","SCAR_L_STD_HOLO","M4A3_CCO_EP1","M4A1_AIM_SD_camo","M16A4","m8_carbine","BAF_L85A2_RIS_Holo","Sa58P_EP1","Sa58V_CCO_EP1","Sa58V_EP1","AKS_74_kobra","AKS_74_U","AKS_GOLD","AK_47_M","AK_74","FN_FAL","FN_FAL_ANPVS4","m8_compact","G36A_camo","G36C","m8_holo_sd","G36C_camo","G36K_camo","G36_C_SD_camo","M16A2","M16A2GL","M4A1","M4A1_Aim"]; _lmg_group = ["RPK_74","M249_EP1_DZ","M249_DZ","M240_DZ","m240_scoped_EP1_DZE","M249_m145_EP1_DZE","M60A4_EP1_DZE"]; _sniper_group = ["M14_EP1","SVD_CAMO","SVD","VSS_Vintorez","DMR_DZ","M40A3","M24","M24_des_EP1","SVD_des_EP1"]; _tools_group = ["ItemKeyKit","Binocular","Binocular_Vector","ItemCompass","ItemCrowbar","ItemEtool","ItemFishingPole","ItemFlashlightRed","ItemGPS","ItemHatchet_DZE","ItemKnife","ItemMachete","ItemMatchbox_DZE","ItemToolbox","NVGoggles"]; _chainbullets_group = ["2000Rnd_762x51_M134","200Rnd_762x51_M240","100Rnd_127x99_M2","150Rnd_127x107_DSHKM"]; // Rares _rares_group = ["ItemVault","ItemBriefcase100oz","ItemLockbox","30m_plot_kit"]; _rare_weapons_group = ["KSVK_DZE","MK_48_DZ","Pecheneg_DZ","M110_NVG_EP1","SCAR_H_LNG_Sniper_SD","M107_DZ","BAF_LRR_scoped"]; // Legendaries _legend_group = ["PipeBomb","ItemHotwireKit"]; _chainsaw_group = ["Chainsaw","ChainsawB","ChainsawG","ChainsawP","BAF_AS50_scoped"]; MBC_REWARDLIST = [ //Reward List format: //[type,item,quantity,raritylevel,rarity] // type - item type. Available options: // magazine - any type of magazine and most general items (briefcases, cinder blocks, ammunition, etc) // weapon - any type of weapon, note that toolbelt items are also considered weapons in Arma // group_mag - a group of magazines. This is an array of items from which only 1 will be randomly picked // group_wep - a group of weapons. An array of weapons from which only 1 will be randomly picked // coins - this is for Zupa's Single Currency script only. Only use it if you have that script. If you don't do not use coins as a type for reward // script - this is an experimental feature for more advanced users. I haven't tested it thoroughly so use it at your own risk. // It was meant to work as a power-up rather than having an item as a reward. If you use "script" as a type, you must type the script's full path to the "item" field // item - class name of item. If type is group, insert the group's variable. Example: 30m_plot_pole, ItemHotwireKit, _sniper_group, _junk_group // quantity - number of items, set it to 1 if you're using grouping. Example: 15 (in case item is ItemHotwireKit then it will give you 15 Hotwire Kits) // raritylevel - the level of rarity from 1 to 4 (1 = least rare, 4 = rarest), this is just visual for the UI // rarity - how likely this item will be picked in percentage (from 0 to 100) // Note: total sum of rarity must equal 100 // Bad luck (junk items with low possibility) ["group_mag",_junk_group,1,1,2] // Common ,["group_wep",_assault_group,1,2,6] ,["group_wep",_lmg_group,1,2,8] ,["group_wep",_sniper_group,1,2,6] ,["group_wep",_tools_group,1,2,6] ,["group_mag",_military_group,1,2,2] ,["group_mag",_medical_group,5,2,2] ,["group_mag",_vehicle_repair_group,2,2,2] ,["group_mag",_common_group,1,2,6] ,["group_mag",_chainbullets_group,5,2,4] ,["coins","Coins",2500,2,7] ,["coins","Coins",3000,2,6] ,["coins","Coins",5000,2,4] ,["magazine","ItemGoldBar10oz",3,2,5] ,["magazine","PartPlywoodPack",15,2,5] ,["magazine","PartPlankPack",15,2,5] // Rare ,["group_wep",_rare_weapons_group,1,3,3] ,["group_mag",_rares_group,1,3,3] ,["magazine","ItemGoldBar10oz",10,3,2] ,["coins","Coins",100000,3,2] ,["magazine","CinderBlocks",15,3,3] ,["magazine","PartPlywoodPack",30,3,2] ,["magazine","PartPlankPack",30,3,2] ,["magazine","ItemPole",30,3,2] // Legendary ,["group_wep",_chainsaw_group,1,4,1] ,["group_mag",_legend_group,1,4,1] ,["magazine","ItemBriefcase_Base",1,4,1] ,["coins","Coins",20000,4,1] ,["coins","Coins",50000,4,1] ]; One suggestion that would make this one even more epic is to add vehicles ( spawn it nearby and add key to the crate). You might want to checkout how Jossy did that with Wicked AI. Cheers! Link to comment Share on other sites More sharing options...
Rocu Posted November 12, 2014 Author Report Share Posted November 12, 2014 Changed the config a little and added some more stuff (plus removed the gems). For anyone interested. /* Mystery Briefcase addon by Rocu Configuration file */ MBT_NAME = "EpochPacks"; //Name of the item that spawns the reward (this is just a visual thing, code won't break if you change this to something random) MBT_CRATEDELAY = 900; //How long until the reward crate disappears (in seconds) Default: 900 (15 minutes) MBT_DIALOG_TITLE = "EpochPack opening"; //Reward dialog title MBT_DIALOG_CLAIM = "Claim Your Reward"; //Claim reward button MBT_DIALOG_NOTE = "* After claiming your prize the reward crate will disappear in 15 minutes."; //Notation warning about the crate's delay /* REWARD CONFIGURATION Everything that has to do with the prize you get from the briefcase */ // Junk _junk_group = ["HandRoadFlare","TrashTinCan","FoodCanUnlabeled","HandChemBlue","HandChemRed","HandChemGreen","ItemBook3","ItemBook4","ItemSodaR4z0rEmpty","ItemSodaDrwasteEmpty","ItemSodaLemonadeEmpty","ItemSodaLvgEmpty","ItemSodaMzlyEmpty","ItemSodaRabbitEmpty","ItemSodaClaysEmpty","TrashJackDaniels","TrashTinCan","ItemLetter","ItemBook1","ItemBook2","ItemTrashRazor","FoodCanOrlokEmpty","FoodCanDemonEmpty","FoodCanTylersEmpty","FoodCanCornEmpty","FoodCanBoneboyEmpty","FoodCanBadguyEmpty","FoodCanGriffEmpty","FoodCanPowellEmpty","FoodCanHerpyEmpty","FoodCanUnlabeledEmpty","FoodCanCurgonEmpty","FoodCanFraggleosEmpty","ItemTrashToiletpaper"]; // Common _food_group = ["ItemWaterbottle","FoodNutmix","FoodPistachio","FoodMRE","ItemSodaOrangeSherbet","ItemSodaRbull","ItemSodaR4z0r","ItemSodaMdew","ItemSodaPepsi","ItemSodaCoke","FoodbaconCooked","FoodCanBakedBeans","FoodCanFrankBeans","FoodCanPasta","FoodCanSardines","FoodchickenCooked","FoodmuttonCooked","FoodrabbitCooked","ItemTroutCooked","ItemTunaCooked","ItemSeaBassCooked","FoodCanGriff","FoodCanTylers","FoodCanDemon","FoodCanPowell","FoodCanCorn","FoodCanOrlok","FoodCanHerpy","FoodCanBadguy","FoodCanBoneboy","FoodCanCurgon","FoodCanFraggleos","ItemSodaRabbit","ItemSodaMtngreenEmpty","ItemSodaSmashtEmpty","ItemSodaMtngreen","ItemSodaDrwaste","ItemSodaSmasht","ItemSodaClays","ItemSodaLemonade","ItemSodaLvg"]; _military_group = ["FlareWhite_M203","FlareGreen_M203","1Rnd_Smoke_M203","HandGrenade_west","HandGrenade_east","SmokeShell","SmokeShellRed","SmokeShellGreen","FoodMRE","Skin_Camo1_DZ","Skin_Rocket_DZ","Skin_Soldier1_DZ","Skin_Drake_Light_DZ"]; _medical_group = ["ItemAntibiotic","ItemBloodbag","ItemEpinephrine","ItemHeatPack","ItemMorphine","ItemBandage","FoodCanFrankBeans","FoodCanPasta"]; _vehicle_repair_group = ["PartEngine","PartFueltank","PartGeneric","PartGlass","PartVRotor","PartWheel"]; _common_group = ["ItemPlotDeed","ItemComboLock","ItemSledgeHead","ItemSledgeHandle","Skin_Sniper1_DZ","bulk_ItemSandbag"]; _assault_group = ["M16A4_ACG","Sa58V_RCO_EP1","SCAR_L_STD_Mk4CQT","M8_sharpshooter","M4A1_HWS_GL_camo","SCAR_L_STD_HOLO","M4A3_CCO_EP1","M4A1_AIM_SD_camo","M16A4","m8_carbine","BAF_L85A2_RIS_Holo","Sa58P_EP1","Sa58V_CCO_EP1","Sa58V_EP1","AKS_74_kobra","AKS_74_U","AKS_GOLD","AK_47_M","AK_74","FN_FAL","FN_FAL_ANPVS4","m8_compact","G36A_camo","G36C","m8_holo_sd","G36C_camo","G36K_camo","G36_C_SD_camo","M16A2","M16A2GL","M4A1","M4A1_Aim"]; _lmg_group = ["RPK_74","M249_EP1_DZ","M249_DZ","M240_DZ","m240_scoped_EP1_DZE","M249_m145_EP1_DZE","M60A4_EP1_DZE"]; _sniper_group = ["M14_EP1","SVD_CAMO","SVD","VSS_Vintorez","DMR_DZ","M40A3","M24","M24_des_EP1","SVD_des_EP1"]; _tools_group = ["ItemKeyKit","Binocular","Binocular_Vector","ItemCompass","ItemCrowbar","ItemEtool","ItemFishingPole","ItemFlashlightRed","ItemGPS","ItemHatchet_DZE","ItemKnife","ItemMachete","ItemMatchbox_DZE","ItemToolbox","NVGoggles"]; _chainbullets_group = ["2000Rnd_762x51_M134","200Rnd_762x51_M240","100Rnd_127x99_M2","150Rnd_127x107_DSHKM"]; // Rares _rares_group = ["ItemVault","ItemBriefcase100oz","ItemLockbox","30m_plot_kit"]; _rare_weapons_group = ["KSVK_DZE","MK_48_DZ","Pecheneg_DZ","M110_NVG_EP1","SCAR_H_LNG_Sniper_SD","M107_DZ","BAF_LRR_scoped"]; // Legendaries _legend_group = ["PipeBomb","ItemHotwireKit"]; _chainsaw_group = ["Chainsaw","ChainsawB","ChainsawG","ChainsawP","BAF_AS50_scoped"]; MBC_REWARDLIST = [ //Reward List format: //[type,item,quantity,raritylevel,rarity] // type - item type. Available options: // magazine - any type of magazine and most general items (briefcases, cinder blocks, ammunition, etc) // weapon - any type of weapon, note that toolbelt items are also considered weapons in Arma // group_mag - a group of magazines. This is an array of items from which only 1 will be randomly picked // group_wep - a group of weapons. An array of weapons from which only 1 will be randomly picked // coins - this is for Zupa's Single Currency script only. Only use it if you have that script. If you don't do not use coins as a type for reward // script - this is an experimental feature for more advanced users. I haven't tested it thoroughly so use it at your own risk. // It was meant to work as a power-up rather than having an item as a reward. If you use "script" as a type, you must type the script's full path to the "item" field // item - class name of item. If type is group, insert the group's variable. Example: 30m_plot_pole, ItemHotwireKit, _sniper_group, _junk_group // quantity - number of items, set it to 1 if you're using grouping. Example: 15 (in case item is ItemHotwireKit then it will give you 15 Hotwire Kits) // raritylevel - the level of rarity from 1 to 4 (1 = least rare, 4 = rarest), this is just visual for the UI // rarity - how likely this item will be picked in percentage (from 0 to 100) // Note: total sum of rarity must equal 100 // Bad luck (junk items with low possibility) ["group_mag",_junk_group,1,1,2] // Common ,["group_wep",_assault_group,1,2,6] ,["group_wep",_lmg_group,1,2,8] ,["group_wep",_sniper_group,1,2,6] ,["group_wep",_tools_group,1,2,6] ,["group_mag",_military_group,1,2,2] ,["group_mag",_medical_group,5,2,2] ,["group_mag",_vehicle_repair_group,2,2,2] ,["group_mag",_common_group,1,2,6] ,["group_mag",_chainbullets_group,5,2,4] ,["coins","Coins",2500,2,7] ,["coins","Coins",3000,2,6] ,["coins","Coins",5000,2,4] ,["magazine","ItemGoldBar10oz",3,2,5] ,["magazine","PartPlywoodPack",15,2,5] ,["magazine","PartPlankPack",15,2,5] // Rare ,["group_wep",_rare_weapons_group,1,3,3] ,["group_mag",_rares_group,1,3,3] ,["magazine","ItemGoldBar10oz",10,3,2] ,["coins","Coins",100000,3,2] ,["magazine","CinderBlocks",15,3,3] ,["magazine","PartPlywoodPack",30,3,2] ,["magazine","PartPlankPack",30,3,2] ,["magazine","ItemPole",30,3,2] // Legendary ,["group_wep",_chainsaw_group,1,4,1] ,["group_mag",_legend_group,1,4,1] ,["magazine","ItemBriefcase_Base",1,4,1] ,["coins","Coins",20000,4,1] ,["coins","Coins",50000,4,1] ]; One suggestion that would make this one even more epic is to add vehicles ( spawn it nearby and add key to the crate). You might want to checkout how Jossy did that with Wicked AI. Cheers! Thanks for improving the list. You're right about gems. By default they're not really worth anything. I added this keeping in mind my own server where they're quite rare and worth a lot. Although I noticed a little error in your conf. You've inserted 100000 coins under Rares even though under Legendaries you have no more than 50000. Probably a typo just one 0 too many. I actually thought about adding vehicles but I figured I'd release the initial version first and see if any major issues surface. I think I'll be adding vehicles soon when I have more free time. Link to comment Share on other sites More sharing options...
f3cuk Posted November 12, 2014 Report Share Posted November 12, 2014 Yep noticed that. Did some more work on the config and added the group_tool option. /* Mystery Briefcase addon by Rocu Configuration file */ MBT_NAME = "EpochPacks"; //Name of the item that spawns the reward (this is just a visual thing, code won't break if you change this to something random) MBT_CRATEDELAY = 900; //How long until the reward crate disappears (in seconds) Default: 900 (15 minutes) MBT_DIALOG_TITLE = "EpochPack opening"; //Reward dialog title MBT_DIALOG_CLAIM = "Claim Your Reward"; //Claim reward button MBT_DIALOG_NOTE = "* After claiming your prize the reward crate will disappear in 15 minutes."; //Notation warning about the crate's delay /* REWARD CONFIGURATION Everything that has to do with the prize you get from the briefcase */ // Junk _junk_group = ["HandRoadFlare","TrashTinCan","FoodCanUnlabeled","HandChemBlue","HandChemRed","HandChemGreen","ItemBook3","ItemBook4","ItemSodaR4z0rEmpty","ItemSodaDrwasteEmpty","ItemSodaLemonadeEmpty","ItemSodaLvgEmpty","ItemSodaMzlyEmpty","ItemSodaRabbitEmpty","ItemSodaClaysEmpty","TrashJackDaniels","TrashTinCan","ItemLetter","ItemBook1","ItemBook2","ItemTrashRazor","FoodCanOrlokEmpty","FoodCanDemonEmpty","FoodCanTylersEmpty","FoodCanCornEmpty","FoodCanBoneboyEmpty","FoodCanBadguyEmpty","FoodCanGriffEmpty","FoodCanPowellEmpty","FoodCanHerpyEmpty","FoodCanUnlabeledEmpty","FoodCanCurgonEmpty","FoodCanFraggleosEmpty","ItemTrashToiletpaper"]; // Common _food_group = ["ItemWaterbottle","FoodNutmix","FoodPistachio","FoodMRE","ItemSodaOrangeSherbet","ItemSodaRbull","ItemSodaR4z0r","ItemSodaMdew","ItemSodaPepsi","ItemSodaCoke","FoodbaconCooked","FoodCanBakedBeans","FoodCanFrankBeans","FoodCanPasta","FoodCanSardines","FoodchickenCooked","FoodmuttonCooked","FoodrabbitCooked","ItemTroutCooked","ItemTunaCooked","ItemSeaBassCooked","FoodCanGriff","FoodCanTylers","FoodCanDemon","FoodCanPowell","FoodCanCorn","FoodCanOrlok","FoodCanHerpy","FoodCanBadguy","FoodCanBoneboy","FoodCanCurgon","FoodCanFraggleos","ItemSodaRabbit","ItemSodaMtngreenEmpty","ItemSodaSmashtEmpty","ItemSodaMtngreen","ItemSodaDrwaste","ItemSodaSmasht","ItemSodaClays","ItemSodaLemonade","ItemSodaLvg"]; _military_group = ["FlareWhite_M203","FlareGreen_M203","1Rnd_Smoke_M203","HandGrenade_west","HandGrenade_east","SmokeShell","SmokeShellRed","SmokeShellGreen","FoodMRE","Skin_Camo1_DZ","Skin_Rocket_DZ","Skin_Soldier1_DZ","Skin_Drake_Light_DZ"]; _medical_group = ["ItemAntibiotic","ItemBloodbag","ItemEpinephrine","ItemHeatPack","ItemMorphine","ItemBandage"]; _vehicle_repair_group = ["PartEngine","PartFueltank","PartGeneric","PartGlass","PartVRotor","PartWheel"]; _common_group = ["ItemPlotDeed","ItemComboLock","ItemSledgeHead","ItemSledgeHandle","Skin_Sniper1_DZ","bulk_ItemSandbag"]; _assault_group = ["M16A4_ACG","Sa58V_RCO_EP1","SCAR_L_STD_Mk4CQT","M8_sharpshooter","M4A1_HWS_GL_camo","SCAR_L_STD_HOLO","M4A3_CCO_EP1","M4A1_AIM_SD_camo","M16A4","m8_carbine","BAF_L85A2_RIS_Holo","Sa58P_EP1","Sa58V_CCO_EP1","Sa58V_EP1","AKS_74_kobra","AKS_74_U","AKS_GOLD","AK_47_M","AK_74","FN_FAL","FN_FAL_ANPVS4","m8_compact","G36A_camo","G36C","m8_holo_sd","G36C_camo","G36K_camo","G36_C_SD_camo","M16A2","M16A2GL","M4A1","M4A1_Aim"]; _lmg_group = ["RPK_74","M249_EP1_DZ","M249_DZ","M240_DZ","m240_scoped_EP1_DZE","M249_m145_EP1_DZE","M60A4_EP1_DZE"]; _sniper_group = ["M14_EP1","SVD_CAMO","SVD","VSS_Vintorez","DMR_DZ","M40A3","M24","M24_des_EP1","SVD_des_EP1"]; _tools_group = ["ItemKeyKit","Binocular","Binocular_Vector","ItemCompass","ItemCrowbar","ItemEtool","ItemFishingPole","ItemFlashlightRed","ItemGPS","ItemHatchet_DZE","ItemKnife","ItemMachete","ItemMatchbox_DZE","ItemToolbox","NVGoggles"]; _chainbullets_group = ["2000Rnd_762x51_M134","200Rnd_762x51_M240","100Rnd_127x99_M2","150Rnd_127x107_DSHKM"]; // Rares _rares_group = ["ItemVault","ItemBriefcase100oz","ItemLockbox","30m_plot_kit"]; _rare_weapons_group = ["KSVK_DZE","MK_48_DZ","Pecheneg_DZ","M110_NVG_EP1","SCAR_H_LNG_Sniper_SD","M107_DZ","BAF_LRR_scoped"]; // Legendaries _legend_group = ["PipeBomb","ItemHotwireKit"]; _chainsaw_group = ["Chainsaw","ChainsawB","ChainsawG","ChainsawP","BAF_AS50_scoped"]; MBC_REWARDLIST = [ //Reward List format: //[type,item,quantity,raritylevel,rarity] // type - item type. Available options: // magazine - any type of magazine and most general items (briefcases, cinder blocks, ammunition, etc) // weapon - any type of weapon, note that toolbelt items are also considered weapons in Arma // group_mag - a group of magazines. This is an array of items from which only 1 will be randomly picked // group_wep - a group of weapons. An array of weapons from which only 1 will be randomly picked // group_tool - a group of tools. An array of tools from which only 1 will be randomly picked // coins - this is for Zupa's Single Currency script only. Only use it if you have that script. If you don't do not use coins as a type for reward // script - this is an experimental feature for more advanced users. I haven't tested it thoroughly so use it at your own risk. // It was meant to work as a power-up rather than having an item as a reward. If you use "script" as a type, you must type the script's full path to the "item" field // item - class name of item. If type is group, insert the group's variable. Example: 30m_plot_pole, ItemHotwireKit, _sniper_group, _junk_group // quantity - number of items, set it to 1 if you're using grouping. Example: 15 (in case item is ItemHotwireKit then it will give you 15 Hotwire Kits) // raritylevel - the level of rarity from 1 to 4 (1 = least rare, 4 = rarest), this is just visual for the UI // rarity - how likely this item will be picked in percentage (from 0 to 100) // Note: total sum of rarity must equal 100 // Bad luck (junk items with low possibility) ["group_mag",_junk_group,1,1,2] // Common ,["group_wep",_assault_group,1,2,6] ,["group_wep",_lmg_group,1,2,8] ,["group_wep",_sniper_group,1,2,6] ,["group_mag",_military_group,1,2,2] ,["group_mag",_medical_group,5,2,2] ,["group_mag",_vehicle_repair_group,2,2,2] ,["group_mag",_common_group,1,2,6] ,["group_mag",_chainbullets_group,5,2,4] ,["group_tool",_tools_group,1,2,6] ,["coins","Coins",2500,2,7] ,["coins","Coins",3000,2,6] ,["coins","Coins",5000,2,4] ,["magazine","ItemGoldBar10oz",3,2,5] ,["magazine","PartPlywoodPack",15,2,5] ,["magazine","PartPlankPack",15,2,5] // Rare ,["group_wep",_rare_weapons_group,1,3,3] ,["group_mag",_rares_group,1,3,3] ,["magazine","ItemGoldBar10oz",6,3,2] ,["coins","Coins",10000,3,2] ,["magazine","CinderBlocks",15,3,3] ,["magazine","PartPlywoodPack",30,3,2] ,["magazine","PartPlankPack",30,3,2] ,["magazine","ItemPole",30,3,2] // Legendary ,["group_wep",_chainsaw_group,1,4,1] ,["group_mag",_legend_group,1,4,1] ,["magazine","ItemBriefcase_Base",1,4,1] ,["coins","Coins",20000,4,1] ,["coins","Coins",50000,4,1] ]; Updated open_brief.sqf disableSerialization; private ["_item","_spawnCrate","_crateName","_pos","_crateClass","_dir","_selectDelay","_inVehicle"]; (findDisplay 106) closedisplay 0; closeDialog 0; _inVehicle = (vehicle player) != player; if(_inVehicle) exitWith { cutText [format["You cannot open %1 in a vehicle.", MBT_NAME] , "PLAIN DOWN"]; }; player playActionNow "Medic"; r_interrupt = false; _animState = animationState player; r_doLoop = true; _started = false; _finished = false; _briefSoundPlay = false; _briefSoundCount = 0; while {r_doLoop} do { _animState = animationState player; _isMedic = ["medic",_animState] call fnc_inString; _briefSoundCount = _briefSoundCount + 1; if (_briefSoundCount > 10 && !_briefSoundPlay) then { //Just to delay the sound a bit [objNull, player, rSAY, "Brief_Open_Sound", 30] call RE; _briefSoundPlay = true; }; if (_isMedic) then { _started = true; }; if (_started and !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt) then { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if (!_finished) exitWith { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; cutText [format["Opening %1 cancelled.",MBT_NAME] , "PLAIN DOWN"]; }; if (_finished) then { private ["_dialog","_cashToAdd","_canContinue"]; mbc_rewardlist_temp = []; _canContinue = false; _item = "ItemBriefcase_Base"; if (_item in magazines player) then { player removeMagazine _item; _canContinue = true; }; if (!_canContinue) exitWith { //Anti-duping cutText [format["Opening %1 failed.", MBT_NAME] , "PLAIN DOWN"]; }; _crateClass = "USOrdnanceBox"; _dir = getdir player; _pos = getposATL player; _pos = [(_pos select 0)+1*sin(_dir),(_pos select 1)+1*cos(_dir), (_pos select 2)]; _spawnCrate = _crateClass createVehicleLocal _pos; _spawnCrate setDir _dir; _spawnCrate setposATL _pos; clearWeaponCargoGlobal _spawnCrate; clearMagazineCargoGlobal _spawnCrate; clearBackpackCargoGlobal _spawnCrate; _lootRandomizer = []; //Let's crate an array to randomize loot depending on rarity { private ["_forEachTempIndexNo"]; _forEachTempIndexNo = _forEachIndex; for "_i" from 1 to (_x select 4) do { _lootRandomizer set [count _lootRandomizer, _forEachTempIndexNo]; }; } forEach MBC_REWARDLIST; Sleep 0.2; for "_i" from 1 to 6 do { private ["_loot","_lootIndex","_lootType"]; _loot = []; _lootIndex = _lootRandomizer call BIS_fnc_selectRandom; _loot = + MBC_REWARDLIST; _loot = _loot select _lootIndex; _lootType = _loot select 0; //Let's pick the random items out of groups right away, so we can properly display it on the UI switch (_lootType) do { case "group_wep": { Sleep 0.2; _groupingArray = _loot select 1; _weapon = _groupingArray call BIS_fnc_selectRandom; _loot set [1, _weapon]; // Random weapon _loot set [2, (1 + floor(random 4))]; // Random amount of mags }; case "group_tool": { Sleep 0.2; _groupingArray = _loot select 1; _tool = _groupingArray call BIS_fnc_selectRandom; _loot set [1, _tool]; // Random tool }; case "group_mag": { Sleep 0.2; _mag = (_loot select 1) call BIS_fnc_selectRandom; _loot set [1, _mag]; // Random item }; }; mbc_rewardlist_temp set [count mbc_rewardlist_temp, _loot]; _loot = []; }; UpdateMBCDialog = { { private ["_pic","_text","_itemName","_qty","_addInfo"]; ctrlSetText [81401, MBT_DIALOG_TITLE]; ctrlSetText [81402, MBT_DIALOG_CLAIM]; ctrlSetText [81403, MBT_DIALOG_NOTE]; _addInfo = ""; switch (_x select 0) do { case "group_wep": { _pic = getText (configFile >> 'CfgWeapons' >> _x select 1 >> 'picture'); _itemName = getText (configFile >> 'CfgWeapons' >> _x select 1 >> 'displayName'); _qty = _x select 2; _text = format["%1\n+%2 magazines", _itemName, _qty]; }; case "group_tool": { _pic = getText (configFile >> 'CfgWeapons' >> _x select 1 >> 'picture'); _itemName = getText (configFile >> 'CfgWeapons' >> _x select 1 >> 'displayName'); _text = format["%1", _itemName]; }; case "group_mag": { _pic = getText (configFile >> 'CfgMagazines' >> _x select 1 >> 'picture'); _itemName = getText (configFile >> 'CfgMagazines' >> _x select 1 >> 'displayName'); _qty = _x select 2; if (_qty > 1) then { _addInfo = format["\nx %1",_qty]; }; _text = format["%1%2", _itemName, _addInfo]; }; case "coins": { _pic = getText (configFile >> 'CfgWeapons' >> 'EvMoney' >> 'picture'); _qty = _x select 2; _text = format["%1 %2", _qty call BIS_fnc_numberText, _x select 1]; }; case "weapon": { _pic = getText (configFile >> 'CfgWeapons' >> _x select 1 >> 'picture'); _itemName = getText (configFile >> 'CfgWeapons' >> _x select 1 >> 'displayName'); _qty = _x select 2; if (_qty > 1) then { _addInfo = format["\nx %1",_qty]; }; _text = format["%1%2", _itemName, _addInfo]; }; case "magazine": { _pic = getText (configFile >> 'CfgMagazines' >> _x select 1 >> 'picture'); _itemName = getText (configFile >> 'CfgMagazines' >> _x select 1 >> 'displayName'); _qty = _x select 2; if((_x select 1) == "ItemBriefcase_Base") then { _itemName = MBT_NAME; }; if (_qty > 1) then { _addInfo = format["\nx %1",_qty]; }; _text = format["%1%2", _itemName, _addInfo]; }; case "script": { _pic = ""; _text = _x select 1; }; }; ctrlSetText [81201 + _forEachIndex, _pic]; ctrlSetText [81301 + _forEachIndex, _text]; _display = findDisplay 81000; _frame_ctrl = _display displayCtrl 81101 + _forEachIndex; _text_ctrl = _display displayCtrl 81301 + _forEachIndex; switch (_x select 3) do { case 1: { _frame_ctrl ctrlSetTextColor [0.6,0.6,0.6,0.5]; _text_ctrl ctrlSetTextColor [0.6,0.6,0.6,0.5]; }; case 2: { _frame_ctrl ctrlSetTextColor [1,1,1,0.5]; _text_ctrl ctrlSetTextColor [1,1,1,0.5]; }; case 3: { _frame_ctrl ctrlSetTextColor [0.93,0.79,0,0.9]; _text_ctrl ctrlSetTextColor [0.93,0.79,0,0.9]; }; case 4: { _frame_ctrl ctrlSetTextColor [0.83,0.29,0.41,1]; _text_ctrl ctrlSetTextColor [0.83,0.29,0.41,1]; }; }; } forEach mbc_rewardlist_temp; }; Sleep 0.2; _dialog = createdialog "MBC_DIALOG"; call UpdateMBCDialog; waitUntil { !dialog }; cutText [format["You have opened a %1",MBT_NAME],"PLAIN DOWN"]; Sleep 0.2; _cashToAdd = 0; { private["_magazines","_magazineClass","_currentMoney"]; switch (_x select 0) do { case "group_wep": { _spawnCrate addWeaponCargoGlobal [_x select 1, 1]; _magazines = getArray (configFile >> "CfgWeapons" >> _x select 1 >> "magazines"); if (count _magazines > 0) then { _magazineClass = _magazines select 0; _spawnCrate addMagazineCargoGlobal [_magazineClass, _x select 2]; } }; case "group_tool": { _spawnCrate addWeaponCargoGlobal [_x select 1, 1]; }; case "group_mag": { _spawnCrate addMagazineCargoGlobal [_x select 1, _x select 2]; }; case "coins": { _cashToAdd = _cashToAdd + (_x select 2); }; case "weapon": { _spawnCrate addWeaponCargoGlobal [_x select 1, _x select 2]; }; case "magazine": { _spawnCrate addMagazineCargoGlobal [_x select 1, _x select 2]; }; case "script": { [_x select 2] execVM _x select 1; }; }; Sleep 0.1; } forEach mbc_rewardlist_temp; if (_cashToAdd > 0) then { _currentMoney = player getVariable["cashMoney",0]; player setVariable["cashMoney",_currentMoney + _cashToAdd, true]; }; PVDZE_plr_Save = [player,(magazines player),true,true] ; publicVariableServer "PVDZE_plr_Save"; sleep MBT_CRATEDELAY; deletevehicle _spawnCrate; }; Furthermore i've changed the player_traderMenuHive.sqf to show the name of the item properly in the trader menu. Find _index = lbAdd [TraderDialogItemList, format["%1 (%2)", _textPart, _name]]; Replace with if(_name == "ItemBriefcase_Base") then { _index = lbAdd [TraderDialogItemList, MBT_NAME]; } else { _index = lbAdd [TraderDialogItemList, format["%1 (%2)", _textPart, _name]]; }; Link to comment Share on other sites More sharing options...
Rocu Posted November 12, 2014 Author Report Share Posted November 12, 2014 Yep noticed that. Did some more work on the config and added the group_tool option. This is great. Though I never added the tools part because tools are considered as weapons in the game. You should be able to make a tools group with "group_wep". Only difference is that group_wep also generate mags. But it does so only if mags actually exist, so tools should still work fine. But I actually just noticed a little visual error regarding this. I'll update the main branch later today with improved loot tables and the visual fix. As for the player_traderMenuHive part thanks for including that part in as well. I had this in the example video but never included it as part of the release. Thought it'd just make things more complicated for the less-experienced if you don't have a custom player_traderMenuHive. Link to comment Share on other sites More sharing options...
f3cuk Posted November 12, 2014 Report Share Posted November 12, 2014 Jep did it as a group_wep at first, but it actually finds ammo for some tools (e.g. hatchet), so that showed a little ugly. Couldn't have that in an otherwise perfect GUI :) -- Since there are also _Base classes for silver and copper briefcases, how about adding those aswell? You could use them to make themed packs or silver / bronze packs with less slots. Link to comment Share on other sites More sharing options...
fr1nk Posted November 12, 2014 Report Share Posted November 12, 2014 Great idea. ItemBriefcase_Base - is this the same classname used for Epoch currency when combining bars? Link to comment Share on other sites More sharing options...
CordIAsis Posted November 12, 2014 Report Share Posted November 12, 2014 I beleive an empty case is called 'ItemBriefcase'. Link to comment Share on other sites More sharing options...
fr1nk Posted November 12, 2014 Report Share Posted November 12, 2014 Cool...couldn't remember, it's been a while since I looked at that. Link to comment Share on other sites More sharing options...
ddmankiller Posted November 12, 2014 Report Share Posted November 12, 2014 Looks neat, gonna go ahead and add this Link to comment Share on other sites More sharing options...
Uncle Bad Touch Posted November 12, 2014 Report Share Posted November 12, 2014 I have seen the random weapon case scripts but I actually really like this. Very good job.-Uncle Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now