Jump to content

jacmac

Member
  • Content Count

    173
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by jacmac


  1. Well, you are spot on with the orientation, I do need to implement that. The marker add-on you referenced isn't necessary to integrate, I already have a large number in there and will be adding more. What I haven't done yet is make the markers accessible, only the "Quick List" is functional at the moment. There are three drop-downs you will be able to use to select the unit type, size, and affiliation. That will effectively add hundreds of markers you can't see right now.


  2. Download:



    1st BBR EZ Markers Version 0.5 (Beta)

    EZ Markers is a mod that generates map markers and optional 'signs'. The intent is to provide easier access to map markers as well as utilizing a large number of markers generated to MIL-STD 2525C standards (not all of them, just the relevant symbols that would be typical in ARMA). The mod is currently functional, however much of the symbology has not been implemented yet. Some of the interface needs tweaking for easier use. I can use any feedback on how to improve the functionality. The mod is mostly self explaintory, but check the video for a quick demo.

    • Keys are provided, but I have not checked their validity, please let me know if the signing is incorrect.
    • The mod is Client/Server, the Server executes the creation of markers and send commands for the clients to create signs. Most of the execution is client based.
    • Network traffic is minimal (unless dozens are creating markers and signs all at the same time).
    • I need opinions on whether limits should be placed on players (sign creation could get out of hand).



    2596118.jpg

    2596120.jpg

    2596125.jpg


  3. There are also some transient conditions that can cause trigger misfires. If a trigger requires a player to be a driver of a vehicle for it to fire, the player alone can cause the trigger to fire just after they exited as the driver of a vehicle. For a short period the player is both a driver of a vehicle and not in a vehicle at all.


  4. ive noticed that on some occasions, when leaving the service point (after successful service) in a helicopter, the gui shows up again for entering the service point, but it just says

    'any' for all the text. RPT shows a bunch of the variables are undefined. Im assuming that the trigger is still calling service script and passing it null/nil values as arguments. Afterwards the corrupted gui screen will stay on the players hud for a minute or so until it finally clears up.

    Might be a good idea to check if the arguments exist before running the service script (not sure if you are already doing this)

    I've seen this on occasion when the player jumps out of the vehicle just as the service is ending. I don't know what causes, but the trigger conditions definitely don't allow anything except the driver of a vehicle to trigger. I suspect there is some kind of latency between a player exiting as the driver (still flagged as a driver) and the trigger going off. It is like for a split second when you exit a vehicle you are the driver of yourself, which is not valid, yet exists for a very small period of time.

    ---------- Post added at 03:40 PM ---------- Previous post was at 03:38 PM ----------

    Thanks for the great mod JacMac. A question as it relates to the sounds during repair. Is there a way to localize those sounds only to the general area (within 5 meters) of the source? I and my mates are hearing the "Jerky Boy" sounds across the entire base :)

    Thanks again

    Yes, look for the sound script and change the radius parameter. It's probably around 50 meters, I can't remember off hand, but you can set it to 5 meters. You can also lower the volume way down on it. I'm also amazed that anyone recognized the voices, congratulations!

    ---------- Post added at 03:41 PM ---------- Previous post was at 03:40 PM ----------

    I'll update it with a new link, the free download services are pretty flaky these days.


  5. Maybe it would pan out better to make one pass to get the highest rank and join the new group via a foreach, then join the rest to the new group via another foreach without checking for ranks on the second pass. Is it possible that the count of the group units is being altered slower than the loop because joinSilent is a global funtion? In other words joining a unit from one group to another requires time for the count to change on the next check?

    [_unit] joinsilent _newGrp;
    sleep 0.25; //wait a long time for testing
    _ct = _ct + 1;


  6. So there is a blurb in the documentation regarding RSCTitles. Basically there can only be one class definition for RSCTitles for the whole mission. This means that many missions designers don't understand and add other scripts into their mission with description.ext #includes that have RSCTitles definitions. The effect is that the last class definition for RSCTitles will overwrite any previous definition. To resolve this issue, you must find any other RSCTitles definitions and combine them into one. I included an alternative method of defining RSCTitles for situations like this:

      class RscTitles {
    #include "x_dlg\RscTitles.hpp"
    #include "gvs\stc_include_alt.hpp" //Alterntive display class definitions
    };

    In the example above (entered in DESCRIPTION.EXT directly), RSCTitles contains two includes, one is for another script (Domination) and the other is GVS. This allows both scripts to use RSCTitles, but definitely OPEN and EXAMINE the differences between stc_include.hpp and stc_include_alt.hpp files. You may need to alter other developers scripts somewhat to use this method of class definition. If you understand classes at all it will make sense. The only other thing to worry about after this is the layer numbers, they must be unique. It is unlikely that two scripts will happen to use the same layer numbers, but it will cause one control to step on another and they can end up ping-ponging.

    RSCTitles and Dialog's in general are a confusing animal to understand, it took me quite awhile to completely grasp and I still seem to find new things about them. They are very quirky and the developers did not follow any hard rules with their development. A lot of the biki documentation is old and only semi-accurate for Arma 3.


  7. The code below populates the listbox just fine, but lbSetSelected has no visible effect. I've tried the same thing with a combobox; lbSetSelected doesn't appear to do anything. The combobox will be populated, but the box shows blank until the player selects an item.

    disableSerialization;
    _disp = findDisplay IDD_DIALOG1;
    _control = _disp displayCtrl IDC_Quick_List;
    _controlnum = IDC_Quick_List;
    _count = 0;
    {
    lbAdd [_controlnum, _x select 2];
    lbSetData [_controlnum, [_count,_x select 1]];
    lbSetPicture [_controlnum, _count, _x select 0];
    _count = _count + 1;
    } foreach ArrayQuickList;
    _control lbSetSelected [1, true];


  8. If I define this in description.ext (assume the icon is located in a directory called markers):

    class CfgMarkers
    {
     	class TEST_Cross 
    {
        name = "Simple_Cross";
        icon = "markers\cross_ca.paa";
        color[] = COLOR_GOLD;
        markerClass = "draw";
        size = 24;
        shadow = 0;
        scope = 1;
    };
    };

    Should this work?

    TESTMapClick = 
    {
    _pos = _this select 0;
    _marker = createMarker ["Marker1", _pos];
    _marker setMarkerType "TEST_Cross";
    };

    What I'm getting is an error stating No Entry bin\config.bin/CfgMarkers.TEST_Cross

    I'm not sure how to declare the class. I saw a similar class declaration on the biki at https://community.bistudio.com/wiki/cfgMarkers

    But I actually declared it using properties found in the Config Viewer for CfgMarkers in Arma 3.


  9. Solved: Make sure the source image dimensions are a power of 2 (32x32, 64x64, 512x128, 64x256, etc).

    Step one, use GIMP to export TGA (no RLE compression):

    1744391.jpg

    Step two, load in TexView and export as a paa (no changes made):

    1744393.jpg

    Step three, define the class:

    class BBR_RscPicture 
    {
    access = 0;
    type = CT_STATIC;
    style = ST_PICTURE;
    idc = -1;
    shadow = 0;
    fixedWidth = 0;
    x = 0;
    y = 0;
    w = 0.200000;
    h = 0.150000;
    colorText[] = {1, 1, 1, 1};
    colorBackground[] = {1, 1, 1, 1};
    font = "PuristaMedium";
    sizeEx = 0;
    size = 0;
    };
    
    
    class BBR_Ribbon: BBR_RscPicture
    {
    idc = 12003;
    text = "bbr\ribbon.paa";
    x = -3.5 * GUI_GRID_W + GUI_GRID_X;
    y = 23 * GUI_GRID_H + GUI_GRID_Y;
    w = 27 * GUI_GRID_W;
    h = 3.5 * GUI_GRID_H;
    };

    And finally, the blown output in game; what did I do wrong that caused the colors to be fouled?

    1744394.jpg


  10. Color Constants Download

    Color List

    I have procedurally converted the 500 colors on the Color List above into a .hpp file. Here is a sample (except the tabs are lined up in the file on 4 spaces per tab):

    #define ARRAY_ALICEBLUE										[0.94,0.97,1,1]	
    #define ARRAY_ALICEBLUE_HALF								[0.94,0.97,1,0.5]	
    #define ARRAY_ALICEBLUE_OPAQUE								[0.94,0.97,1,0.75]	
    #define ARRAY_ALICEBLUE_PART								[0.94,0.97,1,0.25]	
    #define COLOR_ALICEBLUE										{0.94,0.97,1,1}	
    #define COLOR_ALICEBLUE_HALF								{0.94,0.97,1,0.5}	
    #define COLOR_ALICEBLUE_OPAQUE								{0.94,0.97,1,0.75}	
    #define COLOR_ALICEBLUE_PART								{0.94,0.97,1,0.25}	
    #define HTMLCOLOR_ALICEBLUE									'#F0F8FF'
    #define RGB_ALICEBLUE										"'#F0F8FF'"	
    

    As you can see with the ARRAY and COLOR prefixes, there are four alpha versions for each color.

    • Like 1

  11. I think you need to just define them:

    class VScrollbar 	
           {	
                   color[] = {1, 1, 1, 0.6};	
                   width = 0.021;	
                   autoScrollSpeed = -1;	
                   autoScrollDelay = 5;	
                   autoScrollRewind = 0;	
                   shadow = 0;	
           };	
    
           class HScrollbar 	
           {	
                   color[] = {1, 1, 1, 0.6};	
                   height = 0.028;	
                   shadow = 0;	
           };	
    
           class ScrollBar {	
                   color[] = {1, 1, 1, 0.6};	
                   colorActive[] = {1, 1, 1, 1};	
                   colorDisabled[] = {1, 1, 1, 0.3};	
                   thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";	
                   arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";	
                   arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";	
                   border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";	
           };

    Then add them:

    class RscDisplayTest
    {
    idd = 3000;
           type = CT_COMBO;
    movingenable = false;
    
    
    class Controls
    {  
                   class MyTextBox: RscStructuredText
    	{
                           type = CT_STRUCTURED_TEXT
                           style = ST_MULTI;
                           lineSpacing = 1;
    		idc = 1235;
                           size = 0.09;                      
    	        text = " ";   
    		x = 0.32815 * safezoneW + safezoneX;
    		y = 0.4575 * safezoneH + safezoneY;
    		w = 0.343 * safezoneW;
    		h = 0.315 * safezoneH;
    		class MyTextBoxScroll: ScrollBar 
    		{
    		};
    	};
    
    
    };
    };

    I don't know if this will work or not, but defining the scroll bar in the control would seem to be the way to get it included if RscStructuredText can support a scroll bar.

    Oh and all of the code I quoted can't be used without SA-MATRA's direct permission if you care what he thinks LOL. :D


  12. It works. Like I said, if there is no gunner, the pilot will be switched to the gunner position to reload for a split second. Otherwise the gunner executes the code and it works that way too. Moving to the gunner position to adjust the gun has no effect on the process. What might be weird is that a pilot that gets out and walks around during the reloading may or may not cause a failure to reload, if a gunner is not present.


  13. I think what you want to do is look at createTrigger and related setTriggerxxx commands. It can get a little tricky to debug triggered code, but far easier than what you are doing. Your waitUntil code might work but it also is going to chew up a lot of processor time constantly checking and debugging that means attempting to log the distance between all units and _spawnpos literally hundreds of times per second (not going to happen).

    What you're doing is polling for an event, but what you need to do is handle a triggered event instead.

×