Jump to content

7erra

Member
  • Content Count

    394
  • Joined

  • Last visited

  • Medals

Community Reputation

284 Excellent

7 Followers

About 7erra

  • Rank
    Staff Sergeant

Profile Information

  • Gender
    Male
  • Location
    Germany

Contact Methods

  • Biography
    - 2012: ArmA2; Public domination, DayZ mod
    - 01.12.2013: Start of ArmA3
    - 06.01.2014: Joined the [IPT] ArmA3 clan, start of milsim "career"
    - March 2014: End of the IPT ArmA3 clan
    - End of 2014: Joined the 23. Luftlandekompanie [23LLK]
    - Middle 2015: Left the 23LLK for the 401PzGrenKp [401]
    - 01.04.1016: 401 joins the virtuelle Lehrbrigade 16 [L16] as PzGrenBtl 402 [402]

    Scripting for 5 years now. Learned by doing, didn't read one single scripting introduction. Not recommended - takes longer I guess.

Recent Profile Visitors

1417 profile views
  1. The money is only stored as a variable on the the player. Some sqf knowledge would be neccessary to adjust it for your needs. I actually expected that there would be a simple money system somewhere but a quick google search didnt yield any formidable results... If you want to reward the player for killing enemies you can take a look at the onEntityKilled mission eventhandler. There should be some threads on the forum already explaining it in detail.
  2. Just so you know I am reading all of the comments but development has been laid off cause I've been working on another project and been busy. Getting back into the code will take some time so thanks for the kind words and sorry for the lack of support 😉 This is meant for the init field of a unit which is going to be killed. The system doesn't support a complete money system as of now. There are other systems which can be used in conjunction with VASS. Have thought about it but first comes fixing bugs and making the code cleaner 🙂 Using the Virtual Garage for that purpose might be viable 🤔 Thanks!
  3. 7erra

    Creating Table Dialog

    I've figured out how the CT_CONTROLS_TABLE is used. First of all you have to add a new line to the defines you already got (where all the control types (CT_) are defined). #define CT_CONTROLS_TABLE 0x13 //19 There is no base class for this control type so create either a new one by copying the example from the BIKI page or copy the BIKI entry to your dialog's controls and adjust the position. All important attributes are explained well on the BIKI by a BI dev. When the control is created it doesn't show as long as there are no entries. Here is a piece of code that shows the basic functionality of (kind of reproduces the BIKI example, but in bad): params ["_display"]; _table = _display displayCtrl 107; _header = ctAddHeader _table; _header#1 params ["_txtBack","_picCol1","_txtCol2"]; _picCol1 ctrlSetText "\a3\ui_f\data\igui\cfg\revive\overlayiconsgroup\u100_ca.paa"; _txtCol2 ctrlSetText "Test Table"; _txtBack ctrlSetBackgroundColor [0,0,1,1]; for "_i" from 0 to 2 do { _newRow = ctAddRow _table; _newRow#1 params ["_txtBack","_picCol1","_txtCol2","_btnCol3"]; _picCol1 ctrlSetText "\a3\ui_f\data\igui\cfg\revive\overlayicons\d100_ca.paa"; _txtCol2 ctrlSetText "Some long text"; _btnCol3 ctrlSetText "CLICK ME!"; }; It seems that this control type hasn't (yet) been used in A3 but in Argo. Sorting the colums is probably not such a great idea as there are no commands for it.
  4. 7erra

    Creating Table Dialog

    Gonna split this post in two because different topics. So about the Server Browser and ListNBox. It consists of one top line of buttons which, when clicked on, sort the ListNBox below. This also means that they are not part of the listbox and can be handled (tooltip, selected) seperatly. Aligning them is not that intuitive though. I made a mission to show how I would do it: GitHub mission description.ext defines.hpp is way too long to post here. The basic defines should do. dialog.hpp loadTest.sqf As you will see I am keeping the buttons together inside of a controlsGroup and use the relative width of the listbox to get the horizontal position. The magic of sorting happens in the loadTest.sqf script where I fille the listNbox with random vehicle configs, assign an EH to the buttons and then find the correct column to sort by the idc of the button. The command lnbSort(ByValue) does the rest. Because the third column contains numbers they have to be set as values on the column. Otherwise they will be sorted by their string which would put "100" before "2". To keep track of if the order should be ascending or descending I set a boolean variable which gets inverted after each click. Yeah sometimes BIS is hiding things from us. Might be handled by the engine. But I don't know ¯\_(ツ)_/¯. Next post: RscControlsTable
  5. I have rewritten the code for the live debug console so I might have messed something up. Will try to reproduce it. Thanks for the heads-up!
  6. v2 - "Next Level" Update Better late than never, eh? Skipping version v1.9 because it is in fact a major update. Maybe not so much on the content side of things but there are some important changes under the hood. Most noteably: Performance. The escape menu should now load faster because only one page gets loaded at a time. Also: New page. KK Debug is a small extension that enables logging of values to a console outside of the game which is a cleaner alternative to the rpt log. I will try to work on an extensive documentation over at GitHub to showcase all features, some are a bit hidden. Changelog for now is on Steam. ! IMPORTANT ! If you have security concerns regarding the debug_console_x64.dll then you are free to delete it. It will have no effect on the mod whatsoever but will make the whole KK Debug page non-functional. Bugs and bad design for free, 7erra
  7. 7erra

    Help with custom notification

    There is a new command which will set only one paramter of ctrlSetPosition (ctrlSetPositionX, Y, W, H). Also, changed the initial control creation because after setting the width of the control for the first time it has to be validated with ctrlCommit to give the correct height. Lastly, I've reintroduced the counter which updates with each iteration through the already existing controls array. Just copying it as is should work. Tested with the following function from debug console: []spawn { for "_i" from 0 to 5 do { sleep 0.5; _msg = []; _msg resize _i*5; _msg = _msg apply {" test"}; _msg = _msg joinString ""; [_msg] execVM "note.sqf"; }; }; This will print 6 messages with increasing length.
  8. 7erra

    Help with custom notification

    Yeah if you are going to have controls with different heights it's not gonna work anymore. Going back to using a variable which adds the control's height and margin between notifications should work.
  9. 7erra

    Help with custom notification

    replace the whole if statement with what i posted. btw updated the other post.
  10. 7erra

    Help with custom notification

    here is the modified part: if (count open_notifications > 0) then { { private _ctrlBorder = _x select 0; private _ctrlText = _x select 1; if (!isNull _ctrlBorder && !isNull _ctrlText) then { _offsetY = (_foreachindex + 1) * (_margin + ((ctrlPosition _ctrlText) select 3)); _ctrlBorder ctrlSetPosition [_posX, _posY + _offsetY]; _ctrlText ctrlSetPosition [_posX + _borderWidth, _posY + _offsetY]; _ctrlBorder ctrlCommit 0.25; _ctrlText ctrlCommit 0.25; if (_foreachindex > 3) then { _ctrlText ctrlSetFade 1; _ctrlText ctrlCommit 0.2; _ctrlBorder ctrlSetFade 1; _ctrlBorder ctrlCommit 0.2; }; }; } forEach open_notifications; }; The magic variable _foreachindex is the current index of the array which is cycled through: https://community.bistudio.com/wiki/Magic_Variables. This saves you the declaring and maintaining of a new variable (_activeNotifications). It has to be incremented by one bc it starts at 0.
  11. 7erra

    Dialog controls documentation?

    I was doing the same thing. I'll send you a PN. controlsBackground will always be in the background. Normally the controls which are listed last are the ones which are in the foreground. This order can change if you select a control which accepts input. Therefore it is good practice to put the non-interactable controls under controlsBackground so they don't block the interaction from the user. a3\ui_f\config.bin Again, needs to be depboed and debinarized. Then it is line 55045 to 56145. Search for "RscDisplayEGSpectator". Depending on how often you want to explore the game files and how much storage you got left on your drive you can extract all of the game's data unpboed and debinarzied. Just run the ArmA3 Tools from Steam and select "Project Drive Management".
  12. 7erra

    Help with custom notification

    Just this one line should do the trick.
  13. 7erra

    Help with custom notification

    Before calling the ctrlTextHeight command you have to adjust the width of the control to what you want afterwards. Just add another ctrlCommit before declaring _adjustedHeigth.
  14. 7erra

    Dialog controls documentation?

    Looks like I was right with the CT_XKEY control. The IDC defines for the 3den editor contain a list of defines which correspond with the XBOX controller: // Xbox buttons #define KEY_XINPUT 0x00050000 #define KEY_XBOX_A KEY_XINPUT + 0 #define KEY_XBOX_B KEY_XINPUT + 1 #define KEY_XBOX_X KEY_XINPUT + 2 #define KEY_XBOX_Y KEY_XINPUT + 3 #define KEY_XBOX_Up KEY_XINPUT + 4 // etc etc until +23 The same attribute can be found in the BIKI's example config: class RscXKey { type = 40; idc = -1; style = ST_LEFT; h = 0.06; size = "( 21 / 408 )"; shadow = 0; key = "0x00050000 + 1"; //<--- Right here class Attributes { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; }; class AttributesImage { color = "#E5E5E5"; }; };
  15. Don't know if this is new or helpful but I was browsing through the 3den Editor files and found this function: a3\3den\functions\fn_initpixelui.sqf: if (count (supportInfo "n:pixelW") == 0) then { //--- Get unified UI scale _coefUIScale = getResolution select 5; _coefUIScale = switch true do { case (_coefUIScale < 0.500): {0.500}; case (_coefUIScale < 0.625): {0.625}; case (_coefUIScale < 0.750): {0.750}; case (_coefUIScale < 0.875): {0.875}; default {1.00}; }; //--- Calculate pixel scale based on UI scale and vertical resolution _coefRes = ((round ((getResolution select 1) / 180)) / 4) max 1; _pixelScale = _coefRes * _coefUIScale; //--- Save variables to all name spaces { //_x setvariable ["pixelW",1 / (getResolution select 2)]; //_x setvariable ["pixelH",1 / (getResolution select 3)]; _x setvariable ["pixelScale",_pixelScale]; } foreach [missionnamespace,uinamespace,parsingnamespace]; }; Maybe somone got an idea what it does? It isn't listed in the functions library, has no documentation and the if statement should always return false.
×