Mapping Questions

Anything and everything related to the Evolution server.
Post Reply
DW_WailofSuicide
DW Clan Member
Posts: 1634
Joined: Wed Dec 28, 2005 12:00 am

I'm working on AS-Thrust next version and I have a couple of questions concerning the monster spawner since I noticed that in many cases the behavior of the MonsterSpawner is not quite what I'd expect.


Question 1: I want to spawn a Razorfly. How?

I have a DWMonsterSpawner set up to spawn MonsterName 'Fly' but instead it spawns a Krall. Is the name of the Razorfly a 'Fly', 'Razorfly', or what?

Question 2: I've noticed many enemies do not spawn when their factory is triggered. Why might this be?

All of my DWMonsterSpawners are set up so that I have the (MonsterSpawning.Lives + MonsterSpawning.RandomExtraLivesMax) == ThingFactory.MaxItems.
However, Capacity is set to 0. Is this ok for DWMonsterSpawner?
In theory this should mean that all my monsters spawn correct? Or do I have to give all of my monsterspawners unique ThingFactory.MonsterSpawnerIDs too? (If so, what is the use of the MonsterSpawnerID? ' Cause what the heck, I don't see the point.)

Question 3: I want to set up pickups by using the ThingFactory. How can I do this?

The SpawnPoint array has been removed. So how do I determine where the ThingFactory places its items?
DW_WailofSuicide
DW Clan Member
Posts: 1634
Joined: Wed Dec 28, 2005 12:00 am

Question 4: What is the default damage values for DoomSentry, Mercenary, Elite Mercenary, Skaarj Sniper?

I want to set reasonable values for these things in Thrust, but I am not sure what their base values are so can't set this correctly without knowing.

Question 5: How can I used a ScriptedTrigger to set up If/Else conditions so that I can spawn one set of monsters OR another set of monsters, instead of spawning everything by a % chance in the DWMonsterSpawner and potentially having all or none spawn?
DW_Ant
DW Clan Member
Posts: 2679
Joined: Sat Jun 21, 2008 11:00 pm
Location: North Carolina

DW_WailofSuicide wrote:Question 1: I want to spawn a Razorfly. How?
Flies and Mantas are found in OSM package. In Thrust, they're currently set to Satore.

DW_WailofSuicide wrote:Question 2: I've noticed many enemies do not spawn when their factory is triggered. Why might this be?

All of my DWMonsterSpawners are set up so that I have the (MonsterSpawning.Lives + MonsterSpawning.RandomExtraLivesMax) == ThingFactory.MaxItems.
However, Capacity is set to 0. Is this ok for DWMonsterSpawner?
In theory this should mean that all my monsters spawn correct? Or do I have to give all of my monsterspawners unique ThingFactory.MonsterSpawnerIDs too? (If so, what is the use of the MonsterSpawnerID? ' Cause what the heck, I don't see the point.)
This is a little complicated, and I apologize for this. Right now, Thing Factories with the same tag will share their item count. The MonsterSpawnerID property is a way to have multiple monster spawners with same tag that does not share item counts.

An example:
Factory A:
  • Tag: GroupA
  • Monster: Gasbag
  • Lives: 8
  • MaxItems: 8
Factory B:
  • Tag: GroupA
  • Monster: Manta
  • Lives: 16
  • MaxItems: 16
In this scenario here, what will happen is that the two factories are sharing the same items when counting. What may happen is that Factory A may spawn all 8 gasbags and Factory B will only spawn 8 Mantas.
Depending on the timing, the other possibility is that Factory B may spawn all 16 Mantas, but since Factory A's counting function detected over 16 monsters, it will not spawn a Gasbag until 9 Mantas died.

If we were to apply the MonsterSpawnerID:
Factory A:
  • Tag: GroupA
  • Monster: Gasbag
  • Lives: 8
  • MaxItems: 16
  • MonsterFactoryID: 1
Factory B:
  • Tag: GroupA
  • Monster: Manta
  • Lives: 16
  • MaxItems: 16
  • MonsterFactoryID: 2
Here, the two factories' counting functions will ignore monsters that have different MonsterFactoryIDs. Factory B will ignore Gasbag, and Factory A will ignore Mantas.

An alternative/cheaper solution is to set MaxItems for all factories to 100.[/color]
DW_WailofSuicide wrote:Question 3: I want to set up pickups by using the ThingFactory. How can I do this?
Set the spawn points' tag equal to the Thing Factory's tag.
Set ThingFactory.ProtoType equal to the pickup class of the item you want to spawn.


DW_WailofSuicide wrote:Question 4: What is the default damage values for DoomSentry, Mercenary, Elite Mercenary, Skaarj Sniper?
Mercenary:
  • Machine gun: 12 - 18
  • Melee: 24
  • Rocket: 44
Mercenary Elite:
  • Machine gun: 21 - 27
  • Melee: 30
  • Rocket: 44
Sentry:
  • Bullet: 28
Skaarj Sniper:
  • Lightning Bolt: 24 - 45
  • Melee: 34 - 37
[/color]
DW_WailofSuicide wrote:Question 5: How can I used a ScriptedTrigger to set up If/Else conditions so that I can spawn one set of monsters OR another set of monsters, instead of spawning everything by a % chance in the DWMonsterSpawner and potentially having all or none spawn?
Although this is messy, it works:
Here's a basic Scripted Trigger sequence to spawn 1 of 4 potential monster sets
[0]WaitforEvent //event is triggered
[1]IfRand < 0.25 //If this passes, then moves to next sequence, otherwise jumps to next End Section
[2]TriggerEvent //Spawn first monster set
[3]GoToAction = Array.length - 1 //Jump to the end of scripted trigger
[4]EndSection //Your else
[5]IfRand < 0.333333 //1 of 3 chance of getting to this set
[6]TriggerEvent //Spawn second monster set
[7]GoToAction = Array.length - 1
[8]EndSection//Your else for rand<0.333 condition
[9]IfRand < 0.5 //50% chance of executing this one
[10]TriggerEvent //Spawn third monster set
[11]GoToAction = Array.length - 1
[12]EndSection
[13]TriggerEvent //Spawn fourth monster set
[14]DisableThisScript //Have your GoToAction statements go here
The difference between successful people from others is
not in the lack of strength,
not in the lack of knowledge,
but rather in the lack of will.

FFE466

_________________________
{F}{AH}{CivFR}{XC}{U}{DF}{CJ}{SD}
DW_WailofSuicide
DW Clan Member
Posts: 1634
Joined: Wed Dec 28, 2005 12:00 am

Some more questions I have that I think might be useful for other mappers to be answered publicly so we have some reference.

1. I want to set up a boss monster that becomes invulnerable and changes his skin when invulnerable, how do I do this?

Answer:

Set up the MonsterSpawner to use MonsterSpawner.MonsterEvents.bToggleInvulnerability. When the Monster's Tag (MonsterSpawner.MonsterEvents.MonsterTag) is triggered, the monster will toggle between vulnerability and invulnerability.
Create a MaterialSwitch material using the Boss's original and Invulnerable skin materials.
Add a ClientMaterialTrigger. Add your MaterialSwitch to this. When the ClientMaterialTrigger's tag is triggered, the MaterialSwitch will change the texture (make sure the MaterialSwitch material is applied to the monster in the MonsterSpawner!)


2. I want to set up monsters to continually spawn during my boss fight. Monsters will continue to spawn during the fight, then cease once the Boss is defeated. How do I do this?

3. I want to set up my map so that semi-randomized enemy squads will teleport in at determined intervals, but monsters will not continue spawning in the interim. (ie, Monsters will spawn every 120 seconds, but will not spawn again until another 120 seconds has passed)
Is there a way I can get this behavior without creating spawners for every spawn interval?
Post Reply