Jump to content

tRiKy_ch

Member
  • Content Count

    150
  • Joined

  • Last visited

  • Medals

Posts posted by tRiKy_ch


  1. On 4/15/2019 at 11:52 AM, varrkan_ua said:

     

    
    15:07:18 BEServer: cannot find channel #1768298046, users.card=0
    15:07:22 Server error: Player without identity varrkan_ua (id 1768298046)
    15:07:22 Server error: Player without identity varrkan_ua (id 1768298046)

     

    this should't be the error causing  the issue

    when you start the server with mods there are all rightly loaded?

    full rpt could be helpful


  2. On 8/28/2018 at 11:58 AM, Rawshark said:

    I can see the headless client (HC1) connected to the headdless client slot in the 'virtual' lobby (https://i.imgur.com/9Amq1Pr.jpg) and HC1 is also listed in the players list

    everything ok, as i remember anitstasi is already configured to properly use HC's
     

    Quote

    (https://imgur.com/Tam1upz).

     

    this "0" seems to be only the HC identifier (as you could have more than one HC), and you have 5 west (blufor) units local to it


  3. @Casio91Fin it depends on your scenario, you have a defined rank for every player (i.e: clan) or ranks are defined mission by mission? tell us more about your needs

    in my case (clan) i used to read them from squad.xml

    setUnitRank could be very useful but consider its limited to 7 ranks

     

    20 hours ago, HazJ said:

    @pierremgi ...when you can make the waitUntil loop itself by returning false at the end

    ok, right, now i see it ;)

     

    btw it has to not be a so bad practice as you can see it on the wiki (example 4)

    • Like 1

  4. 4 hours ago, HazJ said:

    It is also pointless to define those variables over and over (loop) since they do not change. Define them before, above the while loop.

    you're right, i took this from script where i needed dynamic insignias without knowing OP intentions, consider it as a concept, but actually if you have static insignias it is a good advice

     

    Quote

    As for the arsenal, you can detect when closed. Use InventoryClosed EH.

    yes, this is a valid alternative

    i proposed a cycle 'cause as said there are various situations where insignia get lost, with this you're sure to cover every possibility with a single solution

     

    Quote

    You should never use waitUntil inside a while loop.

    i'm self-educated on sqf and still learning, but i've seen this on various scripts

    so, why this should be not used?

    how do you would rewrite my function?

    • Like 1

  5. while {true} do {  
    
    		_insignia = "YourInsignia";
    		_texture = getText(configFile >> "CfgUnitInsignia" >> _insignia >> "texture");
    		[player, ""] call BIS_fnc_setUnitInsignia; //need first to manual unset insignia 'cause BIS_fnc_setUnitInsignia is broken
    		[player, _insignia] call BIS_fnc_setUnitInsignia;
    		waitUntil {uiSleep 1;(((getObjectTextures player) find _texture) == -1)}; 
      
    };

    put this on init.sqf
    this should also work on multiplayer, just pass your desired insignia class name as _insignia
    it cycle continuosly because there are other situations than respawn where insignia could got reset (i.e.: entering virtual arsenal and changin the uniform)


  6. 4 hours ago, samir17864 said:

    This _firstCycle = true; i could not understand its importance ... for now, I use these hints only for the purpose of testing, i don't think there should be any hints for this whole auto healing process. So, I will omit this _firstCycle  part.

    is used to see if the current cycle is the first iteration or not, i used this only to not spam the "hintSilent "Healing will start now"" but honsetly i doesn't really know how do you intended this

     

    Quote

    But it is working only on BLUFOR side.

    'cause you're cycling (units player) wich means player's teammates, if you want to cycle opfor too could you turn back to allUnits array, in this case you have to update also your medic classes on (_nearestMedic = _x nearEntities [["B_medic_F", "I_G_medic_F", "I_medic_F"], 300];)

     

    Quote

    The remaining problem is:

    When I give a STOP command to the Combat Life Saver ( c_l_s ) , then "he" will never move, even if there is a script command to make "him" move ( c_l_s doMove (_injured_pos); ) ... I don't know, maybe I should leave it that way, so the Combat Life Saver will not disobey the order and blow up the cover of stealthy ambush or black-op , or maybe I should search for a workaround to force the Combat Life Saver to move even if he is under STOP order, What do you think??

    did you solved that or still an issue?


  7. create a file called init.sqf (it executes when missions is loaded for more infos go here and here)

    and put

    [] call compileFinal preprocessFileLineNumbers "SAM_healing.sqf ";

     i see also another thing, if you want could you look dynamically for the medic this way, so you don't heal over a certain distance between medic and injured

    (not tested)

    while { true } do { 
    	_firstCycle = true;
    	_nearestMedic = [];
    	{
    		_nearestMedic = _x nearEntities [["B_medic_F", "I_G_medic_F", "I_medic_F"], 1000]; //it looks for the nearest medic on 1km range
    		if (count _nearestMedic > 0 && { (_nearestMedic select 0) != _x }) then { //check if there is a medic in 1km range and if _x is not medic itself
    			c_l_s = _nearestMedic select 0;
    			if ((getDammage _x) > 0.1) then
    			{	
    				if (_firstCycle) then {hintSilent "Healing will start now"; _firstCycle = false;};
    				if ((items c_l_s find "Medikit" != -1) OR (items c_l_s find "FirstAidKit" != -1)) then
    				{
    					_injured = _x;
    					_injured disableAI "MOVE";
    					_injured_pos = position _injured;
    					c_l_s enableAI "MOVE";
    					c_l_s doMove (_injured_pos);
    					waitUntil { c_l_s distance _injured < 2 };
    					c_l_s playAction "MedicOther";
    					sleep 9;
    					if (items c_L_s find "Medikit" != -1) then
    					{
    						_injured setDamage 0;
    						c_l_s removeItem "Medikit";
    						hintSilent parseText format ["%1 was healed to %2", name _injured, 1 - getDammage _injured ];
    					} else {
    						if (items c_L_s find "FirstAidKit" != -1) then
    						{
    							_injured setDamage 0.25;
    							c_l_s removeItem "FirstAidKit";
    							hintSilent parseText format ["%1 was healed to %2", name _injured, 1 - getDammage _injured ];
    						};
    					};
    					_injured enableAI "MOVE";
    					_injured doFollow player;
    					_injured doMove (_injured_pos);
    					c_l_s doFollow player;
    					c_l_s doMove (c_l_s_pos);				
    				};
    			};
    		};	
    	} count (units player);	
    	sleep 180;
    };

    consider it as a starting point 'cause this way if someone get injured while healing has started it had to wait 3 minutes before to get heal (maybe do another check before to sleep)


  8. 1 hour ago, samir17864 said:

    2- Is there any way to develop the above code so that the Combat Life Saver check the squad every 5 minutes and try to heal the damaged mates one by one ??

     

     

    hi, not tried in editor but it just for the concept

     

    while { true } do { //start an infinite loop to found injured units
    	_healList = [];
    	{
    		if ((getDammage _x) > 0.1) then {
    			_healList pushback _x; // if injured put it into a list
    		}
    	} count (units player); //it works with your teammates, change it by need (it would be more performance firendly than allUnits)
    
    	{
    		// put you healing code here
    	} count _healList; // this loops your injured units list
    	sleep 300; // pause the cycle for 300 seconds
    };

     


  9. On 7/30/2018 at 6:42 PM, loopdk said:

    1:

    Is it worth doing a HC setup ?
    2 if yes , i found this guide on yourtube..
    https://www.youtube.com/watch?v=UQfMhFfs5yQ&t=125s

    Is it still a good guide?

    RSM LooP


    www.3para-gu.com

    1, yes, it offload the server and then you can afford to spawn more Ai's or get more players, also it make AI more responsive (could you have a better usage of your CPU as arma doesn't use itself all the cores you have). Could you also run scripts or everything on your HC, offloading your server

    btw you have to tell the engine who is local to HC to run on it

    2 is still good as base on how to get it work, here you can get more infos (you'll also find how to run code on HC)

    • Like 1

  10. 8 hours ago, Sirniggels said:

    When i search for my server in arma 3 i cannot see my server

     

    Is that spoiler not the rpt?

    oh yess, sorry i missed that :don11:

    ok you cant' see it, it should be a port issue

    did you opened the right ports?

    did you enabled some kind of firewall under linux?

    if you try to connect directly by ip it works?


  11. 15 hours ago, saddle said:

    Also, I tested the simple template for the mod on it's own, no alterations.

    The simple template is also showing the same error. Could the mod be broken?

     i give it a try too and actually the error come on the original script

    i took a quick review of the code and it seem to be errorless on the grammatical way

    but i've also see it is a 4 years old script so maybe it was broken by an arma update

    i think so 'cause i see no one complain about this error on the original post

    try to ask here, surely you'll find someone who's more familiar with this specific script


  12. did you followed these step as said in the readme?

     

    Spoiler

    Inside the editor double click. Place a player. Double click anywhere else and place a gameLogic

    Game Logic > Logics > Game Logic. Name it HIDEPLAYER. Place this somewhere hidden.

    Save it.

     

    Inside the editor double click anywhere, place a flag.

    EMPTY > objects(flags) > flag (UK). Name it NATO_BASE > OK

     

    Next, apply the same logic to EAST units and apply more parameters. See below. EAST units will have access to CSAT_BASE and Squad members. But if enemies are within 50m then they can’t spawn.

    null= [[CSAT_BASE],EAST,TRUE,50] execVM "BRS\BRS_launch.sqf";

    Inside the editor double click anywhere, place a flag.

    EMPTY > objects(flags) > flag (red). Name it CSAT_BASE > OK

    Now your ‘init.sqf’ should look like this.

    null= [] execVM "BRS\BRS_launch.sqf";

    null= [[NATO_BASE],WEST] execVM "BRS\BRS_launch.sqf";

    null= [[CSAT_BASE],EAST,TRUE,50] execVM "BRS\BRS_launch.sqf";

     

    File > Save.

     

    Accessing BRS via addaction is easy. Place down an object in the editor. Inside the initialization field copy and paste this code. (Swap the parameters to match your needs)

    this addAction ["Battlefield Re-spawn System", "BRS\BRS_launch.sqf", [[West_Base,Common_Base],west,true,50]];

    Approach the object and use the mouse wheel to select the action ‘Battlefield Re-spawn System’ to access BRS.

     

     

×