ReDBaroN Posted October 24, 2017 Report Share Posted October 24, 2017 @theduke Thanks for answering. What I mean is, on one of the rules pages I want to list features. What I'm trying to do, as there's about 25 I want to list, is to use the title1 to have "Features" in it and then use text1 as one big list... But, I need to insert line breaks to do this so, they appear as a list. Then I will knock off the remaining title and text boxes in rules.hpp and increase the size of text1. Hope that makes sense....? Link to comment Share on other sites More sharing options...
theduke Posted October 24, 2017 Author Report Share Posted October 24, 2017 30 minutes ago, ReDBaroN said: @theduke Thanks for answering. What I mean is, on one of the rules pages I want to list features. What I'm trying to do, as there's about 25 I want to list, is to use the title1 to have "Features" in it and then use text1 as one big list... But, I need to insert line breaks to do this so, they appear as a list. Then I will knock off the remaining title and text boxes in rules.hpp and increase the size of text1. Hope that makes sense....? ok, in that case you were on the right track. Its <br/> no spaces. tested and works Link to comment Share on other sites More sharing options...
ReDBaroN Posted October 24, 2017 Report Share Posted October 24, 2017 @theduke I had tried that before and tried it again just now and it doesn't work for me... Below is one that I have done as an example: _rule1title = "Owner and Admins"; //Text that will be the title of rule #1 _rule1text = "BaroN<br/><br/>Soren<br/>Logik<br/>raining thunder"; //Text that will go in rule # 1 Box, maximum of Approx 300 characters But, this just shows "<br/>" on screen without starting a new line... Sorry if I'm being dense and have missed something..? Link to comment Share on other sites More sharing options...
theduke Posted October 25, 2017 Author Report Share Posted October 25, 2017 5 hours ago, ReDBaroN said: @theduke I had tried that before and tried it again just now and it doesn't work for me... Below is one that I have done as an example: _rule1title = "Owner and Admins"; //Text that will be the title of rule #1 _rule1text = "BaroN<br/><br/>Soren<br/>Logik<br/>raining thunder"; //Text that will go in rule # 1 Box, maximum of Approx 300 characters But, this just shows "<br/>" on screen without starting a new line... Sorry if I'm being dense and have missed something..? ah yes sorry. thats the sqf. I thought you meant blocks of text in the HPP. cant test this and just guessing really lol but i took this from the rules.sqf from the original epoch missions. <br /></t> also the bohemia forums are down for maintenance. so research is dead for now lol if that doesnt work. might want to look in there how they did it for the welcome messages/rules Link to comment Share on other sites More sharing options...
ReDBaroN Posted October 25, 2017 Report Share Posted October 25, 2017 11 hours ago, theduke said: ah yes sorry. thats the sqf. I thought you meant blocks of text in the HPP. cant test this and just guessing really lol but i took this from the rules.sqf from the original epoch missions. <br /></t> also the bohemia forums are down for maintenance. so research is dead for now lol if that doesnt work. might want to look in there how they did it for the welcome messages/rules @theduke Thanks. I have tried that as well and it's not working. Odd as it works fine with a simple <br /> in the epoch rules in the mission init.... Link to comment Share on other sites More sharing options...
theduke Posted October 25, 2017 Author Report Share Posted October 25, 2017 7 hours ago, ReDBaroN said: @theduke Thanks. I have tried that as well and it's not working. Odd as it works fine with a simple <br /> in the epoch rules in the mission init.... Try \n ReDBaroN 1 Link to comment Share on other sites More sharing options...
ReDBaroN Posted October 26, 2017 Report Share Posted October 26, 2017 @theduke Jackpot! Nice one dude! Can't believe I didn't try that considering how many BE filter exceptions I have written over the years.... Many thanks theduke 1 Link to comment Share on other sites More sharing options...
theduke Posted October 26, 2017 Author Report Share Posted October 26, 2017 31 minutes ago, ReDBaroN said: @theduke Jackpot! Nice one dude! Can't believe I didn't try that considering how many BE filter exceptions I have written over the years.... Many thanks haha Salival was the one to tell me. credit goes to him salival and ReDBaroN 2 Link to comment Share on other sites More sharing options...
ReDBaroN Posted October 26, 2017 Report Share Posted October 26, 2017 @theduke One, hopefully, last question... How do you increase the font size for the rule titles? So, _rule1title, _rule2title etc.? Link to comment Share on other sites More sharing options...
theduke Posted October 27, 2017 Author Report Share Posted October 27, 2017 6 hours ago, ReDBaroN said: @theduke One, hopefully, last question... How do you increase the font size for the rule titles? So, _rule1title, _rule2title etc.? I dont have a way to test it at the moment, but im sure if you look at the rules.sqf from the epoch mission it'll show you there. or if you want to do them individually you can do this _rule1title = format ["<t size='0.60' color='#DBA901' align='center'>RULE TITLE HERE<br /></t>"]; Note that the size, color and alignment is there also ReDBaroN 1 Link to comment Share on other sites More sharing options...
ReDBaroN Posted October 27, 2017 Report Share Posted October 27, 2017 Thanks man. I'll give it a go. Link to comment Share on other sites More sharing options...
ReDBaroN Posted October 27, 2017 Report Share Posted October 27, 2017 @theduke No, tried that and many different iterations of it and just shows that text in the title. I would of though it would be controlled in the hpp files but, whatever I try doesn't seem to do it. At best so far it just knocks it out completely.. Link to comment Share on other sites More sharing options...
Petite Posted November 25, 2017 Report Share Posted November 25, 2017 I got it working but I'd like to add atv and mozzie in the deployable. I tried a couple things but its not working. A mozzie would take ItemToolbox, 2x PartGeneric, PartEngine, ItemJerrycan but not too sure how to. Also, our rules is in English and Portuguese but I'd like to have it in Russian too since we got plenty of these guy on our server but it doesn't work when you go in the game the character are replaced with exclamation, any way to change that? Link to comment Share on other sites More sharing options...
creation Posted November 30, 2017 Report Share Posted November 30, 2017 Hey duke, I've installed your custom GUI menu and have edited it so it just has View Distance buttons and Suicide, Rules actions. The problem I'm having is in relation to the 2.8.2 Deploy Anything mod. When I have your menu installed without the 2.8.2 Deploy Anything Mod it works fine but as soon as I install the mod I can no longer open the menu. RPT isn't giving any errors and I don't know what to do. Link to comment Share on other sites More sharing options...
theduke Posted December 1, 2017 Author Report Share Posted December 1, 2017 On 11/29/2017 at 11:33 PM, creation said: Hey duke, I've installed your custom GUI menu and have edited it so it just has View Distance buttons and Suicide, Rules actions. The problem I'm having is in relation to the 2.8.2 Deploy Anything mod. When I have your menu installed without the 2.8.2 Deploy Anything Mod it works fine but as soon as I install the mod I can no longer open the menu. RPT isn't giving any errors and I don't know what to do. The only issue ive known that the deploy anything mod caused, was it would overwrite any "right click" mod you had. how do you open the menu? Link to comment Share on other sites More sharing options...
creation Posted December 2, 2017 Report Share Posted December 2, 2017 14 hours ago, theduke said: The only issue ive known that the deploy anything mod caused, was it would overwrite any "right click" mod you had. how do you open the menu? Hey man, I've since figured out the problem, I had to call the keyboard sqf through my custom compiles rather than the init in order for it to work. Link to comment Share on other sites More sharing options...
Mat43 Posted August 20, 2018 Report Share Posted August 20, 2018 This is a sexy mod. Cant wait to get balls deep into it. Does anyone know if there is a way to integrate it with deploy anything? So I set the deployable's in the deployanything config, is there a way to call them through the menu buttons? Link to comment Share on other sites More sharing options...
theduke Posted September 3, 2018 Author Report Share Posted September 3, 2018 I'm sure there's a way, but i never "figured it out". I myself would love this as you can deploy and drop where you want. But the menu buttons run script, which the deploy anything is a bit more customized. It's way above my head lol Link to comment Share on other sites More sharing options...
Mig Posted September 3, 2018 Report Share Posted September 3, 2018 tested and functional. menu_init.sqf : Spoiler disableSerialization; /////////////////// //////Config////// ///////////////// _serverName = "Your Gaming Community"; // the server name that will go accross the top of the menu _ts3IP = "TS3 - TS3.yoursite.com"; // ts3 ip that will go at the bottom of the menu _websiteUrl = "www.yoursite.com"; // website url that goes at the bottom of the menu //////////////////////////////////////////// ////////////////////ACTIONS//////////////// ////////////////////////////////////////// _action1Text = "Suicide"; //Text that will go on action button 1 action1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\suicide.sqf';}; //script that action button 1 will use _action2Text = "Action 2"; //Text that will go on action button 2 action2script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\yourscript.sqf';}; //script that action button 2 will use _info1Text = "Rules"; //Text that will go on info button 1 info1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\rules_init.sqf';}; //script that info button 1 will use _info2Text = "Info 2"; //Text that will go on info button 2 info2script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info2";}; //script that info button 2 will use _info3Text = "Info 3"; //Text that will go on info button 3 info3script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info3";}; //script that action info 3 will use _info4Text = "Info 4"; //Text that will go on info button 4 info4script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info4";}; //script that action info 4 will use /////////////////////////////////////////////// //////////////DEPLOYABLES///////////////////// ///////////////////////////////////////////// _deployable1Text = "Bike"; //Text that will go on deployable button 1 _deploy1item1Text = "ToolBox"; //Text that will go in the number 1 item slot under the first deploy button _deploy1item2Text = ""; //Text that will go in the number 2 item slot under the first deploy button _deploy1item3Text = ""; //Text that will go in the number 3 item slot under the first deploy button _deploy1item4Text = ""; //Text that will go in the number 4 item slot under the first deploy button _deploy1item5Text = ""; //Text that will go in the number 5 item slot under the first deploy button deployableBike = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [0] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; _deployable2Text = "Mi171 Sh"; //Text that will go on deployable button 2 _deploy2item1Text = "Part Generic"; //Text that will go in the number 1 item slot under the Second deploy button _deploy2item2Text = "Part Generic"; //Text that will go in the number 2 item slot under the Second deploy button _deploy2item3Text = ""; //Text that will go in the number 3 item slot under the Second deploy button _deploy2item4Text = ""; //Text that will go in the number 4 item slot under the Second deploy button _deploy2item5Text = ""; //Text that will go in the number 5 item slot under the Second deploy button deployableChopper = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [2] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; _deployable3Text = "HMMWV"; //Text that will go on deployable button 3 _deploy3item1Text = "Part wheel"; //Text that will go in the number 1 item slot under the third deploy button _deploy3item2Text = "Part Wheel"; //Text that will go in the number 2 item slot under the third deploy button _deploy3item3Text = ""; //Text that will go in the number 3 item slot under the third deploy button _deploy3item4Text = ""; //Text that will go in the number 4 item slot under the third deploy button _deploy3item5Text = ""; //Text that will go in the number 5 item slot under the third deploy button deployableHmmvw = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [3] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; createDialog "menu"; //////////////////////////////// //DO NOT EDIT BELLOW THIS LINE// //////////////////////////////// fnc_update_all_text = { _finddialog = findDisplay 7777; (_finddialog displayCtrl 1609) ctrlSetText format["%1",_action1Text]; (_finddialog displayCtrl 1610) ctrlSetText format["%1",_action2Text]; (_finddialog displayCtrl 1611) ctrlSetText format["%1",_info1Text]; (_finddialog displayCtrl 1612) ctrlSetText format["%1",_info2Text]; (_finddialog displayCtrl 1613) ctrlSetText format["%1",_info3Text]; (_finddialog displayCtrl 1618) ctrlSetText format["%1",_info4Text]; (_finddialog displayCtrl 1614) ctrlSetText format["%1",_deployable1Text]; (_finddialog displayCtrl 1615) ctrlSetText format["%1",_deployable2Text]; (_finddialog displayCtrl 1616) ctrlSetText format["%1",_deployable3Text]; (_finddialog displayCtrl 1007) ctrlSetText format["%1",_deploy1item1Text]; (_finddialog displayCtrl 1008) ctrlSetText format["%1",_deploy1item2Text]; (_finddialog displayCtrl 1009) ctrlSetText format["%1",_deploy1item3Text]; (_finddialog displayCtrl 1010) ctrlSetText format["%1",_deploy1item4Text]; (_finddialog displayCtrl 1011) ctrlSetText format["%1",_deploy1item5Text]; (_finddialog displayCtrl 1012) ctrlSetText format["%1",_deploy2item1Text]; (_finddialog displayCtrl 1013) ctrlSetText format["%1",_deploy2item2Text]; (_finddialog displayCtrl 1014) ctrlSetText format["%1",_deploy2item3Text]; (_finddialog displayCtrl 1015) ctrlSetText format["%1",_deploy2item4Text]; (_finddialog displayCtrl 1016) ctrlSetText format["%1",_deploy2item5Text]; (_finddialog displayCtrl 1017) ctrlSetText format["%1",_deploy3item1Text]; (_finddialog displayCtrl 1018) ctrlSetText format["%1",_deploy3item2Text]; (_finddialog displayCtrl 1019) ctrlSetText format["%1",_deploy3item3Text]; (_finddialog displayCtrl 1020) ctrlSetText format["%1",_deploy3item4Text]; (_finddialog displayCtrl 1021) ctrlSetText format["%1",_deploy3item5Text]; (_finddialog displayCtrl 1001) ctrlSetText format["%1",_websiteUrl]; (_finddialog displayCtrl 1002) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 10003) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 1000) ctrlSetText format["%1 Menu",_serverName]; }; call fnc_update_all_text; theduke 1 Link to comment Share on other sites More sharing options...
theduke Posted September 3, 2018 Author Report Share Posted September 3, 2018 8 hours ago, Mig said: tested and functional. menu_init.sqf : Reveal hidden contents disableSerialization; /////////////////// //////Config////// ///////////////// _serverName = "Your Gaming Community"; // the server name that will go accross the top of the menu _ts3IP = "TS3 - TS3.yoursite.com"; // ts3 ip that will go at the bottom of the menu _websiteUrl = "www.yoursite.com"; // website url that goes at the bottom of the menu //////////////////////////////////////////// ////////////////////ACTIONS//////////////// ////////////////////////////////////////// _action1Text = "Suicide"; //Text that will go on action button 1 action1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\suicide.sqf';}; //script that action button 1 will use _action2Text = "Action 2"; //Text that will go on action button 2 action2script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\yourscript.sqf';}; //script that action button 2 will use _info1Text = "Rules"; //Text that will go on info button 1 info1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\rules_init.sqf';}; //script that info button 1 will use _info2Text = "Info 2"; //Text that will go on info button 2 info2script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info2";}; //script that info button 2 will use _info3Text = "Info 3"; //Text that will go on info button 3 info3script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info3";}; //script that action info 3 will use _info4Text = "Info 4"; //Text that will go on info button 4 info4script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info4";}; //script that action info 4 will use /////////////////////////////////////////////// //////////////DEPLOYABLES///////////////////// ///////////////////////////////////////////// _deployable1Text = "Bike"; //Text that will go on deployable button 1 _deploy1item1Text = "ToolBox"; //Text that will go in the number 1 item slot under the first deploy button _deploy1item2Text = ""; //Text that will go in the number 2 item slot under the first deploy button _deploy1item3Text = ""; //Text that will go in the number 3 item slot under the first deploy button _deploy1item4Text = ""; //Text that will go in the number 4 item slot under the first deploy button _deploy1item5Text = ""; //Text that will go in the number 5 item slot under the first deploy button deployableBike = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [0] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; _deployable2Text = "Mi171 Sh"; //Text that will go on deployable button 2 _deploy2item1Text = "Part Generic"; //Text that will go in the number 1 item slot under the Second deploy button _deploy2item2Text = "Part Generic"; //Text that will go in the number 2 item slot under the Second deploy button _deploy2item3Text = ""; //Text that will go in the number 3 item slot under the Second deploy button _deploy2item4Text = ""; //Text that will go in the number 4 item slot under the Second deploy button _deploy2item5Text = ""; //Text that will go in the number 5 item slot under the Second deploy button deployableChopper = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [2] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; _deployable3Text = "HMMWV"; //Text that will go on deployable button 3 _deploy3item1Text = "Part wheel"; //Text that will go in the number 1 item slot under the third deploy button _deploy3item2Text = "Part Wheel"; //Text that will go in the number 2 item slot under the third deploy button _deploy3item3Text = ""; //Text that will go in the number 3 item slot under the third deploy button _deploy3item4Text = ""; //Text that will go in the number 4 item slot under the third deploy button _deploy3item5Text = ""; //Text that will go in the number 5 item slot under the third deploy button deployableHmmvw = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [3] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; createDialog "menu"; //////////////////////////////// //DO NOT EDIT BELLOW THIS LINE// //////////////////////////////// fnc_update_all_text = { _finddialog = findDisplay 7777; (_finddialog displayCtrl 1609) ctrlSetText format["%1",_action1Text]; (_finddialog displayCtrl 1610) ctrlSetText format["%1",_action2Text]; (_finddialog displayCtrl 1611) ctrlSetText format["%1",_info1Text]; (_finddialog displayCtrl 1612) ctrlSetText format["%1",_info2Text]; (_finddialog displayCtrl 1613) ctrlSetText format["%1",_info3Text]; (_finddialog displayCtrl 1618) ctrlSetText format["%1",_info4Text]; (_finddialog displayCtrl 1614) ctrlSetText format["%1",_deployable1Text]; (_finddialog displayCtrl 1615) ctrlSetText format["%1",_deployable2Text]; (_finddialog displayCtrl 1616) ctrlSetText format["%1",_deployable3Text]; (_finddialog displayCtrl 1007) ctrlSetText format["%1",_deploy1item1Text]; (_finddialog displayCtrl 1008) ctrlSetText format["%1",_deploy1item2Text]; (_finddialog displayCtrl 1009) ctrlSetText format["%1",_deploy1item3Text]; (_finddialog displayCtrl 1010) ctrlSetText format["%1",_deploy1item4Text]; (_finddialog displayCtrl 1011) ctrlSetText format["%1",_deploy1item5Text]; (_finddialog displayCtrl 1012) ctrlSetText format["%1",_deploy2item1Text]; (_finddialog displayCtrl 1013) ctrlSetText format["%1",_deploy2item2Text]; (_finddialog displayCtrl 1014) ctrlSetText format["%1",_deploy2item3Text]; (_finddialog displayCtrl 1015) ctrlSetText format["%1",_deploy2item4Text]; (_finddialog displayCtrl 1016) ctrlSetText format["%1",_deploy2item5Text]; (_finddialog displayCtrl 1017) ctrlSetText format["%1",_deploy3item1Text]; (_finddialog displayCtrl 1018) ctrlSetText format["%1",_deploy3item2Text]; (_finddialog displayCtrl 1019) ctrlSetText format["%1",_deploy3item3Text]; (_finddialog displayCtrl 1020) ctrlSetText format["%1",_deploy3item4Text]; (_finddialog displayCtrl 1021) ctrlSetText format["%1",_deploy3item5Text]; (_finddialog displayCtrl 1001) ctrlSetText format["%1",_websiteUrl]; (_finddialog displayCtrl 1002) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 10003) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 1000) ctrlSetText format["%1 Menu",_serverName]; }; call fnc_update_all_text; very nice! good work. Link to comment Share on other sites More sharing options...
kmiller Posted September 14, 2018 Report Share Posted September 14, 2018 On 9/3/2018 at 6:32 AM, Mig said: tested and functional. menu_init.sqf : Reveal hidden contents disableSerialization; /////////////////// //////Config////// ///////////////// _serverName = "Your Gaming Community"; // the server name that will go accross the top of the menu _ts3IP = "TS3 - TS3.yoursite.com"; // ts3 ip that will go at the bottom of the menu _websiteUrl = "www.yoursite.com"; // website url that goes at the bottom of the menu //////////////////////////////////////////// ////////////////////ACTIONS//////////////// ////////////////////////////////////////// _action1Text = "Suicide"; //Text that will go on action button 1 action1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\suicide.sqf';}; //script that action button 1 will use _action2Text = "Action 2"; //Text that will go on action button 2 action2script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\yourscript.sqf';}; //script that action button 2 will use _info1Text = "Rules"; //Text that will go on info button 1 info1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\rules_init.sqf';}; //script that info button 1 will use _info2Text = "Info 2"; //Text that will go on info button 2 info2script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info2";}; //script that info button 2 will use _info3Text = "Info 3"; //Text that will go on info button 3 info3script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info3";}; //script that action info 3 will use _info4Text = "Info 4"; //Text that will go on info button 4 info4script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info4";}; //script that action info 4 will use /////////////////////////////////////////////// //////////////DEPLOYABLES///////////////////// ///////////////////////////////////////////// _deployable1Text = "Bike"; //Text that will go on deployable button 1 _deploy1item1Text = "ToolBox"; //Text that will go in the number 1 item slot under the first deploy button _deploy1item2Text = ""; //Text that will go in the number 2 item slot under the first deploy button _deploy1item3Text = ""; //Text that will go in the number 3 item slot under the first deploy button _deploy1item4Text = ""; //Text that will go in the number 4 item slot under the first deploy button _deploy1item5Text = ""; //Text that will go in the number 5 item slot under the first deploy button deployableBike = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [0] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; _deployable2Text = "Mi171 Sh"; //Text that will go on deployable button 2 _deploy2item1Text = "Part Generic"; //Text that will go in the number 1 item slot under the Second deploy button _deploy2item2Text = "Part Generic"; //Text that will go in the number 2 item slot under the Second deploy button _deploy2item3Text = ""; //Text that will go in the number 3 item slot under the Second deploy button _deploy2item4Text = ""; //Text that will go in the number 4 item slot under the Second deploy button _deploy2item5Text = ""; //Text that will go in the number 5 item slot under the Second deploy button deployableChopper = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [2] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; _deployable3Text = "HMMWV"; //Text that will go on deployable button 3 _deploy3item1Text = "Part wheel"; //Text that will go in the number 1 item slot under the third deploy button _deploy3item2Text = "Part Wheel"; //Text that will go in the number 2 item slot under the third deploy button _deploy3item3Text = ""; //Text that will go in the number 3 item slot under the third deploy button _deploy3item4Text = ""; //Text that will go in the number 4 item slot under the third deploy button _deploy3item5Text = ""; //Text that will go in the number 5 item slot under the third deploy button deployableHmmvw = { ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [3] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt }; createDialog "menu"; //////////////////////////////// //DO NOT EDIT BELLOW THIS LINE// //////////////////////////////// fnc_update_all_text = { _finddialog = findDisplay 7777; (_finddialog displayCtrl 1609) ctrlSetText format["%1",_action1Text]; (_finddialog displayCtrl 1610) ctrlSetText format["%1",_action2Text]; (_finddialog displayCtrl 1611) ctrlSetText format["%1",_info1Text]; (_finddialog displayCtrl 1612) ctrlSetText format["%1",_info2Text]; (_finddialog displayCtrl 1613) ctrlSetText format["%1",_info3Text]; (_finddialog displayCtrl 1618) ctrlSetText format["%1",_info4Text]; (_finddialog displayCtrl 1614) ctrlSetText format["%1",_deployable1Text]; (_finddialog displayCtrl 1615) ctrlSetText format["%1",_deployable2Text]; (_finddialog displayCtrl 1616) ctrlSetText format["%1",_deployable3Text]; (_finddialog displayCtrl 1007) ctrlSetText format["%1",_deploy1item1Text]; (_finddialog displayCtrl 1008) ctrlSetText format["%1",_deploy1item2Text]; (_finddialog displayCtrl 1009) ctrlSetText format["%1",_deploy1item3Text]; (_finddialog displayCtrl 1010) ctrlSetText format["%1",_deploy1item4Text]; (_finddialog displayCtrl 1011) ctrlSetText format["%1",_deploy1item5Text]; (_finddialog displayCtrl 1012) ctrlSetText format["%1",_deploy2item1Text]; (_finddialog displayCtrl 1013) ctrlSetText format["%1",_deploy2item2Text]; (_finddialog displayCtrl 1014) ctrlSetText format["%1",_deploy2item3Text]; (_finddialog displayCtrl 1015) ctrlSetText format["%1",_deploy2item4Text]; (_finddialog displayCtrl 1016) ctrlSetText format["%1",_deploy2item5Text]; (_finddialog displayCtrl 1017) ctrlSetText format["%1",_deploy3item1Text]; (_finddialog displayCtrl 1018) ctrlSetText format["%1",_deploy3item2Text]; (_finddialog displayCtrl 1019) ctrlSetText format["%1",_deploy3item3Text]; (_finddialog displayCtrl 1020) ctrlSetText format["%1",_deploy3item4Text]; (_finddialog displayCtrl 1021) ctrlSetText format["%1",_deploy3item5Text]; (_finddialog displayCtrl 1001) ctrlSetText format["%1",_websiteUrl]; (_finddialog displayCtrl 1002) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 10003) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 1000) ctrlSetText format["%1 Menu",_serverName]; }; call fnc_update_all_text; Hi, this doesn't work for me. It closes the Dialog but it does not execute the deploy anything correctly. Furthermore I think there is a typo in your code: ((ctrlParent (_this select 0)) closeDisplay 7777); // this command close the dialog [0] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt instead of ((ctrlParent (_this select 0)) closeDisplay 7777), // this command close the dialog [0] execVM "scripts\deployAnything\deploy.sqf"; // execute the scipt This is my customs/menu/menu_init.sqf: deployable1script = {((ctrlParent (_this select 0)) closeDisplay 7777); [0] execVM 'scripts\deployAnything\deploy.sqf';}; This is a excerpt from my scripts/deployAnything/config.sqf: DZE_DEPLOYABLES_CONFIG = [ ["ItemToolbox",[0,6,1],5,0.1,false,false,false,false,false,true,true,["MMT_Civ"],[],["ItemToolbox"],"true"], ["ItemToolbox",[0,6,1],5,0.1,false,false,false,false,false,true,true,["CSJ_GyroC"],[],["ItemToolbox", "PartEngine", "ItemJerrycan", "PartVRotor", "PartGeneric"],"true"], ["ItemToolbox",[0,9,2],5,0.9,true,true,false,true,true,false,true,["HeliHCivil"],[],["ItemRuby", "ItemSapphire"],"true"] ]; Does anybody know where the fault could be? I think it is the parameter for the execVM :/ Link to comment Share on other sites More sharing options...
Mig Posted September 15, 2018 Report Share Posted September 15, 2018 there is no typo in my code.The code works, I have it tested, check that you have not made any mistakes. Link to comment Share on other sites More sharing options...
kmiller Posted September 15, 2018 Report Share Posted September 15, 2018 Hi, thanks for your reply. I get with exactly your code this error Error in expression <getDeployableClass = { (DZE_DEPLOYABLES select _this) select 11 }; getDeployabl> Error position: <select _this) select 11 }; getDeployabl> Error select: Typ Array, erwartet Zahl,Bool File mpmissions\__CUR_MP.Chernarus\scripts\deployAnything\wrapper.sqf, line 60 Moreover what is the parameter for in: [0] execVM "scripts\deployAnything\deploy.sqf"; I assumed it is the row of the DZE_DEPLOYABLES_CONFIG-Array. Is this correct? Link to comment Share on other sites More sharing options...
Mig Posted September 16, 2018 Report Share Posted September 16, 2018 send me your folder deploy anything as well as the menu folder, I will look where is the problem. Link to comment Share on other sites More sharing options...
kmiller Posted September 16, 2018 Report Share Posted September 16, 2018 Hi, thank you for your help :) scripts\deployAnything scripts\deployAnything\config.sqf: Spoiler // **FORMAT** -- (note no comma after last array entry) // // DZE_DEPLOYABLES_CONFIG = [ // [_clickItem,_deployOffset,_packDistance,_damageLimit,_packAny,_cargo,_ammo,_hive,_plot,_simulation,_road,_deployables,_near,_parts,_condition], // [_clickItem,_deployOffset,_packDistance,_damageLimit,_packAny,_cargo,_ammo,_hive,_plot,_simulation,_road,_deployables,_near,_parts,_condition], // [...more stuff here...] // ]; // // parameter | description | type | example // --------------|---------------------------------------------------------------------|--------|-------- // _clickItem | class name of the item to click on | string | "ItemToolbox" // _deployOffset | [_side,_front,_up] array to offset the deployable when buiding | array | [0,2,1] // _packDistance | how close does the packer need to be to pack the object? | number | 5 // _damageLimit | item can't be repacked if damage is > this. (-1 = no re-packing) | number | 0.1 // _packAny | can anyone repack the deployable? | bool | false // _cargo | clear the cargo of the deployable? | bool | false // _ammo | should vehicle ammo be cleared? (does not persist through restart) | bool | true // _hive | write deployable to database? | bool | false // _plot | require a plot from the owner to build the deployable? | bool | false // _simulation | enable simulation (movement/damage) for the object? (true for cars) | bool | true // _road | enable road building for this object? | bool | true // _deployables | array of class names that can be deployed with this method | array | ["MMT_Civ"] // _near | array of items required nearby to build (workshop/fire/fueltank) | array | [] // _parts | array of parts required to build (will be taken from player) | array | ["ItemToolbox"] // _condition | string of code to evaluate to determine whether action is shown | string | "!(isNull player) && {(getPlayerUID player) in DZE_DEPLOYABLE_ADMINS}" DZE_DEPLOYABLES_CONFIG = [ ["ItemToolbox",[0,6,1],5,0.1,false,false,false,false,false,true,true,["MMT_Civ"],[],["ItemToolbox"],"true"], ["ItemToolbox",[0,6,1],5,0.1,false,false,false,false,false,true,true,["CSJ_GyroC"],[],["ItemToolbox", "PartEngine", "ItemJerrycan", "PartVRotor", "PartGeneric"],"true"], ["ItemToolbox",[0,9,2],5,0.9,true,true,false,true,true,false,true,["HeliHCivil"],[],["ItemRuby", "ItemSapphire"],"true"] ]; DZE_DEPLOYABLE_NAME_MAP = [ ["Notebook","Macbook Pro"] ]; DZE_DEPLOYABLE_ADMINS = []; scripts\deployAnything\deploy.sqf: Spoiler private["_exitWith","_position","_display","_object","_handle"]; _exitWith = "nil"; // close the gear display when player starts to deploy disableSerialization; _display = findDisplay 106; if(!(isNull _display)) then { _display closeDisplay 0; }; // check these conditions to make sure it's okay to start deploying, if it's not, we'll get a message back { if(_x select 0) exitWith { _exitWith = (_x select 1); }; } forEach [ [(getPlayerUID player) in DZE_DEPLOYABLE_ADMINS, "admin"], [!([player,_this] call getHasDeployableParts), format["You need %1 to build %2",str (_this call getDeployableParts),(_this call getDeployableDisplay)]], [!(call fnc_can_do), format["You can't build a %1 right now.",(_this call getDeployableDisplay)]], [(player getVariable["inCombat",false]), format["Can't build a %1 while in combat!",(_this call getDeployableDisplay)]], [DZE_DEPLOYING, "You are already building something!"], [DZE_PACKING, "You are already packing something!"] ]; // if we got an error message, show it and leave the script if(_exitWith != "nil" && _exitWith != "admin") exitWith { taskHint [_exitWith, DZE_COLOR_DANGER, "taskFailed"]; }; // now we're deploying! DZE_DEPLOYING = true; DZE_DEPLOYING_SUCCESSFUL = false; _handle = (_this call getDeployableClass) spawn player_deploy; waitUntil{scriptDone _handle;}; DZE_DEPLOYING = false; // if we got an error message, show it and leave the script if(!DZE_DEPLOYING_SUCCESSFUL) then { taskHint ["Deploying Failed!", DZE_COLOR_DANGER, "taskFailed"]; } else { // congrats! taskHint [format["You've built a %1!",(_this call getDeployableDisplay)], DZE_COLOR_PRIMARY, "taskDone"]; sleep 10; // notify of despawn if it's not a permanent vehicle if (!(_this call getPermanent)) then { cutText ["Warning: Deployed vehicles DO NOT SAVE after server restart!", "PLAIN DOWN"]; } else { cutText ["This vehicle is permanent and will persist through server restarts!", "PLAIN DOWN"]; }; }; scripts\deployAnything\functions.sqf: Spoiler // this function checks if play is on ladder/passed out/being drug fnc_can_do = { private["_onLadder"]; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; (!r_drag_sqf and !r_player_unconscious and !_onLadder) }; // this goes through a crafting animation until the loop is interrupted until interrupted by a set of conditions fed to the function // it then returns the result of what broke the loop, or "nil" -- yes, string of "nil" -- if not broken fnc_bike_crafting_animation = { private["_dis","_sfx","_isLoopDone","_isAnimationStarted","_isAnimationCompleted","_animationState","_isAnimationActive","_exitWith"]; _dis=10; _sfx = "repair"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] spawn player_alertZombies; player playActionNow "Medic"; r_interrupt = false; _isLoopDone = false; _isAnimationStarted = false; _isAnimationCompleted = false; _animationState = animationState player; _isAnimationActive = false; _exitWith = "nil"; while {!_isLoopDone} do { _animationState = animationState player; _isAnimationActive = ["medic",_animationState] call fnc_inString; if (_isAnimationActive) then { _isAnimationStarted = true; }; if (_isAnimationStarted and !_isAnimationActive) then { _isLoopDone = true; _isAnimationCompleted = true; }; { if(call compile (_x select 0)) exitWith { _exitWith = _x select 1; }; } forEach _this; if (_exitWith != "nil") then { _isLoopDone = true; player switchMove ""; player playActionNow "stop"; }; sleep 0.3; }; _exitWith }; fnc_set_temp_deployable_id = { _this setVariable ["DeployedBy",call fnc_temp_deployable_id, true]; }; fnc_set_perm_deployable_id = { _this setVariable ["CharacterID",call fnc_perm_deployable_id, true]; }; fnc_get_perm_deployable_id = { private["_return","_parse"]; _return = _this getVariable ["CharacterID","0"]; _parse = parseNumber _return; if(_parse < 500000) then { _return = "nil"; }; _return }; fnc_get_temp_deployable_id = { _this getVariable ["DeployedBy","nil"] }; fnc_perm_deployable_id = { private["_calc","_return"]; _calc = 999999 - (parseNumber dayz_characterID); if(_calc < 500000) then { _return = "nil"; } else { _return = (str _calc); }; _return }; fnc_temp_deployable_id = { getPlayerUID player }; scripts\deployAnything\init.sqf: Spoiler // included compiles call compile preprocessFileLineNumbers "scripts\deployAnything\config.sqf"; call compile preprocessFileLineNumbers "scripts\deployAnything\wrapper.sqf"; call compile preprocessFileLineNumbers "scripts\deployAnything\functions.sqf"; DZE_DEPLOYABLE_VERSION = "2.8.2"; DZE_CRV_DEPLOYABLE = 3; diag_log text format["BIKE: loading version %1 ...",DZE_DEPLOYABLE_VERSION]; player_deploy = compile preprocessFileLineNumbers "addons\bike\player_deploy.sqf"; // inflate deployables DZE_DEPLOYABLES = []; { private["_class","_distance","_deployables","_packDist","_packOthers","_clearCargo","_clearAmmo","_permanent","_damage","_needNear","_parts","_requirePlot","_enableSim","_road","_condition"]; _class = _x select 0; _distance = _x select 1; _packDist = _x select 2; _damage = _x select 3; _packOthers = _x select 4; _clearCargo = _x select 5; _clearAmmo = _x select 6; _permanent = _x select 7; _requirePlot = _x select 8; _enableSim = _x select 9; _road = _x select 10; _deployables = _x select 11; _needNear = _x select 12; _parts = _x select 13; _condition = _x select 14; { DZE_DEPLOYABLES set [count DZE_DEPLOYABLES,[_class,_distance,_packDist,_damage,_packOthers,_clearAmmo,_permanent,_x,_needNear,_parts,_requirePlot,_enableSim,_road,_condition,_clearCargo]]; } forEach _deployables; } forEach DZE_DEPLOYABLES_CONFIG; // if server then we only need to define the safe vehicles for each deployable if (isServer) exitWith { diag_log text "BIKE: adding bike to safe vehicle list..."; { DZE_safeVehicle = DZE_safeVehicle + [(_forEachIndex call getDeployableClass)]; if(!(_forEachIndex call getDeployableSimulation)) then { DayZ_SafeObjects set [count DayZ_SafeObjects,(_forEachIndex call getDeployableClass)]; }; } forEach DZE_DEPLOYABLES; //diag_log text format["BIKE: done patching DZE_safeVehicle: %1",str DZE_safeVehicle]; //diag_log text format["BIKE: done patching DayZ_SafeObjects: %1",str DayZ_SafeObjects]; }; [] spawn { // call dependency call compile preprocessFileLineNumbers "scripts\clickActions\init.sqf"; if (!(isServer) && {isNil "DZE_CLICK_ACTIONS_BUILD"}) exitWith { diag_log text "BIKE: ERROR -- Click Actions Handler missing!"; }; if (!(isServer) && {DZE_CLICK_ACTIONS_BUILD != DZE_CRV_DEPLOYABLE}) exitWith { diag_log text format["BIKE: ERROR -- Click Actions Handler loaded build #%1! Required build #%2!",DZE_CLICK_ACTIONS_BUILD,DZE_CRV_DEPLOYABLE]; }; // register actions with the click actions handler {DZE_CLICK_ACTIONS = DZE_CLICK_ACTIONS + [[(_forEachIndex call getDeployableKitClass),format["Deploy %1",(_forEachIndex call getDeployableDisplay)],format["%1 execVM 'addons\bike\deploy.sqf';",_forEachIndex],(_forEachIndex call getDeployableCondition)]];} forEach DZE_DEPLOYABLES; DZE_DEPLOYING = false; DZE_PACKING = false; // colors for formatting messages DZE_COLOR_PRIMARY = [(51/255),(181/255),(229/255),1]; DZE_COLOR_SUCCESS = [(153/255),(204/255),0,1]; DZE_COLOR_DANGER = [1,(68/255),(68/255),1]; // wait for login before we start checking actions diag_log text "BIKE: waiting for login..."; waitUntil{!isNil "Dayz_loginCompleted"}; // unlock locked deployable vehicles [] spawn { waitUntil {sm_done;}; { if (parseNumber(_x getVariable["CharacterID","0"]) > 500000) then { [_x,false] call local_lockUnlock; }; } forEach vehicles; }; while {true} do { if(!isNull player) then { { private ["_cursorTarget"]; _cursorTarget = cursorTarget; //make sure all of these conditions pass before adding any actions -- shouldn't be too laggy since it's called every 2s rather than every frame like normal actions if(!(isNull _cursorTarget) && {_forEachIndex call getDeployablePackAny} && {typeOf _cursorTarget == (_forEachIndex call getDeployableClass)} && {call fnc_can_do} && {(((_cursorTarget call fnc_get_temp_deployable_id) != "nil") || ((_cursorTarget call fnc_get_perm_deployable_id) != "nil"))} && {( ((_cursorTarget call fnc_get_perm_deployable_id) == (call fnc_perm_deployable_id)) || ((_cursorTarget call fnc_get_temp_deployable_id) == (call fnc_temp_deployable_id)) || (_forEachIndex call getDeployablePackOthers) || ((getPlayerUID player) in DZE_DEPLOYABLE_ADMINS) )} && {(player distance _cursorTarget) < (_forEachIndex call getDeployablePackDistance)}) then { if ((_forEachIndex call getActionId) < 0) then { [_forEachIndex,player addaction["<t color='#33b5e5'>" + format["Pack %1",(_forEachIndex call getDeployableDisplay)] + "</t>","addons\bike\pack.sqf",[_forEachIndex,_cursorTarget],0,false,true,"", ""]] call setActionId; }; } else { player removeAction (_forEachIndex call getActionId); [_forEachIndex,-1] call setActionId; }; //if((_forEachIndex call getActionId) > -1) exitWith {}; } forEach DZE_DEPLOYABLES; }; sleep 2.5; }; }; scripts\deployAnything\pack.sqf: Spoiler private["_isPackingLocked","_lastPackTime","_exitWith","_deployable","_cursorTarget"]; // set up all these variables _exitWith = "nil"; _deployable = (_this select 3) select 0; _cursorTarget = (_this select 3) select 1; _lastPackTime = _cursorTarget getVariable["lastPackTime",diag_tickTime - 11]; _isPackingLocked = diag_tickTime - _lastPackTime < 10; // check these conditions to make sure it's okay to start packing, if it's not, we'll get a message back { if(_x select 0) exitWith { _exitWith = (_x select 1); }; } forEach [ [(getPlayerUID player) in DZE_DEPLOYABLE_ADMINS, "admin"], [!(call fnc_can_do), format["You can't pack your %1 right now.",(_deployable call getDeployableDisplay)]], [(player getVariable["inCombat",false]), format["Can't pack a %1 while in combat!",(_deployable call getDeployableDisplay)]], [(damage cursorTarget > (_deployable call getDamageLimit)), format["The %1 must be under %2 percent damaged to pack!",(_deployable call getDeployableDisplay),(_deployable call getDamageLimit) * 100]], [_isPackingLocked, format["Someone just tried to pack that %1! Try again in a few seconds.",(_deployable call getDeployableDisplay)]], [DZE_PACKING, "You are already packing something!"], [DZE_DEPLOYING, "You are already building something!"] ]; // if we got an error message, show it and leave the script if(_exitWith != "nil" && _exitWith != "admin") exitWith { taskHint [_exitWith, DZE_COLOR_DANGER, "taskFailed"]; }; // now we're packing it, also make the whole server knows we're packing it, so nobody else can _cursorTarget setVariable["lastPackTime",diag_tickTime,true]; DZE_PACKING = true; // do the crafting animation until we either finish it or one of these conditions is broken _exitWith = [ ["(getPlayerUID player) in DZE_DEPLOYABLE_ADMINS", "admin"], ["r_interrupt", format["Packing %1 interrupted!",(_deployable call getDeployableDisplay)]], ["(player getVariable['inCombat',false])", format["Can't pack a %1 while in combat!",(_deployable call getDeployableDisplay)]] ] call fnc_bike_crafting_animation; // if we got an error message, show it and leave the script if(_exitWith != "nil" && _exitWith != "admin") exitWith { DZE_PACKING = false; taskHint [_exitWith, DZE_COLOR_DANGER, "taskFailed"]; }; // give the stuff back and delete the vehicle { if(isClass(configFile >> "CfgWeapons" >> _x)) then { player addWeapon _x; }; if(isClass(configFile >> "CfgMagazines" >> _x)) then { player addMagazine _x; }; } forEach (_deployable call getDeployableParts); if(_deployable call getPermanent) then { PVDZ_obj_Destroy = [_cursorTarget getVariable["ObjectID","0"],_cursorTarget getVariable["ObjectUID","0"],player]; publicVariableServer "PVDZ_obj_Destroy"; }; _cursorTarget setPos [0,0,0]; deleteVehicle _cursorTarget; player removeAction (_deployable call getActionId); [_deployable,-1] call setActionId; DZE_PACKING = false; // congrats! taskHint [format["You packed %1 back into your %2.",(_deployable call getDeployableDisplay),(_deployable call getDeployableKitDisplay)], DZE_COLOR_PRIMARY, "taskDone"]; scripts\deployAnything\player_deploy.sqf: Spoiler /* DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected]. */ private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_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"]; if(dayz_actionInProgress) exitWith { localize "str_epoch_player_40" call dayz_rollingMessages; }; dayz_actionInProgress = true; // disallow building if too many objects are found within 30m _buildables = DZE_maintainClasses + DZE_LockableStorage + ["DZ_buildables","DZ_storage_base"]; if (count (nearestObjects [getPosATL player,_buildables,30]) >= DZE_BuildingLimit) exitWith {dayz_actionInProgress = false; format[localize "str_epoch_player_41",30] call dayz_rollingMessages;}; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _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 (dayz_isSwimming) exitWith {dayz_actionInProgress = false; localize "str_player_26" call dayz_rollingMessages;}; if (_inVehicle) exitWith {dayz_actionInProgress = false; localize "str_epoch_player_42" call dayz_rollingMessages;}; if (_onLadder) exitWith {dayz_actionInProgress = false; localize "str_player_21" call dayz_rollingMessages;}; if (player getVariable["combattimeout",0] >= diag_tickTime) exitWith {dayz_actionInProgress = false; localize "str_epoch_player_43" call dayz_rollingMessages;}; _item = _this; // Need Near Requirements _abort = false; _reason = ""; //### BEGIN MODIFIED CODE: player_deploy //_needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "neednearby"); private["_index"]; _index = _this call getDeployableIndex; _needNear = _index call getDeployableNeedNearBy; //### END MODIFIED CODE: player_deploy { switch(_x) do{ case "fire": { _distance = 3; _isNear = {inflamed _x} count (getPosATL player nearObjects _distance); if(_isNear == 0) then { _abort = true; _reason = "fire"; }; }; case "workshop": { _distance = 3; _isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; _reason = "workshop"; }; }; case "fueltank": { _distance = 30; _isNear = count (nearestObjects [player, dayz_fuelsources, _distance]); if(_isNear == 0) then { _abort = true; _reason = "fuel tank"; }; }; }; } forEach _needNear; if(_abort) exitWith { cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"]; dayz_actionInProgress = false; }; //### BEGIN MODIFIED CODE: player_deploy //_classname = getText (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "create"); //_classnametmp = _classname; //_require = getArray (configFile >> "cfgMagazines" >> _this >> "ItemActions" >> "Build" >> "require"); //_text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName"); //_ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview"); _classname = _index call getDeployableClass; _classnametmp = _classname; _require = []; _text = _index call getDeployableDisplay; _ghost = ""; //### END MODIFIED CODE: player_deploy _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable"); }; _requireplot = 1; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then { _requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot"); }; //### BEGIN MODIFIED CODE: player_deploy if(_index call getDeployableRequirePlot) then {_requireplot = 1;} else {_requireplot = 0;}; //### END MODIFIED CODE: player_deploy _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,1.5,0]; }; //### BEGIN MODIFIED CODE: player_deploy _offset = _index call getDeployableDistanceOffset; //### END MODIFIED CODE: player_deploy _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; }; // check for near plot _findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance]; _findNearestPole = []; { if (alive _x) then { _findNearestPole set [(count _findNearestPole),_x]; }; } count _findNearestPoles; _IsNearPlot = count (_findNearestPole); // If item is plot pole && another one exists within 45m if(_isPole && _IsNearPlot > 0) exitWith { dayz_actionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; }; private["_exitWith"]; if(_IsNearPlot == 0) then { // Allow building of plot if(_requireplot == 0 || _isLandFireDZ) then { _canBuildOnPlot = true; } else { _exitWith = (localize "STR_EPOCH_PLAYER_135"); }; } else { // Since there are plots nearby we check for ownership && then for friend status // check nearby plots ownership && then for friend status _nearestPole = _findNearestPole select 0; // Find owner _ownerID = _nearestPole getVariable ["CharacterID","0"]; // diag_log format["DEBUG BUILDING: %1 = %2", dayz_characterID, _ownerID]; // check if friendly to owner if(dayz_characterID == _ownerID) then { //Keep ownership // owner can build anything within his plot except other plots if(!_isPole) then { _canBuildOnPlot = true; } else { _exitWith = "You can't build a plot within your plot!"; }; } else { // disallow building plot if(!_isPole) then { _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(_ownerID in _friendlies) then { _canBuildOnPlot = true; } else { _exitWith = "You can't build on someone else's plot!"; }; }; }; }; // _message if(!_canBuildOnPlot) exitWith { dayz_actionInProgress = false; cutText [format[_exitWith,_needText,_distance] , "PLAIN DOWN"]; }; _missing = ""; _hasrequireditem = true; { _hastoolweapon = _x in weapons player; if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); }; } count _require; //### BEGIN MODIFIED CODE player_deploy _hastoolweapon = (_index call getDeployableKitClass) in ((weapons player) + (magazines player)); if(!_hastoolweapon) then { _hasrequireditem = false; _missing = (_index call getDeployableKitDisplay); }; //### END MODIFIED CODE: player_deploy //### BEGIN MODIFIED CODE player_deploy //_hasbuilditem = _this in magazines player; //if (!_hasbuilditem) exitWith {dayz_actionInProgress = false; cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]; }; _hasbuilditem = [player,_index] call getHasDeployableParts; if (!_hasbuilditem) exitWith {dayz_actionInProgress = false; cutText [format[(localize "str_player_31"),str (_index call getDeployableParts),"build"] , "PLAIN DOWN"]; }; //### END MODIFIED CODE: player_deploy if (!_hasrequireditem) exitWith {dayz_actionInProgress = false; cutText [format[(localize "str_epoch_player_137"),_missing] , "PLAIN DOWN"]; }; if (_hasrequireditem) then { _dir = getdir player; _location = getPos player; _location = [(_location select 0)+8*sin(_dir),(_location select 1)+8*cos(_dir),0]; //maybe adjust the hight? [x,y,z(0)] _isOk = true; // get inital players position _location1 = getPosATL player; //_dir = getDir player; // if ghost preview available use that instead if (_ghost != "") then { _classname = _ghost; }; _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; //### BEGIN MODIFIED CODE player_deploy _object setVariable["ObjectUID","1",true]; _object attachTo [player,_offset]; _position = getPosATL _object; //_dir = 0; _object setDir _dir; //### END MODIFIED CODE: player_deploy 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; //###BEGIN MODIFIED CODE: player deploy //_dir = 0; _dir = _dir + 30; //###END MODIFIED CODE: player deploy }; if (DZE_6) then { _rotate = true; DZE_6 = false; //###BEGIN MODIFIED CODE: player deploy //_dir = 180; _dir = _dir - 30; //###END MODIFIED CODE: player deploy }; 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; }; //###BEGIN MODIFIED CODE: player deploy //_object setDir (getDir _object); //###END MODIFIED CODE: player deploy if((_isAllowedUnderGround == 0) && ((_position select 2) < 0)) then { _position set [2,0]; }; _object setPosATL _position; //diag_log format["DEBUG Change BUILDING POS: %1", _position]; _object attachTo [player]; //### BEGIN MODIFIED CODE player_deploy _object setDir _dir; //### END MODIFIED CODE: player_deploy }; 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]; _object setPos[0,0,0]; 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; _object setPos[0,0,0]; deleteVehicle _object; }; if(abs(_objHDiff) > 5) exitWith { _isOk = false; _cancel = true; _reason = "Cannot move up || down more than 5 meters"; detach _object; _object setPos[0,0,0]; deleteVehicle _object; }; if (player getVariable["inCombat",false]) exitWith { _isOk = false; _cancel = true; _reason = (localize "str_epoch_player_43"); detach _object; _object setPos[0,0,0]; deleteVehicle _object; }; if (DZE_cancelBuilding) exitWith { _isOk = false; _cancel = true; _reason = "Cancelled building."; detach _object; _object setPos[0,0,0]; deleteVehicle _object; }; }; //### END MODIFIED CODE: road building //No building on roads unless toggled //if (!DZE_BuildOnRoads) then { if (!(_index call getDeployableBuildOnRoad)) then { //### END MODIFIED CODE: road building if (isOnRoad [_position select 0, _position select 1, 0]) 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(!_cancel) then { _classname = _classnametmp; // Start Build _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; //### BEGIN MODIFIED CODE: player deploy if (!(_index call getDeployableSimulation)) then { _tmpbuilt enableSimulation false; }; _tmpbuilt setVariable ["ObjectUID", "1", true]; //### END MODIFIED CODE: player deploy _tmpbuilt setdir _dir; // Get position based on object _location = _position; if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then { _location set [2,0]; }; _tmpbuilt setPosATL _location; cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"]; _limit = 3; if (DZE_StaticConstructionCount > 0) then { _limit = DZE_StaticConstructionCount; } else { if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; }; _isOk = true; _proceed = false; _counter = 0; while {_isOk} do { ["Working",0,[100,15,10,0]] call dayz_NutritionSystem; player playActionNow "Medic"; _dis=20; _sfx = "repair"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] spawn player_alertZombies; r_interrupt = false; r_doLoop = true; _started = false; _finished = false; while {r_doLoop} do { _animState = animationState player; _isMedic = ["medic",_animState] call fnc_inString; if (_isMedic) then { _started = true; }; if (_started && !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt || (player getVariable["inCombat",false])) then { r_doLoop = false; }; if (DZE_cancelBuilding) exitWith { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if(!_finished) exitWith { _isOk = false; _proceed = false; }; if(_finished) then { _counter = _counter + 1; }; cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"]; if(_counter == _limit) exitWith { _isOk = false; _proceed = true; }; }; if (_proceed) then { //###BEGIN MODIFIED CODE //_num_removed = ([player,_item] call BIS_fnc_invRemove); //if(_num_removed == 1) then { if([player,_index] call getHasDeployableParts) then { [player,_index] call removeDeployableParts; //###BEGIN MODIFIED CODE cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; if (_isPole) then { [] spawn player_plotPreview; }; _tmpbuilt setVariable ["OEMPos",_location,true]; if(_lockable > 1) then { _combinationDisplay = ""; switch (_lockable) do { case 2: { // 2 lockbox _combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; if (_combination_1 == 100) then { _combination_1_Display = "Red"; }; if (_combination_1 == 101) then { _combination_1_Display = "Green"; }; if (_combination_1 == 102) then { _combination_1_Display = "Blue"; }; _combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3]; }; case 3: { // 3 combolock _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; _combinationDisplay = _combination; }; case 4: { // 4 safe _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination_4 = floor(random 10); _combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4]; dayz_combination = _combination; _combinationDisplay = _combination; }; }; _tmpbuilt setVariable ["CharacterID",_combination,true]; PVDZ_obj_Publish = [_combination,_tmpbuilt,[_dir,_location],_classname]; publicVariableServer "PVDZ_obj_Publish"; cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5]; } else { //_tmpbuilt setVariable ["CharacterID",dayz_characterID,true]; //### BEGIN MODIFIED CODE: player deploy // fire? //if(_tmpbuilt isKindOf "Land_Fire_DZ") then { // _tmpbuilt spawn player_fireMonitor; //} else { // PVDZ_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname]; // publicVariableServer "PVDZ_obj_Publish"; //}; if (_index call getPermanent) then { _tmpbuilt call fnc_set_temp_deployable_id; if(_index call getDeployableSimulation) then { PVDZE_veh_Publish2 = [_tmpbuilt,[_dir,_position],(_index call getDeployableClass),true,call fnc_perm_deployable_id]; publicVariableServer "PVDZE_veh_Publish2"; } else { PVDZ_obj_Publish = [call fnc_perm_deployable_id,_tmpbuilt,[_dir,_position],(_index call getDeployableClass)]; publicVariableServer "PVDZ_obj_Publish"; }; } else { _tmpbuilt call fnc_set_temp_deployable_id; }; if(_index call getClearCargo) then { clearWeaponCargoGlobal _tmpbuilt; clearMagazineCargoGlobal _tmpbuilt; }; if(_index call getDeployableClearAmmo) then { _tmpbuilt setVehicleAmmo 0; }; player reveal _tmpbuilt; DZE_DEPLOYING_SUCCESSFUL = true; //### END MODIFIED CODE: player deploy }; } else { _tmpbuilt setPos[0,0,0]; deleteVehicle _tmpbuilt; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; _tmpbuilt setPos[0,0,0]; deleteVehicle _tmpbuilt; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"]; }; }; dayz_actionInProgress = false; '_this setVehicleInit "this setVectorUp [0,0,1];";'; scripts\deployAnything\wrapper.sqf: Spoiler /* this sqf file is used to manipulate the deployable array to work more like a class than an array */ /* this gets the item that makes the deployable */ getDeployableKitClass = { (DZE_DEPLOYABLES select _this) select 0 }; /* this gets the distance of the deployable */ getDeployableDistanceOffset = { (DZE_DEPLOYABLES select _this) select 1 }; /* this gets the distance a player must be to pack the deployable back up */ getDeployablePackDistance = { (DZE_DEPLOYABLES select _this) select 2 }; /* if the damage is higher than this, it can't be packed again */ getDamageLimit = { (DZE_DEPLOYABLES select _this) select 3 }; /* should players be allowed to pack deployables placed by others? */ getDeployablePackOthers = { (DZE_DEPLOYABLES select _this) select 4 }; /* checks if cargo should be cleared for this item */ getClearCargo = { (DZE_DEPLOYABLES select _this) select 5 }; /* should the vehicle be saved permanently to the database */ getPermanent = { (DZE_DEPLOYABLES select _this) select 6 }; /* this gets the class of the deployable */ getDeployableClass = { (DZE_DEPLOYABLES select _this) select 7 }; getDeployableNeedNearBy = { (DZE_DEPLOYABLES select _this) select 8 }; /* the parts required to make this item */ getDeployableParts = { (DZE_DEPLOYABLES select _this) select 9 }; /* does the deployable require a plot to build ? */ getDeployableRequirePlot = { (DZE_DEPLOYABLES select _this) select 10 }; /* does the object have simulation enabled? */ getDeployableSimulation = { (DZE_DEPLOYABLES select _this) select 11 }; /* can the object be built on a road? */ getDeployableBuildOnRoad = { (DZE_DEPLOYABLES select _this) select 12 }; /* what condition is used to determine whether or not the player sees the option? */ getDeployableCondition = { (DZE_DEPLOYABLES select _this) select 13 }; /* should vehicle ammo be cleared when spawned? */ getDeployableClearAmmo = { (DZE_DEPLOYABLES select _this) select 14 }; /* should players be allowed to pack deployables at all? */ getDeployablePackAny = { ((_this call getDamageLimit) >= 0) || (!(isNull player) && {(getPlayerUID player) in DZE_DEPLOYABLE_ADMINS}); }; /* this gets what type of item the kit is*/ getDeployableKitType = { private["_return"]; if(isClass(configFile >> "CfgWeapons" >> (_this call getDeployableKitClass))) then { _return = "CfgWeapons"; } else { _return = "CfgMagazines"; }; _return }; /* this is a wrapper function for getting the value of the scroll action */ getActionId = { call compile format[" if (isNil 'DZE_ACTION_DEPLOYABLE_PACK_%1') then { DZE_ACTION_DEPLOYABLE_PACK_%1 = -1; }; DZE_ACTION_DEPLOYABLE_PACK_%1 ",_this]; }; /* this is a wrapper function for setting the value of the scroll action */ setActionId = { call compile format["DZE_ACTION_DEPLOYABLE_PACK_%1 = %2;",_this select 0,_this select 1]; }; /* this gets the display name of the kit or falls back to class name if unsuccessful */ getDeployableKitDisplay = { private["_display"]; //diag_log text format["BIKE: trying to get display of %1",_this call getDeployableKitClass]; _display = getText (configFile >> (_this call getDeployableKitType) >> (_this call getDeployableKitClass) >> "displayName"); //diag_log text format["BIKE: post config lookup: display = %1",_display]; if((isNil "_display")||_display == "") then { _display = (_this call getDeployableKitClass); }; //diag_log text format["BIKE: post patch check: display = %1",_display]; _display }; /* this gets the display name of the deployable or falls back to class name if unsuccessful */ getDeployableDisplay = { private["_display","_class"]; _class = (_this call getDeployableClass); //diag_log text format["BIKE: trying to get display of %1",_this call getDeployableClass]; _display = getText (configFile >> "CfgVehicles" >> _class >> "displayName"); //diag_log text format["BIKE: post config lookup: display = %1",_display]; if((isNil "_display")||_display == "") then { _display = _class; }; { if(_class == (_x select 0)) then { _display = (_x select 1); }; } forEach DZE_DEPLOYABLE_NAME_MAP; //diag_log text format["BIKE: post patch check: display = %1",_display]; _display }; /* looks up the index of a deployable based on the class */ getDeployableIndex = { private["_return"]; _return = -1; { if(_this == (_forEachIndex call getDeployableClass)) then { _return = _forEachIndex; } } forEach DZE_DEPLOYABLES; _return }; /* check if player has required parts to build the item */ /* [player,_partIndex] call getHasDeployableParts; */ getHasDeployableParts = { private["_player","_weapons","_parts","_item","_params","_index","_part","_return","_inventory"]; _params = _this; _player = _params select 0; _index = _params select 1; _parts = _index call getDeployableParts; _inventory = (weapons _player) + (magazines _player); _return = true; { _part = _x; if(!(_part in _inventory)) exitWith {_return = false;}; { _item = _x; if(_item == _part) exitWith {_inventory set [_forEachIndex,"nil"];}; } forEach _inventory; } forEach _parts; _return }; /* remove this item's parts from the players inventory */ /* [player,_partIndex] call removeDeployableParts; */ removeDeployableParts = { private["_player","_params","_index","_parts","_part"]; _params = _this; _player = _params select 0; _index = _params select 1; _parts = _index call getDeployableParts; { _part = _x; _player removeWeapon _part; _player removeMagazine _part; } forEach _parts; }; custom\menu custom\menu\defines.hpp: Spoiler #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_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 slkIGUIBack { type = 0; idc = 124; style = 128; text = ""; colorText[] = { 0, 0, 0, 0 }; font = "Zeppelin32"; sizeEx = 0; shadow = 0; x = 0.1; y = 0.1; w = 0.1; h = 0.1; colorbackground[] = { -1,-1,-1,-1 //"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", //"(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", //"(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", //"(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])" }; }; class slkRscText { x = 0; y = 0; h = 0.037; w = 0.3; type = 0; style = 0; shadow = 1; colorShadow[] = {0, 0, 0, 0.5}; font = "Zeppelin32"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; text = ""; colorText[] = {1, 1, 1, 1.0}; colorBackground[] = {0, 0, 0, 0}; linespacing = 1; tooltipColorText[] = {1,1,1,1}; tooltipColorBox[] = {1,1,1,1}; tooltipColorShade[] = {0,0,0,0.65}; }; class slkRscListBox { access = 0; type = 5; w = 0.4; h = 0.4; rowHeight = 0; colorText[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.25}; colorScrollbar[] = {1,0,0,0}; colorSelect[] = {0,0,0,1}; colorSelect2[] = {0,0,0,1}; colorSelectBackground[] = {0.95,0.95,0.95,1}; colorSelectBackground2[] = {0.95,0.95,0.95,1}; colorBackground[] = {0,0,0,0.3}; soundSelect[] = {"",0.1,1}; arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; arrowFull = "#(argb,8,8,3)color(1,1,1,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"; }; style = 16; font = "Zeppelin32"; shadow = 2; sizeEx = 0.03921; color[] = {1,1,1,1}; period = 1.2; maxHistoryDelay = 1; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; }; class slkRscCombo { idc = -1; type = 4; style = 1; x = 0; y = 0; w = 0.3; h = 0.035; colorSelect[] = {0.023529, 0, 0.0313725, 1}; colorText[] = {0.023529, 0, 0.0313725, 1}; colorBackground[] = {0.95, 0.95, 0.95, 1}; colorSelectBackground[] = {0.543, 0.5742, 0.4102, 1.0}; colorScrollbar[] = {0.023529, 0, 0.0313725, 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.031; soundSelect[] = {"\ca\ui\data\sound\new1", 0.09, 1}; soundExpand[] = {"\ca\ui\data\sound\new1", 0.09, 1}; soundCollapse[] = {"\ca\ui\data\sound\new1", 0.09, 1}; maxHistoryDelay = 1.0; class ScrollBar { color[] = {1, 1, 1, 0.6}; colorActive[] = {1, 1, 1, 1}; colorDisabled[] = {1, 1, 1, 0.3}; 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"; }; }; class slkRscBackground { type = 0; style = ST_BACKGROUND; shadow = 2; colorBackground[] = {0,0,0,1}; colorText[] = {1,1,1,1}; font = "Zeppelin32"; sizeEx = 0.02; text = ""; }; class slkRscButton { access = 0; type = CT_BUTTON; text = ""; colorText[] = {1,1,1,.9}; colorBackgroundDisabled[] = {0,0.0,0}; colorBackgroundActive[] = {0.2,0.38,0.647,0.8}; colorFocused[] = {0.2,0.38,0.647,0.8}; colorDisabled[] = {0.2,0.38,0.647,0.8}; colorBackground[] = {0.2,0.38,0.647,0.8}; colorShadow[] = {0.023529,0,0.0313725,1}; colorBorder[] = {0.023529,0,0.0313725,1}; 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}; style = 2; x = 0; y = 0; w = 0.055589; h = 0.039216; shadow = 2; font = "Bitstream"; sizeEx = 0.03921; offsetX = 0.003; offsetY = 0.003; offsetPressedX = 0.002; offsetPressedY = 0.002; borderSize = 0; }; class slkRscStructuredText { access = 0; type = 13; idc = -1; style = 0; colorText[] = {0.8784,0.8471,0.651,1}; class Attributes { font = "Zeppelin32"; color = "#FFFFFF"; align = "left"; shadow = 1; }; x = 0; y = 0; h = 0.035; w = 0.1; text = ""; size = 0.03921; shadow = 2; }; class slkRscFrame { 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 slkBOX { type = CT_STATIC; idc = -1; style = ST_CENTER; shadow = 2; colorText[] = {1,1,1,1}; font = "Bitstream"; sizeEx = 0.02; colorBackground[] = { 0.33,0.33,0, 0.8 }; text = ""; }; class slkW_RscText { idc = -1; type = 0; style = 0x00; colorBackground[] = { 1 , 1 , 1 , 0 }; colorText[] = { 1 , 1 , 1 , 1 }; font = "Zeppelin32"; sizeEx = .025; h = .25; text = ""; }; class slk { access = 0; type = 13; idc = -1; style = 0; colorText[] = {.8784,.8471,.651,1}; class Attributes { font = "Zeppelin32"; color = "#e0d8a6"; align = "center"; shadow = 1; }; x = 0; y = 0; h = .035; w = .1; text = ""; size = .03921; shadow = 2; }; class slkRscList { type = 5; style = 69; idc = -1; text = ""; w = .275; h = .04; colorSelect[] = {1, 1, 1, 1}; colorText[] = {1, 1, 1, 1}; colorBackground[] = {1,1,1,1}; colorSelectBackground[] = {.40, .43, .28, .5}; colorScrollbar[] = {.2, .2, .2, 1}; arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa"; wholeHeight = .45; rowHeight = .04; color[] = {.7, .7, .7, 1}; colorActive[] = {0,0,0,1}; colorDisabled[] = {0,0,0,.3}; font = "Zeppelin32"; sizeEx = .023; soundSelect[] = {"",.1,1}; soundExpand[] = {"",.1,1}; soundCollapse[] = {"",.1,1}; maxHistoryDelay = 1; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; class ScrollBar { color[] = {1, 1, 1, 1}; colorActive[] = {1, 1, 1, 1}; colorDisabled[] = {1, 1, 1, 1}; 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"; }; }; class slkRscPicture { idc = -1; type = 0; style = 48; font = "Zeppelin32"; sizeEx = .023; colorBackground[] = {}; colorText[] = {}; x = .0; y = .2; w = .2; h = .2; text = ""; }; class slkRscButtonBase { idc = -1; type = 16; style = 0; w = .183825; h = .104575; color[] = {.95, .95, .95, 1}; color2[] = {1, 1, 1, .4}; colorBackground[] = {1, 1, 1, 1}; colorbackground2[] = {1, 1, 1, .4}; colorDisabled[] = {1, 1, 1, .25}; periodFocus = 1.2; periodOver = .8; class HitZone { left = .004; top = .029; right = .004; bottom = .029; }; class ShortcutPos { left = .004; top = .026; w = .0392157; h = .0522876; }; class TextPos { left = .05; top = .025; right = .005; bottom = .025; }; 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.01.paa"; animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa"; animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa"; textureNoShortcut = ""; period = .4; font = "Zeppelin32"; size = .023; sizeEx = .023; text = ""; soundEnter[] = {"\ca\ui\data\sound\mouse2", .09, 1}; soundPush[] = {"\ca\ui\data\sound\new1", .09, 1}; soundClick[] = {"\ca\ui\data\sound\mouse3", .07, 1}; soundEscape[] = {"\ca\ui\data\sound\mouse1", .09, 1}; action = ""; class Attributes { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; shadow = "1"; }; class AttributesImage { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; }; }; class slkMap { moveOnEdges = 0; shadow = 0; maxSatelliteAlpha = .85; alphaFadeStartScale = .35; alphaFadeEndScale = .4; colorOutside[] = {0,0,0,1}; style = 48; font = "EtelkaNarrowMediumPro"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * .6)"; type = 101; colorBackground[] = {.8,.8,.8,1}; colorText[] = {0,0,0,1}; colorRailway[] = {.5,.5,.5,.5}; colorSea[] = {.56,.8,.98,.5}; colorForest[] = {.6,.8,.2,.5}; colorRocks[] = {.5,.5,.5,.5}; colorCountlines[] = {.65,.45,.27,.5}; colorMainCountlines[] = {.65,.45,.27,1}; colorCountlinesWater[] = {0,.53,1,.5}; colorMainCountlinesWater[] = {0,.53,1,1}; colorForestBorder[] = {.4,.8,0,1}; colorRocksBorder[] = {.5,.5,.5,1}; colorPowerLines[] = {0,0,0,1}; colorNames[] = {0,0,0,1}; colorInactive[] = {1,1,1,.5}; colorLevels[] = {.286,.177,.094,.5}; fontLabel = "TahomaB"; sizeExLabel = .04; fontGrid = "TahomaB"; sizeExGrid = .04; fontUnits = "TahomaB"; sizeExUnits = .04; fontNames = "TahomaB"; sizeExNames = .04; fontInfo = "TahomaB"; sizeExInfo = .04; fontLevel = "TahomaB"; sizeExLevel = .04; text = "#(argb,8,8,3)color(1,1,1,1)"; stickX[] = {.2,{"Gamma",1,1.5}}; stickY[] = {.2,{"Gamma",1,1.5}}; ptsPerSquareSea = 6; ptsPerSquareTxt = 8; ptsPerSquareCLn = 8; ptsPerSquareExp = 8; ptsPerSquareCost = 8; ptsPerSquareFor = "4.0f"; ptsPerSquareForEdge = "10.0f"; ptsPerSquareRoad = 2; ptsPerSquareObj = 10; showCountourInterval = 0; onMouseMoving = "mouseX = (_this Select 1);mouseY = (_this Select 2)"; onMouseButtonDown = "mouseButtonDown = _this Select 1"; onMouseButtonUp = "mouseButtonUp = _this Select 1"; class CustomMark { icon = "\ca\ui\data\map_waypoint_ca.paa"; color[] = {0,0,1,1}; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; class Bunker { icon = "\ca\ui\data\map_bunker_ca.paa"; color[] = {0,0,1,1}; size = 14; importance = 1.5 * 14 * .05; coefMin = .25; coefMax = 4; }; class Bush { icon = "\ca\ui\data\map_bush_ca.paa"; color[] = {.55,.64,.43,1}; size = 14; importance = .2 * 14 * .05; coefMin = .25; coefMax = 4; }; class BusStop { icon = "\ca\ui\data\map_busstop_ca.paa"; color[] = {0,0,1,1}; size = 10; importance = 1 * 10 * .05; coefMin = .25; coefMax = 4; }; class Command { icon = "#(argb,8,8,3)color(1,1,1,1)"; color[] = {0,.9,0,1}; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; class Cross { icon = "\ca\ui\data\map_cross_ca.paa"; color[] = {0,0,1,1}; size = 16; importance = .7 * 16 * .05; coefMin = .25; coefMax = 4; }; class Fortress { icon = "\ca\ui\data\map_bunker_ca.paa"; color[] = {0,0,1,1}; size = 16; importance = 2 * 16 * .05; coefMin = .25; coefMax = 4; }; class Fuelstation { icon = "#(argb,8,8,3)color(0,0,0,1)"; color[] = {0,0,0,1}; size = 16; importance = 2 * 16 * .05; coefMin = .75; coefMax = 4; }; class Fountain { icon = "\ca\ui\data\map_fountain_ca.paa"; color[] = {0,.35,.7,1}; size = 12; importance = 1 * 12 * .05; coefMin = .25; coefMax = 4; }; class Hospital { icon = "\ca\ui\data\map_hospital_ca.paa"; color[] = {.78,0,.05,1}; size = 16; importance = 2 * 16 * .05; coefMin = .5; coefMax = 4; }; class Chapel { icon = "\ca\ui\data\map_chapel_ca.paa"; color[] = {0,0,1,1}; size = 16; importance = 1 * 16 * .05; coefMin = .9; coefMax = 4; }; class Church { icon = "\ca\ui\data\map_church_ca.paa"; color[] = {0,0,1,1}; size = 16; importance = 2 * 16 * .05; coefMin = .9; coefMax = 4; }; class Legend { x = "SafeZoneX"; y = "SafeZoneY"; w = .34; h = .152; font = "Zeppelin32"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * .6)"; colorBackground[] = {0,0,0,1}; color[] = {0,0,0,1}; }; class Lighthouse { icon = "\ca\ui\data\map_lighthouse_ca.paa"; color[] = {.78,0,.05,1}; size = 20; importance = 3 * 16 * .05; coefMin = .9; coefMax = 4; }; class Quay { icon = "\ca\ui\data\map_quay_ca.paa"; color[] = {0,0,1,1}; size = 16; importance = 2 * 16 * .05; coefMin = .5; coefMax = 4; }; class Rock { icon = "\ca\ui\data\map_rock_ca.paa"; color[] = {0,0,1,1}; size = 12; importance = .5 * 12 * .05; coefMin = .25; coefMax = 4; }; class Ruin { icon = "\ca\ui\data\map_ruin_ca.paa"; color[] = {.78,0,.05,1}; size = 16; importance = 1.2 * 16 * .05; coefMin = 1; coefMax = 4; }; class SmallTree { icon = "\ca\ui\data\map_smalltree_ca.paa"; color[] = {.55,.64,.43,1}; size = 12; importance = .6 * 12 * .05; coefMin = .25; coefMax = 4; }; class Stack { icon = "\ca\ui\data\map_stack_ca.paa"; color[] = {0,0,1,1}; size = 20; importance = 2 * 16 * .05; coefMin = .9; coefMax = 4; }; class Task { icon = "\ca\ui\data\ui_taskstate_current_CA.paa"; iconCreated = "\ca\ui\data\ui_taskstate_new_CA.paa"; iconCanceled = "#(argb,8,8,3)color(0,0,0,0)"; iconDone = "\ca\ui\data\ui_taskstate_done_CA.paa"; iconFailed = "\ca\ui\data\ui_taskstate_failed_CA.paa"; color[] = {.863,.584,.0,1}; colorCreated[] = {.95,.95,.95,1}; colorCanceled[] = {.606,.606,.606,1}; colorDone[] = {.424,.651,.247,1}; colorFailed[] = {.706,.0745,.0196,1}; size = 10; coefMin = 1; coefMax = 4; importance = 1; }; class Tree { icon = "\ca\ui\data\map_tree_ca.paa"; color[] = {.55,.64,.43,1}; size = 12; importance = .9 * 16 * .05; coefMin = .25; coefMax = 4; }; class Tourism { icon = "\ca\ui\data\map_tourism_ca.paa"; color[] = {.78,0,.05,1}; size = 16; importance = 1 * 16 * .05; coefMin = .7; coefMax = 4; }; class Transmitter { icon = "\ca\ui\data\map_transmitter_ca.paa"; color[] = {0,0,1,1}; size = 20; importance = 2 * 16 * .05; coefMin = .9; coefMax = 4; }; class ViewTower { icon = "\ca\ui\data\map_viewtower_ca.paa"; color[] = {0,0,1,1}; size = 16; importance = 2.5 * 16 * .05; coefMin = .5; coefMax = 4; }; class Watertower { icon = "\ca\ui\data\map_watertower_ca.paa"; color[] = {0,.35,.7,1}; size = 32; importance = 1.2 * 16 * .05; coefMin = .9; coefMax = 4; }; class Waypoint { icon = "\ca\ui\data\map_waypoint_ca.paa"; color[] = {0,0,1,1}; size = 14; importance = 2.5 * 16 * .05; coefMin = .5; coefMax = 4; }; class WaypointCompleted { icon = "\ca\ui\data\map_waypoint_completed_ca.paa"; color[] = {0,0,1,1}; size = 14; importance = 2.5 * 16 * .05; coefMin = .5; coefMax = 4; }; class ActiveMarker { icon = ""; color[] = {0,0,1,1}; size = 14; importance = 2.5 * 16 * .05; coefMin = .5; coefMax = 4; }; }; custom\menu\menu.hpp: Spoiler class menu { idd = 7777; movingenable=false; class Controls { class slk_frame: slkRscFrame { idc = 1801; text = ""; //--- ToDo: Localize; x = 0.216406 * safezoneW + safezoneX; y = 0.1304 * safezoneH + safezoneY; w = 0.567187 * safezoneW; h = 0.748 * safezoneH; }; class slk_bg: slkIGUIBack { idc = 2200; text = ""; //--- ToDo: Localize; x = 0.212281 * safezoneW + safezoneX; y = 0.1194 * safezoneH + safezoneY; w = 0.5775 * safezoneW; h = 0.77 * safezoneH; colorBackground[] = {0,0,0,0.8}; }; class slk_bgl1: slkIGUIBack { idc = 2201; x = 0.212281 * safezoneW + safezoneX; y = 0.1106 * safezoneH + safezoneY; w = 0.5775 * safezoneW; h = 0.132 * safezoneH; colorBackground[] = {0,0,0,1}; }; class slk_title: slkRscText { idc = 1000; text = "Server Name"; //--- ToDo: Localize; x = 0.37522 * safezoneW + safezoneX; y = 0.126 * safezoneH + safezoneY; w = 0.2475 * safezoneW; h = 0.033 * safezoneH; sizeEx = 0.050; style = 2; }; class slk_web: slkRscText { idc = 1001; text = "Website"; //--- ToDo: Localize; x = 0.377281 * safezoneW + safezoneX; y = 0.1766 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.022 * safezoneH; sizeEx = 0.040; style = 2; }; class slk_ts3: slkRscText { idc = 1002; text = "Teamspeak"; //--- ToDo: Localize; x = 0.535349 * safezoneW + safezoneX; y = 0.176733 * safezoneH + safezoneY; w = 0.0876563 * safezoneW; h = 0.022 * safezoneH; sizeEx = 0.040; style = 2; }; class slk_view_title: slkRscText { idc = 1003; text = "View Distance"; //--- ToDo: Localize; x = 0.449466 * safezoneW + safezoneX; y = 0.2382 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; sizeEx = 0.050; style = 2; }; class slk_picl: slkRscPicture { idc = 1200; text = "custom\menu\logo.paa"; x = 0.221562 * safezoneW + safezoneX; y = 0.137 * safezoneH + safezoneY; w = 0.128906 * safezoneW; h = 0.077 * safezoneH; }; class slk_action_title: slkRscText { idc = 1004; text = "Actions"; //--- ToDo: Localize; x = 0.29684 * safezoneW + safezoneX; y = 0.247 * safezoneH + safezoneY; w = 0.0464063 * safezoneW; h = 0.022 * safezoneH; sizeEx = 0.050; style = 2; }; class slk_view1: slkRscButton { idc = 1600; text = "1000"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.291 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 1000; systemChat('ViewDistance: 1000');"; }; class slk_view2: slkRscButton { idc = 1601; text = "1500"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.335 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 1500; systemChat('ViewDistance: 1500');"; }; class slk_view3: slkRscButton { idc = 1602; text = "2000"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.379 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 2000; systemChat('ViewDistance: 2000');"; }; class slk_view4: slkRscButton { idc = 1603; text = "2500"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.423 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 2500; systemChat('ViewDistance: 2500');"; }; class slk_view5: slkRscButton { idc = 1604; text = "3000"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.467 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 3000; systemChat('ViewDistance: 3000');"; }; class slk_view6: slkRscButton { idc = 1605; text = "3500"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.511 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 3500; systemChat('ViewDistance: 3500');"; }; class slk_view7: slkRscButton { idc = 1606; text = "4000"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.555 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 4000; systemChat('ViewDistance: 4000');"; }; class slk_view8: slkRscButton { idc = 1607; text = "4500"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.599 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 4500; systemChat('ViewDistance: 4500');"; }; class slk_view9: slkRscButton { idc = 1608; text = "5000"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.643 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "setViewDistance 5000; systemChat('ViewDistance: 5000');"; }; class slk_act: slkRscButton { idc = 1609; text = "Action 1"; //--- ToDo: Localize; x = 0.268997 * safezoneW + safezoneX; y = 0.28 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call action1script;"; }; //class slk_act2: slkRscButton //{ // idc = 1610; // text = "Action 2"; //--- ToDo: Localize; // x = 0.268997 * safezoneW + safezoneX; // y = 0.357 * safezoneH + safezoneY; // w = 0.103125 * safezoneW; // h = 0.033 * safezoneH; // colorBackground[] = {0.047,0.376,0.776,1}; // onButtonClick = "call action2script;"; //}; class slk_info: slkRscText { idc = 1005; text = "Information"; //--- ToDo: Localize; x = 0.289622 * safezoneW + safezoneX; y = 0.4428 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.033 * safezoneH; sizeEx = 0.050; style = 2; }; class slk_info1: slkRscButton { idc = 1611; text = "Rules"; //--- ToDo: Localize; x = 0.268997 * safezoneW + safezoneX; y = 0.5022 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call info1script;"; }; class slk_info2: slkRscButton { idc = 1612; text = "Features and Tips"; //--- ToDo: Localize; x = 0.268997 * safezoneW + safezoneX; y = 0.5792 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call info2script;"; }; class slk_info3: slkRscButton { idc = 1613; text = "Latest Updates"; //--- ToDo: Localize; x = 0.268997 * safezoneW + safezoneX; y = 0.6606 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call info3script;"; }; //class slk_info4: slkRscButton //{ // idc = 1618; // text = "Info 4"; //--- ToDo: Localize; // x = 0.268997 * safezoneW + safezoneX; // y = 0.742 * safezoneH + safezoneY; // w = 0.103125 * safezoneW; // h = 0.033 * safezoneH; // colorBackground[] = {0.047,0.376,0.776,1}; // onButtonClick = "call info4script;"; //}; class slk_deployables: slkRscText { idc = 1006; text = "Deployables"; //--- ToDo: Localize; x = 0.644385 * safezoneW + safezoneX; y = 0.247 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; sizeEx = 0.050; style = 2; }; class slk_dep_1: slkRscButton { idc = 1614; text = "Deploy 1"; //--- ToDo: Localize; x = 0.626853 * safezoneW + safezoneX; y = 0.28 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call deployable1script;"; }; class slk_dep_item1: slkRscText { idc = 1007; text = "Item 1"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.324 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep_item2: slkRscText { idc = 1008; text = "Item 2"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.346 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep_item3: slkRscText { idc = 1009; text = "Item 3"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.3658 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep_item4: slkRscText { idc = 1010; text = "Item 4"; //--- ToDo: Localize; x = 0.629179 * safezoneW + safezoneX; y = 0.389474 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class esk_dep_2: slkRscButton { idc = 1615; text = "Deploy 2"; //--- ToDo: Localize; x = 0.626853 * safezoneW + safezoneX; y = 0.456 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call deployable2script;"; }; class slk_dep_item5: slkRscText { idc = 1011; text = "Item 5"; //--- ToDo: Localize; x = 0.629947 * safezoneW + safezoneX; y = 0.4098 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep2_item1: slkRscText { idc = 1012; text = "Item 1"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.5 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep2_item2: slkRscText { idc = 1013; text = "Item 2"; //--- ToDo: Localize; x = 0.629946 * safezoneW + safezoneX; y = 0.522 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep2_item3: slkRscText { idc = 1014; text = "Item 3"; //--- ToDo: Localize; x = 0.629947 * safezoneW + safezoneX; y = 0.544 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep2_item4: slkRscText { idc = 1015; text = "Item 4"; //--- ToDo: Localize; x = 0.629947 * safezoneW + safezoneX; y = 0.566 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep2_item5: slkRscText { idc = 1016; text = "Item 5"; //--- ToDo: Localize; x = 0.629947 * safezoneW + safezoneX; y = 0.588 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep_3: slkRscButton { idc = 1616; text = "Deploy 3"; //--- ToDo: Localize; x = 0.626853 * safezoneW + safezoneX; y = 0.632 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {0.047,0.376,0.776,1}; onButtonClick = "call deployable3script;"; }; class slk_dep3_item1: slkRscText { idc = 1017; text = "Item 1"; //--- ToDo: Localize; x = 0.628915 * safezoneW + safezoneX; y = 0.676 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep3_item2: slkRscText { idc = 1018; text = "Item 2"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.698 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep3_item3: slkRscText { idc = 1019; text = "Item 3"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.7178 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep3_item4: slkRscText { idc = 1020; text = "Item 4"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.7398 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_dep3_item5: slkRscText { idc = 1021; text = "Item 5"; //--- ToDo: Localize; x = 0.628916 * safezoneW + safezoneX; y = 0.7618 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.011 * safezoneH; }; class slk_close: slkRscButton { idc = 1617; text = "Close Menu"; //--- ToDo: Localize; x = 0.443281 * safezoneW + safezoneX; y = 0.8124 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.044 * safezoneH; sizeEx = 0.050; style = 2; colorBackground[] = {0.047,0.376,0.776,1}; OnButtonClick = "((ctrlParent (_this select 0)) closeDisplay 7777)"; }; class eslk_bgl2: slkIGUIBack { idc = 2202; x = 0.213312 * safezoneW + safezoneX; y = 0.434 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.011 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl3: slkIGUIBack { idc = 2203; x = 0.399969 * safezoneW + safezoneX; y = 0.2294 * safezoneH + safezoneY; w = 0.0103125 * safezoneW; h = 0.66 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl5: slkIGUIBack { idc = 2204; x = 0.593844 * safezoneW + safezoneX; y = 0.4318 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.011 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl4: slkIGUIBack { idc = 2205; x = 0.589719 * safezoneW + safezoneX; y = 0.2294 * safezoneH + safezoneY; w = 0.0103125 * safezoneW; h = 0.66 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl6: slkIGUIBack { idc = 2206; x = 0.593844 * safezoneW + safezoneX; y = 0.61 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.011 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl7: slkIGUIBack { idc = 2203; x = 0.212281 * safezoneW + safezoneX; y = 0.225 * safezoneH + safezoneY; w = 0.0103125 * safezoneW; h = 0.66 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl8: slkIGUIBack { idc = 2205; x = 0.778437 * safezoneW + safezoneX; y = 0.225 * safezoneH + safezoneY; w = 0.0103125 * safezoneW; h = 0.66 * safezoneH; colorBackground[] = {0,0,0,1}; }; class eslk_bgl9: slkIGUIBack { idc = 2206; x = 0.212281 * safezoneW + safezoneX; y = 0.8674 * safezoneH + safezoneY; w = 0.5775 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0,0,0,1}; }; }; }; custom\menu\menu_init.sqf: Spoiler disableSerialization; /////////////////// //////Config////// ///////////////// _serverName = "Name"; // the server name that will go accross the top of the menu _ts3IP = "TS3"; // ts3 ip that will go at the bottom of the menu _websiteUrl = "Web"; // website url that goes at the bottom of the menu //////////////////////////////////////////// ////////////////////ACTIONS//////////////// ////////////////////////////////////////// _action1Text = "Suicide"; //Text that will go on action button 1 action1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\scripts\suicide.sqf';}; //script that action button 1 will use _action2Text = ""; //Text that will go on action button 2 action2script = {}; //script that action button 2 will use _info1Text = "Rules"; //Text that will go on info button 1 info1script = {((ctrlParent (_this select 0)) closeDisplay 7777); execvm 'custom\menu\rules_init.sqf';}; //script that info button 1 will use _info2Text = "Features and Tips"; //Text that will go on info button 2 info2script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info2";}; //script that info button 2 will use _info3Text = "Latest Updates"; //Text that will go on info button 3 info3script = {((ctrlParent (_this select 0)) closeDisplay 7777); createDialog "info3";}; //script that action info 3 will use _info4Text = ""; //Text that will go on info button 4 info4script = {}; //script that action info 4 will use /////////////////////////////////////////////// //////////////DEPLOYABLES///////////////////// ///////////////////////////////////////////// _deployable1Text = "Bike"; //Text that will go on deployable button 1 _deploy1item1Text = "ToolBox"; //Text that will go in the number 1 item slot under the first deploy button _deploy1item2Text = ""; //Text that will go in the number 2 item slot under the first deploy button _deploy1item3Text = ""; //Text that will go in the number 3 item slot under the first deploy button _deploy1item4Text = ""; //Text that will go in the number 4 item slot under the first deploy button _deploy1item5Text = ""; //Text that will go in the number 5 item slot under the first deploy button deployable1script = {((ctrlParent (_this select 0)) closeDisplay 7777), [0] execVM 'scripts\deployAnything\deploy.sqf';}; _deployable2Text = "Mozzie"; //Text that will go on deployable button 2 _deploy2item1Text = "ToolBox"; //Text that will go in the number 1 item slot under the Second deploy button _deploy2item2Text = "Engine"; //Text that will go in the number 2 item slot under the Second deploy button _deploy2item3Text = "Main Rotor"; //Text that will go in the number 3 item slot under the Second deploy button _deploy2item4Text = "Scrap Metal"; //Text that will go in the number 4 item slot under the Second deploy button _deploy2item5Text = "Jerry Can (filled)"; //Text that will go in the number 5 item slot under the Second deploy button deployable2script = {((ctrlParent (_this select 0)) closeDisplay 7777), [1] execVM 'scripts\deployAnything\deploy.sqf';}; _deployable3Text = "Virtual Garage"; //Text that will go on deployable button 3 _deploy3item1Text = "ToolBox"; //Text that will go in the number 1 item slot under the third deploy button _deploy3item2Text = "Sapphire"; //Text that will go in the number 2 item slot under the third deploy button _deploy3item3Text = "Ruby"; //Text that will go in the number 3 item slot under the third deploy button _deploy3item4Text = ""; //Text that will go in the number 4 item slot under the third deploy button _deploy3item5Text = ""; //Text that will go in the number 5 item slot under the third deploy button deployable3script = {((ctrlParent (_this select 0)) closeDisplay 7777), [2] execVM 'scripts\deployAnything\deploy.sqf';}; createDialog "menu"; //////////////////////////////// //DO NOT EDIT BELLOW THIS LINE// //////////////////////////////// fnc_update_all_text = { _finddialog = findDisplay 7777; (_finddialog displayCtrl 1609) ctrlSetText format["%1",_action1Text]; (_finddialog displayCtrl 1611) ctrlSetText format["%1",_info1Text]; (_finddialog displayCtrl 1612) ctrlSetText format["%1",_info2Text]; (_finddialog displayCtrl 1613) ctrlSetText format["%1",_info3Text]; (_finddialog displayCtrl 1614) ctrlSetText format["%1",_deployable1Text]; (_finddialog displayCtrl 1615) ctrlSetText format["%1",_deployable2Text]; (_finddialog displayCtrl 1616) ctrlSetText format["%1",_deployable3Text]; (_finddialog displayCtrl 1007) ctrlSetText format["%1",_deploy1item1Text]; (_finddialog displayCtrl 1008) ctrlSetText format["%1",_deploy1item2Text]; (_finddialog displayCtrl 1009) ctrlSetText format["%1",_deploy1item3Text]; (_finddialog displayCtrl 1010) ctrlSetText format["%1",_deploy1item4Text]; (_finddialog displayCtrl 1011) ctrlSetText format["%1",_deploy1item5Text]; (_finddialog displayCtrl 1012) ctrlSetText format["%1",_deploy2item1Text]; (_finddialog displayCtrl 1013) ctrlSetText format["%1",_deploy2item2Text]; (_finddialog displayCtrl 1014) ctrlSetText format["%1",_deploy2item3Text]; (_finddialog displayCtrl 1015) ctrlSetText format["%1",_deploy2item4Text]; (_finddialog displayCtrl 1016) ctrlSetText format["%1",_deploy2item5Text]; (_finddialog displayCtrl 1017) ctrlSetText format["%1",_deploy3item1Text]; (_finddialog displayCtrl 1018) ctrlSetText format["%1",_deploy3item2Text]; (_finddialog displayCtrl 1019) ctrlSetText format["%1",_deploy3item3Text]; (_finddialog displayCtrl 1020) ctrlSetText format["%1",_deploy3item4Text]; (_finddialog displayCtrl 1021) ctrlSetText format["%1",_deploy3item5Text]; (_finddialog displayCtrl 1001) ctrlSetText format["%1",_websiteUrl]; (_finddialog displayCtrl 1002) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 10003) ctrlSetText format["%1",_ts3IP]; (_finddialog displayCtrl 1000) ctrlSetText format["%1 Menu",_serverName]; }; call fnc_update_all_text; //(_finddialog displayCtrl 1610) ctrlSetText format["%1",_action2Text]; //(_finddialog displayCtrl 1618) ctrlSetText format["%1",_info4Text]; The rest should be fine (info2.hpp, info3.hpp, logo.paa, rules.hpp, rules_init.sqf, rules2.hpp, rules2_init.sqf and the clickActions folder). Didn't find any way to upload it as a zip archive, so here is the raw code. 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