Jump to content

A.Cyprus

Member
  • Content Count

    365
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by A.Cyprus


  1. Hello,

     

    I'd like some help understanding observations made whilst benchmarking a few performance scenarios. These scenarios (and the observations below) involve functions exceeding a 1Mb file size.

     

    NB: I appreciate this is both horribly unrealistic and horrendously bad practice - I am not actually implementing in this way, I was merely using them to stress performance limits and in doing so came across something that now bugs my curiosity.

     

     

     

    When using the CfgFunctions library to pre-compile:

    • the function !isNil
    • the function typeName is CODE
    • diag_log-ing the function shows a some sort of header
    • diag_log-ing the function shows the content is missing
    • executing the function does nothing

     

    The RPT output looks like this:

    12:24:29 {
    	_fnc_scriptNameParentTemp = if !(isnil '_fnc_scriptName') then {_fnc_scriptName} else {'fnc_test'};
    	private ['_fnc_scriptNameParent'];
    	_fnc_scriptNameParent = _fnc_scriptNameParentTemp;
    	_fnc_scriptNameParentTemp = nil;
    
    	private ['_fnc_scriptName'];
    	_fnc_scriptName = 'fnc_test';
    	scriptname _fnc_scriptName;
    }
    

    When using compileFinal preprocessFileLineNumers on a sqf declaring an identical function:

    • the function !isNil
    • the function typeName is CODE
    • diag_log-ing the function shows no header, just the script
    • diag_log-ing the function shows the content intact
    • executing the function works as expected

     

     

     

    Reducing the file size to around 700K has both scenarios working as expected.

     

    The RPT output of the first scenario adds the body of the script (until the diag_log limit is reached) prefixed by #line 1 and the path to fn_test.sqf

     

     

     

     

    An example function would be:

    fnc_test = {
        diag_log "--function running---";
    
        private ["_test"];
    
        // line below is repeated enough times to pad the file size
        _test = "fsdjagfhjgfhjgfhagfsgfgsafgasfkgahskdjhkjasghjasgvfhjgasfhjgasfhjgasfdhgasfhgaskgfhkjagfdkahjgfkjagsdfkjagsdfkjagfkjgha";
    
        diag_log _test;
    };
    
    

    The above script is included in an sqf for the second example. The version used for CfgFunctions obviously doesn't have the wrapping class name etc.

     

     

     

     

     

    So, questions are:

    • why does this happen?
    • is it something similar to strings having maximum sizes?
    • is there a known hard limit at which this happens?

     

    Thank you.

     


  2. Is this different from the Controls > Keyboard > Infantry Movement options? 

     

     

    Hey dakaodo

     

    Apologies, not been online much of late.

     

    You've probably figured it out by now, but to answer your question - yes, entirely different. The vanilla movement controls and toggles may affect how your character behaves whilst moving but you essentially still need to press and hold a key to make him/her walk/jog/run etc. 

     

    This addon enables your player character to move forwards without you having to keep a key pressed down.


  3. Hello all

     

    In a dialog I am currently working on, I'm calling htmlLoad on a control of type RscHTML. This works fine, and ctrlHTMLLoaded evaluates true.

     

    I'd like to ctrlSetText the content of this control as text of another control, of type RscButtonMenu.

     

    However, when I try the following, nothing happens:

     

    _ctrl ctrlSetText (ctrlText _ctrlHTML);

     

     

    If instead I use,

     

    diag_log (ctrlText _ctrlHTML);

     

     

    I see the following in my rpt:

     

    control[RscHTML]: Unexpected control type [9]

     

     

     My question therefore is:

     

    Can ctrlText be used on a control of type RscHTML to get its contents (the html source)?

     

    I would have assumed so, given it inherits from RscText.

     

     

    Thanks for the help.

     

  4. 1.44 introduced stricter parsing of the XML to "avoid abuse". This meant I had to remove any custom node names not defined in the official schema. This is the problem you are facing.

     

    Why not add your rank and position to the member remark field? That's what I do, eg "Cpl in 1 Section".

     

    You seem to be doing this already wrt community position. Perhaps you can include the milsim rank/position in there too. Not ideal, but better than nothing.

    • Like 1

  5. Tapatalk is planned and we will soon be testing it.

    Superb, many thanks.

    In fact, I can see it has already been activated although my user credentials are reported as incorrect. I've tried logging in using my prior forum username and my current Bohemia profile email address.

    Is it currently locked for testing, or could I be doing something wrong?

    Also, seems my account is similarly affected by the capitalisation issue a few posts above.

    Thanks again for your time.


  6. Hey KK, thanks for helping. Apologies for only responding now - I've been away.

     

    I just tried this on a dedicated server running vanilla, and the fire kills my character when I walk through it. :(

     

     

     

     

    Edit:

     

    To investigate, I moved the setParticleFire command into a new clientside function, with a hint at the start. Using remoteExecCall did not show the hint, which explains why the fire is still giving damage. Using BIS_fnc_MP instead of remoteExecCall, did show the hint and removed the damage too.

     

    So the concept is sound but remoteExecCall itself isn't working. I'm not sure why, unless CfgRemoteExec is not applicable to the production branch yet.

     

     

     

    I guess the conclusion to my original quesion is to use remote calls after all, which I had hoped to avoid.


  7. @BohemiaBeck

    Thanks for checking into this thread regularly.

    I assumed the migration would have minimal impact on myself given that I use the forum almost exclusively via tapatalk.

    This seems to have stopped working now, reporting a network error when trying to log in or re-add the forum itself.

    Perhaps the tapatalk backend has yet to be installed on the new forum. Please, are you able to clarify if this is the case, and if so, whether there are plans to reactivate it?

    Thanks for your time.


  8. Thanks for the reply.

    I have no experience on particles whatsoever, but it seems you might have hit an engine bug (or feature?) here. Modifying the fire properties seems not to be broadcasted once the object has been created?

    I had similar thoughts and was hoping to get some dev attention, I guess I'd need to post on the feedback tracker for that.

    But do you really need to use "MediumDestructionFire"? Maybe you can define your own particle effect that has the same visuals, but not the damage effect.

    I used that class for demonstration in this post. I'm actually using a number of different particle classes in the mission, all behave as above. It's a good suggestion, and I could look at recreating them but it would be a lot of work for me given how many I'm using for the effects I need, and probably wouldn't look as great. I'm not too familiar with that area of scripting either. :(


  9. I kinda gave up after that, he just kept reloading :p

    Oh jeez, did I say CTRL+R? Sorry dude, not sure why I put that, it was indeed as you discovered CTRL+W etc, since W is forward in most people's setups.

    I'll probably change that in my own config because it conflicts when I'm moving and try to raise or lower my weapon with CTRLx2.

    anyway finally tried the pro tip for setting controls while mission is running and voila!

    Good stuff, dude. I'll aim to fix that in a future version, so that the configure options show from game launch. It's a a thing with the CBA keybinding system atm.

    Can the sequence from walk to sprint change from walk to jog to sprint?

    Not as it stands but I suppose I could change it, though you could just as easily use CTRL+W to switch into auto jog. The tap-to-sprint feature was a last minute addition, kind of an oh-shit-get-to-cover key, or just a temporary speed boost.

    Thanks for the positive feedback :)


  10. Indeed. I did try various mechanisms but playActionNow was really the only method that worked properly.

    It wasn't that overly complicated either, but it did break the engine mechanics - hence my comments in the readme about game exploits and me putting in all the extra checks to prevent them.

    No offense taken btw, I agree with everything you said on retaining more fluid movement. In fact, I had played with some code to allow just that (sideways movement, stepping over etc) and it worked ok-ish but seemed to eat frames so i removed it. I wrote the whole thing in two sittings, and just wanted to release before my vacation. I'll have another go at it in a few weeks when I'm back.

    Btw, could you share some more detail on when you say changing pace interrupts the auto walk, please? If I need to fix something then I'd like to know more.

    Thanks :)


  11. Pepe Hal

    I expect the issue is that movement commands are sent when/while key down fires. Attempting to disable key up doesn't mean that key down will continue uninterrupted when you release the key.

    Technically, you've overriden any events set by the engine to trigger on key up by using your own handler. You haven't actually prevented the key up event from firing, you've just changed what happens.

    Releasing the key means the key down state is no longer true, ie the key code is no longer being sent. All irrespective of what happens in key up.


  12. Hey man, no worries.

    You're actually the second person that has asked for a follow function. To be honest, I'm not sure where I stand on it. I can understand the utility of such a feature, though on the other hand I'm more of a realism guy and not much a fan of diluting things down too much.

    If I implemented such an option, it would need to have some primitive path finding or at least work by following the target's footsteps exactly (which you should be doing anyway), else you might get stuck behind an obstacle on route. It might also need to at least respect minimum spacings, though I wouldn't go as far as considering formation.

    It's not something I particularly planned to do, though I won't rule it out either - if there is enough interest by you all. Will think on it.

    Thanks for the feedback.


  13. Yeah, default keys are:

    CTRL+R = Autorun

    CTRL+ALT+R = Autowalk

    (I fully expect ppl will change these)

    I'm assuming your CBA folder matches the one in the mod path above, right?

    Edit: just did a quick test.

    All works OK here.

    Because of the way the keybind system works, you may need to be in a mission or editor session to see the addon in the configure list.

    Failing that, please pm me your rpt file. I'm not on dev branch so it could be related.

×