Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//props/skill_info_listeskill_info_liste
****************
SI_*
====
DEFINIERT IN
============
/sys/newskills.h
BESCHREIBUNG
============
Die folgende Liste der SI-Typen ist grob nach Gueltigkeit fuer Skills
und Spells sortiert.
Anwendungsorte der SI_-Werte sind:
- /std/living/combat und von dort gerufene Skills (Kampf)
- /std/gilden_ob und in Gilden lernbare Spells/Skills
- /std/spellbook und von Spellbooks ausgefuehrte Spells
- /std/living/life und von dort gerufene Skills (Alkohol)
- /std/shells/* und entsprechende Rassenskills
Im Skillsystem unter /std/living/skills wird vor auf Informationen
aus dem Teil #1 Ruecksicht genommen. Einige dieser Werte
werden auch permanent im Spieler gespeichert (wie zB die
SI_SKILLABILITY).
AKTUELLE LISTE: (5. Oktober 2011)
#1 Skills und Spells:
SI_SKILLFUNC: string
Beinhaltet den Namen der Methode, die die eigentliche
Funktionalitaet des Skills/Spells implementiert. Falls nicht
angegeben, wird bei Spells durch UseSpell() das Verb, das der
Spieler eingegeben hat, als Spell-Methodenname angenommen. Im
Gildenobjekt kann hier abweichend von Spell-Namen stehen, wie
die Spellfunktion im Spellbook heisst.
SI_CLOSURE: closure
Optimiert den Zugriff fuer den internen Gebrauch, indem die
gefundene Spell/Skillfunktion darin direkt gespeichert wird
und so lange gueltig ist, bis das/die Objekt(e)/Closure(s)
zerstoert sind. Kann theoretisch auch fuer externe Skills
durch (Autoload-)Objekte benutzt werden.
SI_SKILLABILITY: int
Faehigkeit, den Spell/Skill zu benutzen. Normal ist von
-MAX_ABILITY bis MAX_ABILITY.
SI_SKILLDAMAGE_TYPE: string*
Art des Schadens eines Angriffs: siehe Schadenstypen in
/sys/combat.h
SI_SKILLDAMAGE_MSG: string
Meldung anstatt der Waffe oder Haende-Meldung.
SI_SKILLDAMAGE_MSG2: string
Meldung anstatt der Waffe oder Haende-Meldung fuer den Raum.
SI_INHERIT: string
Enthaelt den Namen des Skills/Spells, von dem geerbt wird.
Das bedeutet einerseits, das LearnSkill() auch diesen
uebergeordneten Skill beeinflusst und andererseits, dass bei
Skills auch dieser uebergeordnete Skill im Rahmen einer
Skill-Anwendung gerufen wird.
SI_DIFFICULTY: int / [Spells: mixed]
Schwierigkeit eines Skills/Spells. Beeinflusst die jeweils
oberen Schranken fuer das Lernen eines Skills/Spells in
Abhaengigkeit von Spielerlevel. Wenn in einem Spell-Info-
Mapping kein Wert steht wird bei Spells automatisch
SI_SPELLCOST genommen, der Wert im Spell-Info-Mapping geht
beim Lernen aber immer vor Parametern.
FACTOR(SI_DIFFICULTY): int / mixed OFFSET(SI_DIFFICULTY): int /
mixed
Nur fuer Spellbooks/Spells. Der mixed-Parameter kann
Funktionen enthalten. Siehe unten bei SI_SPELLCOST.
SI_LASTLIGHT: int
Zeitpunkt, bis wann der Standardskills SK_NIGHTVISION den
Spieler sehen laesst.
SI_TESTFLAG: int
Wenn gesetzt, dann soll der Skill nicht genutzt, sondern nur
getestet werden, ob er erfolgreich waere. Entspricht also in
etwa dem Aufruf von SpellSuccess() in Spellbooks, wird aber
bei UseSkill() als Skill-Parameter uebergeben. Der Skill muss
entsprechend implementiert sein!
SI_GUILD: string
Angabe der Gilde, aus der der Skill stammt. Sinnvoll, wenn
der Skill nicht aus der aktuellen P_GUILD stammt. Fuer
generelle Skills/Spells zB waere das "ANY". Gilt nicht fuer
Spells!
SI_ENEMY: object
Aktuelles Feindesobjekt, wird bei Skill-Anwendung aus dem
Kampf heraus von std/living/combat.c an den Skill uebergeben.
Beispiel: Standardwaffenskills, SK_MAGIC_DEFENSE,
SK_MAGIC_ATTACK,
SK_TWOHANDED, SK_SPELL_DEFEND, SK_INFORM_DEFEND und
SK_DEFEND_OTHER.
SI_FRIEND: object
Zu verteidigendes Freundesobjekt, wird bei Skill-Anwendung
aus dem Kampf heraus von std/living/combat.c an den Skill
uebergeben. Beispiele: SK_INFORM_DEFEND und SK_DEFEND_OTHER.
SI_MAGIC_TYPE: string*
Enthaelt ein Array der Magietypen, die zum Einsatz kommen.
Die Angabe geschieht zB im Spellbook und beeinflusst
SpellDefend().
SI_LAST_USE: int (eventuell obsolet)
Letzte Nutzung des Skills.
SI_LEARN_PROB: int (eventuell obsolet)
Lernwahrscheinlichkeit.
SI_SKILLDURATION: int
Dauer des Skills/Spells. Momentan nicht allzu verbreitet in
Nutzung.
#2 nur fuer Spells:
SI_SPELLBOOK: string
Kann direkt das enthaltende Spellbook fuer einen Spell
enthalten.
SM_RACE: mapping
Mapping, das als Key die Rasse und als Value ein Mapping X
enthaelt. Dieses Mapping X wird direkt zu sinfo hinzugefuegt
und ueberschreibt damit bei Bedarf Defaultwerte durch
rassenspezifische Werte.
SI_SPELLCOST: int / mixed FACTOR(SI_SPELLCOST): int / mixed
OFFSET(SI_SPELLCOST): int / mixed
Beinhaltet die Werte, die fuer die Berechnung der Spellkosten
zustaendig sind. Dabei gilt: Realkosten = OFFSET(COST) +
(COST * FACTOR(COST))/100 Die einzelnen Eintraege koennen
anstatt eines fixen Wertes auch den Verweis auch eine
Funktion in Form von Closure/Methodenname/Array mit
Objekt/Objektname und Methodenname enthalten. Siehe dazu auch
execute_anything().
SI_TIME_MSG: string
Meldung, die dem Spieler mitteilt, dass er noch nicht wieder
einen Spell casten kann. Falls dieser Eintrag nicht gesetzt
ist, wird ein Standardtext ausgegeben.
SI_SP_LOW_MSG: string
Meldung, die dem Spieler mitteilt, dass er zu wenige
Konzentrationspunkte besitzt, um den Spell zu casten. Falls
dieser Eintrag nicht gesetzt ist, wird ein Standardtext
ausgegeben.
SI_PREPARE_MSG: string
Meldung, die dem Spieler ausgegeben werden soll, wenn er
einen Spell vorbereitet. Ansonsten wird ein Standardtext
ausgegeben.
SI_PREPARE_BUSY_MSG: string
Meldung, die dem Spieler ausgegeben werden soll, wenn er
schon diesen Spell vorbereitet. Ansonsten wird ein
Standardtext ausgegeben.
SI_PREPARE_ABORT_MSG: string
Meldung, die dem Spieler ausgegeben werden soll, wenn er die
Vorbereitung dieses Spells durch einen anderen Spell
unterbricht. Ansonsten wird ein Standardtext ausgegeben.
SI_NOMAGIC: int
Wert zwischen 0 und 100 (oder mehr), der gegen die P_NOMAGIC-
Wirkung eines Raumes wirkt. Je hoeher der Wert ist, desto
unwahrscheinlicher ist es, dass ein Raum den Spell durch
Antimagie stoert. Ein Raum sollte nur Werte zwischen 0 und
100 gesetzt haben. Ist der Wert des Raums groesser als der
hier angegeben, dann blockiert er Magie mit einer gewissen
eben seiner angegebenen Wahrscheinlichkeit.
SI_NOMAGIC_MSG: string
Meldung, die bei Fehlschlag durch P_NOMAGIC des Raumes
ausgegeben wird. Ansonsten wird ein Standardtext ausgegeben.
SI_SPELLFATIGUE: int / mixed FACTOR(SI_SPELLFATIGUE): int /
mixed OFFSET(SI_SPELLFATIGUE): int / mixed
Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt
werden. Die Berechnung und die moeglichen Angaben (Closure
etc.) sind identisch zu SI_SPELLCOST. Das Spellbook gibt bei
Nicht-Wieder-Bereitschaft SI_TIME_MSG aus.
SI_X_SPELLFATIGUE: mapping mit ([string key: int val])
Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt
werden. Spellbook-Casten: Mapping wird durch Aufruf von
CheckSpellFatigue() am Caster gefiltert. Nur wenn das
resultierende Mapping leer ist (kein hat einen
gueltigen Fatigue-Eintrag), ist Spell castbar, sonst Ausgabe
von SI_TIME_MSG. Nach Spellbook-Casten: Setzen der Fatigue
fuer alle > 0 mit .
SI_SKILLLEARN: int / mixed FACTOR(SI_SKILLLEARN): int / mixed
OFFSET(SI_SKILLLEARN): int / mixed
Werte, die fuer die Berechnung der Lerngeschwindigkeit
benutzt werden, normalerweise pro A_INT/2 je 0.01% (also 1
von MAX_ABILITY). Die Berechnung und die moeglichen Angaben
(Closure etc.) sind identisch zu SI_SPELLCOST.
SI_LEARN_ATTRIBUTE: mapping
Mapping, welches die Attribute, nach denen gelernt werden
soll als Keys enthaelt. Der Value legt die Gewichtung fest,
denn bei mehreren Attributen wird ein Mittelwert gebildet.
Der Normalfall entspraeche ([A_INT: 1]) fuer
SI_LEARN_ATTRIBUTE.
SI_NO_LEARN
Wenn man (temporaer!) nicht will, dass dieser Skill gelernt
wird. Muss von den Spellbooks beachtet werden. Sollte niemals
im Spieler abgespeichert werden. Oder permanent in
Gilde/Spellbook gesetzt sein. Sondern im Laufe einesr Nutzung
in der jew. Kopie von sinfo gesetzt werden, die gerade
genutzt wird.
SI_SKILLARG: string Beinhaltet den Text, den der Spieler nach
dem Spellkommando eingegeben hat. Z.B. stuende bei
"krallenschlag ork 2" der Text "ork 2" im Parameter.
SI_SKILLRESTR_USE: mixed
Einschraenkungen fuer das Nutzen des Spells. Wird
normalerweise direkt im Spellbook fuer den Spell eingetragen.
Die einzelnen Moeglichkeiten werden in der manpage zu
"check_restrictions" erlaeutert.
SI_SKILLRESTR_LEARN: mixed
Einschraenkungen fuer das Lernen des Spells. Wird
normalerweise direkt im Gildenobjekt fuer den Spell
eingetragen. Die einzelnen Moeglichkeiten werden in der
manpage zu "check_restrictions" erlaeutert.
SI_SKILLINFO: string SI_SKILLINFO_LONG: string
Beschreibung des Spells. Wird im Gildenobjekt eingetragen und
SI_SKILLINFO wird von SkillListe angezeigt.
SI_SKILLDAMAGE: int / mixed FACTOR(SI_SKILLDAMAGE): int / mixed
OFFSET(SI_SKILLDAMAGE): int / mixed
Werte, die fuer die Schadenshoehenberechnung des Spells
benutzt werden (random ueber den Gesamtwert normalerweise).
Die Berechnung und die moeglichen Angaben (Closure etc.) sind
identisch zu SI_SPELLCOST.
SI_SKILLDAMAGE_BY_ROW
Ein Mapping mit Boni fuer den Angriff aus bestimmten
Kampfreihen. Funktioniert nur bei Verwendung von
TryDefaultAttackSpell-Spells aus dem Spellbook. Der Key steht
fuer eine bestimmte Reihe, sein Wert fuer den randomisierten
Bonus fuer Lebewesen, die aus dieser Reihe casten.
OFFSET(SI_SKILLDAMAGE_BY_ROW)
Ein Mapping mit fixem Wert fuer Row-Boni im Kampf.
Beispiel: AddSpell("feuerball", 20,
([SI_SKILLDAMAGE:50,
OFFSET(SI_SKILLDAMAGE):100,
SI_SKILLDAMAGE_BY_ROW:([2:40,3:20}),
OFFSET(SI_SKILLDAMAGE_BY_ROW):([2:20]), ...
gibt
Reihe 1: random(50)+100; Reihe 2:
random(50)+100+random(40)+20 Reihe 3:
random(50)+100+random(20)
ACHTUNG: Hier gilt nicht die selbe Struktur wie bei
SI_SPELLCOST!
SI_SPELL: mapping
Dieser Eintrag enthaelt verschiedene Unterwerte, die den
Spell gerade fuer Angriffs-Spells genauer beschreiben. Siehe
Defend() fuer eine Beschreibung der verschiedenen Eintraege
(die so auch in das Spellbook uebernommen werden koennen).
SI_COLLATERAL_DAMAGE: int
Hiermit kann man einen Prozentwert von SI_SKILLDAMAGE
(inklusive Offsets und Factor) fuer Kollateralschaden an
Freunden im definierten Bereich eines Flaechenspells
(TryGlobalAttackSpell()) angeben. 10 bedeutet bei
OFFSET(SI_SKILLDAMAGE)=100 zB 10% von 100 = 10 = 1 LP an mit
reduce_hit_points() verursachtem Schaden.
SI_NUMBER_ENEMIES, SI_NUMBER_FRIENDS: int
Wird von TryGlobalAttackSpell() im Spell gesetzt und enthaelt
die Anzahl der im angegebenen Bereich befindlichen Feinde und
Freunde. Ist dementsprechend von informativem Nutzen fuer den
Angegriffenen und das Spellbook NACH Aufruf von
TryGlobalAttackSpell().
SI_DISTANCE, SI_WIDTH, SI_DEPTH: int
Limitiert die Entfernung, Tiefen und Breite der Wirkung eines
TryGlobalAttackSpell()
SI_SKILLHEAL: int
Konvention fuer Spells im Spellbook, dort den Heilwert zu
hinterlegen, hat keine Auswirkungen unter /std/.
SI_USR: mixed
Fuer selbst definierte Infos, spellbookabhaengig.
SI_PREPARE_TIME: int
Dauer der Zeit fuer zu praeparierende Spells.
SI_ATTACK_BUSY_MSG: string
Meldung, die dem Spieler mitteilt, dass er schon zu
beschaeftigt mit einem Angriff ist, um einen Spell zu casten.
Falls dieser Eintrag nicht gesetzt ist, wird ein
Standardtext ausgegeben.
SI_NO_ATTACK_BUSY: int
Enthaelt als Flag NO_ATTACK_BUSY_QUERY wenn der Spell NICHT
wie eine Spezialwaffe die Aktionen einschraenkt. Siehe
P_ATTACK_BUSY.
SI_ATTACK_BUSY_AMOUNT: int
Menge des P_ATTACK_BUSY fuer diesen Spell. Falls dieser Wert
nicht gesetzt ist, aber auch SI_NO_ATTACK_BUSY nicht mit
NO_ATTACK_BUSY_QUERY ausgezeichnet ist wird 1 angenommen.
SIEHE AUCH
==========
Skills Lernen: LearnSkill, ModifySkill, LimitAbility
* Nutzung: UseSpell, UseSkill
* Abfragen: QuerySkill, QuerySkillAbility
* Modifikation: ModifySkillAttribute, QuerySkillAttribute,
QuerySkillAttributeModifier, RemoveSkillAttributeModifier
* Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
* sonstig: spruchermuedung
* Properties: P_NEWSKILLS
Spellbook: UseSpell, Learn, SpellSuccess
Gilden: gilden-doku
Kampf: Defend
7. Nov 2012 Gloinson
zurück zur Übersicht