i need help witgh my AI generator cog. I am using the one off massassi, but there is one problem, When playing with 2 or more people, 2 AIs spawn when the first one is killed, even though the max alive thing is set to 1. I don't even know where to start to fix it. If anyone can help, it'd be awesome. Here's the cog I am using, so you can just edit this one to save time.. thanks.
#This is a mod made by FantomJedi -- e-mail Fantom117A@aol.com
#
#The thing is the number of the ghost object where the enemy is spawned
#
#The template is the enemy you want to use
#
#The gen_num is how many total enemies you want before the cog stops respawning them
#
#The max_alive is how many enemies are alive at once
#
#Jedi Knight Cog Script
#
# 06_generator.cog
#
# Cribbed from generic generator, for use in last tower room
#
# [RD]
#
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================
symbols
message startup
message user0
message timer
message pulse
message killed mask=0xfff
thing generator_pos desc=generator_ghost
template enemy_tpl desc=enemy_to_generate
int initial_delay=1.0 local desc=initial_delay
int generate_delay=5.0 local desc=generate_delay
int min_dist=0.0 local desc=min_distance
int max_dist=1000.0 local desc=max_distance
float distance=1.0 local
cog squadmaker local
int enemy local
int cur_num=0 local
int cur_alive=0 local
int generate_num
int max_alive desc=max_alive
end
# ========================================================================================
code
startup:
// if initial_delay == -1 then the generator will be started by SendMessage
// user0 from another COG. Much like the WAKEUP message in DF...
if(initial_delay != -1) SetTimer(initial_delay);
Return;
# ........................................................................................
user0:
// FIXME!! remove next line when parsing bug is corrected
enemy = enemy;
// fall through on purpose
# ........................................................................................
timer:
SetPulse(generate_delay);
// fall through on purpose
# ........................................................................................
pulse:
if((cur_alive < max_alive))
{
distance = VectorDist(GetThingPos(generator_pos), GetThingPos(GetLocalPlayerThing()));
if((distance >= min_dist) && (distance <= max_dist))
{
if(IsThingVisible(generator_pos)==0)
{
enemy = CreateThing(enemy_tpl, generator_pos);
CaptureThing(enemy);
cur_num = cur_num + 1;
cur_alive = cur_alive + 1;
// If we have generated enough enemies, end the pulse
if(cur_num >= generate_num) SetPulse(0);
}
}
}
return;
# ........................................................................................
killed:
cur_alive = cur_alive - 1;
SendMessage(squadmaker, user0);
return;
end
#This is a mod made by FantomJedi -- e-mail Fantom117A@aol.com
#
#The thing is the number of the ghost object where the enemy is spawned
#
#The template is the enemy you want to use
#
#The gen_num is how many total enemies you want before the cog stops respawning them
#
#The max_alive is how many enemies are alive at once
#
#Jedi Knight Cog Script
#
# 06_generator.cog
#
# Cribbed from generic generator, for use in last tower room
#
# [RD]
#
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================
symbols
message startup
message user0
message timer
message pulse
message killed mask=0xfff
thing generator_pos desc=generator_ghost
template enemy_tpl desc=enemy_to_generate
int initial_delay=1.0 local desc=initial_delay
int generate_delay=5.0 local desc=generate_delay
int min_dist=0.0 local desc=min_distance
int max_dist=1000.0 local desc=max_distance
float distance=1.0 local
cog squadmaker local
int enemy local
int cur_num=0 local
int cur_alive=0 local
int generate_num
int max_alive desc=max_alive
end
# ========================================================================================
code
startup:
// if initial_delay == -1 then the generator will be started by SendMessage
// user0 from another COG. Much like the WAKEUP message in DF...
if(initial_delay != -1) SetTimer(initial_delay);
Return;
# ........................................................................................
user0:
// FIXME!! remove next line when parsing bug is corrected
enemy = enemy;
// fall through on purpose
# ........................................................................................
timer:
SetPulse(generate_delay);
// fall through on purpose
# ........................................................................................
pulse:
if((cur_alive < max_alive))
{
distance = VectorDist(GetThingPos(generator_pos), GetThingPos(GetLocalPlayerThing()));
if((distance >= min_dist) && (distance <= max_dist))
{
if(IsThingVisible(generator_pos)==0)
{
enemy = CreateThing(enemy_tpl, generator_pos);
CaptureThing(enemy);
cur_num = cur_num + 1;
cur_alive = cur_alive + 1;
// If we have generated enough enemies, end the pulse
if(cur_num >= generate_num) SetPulse(0);
}
}
}
return;
# ........................................................................................
killed:
cur_alive = cur_alive - 1;
SendMessage(squadmaker, user0);
return;
end