I have some creatures in my level and I would like them to respawn if they get killed. How can I set it up so that they will respawn?
This is the static archive of the Massassi Forums. The forums are
closed indefinitely. Thanks for all the memories!
You can also download
Super Old Archived Message Boards
from when Massassi first started.
"View" counts are as of the day the forums were archived, and will no longer increase.
# #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