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 v2.22

Status
Not open for further replies.

ArteGordon

Wanderer
just a quick note about the home function. It is possible for a determined user to attempt to use the go and send options on spawns that were generated by spawners in containers, and have them bounced off to a remote even invalid location on the map.
The conditions would be somewhat obscure and the user attempting this somewhat disturbed, but nonetheless is it still possible, either by targeting something in a container (duh), or by picking up a spawner that has spawns already attached to it, and then targeting them (more plausible).
I have handled those conditions but it is not in the code I uploaded (sorry, brain was groggy at 5am) and I didnt feel it was critical enough to make another quick update. Even without the update, 99.99% of the time attempts to do those things will be blocked, but as I said, a determined user....
If you are that user, or are worried that you have that user sitting next to you, drinking beer, and working on your computer, be assured it will be in the next version update.
 

Knightshade

Wanderer
Awesome script ArteGordon! I will definitely check this out. I know this may be a longshot, but I am curious if the Spawn Editor (the program) that comes with Bobsmart's package can be updated to reflect all your wonderful changes?

I'm not sure if the sourcecode for the editor is available, or if it is even needed, but if it's at all possible, it would certainly be very helpful to those of us who use the program.

Thanks again for all your hard work!
 

Fury

Wanderer
i was curious of that myself.. at one time i remember bobsmart offering the source but hes stopped most of his participation here so who knows =/
 

ArteGordon

Wanderer
Well, all I can say is that the spawneditor works with it and the xml it produces. You dont have access to the additional features unfortunately.
There are some things that trip it up slightly such as container-held spawners that it doesnt handle exactly right. It uses the actual spawner coordinates (that are in container coordinates) when displaying spawner locations, instead of the xml stored values (that are in world coordinates). Interestingly, when you select the spawner, it still uses the xml to place you there, so it really only affects the little dot displays of the spawner locs, not that big a deal.

If you just use it for examining existing spawns, or making basic spawner distributions and xml files without the added features, then it is fine.

Modifying the editor would require bob and his source. It probably is not a big deal given that I have maintained full backward compatibility with the previous xmlspawner features, so things have just been added, not changed (with the exception of the container stuff), but he would definitely have to do it.

thanks for the feedback, and suggestions are always welcome.
 

Tylius

Sorceror
The source code for the editor was released by bobsmart, I would upload it for everyone, but I had a bad incident with my harddrive and lost my archive of RunUO things (along with everything else I had stored away)
 

ArteGordon

Wanderer
Right now I'm working on two new features.
One is player proximity triggered spawning, with a new proximityrange parameter. That is working. Also has user selectable sounds activated upon triggering.

The other is a bit more fun, and that is player-item triggered spawning. That is the player must be nearby and also have a specific item in his pack to trigger the spawn.
This is an easy way of setting up a variety of easily ingame configured chainable item/fetch/kill type quests. For instance, have mob 1 drop item A which is required to trigger mob 2 which drops item B etc.
You could also have a caretaker mob drop an item, and that item triggered a key item spawn in a chest nearby and that item was required to trigger a boss mob, etc.
Those sorts of things.
It seems pretty easy to set up... of course, I just started so there might be some unexpected hitches.

I will be testing for items by name. The reason for this is that it would allow for more dynamic events, since the spawners could be configured on the fly ingame, and items could be named on the fly ingame as well.
Also, names can be added to custom scripted item types so it doesnt really limit using them as triggers.
I am also looking at being able to specify names for items/mobs in the spawn list itself, something like

key "The green key"
or
Ogre "The bartender"

These would then spawn with the assigned names.
This would fit in well with the named item triggering idea, and also would make for more interesting customized spawning.

Any thoughts are welcome.
 

LuxoR

Sorceror
If you guys want the source to the Spawn editor, It's still posted on my site..

http://www.santiagogaming.com/files/RunUO/SpawnEditor.zip
 
S

sp000n

Guest
Good script, thanks! The fellows at Orbsydia are also working on an area spawn manager, btw.
 

ArteGordon

Wanderer
just added the new version 2.04.
Primary additions are player proximity triggered spawning and time of day dependent spawning.

more details below.

- added proximity range sensing for activating and inactivating the spawner. More precisely it is movement of players within the proximity range that triggers the spawner. ProximityRange sensing is off by default (value is -1) by setting it, spawner will be activited when a playermobile moves in range. After activation, delay, duration, spawnrange, spawn probability, and other settings apply as usual.

- added the property proximitysound which allows you to set the sound played when a proximity triggered spawner is tripped by a player (a click and sparkle sound by default, telekinesis spell effect I believe).

- added min/max refractory period for proximity triggered spawning. This is the period following triggering during which the spawn cannot be proximity triggered again. e.g. setting proximityrange to 2, min/maxdelay to 3 seconds, and min/maxrefract to 10 mins, will create a spawn that is triggered by a player within 2 squares of the spawner, with the spawn appearing 3 seconds after triggering, and cannot be retriggered for 10 mins.

- added time of day properties that let you specify the period of the day during which spawns can occur. Time of day (TOD) is specified in 24 hour format. Note, if TOD start is later that TOD end, this indicates that the interval spans midnight. e.g TODStart=22:00 TODEnd=5:00 will enable spawns between 10pm and 5am every day. TOD windowing also applies to proximity-triggered spawns, so they can only be triggered during the enabled period. Spawns will be removed when outside of the TOD window.

- added some new buttons to the spawner gump. an on/off indicator button, a reset button (delete all spawns, reset timers, stop)

- enabled spawning items in stacks using the stackamount variable as a quantity indicator. This replaces the earlier team variable hack for specifying amount.
 

Fury

Wanderer
very good ideas/additions... run with it.. i may have to write a convert spawner to xmlspawner script soon if it gets any better =)
 

ArteGordon

Wanderer
The spawn triggering when a player is in proximity while also carrying a specified named item is working.
Also have the spawn naming feature working.
Dealing with the object list serialization to maintain backward compatibility. Since the object list is already serialized, I have to serialize the names separately. Probably not a problem, but havent done it yet.

might want to give it a good pounding before writing that converter ;)
 

ArteGordon

Wanderer
ok, Im extending the simple idea of just specifying an item/mobs name on spawn by using a commandline like specification in which you could modify any of its props. I am deciding on the specification format. This would go into the spawner text entry window where you normally just list the spawn type. Kind of like scripting new items/mobs on the fly.

e.g.
instead of just specifying

ogre

you would put

ogre/name The Butcher/hue 500/str 170/maxdamage 50

or

katana/name ShardMyth/mindamage 30/maxdamage 70/slayer repond

downside is it requires a big text entry area so Im extending the spawner gump a bit. Upside is that I think this solves my serialization problem for free, and stays completely backward compatible with the old spawn specification format since it is basically just a longer type string. Oh, that and I can think of lots of fun stuff you can do with it.
 

Cmonkey123

Wanderer
You could just have something like a props window for each of the spawn on the spawn list; you press a button and something like the props window pops up, allowing you to edit anything about the spawn.

Just my two cents :)
 
Status
Not open for further replies.
Top