Jump to content

gokitty1199

Member
  • Content Count

    311
  • Joined

  • Last visited

  • Medals

Posts posted by gokitty1199


  1. a little more input to this. i also have a 6800xt with a 5900x and ever since i replaced my old gtx 970 with the new 6800xt my YAAB benchmarks have dropped 10fps on average.

    with stock cpu clocks and ram speed at 3600mhz cl16-19-19-39 with the 6800xt i was getting 70-73fps (i am using CMA). the same setting with the gtx 970 was getting 80-84fps average.

     

    with the gtx 970 and cpu clocked to 4.6ghz all core this bumped up to 88-91fps average. the same setting with the 6800xt was still getting 70-73fps.

     

    with the 6800xt and cpu clocked to 4.5ghz (made some adjustments since last test) and ram overclocked to 3600mhz cl14-14-14-28 there was still 0 gain.

     

    overclocking my cpu and ram with the 6800xt in it yielded 0 improvement in arma where as it made a MASSIVE improvement with the gtx 970. it seems theres something going on with the rx 6000's and arma and i have yet to figure out what since their release is causing this issue because i should be pushing over 90fps average in that benchmark now with the cpu and ram overclock i have setup now but im still stuck at 70-73. so far there is only about a 2fps difference (margin of error) between 1080p and 2160p in that benchmark with this setup with standard settings

    • Thanks 1

  2. 9 hours ago, Mahatma Gandhi said:

    A friend in the German Ryzen RAM OC Community (spawn off the Computerbase.de Forum) going by the name ZeroCoolRiddler, gives some pretty impressive results from a 5800x running Micron-E Dies @4000MHz 1:1 with the FCLK.

     

    arma3_benchmark3lejx0.png

     

    To my knowledge, this is the first system to pass the 100 FPS sound barrier.

     

    Interestingly, his min. FPS hit a mind boggling 71FPS which is pretty much exactly what I proudly presented as the max. FPS my 3300x could achieve a week ago.

     

    The system ran the cma_x64 AVX2 malloc and a curved PBO, a new Zen3 AGESA function which allows a manually adjustable Boost behaviour in terms of frequency and voltage settings allowing to customize the boost behaviour with individual (and non escalating) voltage settings per core making curved PBO apparently the cpu optimizing method of choice on Zen3.

    Ordered 3200mhz cl14-14-14-34 ram to OC and challenge his score ;) (5900x OCed with 91.2fps with 3600mhz cl16-16-16-39 current)

    • Like 2

  3. 1 hour ago, combataz said:

    Ah, sorry, apologies. I want it to be displayed to everybody. 

     

    Follow up question, are transition effects a thing for something like this? A fade in, for example.

    assuming i understood you correctly, call this on the first person who enters the triggers client and it will broadcast the system chat to everyone. not with systemChat no, you would need another form of displaying the message for that(afaik)

    BUF_DisplayText =
    {
    	_profileName = profileName;
    	_str = format["Time: %1   ProfileName: %2", time, _profileName];
    	_str remoteExec ["systemChat", 0, false];
    };

     


  4. 29 minutes ago, combataz said:

    Players are on the Independent side. It'll be when a unit crosses a trigger delineating the start of the mission area. Am I able to throw strings into that function as well?

    you can put whatever you want in it. so each time a player enters the trigger you want to display text to everyone showing who entered the trigger? or do you want it to only display who entered the trigger first to everyone or what? that part is still unclear to me


  5. the variables are not actually defined due to spawn{}. heres an example of what i mean

    this will throw an undefined variable error for _unit(inside of spawn{}). the first params ["_passedInUnit"] is referring to [this] that you passed into the sectorTacticInfantry.sqf script, the unit itself which you need to add to the top outside of spawn.

    params ["_passedInUnit"];
    
    [] spawn
    {
    	params ["_unit"];
    	hint str _unit;
    };

    now heres a working example where it knows what _unit is. im passing in [this] just like before into the script(how you called it in your post, no different), im assigning it outside of spawn{}, then i am passing it INTO spawn{} so the script inside of spawn{//script here} knows what it is

    params ["_passedInUnit"];
    
    [_passedInUnit] spawn
    {
    	params ["_unit"];
    	hint str _unit;
    };

    make sense? spawn is not really a part of your .sqf script that you execVM, its more so telling the game to compile/add a new script to the scheduler which is why you have to pass variables into it to use them. i would consider trying to rewrite alot of your script and try to make it more efficient because alot of open loops on alot of AI will cause some lag. try coming up with a method that fires once on a specific event or X seconds and checks all of them at once(i havent really read your script so sorry if that will not achieve what your trying to do). consider creating a function that takes in a unit as a parameter and call it instead

    • Thanks 1

  6. 2 minutes ago, wogz187 said:

    Every half second, I think. Just like whileTrue's. So even having a waitUntil with a 3-5 second delay spawn at mission start would be more efficient than using triggers. And your method above being magnitudes more efficient than that.

    that seems about right since it prints out hints pretty quickly with just a slight delay sometimes, thank you. scripting ftw

    • Like 1

  7. am i the only one who thinks its a bad idea to have triggers rapidly checking to see if a side is dead(not being a dick im honestly asking if it would be considered worse or better than the below method as i just dont use trigger conditions ever)? specifically having multiple triggers that are constantly checking the exact same thing for 2 sides when you can check everything only when a unit dies right away? i just read your post again and im assuming you want to check and see if any of those (opfor and independent) units are inside of the trigger area, you can simply do this and remove the constant trigger condition checks all together with this in initServer.sqf. this checks only when one of the units die and not continually, just a quick little blurp if that makes sense and checks only for the amount of units inside of the trigger area. if you want to change it to all the opfor/independent units across the entire map just remove inAreaArray enemyCountTrigger. enemyCountTrigger being the name of the trigger for this test

    addMissionEventHandler ["EntityKilled",
    {
    	params ["_unit", "_killer", "_instigator", "_useEffects"];
    	_opAndIndiRemaining = count (allUnits select {side _x == east || side _x == independent} inAreaArray enemyCountTrigger);
    	if (_opAndIndiRemaining <= 0) then
    	{
    		"EveryoneWon" call BIS_fnc_endMissionServer;
    	};
    }];

    if you want to check opfor and independent separately just do this

    addMissionEventHandler ["EntityKilled",
    {
    	params ["_unit", "_killer", "_instigator", "_useEffects"];
    	_IndiRemaining = count (allUnits select {side _x == independent} inAreaArray enemyCountTrigger);
    	_opforRemaining = count (allUnits select {side _x == east} inAreaArray enemyCountTrigger);
    	//do whatever you want with the number of remaining opfor/independent
    }];

     

    • Thanks 2

  8. a suggestion, since triggers would be constantly checking the condition, it may be better to check if all opfor/independents are eliminated via a entityKilled event handler so its only going to check each time something dies instead of every like (is it 3ms for triggers?).

    addMissionEventHandler ["EntityKilled", {
    	params ["_unit", "_killer", "_instigator", "_useEffects"];
    	_opAndIndiRemaining = count (allUnits select {side _x isEqualTo east || side _x isEqualTo independent});
    	if (_opAndIndiRemaining <= 0) then
    	{
    		"EveryoneWon" call BIS_fnc_endMissionServer;
    	};
    }];

     

    • Like 2

  9. On 9/28/2019 at 12:43 PM, empleat100 said:

    Strange that guy has it like that and it is working and i don't think he has set anything aside.

     

    I found out you can call it with radio, which can be specified under trigger. 

    But sometimes i would like to time it out when i enter trigger zone. So just create group like you said in init.sqf,  my cas module already has position, but i didn't find specific command pos. Which syntax is for that - "pos [x, y]" ? So i just put [x, y] after pos command ? I don't know why i need position, given it is synced with trigger.

    because it needs to know where to create the unit and it needs a position. you can get the position of the trigger if thats what you want? if not you can simply place down some markers and use getMarkerPos "markerName" where you see _pos. i would recommend you simply create a function that you can call for this for simplicity and so you dont have to deal with global variables where they are not needed


  10. 2 hours ago, empleat100 said:

    I forgot to enter name of my module instead of CAS: cas = _group createUnit ["ModuleCAS_F",_pos , [], 0, ""];

    But now i am getting error: global variable at local scope, while i am not using _ 

    And no it is not my code, i don't know what to set for position. Because in this video is just said to connect cas module with trigger and paste that line.

    in triggers (correct me if im wrong) you cannot use local variables(variables starting with _) so _group and _pos are going to give you errors

    • Like 1

  11. use distance. when i was making my weapon/zombie spawner/despawner, i got an array of all the players and all of the weaponholders/zombie units and simply had a control variable that determined if they should be deleted by looping through all of the objects and zombies and players with a nested foreach. so outer foreach loop was for an array of objects and zombies, the inner foreach loop was for players. i would do a check, if the object/zombie was less than 300 meters from the player, dont delete and break out of that foreach to the outter foreach. i have to go real quick but heres a quick example of what i mean

    {
      _object = _x;
      _deleteObject = true;
      {
        if (_object distance _x < 300) then
        {
          _deleteObject = false;
          //break out of loop
        };
      } forEach _players;
      if (_deleteObject) then
      {
        deleteVehicle _object;
      };
    } forEach _objects;

     


  12. 2 hours ago, imager6 said:

    I am making an obstacle course and plan to have 3 courses side by side. I have a stop watch script that works well for only one stop watch at a time. Is there a way to run 3 timers at the same time with start and stop triggers for each stop watch and course.

     

    1. Place a start trigger

        - on activation:

    time_start = diag_tickTime; time_running = true; 0 = [] spawn {    while {time_running} do     {       _time = (diag_tickTime - time_start) call BIS_fnc_secondsToString;       hintSilent format ["Time: %1",_time];       sleep 1;    }; };

    2. Place a end trigger

        - on activation:

    time_running = false;

    when i automated my competition shooting mission, i set the starting time and final time as variables on the timer itself. Set an action or trigger that fires a loop(if you need to see the time displayed continually), or set the start time and end time and subtract them to see the total time(more accurate than a loop timer unless you perform checks every 5 seconds or so to set the time to the proper time). what you could do is set the start time on the timer right as the script starts/trigger activates and start your loop. have a local variable be your current time. every 5 seconds, get the current time with "time" and subtract start time from it, then set your current time varaible to equal it. you can run multiple timers at once but keep in mind a hint will get overwritten with each new hint


  13. 56 minutes ago, VHFluffy said:

    Okay this is completely screwing with my mind. This time no error message appears but it only works in singleplayer not multiplayer (This is if I remove line 21). Break Engine does not work at all. I tried retyping the entire script twice without copy and paste, no luck.

    Don't know what line 21 does but so far the only difference I have seen is that it does not give an error message.

     

    When you tried this in multiplayer did you change any attributes?

    it will work in multiplayer, its in the initPlayerLocal, any player that joins the server will get these actions. simply setting damage for the engine isnt enough with the helicopters(afaik) to damage the engine, im not sure what else you need to do though. no i did not, you probably have something removing the actions.


  14. 3 hours ago, zagor64bz said:

    Not your fault man. It's the infamous "invisible forum bug".

     

    if you copy-paste your snippet (the first one you wrote) into the "code" tab you'll see plenty of RED DOTS which will trow errors once used in any script....

    Try..you'll see.

     

    @VHFluffy I suggest you verify EVERY script you copy in the forum by copy-paste it in the code box on the reply field. You'll be surprised how many time scripts don't work because of unwanted "red-dots".

     

    Cheers.

     

    EDIT: even the second one has the dots.....HAHAHAHAHA...damn little bugs...

    well thats fun -_-

    hopefully this is good then

    https://paste.ofcode.org/39ZRzDa3fMMVNmQ9k2rUrxV

    • Haha 1

  15. 1 hour ago, VHFluffy said:

    When in singeplayer it only shows the Heal tail Rotor option. When in multiplayer it does not show anything. In both cases this error message is displayed:

     

    Error Invalid number in expression. Line 8

     

    Anything I'm missing you assume is common sense :)?

    weird typo or something as i simply rewrote the line and it decided to no longer have the error eventhough it looked the same. this does work in multiplayer and shows all options(just tested) if you put it in initPlayerLocal.sqf

    player addAction ["Heal Tail Rotor",
    {
    	vehicle player setHitPointDamage ["hitVRotor", 0];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player addAction ["Heal Engine",
    {
    	vehicle player setHitPointDamage ["Engine", 0];	
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player addAction ["Break Engine",
    {
    	vehicle player setHitPointDamage ["hitEngine", 1];
    	vehicle player setHitPointDamage ["hitEngine2", 1];
    	vehicle player setHitPointDamage ["hitEngine3", 1];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player addAction ["Break Tail Rotor",
    {
    	vehicle player setHitPointDamage ["hitVRotor", 1];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player removeAction DCON_Eject;//no clue what this is but you had it in your original post

     

    • Like 1

  16. put this in initPlayerLocal.sqf. this should only display the action when the player is inside of a helicopter and should allow anybody to perform these actions(if their in a helicopter)

    player addAction ["Heal Tail Rotor",
    {
    	vehicle player setHitPointDamage ["hitVRotor", 0];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player addAction ["Heal Engine",
    {
    	vehicle player setHitPointDamage ["hitEngine", 0];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player addAction ["Break Engine",
    {
    	vehicle player setHitPointDamage ["hitEngine", 1];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player addAction ["Break Tail Rotor",
    {
    	vehicle player setHitPointDamage ["hitVRotor", 1];
    }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"];
    
    player removeAction DCON_Eject;

     


  17. a lazy way is with a hit event handler kind of like so. is it possible to alter the damage done by weapons without altering configs?

    player addEventHandler ["Hit", {
    	params ["_unit", "_source", "_damage", "_instigator"];
    	if (alive _unit) then
    	{
    		_currentDamage = getDammage _unit;
    		_newDamage = _currentDamage + 0.1;
    		_unit setDamage _newDamage;
    	};
    }];

     

    • Like 1

  18. 1 hour ago, Play3r said:

    @LSValmont Thanks it did the job. 

    @gokitty1199 also thanks to you for the script.

     

    And then again it does't game is over if OpFor kills a civilian also, does any one have a idea how to do so the game don't stop if OpFor kills a civilian?

    add a check. are any players going to be OpFor? if not then simply do a isPlayer check at the top like i did. otherwise you will need to add a check in the if statement for civilians such as this

    if (isServer) then
    {
        FNH_civilians_killed = 0;
        addMissionEventHandler ["EntityKilled", 
        {
    		params ["_unit", "_killer", "_instigator", "_useEffects"];
    		if (isPlayer _killer) then
    		{
    			_sideKilled = side (group _unit);//thank you LSValmont for the tip
    			_sideKiller = side _killer;
    			if (_sideKilled == civilian && _sideKiller != east) then//make sure the killer is not opfor
    			{
    				FNH_civilians_killed = FNH_civilians_killed + 1;
    				if (FNH_civilians_killed > 0) then
    				{
    					_handle = [] spawn {["HQ", "You just KILLED a civilian, You are releaved from duty !!"] spawn BIS_fnc_showSubtitle};
    					Sleep 10;
    					"end1" call BIS_fnc_endMission ; //or any other ending
    				};
    			} else
    			{
    				if (_sideKilled isEqualTo West && _sideKiller isEqualTo West) then
    				{
    					_handle = [] spawn {["HQ", "You just KILLED a blufor, You are releaved from duty !!"] spawn BIS_fnc_showSubtitle};
    					Sleep 10;
    					"end1" call BIS_fnc_endMission ; //or any other ending
    				};
    			};
    		};
        }];
    };

     

    • Like 1
    • Thanks 1
×