Jump to content
Sign in to follow this  
jakkob4682

[WIP] Random Suicide Bomber Script(Using ALICE MODULE)

Recommended Posts

The report isnt returning any errors but script won't fire

while {true} do {
sleep 10;//not sure what the variable to check for an undefined ALICE module init is?
//These arrrays are global because they're going to be used in another script
civPool = nearestObjects [player,["Civilian","Citizen","TK_CIV_Takistani_Base_EP1"],3000];
westPool = nearestObjects [player,["USMC_Soldier_Base"],300];
//function to find a random ALICE civilian
SuicideVest =
{
private ["_suicideMan"];
_suicideMan = objNull;
   {
       if ((_x in civPool)&&(_x distance player < 45)) then {
           _suicideMan = civPool call BIS_fnc_selectRandom;;
           player sideChat format ["%1",getPos _suicideMan];
	};
   }forEach civPool;
_suicideMan
};
//Function to assign a target for the suicide bomber
SuicideTarget = 
{	
private ["_SuicideTarget"];
_SuicideTarget = objNull;
   {
	if (_x in westPool) then {
		_SuicideTarget = westPool call BIS_fnc_selectRandom;
		};
}forEach westPool;
_SuicideTarget
};		

_target = call SuicideTarget;
_suicide = call SuicideVest;

waitUntil{!isNull _suicide};
removeAllWeapons _suicide;
_suicide addWeapon "AK_47_S";
sleep .01;
for "_i" from 0 to 3 do {
	_suicide addMagazine "30Rnd_762x39_AK47";
	};
};
_suicide doMove getPos _target;
_suicide doTarget _target;
_suicide doFire _target;
player sideChat "AMBUSH!!!!";
vest = "ACE_MineExplosion" createVehicle getPos _suicide;	
sleep ceil(round(random 120));	

Share this post


Link to post
Share on other sites

I see a few problems, the first being that this section isn't working because the bracket needs to be at the end other wise it's stuck in the while {true}

        };
       	_suicide doMove getPos _target;
       	_suicide doTarget _target;
       	_suicide doFire _target;
       	player sideChat "AMBUSH!!!!";
       	vest = "ACE_MineExplosion" createVehicle getPos _suicide;	
       	sleep ceil(round(random 120));

However it still has problems as if it selects a women they can't carry weapons.

Although male units didn't seem to have a weapon either, if I walked next to him the bomb went off.

I used a distance check for that

waitUntil{!isNull _suicide   and _target distance _suicide < 3 };

But the biggest issue is that they don't move to player position it's as if the game overrides the domove command.

Unless there is a way to break them out of game control you'll have to spawn them.

I couldn't even get it to join the player so it does look as if the game still has total control over them.

Edited by F2k Sel

Share this post


Link to post
Share on other sites

I've updated the code but seems like you have to override the FSM for the ALICE, and thats well beyond my knowledge :(

private ["_target","_suicide"];
while {true} do {
sleep 10;//not sure what the variable to check for an undefined ALICE module init is?
//These arrrays are global because they're going to be used in another script
civPool = nearestObjects [player,["Civilian","Citizen"],200];
westPool = nearestObjects [player,["USMC_Soldier_Base"],300];
//function to find a random ALICE civilian
SuicideVest =
{
private ["_suicideMan"];
_suicideMan = objNull;
   {
       if ((_x in civPool)&&(_x distance player < 300)&&(alive _x)) then {
           _suicideMan = civPool call BIS_fnc_selectRandom;
           waitUntil {!isNull _suicideMan};
		player sideChat format ["%1",getPos _suicideMan];
		};
   }forEach civPool;
_suicideMan
};
//Function to assign a target for the suicide bomber
SuicideTarget = 
{	
private ["_SuicideTarget"];
_SuicideTarget = objNull;
   {
	if (_x in westPool) then {
		_SuicideTarget = westPool call BIS_fnc_selectRandom;
		};
}forEach westPool;
_SuicideTarget
};		

_target = call SuicideTarget;
_suicide = call SuicideVest;

waitUntil {!isNull _suicide};
removeAllWeapons _suicide;
_suicide addWeapon "AK_47_S";
sleep .01;
_suicide addMagazine "30Rnd_762x39_AK47";
_suicide doMove getPos _target;
_suicide doTarget _target;
_suicide doFire _target;
player commandTarget _suicide; 
if (_suicide distance _target < 60) then {
player sideChat "AMBUSH!!!!";
"Ace_MineExplosion" createVehicle getPos _suicide;
};
sleep (ceil(round(random 60)));
};

also is there a way to filter out gender then? most of the time I can get the men to equip the weapons and even engage me. Another problem I want to find a fix for is making only the selected ALICE unit hostile to west, and vice versa my west only hostile to that unit. Plan on incorporating this all into one little package to include ieds and group ambushes using two or three ALICE units if I can ever override the FSM commands. Another thing I'm wondering is how to make it more random. I read somewhere that using if(random 1 > _chance) where chance is the percentage you want works.

Edited by jakkob4682
updated script

Share this post


Link to post
Share on other sites

civPool = nearestObjects [player,["Civilian","Citizen"],200]-nearestObjects [player,["woman"],200];

That should exclude woman from the array.

You were right men do have the weapon.

Edited by F2k Sel

Share this post


Link to post
Share on other sites

The suicide bomber script functioning to a certain extent now. A couple questions - First, if I use do disableAI on an ALICE civilian, i.e. disable all the AI features excluding FSM, will it allow to me to take control of the ai? As you stated move.fsm, danger.fsm and all other related fsm's baked into the ALICE module make it impossible to take control of them. Next step, is getting the town name where ALICE spawned AI and populate the town with IED's and possibly a small group of two or three ALICE civilians to create an ambush. The goal is to make this completely dynamic based solely off of the ALICE module.

so far this is what I have for the suicide bomber script

private ["_target","_suicide"];
while {true} do {
sleep 10;//not sure what the variable to check for an undefined ALICE module init is?
//These arrrays are global because they're going to be used in another script
civPool = nearestObjects [player,["Civilian","Citizen"],200];
westPool = nearestObjects [player,["USMC_Soldier_Base"],300];
//function to find a random ALICE civilian
SuicideVest =
{
private ["_suicideMan"];
_suicideMan = objNull;
   {
       if ((_x in civPool)&&(_x isKindOf "MAN")&&(_x distance player < 300)&&(alive _x)) then {
           _suicideMan = civPool call BIS_fnc_selectRandom;
           waitUntil {!isNull _suicideMan};
		player sideChat format ["%1",getPos _suicideMan];
		};
   }forEach civPool;
_suicideMan
};
//Function to assign a target for the suicide bomber
SuicideTarget = 
{	
private ["_SuicideTarget"];
_SuicideTarget = objNull;
   {
	if (_x in westPool) then {
		_SuicideTarget = westPool call BIS_fnc_selectRandom;
		};
}forEach westPool;
_SuicideTarget
};		

_target = call SuicideTarget;
_suicide = call SuicideVest;

waitUntil {!isNull _suicide};
removeAllWeapons _suicide;
_suicide addWeapon "AK_47_S";
_suicide addMagazine "30Rnd_762x39_AK47";
_suicide doMove getPos _target;
player commandTarget _suicide;
WaitUntil {_suicide distance _target < 50};
group player setBehaviour "COMBAT";
_suicide doTarget _target;
_suicide doFire _target;
player sideChat "AMBUSH!!!!";
"Ace_MineExplosion" createVehicle getPos _suicide;
};
sleep (ceil(round(random 60)));//need to find a better to way to randomize

and this is what I have for the IED's(haven't worked on making it function it with ALICE yet)

private ["_iedCount","_ied","_trig","_mrk","_city","_lPos","_lArray","_lCount","_iedPos"];

loc = locationNull;

CityCenter =

{

private ["_loc","_locations"];

_city = false;

{

if (side (leader _x)==west) then {

_locations = nearestLocations [_x,["CityCenter"],300];

{

if(_x in _locations) then {

loc = _locations select 0;

_city = true;

};

}forEach _locations;

};

}forEach allGroups;

_city

};

_city = [] call CityCenter;

waitUntil {_city};

_iedCount = 0;

_lPos = locationPosition loc;

_lArray = nearestObjects [_lPos,["SoldierWB"],300];

_lCount = count _lArray;

if (_lCount > 3) then {

_iedCount = _lCount * 4;

}

else

{

if (_lCount >= 4) then {

_iedCount = _lCount * 3;

};

};

for "_i" from 1 to _iedCount do

{

_iedPos = [_lPos,_iedCount * floor(round(random(_lcount^2))),random 360]call BIS_fnc_relPos;

_ied = createVehicle ["BAF_IED_V2",_iedPos,[],0,"NONE"];

_trig = ([getPosATL _ied, "AREA:", [5, 5, 0, false], "ACT:", ["WEST", "PRESENT", False],"STATE:",["this","deleteVehicle (thisTrigger getVariable ['ied',objNull]); createVehicle ['Ace_MineExplosion',getPosATL thisTrigger, [], 0, 'NONE']",""]] call CBA_fnc_createTrigger) select 0;

_trig setVariable ["ied",_ied];

_mrk = createMarker[format ["ied_%1",random 1000],_iedpos];

_mrk setMarkerShape "ICON";

_mrk setMarkerType "DOT";

};//to do: make it work for any west unit get town name from ALICE

[code]

Share this post


Link to post
Share on other sites

You should open the ALICE module and take a look inside there are many variable that you may be able to access information from.

Even some you can disable.

I tried disabling some but the biggest problem is that as soon as the Weapon gets added the unit freezes, Without it they will run to the target most of the time.

There maybe one other issue, If you place random civilians the script will also fire for them as they are added to the array.

here are a few that I found, in Alice they seem to be set at -1, which had no effect in your script.

I have them set like this in your script.

_suicide setvariable ["ALICE_action_fsm",1];
_suicide setvariable ["ALICE_action",""];
_suicide setvariable ["ALICE_action_locked",1];
_suicide setvariable ["ALICE_action_fsm",1];
_suicide disableAI "FSM";
//_suicide setvariable ["ALICE_moves",1];
_suicide setvariable ["ALICE_action_fsm",1];
_suicide setvariable ["ALICE_fsm",1];

I'll take a look at your last update tonight if I get chance.

Share this post


Link to post
Share on other sites

I tried to just clone the unit from the module i.e. _clone = typeOf _suicide then just using createVehicle to clone them but the problem was that 90% of the time it seems as if the script would pick someone that got spawned on the top of a building and then the ai would pull a wallstreet and jump down and kill themselves.

private ["_target","_suicide"];
while {true} do {
sleep 10;//not sure what the variable to check for an undefined ALICE module init is?
//These arrrays are global because they're going to be used in another script
civPool = nearestObjects [player,["Civilian","Citizen"],200];
westPool = nearestObjects [player,["USMC_Soldier_Base"],300];
//function to find a random ALICE civilian
SuicideVest =
{
private ["_suicideMan"];
_suicideMan = objNull;
   {
       if ((_x in civPool)&&(_x isKindOf "MAN")&&(_x distance player < 300)&&(alive _x)) then {
           _suicideMan = civPool call BIS_fnc_selectRandom;
           waitUntil {!isNull _suicideMan};
		player sideChat format ["%1",getPos _suicideMan];
		};
   }forEach civPool;
_suicideMan
};
//Function to assign a target for the suicide bomber
SuicideTarget = 
{	
private ["_SuicideTarget"];
_SuicideTarget = objNull;
   {
	if (_x in westPool) then {
		_SuicideTarget = westPool call BIS_fnc_selectRandom;
		};
}forEach westPool;
_SuicideTarget
};		

_target = call SuicideTarget;
_suicide = call SuicideVest;

waitUntil {(!isNull _suicide)&&(getPosASL (_suicide select 2)< 3)};
_clone = typeOf _suicide;
_clonePos = getPosATL _suicide
_sClone = _clone createVehicle _clonePos;
deleteVehicle _suicide;
removeAllWeapons _sClone;
player commandTarget _sClone;
WaitUntil {_suicide distance _target < 50};
_sClone addWeapon "AK_47_S";
_sClone addMagazine "30Rnd_762x39_AK47";
_sClone doMove getPos _target;
group player setBehaviour "COMBAT";
_sClone doTarget _target;
_sClone doFire _target;
player sideChat "AMBUSH!!!!";
"Ace_MineExplosion" createVehicle getPos _sClone;
};
sleep (ceil(round(random 60)));
//to do: select 3 ALICE units for timed ambush function and use same method (but put them in a group)
//will grouping them with _ambush = createGroup east make them hostile?	

Edited by jakkob4682
updated script to delete selected ALICE unit and replace with created unit

Share this post


Link to post
Share on other sites

getting weird error in rpt file

WARNING: Function 'name' - 254ae040# 439118: tak_civil06.p3d has no unit

- network id 0:0

- person

Another problem is even after using a created unit I can get get him to move

private ["_target","_suicide","_clone","_clonePos","_sClone"];
while {true} do {
sleep 10;//not sure what the variable to check for an undefined ALICE module init is?
//These arrrays are global because they're going to be used in another script
civPool = nearestObjects [player,["Civilian","Citizen"],200];
westPool = nearestObjects [player,["USMC_Soldier_Base"],300];//function to find a random ALICE civilian
SuicideVest =
{
private ["_suicideMan"];
_suicideMan = objNull;    
{        

	if ((_x in civPool)&&(_x isKindOf "TK_CIV_Takistani_Base_EP1")&&(_x distance player < 300)&&(alive _x)) then 
	{            
		_suicideMan = civPool call BIS_fnc_selectRandom;            
		waitUntil {!isNull _suicideMan};			
		player sideChat format ["%1",getPos _suicideMan];			
	};    
}forEach civPool;
_suicideMan
};
//Function to assign a target for the suicide bomber
SuicideTarget = 
{	
private ["_SuicideTarget"];
_SuicideTarget = objNull;    
{		
	if (_x in westPool) then 
	{			
		_SuicideTarget = westPool call BIS_fnc_selectRandom;			
	};	
}forEach westPool;	
_SuicideTarget
};		
_target = call SuicideTarget;
_suicide = call SuicideVest;
waitUntil {(!isNull _suicide)&&(position _suicide select 2 < 3)};	
[color="#FF0000"]_clone = typeOf _suicide;	
_cloneSide = createCenter east;
_cloneGrp = createGroup east;
_clonePos = [(getPos _suicide select 0)+5,(getPos _suicide select 1),0];
sClone = _cloneGrp createUnit [_clone,_clonePos,[],random 10,"FORM"];
deleteVehicle _suicide;	
removeAllWeapons sClone;	
player commandTarget sClone;
WaitUntil {_suicide distance _target < 50};	
sClone addWeapon "AK_47_S";	
sClone addMagazine "30Rnd_762x39_AK47";		
sClone doMove getPos _target;	
group player setBehaviour "COMBAT";	
sClone doTarget _target;	[/color]
sClone doFire _target;	
player sideChat "AMBUSH!!!!";	
"Ace_MineExplosion" createVehicle getPos sClone;	
};
sleep (ceil(round(random 60)));

highlighted the parts that were changed

Edited by jakkob4682

Share this post


Link to post
Share on other sites

Both problems are caused because you haven't used createunit but createvehicle.

This seems to be working using clones, I have them spawn as EAST but it will also work if you spawn as CIV just reinstate dotarget do fire commands.

It still needs more work, I'd use a waypoint attached to the target for the bomber as it needs to update the coords.

Also A little move around script for the shooter so he's not static.

private ["_target","_suicide"];
while {true} do {
sleep 5;//not sure what the variable to check for an undefined ALICE module init is?
//These arrrays are global because they're going to be used in another script
civPool = nearestObjects [player,["Civilian","Citizen"],200] - nearestObjects [player,["woman"],200];
westPool = nearestObjects [player,["USMC_Soldier_Base"],300];
//function to find a random ALICE civilian
SuicideVest =
{
private ["_suicideMan"];
_suicideMan = objNull;
   {
       if ((_x in civPool)&&(_x isKindOf "MAN")&&(_x distance player < 300)&&(alive _x)) then {
           _suicideMan = civPool call BIS_fnc_selectRandom;
           waitUntil {!isNull _suicideMan};
		player sideChat format ["%1",getPos _suicideMan];
		};
   }forEach civPool;
_suicideMan
};
//Function to assign a target for the suicide bomber
SuicideTarget = 
{	
private ["_SuicideTarget"];
_SuicideTarget = objNull;
   {
	if (_x in westPool) then {
		_SuicideTarget = westPool call BIS_fnc_selectRandom;
		};
}forEach westPool;
_SuicideTarget
};		

_target = call SuicideTarget;
_suicide = call SuicideVest;


waitUntil {(!isNull _suicide)&&((getPosATL _suicide select 2)< 3 ) };
     _sclonestate = animationState _suicide;
     _sclonegrp = creategroup EAST;// civilian;
_clone = typeOf _suicide;
_clonePos = getPosATL _suicide;
_sClone = _sclonegrp  createunit [_clone,_clonePos,[],0,"none"];
_sclone hideobject true; 
_sClone setdir  getdir _suicide;
_sclone setpos getpos _suicide;
deleteVehicle _suicide;
_sclone hideobject false; 
_sClone switchmove _sclonestate;
sleep 1;

 pole attachto [_sClone,[0,0,12]];// for debug attach flagpole
	removeAllWeapons _sClone;
player commandTarget _sClone;

_bomber = floor random 2;// bomber or shooter

    switch (_bomber) do {
	case 0: { WaitUntil {!alive _sclone or !alive _target or _sClone distance _target < 50};
	        _sClone addMagazine "30Rnd_762x39_AK47";
                 _sClone addWeapon "AK_47_S";
                 // _sClone doTarget _target;// civ set to east this may be good or bad
                  //  _sClone doFire _target;
                      player sideChat "AMBUSH!!!!";  
                      };

       case 1: {_sClone doMove getPos _target;
                 WaitUntil {!alive _sclone or !alive _target or _sClone distance _target < 10};
                   player sideChat "AMBUSH!!!!";
                        "Sh_125_HE" createVehicle getPos _sclone;
                     //"Ace_MineExplosion" createVehicle getPos _sClone;
                     };
  };                   

_wait = time + round (60)+30;//min 30 secs max 90 secs
waituntil {!alive _target or !alive _sClone or time > _wait};
hint "new attacker selected"// for debug
};

Share this post


Link to post
Share on other sites

Have another problem, when I createUnit at the selected Pos alot of times the unit gets created in a stuck pos usually in floor or ground.

Share this post


Link to post
Share on other sites

I could have sworn at one time I read on these forums if using the createUnit command, the "None" and "Form" refer to if the model can collide with the surrounding environment. It was a BIS developer who said to switch to "Form", which stopped the unit from getting "stuck". I will try to find the thread.

Now, if you look up createUnit array, you cannot find any description of what these are for. It just says Special properties can be: "NONE" and "FORM"...

I have also seen comments "Form" is for Formation.

Maybe test and see if there is a difference

Edited by panther42

Share this post


Link to post
Share on other sites

tested - has no effect that I could tell still sometimes get stuck units and sometimes it still selects a woman who gets stuck in an animation

Share this post


Link to post
Share on other sites

I must have been asleep at the wheel...

Other suggestion would be using BIS_fnc_findSafePos

Are these Alice civies getting stuck in doors?

Share this post


Link to post
Share on other sites
I must have been asleep at the wheel...

Other suggestion would be using BIS_fnc_findSafePos

Are these Alice civies getting stuck in doors?

No they are getting stuck in the ground like they ALICE is setPos'ing them w/ a z of -3

---------- Post added at 04:57 ---------- Previous post was at 04:14 ----------

No they are getting stuck in the ground like they ALICE is setPos'ing them w/ a z of -3

this is in the rpt caused by the stuck alice civs,which using the findSafePos might be able to fix however I am not very familiar with the function, and from some of the posts I have read on it, if the function doesn't return a good position then it uses the startPosition in the config for that map, which in most cases if not all is the center.

Share this post


Link to post
Share on other sites

Any idea's on a work around for the getting stuck issue? also I saw a variable in the wiki but I'm not sure how to use "ALICE_populationActive" = _array the array consists of units that are outside(eliminates the chance of selecting a stuck unit but not sure how to use it). So close to getting a release version of this script :(

---------- Post added at 21:45 ---------- Previous post was at 20:36 ----------

yet another problem..... when I setFriend to 0 for civ and west after the unit is selected and I order my guys to attack it say "Target that house"... wtf

Edited by jakkob4682

Share this post


Link to post
Share on other sites

Sorry, but I haven't messed with the ALICE module a whole lot. When I have tested, I didn't have any problems with civilians getting stuck in the ground.

Are you using A2, OA, or CO?

Only other weird thing I found, was I mistakenly placed the ALICE module on the map for Takistan, instead of using the ALICE Expansion module. I was standing near the airport control tower, and it was spawning a bunch of russian civvies at the control tower door and they where getting stuck in the door. Plus they wouldn't leave the area around the door. Once the correct module was placed, it worked fine.

The "ALICE_populationActive" is a variable, so you should be able to get the return via getVariable for the town logic.

_activeCivs = yourTownLogicName getvariable "ALICE_populationActive";

Share this post


Link to post
Share on other sites
Sorry, but I haven't messed with the ALICE module a whole lot. When I have tested, I didn't have any problems with civilians getting stuck in the ground.

Are you using A2, OA, or CO?

Only other weird thing I found, was I mistakenly placed the ALICE module on the map for Takistan, instead of using the ALICE Expansion module. I was standing near the airport control tower, and it was spawning a bunch of russian civvies at the control tower door and they where getting stuck in the door. Plus they wouldn't leave the area around the door. Once the correct module was placed, it worked fine.

The "ALICE_populationActive" is a variable, so you should be able to get the return via getVariable for the town logic.

_activeCivs = yourTownLogicName getvariable "ALICE_populationActive";

CO: using Ambient Civilians Expansion module, I may need to add a waitUntil {!isNil BIS_ALICE_MAINSCOPE} before I run the script then a sleep command afterwards. As for the getVariable command it doesn't work, i tried placing _outside = this getVariable "ALICE_populationActive" in the init of the ALICE2 module then using a trigger to get the return and it doesnt even print out a report. So I'm guessing I have to use the waitUntil in combination with the sleep command to give it time for spawned units to get animated.

---------- Post added at 05:34 ---------- Previous post was at 05:17 ----------

I might scrap the whole ALICE module dependancy and just use a function to create some groups of Takistanis with dismissed waypoints :( so much effort because I thought "hey" why create a seperate addon for suicide bombers when you can just make them ALICE2/ALICE dependant :( gonna try the waitUntil and sleep combination to see if that yeilds better results if not then back to square one but then theres still the issue of spawning the groups in a good position.

Share this post


Link to post
Share on other sites

the getVariable needs to be used with the town location logic, not the ALICE module.

place this in your alice init field:

this setvariable ["debug",true];

Look around the map after starting mission. See the centers around the town logics? See the counts.

Here's another option for you. Don't know if you've seen this one.

MarketDay

Edited by panther42

Share this post


Link to post
Share on other sites

How exactly do I getVariable from a non-existant town logic? or is there another variable in the module I need to use first? i.e. myAliceModule setVariable ["townList",nearestLocations [player,["CityCenter"],30000]]? or what ever I named my array for locations

I'm really trying to make this as dynamic as possible without having to define variable with a script call, thats why the module dependancy, also for realism. However I may just go with using config commands to make it dynamic, or just use the standard way of getting location positions and arrays, but really didn't want to have to build two or more scripts for one function yet :(

Edited by jakkob4682

Share this post


Link to post
Share on other sites

ALICEMODULENAME getVariable "townlist"; maybe? sorry, not on my game computer, so I can't test

Share this post


Link to post
Share on other sites

module getVariable "ALICE_populationActive" returns scalar when i use sideChat to debuf its count....

Share this post


Link to post
Share on other sites

yet another problem..... when I setFriend to 0 for civ and west after the unit is selected and I order my guys to attack it say "Target that house"... wtf

I believe this is because the ALICE civs might be found using (typeof vehicle _unit == "bis_alice_emptydoor")....not sure though, but you can find this reference in the CfgCivilianActions.

Odd you would get "Target that house" though because BIS_alice_emptydoor inherits from Car. I really have no clue without testing.

Share this post


Link to post
Share on other sites

so the class is of CAManBase but the typeOf isn't? that's odd. I assumed that "bis_alice_emptydoor" was just a position to reference to for spawning the civs

Share this post


Link to post
Share on other sites
so the class is of CAManBase but the typeOf isn't? that's odd. I assumed that "bis_alice_emptydoor" was just a position to reference to for spawning the civs

No, the civs are basically created and placed in a "car" so to speak. Each "car" is the "bis_alice_emptydoor" they were assigned to per building.

typeof vehicle _unit == "bis_alice_emptydoor" is checking the _unit is in this vehicle. Similar to checking vehicle player != player checks if the player is in anything other than his own "vehicle"(body)

If you are using the latest beta, there is a fix put in called Sound_FixedAliceEmptydoor under the Configuration Project. This was to eliminate the problem of hearing civilians created with ALICE saying "... board car" when they're going to hide in their houses.

Seems now, it may have affected the targeting if you are getting "Target that house", as the ALICE civs are in a "car" via "bis_alice_emptydoor", which the config was changed for the SpeechVariants to "house"

Does this make sense? I know we're getting a bit off track here.

Edited by panther42

Share this post


Link to post
Share on other sites
No, the civs are basically created and placed in a "car" so to speak. Each "car" is the "bis_alice_emptydoor" they were assigned to per building.

typeof vehicle _unit == "bis_alice_emptydoor" is checking the _unit is in this vehicle. Similar to checking vehicle player != player checks if the player is in anything other than his own "vehicle"(body)

If you are using the latest beta, there is a fix put in called Sound_FixedAliceEmptydoor under the Configuration Project. This was to eliminate the problem of hearing civilians created with ALICE saying "... board car" when they're going to hide in their houses.

Seems now, it may have affected the targeting if you are getting "Target that house", as the ALICE civs are in a "car" via "bis_alice_emptydoor", which the config was changed for the SpeechVariants to "house"

Does this make sense? I know we're getting a bit off track here.

yes it makes sense, think rather using typeOf _object = _var; i'll just use an actual class name depending on gender. That might be the issue.

_clone = typeOf _suicide
_clonePos = getPosATL _suicide;
_sClone = _sclonegrp  createunit [_clone,_clonePos,[],random 15,"none"];

is what I was using to shorten the script down as much as I could but think I need to use an actual class name based of the gender check now. Come to think of it thats probably the reason why using isKindOf "MAN" or "Woman" wasn't working. At the moment I was using a gender check as a condition for adding a weapon to the unit.

Edited by jakkob4682

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
Sign in to follow this  

×