Spawner Keywords

Estimated reading: 13 minutes 77 views

Hier folgt die Liste mit Keywords, wie unter http://www.grimmwold.com/wiki/index.php?title=Spawner angegeben.

Benutzt werden sie im selben Feld, in dem auch Monster/Items die gespawnt werden sollen, eingegeben werden.
Ein paar davon können aber auch in anderen Feldern genutzt werden.
Nach und nach werd ich versuchen zu sortieren, denn einige davon sind sicher nicht funktionsfähig auf SW, da ein paar der Funktionen des XML-Spawners hier deaktiviert sind.
Daher werden sich hier zuerst nur die Informationen finden,die auch im verlinkten wiki zu finden sind, also zögert nicht fleissig zu ergänzen 😉

  • value keywords: RND, RNDBOOL, RNDLIST, RNDSTRLIST, RANDNAME, INC, MUL, MOB, SERIAL, SKILL
  • control keywords: WAITUNTIL, IF, WHILE, and GOTO
  • action keywords: ADD, ANIMATE, ATTACHAI, EQUIP, GIVE, TAKE, TAKEBYTYPE, CAST, SAY, MSG, SENDMSG, BCAST, RESURRECT, POISON, DAMAGE, MUSIC, EFFECT, SOUND, GUMP, DESPAWN, DELETE, UNEQUIP, #EDGE, #XFILL, #YFILL
  • loot keywords: ARMOR, WEAPON, JEWELRY, JARMOR, JWEAPON, SARMOR, SHIELD, LOOT, LOOTPACK, POTION, SCROLL, NECROSCROLL
  • access keywords: GET, GETONTHIS, GETONPARENT, GETFROMFILE, GETONSPAWN, GETONCARRIED, GETONMOB, GETONTRIGMOB, GETONNEARBY, SET, SETONTHIS, SETONPARENT, SETONSPAWN, SETONSPAWNENTRY, SETONCARRIED, SETONMOB, SETONTRIGMOB, PLAYERSINRANGE, TRIGSKILL

Keywords

value Keywords

MOB

MOB kann verwendet werden wenn es um die Eigenschaften eines Mobiles geht. Der Syntax dafuer ist

"/MOB,name/"

und gestattet es damit auf einen NPC zu zeigen (sofern dieser existiert und einen Namen hat, der sonst nirgendwo vorkommt). Die Werte wie die Serial und der Name des MOB werden dann in den entsprechenden Propertie-Einträgen des Spawners eingetragen.

Beispiel: „ogre/combatant/MOB,der tolle Ork“ würde einen Oger spawnen lassen, der sich sofort aufmacht den NPC „der tolle ork“ anzugreifen.

RND

RND kann benutzt werden um zufällige Werte zu generieren und diese Anstatt von Integer-werten einzusetzen. Syntax hierfür ist

"/RND,min,max/"

Beispiel: „ogre/hue/RND,1,500/ADD,0.1/<katana/hue/500/attributes.luck/RND,50,100>“ Dieser Text erstellt uns einen Oger mit einer zufälligen Farbe zwischen 1 und 500. Es besteht außerdem eine 10% Chance darauf, dass er ein blaues Katana droppt, was einen Luckwert zwischen 50 und 100 hat.

RNDBOOL

RNDBOOL

Gibt zufällig true oder false an. Könnte beispielsweise verwendet werden, um Gegner zufällig unsichtbar zu machen.

RNDLIST

RNDLIST,val1,val2,...

RNDLIST kann benutzt werden, um eine zufällige Liste von Zahlen vorzugeben.

RNDSTRLIST

RNDSTRLIST kann benutzt werden, um eine zufällige Wahl aus einer genau vorgegebenen Liste zu treffen. Im Gegensatz zu RND wird nur aus den eingetragenen Werten/Gegenständen gewählt. Syntax hierfür ist

"/{RNDSTRLIST,A,B,C}/"

Beispiel: „humanmale/equip/{RNDSTRLIST,<longsword/hue/1109>,broadsword,dagger}/“ Dieser Text erstellt uns einen Menschen, der entweder mit einem schwarz gefärbten Langschwert, einem Breitschwert oder einem Dolch bewaffnet ist.

Soll nun Dagger häufiger als broadsword ausgewählt werden, wird die Liste einfach solange um „dagger“ erweitert bis die gewünschte Wahrscheinlichkeit erreicht ist.

Beispiel: „humanmale/equip/{RNDSTRLIST,<longsword/hue/1109>,broadsword,dagger,dagger,dagger}/“

RANDNAME

RANDNAME kann genutzt werden, um auf die runUO-Namenslisten zuzugreifen.

Syntax hierfür ist:

„name/{RANDNAME,namelist}“

Listen gibt es, die müssen aber noch aus der names.xml übertragen werden!

SKILL

Mittels SKILL kann man einerseits die Skills eines zu Spawnenden NPC bestimmen, zusätzlich aber auch auftauchende Spieler auf ihre Skills überprüfen. Syntax hierfür ist

"SKILL,skillname"

Beispiel für einen gespawnten NPC: „ogre/SKILL,anatomy/100/SKILL,macing/100“ ←- erstellt einen Oger mit 100 macefighting und 100 anatomy (wozu auch immer er das brauchen sollte)

Beispiel um die Skills eines Spielers zu setzen: „SETONTRIGMOB/SKILL,meditation/120/SKILL,magery/120“ ←- dies würde bei Spielern, die den Spawn auslösen Meditation und Magery auf 120 setzen…aber ich würde euch nicht raten das zu benutzen, caster sind schon imba genug 😉

Beispiel für eine Überprüfung: Bei den Properties des XMLSpawners den Wert „PlayerTriggerprob“ auf beispielsweise „SKILL,blacksmithy>100“ einstellen um den Spawner nur durch Schmiede mit etwas mehr Erfahrung auslösen zu lassen.

TRIGMOB

TRIGMOB kann verwendet werden um auf den Spieler zu deuten, der den Spawn ausgelöst hat. Dadurch ist es möglich die gespawnten NPCs genau diesen Spieler angreifen zu lassen oder sich ihm unterwerfen zu lassen, oder oder oder…

Beispiele:

„ogre/combatant/TRIGMOB“

und

„ogre/name/Slave/controled/true/controlmaster/TRIGMOB“

control Keywords

WAITUNTIL

Wartet bis eine Bedingung erfüllt ist oder eine gewisse, fixe Zeit abgelaufen ist. WAITUNTIL[,duration][,timeout][/condition][/spawngroup] Hinweis: duration ist hier in Minuten angegeben. Sekundenangaben funktionieren hier nicht! Zwar wird in vielen Tutorials davon geredet, dass man dies mit 0.1 etc. angeben kann, dies funktioniert auf SW jedoch nicht. Alternative hierzu wäre ein Kombination aus RefractMin/Max mit Min/MaxDelay

action Keywords

ADD

ADD ermöglicht es Items in die backpacks der gespawnten NPCs einzufügen. Syntax:

"/ADD/itemtype" oder "/ADD,probability/itemtype", bzw. "/ADD,probability/<itemtype/prop1/value/prop2/value...>"

Probability ist hier eine Wahrscheinlichkeit, angegeben mit einer zahl zwischen 1 und 0. Die Werte in den <> sind weitere Itemspezifikationen, welches es ermöglichen auch das gespawnte Item noch weiter anzupassen.

Hierzu mal ein einfaches Beispiel:

„ogre/name/Lord Bleck/ADD,0.3/katana“ erstellt einen Oger mit Namen Lord Bleck und einer 30% Chance ein Katana zu droppen.

Einfach? Gut, kommen wir zu etwas komplizierterem. Wir können das Ganze nämlich mit einer Notiz kombinieren, um dem ganzen ein Questartiges Flair zu verleihen. Das sehe dann etwa so aus:

lich/name/Dark Master/ADD/<simplenote/notestring/My soul will not rest until you return with the Ring of the Elements found on my nemesis, the lich lord Artemis in the dungeons of Ilshenar. Take my sword to aid you./titlestring/The Return of Artemis/name/Quest of Artemis/size/2>/ADD/<longsword/maxdamage/RND,30,70>

So, was wird hier gemacht? Ein Lich mit Namen „Dark Master“ erscheint und hinterlässt nach seinem Tode eine Notiz mit dem angegebenen Text, sowie ein Longsword was einen zufälligen MaxDamage-wert besitzt, der bis zu 70 hochgeht – Autsch.

ANIMATE

Syntax:

ANIMATE,action[,framecount][,repeatcount][,forward true/false][,repeat true/false][delay]

kann zum Beispiel benutzt werden um eine Animation zu einem Mobile hinzuzufügen. Beispiel:

„SETONTRIGMOB/ANIMATE,32,5,1,true,false,0“ würden den betreffenden Spieler dazu bringen sich zu verbeugen.

Benutzt man es im Action-feld eines Dialogs „SETONTHIS/ANIMATE,32,5,1,true,false,0“ bringt es den NPC dazu sich zu verbeugen.

ATTACHAI

Syntax:

ATTACHAI/AIName

Derzeit verfügbare AIs

  • AttackMages,
    • überprüft ob der aktuelle Gegner magier ist und wechselt gegebenenfalls das Ziel
  • AttackRangers
    • überprüft, ob der aktuelle Gegner eine Fernkampfwaffe verwendet und wechselt gegebenenfalls das Ziel
  • CastRandomFireSpells
    • Setzt zufällig einen aggressiven Feuerzauber ein
  • FleeFromCasters
    • Ergreift für 10 Sekunden die Flucht, falls in der Nähe gezaubert wird
  • HideOnLow
    • Versteckt sich falls die eigenen Leben unter 25% fallen
  • HideSelfAndAttackMages
    • Versteckt sich und greift den nächstbesten Magier an

CAST

XMLSpawner können zaubern? Na klar! Mittels CAST können Zauber auf Spieler gewirkt werden. Der Syntax dazu lautet

"CAST,spellname[,arg]" oder auch "CAST,spellnumber[,arg]"

arg steht hier als optionales Attribut, da einige Spells ortsgebunden sind. Standardmäßig wird hier 1 benutzt, ansonsten der Wert von arg, wenn angegeben. Damit kann man dann auf einen bestimmten Punkt relativ zum Zaubernden zeigen. Beim Zauber Polymorph wird arg als bodyvalue interpretiert. Solltet ihr Spells wie Sacredjourney oder Mark, etc. nutzen kommt allerdings ein Zielcursor, diese werden also nicht automatisch ausgeführt. Ach und: es gibt hier keine Delays beim casten, also passt bitte etwas auf, damit ihr die Spieler nicht gleich umbringt 😉 Beispiele: ein heilender Spawner

„CAST,greaterhealspell“

ein Spawner der den Spieler zum Bären macht

„CAST,polymorphspell,212“

ein blitzender Spawner

„CAST,lightningspell“

DELETE

Wird meist mit anderen Keywords verwendet und ist – richtig – zum löschen da. Daher mach ichs hier kurz: Beispiele:

SET,Mystic Sword,longsword/DELETE

löscht das Langschwert mit dem Namen „Mystic Sword“

SETONMOB,SeeYouLater,Balron/DELETE

löscht den Balron mit dem Namen „SeeYouLater“

SETONCARRIED,,Gold/DELETE

löscht das Gold, was der auslösende Spieler bei sich trägt (Irgendwie glaube ich, dass ihr jetzt anfangt zu grinsen^^) Man beachte: sind es mehrere Goldhaufen im Backpack, dann wird immer nur einer gelöscht.

SETONSPAWN,TargetSpawner,2/DELETE

löscht alle Spanws der Untergruppe 2 des Spawners „TargetSpawner“. Es macht also fast das selbe wie DESPAWN, nur dass es alle löscht und nicht nur diejenigen, die mit CLR gekennzeichnet sind

GUMP

Öffnet ein Gump für den auslösenden Spieler. Syntax ist:

GUMP,title,number/text

Standardmäßig gibt es 4 vorgefertigte Gumps, die aber auch erweitert werden können: * GUMP nummer 0 stellt einfach den Text dar. GumpState des Spawners beinhaltet „done“ nach Ausführung. * GUMP nummer 1 zeigt ein Gump mit einer Ja/Nein-Abfrage. GumpState beinhaltet „yes“ oder „no“ nach Ausführung, je nach Auswahl. * GUMP nummer 2 zeigt ein Gump, in welchem man einen Text eingeben kann. Dieser wird dann im GumpState des Spawnersabgelegt. * GUMP nummer 3 zeigt ein Gump mit einer accept/decline-Abfrage. GumpState beinhaltet „accept“ oder „decline“ nach Ausführung, je nach Auswahl.

UNEQUIP

Syntax:

UNEQUIP,layer[,delete]

Mit diesem Befehl kann man Kleidung/Rüstung eines Mobiles ablegen lassen. Normal landet das dann im Backpack, sollte delete dabei stehen dann wird es vernichtet. Beispiele (sind selbst erklärend denke ich):

„SETONTRIGMOB/UNEQUIP,OneHanded“

„banker/UNEQUIP,pants/UNEQUIP,shoes,delete/EQUIP/sandals/SAY/Hey, where are my pants?“

MSG

Ermöglicht es Nachrichten über Spawnenden NPCs/Items zu erzeugen. Syntax ist:

"/MSG/text/" oder auch "/MSG,probability/text/"

Beispiel:

„lich/MSG,.5/All hope is lost/MSG,0.2/you feeble mortal/MSG/hahahahaa“

GIVE

Wird an sich mit dem selben Syntax verwendet wie ADD, allerdings kommt das Item direkt in das Backpack des auslösenden Spielers. * GIVE/itemtype * GIVE,probability/itemtype * GIVE,probability/<itemtype/prop1/value/prop2/value…>

TAKE

Syntax:

"TAKE/itemname" oder auch "TAKE,probability/itemname"

So, was macht es? Im Prinzip durchsucht es alle Taschen es auslösenden Spielers bis es auf das erste Item trifft, dessen Name passt. Dieses wird dann gelöscht, was man auch gut mit GIVE kombinieren kann, um ein Item durch ein anderes zu ersetzen. Auch kann man mittels des quantity-wertes dafür sorgen, dass bei stapelbaren Items nur ein Teil entfernt wird.

TAKEBYTYPE

Syntax:

TAKEBYTYPE,probability,quantity/itemtype

Funktioniert im Prinzip wie TAKE, nur dass das Item hier durch den Typ und nicht durch den Namen angegeben wird. Beispiel:

„TAKEBYTYPE,1,1000/gold“ entfernt 1000 Gold eines Spielers

Hinweis: normalerweise durchsuchen weder TAKE, noch TAKEBYTAPE das Bankfach des Spielers, dies kann man aber durch hinzufügen von „true“ aktivieren:

„TAKE,probability,quantity,true/itemname“ und „TAKEBYTYPE,probability,quantity,true/itemtype“

SET

SET wird dazu benutzt Eigenschaften des Items zu benutzen, welches unter SetItem im Spawner angegeben ist. Beispielsweise kann man damit Türen öffnen lassen wenn andere Bedingungen erfüllt sind (auch wenn ich hier eher EffectController bevorzugen würde, da diese weniger Serverauslastung schlucken)

„SET/locked/false/MSG/the door is magically opened“

Allerdings gibt es auch noch eine Möglichkeit auf ein Item zu ziehlen. Nehmen wir hier mal ein Katana mit dem Namen Murasame.

„SET,Murasame,item/hue/1/name/magische Masamune/“

Damit zeigt man auf ein Item mit dem Namen Murasame und färbt es schwarz und benennt es um.

ABER!!!!

Hier bitte extrem vorsichtig sein. Es wird als Ziel ein Item mit passendem Namen genommen – irgendwo auf der Welt. Also schaut bitte vorher nach, wenn ihr das auf diese Art und Weise verwendet, ob es dieses Item schon gibt. Findmenu ist in diesem Fall euer Freund 😉

SETONTRIGMOB

Dieses Keyword erstellt nichts, kann aber Eigenschaften am auslösenden Spieler verändern. Beispiele:

„SETONTRIGMOB/stam/0/mana/0“ oder auch „SETONTRIGMOB/hidden/true“

Interessante Anwendungen für SET und SETONTRIGMOD sind das momentane Reisesystem. Über die Abfrage welche Items man bei sich trägt könnte man einem Moongate oder einem Teleporter neue Koordinaten zuweisen, oder auch per SETONTROGMOB den Spieler instant auf die gewünschten Koordinaten schicken.

Trotzdem würde ich hier zur Vorsicht raten, da hier bei unbedachter Anwendung großer Schaden entstehen kann.

#EDGE, #XFILL, #YFILL

Diese Keywords können dazu benutzt werden um Spawnorte/richtungen der Gespawnten Items/Mobiles zu bestimmen. Beispiel:

„#EDGE; static,89“ würde um die Spawnrange herum eine Mauer ziehen.

„#XFILL; orc“ würde Orcs entlang den X-Achsen Spawnen, #YFILL macht dann dasselbe für die Y-Achsen

loot Keywords

access Keywords

SETONCARRIED

Ermöglicht es Eigenschaften eines Items zu verändern, was ein Spieler bei sich trägt. Der Syntax dafür ist

SETONCARRIED,itemname/prop/value/prop2/value

Also zum Beispiel: „SETONCARRIED,Ast/hue/1153/name/magischer Stab/

GET

Mit Get können Werte abgefragt werden. Syntax dafür ist

GET,[SERIAL]/prop/value
oder
GET,itemname[,itemtype],property

Damit können XMLSpawner beispielsweise auf Eigenschaften anderer Spawner reagieren.

SET

Mit Set können Werte gesetzt werden.(Überraschung) Syntax dafür ist

SET,[SERIAL]/prop/value

Damit können XMLSpawner die Eigenschaften anderer Spawner setzen.

GETONPARENT, GETONTHIS, SETONPARENT, SETONTHIS

GETONPARENT,property

Diese vier Befehle ermöglichen es Werte abzufragen und zu setzen, was auch irgendwie recht offensichtlich ist. Nützlich können sie allerdings sehr gut sein, zum Beispiel in einem Dialogfenster a la Hallo, mein Name ist {GETONPARENT,name}.

'SETONTHIS‘ erlaubt es Werte des XMLSpawners selbst zu verändern und kann des Weiteren für einen Workaround verwendet werden um auf das Backpack eines gespawnten NPCs zugreifen zu können. Diesen Workaround findet man in der Datenbank.

GETONCARRIED

Mit GETONCARRIED können Werte eines Items an einem Mobile abgefragt werden. Syntax dafür ist

  1. GETONCARRIED,itemname,property
    • Name des Gegenstands und Eigenschaft
  2. GETONCARRIED,itemname[,itemtype],property
    • Name des Gegenstands und Typ des Gegenstand bspw. ArxWeapon und Eigenschaft
  3. GETONCARRIED,itemname[,itemtype,equippedonly],property
    • Name des Gegenstands und Typ des Gegenstands und muss der Gegenstand angelegt sein oder nicht und Eigenschaft

GETONNEARBY

GETONNEARBY,range,name[,type][,searchcontainers],property
or GETONNEARBY,range,name[,type][,searchcontainers],[ATTACHMENT,type,name,property]

Verwendet die Eigenschaft eines etwas in der Nähe. Gibt es mehrere etwas wird das erst beste verwendet.

GETONTRIGMOB

GETONTRIGMOB,property

GETVAR

GETVAR,varname

Sucht nach xmllocalvariable Attachments mit dem varname Namen

GETONGIVEN, GETONTAKEN

GETONGIVEN,property
GETONTAKEN,property

GETONSPAWN

GETONSPAWN[,spawnername],subgroup,property

Holt überprüft eine Eigentschaft eines gespawnten etwas in der angegebenen Subgroup des optional angegebenen Spawners.

GETFROMFILE

GETFROMFILE,filename

Holt den Text der angegebenen Datei

GETACCOUNTTAG

GETACCOUNTTAG,tagname

Holt den Wert des angegebenen Tags (sprich „Täääg“).

AMOUNTCARRIED

AMOUNTCARRIED,itemtype

Überprüft wieviele Items vom angegebenen Typ im Rucksack des Trigmobs sind.

PLAYERSINRANGE

PLAYERSINRANGE,range

Gibt die Zahl der Spieler in Reichweite range zurück.

TRIGSKILL

TRIGSKILL,name|value|cap|base

Gibt den Namen oder den Wert(value) oder die Grenze(cap) oder den Basiswert(base) des Triggerskills zurück.

Share this Doc

Spawner Keywords

Or copy link

CONTENTS