Full Version : Looking for some ideas
xmlspawner >>XMLSpawner - Discussion >>Looking for some ideas


<< Prev | Next >>

Lara- 01-06-2007
Hello All!

I'm about to set up a new town that is rather under constant spawn by a race of creatures. Id like to set up a lot of spawns and attempt to create a sense of intelligence to the overall feel. Make it seem like there is some thinking or planning behind it on the part of the mobs. Also to have the spawns respond to action or more importantly lack of action on the mobs part.

So I thought I'd stop here first and see what others have done and maybe get some suggestions and how to do that.

Below is an example of some of the things I'd like to do, but have not yet tried. (Meaning they might not be doable, though I've come to believe you can do anything with this nifty program.)

Scouts, that unless killed in a certain time frame bring in a larger spawn.

Spawns that check to see the last time any player was in the area and spawns based on that, i.e. the concept of an un-protected area or un-patrolled area getting hit.

Engineer mobs that attack walls. I'm going to put parts of the walls in as multi so that i can "destroy the wall" and then ultimately remove the wall.

A scout npc in one place that when sighted by mobs runs to a designated area and pops an ambush spawn. (I don't know if i can make a mob move from one place to another with this yet.)

A tunneling set up, a group of mobs start emoting they are making a tunnel, and if not stopped in time, sneak groups pops up under the walls.

Scavengers, mobs that only attack if there is a weak player in the area.

Edit Added:

Have a spawner that checks other overall spawners and if they are high, i.e. not hunted back, spawns are large invasion force.

Any other ideas you might have and some suggestions for setting it up would be great!

Lara

ArteGordon- 01-06-2007
good ideas. They can definitely be done.

For things like this
QUOTE

Scouts, that unless killed in a certain time frame bring in a larger spawn.


you could do this with a single spawner using entries like this

Subgroup 1: orc
Subgroup 2: #CONDITION,GETONSPAWN,1,COUNT>0; troll


In this case, the subgroup 2 spawn would only occur if the number of active spawns in subgroup 1 was greater than zero.

You could also split it across multiple spawners like

spawner1
Subgroup 1: orc/name/a scout

spawner2
#CONDITION,GETONSPAWN,spawner1,1,COUNT>0; troll

which does the same thing but checks the number of active spawns in subgroup 1 of the spawner named 'spawner1' to see if it is greater than zero before spawning.

Lara- 01-06-2007
Great idea .... how could I give them an hr or two before I did the check? Give them a chance to find the scout?

ArteGordon- 01-06-2007
you could set the min/maxdelay for the troll entry for an hour or so.

Lara- 01-07-2007
We figured out how to attack only unscouted areas ...

Set one spawner to spawn up to 3 rocks on player approach with an attachment decay on each rock to decay after 2 hrs.

Then set up another spawner to only kick off if the spawn count is 0.

Lara

Note: We've upgraded it to use a banner instead of rock that spawns, the banner as a multi has an xmlmessage that it *waves in the wind*, and then when the player approaches the spawner messages "The coast looks clear, you rehang the banner". This give some really good visuals and fiction to actually trying to patrole the walls.

ArteGordon- 01-07-2007
yeah, I was going to suggest using a triggered spawner that added an attachment that decayed after some time. You could just tag the spawner itself with the attachment if you didnt want to use rocks.

ArteGordon- 01-07-2007
QUOTE

Scavengers, mobs that only attack if there is a weak player in the area.


for this just set up a triggered spawner with a PlayerTrigProp set to something like

str<70

ArteGordon- 01-07-2007
QUOTE

Have a spawner that checks other overall spawners and if they are high, i.e. not hunted back, spawns are large invasion force.


You could use an individual entry condition test like this

#CONDITION,GET,spawnername,xmlspawner,TotalSpawnedObjects>20 ; troll

or you could create a regular spawner with your invasion force on it and set the' TriggerObjectProp' to

TotalSpawnedObjects>20


and the 'TriggerObject' property to point to the spawner that you want to monitor.

Then all the spawns on the invasion spawner would be triggered whenever the monitored spawner had its total spawned object count go above 20

ArteGordon- 01-08-2007
QUOTE

A scout npc in one place that when sighted by mobs runs to a designated area and pops an ambush spawn. (I don't know if i can make a mob move from one place to another with this yet.)


The easiest way to get a mob to move from one place to another is to change the Home property to the location that you want it to go to.
For example, to spawn a mob at one location and have it wander to another, do something like this

orc/location/(1300,900,0)/home/(1300,1000,0)

this will spawn it at 1300,900,0 and it will then proceed to wander to 1300,1000,0

You can also change the Home at any time, so you could just spawn the mob, and then have another triggered spawner set the Home prop on it when you wanted it to start running. Like this:
Spawner1 would have your runner, and spawner2 would be triggered by some event and would set the home prop on the orc to set it running.

spawner1
subgroup 1: orc/name/Runner

spawner2
SETONSPAWN,spawner1,1/home/(1300,1000,0)


As for the ambush when it arrives there, you could either set up a regular player triggered spawner at the destination, or you could have an NPC triggered spawner that would spawn when the named orc arrived.
To do this, set the spawner up as a regular triggered spawner and set AllowNPCTrig property on the spawner to true and then set the PlayerTrigProp to something like "name=Runner".

Note that by default, the AI of your runner will only be active when players are around if your PlayerRangeSensitive setting is true (which it is for most people).
Since you probably want them to run even without players around, I would recommend using an AI mod that allows you to spawn things with AI that will run even without players around.
http://xmlspawner.15.forumer.com/index.php?showtopic=387

Old Dog- 02-21-2007
I have a couple questions on this
QUOTE
Spawner1 would have your runner, and spawner2 would be triggered by some event and would set the home prop on the orc to set it running.

Instead of changing its home would you be able to make it follow a waypoint?

Can you increase the speed at which the runner would move and set it so it will not attack the triggering player even if the triggering player attack the runner?
This way it will lead the players to the ambush and not turn and attack them and get killed before they get to the ambush.



ArteGordon- 02-21-2007
QUOTE (Old Dog @ February 21, 2007 08:07 am)
I have a couple questions on this
QUOTE
Spawner1 would have your runner, and spawner2 would be triggered by some event and would set the home prop on the orc to set it running.

Instead of changing its home would you be able to make it follow a waypoint?

Can you increase the speed at which the runner would move and set it so it will not attack the triggering player even if the triggering player attack the runner?
This way it will lead the players to the ambush and not turn and attack them and get killed before they get to the ambush.

yes, you can set the CurrentWaypoint property on a mob instead of Home.

To change the movement speed of a mob, you can change the CurrentSpeed, the ActiveSpeed, or the PassiveSpeed, or all of the above.

To change the way a mob attacks, change the FightMode property. If you change it to None then it will not attack.

So a spawning a mob like

orc/FightMode/None/CurrentSpeed/0.15/CurrentWaypoint/{GET,MyTargetWaypoint,waypoint,serial}

would spawn a mob, change its current speed to something fast, make it ignore all attackers, and set the waypoint to the waypoint rune named 'MyTargetWaypoint'.
It would run to the waypoint and ignore players along the way which is what you want.

You could also use the SETONSPAWN approach described in the earlier post to do the same thing

spawner1
subgroup 1: orc/name/Runner

spawner2
SETONSPAWN,spawner1,1/FightMode/None/CurrentSpeed/0.15/CurrentWaypoint/{GET,MyTargetWaypoint,waypoint,serial}

Old Dog- 02-21-2007
Thanks for the info the part about the waypoints really helps with a couple other ideas i have. Once again you answered all my questions and make it look easy.