raymix Posted May 3, 2014 Report Share Posted May 3, 2014 (edited) Project has been discontinued If you still want this mod, it will (and should) work with any beta or Epoch release, however I highly suggest using Very simple script that lets you right click ItemEmerald and spawn various interior items, using Epoch building system. I will assume you know your way around with scripts and have custom extra_rc, fn_selfActions.sqf and variables.sqf in your mission file, if not, ask below. Credits: Rocket DayZ Epoch Team for player_build.sqf Maca for extra_rc PetuniaEpoch for modified Rythron FIX for playerID tied to plotpole script, replace your http://epochmod.com/forum/index.php?/topic/10665-release-emerald-interior-designer/?p=77638 with his. UPDATE LOG v1.1.1: *Increased distance of objects to prevent people from dying, please refer to _offset in spawn.sqf *Fixed issue with object height distance while using ALT+PgUP/PgDown UPDATE LOG v1.1: *Added huge list of external objects *Added Toggle-able plotpole requirement for spawn *Added Ability to remove items *Can't spawn or remove items if not owner or tagged friendly of nearby plotpole Download files: https://dl.dropboxusercontent.com/u/14423790/interiorV1.1.1.rar Or add yourself: custom\extra_rc.hpp (Updated V1.1): class ExtraRc { class ItemEmerald { class PicFrame { text = "Picture Frame"; script = "createDialog ""WGT_INTERIOR1"";"; }; class Chairs { text = "Chair"; script = "createDialog ""WGT_INTERIOR2"";"; }; class Beds { text = "Bed"; script = "createDialog ""WGT_INTERIOR3"";"; }; class Bath { text = "Bathroom"; script = "createDialog ""WGT_INTERIOR4"";"; }; class Shelf { text = "Shelf"; script = "createDialog ""WGT_INTERIOR5"";"; }; class Misce { text = "Misc"; script = "createDialog ""WGT_INTERIOR6"";"; }; class Tablz { text = "Table"; script = "createDialog ""WGT_INTERIOR7"";"; }; class extr { text = "Exterior"; script = "createDialog ""WGT_INTERIOR8"";"; }; }; }; custom\variables.sqf (Updated V1.1): Find dayz_allowedObjects = ["TentStorage"........ Change to: dayz_allowedObjects = [ "MAP_picture_a", "MAP_picture_a_02", "MAP_picture_a_03", "MAP_picture_a_04", "MAP_picture_a_05", "MAP_picture_b", "MAP_picture_b_02", "MAP_picture_c", "MAP_picture_c_02", "MAP_picture_d", "MAP_picture_e", "MAP_picture_f", "MAP_picture_f_02", "MAP_picture_g", "MAP_wall_board", "MAP_wall_board_02", "MAP_wall_board_03", "MAP_F_ch_mod_c", "MAP_ch_mod_h", "MAP_armchair", "MAP_ch_mod_h", "MAP_ch_office_B", "MAP_chair", "MAP_Church_chair", "MAP_hospital_bench", "MAP_kitchen_chair_a", "MAP_lavicka_1", "MAP_lavicka_2", "MAP_lavicka_3", "MAP_lavicka_4", "MAP_lobby_chair", "MAP_office_chair", "MAP_F_postel_manz_kov", "MAP_F_postel_panelak1", "MAP_F_postel_panelak2", "MAP_F_Vojenska_palanda", "MAP_postel_manz_kov", "MAP_postel_panelak1", "MAP_vojenska_palanda", "MAP_fridge", "MAP_Kitchenstove_Elec", "MAP_washing_machine", "MAP_P_Basin_A", "MAP_P_bath", "MAP_F_bath", "MAP_lekarnicka", "MAP_P_sink", "MAP_toilet_b", "MAP_P_toilet_b_02", "MAP_almara", "MAP_case_a", "MAP_case_bedroom_a", "MAP_case_bedroom_b", "MAP_case_cans_b", "MAP_case_d", "MAP_case_wall_unit_part_c", "MAP_case_wall_unit_part_d", "MAP_case_wooden_b", "MAP_Dhangar_borwnskrin", "MAP_Dhangar_brownskrin", "MAP_Dhangar_knihovna", "MAP_library_a", "MAP_shelf", "MAP_Skrin_bar", "MAP_Skrin_opalena", "MAP_Truhla_stara", "MAP_briefcase", "MAP_Dkamna_bila", "MAP_Dkamna_uhli", "MAP_F_Dkamna_uhli", "MAP_icebox", "MAP_mutt_vysilacka", "MAP_notebook", "MAP_pc", "MAP_phonebox", "MAP_radio", "MAP_radio_b", "MAP_satelitePhone", "MAP_smallTV", "MAP_tv_a", "MAP_vending_machine", "MAP_lantern", "MAP_bucket", "MAP_MetalBucket", "MAP_FuelCan", "MAP_SmallObj_money", "MAP_conference_table_a", "MAP_desk", "MAP_Dhangar_psacistul", "MAP_F_conference_table_a", "MAP_kitchen_table_a", "MAP_lobby_table", "MAP_office_table_a", "MAP_pultskasou", "MAP_SmallTable", "MAP_stul_hospoda", "MAP_stul_kuch1", "MAP_Table", "MAP_table_drawer", "MAP_kasna_new", "MAP_Misc_Boogieman", "MAP_ChickenCoop", "MAP_Misc_Greenhouse", "MAP_Misc_Hutch", "MAP_Misc_Well", "MAP_Misc_WellPump", "MAP_PowerGenerator", "MAP_psi_bouda", "MAP_pumpa", "MAP_stanek_3", "MAP_stanek_3_d", "MAP_stanek_3B", "MAP_AirCond_big", "MAP_AirCond_small", "MAP_antenna_big_roof", "MAP_antenna_small_roof", "MAP_antenna_small_roof_1", "MAP_drapes", "MAP_drapes_long", "MAP_GasMeterExt", "MAP_Ladder", "MAP_P_Ladder", "MAP_LadderHalf", "MAP_P_LadderLong", "MAP_leseni2x", "MAP_leseni4x", "MAP_Misc_loudspeakers", "MAP_parabola_big", "MAP_P_Stavebni_kozy", "MAP_Heli_H_civil", "MAP_Heli_H_army", "MAP_Heli_H_cross", "MAP_Heli_H_rescue", "MAP_Sr_border", "MAP_drevo_hromada", "MAP_garbage_misc", "MAP_garbage_paleta", "MAP_Ind_BoardsPack1", "MAP_Ind_BoardsPack2", "MAP_Ind_Timbers", "MAP_Kontejner", "MAP_Misc_GContainer_Big", "MAP_Misc_HayStack", "MAP_Misc_TyreHeap", "MAP_Misc_WoodPile", "MAP_pneu", "MAP_popelnice", "MAP_sekyraspalek", "MAP_seno_balik", "MAP_concrete_block", "MAP_Concrete_Ramp", "MAP_ramp_concrete", "MAP_woodenRamp", "MAP_brana", "MAP_Houpacka", "MAP_nastenkaX", "MAP_Piskoviste", "MAP_snowman", "MAP_Barel1", "MAP_Barel3", "MAP_Barel4", "MAP_Barel5", "MAP_Barel6", "MAP_Barel7", "MAP_Barel8", "MAP_Barels", "MAP_Barels2", "MAP_Barels3", "MAP_barrel_empty", "MAP_barrel_sand", "MAP_barrel_water", "MAP_P_bedna", "MAP_box_c", "MAP_P_cihly1", "MAP_P_cihly2", "MAP_P_cihly3", "MAP_P_cihly4", "MAP_metalcrate", "MAP_metalcrate_02", "Misc_concrete", "MAP_Misc_G_Pipes", "MAP_Misc_palletsfoiled", "MAP_Misc_palletsfoiled_heap", "MAP_obstacle_get_over", "MAP_obstacle_prone", "MAP_obstacle_run_duck", "MAP_paletaA", "MAP_paletyC", "MAP_paletyD", "MAP_Pallets_Column", "MAP_P_pipe_big", "MAP_P_pipe_small", "MAP_P_ytong", "TentStorage", .......................... description.ext: #include "interior\defines.hpp" #include "interior\dialogs.hpp" interior\defines.hpp: // Control types #define CT_STATIC 0 #define CT_BUTTON 1 #define CT_EDIT 2 #define CT_SLIDER 3 #define CT_COMBO 4 #define CT_LISTBOX 5 #define CT_TOOLBOX 6 #define CT_CHECKBOXES 7 #define CT_PROGRESS 8 #define CT_HTML 9 #define CT_STATIC_SKEW 10 #define CT_ACTIVETEXT 11 #define CT_TREE 12 #define CT_STRUCTURED_TEXT 13 #define CT_CONTEXT_MENU 14 #define CT_CONTROLS_GROUP 15 #define CT_SHORTCUTBUTTON 16 #define CT_BOX 17 #define CT_XKEYDESC 40 #define CT_XBUTTON 41 #define CT_XLISTBOX 42 #define CT_XSLIDER 43 #define CT_XCOMBO 44 #define CT_ANIMATED_TEXTURE 45 #define CT_OBJECT 80 #define CT_OBJECT_ZOOM 81 #define CT_OBJECT_CONTAINER 82 #define CT_OBJECT_CONT_ANIM 83 #define CT_LINEBREAK 98 #define CT_USER 99 #define CT_MAP 100 #define CT_MAP_MAIN 101 #define CT_LISTNBOX 102 // Static styles #define ST_POS 0x0F #define ST_HPOS 0x03 #define ST_VPOS 0x0C #define ST_LEFT 0x00 #define ST_RIGHT 0x01 #define ST_CENTER 0x02 #define ST_DOWN 0x04 #define ST_UP 0x08 #define ST_VCENTER 0x0C #define ST_GROUP_BOX 96 #define ST_GROUP_BOX2 112 #define ST_ROUNDED_CORNER ST_GROUP_BOX + ST_CENTER #define ST_ROUNDED_CORNER2 ST_GROUP_BOX2 + ST_CENTER #define ST_TYPE 0xF0 #define ST_SINGLE 0x00 #define ST_MULTI 0x10 #define ST_TITLE_BAR 0x20 #define ST_PICTURE 0x30 #define ST_FRAME 0x40 #define ST_BACKGROUND 0x50 #define ST_GROUP_BOX 0x60 #define ST_GROUP_BOX2 0x70 #define ST_HUD_BACKGROUND 0x80 #define ST_TILE_PICTURE 0x90 #define ST_WITH_RECT 0xA0 #define ST_LINE 0xB0 #define ST_SHADOW 0x100 #define ST_NO_RECT 0x200 #define ST_KEEP_ASPECT_RATIO 0x800 #define ST_TITLE ST_TITLE_BAR + ST_CENTER // Slider styles #define SL_DIR 0x400 #define SL_VERT 0 #define SL_HORZ 0x400 #define SL_TEXTURES 0x10 // progress bar #define ST_VERTICAL 0x01 #define ST_HORIZONTAL 0 // Listbox styles #define LB_TEXTURES 0x10 #define LB_MULTI 0x20 // Tree styles #define TR_SHOWROOT 1 #define TR_AUTOCOLLAPSE 2 // MessageBox styles #define MB_BUTTON_OK 1 #define MB_BUTTON_CANCEL 2 #define MB_BUTTON_USER 4 //////////////// //Base Classes// //////////////// class RscText { access = 0; idc = -1; type = CT_STATIC; style = ST_MULTI; linespacing = 1; colorBackground[] = {0,0,0,0}; colorText[] = {1,1,1,.5}; text = ""; shadow = 2; font = "Bitstream"; SizeEx = 0.02300; fixedWidth = 0; x = 0; y = 0; h = 0; w = 0; }; class RscPicture { access = 0; idc = -1; type = CT_STATIC; style = ST_PICTURE; colorBackground[] = {0,0,0,0}; colorText[] = {1,1,1,1}; font = "Bitstream"; sizeEx = 0; lineSpacing = 0; text = ""; fixedWidth = 0; shadow = 0; x = 0; y = 0; w = 0.2; h = 0.15; }; class RscFrame { type = CT_STATIC; idc = -1; style = ST_FRAME; shadow = 2; colorBackground[] = {1,1,1,1}; colorText[] = {1,1,1,0.9}; font = "Bitstream"; sizeEx = 0.03; text = ""; }; class BOX { type = CT_STATIC; idc = -1; style = ST_CENTER; shadow = 2; colorText[] = {1,1,1,1}; font = "Bitstream"; sizeEx = 0.02; colorBackground[] = { 0.2,0.2,0.2, 0.8 }; text = ""; }; class RscCombo { access = 0; type = 4; style = 0; colorSelect[] = {0.023529,0,0.0313725,1}; colorText[] = {0.023529,0,0.0313725,1}; colorBackground[] = {0.95,0.95,0.95,1}; colorScrollbar[] = {0.023529,0,0.0313725,1}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; maxHistoryDelay = 1; class ScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; shadow = 0; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; x = 0; y = 0; w = 0.12; h = 0.035; shadow = 0; colorSelectBackground[] = {0.8784,0.8471,0.651,1}; arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa"; wholeHeight = 0.45; color[] = {0,0,0,0.6}; colorActive[] = {0,0,0,1}; colorDisabled[] = {0,0,0,0.3}; font = "Zeppelin32"; sizeEx = 0.03921; }; class RscShortcutButton { type = 16; x = 0.1; y = 0.1; class HitZone { left = 0.004; top = 0.029; right = 0.004; bottom = 0.029; }; class ShortcutPos { left = 0.0145; top = 0.026; w = 0.0392157; h = 0.0522876; }; class TextPos { left = 0.05; top = 0.034; right = 0.005; bottom = 0.005; }; shortcuts[] = {}; textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; color[] = {0.8784,0.8471,0.651,1}; color2[] = {0.95,0.95,0.95,1}; colorDisabled[] = {1,1,1,0.25}; colorBackground[] = {1,1,1,1}; colorBackground2[] = {1,1,1,0.4}; class Attributes { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; shadow = "true"; }; idc = -1; style = 0; default = 0; shadow = 2; w = 0.183825; h = 0.104575; periodFocus = 1.2; periodOver = 0.8; animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa"; animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa"; animTextureOver = "\ca\ui\data\ui_button_over_ca.paa"; animTextureFocused = "\ca\ui\data\ui_button_focus_ca.paa"; animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa"; animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa"; period = 0.4; font = "Zeppelin32"; size = 0.03921; sizeEx = 0.03921; text = ""; soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1}; soundPush[] = {"\ca\ui\data\sound\new1",0,0}; soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1}; soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1}; action = ""; class AttributesImage { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; }; }; interior\dialogs.hpp (Do not use with newest Infistar AH): class WGT_INTERIOR1 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox1: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame1: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose1: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired1;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel1: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic1: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo1: RscCombo { idc = 2667; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR2 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox2: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame2: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose2: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired2;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel2: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic2: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo2: RscCombo { idc = 2668; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR3 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox3: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame3: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose3: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired3;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel3: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic3: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo3: RscCombo { idc = 2669; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR4 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox4: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame4: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose4: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired4;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel4: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic4: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo4: RscCombo { idc = 2670; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR5 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox5: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame5: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose5: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired5;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel5: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic5: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo5: RscCombo { idc = 2671; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR6 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox6: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame6: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose6: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired6;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel6: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic6: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo6: RscCombo { idc = 2672; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR7 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox7: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame7: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose7: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired7;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel7: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic7: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo7: RscCombo { idc = 2673; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR8 { idd = -1; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox8: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame8: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose8: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired8;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel8: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic8: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo8: RscCombo { idc = 2674; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; interior\dialogs.hpp (Only for people with newest Infistar Antihack): class WGT_INTERIOR1 { idd = 10667; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox1: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame1: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose1: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired1;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel1: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic1: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo1: RscCombo { idc = 2667; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR2 { idd = 10668; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox2: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame2: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose2: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired2;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel2: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic2: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo2: RscCombo { idc = 2668; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR3 { idd = 10669; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox3: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame3: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose3: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired3;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel3: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic3: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo3: RscCombo { idc = 2669; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR4 { idd = 10670; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox4: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame4: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose4: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired4;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel4: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic4: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo4: RscCombo { idc = 2670; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR5 { idd = 10671; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox5: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame5: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose5: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired5;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel5: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic5: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo5: RscCombo { idc = 2671; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR6 { idd = 10672; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox6: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame6: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose6: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired6;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel6: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic6: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo6: RscCombo { idc = 2672; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR7 { idd = 10673; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox7: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame7: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose7: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired7;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel7: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic7: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo7: RscCombo { idc = 2673; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; class WGT_INTERIOR8 { idd = 10674; movingenable = true; onLoad = "_this ExecVM 'interior\items.sqf'"; class Controls { class dialogBox8: BOX { idc = -1; text = ""; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogFrame8: RscFrame { idc = -1; text = "Interior Designer"; x = 0.401725 * safezoneW + safezoneX; y = 0.449425 * safezoneH + safezoneY; w = 0.186587 * safezoneW; h = 0.124143 * safezoneH; }; class dialogChoose8: RscShortcutButton { idc = -1; text = "Spawn"; x = 0.454806 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action= "[] call fnc_Pos_fired8;_nil=[]ExecVM ""interior\spawn.sqf"";closeDialog 0;"; }; class dialogCancel8: RscShortcutButton { idc = -1; text = "Cancel"; x = 0.520496 * safezoneW + safezoneX; y = 0.512518 * safezoneH + safezoneY; w = 0.0594089 * safezoneW; h = 0.0500295 * safezoneH; action = "closeDialog 0;"; }; class dialogPic8: RscPicture { idc = -1; text = "interior\emerald.paa"; x = 0.412763 * safezoneW + safezoneX; y = 0.478468 * safezoneH + safezoneY; w = 0.0320813 * safezoneW; h = 0.0690587 * safezoneH; }; class dialogCombo8: RscCombo { idc = 2674; text = "Choose your item"; x = 0.45638 * safezoneW + safezoneX; y = 0.478467 * safezoneH + safezoneY; w = 0.120896 * safezoneW; h = 0.0229882 * safezoneH; }; }; }; interior\items.sqf (Updated V1.1): disableSerialization; //Define idc's for controls for easy access _comboBoxA = 2667; _comboBoxB = 2668; _comboBoxC = 2669; _comboBoxD = 2670; _comboBoxE = 2671; _comboBoxF = 2672; _comboBoxG = 2673; _comboBoxH = 2674; //store display, passed from onLoad _display = _this select 0; //Add to picture { _index = lbAdd [_comboBoxA, _x]; } forEach [ "MAP_picture_a", "MAP_picture_a_02", "MAP_picture_a_03", "MAP_picture_a_04", "MAP_picture_a_05", "MAP_picture_b", "MAP_picture_b_02", "MAP_picture_c", "MAP_picture_c_02", "MAP_picture_d", "MAP_picture_e", "MAP_picture_f", "MAP_picture_f_02", "MAP_picture_g", "MAP_wall_board", "MAP_wall_board_02", "MAP_wall_board_03" ]; //Add to chair { _index = lbAdd [_comboBoxB, _x]; } forEach [ "MAP_F_ch_mod_c", "MAP_ch_mod_h", "MAP_armchair", "MAP_ch_mod_h", "MAP_ch_office_B", "MAP_chair", "MAP_Church_chair", "MAP_hospital_bench", "MAP_kitchen_chair_a", "MAP_lavicka_1", "MAP_lavicka_2", "MAP_lavicka_3", "MAP_lavicka_4", "MAP_lobby_chair", "MAP_office_chair" ]; //Add to bed { _index = lbAdd [_comboBoxC, _x]; } forEach [ "MAP_F_postel_manz_kov", "MAP_F_postel_panelak1", "MAP_F_postel_panelak2", "MAP_F_Vojenska_palanda", "MAP_postel_manz_kov", "MAP_postel_panelak1", "MAP_vojenska_palanda" ]; //Add to Bathroom { _index = lbAdd [_comboBoxD, _x]; } forEach [ "MAP_fridge", "MAP_Kitchenstove_Elec", "MAP_washing_machine", "MAP_P_Basin_A", "MAP_P_bath", "MAP_F_bath", "MAP_lekarnicka", "MAP_P_sink", "MAP_toilet_b", "MAP_P_toilet_b_02" ]; //Add to Shelf { _index = lbAdd [_comboBoxE, _x]; } forEach [ "MAP_almara", "MAP_case_a", "MAP_case_bedroom_a", "MAP_case_bedroom_b", "MAP_case_cans_b", "MAP_case_d", "MAP_case_wall_unit_part_c", "MAP_case_wall_unit_part_d", "MAP_case_wooden_b", "MAP_Dhangar_borwnskrin", "MAP_Dhangar_brownskrin", "MAP_Dhangar_knihovna", "MAP_library_a", "MAP_shelf", "MAP_Skrin_bar", "MAP_Skrin_opalena", "MAP_Truhla_stara" ]; //Add to Misc { _index = lbAdd [_comboBoxF, _x]; } forEach [ "MAP_briefcase", "MAP_Dkamna_bila", "MAP_Dkamna_uhli", "MAP_F_Dkamna_uhli", "MAP_icebox", "MAP_mutt_vysilacka", "MAP_notebook", "MAP_pc", "MAP_phonebox", "MAP_radio", "MAP_radio_b", "MAP_satelitePhone", "MAP_smallTV", "MAP_tv_a", "MAP_vending_machine", "MAP_lantern", "MAP_bucket", "MAP_MetalBucket", "MAP_FuelCan", "MAP_SmallObj_money" ]; //Add to table { _index = lbAdd [_comboBoxG, _x]; } forEach [ "MAP_conference_table_a", "MAP_desk", "MAP_Dhangar_psacistul", "MAP_F_conference_table_a", "MAP_kitchen_table_a", "MAP_lobby_table", "MAP_office_table_a", "MAP_pultskasou", "MAP_SmallTable", "MAP_stul_hospoda", "MAP_stul_kuch1", "MAP_Table", "MAP_table_drawer" ]; //Add to exterior { _index = lbAdd [_comboBoxH, _x]; } forEach [ "MAP_kasna_new", "MAP_Misc_Boogieman", "MAP_ChickenCoop", "MAP_Misc_Greenhouse", "MAP_Misc_Hutch", "MAP_Misc_Well", "MAP_Misc_WellPump", "MAP_PowerGenerator", "MAP_psi_bouda", "MAP_pumpa", "MAP_stanek_3", "MAP_stanek_3_d", "MAP_stanek_3B", "MAP_AirCond_big", "MAP_AirCond_small", "MAP_antenna_big_roof", "MAP_antenna_small_roof", "MAP_antenna_small_roof_1", "MAP_drapes", "MAP_drapes_long", "MAP_GasMeterExt", "MAP_Ladder", "MAP_P_Ladder", "MAP_LadderHalf", "MAP_P_LadderLong", "MAP_leseni2x", "MAP_leseni4x", "MAP_Misc_loudspeakers", "MAP_parabola_big", "MAP_P_Stavebni_kozy", "MAP_Heli_H_civil", "MAP_Heli_H_army", "MAP_Heli_H_cross", "MAP_Heli_H_rescue", "MAP_Sr_border", "MAP_drevo_hromada", "MAP_garbage_misc", "MAP_garbage_paleta", "MAP_Ind_BoardsPack1", "MAP_Ind_BoardsPack2", "MAP_Ind_Timbers", "MAP_Kontejner", "MAP_Misc_GContainer_Big", "MAP_Misc_HayStack", "MAP_Misc_TyreHeap", "MAP_Misc_WoodPile", "MAP_pneu", "MAP_popelnice", "MAP_sekyraspalek", "MAP_seno_balik", "MAP_concrete_block", "MAP_Concrete_Ramp", "MAP_ramp_concrete", "MAP_woodenRamp", "MAP_brana", "MAP_Houpacka", "MAP_nastenkaX", "MAP_Piskoviste", "MAP_snowman", "MAP_Barel1", "MAP_Barel3", "MAP_Barel4", "MAP_Barel5", "MAP_Barel6", "MAP_Barel7", "MAP_Barel8", "MAP_Barels", "MAP_Barels2", "MAP_Barels3", "MAP_barrel_empty", "MAP_barrel_sand", "MAP_barrel_water", "MAP_P_bedna", "MAP_box_c", "MAP_P_cihly1", "MAP_P_cihly2", "MAP_P_cihly3", "MAP_P_cihly4", "MAP_metalcrate", "MAP_metalcrate_02", "Misc_concrete", "MAP_Misc_G_Pipes", "MAP_Misc_palletsfoiled", "MAP_Misc_palletsfoiled_heap", "MAP_obstacle_get_over", "MAP_obstacle_prone", "MAP_obstacle_run_duck", "MAP_paletaA", "MAP_paletyC", "MAP_paletyD", "MAP_Pallets_Column", "MAP_P_pipe_big", "MAP_P_pipe_small", "MAP_P_ytong" ]; interior\spawn.sqf (Updated v1.1.1): _plotReq = true; // can't build without nearby plotpole _plotReq = false; //can build without plotpole or near owned plotpole only _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player /* DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected]. Note: Edit the _classname variable below to be the correct classname of the item you want to build, and I suggest you name the file appropiately! Recommended to use alongside Maca's excellent 'right clicks' system: http://epochmod.com/...tions-to-items/ Edits by Mike of http://www.petuniaserver.com/ - Original file & all kudos to the EPOCH devs! http://www.dayzepoch.com */ private ["_plotReq","_proceed","_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap"]; _plotReq = true; //Plotpole requirement to build enabled fnc_Pos_fired1 = { disableSerialization; _indexPic = lbCurSel 2667; // index of selection _returnTextPic = lbText [2667, _indexPic]; // name of selection hint format["BAR : [%1] \n [%2]",_indexPic,_returnTextPic];// display the value classnameChange = _returnTextPic; }; fnc_Pos_fired2 = { disableSerialization; _indexChair = lbCurSel 2668; // index of selection _returnTextChair = lbText [2668, _indexChair]; // name of selection hint format["BAR : [%1] \n [%2]",_indexChair,_returnTextChair];// display the value classnameChange = _returnTextChair; }; fnc_Pos_fired3 = { disableSerialization; _indexBed = lbCurSel 2669; // index of selection _returnTextBed = lbText [2669, _indexBed]; // name of selection hint format["BAR : [%1] \n [%2]",_indexBed,_returnTextBed];// display the value classnameChange = _returnTextBed; }; fnc_Pos_fired4 = { disableSerialization; _indexBath = lbCurSel 2670; // index of selection _returnTextBath = lbText [2670, _indexBath]; // name of selection hint format["BAR : [%1] \n [%2]",_indexBath,_returnTextBath];// display the value classnameChange = _returnTextBath; }; fnc_Pos_fired5 = { disableSerialization; _indexShelf = lbCurSel 2671; // index of selection _returnTextShelf = lbText [2671, _indexShelf]; // name of selection hint format["BAR : [%1] \n [%2]",_indexShelf,_returnTextShelf];// display the value classnameChange = _returnTextShelf; }; fnc_Pos_fired6 = { disableSerialization; _indexMisc = lbCurSel 2672; // index of selection _returnTextMisc = lbText [2672, _indexMisc]; // name of selection hint format["BAR : [%1] \n [%2]",_indexMisc,_returnTextMisc];// display the value classnameChange = _returnTextMisc; }; fnc_Pos_fired7 = { disableSerialization; _indexTable = lbCurSel 2673; // index of selection _returnTextTable = lbText [2673, _indexTable]; // name of selection hint format["BAR : [%1] \n [%2]",_indexTable,_returnTextTable];// display the value classnameChange = _returnTextTable; }; fnc_Pos_fired8 = { disableSerialization; _indexExt = lbCurSel 2674; // index of selection _returnTextExt = lbText [2674, _indexExt]; // name of selection hint format["BAR : [%1] \n [%2]",_indexExt,_returnTextExt];// display the value classnameChange = _returnTextExt; }; _classname = classnameChange; if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _isWater = dayz_isSwimming; _cancel = false; _reason = ""; _canBuildOnPlot = false; _vehicle = vehicle player; _inVehicle = (_vehicle != player); DZE_Q = false; DZE_Z = false; DZE_Q_alt = false; DZE_Z_alt = false; DZE_Q_ctrl = false; DZE_Z_ctrl = false; DZE_5 = false; DZE_4 = false; DZE_6 = false; DZE_cancelBuilding = false; call gear_ui_init; closeDialog 1; if (_isWater) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"];}; if (_inVehicle) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_42"), "PLAIN DOWN"];}; if (_onLadder) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_21", "PLAIN DOWN"];}; if (player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];}; _item = _this; // Need Near Requirements _abort = false; _distance = 3; _reason = ""; if(_abort) exitWith { cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"]; DZE_ActionInProgress = false; }; _classnametmp = _classname; //_require = getArray (configFile >> "cfgMagazines" >> _this >> "ItemActions" >> "Build" >> "require"); _text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName"); _ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview"); _lockable = 0; _requireplot = DZE_requireplot; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then { _requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot"); }; _isAllowedUnderGround = 1; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then { _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground"); }; _offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset"); if((count _offset) <= 0) then { _offset = [0,3.5,0]; //This is distance of object from player XYZ.. increase Y if you want an object to spawn further away from player }; _isPole = (_classname == "Plastic_Pole_EP1_DZ"); _isLandFireDZ = (_classname == "Land_Fire_DZ"); _distance = DZE_PlotPole select 0; _needText = localize "str_epoch_player_246"; if(_isPole) then { _distance = DZE_PlotPole select 1; }; _proceed = true; // check for near plot _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], 30]; _findNearestPole = []; {if (alive _x) then {_findNearestPole set [(count _findNearestPole),_x];};} foreach _findNearestPoles; _IsNearPlot = count (_findNearestPole); if(_IsNearPlot >= 1) then { _proceed = false; _plotReq = false; _nearestPole = _findNearestPole select 0; // Find owner _ownerID = _nearestPole getVariable["CharacterID","0"]; // check if friendly to owner if(dayz_characterID != _ownerID) then { _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(!(_ownerID in _friendlies)) then { _proceed = false; } else { _proceed = true; }; } else { _proceed = true; }; }; _missing = ""; _location = [0,0,0]; _isOk = true; // get inital players position _location1 = getPosATL player; _dir = getDir player; _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _object attachTo [player,_offset]; _position = getPosATL _object; cutText [(localize "str_epoch_player_45"), "PLAIN DOWN"]; _objHDiff = 0; while {_isOk} do { _zheightchanged = false; _zheightdirection = ""; _rotate = false; if (DZE_Q) then { DZE_Q = false; _zheightdirection = "up"; _zheightchanged = true; }; if (DZE_Z) then { DZE_Z = false; _zheightdirection = "down"; _zheightchanged = true; }; if (DZE_Q_alt) then { DZE_Q_alt = false; _zheightdirection = "up_alt"; _zheightchanged = true; }; if (DZE_Z_alt) then { DZE_Z_alt = false; _zheightdirection = "down_alt"; _zheightchanged = true; }; if (DZE_Q_ctrl) then { DZE_Q_ctrl = false; _zheightdirection = "up_ctrl"; _zheightchanged = true; }; if (DZE_Z_ctrl) then { DZE_Z_ctrl = false; _zheightdirection = "down_ctrl"; _zheightchanged = true; }; if (DZE_4) then { _rotate = true; DZE_4 = false; _dir = 180; }; if (DZE_6) then { _rotate = true; DZE_6 = false; _dir = 0; }; if(_rotate) then { _object setDir _dir; _object setPosATL _position; //diag_log format["DEBUG Rotate BUILDING POS: %1", _position]; }; if(_zheightchanged) then { detach _object; _position = getPosATL _object; if(_zheightdirection == "up") then { _position set [2,((_position select 2)+0.1)]; _objHDiff = _objHDiff + 0.1; }; if(_zheightdirection == "down") then { _position set [2,((_position select 2)-0.1)]; _objHDiff = _objHDiff - 0.1; }; if(_zheightdirection == "up_alt") then { _position set [2,((_position select 2)+1)]; _objHDiff = _objHDiff + 1; }; if(_zheightdirection == "down_alt") then { _position set [2,((_position select 2)-1)]; _objHDiff = _objHDiff - 1; }; if(_zheightdirection == "up_ctrl") then { _position set [2,((_position select 2)+0.01)]; _objHDiff = _objHDiff + 0.01; }; if(_zheightdirection == "down_ctrl") then { _position set [2,((_position select 2)-0.01)]; _objHDiff = _objHDiff - 0.01; }; _object setDir (getDir _object); if((_isAllowedUnderGround == 0) and ((_position select 2) < 0)) then { _position set [2,0]; }; _object setPosATL _position; //diag_log format["DEBUG Change BUILDING POS: %1", _position]; _object attachTo [player]; }; sleep 0.5; _location2 = getPosATL player; if(DZE_5) exitWith { _isOk = false; detach _object; _dir = getDir _object; _position = getPosATL _object; //diag_log format["DEBUG BUILDING POS: %1", _position]; deleteVehicle _object; }; if(_location1 distance _location2 > 5) exitWith { _isOk = false; _cancel = true; _reason = "You've moved to far away from where you started building (within 5 meters)"; detach _object; deleteVehicle _object; }; if(abs(_objHDiff) > 5) exitWith { _isOk = false; _cancel = true; _reason = "Cannot move up or down more than 5 meters"; detach _object; deleteVehicle _object; }; if (player getVariable["combattimeout", 0] >= time) exitWith { _isOk = false; _cancel = true; _reason = (localize "str_epoch_player_43"); detach _object; deleteVehicle _object; }; if (DZE_cancelBuilding) exitWith { _isOk = false; _cancel = true; _reason = "Cancelled building."; detach _object; deleteVehicle _object; }; }; //No building on roads unless toggled if (!DZE_BuildOnRoads) then { if (isOnRoad _position) then { _cancel = true; _reason = "Cannot build on a road."; }; }; // No building in trader zones if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; }; if (!_proceed) then {_cancel = true; _reason = "Someone's plotpole nearby";}; if (_plotReq) then {_cancel = true; _reason = "Plotpole required to build here";}; if(!_cancel) then { _classname = _classnametmp; // Start Build _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _tmpbuilt setdir _dir; // Get position based on object _location = _position; if((_isAllowedUnderGround == 0) and ((_location select 2) < 0)) then { _location set [2,0]; }; _tmpbuilt setPosATL _location; cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"]; _limit = 1; if (DZE_StaticConstructionCount > 0) then { _limit = DZE_StaticConstructionCount; } else { if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; }; player playActionNow "Medic"; [player,"repair",0,false,10] call dayz_zombieSpeak; [player,10,true,(getPosATL player)] spawn player_alertZombies; sleep 3; cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; if (_isPole) then { [] spawn player_plotPreview; }; _tmpbuilt setVariable ["OEMPos",_location,true]; _tmpbuilt setVariable ["CharacterID",dayz_characterID,true]; _charID = dayz_characterID; _activatingPlayer = player; PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname]; publicVariableServer "PVDZE_obj_Publish"; player removeMagazine "ItemEmerald"; cutText [format["%1 saved to database!",_classname], "PLAIN DOWN",3]; player reveal _tmpbuilt; DZE_ActionInProgress = false; } else { cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"]; DZE_ActionInProgress = false; }; DZE_ActionInProgress = false; interior\remove.sqf (NEW): private ["_isEmeraldItem","_emeraldTarget","_objectID","_objectUID","_objD","_findNearestPoles","_findNearestPole","_nearestPole","_ownerID","_friendlies"]; _emeraldTarget = cursorTarget; _isEmeraldItem = (typeOf _emeraldTarget) in isEmerald; _proceed = true; _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], 30]; _findNearestPole = []; {if (alive _x) then {_findNearestPole set [(count _findNearestPole),_x];};} foreach _findNearestPoles; _IsNearPlot = count (_findNearestPole); if(_IsNearPlot >= 1) then { _proceed = false; _nearestPole = _findNearestPole select 0; // Find owner _ownerID = _nearestPole getVariable["CharacterID","0"]; // check if friendly to owner if(dayz_characterID != _ownerID) then { _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(!(_ownerID in _friendlies)) then { _proceed = false; } else { _proceed = true; }; } else { _proceed = true; }; }; if (!_proceed) then { // player is not an owner cutText [format["Plotpole nearby."], "PLAIN DOWN"]; } else { if (_isEmeraldItem) then { // player is looking at a object and the target has a object classname // delete it first to avoid player changing to another target _objD = typeOf cursorTarget; _objectID = cursorTarget getVariable["CharacterID","0"]; _objectUID = cursorTarget getVariable ["ObjectUID","0"]; PVDZE_obj_Delete = [_objectID,_objectUID,player]; publicVariableServer "PVDZE_obj_Delete"; _emeraldTarget setDamage 1; deletevehicle cursorTarget; player removeAction s_player_removeEmerald; player playActionNow "Medic"; r_interrupt = false; _dis=10; _sfx = "repair"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] spawn player_alertZombies; sleep 6; cutText [format["Deleted %1", _objD], "PLAIN DOWN"]; r_interrupt = false; player switchMove ""; player playActionNow "stop"; } else { // player is not looking at object, or target does not have a object classname cutText [format["You have to be facing the object you are removing"], "PLAIN DOWN"]; }; }; custom\fn_selfActions.sqf (Updated V1.1.1) Add to the very bottom of the file: //delete interior isEmerald = ["MAP_kasna_new","MAP_Misc_Boogieman","MAP_ChickenCoop","MAP_Misc_Greenhouse","MAP_Misc_Hutch","MAP_Misc_Well","MAP_Misc_WellPump","MAP_PowerGenerator","MAP_psi_bouda","MAP_pumpa","MAP_stanek_3","MAP_stanek_3_d","MAP_stanek_3B","MAP_AirCond_big","MAP_AirCond_small","MAP_antenna_big_roof","MAP_antenna_small_roof","MAP_antenna_small_roof_1","MAP_drapes","MAP_drapes_long","MAP_GasMeterExt","MAP_Ladder","MAP_P_Ladder","MAP_LadderHalf","MAP_P_LadderLong","MAP_leseni2x","MAP_leseni4x","MAP_Misc_loudspeakers","MAP_parabola_big","MAP_P_Stavebni_kozy","MAP_Heli_H_civil","MAP_Heli_H_army","MAP_Heli_H_cross","MAP_Heli_H_rescue","MAP_Sr_border","MAP_drevo_hromada","MAP_garbage_misc","MAP_garbage_paleta","MAP_Ind_BoardsPack1","MAP_Ind_BoardsPack2","MAP_Ind_Timbers","MAP_Kontejner","MAP_Misc_GContainer_Big","MAP_Misc_HayStack","MAP_Misc_TyreHeap","MAP_Misc_WoodPile","MAP_pneu","MAP_popelnice","MAP_sekyraspalek","MAP_seno_balik","MAP_concrete_block","MAP_Concrete_Ramp","MAP_ramp_concrete","MAP_woodenRamp","MAP_brana","MAP_Houpacka","MAP_nastenkaX","MAP_Piskoviste","MAP_snowman","MAP_Barel1","MAP_Barel3","MAP_Barel4","MAP_Barel5","MAP_Barel6","MAP_Barel7","MAP_Barel8","MAP_Barels","MAP_Barels2","MAP_Barels3","MAP_barrel_empty","MAP_barrel_sand","MAP_barrel_water","MAP_P_bedna","MAP_box_c","MAP_P_cihly1","MAP_P_cihly2","MAP_P_cihly3","MAP_P_cihly4","MAP_metalcrate","MAP_metalcrate_02","Misc_concrete","MAP_Misc_G_Pipes","MAP_Misc_palletsfoiled","MAP_Misc_palletsfoiled_heap","MAP_obstacle_get_over","MAP_obstacle_prone","MAP_obstacle_run_duck","MAP_paletaA","MAP_paletyC","MAP_paletyD","MAP_Pallets_Column","MAP_P_pipe_big","MAP_P_pipe_small","MAP_P_ytong","MAP_picture_a","MAP_picture_a_02","MAP_picture_a_03","MAP_picture_a_04","MAP_picture_a_05","MAP_picture_b","MAP_picture_b_02","MAP_picture_c","MAP_picture_c_02","MAP_picture_d","MAP_picture_e","MAP_picture_f","MAP_picture_f_02","MAP_picture_g","MAP_wall_board","MAP_wall_board_02","MAP_wall_board_03","MAP_F_ch_mod_c","MAP_ch_mod_h","MAP_armchair","MAP_ch_mod_h","MAP_ch_office_B","MAP_chair","MAP_Church_chair","MAP_hospital_bench","MAP_kitchen_chair_a","MAP_lavicka_1","MAP_lavicka_2","MAP_lavicka_3","MAP_lavicka_4","MAP_lobby_chair","MAP_office_chair","MAP_F_postel_manz_kov","MAP_F_postel_panelak1","MAP_F_postel_panelak2","MAP_F_Vojenska_palanda","MAP_postel_manz_kov","MAP_postel_panelak1","MAP_vojenska_palanda","MAP_fridge","MAP_Kitchenstove_Elec","MAP_washing_machine","MAP_P_Basin_A","MAP_P_bath","MAP_F_bath","MAP_lekarnicka","MAP_P_sink","MAP_toilet_b","MAP_P_toilet_b_02","MAP_almara","MAP_case_a","MAP_case_bedroom_a","MAP_case_bedroom_b","MAP_case_cans_b","MAP_case_d","MAP_case_wall_unit_part_c","MAP_case_wall_unit_part_d","MAP_case_wooden_b","MAP_Dhangar_borwnskrin","MAP_Dhangar_brownskrin","MAP_Dhangar_knihovna","MAP_library_a","MAP_shelf","MAP_Skrin_bar","MAP_Skrin_opalena","MAP_Truhla_stara","MAP_briefcase","MAP_Dkamna_bila","MAP_Dkamna_uhli","MAP_F_Dkamna_uhli","MAP_icebox","MAP_mutt_vysilacka","MAP_notebook","MAP_pc","MAP_phonebox","MAP_radio","MAP_radio_b","MAP_satelitePhone","MAP_smallTV","MAP_tv_a","MAP_vending_machine","MAP_lantern","MAP_bucket","MAP_MetalBucket","MAP_FuelCan","MAP_SmallObj_money","MAP_conference_table_a","MAP_desk","MAP_Dhangar_psacistul","MAP_F_conference_table_a","MAP_kitchen_table_a","MAP_lobby_table","MAP_office_table_a","MAP_pultskasou","MAP_SmallTable","MAP_stul_hospoda","MAP_stul_kuch1","MAP_Table","MAP_table_drawer"]; _isEmeraldItem = (typeOf cursorTarget) in isEmerald; _emeraldTarget = typeOf cursorTarget; if((_isEmeraldItem and (player distance cursorTarget <= 2)) and _canDo) then { if (s_player_removeEmerald < 0) then { s_player_removeEmerald = player addaction [format[("<t color=""#ff0000"">" + ("Remove %1") +"</t>"),_emeraldTarget],"interior\remove.sqf",_emeraldTarget]; }; } else { player removeAction s_player_removeEmerald; s_player_removeEmerald = -1; }; Edited June 29, 2015 by raymix david, TNT, DanucasB and 14 others 17 Link to comment Share on other sites More sharing options...
raymix Posted May 3, 2014 Author Report Share Posted May 3, 2014 (edited) UPDATE: If you are already using different dialogs, you have probably already defined majority of stuff you'll find in defines.hpp I posted full file originally for people who does not have any other dialog system Here's clean defines of what emerald uses: defines.hpp: http://pastebin.com/YLUmZ18U If you are running latest infistar AH or custom BE filters, Update your createvehicle.txt, by adding !="MAP_phonebox" !="MAP_icebox" : createvehicle.txt //new <part removed due to security> 5 "box" !="MAP_phonebox" !="MAP_icebox" !="DebugBoxPlayer_DZ" !="MedBox0" <rest of boxes here, removed for security> <part removed due to security> Deleting objects using Infistar: (this will enable you to delete these interior objects using F4 shortcut as admin) Open dayz_server\init\AH.sqf (Updated): find: if (BD_radius > 100) then { cutText [format["area is to large for base destruction (radius %1 > 100)", BD_radius], "PLAIN DOWN"]; } else { _objectClasses = [ "Sign_arrow_down_large_EP1","TentStorage",.................... add these right before "Sign_arrow_down_large_EP1" and after _objectClasses = [ if (BD_radius > 100) then { cutText [format["area is to large for base destruction (radius %1 > 100)", BD_radius], "PLAIN DOWN"]; } else { _objectClasses = [ //Raymix "MAP_picture_a", "MAP_picture_a_02", "MAP_picture_a_03", "MAP_picture_a_04", "MAP_picture_a_05", "MAP_picture_b", "MAP_picture_b_02", "MAP_picture_c", "MAP_picture_c_02", "MAP_picture_d", "MAP_picture_e", "MAP_picture_f", "MAP_picture_f_02", "MAP_picture_g", "MAP_wall_board", "MAP_wall_board_02", "MAP_wall_board_03", "MAP_F_ch_mod_c", "MAP_ch_mod_h", "MAP_armchair", "MAP_ch_mod_h", "MAP_ch_office_B", "MAP_chair", "MAP_Church_chair", "MAP_hospital_bench", "MAP_kitchen_chair_a", "MAP_lavicka_1", "MAP_lavicka_2", "MAP_lavicka_3", "MAP_lavicka_4", "MAP_lobby_chair", "MAP_office_chair", "MAP_F_postel_manz_kov", "MAP_F_postel_panelak1", "MAP_F_postel_panelak2", "MAP_F_Vojenska_palanda", "MAP_postel_manz_kov", "MAP_postel_panelak1", "MAP_vojenska_palanda", "MAP_fridge", "MAP_Kitchenstove_Elec", "MAP_washing_machine", "MAP_P_Basin_A", "MAP_P_bath", "MAP_F_bath", "MAP_lekarnicka", "MAP_P_sink", "MAP_toilet_b", "MAP_P_toilet_b_02", "MAP_almara", "MAP_case_a", "MAP_case_bedroom_a", "MAP_case_bedroom_b", "MAP_case_cans_b", "MAP_case_d", "MAP_case_wall_unit_part_c", "MAP_case_wall_unit_part_d", "MAP_case_wooden_b", "MAP_Dhangar_borwnskrin", "MAP_Dhangar_brownskrin", "MAP_Dhangar_knihovna", "MAP_library_a", "MAP_shelf", "MAP_Skrin_bar", "MAP_Skrin_opalena", "MAP_Truhla_stara", "MAP_briefcase", "MAP_Dkamna_bila", "MAP_Dkamna_uhli", "MAP_F_Dkamna_uhli", "MAP_icebox", "MAP_mutt_vysilacka", "MAP_notebook", "MAP_pc", "MAP_phonebox", "MAP_radio", "MAP_radio_b", "MAP_satelitePhone", "MAP_smallTV", "MAP_tv_a", "MAP_vending_machine", "MAP_lantern", "MAP_bucket", "MAP_MetalBucket", "MAP_FuelCan", "MAP_SmallObj_money", "MAP_conference_table_a", "MAP_desk", "MAP_Dhangar_psacistul", "MAP_F_conference_table_a", "MAP_kitchen_table_a", "MAP_lobby_table", "MAP_office_table_a", "MAP_pultskasou", "MAP_SmallTable", "MAP_stul_hospoda", "MAP_stul_kuch1", "MAP_Table", "MAP_table_drawer", "MAP_kasna_new", "MAP_Misc_Boogieman", "MAP_ChickenCoop", "MAP_Misc_Greenhouse", "MAP_Misc_Hutch", "MAP_Misc_Well", "MAP_Misc_WellPump", "MAP_PowerGenerator", "MAP_psi_bouda", "MAP_pumpa", "MAP_stanek_3", "MAP_stanek_3_d", "MAP_stanek_3B", "MAP_AirCond_big", "MAP_AirCond_small", "MAP_antenna_big_roof", "MAP_antenna_small_roof", "MAP_antenna_small_roof_1", "MAP_drapes", "MAP_drapes_long", "MAP_GasMeterExt", "MAP_Ladder", "MAP_P_Ladder", "MAP_LadderHalf", "MAP_P_LadderLong", "MAP_leseni2x", "MAP_leseni4x", "MAP_Misc_loudspeakers", "MAP_parabola_big", "MAP_P_Stavebni_kozy", "MAP_Heli_H_civil", "MAP_Heli_H_army", "MAP_Heli_H_cross", "MAP_Heli_H_rescue", "MAP_Sr_border", "MAP_drevo_hromada", "MAP_garbage_misc", "MAP_garbage_paleta", "MAP_Ind_BoardsPack1", "MAP_Ind_BoardsPack2", "MAP_Ind_Timbers", "MAP_Kontejner", "MAP_Misc_GContainer_Big", "MAP_Misc_HayStack", "MAP_Misc_TyreHeap", "MAP_Misc_WoodPile", "MAP_pneu", "MAP_popelnice", "MAP_sekyraspalek", "MAP_seno_balik", "MAP_concrete_block", "MAP_Concrete_Ramp", "MAP_ramp_concrete", "MAP_woodenRamp", "MAP_brana", "MAP_Houpacka", "MAP_nastenkaX", "MAP_Piskoviste", "MAP_snowman", "MAP_Barel1", "MAP_Barel3", "MAP_Barel4", "MAP_Barel5", "MAP_Barel6", "MAP_Barel7", "MAP_Barel8", "MAP_Barels", "MAP_Barels2", "MAP_Barels3", "MAP_barrel_empty", "MAP_barrel_sand", "MAP_barrel_water", "MAP_P_bedna", "MAP_box_c", "MAP_P_cihly1", "MAP_P_cihly2", "MAP_P_cihly3", "MAP_P_cihly4", "MAP_metalcrate", "MAP_metalcrate_02", "Misc_concrete", "MAP_Misc_G_Pipes", "MAP_Misc_palletsfoiled", "MAP_Misc_palletsfoiled_heap", "MAP_obstacle_get_over", "MAP_obstacle_prone", "MAP_obstacle_run_duck", "MAP_paletaA", "MAP_paletyC", "MAP_paletyD", "MAP_Pallets_Column", "MAP_P_pipe_big", "MAP_P_pipe_small", "MAP_P_ytong", //Raymix "Sign_arrow_down_large_EP1","TentStorage", Known Bug: The very first time you try to place an object, it grabs wrong index and exits with "plotpole nearby" error. Solution: Simply hit ESC to cancel building and try again. Edited June 11, 2014 by raymix Link to comment Share on other sites More sharing options...
Mochan Posted May 3, 2014 Report Share Posted May 3, 2014 This is cool:-) Link to comment Share on other sites More sharing options...
CopeGD Posted May 3, 2014 Report Share Posted May 3, 2014 In the video you say it currently only works on Panthera. Is this still the case? Seems like awesome work, which will really enrich the whole base building. Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted May 3, 2014 Report Share Posted May 3, 2014 Dayz meets the sims 3. Link to comment Share on other sites More sharing options...
aaaman Posted May 3, 2014 Report Share Posted May 3, 2014 Really nice work, but the server crashes when first player join with the popup window: File mpmissions\dayz_epoch_11.Chernarus\interior\defines.hpp, line 21: .RscText: member already defined. :huh: Any suggestions? Does this realy belong to chernarus? ispan55 1 Link to comment Share on other sites More sharing options...
Flosstradamus Posted May 3, 2014 Report Share Posted May 3, 2014 Really nice work, but the server crashes when first player join with the popup window: File mpmissions\dayz_epoch_11.Chernarus\interior\defines.hpp, line 21: .RscText: member already defined. :huh: Any suggestions? Does this realy belong to chernarus? He says it only works with Panthera in the video Link to comment Share on other sites More sharing options...
raymix Posted May 3, 2014 Author Report Share Posted May 3, 2014 Wow! I am surprised this actually generated so much interest, thanks guys! @CopeGD: it is independent of the map you use. It should work with any DayZ mod @TayTayTheKiller: Hence the emerald! I literary saw sims in my dreams in the morning and I woke up to a though - holy hell, epoch needs this, and we have emeralds! So the same day this thing was born @aaaman: Open defines.hpp and delete RscText class, you have already defined it somewhere else, my instant guess is watermark in description.ext. Basically you can only define dialog class only once, so solution is super simple, delete any class you have already defined and that might pop up in future, but in this case, delete this part in defines.hpp: class RscText { access = 0; idc = -1; type = CT_STATIC; style = ST_MULTI; linespacing = 1; colorBackground[] = {0,0,0,0}; colorText[] = {1,1,1,.5}; text = ""; shadow = 2; font = "Bitstream"; SizeEx = 0.02300; fixedWidth = 0; x = 0; y = 0; h = 0; w = 0; }; Link to comment Share on other sites More sharing options...
aaaman Posted May 3, 2014 Report Share Posted May 3, 2014 He says it only works with Panthera in the video Yes i watch the video and know that, but i testet it so far, but i can't imagine that problem... EDIT: OK, thanks raymix, i will try that ;) Link to comment Share on other sites More sharing options...
raymix Posted May 3, 2014 Author Report Share Posted May 3, 2014 I have edited that post about 3 times, aaaman, please make sure to refresh. I am currently running this script on Panthera and Chernarus servers. There is literary no difference what map you are running it on. In some rare cases, you might get a skippable "this mission is dependant on downloadable content" error dialog upon joining server, this just means you have to add extra line or two into your mission.sqf in mission PBO, let me know if you do get that error and give please give me exact error it shows, I will tell you how to fix it and keep your server clean. Thanks Link to comment Share on other sites More sharing options...
aaaman Posted May 3, 2014 Report Share Posted May 3, 2014 I have edited that post about 3 times, aaaman, please make sure to refresh. I am currently running this script on Panthera and Chernarus servers. There is literary no difference what map you are running it on. In some rare cases, you might get a skippable "this mission is dependant on downloadable content" error dialog upon joining server, this just means you have to add extra line or two into your mission.sqf in mission PBO, let me know if you do get that error and give please give me exact error it shows, I will tell you how to fix it and keep your server clean. Thanks I got it working with your hint. Deleted the class RscText and RscPicture from your define.hpp and it works! Thanks mate! Link to comment Share on other sites More sharing options...
aaaman Posted May 3, 2014 Report Share Posted May 3, 2014 Found a bug related to Battleeye/infistar: When spawning an icebox, you get kicket for create vehicle restriction, cause "box" is forbidden and results in a kick. Don't testet all items, but maybe there be some more ;) Link to comment Share on other sites More sharing options...
raymix Posted May 4, 2014 Author Report Share Posted May 4, 2014 Found a bug related to Battleeye/infistar: When spawning an icebox, you get kicket for create vehicle restriction, cause "box" is forbidden and results in a kick. Don't testet all items, but maybe there be some more ;) You are correct, forgot to give you guys BE filters, i will update second post now. You will get kicked for vehicle creation because Infistar's latest BE filter kicks anything that has to do with "box" in it's name, check line 4. To fix that, in createvehicle.ext add: 5 "box" !="MAP_phonebox" !="MAP_icebox" right after 5 "box" and before !="DebugBoxPlayer_DZ" Link to comment Share on other sites More sharing options...
calamity Posted May 4, 2014 Report Share Posted May 4, 2014 anyone get this working for napf ?? I tried server wouldnt load.I was at work and distracted often so could be reason .... trying again after this weekend.... less players Link to comment Share on other sites More sharing options...
WEREWOLF Posted May 4, 2014 Report Share Posted May 4, 2014 hi I have finally got it working, a little typing error i did not notice. i had an extra ], the log even told me where it was and what it was but i did not see it (eyes tired i guess). But i have another problem i am not sure about. when I right click on emerald it gives me choices and i then pick a choice and hit spawn. The item shows up and when i am ready to hit space bar to build, it disappears after 3 secs and then says its be added to database but there is nothing there. thx in advance Link to comment Share on other sites More sharing options...
raymix Posted May 4, 2014 Author Report Share Posted May 4, 2014 @calamity: you will need to check RPT log, i am guessing you've already defined one of dialog classes somewhere, so you will need to delete that class in interior\defines.hpp @WEREWOLF: Hi, you probably missed the variables.sqf part. You need to include them in dayz_allowedObjects otherwise server deletes them upon creation. Added to database part is simply a cuttext that pops up after publish was called and ItemEmerald removed. The action was actually successful, its just that the item is not included in default variables and requires you to override that file with a custom one. You can find original variables.sqf in your Dayz_code PBO in your client files, then simply put it in custom folder and replace this compile line in your init.sqf: init.sqf call compile preprocessFileLineNumbers "custom\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early) progressLoadingScreen 0.1; When you got this part, simply follow instructions in first post on how to add them to dayz_allowedObjects Link to comment Share on other sites More sharing options...
CopeGD Posted May 4, 2014 Report Share Posted May 4, 2014 It would easily be possible to change the item that makes the furniture from emerald to something else, right? Link to comment Share on other sites More sharing options...
raymix Posted May 5, 2014 Author Report Share Posted May 5, 2014 It would easily be possible to change the item that makes the furniture from emerald to something else, right? yes, change it in extra_rc file and then scroll down to very bottom of spawn.sqf and change removeMagazine part there, as well Link to comment Share on other sites More sharing options...
Sp4rkY Posted May 5, 2014 Report Share Posted May 5, 2014 It´s working fine ! Many thanks for this nice script ! But i have noticed a heavy bug with it: When you have built any object with the Designer it is saved to the database, right. BUT: How we can deconstruct this building ? No option is shown for that. Are these objects indestructible or can i use a chainsaw or something else to destroy the placed objects ? With standard epoch buildings you have the choice to remove the objects that you had built. But here i don´t know any further way to get this option. I was trying to use my player_build.sqf for the code in the "spawn.sqf", but if i use this, the server tolds me, i need a plotpole to build. :( Any suggestions ? Link to comment Share on other sites More sharing options...
raymix Posted May 5, 2014 Author Report Share Posted May 5, 2014 I've updated second post with defines that are only used by this dialog. If you are running something else that has dialogs, you probably already defined majority of classes somewhere else http://pastebin.com/YLUmZ18U Link to comment Share on other sites More sharing options...
raymix Posted May 5, 2014 Author Report Share Posted May 5, 2014 It´s working fine ! Many thanks for this nice script ! But i have noticed a heavy bug with it: When you have built any object with the Designer it is saved to the database, right. BUT: How we can deconstruct this building ? No option is shown for that. Are these objects indestructible or can i use a chainsaw or something else to destroy the placed objects ? With standard epoch buildings you have the choice to remove the objects that you had built. But here i don´t know any further way to get this option. I was trying to use my player_build.sqf for the code in the "spawn.sqf", but if i use this, the server tolds me, i need a plotpole to build. :( Any suggestions ? Hi, thanks for kind words Check the second post, if you are using infistar AH tool. If you can figure out how to add these to "DELETE" button, please let me know. Currently only F4 button used by infistar works with workaround Link to comment Share on other sites More sharing options...
Sp4rkY Posted May 5, 2014 Report Share Posted May 5, 2014 Iam using "EVR", "Build_Snap" and "Spawn Selecter for Chernarus". I dont know if anything of dialogs are doubled... What i can say, that i had to remove the class picture and the class RscText because of the Spawn Selecter . Here is my description.ext (if you feel free to take a look at it ;) ) #include "fixes\config\CfgBuildingLoot.hpp" #include "fixes\config\CfgLoot.hpp" #include "fixes\config\CfgLootSmall.hpp" #include "scripts\evr\config\sound.hpp" respawn = "BASE"; respawndelay = 5; onLoadMission= "DayZ Epoch Chernarus"; OnLoadIntro = "Welcome to DayZ Epoch Chernarus"; OnLoadIntroTime = False; OnLoadMissionTime = False; disabledAI = true; disableChannels[]={0,2,6}; enableItemsDropping = 0; briefing = 0; debriefing = 0; onPauseScript = ""; loadScreen = "fixes\img\img.jpg"; class Header { gameType = COOP; minPlayers = 1; maxPlayers = 100; }; aiKills = 1; diagRadio = 1; diagHit = 1; class RscText { type = 0; idc = -1; x = 0; y = 0; h = 0.037; w = 0.3; style = 0x100; font = Zeppelin32; SizeEx = 0.03921; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0}; linespacing = 1; }; class RscPicture { access=0; type=0; idc=-1; style=48; colorBackground[]={0,0,0,0}; colorText[]={1,1,1,1}; font="TahomaB"; sizeEx=0; lineSpacing=0; text=""; }; class CfgFunctions { class DZN { class Functions { class snowfall { description = "Simple snowfall script"; file = "fixes\dayz_code\external\fn_dzn_snowfall.sqf"; }; }; }; }; class RscLoadingText : RscText { style = 2; x = 0.323532; y = 0.666672; w = 0.352944; h = 0.039216; sizeEx = 0.03921; colorText[] = {0.543,0.5742,0.4102,1.0}; }; class RscProgress { x = 0.344; y = 0.619; w = 0.313726; h = 0.0261438; texture = "\ca\ui\data\loadscreen_progressbar_ca.paa"; colorFrame[] = {0,0,0,0}; colorBar[] = {1,1,1,1}; }; class RscProgressNotFreeze { idc = -1; type = 45; style = 0; x = 0.022059; y = 0.911772; w = 0.029412; h = 0.039216; texture = "#(argb,8,8,3)color(0.8,0,1,0)"; }; class DayZ_loadingScreen { idd = -1; duration = 10e10; fadein = 0; fadeout = 0; name = "loading screen"; class controlsBackground { class blackBG : RscText { x = safezoneX; y = safezoneY; w = safezoneW; h = safezoneH; text = ""; colorText[] = {0,0,0,0}; colorBackground[] = {0,0,0,1}; }; }; class controls { class Title1 : RscLoadingText { text = "$STR_LOADING"; // "Loading" text in the middle of the screen }; class CA_Progress : RscProgress // progress bar, has to have idc 104 { idc = 104; type = 8; // CT_PROGRESS style = 0; // ST_SINGLE texture = "\ca\ui\data\loadscreen_progressbar_ca.paa"; }; class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse { idc = 103; }; class Name2: RscText // the text on the top-left { idc = 101; x = 0.05; y = 0.029412; w = 0.9; h = 0.04902; text = ""; sizeEx = 0.05; colorText[] = {0.543,0.5742,0.4102,1.0}; }; }; class RscTextNS { idc = -1; type = 0; style = 2; LineSpacing = 1.0; h = 0.04; ColorBackground[] = {1,1,1,0.2}; ColorText[] = {0.1,0.1,0.1,1}; font = "BitStream"; SizeEx = 0.025; }; class RscTitles { class RscAPSI_h1 { idd = -1; duration = 4; fadein = 0; movingEnable = 0; enableSimulation = 0; enableDisplay = 0; class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.5; h = 0.03; text = "APSI: Stronger activity of floax field has been detected.."; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {1.0,0.2,0.1,1}; }; }; }; class RscAPSI_h2: RscAPSI_h1 { class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.4; h = 0.03; text = "APSI: EVR sequence detected.."; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {1.0,0.0,0.2,1}; }; }; }; class RscAPSI_h3: RscAPSI_h1 { class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.4; h = 0.03; text = "APSI: EM and PSI protection enabled.."; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {0.0,1.0,0.2,1}; }; }; }; class RscAPSI_h4: RscAPSI_h1 { class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.4; h = 0.03; text = "APSI: Ready.."; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {0.0,1.0,0.2,1}; }; }; }; class RscAPSI_h5: RscAPSI_h1 { class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.4; h = 0.03; text = "APSI: EVR sequence start.."; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {1.0,0.0,0.2,1}; }; }; }; class RscAPSI_h6: RscAPSI_h1 { class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.4; h = 0.03; text = "APSI: End of EVR.."; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {0.0,1.0,0.2,1}; }; }; }; class RscAPSI_ha: RscAPSI_h1 { class controls { class APSILog: RscTextNS { x = 0.5; y = 0.99; w = 0.4; h = 0.03; text = "Blowout module"; colorBackground[] = {0.5,0.5,0.5,0.4}; ColorText[] = {0.0,1.0,0.2,1}; }; }; }; }; }; //BUILDING SNAPPING #include "scripts\snap_build\points.hpp" //SPAWN SELECTION #include "fixes\dayz_code\config\RscDisplaySpawnSelecter.hpp" //SARGE AI 1.5.2 #include "scripts\sarge\SARGE\SAR_define.hpp" //BASEBUILDING RIGHTCLICK & INTERIOR BUILDING #include "fixes\config\extra_rc.hpp" #include "scripts\snap_build\interior\defines.hpp" #include "scripts\snap_build\interior\dialogs.hpp" What i´m testing now is to destroy the buildings with a chainsaw. I really can destroy them. If they occour again after restart, i will see in a few minutes and then i can tell you. ;) Hope that if i destroy the objects, they will be deleted from database too, then iam happy ;) And i hope that i still can remove the standard epoch buildings. That´s what i will check now, too. I can try to modify the script, so we have a "remove" function, but i´m not sure if i can manage this. My knowledge of hpp files is really bad... EDIT: So, the objects can be destroyed. But it´s happened what i was thinking about: I dont can remove the standard epoch buildings anymore. :( Link to comment Share on other sites More sharing options...
raymix Posted May 5, 2014 Author Report Share Posted May 5, 2014 @Sp4rkY: This script does not replace epoch building, it just borrows the code used in player_build.sqf, just like snap building does. Your problem is somewhere else. edit: i've just read your previous post. Don't replace spawn.sqf with player_build.sqf unless you know what you are doing. Spawn.sqf file was already created using modified player_build that epoch uses, it does not replace it. Link to comment Share on other sites More sharing options...
Sp4rkY Posted May 5, 2014 Report Share Posted May 5, 2014 no, i had not replaced it. i only used my player_build code in your spawn.sqf file. but than, it says i need a plotpole. i tested it and setted a plot but still dont can build things of the designer. now i use your original spawn.sqf again. i was thinking that the remove function is in the player_build code, but it isnt... i have no more ideas to get the dialog back for removing my epoch build stuff... the built objects of the designer i can destroy with any weapon and then its deleted from database too, thats fine. But the remove option of epoch stuff like a ItemWoodWall doesnt appears anymore, u know? Sry for my bad english :) At my server u dont need a plot to build and i have setted up the players buildings with playerUID instead of characterID, perhaps this is a reason for my error ? Link to comment Share on other sites More sharing options...
raymix Posted May 5, 2014 Author Report Share Posted May 5, 2014 no, i had not replaced it. i only used my player_build code in your spawn.sqf file. but than, it says i need a plotpole. i tested it and setted a plot but still dont can build things of the designer. now i use your original spawn.sqf again. i was thinking that the remove function is in the player_build code, but it isnt... i have no more ideas to get the dialog back for removing my epoch build stuff... the built objects of the designer i can destroy with any weapon and then its deleted from database too, thats fine. But the remove option of epoch stuff like a ItemWoodWall doesnt appears anymore, u know? Sry for my bad english :) At my server u dont need a plot to build and i have setted up the players buildings with playerUID instead of characterID, perhaps this is a reason for my error ? make sure you got crowbar and/or etool to remove stuff, lol Remove action is to do with fnselfactions, this script avoids using it. 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