RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

XmlSpawner2

ArteGordon

Wanderer
Prohor Meletevich said:
My spawner spawns special mobile at the TODStart and despawn it at the TODEnd. The problem is to disable autorespawning if this mobile has been killed. How to achieve this? That's for my hybrid Scripts/XmlSpawner quest of Vampire.

if you set the individual entry Min/MaxDelay for your Vampire to something large, that will determine the next time to spawn AFTER it is spawned the first time.

So just make that large (like the total time interval between your TODStart and TODEnd ) and it will not be able to be respawned again during that interval even if it is killed.

(edit)

note, the individual min/maxdelay value is in minutes
 

dilligasty

Wanderer
Treasure Chests?

Anyone having any treasure chest issues since installing this? I'm not sure if it's xmlspawer, or just happened to start at the same time - but every treasure chest on the spawners I have generate an entry in the badspawns log, and no chests are spawned anywhere. Strange.
 

ArteGordon

Wanderer
dilligasty said:
Anyone having any treasure chest issues since installing this? I'm not sure if it's xmlspawer, or just happened to start at the same time - but every treasure chest on the spawners I have generate an entry in the badspawns log, and no chests are spawned anywhere. Strange.

sounds like the treasure chest scripts that you were using were removed.
You will get badspawns entries when the object type that you are trying to spawn cannot be found.
What do the entries that are giving you problems look like?

(edit)

note, that if you import prespawned maps like Nerun's, there may be things spawned that dont have scripts in the default distribution. You would need to include the custom scripts for those objects included in that package.
 
ArteGordon said:
if you set the individual entry Min/MaxDelay for your Vampire to something large, that will determine the next time to spawn AFTER it is spawned the first time.

So just make that large (like the total time interval between your TODStart and TODEnd ) and it will not be able to be respawned again during that interval even if it is killed.

(edit)

note, the individual min/maxdelay value is in minutes

Thank you, it's work fine. Only one thing, maybe I don't understand something but the first time it isn't spawns immediately. It spawns after Min/MaxDelay period.
 

ArteGordon

Wanderer
Prohor Meletevich said:
Thank you, it's work fine. Only one thing, maybe I don't understand something but the first time it isn't spawns immediately. It spawns after Min/MaxDelay period.
that is correct. That is how it works. So if you make the spawner min/maxdelay small it will reduce the delay to the initial spawn, then you can make the individual entry min/maxdelay long to increase the delay to the next spawn for that entry.

The way that TOD spawn control works is that the spawner ticks away based on the min/maxdelay settings, and checks to see if it is within the TODStart/End window. If it is, then it spawns, if it isnt, then it despawns.
 
Or no... It isn't work... I tried, tried and tried but it still not working exactly what I want... NextSpawn timer falling trough Min/Max delay vales and wants to spawn only when timer appears to zero. I want to spawn vampires only from 00:00 to 07:00 use game time. I have set Min/Max delay to 40 mins (5 real seconds = 1 game minute) but the spawner don't want to spawn exactly in 00:00.
 

ArteGordon

Wanderer
Prohor Meletevich said:
Or no... It isn't work... I tried, tried and tried but it still not working exactly what I want... NextSpawn timer falling trough Min/Max delay vales and wants to spawn only when timer appears to zero. I want to spawn vampires only from 00:00 to 07:00 use game time. I have set Min/Max delay to 40 mins (5 real seconds = 1 game minute) but the spawner don't want to spawn exactly in 00:00.

whatever you set for the main spawner min/maxdelay will always be the minimum time between spawns.
If you make the spawner min/maxdelay small (like 10 seconds), and then set the Vampire entry min/maxdelay to something long (like 40 mins), then when the game time reaches 00:00, the vampire will spawn within 10 seconds. Then it will not be able to spawn again for 40 mins.
 
ArteGordon said:
whatever you set for the main spawner min/maxdelay will always be the minimum time between spawns.
If you make the spawner min/maxdelay small (like 10 seconds), and then set the Vampire entry min/maxdelay to something long (like 40 mins), then when the game time reaches 00:00, the vampire will spawn within 10 seconds. Then it will not be able to spawn again for 40 mins.

Works perfectly! Tanks Arte!
 

ArteGordon

Wanderer
Prohor Meletevich said:
Now Im understod that I can set Min/Max respawn delay value for specific entry but how to do this? I didn't found nothing in XmlSpawner gump :eek:

open the extended spawner gump by pressing the little arrow button in the lower right corner of the gump. You will see the MinD and MaxD columns. Enter in the delay in minutes there.
 

dilligasty

Wanderer
chests?

ArteGordon said:
sounds like the treasure chest scripts that you were using were removed.
You will get badspawns entries when the object type that you are trying to spawn cannot be found.
What do the entries that are giving you problems look like?

(edit)

note, that if you import prespawned maps like Nerun's, there may be things spawned that dont have scripts in the default distribution. You would need to include the custom scripts for those objects included in that package.


Like I said - I'm not certain it's related to installing xmlspawner. In all probability it isn't. I don't recall removing any chest scripts, or anything. But, you did mention Neruns' - that I did import - so that might have had a part in this. I'll keep looking - thanks for the help, and a really nice spawning system.
 

ArteGordon

Wanderer
dilligasty said:
Like I said - I'm not certain it's related to installing xmlspawner. In all probability it isn't. I don't recall removing any chest scripts, or anything. But, you did mention Neruns' - that I did import - so that might have had a part in this. I'll keep looking - thanks for the help, and a really nice spawning system.

yes, Nerun's adds spawns that are not defined in the scripts included in the standard RunUO distribution. You will need to add the custom scripts for those spawns, and treasure chests are probably among them.
 

dilligasty

Wanderer
fixed

ArteGordon said:
yes, Nerun's adds spawns that are not defined in the scripts included in the standard RunUO distribution. You will need to add the custom scripts for those spawns, and treasure chests are probably among them.

That would be it. Added the treasure chest portions of his distro - fixed. Thanks for the help.
 

ArteGordon

Wanderer
updated to version 3.10

from the changelog

New to version 3.10
updated 5/18/06

- added the "#RELXY,xinc,yinc[,zinc]" spawn positioning control keyword.
This will position the spawn relative to the previously placed spawn by the amount xinc,yinc.

- added the ability to specify multiple spawn control keywords in a single entry by separating them with semicolons. This also adds the requirement that all # spawn control keywords be separated from the main spawn entry with a semicolon and not just white space.

- added FastestPlayerSpeed and MovingPlayerCount properties that can be tested for on the spawner that will report the maximum movement speed and number of nearby moving players. Proximity detection must be enabled on the spawner by setting ProximityRange in order to make use of these properties.

- added the "#CONDITION,proptest" spawn control keyword that allows individual entries to be made conditional on the specified property test.
When combined with the new FastestPlayerSpeed and MovingPlayerCount properties, you can make spawn entries that will depend on the speed and number of nearby players with entries like

#CONDITION,movingplayercount<2 ; orc

which would only spawn the orc if fewer than 2 players were moving nearby.

#CONDITION,fastestplayerspeed>5 ; #PLAYER,3 ; orc

Which would only spawn the orcs if some player was moving faster than 5 tiles per second and would additionally have the orcs placed within 3 tiles of the triggering player when they are spawned.

You can use the same kind of condition tests that can be used anywhere else, such as compound tests or tests for properties on carried items, or triggering players, etc. For example,

#CONDITION,GETONTRIGMOB,skills.magery.value>100 ; lichlord

would only spawn the lichlord if the triggering player had magery greater than 100.

- added an example of this in SpeedKills.xml to xmlextras.zip. Just do an "[xmlloadhere speedkills.xml". If a player creeps slowly past the spawner, they can avoid triggering any spawns. If they walk past the spawner, it will trigger 3 orcs around them. If the player runs past at medium speed, they will spawn 2 trolls. If they run at maximum speed, they will spawn a titan. (thanks to Sunshine for the idea).

- allow the use of empty attachment names when referring to attachment properties using the GET series of keywords with "[ATTACHMENT,type,name,property]", This will ignore the attachment name when finding the attachment as in "GETONTRIGMOB,[ATTACHMENT,xmlquestpoints,,points]"

- enable the use of the EQUIP and ADD keywords with mobs that do not have packs by default. If these keywords are used on mobs that dont have backpacks to begin with, then they will automatically be given a pack.

- added the ability to access container contents in the SETONNEARBY keyword with the new 'searchcontainers' argument. The new syntax is

SETONNEARBY,range,name[,type][,searchcontainers]/prop/value/prop/value...

where searchcontainers is a flag set to true or false (default is false). This will only access containers that are placed in the world, not containers carried by mobiles. If searchcontainers is set, then only items in containers will be included.

So, to delete all ginseng found in containers within 5 tiles of the spawner but not on the ground, you could use the spawn entry

SETONNEARBY,5,,ginseng,true/DELETE

Without the searchcontainers argument, or setting it to false it would delete all ginseng on the ground within 5 tiles of the spawner but not in containers.

An example of the use of this for filling and deleting contents of nearby boxes can be found in the nearbyboxes.xml example in xmlextras.zip (thanks to snicker7 for the idea).
 

ArteGordon

Wanderer
Prohor Meletevich said:
Is it possible to BCAST message when spawner spawns something on TODstart and another BCAST when despawns on TODend?

There is no explicit event associated with TODStart and TODEnd (they just define a spawning time window) so you cant really trigger off of them, but what you can do is to have a conditional test that looks at the time of day, and BCASTs a message if it is within some window (like around TODStart or TODEnd).

subgroup 1: IF/GameTOD>6:55:00 & GameTOD<7:00:00/22
subgroup 1: IF/GameTOD>15:55:00 & GameTOD<16:00:00/33
subgroup 1: GOTO/1
subgroup 22: BCAST/your starting message
subgroup 33: BCAST/your ending message

Then enable sequential spawning.
The starting test in this case would look for times between 6:55am and 7am in game time, and the ending test would look for 3:55pm to 4pm.

You would set your min/maxdelay on your spawner or the test window size so that it would tick at least once in that window.

- added several timekeeping properties to XmlDialog entries that allows you to control their activation based upon time of the day, day of the week, day of the month, or phase of the moon. These properties are:
GameTOD - has values of the form hh:mm:ss, so 14:00:00 would be 2pm
RealTOD - has values of the form hh:mm:ss
RealDayOfWeek - has values Sunday, Monday, etc. Note, these are enums so when referring to them in property tests precede them with a #, like "RealDayOfWeek=#Monday"
RealDay - has values 1-31
RealMonth - has values 1-12
MoonPhase - has values NewMoon, WaxingCrescentMoon, FirstQuarter, WaxingGibbous, FullMoon, WaningGibbous, LastQuarter, WaningCrescent

There are a number of ways that you might use these new properties.
By setting the Home property on an npc which will cause it to wander to that location. By setting Home at different times, you can have your npcs go to different places throughout the day.

You could also have certain conversations that could only be carried out at certain times of the day, or days of the week.
For example, setting the Condition field in an xmldialog entry to

GameTOD>12:00:00 & GameTOD<16:00:00

would restrict its activation to between the times of 12 and 4pm

those are also available to spawners, not just xmldialogs.
 
Thank you for the answer, you led me to the simple way - I've added BCast as the entry with all other spawned creatures and now all works fine :) But if needed to show message on despawn - yes, it's much difficult.
 

ArteGordon

Wanderer
Prohor Meletevich said:
Thank you for the answer, you led me to the simple way - I've added BCast as the entry with all other spawned creatures and now all works fine :) But if needed to show message on despawn - yes, it's much difficult.
you could have a second spawner that just does a BCAST with the TODStart and TODEnd times reversed so that it starts when the other one ends.
 

snicker7

Sorceror
I was just noticing... we have a SETONNEARBY, but why not a GETONNEARBY? I was thinking of doing something today with the spawner but noticed there was no way to check if a user had a certain type of pet that they controlled. Any chance of this being implemented? If so I will hold off on the quest and wait instead of coding an item to just do the specific task =]
 

ArteGordon

Wanderer
snicker7 said:
I was just noticing... we have a SETONNEARBY, but why not a GETONNEARBY? I was thinking of doing something today with the spawner but noticed there was no way to check if a user had a certain type of pet that they controlled. Any chance of this being implemented? If so I will hold off on the quest and wait instead of coding an item to just do the specific task =]
yes, that is on the todo list.
 
Top