Jump to content

Recommended Posts

Description:

    Ever wish you could show a player some data but it is too big to dump to system chat?  Wish you had a handy dialog box to display that data too but your not good at dialog boxes?  Now you can.  I designed texxBoxx because I wanted to display all the objects around my players plot poles and did not have a good medium to display them in.   i also wanted a way to display my server list, rules, mods and admin lists.  I am not just starting to write my in game help system code and using textBoxx to display the information.

 

Mod Features:

 

Display 50 character wide, 100 character wide and 150 character wide text boxes from an array of text,

Re useable and not application specific.

Easy to configure new windows using the templates each addon you want to use it with,

 

 

texxBoxx50

texxBox50_zps944ffc9f.jpg

 

textBoxx100

textBoxx100_zps71db3812.jpg

 

textBoxx150

textBoxx100_zps71db3812.jpg

 

textBoxx Demo Script

textBoxDemoScript_zps16948075.jpg

 

 

Known Issues:

textBoxx was designed for resolutions 1300x#### and above.  Some of the boxes will consume the whole screen on the lower resolutions.

 

Installation:

 

1.  Download from my textBoxx GitHub  (Contains a vanilla epoch chernarus mission.pbo example file).

2.  Create a directory called mission_pbo

3   Take your mission.pbo file and extract it into the mission_pbo directory

4.  Unzip the zip file you download from my github and move the custom directory into your mission_pbo directory.

5.  Edit your init.sqf file and make the following modifications:

 

from:

//Load in compiled functions
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";                //Initilize the Variables (IMPORTANT: Must happen very early)

to:

//Load in compiled functions
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";                //Initilize the Variables (IMPORTANT: Must happen very early)
//------------------------------------------------------------------------ TextBoxx Start ---------------------------------------------------------------------------------
    call compile preprocessFileLineNumbers "custom\textBoxx\textBoxx_init.sqf";    
//------------------------------------------------------------------------ TextBoxx End -----------------------------------------------------------------------------------

6. Edit description.ext add the following lines to the end of the file.

//------------------------------------------------------------------------ TxtBoxx Start ---------------------------------------------------------------------------------
// Uses the same common as Chameleon leave comment out the line below if using Chameleon common.hpp
#include "custom\textBoxx\dialog\common.hpp"
#include "custom\textBoxx\dialog\textBoxxGui.hpp"
//------------------------------------------------------------------------ TxtBoxx End -----------------------------------------------------------------------------------

** NOTE if using only one common.hpp needs to be used.  Comment out the 2nd one by placing a // in front of the include.  They share the same common file.

 

Configuration:
 

Displaying Static Data:

 

1)  Create a directory in custom\textBoxx that is meaningful

 

for example if I was creating a file to display information about my server such as an admin list ,  I would create a directory called custom\textBoxx\serverInfo

 

2)  copy custom\textBoxx\template\template_textBoxx50_dialog.sqf to custom\textBoxx\serverInfo\admin_list_dialog.sqf

 

3) edit the file to look something like this:  Remember to change the title and replace the example lines with your own array of text leaving the comma off the last element.

/*
textBoxx by piggd
Email: [email protected]
Website: http://dayzpiggd.enjin.com
Donations Accepted via paypal to [email protected]
*/
//TextBoxxTitle = "1234567890ABCDEFGHIJ1234567890ABCDEFGHIJ1234567";
private ["_textBoxxSaveLine"];
_textBoxxSaveLine = " ";
TextBoxxTitle = "Piggd Admin List";
textBoxx_TEXT_LIST = [
"Big Green - Cmdr. Hall",
"Commander Dark - DUKE",
"Dutch5o- Euro",
"Father McGruder - Fixxer",
"iSaeko - Jane Doe",
"jumpshot - Kevin",
"Knightsofra1 - Laura",
"Lithh - Lorgar",
"Mack Bolan - Master_Yoda",
"Meat Shield - piggd",
"Pvt Beans - Raven",
"Shadowlee - Spike Spiegel",
"Warmonkey"
];
textBoxx_TEXT_LIST set [(count textBoxx_TEXT_LIST),_textBoxxSaveLine];
createDialog "DisplaytextBoxx50";

4)  Then in your self action or a menu program you might have a block of code that looks something like this:

    if( _canDo) then {
        if (s_player_display_admnin_list < 0) then {
            s_player_display_admnin_list = player addaction [("<t color=""#0074E8"">" + ("Display Admin List") +"</t>"),"custom\textBoxx\serverInfo\admin_list_dialog.sqf","",1,false,true,"",""];
        };
    } else {
        player removeAction s_player_display_admnin_list;
        s_player_display_admnin_list = -1;
    };

Displaying Dynamic Data From a script/addon:

 

1)  Create a directory in custom\textBoxx that is meaningful ( I would use the addon name or script function name)

 

for example if I was creating a script to display all the objects around a player in a 100m radius ,  I would create a directory called custom\textBoxx\objects

 

2)  copy custom\textBoxx\template\example_with _script_call_dialog.sqf to custom\textBoxx\objects\display_objects_100m_dialog.sqf

 

3) edit the file to look something like this:  You need to change the custom\textBoxx\template\example_script.sqf with the name of the script you want to execute display_objects_100m.sqf for this example.

You would also need to change DisplaytextBoxx100  to the size you want DisplaytextBoxx50, DisplaytextBoxx100, or DisplaytextBoxx150 .  It set to 100 for the example.

/*
textBoxx by piggd
Email: [email protected]
Website: http://dayzpiggd.enjin.com
Donations Accepted via paypal to [email protected]
*/
private ["_textBoxxSaveLine","_handle"];
_textBoxxSaveLine = " ";
TextBoxxTitle = "Show All Objects 100m from the Character";
textBoxx_TEXT_LIST = [];
//_handle = player execVM "custom\textBoxx\template\example_script.sqf";
_handle = player execVM "custom\textBoxx\objects\display_objects_100m.sqf";
waitUntil {scriptDone _handle};

textBoxx_TEXT_LIST set [(count textBoxx_TEXT_LIST),_textBoxxSaveLine];
createDialog "DisplaytextBoxx100";

4) Create your script or modify your addon:

In your script you want to initialize the variable textBoxx_TEXT_LIST = []; to make sure that it is empty.

Then you need to format your text data and insert it into your array as I have done in the example with these two lines.

 

    _textBoxxSaveLine = format["Object %1 - %2 is with in a 100m radius from %3.",_indx, _x, dayz_playerName];
    textBoxx_TEXT_LIST set [(count textBoxx_TEXT_LIST),_textBoxxSaveLine];

/*
textBoxx by piggd
Email: [email protected]
Website: http://dayzpiggd.enjin.com
Donations Accepted via paypal to [email protected]
*/
private ["_tmpList","_indx","_textBoxxSaveLine"];
// Make sure the player UID has been converted before moving forward.
_tmpList = [];
// Empties the DialogBox list since it is a global variable.
textBoxx_TEXT_LIST = [];
_indx = 0;
//Gets all the objects wih in a 100m of the player
_tmpList = (getPosATL player ) nearObjects ["All",100];
{
// These two line load the global array with the text that will be displayed when the script exits excution when called from the dialog program.
    _indx = _indx + 1;
    _textBoxxSaveLine = format["Object %1 - %2 is with in a 100m radius from %3.",_indx, _x, dayz_playerName];
    textBoxx_TEXT_LIST set [(count textBoxx_TEXT_LIST),_textBoxxSaveLine];
} count _tmpList;

Email: [email protected]
Website: Piggd Dayz Gaming
Donate to piggd

Share this post


Link to post
Share on other sites

Nice idea mate, I am sure I will find something to use this for.

I have not done very much work with dialog's in Arma, but I am fairly sure that if you make use of the safezoneW, safezoneX, safezoneH and safezoneY variables, you should be able to make this fit all resolutions.

 

Share this post


Link to post
Share on other sites

Hey great idea! I really want to add this but having a problem. I can not get the menu to appear at all.

Is there a certain place in fn_selfactions.sqf that the code needs to go? In the middle? After a certain other line? At the bottom? I have tried it at the bottom above and below the closing bracket, near the top right under another addon's custom selfaction code and just randomly throughout the selfactions.sqf and no matter what, when I scroll the mousewheel, I get no option for anything other than changing weapon.

Let's say I did something else wrong with this script, I should at least get the "Display Admin List" text when I scroll my mouse correct? I mean as long as the following is in the fn_selfactions I should at least get the scroll menu right?:

    if( _canDo) then {
        if (s_player_display_admnin_list < 0) then {
            s_player_display_admnin_list = player addAction [("<t color="#0074E8"">" + ("Display Admin List") +"</t>"),"custom\textBoxx\info\test.sqf","",1,false,true,"","];
        };
    } else {
        player removeAction s_player_display_admnin_list;
        s_player_display_admnin_list = -1;
    };

 

One thing I did notice is that in the instructions for adding to fn_selfactions.sqf you have a lower case a on addaction in this line: s_player_display_admnin_list = player addaction

I noticed that all the rest of the addaction commands in fn_selfactions have a capital A in addAction. Not sure if that makes a difference but I have tried with a capital and without and still can't get the menu to appear.

Any ideas what I'm doing wrong or a specific place the code should go?

Thanks in advance and keep up the great work!

 

EDIT:

Went ahead and gave up on scroll option and just added to right click options & it works great. Would still like to make at least 1 menu as a scroll option so if someone could help with that, would be awesome.

 

I have another question though. Would it be possible to make it so the scroll or right click option only shows up in a certain area such as a trader zone? The idea behind this question is this: I have custom skinned fully upgraded suv's at Hero & Bandit trader and would love to be able to have something that gives a description on the skin since OtterNas3's VASP (Vehicle and skin preview) mod I'm using does not work with custom skins.

 

Something like this:

SUV_Camo_DZE4 = Desert camo skin

SUV_Blue_DZE4 = Weed Leaf camo

SUV_Red_DZE4 = Red & Black checkered

etc...

 

Is this something that would be possible?

 

Thanks again

Share this post


Link to post
Share on other sites

So I finally got the menu to show up on scroll wheel however, it will only appear when near an inventory item. In other words, it will only appears when looking at a body, looking at an item on the ground, looking at a vehicle or at a trader.  Have tried adding (!IsNull Cursortarget) && (speed player <=0) and still can only get the menu option to appear when looking at something. Anyone know how to make the menu appear when not looking at something?

Share this post


Link to post
Share on other sites

So this don't seem to work for me. Anyone have any idea what this means? I tried with and without using the Common file and still get the same error. I have running DZGM, SC, Custom GUI, Plot Managment I'm just listing addons that require the same kind of method

ErrorMessage: File mpmissions\__cur_mp.chernarus\Scripts\TextB\dialog\textBoxxGui.hpp, line 24: Config: 'C' encountered instead of '{'

textboxxGui line 24 is this part

 

class DisplaytextBoxx50 {
	idd = TEXTBOXX50_DIALOG ;
	movingEnable = true;
	enableSimulation = true;
	onLoad = "[] execVM 'Scripts\TextB\list_textBoxx50.sqf'"; <<<-------- Here is the only part I changed

	__EXEC( _xSpacing = 0.0075;  _ySpacing = 0.01;)
	__EXEC( _xInit = 12 * _xSpacing; _yInit = 18 * _ySpacing;)
	__EXEC( _windowWidth = 202; _windowHeight = 128;)
	__EXEC( _windowBorder = 1;)

	class controlsBackground {
		class Mainbackgrnd : HW_RscPicture {
			moving = true;
			idc = TEXTBOXX50_BCKGRND;
			x = 0.22; y =  -0.285;
			w = 0.94; h = 1.50;
			text = "\ca\ui\data\ui_background_controlers_ca.paa";
		};
		class RecruitUnitsTitle : HW_RscText {
		   	idc = TEXTBOXX50_TITLE;
			x = 0.255; y =  -0.200;
			w = __EVAL(80 * _xSpacing);
			h = __EVAL(3 * _ySpacing);
			colorText[] = Color_White;
			colorBackground[] = { 1, 1, 1, 0 };
			sizeEx = 0.04;
			text = "";
		};
	};

	class controls {
		class Unitlist: HW_RscGUIListBox {
			idc = TEXTBOXX50_UNITLIST;
			default = 1;
			x = 0.230; y =  -0.110;
			w = 0.675; h = 1.10;
			//lineSpacing = 0;
			colorSelect[] = {0, 0, 0, 0.9};
			colorSelect2[] = {0, 0, 0, 0.9};
			colorSelectBackground[] = {1, 1, 1, 0.3};
			colorSelectBackground2[] = {1, 1, 1, 0.9};
			onLBSelChanged = "";
			onLBDblClick = "";
			rowHeight = 0.025;
			soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1};
			maxHistoryDelay = 10;
			canDrag = 0;
			xcolumn1 = "0.1f";
			xcolumn2 = "0.25f";
			xcolumn3 = "0.85f";		
		};
		class RecruitButton: HW_RscGUIShortcutButton {
			x = 0.448; y = 1.08;
			w = 0.225; h = 0.06;
			text = "Close Recipe";  <<<-------- Here is the only part I changed
			onButtonClick = "closeDialog 0";
		};
	};
};

 

 

EDIT: Ok got this working after a few trial and errors. If anyone needs a hand just give me a shout

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By vbawol
      Open world survival mod set just two years after the mass extinction of billions of people. Those that remain are left with remnants of a once technological society. Try to survive, build, or explore your way through the harsh dynamic environment.
      Features
      Powerful persistence framework for Arma 3 with native Windows and Linux dedicated server support. Fully configurable script based security checks. Base Building re-envisioned for Arma 3 PhysX. Persistent secure and insecure storage devices. Upgradeable locking doors. Barter based economy and trading systems backed a single currency ¤ called "Krypto". Hostile Environment with several different types of antagonists, Air and Water temperature extremes, and Earthquakes. Hunting, Fishing, Tame Dogs, Explore & Loot: Wrecked ships, Abandoned vehicles and buildings, Perform task based missions and more! Open source APL-SA Epoch Survival MP gamemode. Open source APL-SA Modders resource configs and Class List. Assets can be used as a mod dependency on Steam workshop.
    • By Mattiman338
      Hi all, doing up a server for myself and a few friends but am having one issue which I am clueless as to why it is happening. It doesn't really affect game play but does make it difficult navigating through certain tasks.
      The issue arises with ZSC and Virtual Garage dialogs only as far as I have tested. Certain buttons within dialogs do not show, such as the deposit and withdraw buttons for the bankers and the store vehicle button in the Virtual Garage dialog.
      I am running InfiSTAR admin tools and antihack and as far as I know, that could be the culprit with these problems but I have checked the servers .RPT and checked for errors with ZSC and the Virtual Garage with nothing coming up.
      There are InfiSTAR logs showing though and one refers to a dialog. 
       
      In-game screens
      And my .RPT from the last restart to when I tested the dialogs to gather screenshots
       
       
      All help is appreciated as I can't find anything to do with infiSTAR in the script installs.
      Thanks all!
    • By victorks
      my first work in editin :) https://uploaddeimagens.com.br/imagens/20180307202515_1-jpg https://uploaddeimagens.com.br/imagens/20180307202245_1-jpg DOWNLOAD: https://www.dropbox.com/s/oq97j7x59362kqe/CASTLEai.sqf?dl=0 AI M2 NEED WAI: https://pastebin.com/GJMnPvZP ON THE MAP: https://pastebin.com/cyqH9rNV  
       
      https://www.dropbox.com/s/oq97j7x59362kqe/CASTLEai.sqf?dl=0
       
       
       
       
       
       
       
       
       
    • By totis
      Hi
      This is a restriction to vehicle seat according to humanity.
      It may be handy to PVE servers out there.
      Special thanks to Juandayz with his fantastic skills and salival. Both sometimes working unseen for the benefit of this community.
      Step 1.
      Make a new file, Name it veh_hum.sqf with the below contents and put into dayz_epoch/addons folder. If you dont have addons just create one.
      In this example we have a hero superhero and agenthero traders with 20k/40k/60k humanity respectively. Adjust according to your needs.
       
      private ["_vehicle","_inVehicle","_driver","_humanity","_txt"]; while {true} do { _vehicle = vehicle player; _inVehicle = (_vehicle != player); if (_inVehicle) then { _driver = driver (vehicle player); if (({(isPlayer _driver) && (alive _driver)} count (crew _vehicle) > 0)) then { _humanity = _driver getVariable["humanity",0]; if (typeOf _vehicle in DZE_heroHumanity && _humanity <= 20000 || (typeOf _vehicle in DZE_superHeroHumanity && _humanity <= 40000) || (typeOf _vehicle in DZE_agentHumanity && _humanity <= 60000)) then { player action ["getOut", (vehicle player)]; titleText ["","WHITE IN"]; _txt = "<img image='addons\vehicon.paa' /><br/><t size='0.7' color='#ea2828' align='center'>prohibited vehicle</t>"; [_txt, [safezoneX, safezoneW], [0.20 * safezoneH + safezoneY, 0.3 * safezoneH], 2, 0.5] spawn BIS_fnc_dynamicText; }; }; }; sleep 3; };  Step 2: Download this file http://www.mediafire.com/file/bdpt5d96o5cttk3/vehicon.rar
      Unzip and put paa file into addons folder.
      Step 3: Edit your custom variables file    dayz_code/init/variables.sqf
      Put the vehicles you want to restrict below call dayz_resetselfactions; ike this:
      // Custom below s_givemoney_dialog = -1; s_bank_dialog = -1; s_player_checkWallet = -1; s_bank_dialog1 = -1; s_bank_dialog2 = -1; s_player_copyToKey = -1; s_player_claimVehicle = -1; s_collect_heli = -1; }; call dayz_resetSelfActions; DZE_heroHumanity = ["Mi17_rockets_RU","Mi24_D","UH1Y_DZE"]; DZE_superHeroHumanity = ["Mi24_V","Mi24_P","Ka52"]; DZE_agentHumanity = ["AV8B2","AV8B","A10","F35B"]; DZE_safeVehicle = DZE_heroHumanity + DZE_superHeroHumanity + DZE_agentHumanity +["ParachuteWest","ParachuteC"]; Step 4: Edit your init file to exec the script. Above the   (false,12)execVm.... like below
          [] execVM "addons\veh_hum.sqf";
          //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
      Thats it. Enjoy!
        Hide contents
    • By SapioiT
      Hi, I don't want to mock you or anything, after all, you do have a server, and I don't, I just noticed something you might want to know. Do you remember the time when dayz mod was at it's prime? If you don't, go watch some videos. If you do, what do you think is missing now? Here's my opinion: TENSION.   Let me explain that. First, there was a time when people were afraid of engaging, because they would lose days' worth of work. Then, there was the base aspect, with most bases breach-able, in a way or another. Then there was the constant need of supplies, in order to survive. Medical supplies weren't that common, and bases were often used to stash away resources, because dieing was easy, but getting your things back, not so much. So, to put it simply, if a server wishes to thrive, here's my to-do list for it to stay relevant for a long time:   0. Hard or hardcore. Make the server either of those. Hardcore = no weapon, no map, no backpack, maybe a bandage. Hard = 2x bandage, no map, weakest meele weapon (machete? or bat?), smallest backpack. Heroes should have +1 painkillers, bandits +1 smoke grenade (to trap players inside buildings filled with zombies). Oh, and NO PVE, since it takes away the risk of killing your teammates. Less risk = less fun = less awesome of a feeling when you do win.   1. Weapons. Have the map mostly spawn meele weapons, and rarely a pistol. I'll get back to the other weapons soon enough. This will make it a lot more difficult to kill somebody, and make the risk of being the one killed a lot higher. Making the fights more evened out, you effectively make it so people are thinking more about whether or not to engage in combat.   2. Bases. Let people build without a plot pole, but have things stay like only for 24 hours (so people ca maintain them, if playing daily). And only cinder and metal should be indestructible, but it shouldn't be cheap, in fact, it should be one of the most expensive things on the server, alongside tanks and rocket launchers. let people build wooden (camouflaged) bases, and let others be able to break into those. Also, locks should be buyable from the traders, so as to not make it impossible for people to have bases, but safes should only be on hard&hardcore missions, and lockboxes should be on medium, hard and hardcore missions, as well as drop from zombies.   3. Vehicles. Only spawn 5 vehicles on the map, (old) bikes (the most frequent one), (old) motorbikes, towing tractors (slow and leaving you exposed, but allowing you to tow other vehicles), traktor (slow and noisy, but also good for towing, and offroad), and a slow boat (for one player only). The rest should be bought, and get unlocked after the maintainance period (i.e. 14 days. on most servers nowadays).   4. Missions. There should be a broken vehicle for each mission, with the number of AIs be the number of seats those vehicles have. 4 difficulties, all with wicked AI: - easy: motorbike or atv, 2 people with pistols, a chance for one to have a crossbow (which can have a CCO attacked to it, for use against more difficult missions). One vehicle not working - medium: 1-3 vehicles, some things (like boxes, crates and walls) for AI to hide behind, AI with shotguns, and in one of the boxes&crates to be a chance for a CZ for the next mission difficulty. One vehicle working. - hard: at least one important vehicle (like the ural, SUV, helicopter or armored vehicles), a few small buildings and even more cover (walls, crates, boxes, buildings), AIs with CZs, and rarely a better sniper in the loot box. One vehicle working (not the important vehicle. This could be an old motorcycle that's working for every mission) - hardcore: same as hard, but with machine guns and rocket launcher, none on AI, a chance of either one in the loot. One vehicle working. Also, an armed vehicle that can't move, and will be empty (of ammo) when not used by AI.   5. Trading. Now, the catch here is to have trading routes, and the gains should not be big, but enable a lot more gameplay options. Aside from the trader cities (the buy-sell price ratio should be 4:1), with normal prices, and special loot (like weapon attachments). Each of that trader should be in a different location from the trader cities. You could have 3m safezone around them, and have them spawn in the middle of nowhere, in a building of their own. They should also be relatively close to roads, so that those roads can be camped/ambushed. The whole point of this is to enable a small profit for those doing trading routes. There should also be at least 5 of those on the map.   6. Map. The map should NOT be Chernarus, because everyone knows every bit of it. There's also the deal with the open buildings I would suggest either Lingor Island (still kind of fresh) or Panthera 2 (overused), with 4 trader cities (2 for everybody and 1 for hero and 1 for bandit), and none of them have all the traders inside (again, so that the people have to visit more than one trader city), and there should be more buildings on the map than by default, so as to make the map unique to the server. You could block some entrances and add other entrances to buildings, wall around things, add buildings, add unmarked cities, and so on, so long as they're not obviously laid down on the map.  Also, have a day+night cycle, but not those bitch black nights.   7. Donations & Microtransactions. Those who pay for it, should be able to have a bit of advantage over the others, but not too much of it. Something like a VIP Hero with a desert camo (or snow, they're both good in a city) and VIP Bandit with a forest camo. Also, maybe let them buy bikes and motorbikes for two thirds the price (so 3:2 buy-sell ratio), from a VIP trader in each trader city. If you want new players to get something free, give them money for a lock, so they can have a locked house. And a lockbox to the VIPs...

      So, tell me, how will it help you to have your server (more or less) exactly the same as every other server? What makes YOUR server so special? Is it any fun? For anybody?
  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...