Jump to content
priglmeier

Unit spawn script creates "Seek and Destroy" markers on map but no units visible in-game

Recommended Posts

I have a tested and working trigger that spawns enemy units.
At least it works in a VR room and I did have it working in Eden in SP... now I question my sanity here. 🙂

When I tested this in Eden in SP mode, MP or on the dedicated server I get black map markers which are tagged as "Seek and Destroy" with a black upside down V icon??? 

No idea why. I thought perhaps I needed to change the script exec to global or server only in the trigger, but that had no positive effect either. Very odd. @Gunter Severloh got any thoughts? Thanks

Trigger is basic and is synced to a Warlords Sector. (I have also tried just having it as a stand alone trigger)
Any Player
Present
and null=execVM "SpawnEnemyUnitsLarge.sqf";


The basic script is doing very simple tasks:

// DETECT player's side and deploy 20 opposing units 
// SWITCH COMMAND - Checks if the given parameter matches any case.


// Trigger conditions,: set it to OPFOR/BLUFOR and Present
//

// Local execution for trigger:
// null=execVM "SpawnEnemyUnitsLarge.sqf";

 

...

switch (playerSide) do 
{
case west: {
systemChat "You are BLUFOR - WEST --> Spawn EAST OPFOR units";
    attackers = createGroup EAST; 
    

    fighters = attackers  createUnit ["O_Soldier_SL_F", (marker_spawns) call BIS_fnc_selectRandom, [], 0, "FORM"];

    fighters = attackers  createUnit ["O_Soldier_A_F", (marker_spawns) call BIS_fnc_selectRandom, [], 0, "FORM"];

    fighters = attackers  createUnit ["O_Soldier_AR_F", (marker_spawns) call BIS_fnc_selectRandom, [], 0, "FORM"];

... and so on

Share this post


Link to post
Share on other sites

The Black dot is a WP for the unit. 
Try to go to spector function and then find a unit that you have spawned, then press M and you will see the same, that unit will follow them.

Share this post


Link to post
Share on other sites

It seems to be an Arma engine behavior.

If that could help, I avoid this issue with my spawning patrols, or group Attack, or taxi... modules , so each time I'm adding a waypoint by addWaypoint command:

ex.: _wp = _grp addWaypoint [_dest,0];

just adding this line in script:

 _wp showWaypoint "NEVER";

 

 

Share this post


Link to post
Share on other sites

The units do not appear in the game in SP or server. Only on the map.
In a test VR room with a single player and the trigger point - script it works 100%. The units are spawned and are visible in the game and will begin shooting back.

Share this post


Link to post
Share on other sites

These are not linked to any waypoints.

Trigger is basic and is synced to a Warlords Sector. (I have also tried just having it as a stand alone trigger - not synced)
Any Player
Present
and null=execVM "SpawnEnemyUnitsLarge.sqf";

So the issue is:
The script runs.
No errors on screen or in the logs.
The units do not appears to be spawning properly in SP or server games now.
I only see the map markers where they should be spawning.

Share this post


Link to post
Share on other sites

So in testing I was using only a single spawn.
In the game I was using this for each trigger spawn point aka "splarge##":

marker_spawns = [splarge01,splarge02,splarge03,splarge04,splarge05,splarge06,splarge07,splarge08,splarge09,splarge10,splarge11,splarge12];

Apparently this is an issue, since it does not work the same  as:

marker_spawns = [splarge01];

Not sure why SQF doesn't like this? No errors in the game or logs.
It works some times in a test with a separate trigger. Doesn't seem consistent at all in the game ... I thought I figured this out but ???

 

Share this post


Link to post
Share on other sites

The issue comes with markers. At least your randomization should have this syntax:
 

private _marker_spawns = ["splarge01","splarge02","splarge03","splarge04","splarge05","splarge06","splarge07","splarge08","splarge09","splarge10","splarge11","splarge12"];
private _attackers = createGroup EAST; 
private _groupPos = getMarkerPos selectRandom _marker_spawns;
private "_fighter";

{
  _fighter = _attackers  createUnit [_x, _groupPos, [], 0, "FORM"];
  [_fighter] joinSilent _attakers;
} forEach ["O_Soldier_SL_F","O_Soldier_A_F","O_Soldier_AR_F"];

 

- markers' names are strings and you need to refer to marker position (in this case);

- I added _groupPos for selecting at random a position for the whole group, not each separate unit (as you did);
- selecRandom is faster than the function. Anyway, you can have multiple groups on the same marker. If you want to randomize and never add groups on same marker, use deleteAt command;

- use private variables (_underscored) each time you can. Global variables should be an exception for sharing data between scripts when it's hard to use parameters;
- here, _fighter as handle for createUnit, is not useful if you don't add lines for working on it. I added a joinSilent line because, my experience, _fighter can stay sometimes CIVILIAN, especially in MP;

- run the code on server only (avoid duplication in MP);
- "FORM" is same as "NONE". No interest. If you need a specific formation apply it on group.
 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×