Jump to content

boriz

Member
  • Content Count

    46
  • Joined

  • Last visited

  • Medals

Posts posted by boriz


  1. Hello dear community!

     

    I am finally releasing another mission I've been working on for a very long time and I would like to humbly ask you guys for some feedback.
    The mission is called Stress Fortress and it is slightly inspired by the Man Vs Machine coop mode from Team Fortress 2. It puts you with 5 other players into a small base which you must defend from hordes of enemies who attack in 10 wave. You win by killing all enemies, but you loose when they capture your base.

     

    Steam Workshop link

     

     

    This is actually my 4th iteration. The last two versions can be found here:

     

    Stress Fortress - ALTIS

    Stress Fortress - STRATIS

     

    In case you want to follow the development of this mission then join my small Steam group.

    Without further ado, please give it a try and let me know what you think!


  2.  

    There's a limit of 144 groups per Side.  So it definitely founds like you're hitting that limit.  Not sure there's a units per group limit though.

     

    You can use BIS_fnc_spawnVehicle to create a crewed vehicle.  The group that this creates it the select 2 from it's return value.

     

    Per the example:

    _vecarray = [getPos mySpawnPos, 180, "BMP3", EAST] call bis_fnc_spawnvehicle; 
    _myvec = _vecarray select 0; // The vehicle object for things like 'is it alive' checks.
    _myvecgroup = _vecarray select 2; // The vehicle group for things like waypoints.

     

    Thank you for the information! It helped me to solve my problem with units not being spawned:

    Because I simply must have every solder in his own group, and also be able to spawn hundreds of them, I've worked around this issue by writing a "group manager" system. This script creates 100 empty groups at the start of the game, puts them in an array, and then assigns one group to one soldier each time he is spawned. When index of 100 is reached, it starts all over from 0, which so far works very well for the logic of my mission.

     

    Unfortunately, this did nothing to help me with the problem stated in the original post.

    Any ideas about how could I debug that issue with vehicles (including helicopters) refusing to go to their waypoint?


  3. Kylania's post encouraged me to experiment with this some more and I've found a possible cause! Thank you very much!

    So this is what's happening...
    Beside vehicles, I spawn dozens of soldiers. Because I want to have a good control over their behavior, I make each soldier a one man group which means dozens of groups are spawned. After a few minutes of playing, when about 100 units with 100 groups are spawned, the game simply stops creating groups and soldiers (this is something that happened in my previous post, but its cause was not understood yet). Vehicles are still spawned and manned for some reason, but because they belong to no group, they cannot have a waypoint assigned.

    Now it seems to me like the problem is caused by the game running out of groups since I create so many of them. So, the question now is, how do I work around this issue?

    I could spawn more than 1 unit in a group, which might solve this issue, but then another question is, how many soldiers I can have in one group?


  4.  

    Try to disable certain unit behavior using disableAI, this should make them even more dumber and careless.

    https://community.bistudio.com/wiki/disableAI

    {
    _x disableAI "FSM";
    _x disableAI "SUPPRESSION";
    _x disableAI "COVER";
    _x disableAI "AUTOCOMBAT";
    } forEach units group _group;
    

     

    Thank you for the effort! I appreciate it, but unfortunately it solved nothing. Actually, it made the situation even worse because with these lines of code, the enemy units just stop spawning after about 100 cycles of running my script. I have no idea why the game behaves like this. The AI is a complete mess. I've also checked the logs and I haven't found any errors which would explain why this happens.

    Also I use vanilla ARMA 3 Stable branch, so this issue is not caused by some mod/addon.

    I've been investigating this problem for dozens of hours now and I am going insane from the amount of frustration this causes to me. There is nothing else to do to finish my mission than fixing this issue.


  5. Edit: I've did some editing to the mission and it seems like the issue does not happen as much as it did before, or at least it occurs much less frequently. There is still a problem with helicopters not working at all, but that is being handled by a different script, so I am probably gonna open another thread with focus just on that.

    Hello!
    I am having a problem with AI in Arma 3. It's simple, I want to spawn an enemy vehicle with AI in it and then send it on a death mission where it gets almost surely destroyed by players' heavy fire. However, oftentimes (at ~25% chance) the unit just sits still after its spawn and does nothing at all.

     

    So, this is my (almost) whole code. The important part is marked between ↓↓↓↓↓ and ↑↑↑↑↑:

    _group = createGroup east;
    _type = _usableUnits select floor random count _usableUnits;
    if (_type isKindOf "Car") then { 
    	_unit = objNull;
    	if (_type == "B_G_Offroad_01_armed_F") then{
    		_unit = [_spawnLocation, random 360, _type, resistance] call bis_fnc_spawnvehicle;
    	}else{
    		_unit = [_spawnLocation, random 360, _type, EAST] call bis_fnc_spawnvehicle;
    	};
    	(_unit select 0) setdamage enemySpawnDamage;
    	driver (_unit select 0) spawn scr_killWhenOnFoot;
    	gunner (_unit select 0) spawn scr_killWhenOnFoot;
    	_unit join _group; 
    	(_unit select 0) spawn scr_noFuelWhenCarIsStatis;
    	AIunits = AIunits + (_unit select 1);
    
    	// ↓↓↓↓↓
    	_wp = _group addWaypoint [posTarget, 0];
    	[_group, 1] setWaypointType "HOLD";
    	_group setCombatMode "YELLOW";
    	_group setBehaviour "CARELESS";
    	_group allowFleeing 0;
    			
    	driver (_unit select 0) spawn
    	{
    		while {alive _this} do
    		{
    			_startPos = Position _this;
    			sleep 10;
    			_currentPos = Position _this;
    			if ( (_startPos distance _currentPos) < 1 ) then
    			{
    				_this DoMove posTarget;
    			};
    		};
    	};
            // ↑↑↑↑↑
    
    };
    

    This code is a part of a larger script which spawns a vehicle, fills it with AI units and then sends it to position posTarget through a waypoint. The last part is the problem. The unit sometimes refuses to move, even if its path is not obstructed at all. I've tried to fix this by telling the unit to DoMove every 10 seconds if its detected to be still, but it still doesn't fix the problem.

    Does anyone else have similar problem? Do you know how to fix this, or work around this issue?


  6. Hello!

     

    I have a Kajman helicopter which is terribly OP against infantry in my mission thanks to its HE machinegun. I would like to remove it, so the enemy AI has to use AP bullets instead. How do I do that?

    I tried :

    myHeli RemoveMagazineTurret ["250Rnd_30mm_HE_shells",[-1]];
    myHeli RemoveMagazineTurret ["250Rnd_30mm_HE_shells",[0]];
    myHeli RemoveMagazineTurret ["250Rnd_30mm_HE_shells",[1]];

    But none of that did anything. How do I remove these magazines correctly?


  7. Finally I've found a simple way to hack this into what I want.

    1) Insert this line somewhere in the Init.sqf: IsHealing = false;
    2) Create a trigger and set it listen to the type of unit you want to
    3) In the Condition field, add: this  &&  not IsHealing
    4) In the On Activation field add: {_x spawn YourCustomHealUnitScript} forEach thisList;  IsHealing = true;
    5) In the On Deactivation add: IsHealing = false;

    Now the trigger activates every second when a desired unit type is inside of it. It is not a very flexible way of doing this feature, but it is just what I need right now. I have yet to test it in multiplayer, but it should work.


  8.  

    I would place in such locations an object, [...]

     

    Thanks!

    This is almost what I need. The problem is that I want to use a trigger to detect nearby objects. That way I can shape it just as I need and position it precisely in such way that its edges end where I want them to be.

    Using an object with some invisible area of effect is very inconvenient for me in the Eden editor. Plus, it limits me to using the circular shape.

    To achieve this, I am thinking about using thisList array in triggers. It should contain all compatible insiders who I can heal. However, AFAIK that array is accessible only in the On Activation event, and that is called only once when the first unit enters it. I think it would be best if this trigger would call On Activate event every second when someone is inside of it, but how do I achieve that?


  9. *SOLVED!*

     

    Hello good people!

     

    I consider myself to be an experienced scripter, but I still sometimes come up with some simple features which happen to be much more difficult to realize than they should be. This is one of them.

     

    I want to create a trigger which reacts to BLUFOR units. When any such unit enters this trigger, it gets auto-healed. If this unit is a player, he gets notified about it through the TitleText [...] command.
    When this unit stays inside of this trigger and receives damage, it also gets auto-healed.

    After leaving this trigger, the unit stops being auto-healed.

    All of this must work in multiplayer where I have multiple triggers like this.

    What is the simplest way to achieve this?


  10. This mission is based on a simple "horde mode" style gameplay where you defend your base against a large amount of enemies in several attack waves.

    It's designed for quick and short coop sessions where you get to the action right away without having to travel much.

    Some of the features are:

    • Short respawn times (unless your base is being captured)
    • Join In Progress is fully supported
    • Spectator mode (arrows left/right)
    • Epic enemy helicopter crashes
    • 7 bases to select from in the PARAMETERS menu
    • Option to steal enemy vehicles and weapons to use them in any way
    • Configurable day-time, enemy health, allowance of NV goggles and fatigue
    • You loose when all players are dead while your base is being captured
    • Players with Marksmen DLC can use their exclusive weapons

    Download:

    Steam Workshop (subscribe)

    Armaholic

    Dropbox

    Other versions:

    Stress Fortress for Altis

    Old version of this mission for Stratis


  11. Hi Boriz, any update?

    Don't want to push, just show that people have interest in your mission!

    Yes. Just a few days ago an update was released which added a new location and improved some things. The updated PBO file can be already downloaded from Armaholic.

    Regarding future updates, yes I am planning some. Next update will bring a server parameter which lets you disable fatigue on players, which is a thing some users have been complaining about in general.

    I am also testing two new locations. One of them will hopefully be ready for this weekend, but due to my work I can't promise anything right now.


  12. Thanks for the report!

    I've been testing the mission for several hours today until I've finally found a bug which might be the one you are talking about. It seems to happen very rarely tho. It probably has something to do with initial lag. Anyway, I'll try to fix this tomorrow. Also, I'll be updating the mission which adds a new location to it and also adds a parameter for having more or less enemy soldiers.


  13. STRESS FORTRESS - ALTIS

    This is the follower of Stress Fortress for Stratis.

    Just like before, this mission is based on a simple "horde mode" style gameplay where you defend your base against a large amount of enemies in several attack waves.

    It's designed for quick and short coop sessions where you get to the action right away without having to travel much.

    Some of the features are:

    -Short respawn times (unless your base is being captured)

    -Join In Progress is fully supported

    -Epic enemy helicopter crashes

    -4 bases to select from in the PARAMETERS menu. (more are WIP)

    -Option to steal enemy vehicles and weapons to use them in any way.

    -Configurable day-time, enemy health and option to disable NV goggles at night for every unit.

    -Unlike in the Stratis version, you will fail the mission when all players are dead while your base is captured.

    -Players with Marksmen DLC can use their exclusive weapons.

    Download:

    Steam Workshop

    Armaholic


  14. I think I have the same problem. This might be related. If not then I'll start a new threat about this.

    This script spawns a helicopter, adds a crew into it and adds an even handler for getting hit by bullets. Everything works fine in singleplayer and in multiplayer as long as the server is hosted from the game. However when the server is hosted from a Dedicated Server, the event for catching "HitPart" (the bold code) doesn't work. The event is simply not called. Can someone please explain me why and how to fix it? I've tried changing addEventHandler to addMPEventHandler but that didn't worked at all.

    _heli = createVehicle [_type, _spawnLocation, [], 0, "FLY"];
    	_heli setdamage enemySpawnDamage;
    	0 = [_heli] execVM "BV_killWhenUseless.sqf";
    	0 = [_heli] execVM "BV_heightLimit.sqf";
    	createVehicleCrew (_heli);
    	crew _heli join _group; 
    	AIunits = AIunits + crew _heli;
    	0 = driver _heli execVM "BV_killWhenOnFoot.sqf";
    	0 = gunner _heli execVM "BV_killWhenOnFoot.sqf";
    	{
    		_x setSkill _skill;
    	}forEach crew _heli;
    	_wp = _group addWaypoint [posTarget, 0];
    	[_group, 1] setWaypointType "SAD";
    	_group setCombatMode "RED";
    	_group setBehaviour "SAFE";
    	_group allowFleeing 0;
    	_heli flyInHeight 30;
    	[b]_heli spawn { // Critical damage event
    		_this addEventHandler ["HitPart",
    			{
    				if (random 1 > 0.90) then {
    					_heli = (_this select 0) select 0;
    					_heliPos = getPosASL _heli;
    					_bulletPos = (_this select 0) select 3;
    					_bomb = createVehicle ["CMflare_Chaff_Ammo", _bulletPos, [], 0, "NONE"];
    					_heli setDamage (damage _heli + 0.1);
    					_bomb attachTo [_heli, [
    											((_heliPos select 0) - (_bulletPos select 0)) * 0.3,
    											((_heliPos select 1) - (_bulletPos select 1)) * 0.3,
    											((_heliPos select 2) - (_bulletPos select 2)) * 0.3
    											]];
    					};
    			}];
    	}[/b]

    This code is executed only on the server.


  15. Thank you!

    This is the finished script for anyone who needs it:

    // Use this variable to control respawn
    respawn_disabled = false;
    
    [] spawn {
       // Some variables that control spectator options
       RscSpectator_allowFreeCam = true; // Free cam
       RscSpectator_hints = [true,true,true]; // Shows the controls as hint
    // Register layer once
    _spectatorLayer = ["specator_layer"] call BIS_fnc_rscLayer; 
    
       // Get initial respawn time
       respawnTime = 3;
    
       // Main loop
       while {true} do {
           // Wait until respawn disabled
           waitUntil {respawn_disabled};
    
           // "Disable" actual respawn
           setPlayerRespawnTime 9999;
    
           // Wait until respawn is enabled again or player died
           waitUntil {!(respawn_disabled) || !(alive player)};
    
           // if respawn disabled AND player dead
           if (respawn_disabled && !(alive player)) then 
    	{
               // Maybe a little sleep so its not switching to spectator immediatly
               sleep 3;
    
               // Disable post processing effects for spectator (Fatigue blur and such)
               BIS_fnc_feedback_allowPP = false;
    
               // Start spectator
               _spectatorLayer cutRsc ["RscSpectator", "PLAIN"]; 
    
               // Wait until respawn is enabled again
               waitUntil {!(respawn_disabled)};
    
               // Re-enable post processing effects
               BIS_fnc_feedback_allowPP = true;
    
               // Set original respawn time
               setPlayerRespawnTime respawnTime;
    
               //Respawn the player
               forceRespawn player;
    
               // Stop spectator
        _spectatorLayer cutText ["", "PLAIN"];
    
           } else {
               // Set original respawn time
               setPlayerRespawnTime respawnTime;
           };
       };
    };

    Edit:

    _spectatorLayer cutRsc ["", "PLAIN"]; - this did not worked for me so I am using _spectatorLayer cutText ["", "PLAIN"]; instead

    Now I need to modify the script so it works on AI units too.

    Thanks again!


  16. Thank you for such quick reply!

    I've been implementing your script into my mission and it seems to be the exact thing I need. However there is one problem I don't know how to solve.

    cutRsc ["RscSpectator", "PLAIN"];

    This command starts the spectator mode but later it causes problems with the GUI when the player is respawned.

    If I disable the spectator mode before or after spawning the player, it should be okay, but how do I do that?

    I've already tried cutRsc ["Default", "PLAIN"]; but it did not helped. I've just got some error message.

    Any ideas?


  17. Solved thanks to sxp2high!

    Hello dear ARMA community!

    I am working on a new version of my cooperative Stress Fortress mission and I've ran into one major problem I need help with.

    This is what I wanna do:

    1) Mission starts, all players are spawned. Respawn is set to X seconds.

    2) When an enemy enters the respawn zone, players respawn is disabled.

    3) During this time, all dead players will stay in spectate mode.

    4) When the respawn zone is clear again, players respawn is enabled.

    5) From this moment, players will respawn as usual until step 2 repeats.

    This is the problem:

    I don't know how to disable and enable players' respawn with a script during a mission.

    Does anyone know how to do this?


  18. v1.10 UPDATE!

    Changes:

    Added new locations: Agia Marina and Girna Bay

    Changed available units

    No player fatigue between attacks

    Epic helicopter crashes

    Added another 10 playable slots in case you want to play as independent without a leader (AI Disabled for these units)

    Added parameter to lower enemy health

    Increased the number of waves for some locations

    Enemy vehicles can be stolen when their crew is killed

    Gameplay polishing and various bug fixing

    Subscribe to download:

    http://steamcommunity.com/sharedfiles/filedetails/?id=228953830

    Or download from Armaholic here: ARMAHOLIC DOWNLOAD LINK

    Times are tough for me so I couldn't do as many improvements as I wanted. Also, since this mission didn't gained as much attention as I hoped it would, then I'll probably start working on something else instead. Although the feedback was little, it was incredibly positive and people who played it were very satisfied with the gameplay.


  19. That sounds great. The behavior we saw was that a full health player could take dozens of hits from a zombie without much negative effect. Maybe the script was just broken?

    You've probably changed something because I've ran into this same problem when I've created 2 playable units of the same type (example: 2 machine gunners). This causes zombies to give damage to a different unit than they are attacking. I think it works somehow like this:

    We have two (or more) players and each of them are "Machine gunner" type of a unit belonging to the same side.

    One of them receives a hit from a random zombie. This damages all players (of the same type). When any of them receive another hit, all players should have a temporal red vision, indicating pain and damage, even tho their damage values aren't increased. This means that all players are immune to a zombie attack, although all of them were hurt from the first strike.

    To fix this, each players must be a unique type of a unit.

    @ bassgojoe - can you post your ToH version for others to try? I have ToH and would love to try it.

    @ Boriz - would be awesome if you took the helicopter attack idea and port to Arma 3. You can use the standalone AIA mod to get A2 assets into the ARMA 3 engine.

    You should be able to just unpack this mission, add a few helicopters/tanks or whatever you want, and then play it in Arma 2.


  20. If you want more feedback you need to switch to ArmA 3 I believe. That's where the main part of the community is creating stuff for now. ArmA 2 is dying slowly off. There are some stragglers left like myself, but the bulk switched over to ArmA 3. I fully understand your frustration not to receive feedback, especially because I think that you put a lot of effort into this mission.

    If you port this mission over to ArmA 3 I'm pretty much sure that you'll receive more feedback. Bear also in mind that not too many people here are into Zombie missions. The DayZ community maybe would appreciate it more. Ever thought opening a topic on their forum? Although DayZ is a multiplayer game I believe that people will be interested to try out your mission because they like Zombie stuff. I'm just saying and giving you some suggestions.

    cheers and good luck.

    That's true because I am not watching news regarding Arma 2 too. I've also started working on a new Coop mission for Arma 3 with no zombies. This time it's something much more player friendly and so far I've been receiving a very positive critique!

    Thanks for your suggestion! I'll show this mission to the DayZ Community and maybe it will bring more players to it.

    Neat mission. We ported this mission over to Take On Helicopters and scattered some choppers around. Using a hind to orbit a city clearing zombies as ground forces advanced was a pretty sweet addition! Feedback:

    1) It'd be nice if respawning was allowed, even if it was simple and just dumped you at Balota or something. We were hosting locally so the host couldn't switch to a different slot without restarting the mission.

    2) The zombies should do much more damage to full health players. They are already at a disadvantage since they can only do simple melee, having them also not do much damage makes them not that threatening.

    Hmm, I'll probably add an option to enable respawn. And your idea of porting this to ToH and fighting zombies with helicopters sounds awesome!

    Regarding zombie attacks, this is a very difficult thing to tweak. Currently the first hit causes your aim to be bad. The next one makes it much worse and the 3th one incapacitates you. Another one will kill you.

    How would you suggest to change this system?

×