Dokumentation zu: AddAbility(L)

HR Image


FUNKTION:
        int AddAbility(string ability, string descr, int beginvalue,
                       int beginlevel,int costs, int factor, string stat,
                       int delay, mixed magic, int type, string file,
                       string item, mixed verben, int flags, int spelllevel)

DEFINIERT IN:
        /secure/skillmaster.c

BESCHREIBUNG:
        Meldet die Fertigkeit 'ability' mit den angegeben Parametern
        beim Skillmaster an und macht ihn damit verfuegbar.

        An- und Abmeldung von Fertigkeiten ist erst ab Magierlevel 40
        (LORD) oder als ROOT moeglich (preload-files).

ARGUMENTE:
        ability    - Name der Fertigkeit
        descr      - kurze Beschreibung der Fertigkeit
        beginvalue - Startwert in Promille
        beginlevel - Level, ab dem die Fertigkeit benutzt werden darf, wird
                     aber vom Skillmaster nicht gecheckt und ist also eher
                     eine Zusatzinfo, fuer wen der Spruch gedacht ist. Das
                     koennen zum Beispiel die Gilden selber auswaehlen.
        costs      - die Zahl der Magiepunkte, die bei der Ausfuehrung
                     abgezogen werden
        factor     - Bei Skills, Spells:
                     Faktor zum Veraendern der Lernrate (10=normal). Ist
                     der Faktor zu niedrig, dass der Spieler jemals etwas
                     lernen kann, erhaelt er eine Meldung. Diese Meldung
                     kann unterdrueckt werden, indem man den Faktor auf
                     0 setzt. ABER: Dann muss in jedem Falle das Verbessern
                     des Spruchs vom Spellbook erledigt werden, da der Spieler
                     den Spruch sonst nie verbessern kann!
                     Bei Combat-Skills:
                     Bestimmt wie hoch der Schaden/Bonus des Skills ist
        stat       - Bei Skills, Spells:
                     Eigenschaft, die beim Berechnen der Lernrate benutzt
                     wird (A_INT, A_DEX, A_STR, A_CON)
                     Bei Combat-Skills(Attack):
                     Eigenschaft, die beim Berechnen des Schadens/Bonus
                     von Bedeutung ist
        delay      - Zeit zum Rasten bis erneuter Ausfuehrung in Sekunden.
                     Bei Combat-Skills bedeutungslos.
        magic      - Art der Magie bei Combat-Skills, d.h. soll der Skill
                     magischen Schaden zufuegen oder davor schuetzen.
                     Derzeit NUR String, Erweiterung auf Array vorgesehen.
                     Bei normalen Skills/Spells bedeutungslos! -> ""
        type       - Art der Fertigkeit. Sind als Konstanten in
                     /sys/living/skills.h definiert:
                     SM_SPELL  - 0 : normaler Spell (ueber Funktion definiert)
                     SM_SKILL  - 1 : normaler Skill (ueber Funktion definiert)
                     SM_ATTACK - 3 : Combat-Skill - automatisch (Attack)
                     SM_DEFEND - 4 : Combat-Skill - automatisch (Defense)
                     SM_COMBAT_SPELL - 2 : frueher Combat-Spells (obsolete)
        file       - Name des Objects, in dem die Funktion (_cast_) fuer die
                     Fertigkeit definiert ist. Bei Spells/Skills notwendig!
                     Bei Combat-Skills optional! -> ""
        item       - Bei Combat-Skills(Attack):
                     Ein WEAPON_TYPE (Waffe dieses Typs muss gezueckt sein,
                     damit der Skill angewandt werden kann). Wird ein leerer
                     String angegeben (""), kann der Skill immer angewendet
                     werden.
                     Bei Combat-Skills(Defend):
                     Ein ARMOUR_TYPE (Ruestung dieses Typs muss getragen
                     werden, und die Wirksamkeit ist von P_AC des Items
                     abhaengig). Wird ein leerer String oder AT_MISC
                     angegeben, wird der Statwert von 'stat' des Livings
                     zur Berechnung des Schadens genommen.
                     Bei allen anderen Ruestungstypen, spielt 'stat' keine
                     Rolle. Bei anderen Fertigkeiten bedeutungslos! -> ""
        verben     - Array aus Strings mit Verben, die _STATT_ dem normalen
                     Skill oder Spellname verwendet werden sollen.
                     Ansonsten ({}) oder "". Bei Combat-Skills bedeutungslos!
        flags      - Flags, die das Verhalten der Fertigkeit beeinflussen.
                     Die Flags koennen ODER-verknuepft werden.
                     (Bsp: Flag1|Flag2)
                     SM_F_POLL - 1: fuer normale Skills und Spells.
                       Wenn gesetzt ist, handelt es sich um eine Fertigkeit,
                       die eine Konzentrationsphase benoetigt. Es wird daher
                       vor der Ausfuehrung im Skill-Objekt eine Funktion:
                       int _poll_<ability>(object pl, mixed args, int count)
                       aufgerufen. Diese Funktion kann die Argumente ueber-
                       pruefen, Meldungen ausgeben usw. Wenn der
                       Rueckgabewert x>0 ist, erfolgt der naechste Aufruf in
                       x Sekunden. Ist x==0, wird _cast_<ability> aufgerufen.
                       Ist x<0, wird die Ausfuehrung abgebrochen.
                     SM_F_GHOST - 2: Fertigkeiten die mit diesem Flag
                       markiert sind, koennen auch als Geist ausgefuehrt
                       werden! Standardmaessig koennen Livings als Geist
                       keinerlei Skill/Spell-Aktionen durchfuehren.
        spelllevel - Es wird das Magielevel eines Zauberspruches (Spell)
                     gesetzt. Es gibt 10 verschiedene Spell-Level. (1-10)
                     Level 1 ist das Minimum fuer jeden Spell. Level 10
                     soll die absolute Ausnahme sein! Fuer (Combat-)Skills
                     muss dieser Wert immer 0 sein. Das Spelllevel dient zur
                     Auswertung der Wahrscheinlichkeit, dass ein Spruch in
                     einem magiegeschuetztem Raum funktioniert. Mehr Infos
                     dazu in der Manpage P_NOMAGIC.

RÜCKGABEWERTE:
         1  - Die Fertigkeit wurde erfolgreich angemeldet.
        <1  - Aufgrund falscher Parameter konnte die Fertigkeit nicht
              angemeldet werden. Der Returnwert entspricht dann
              folgenden Fehler-Codes:
         0  - Sicherheitsverletzung. (IS_LORD & ROOT only)
        -1  - Der Name der Fertigkeit ist zu kurz. (min. 3 Zeichen)
        -2  - Eine Fertigkeit dieses Namens ist bereits angemeldet.
        -3  - Beschreibung ist zu kurz. (min. 10 Zeichen)
        -4  - Beginnwert ist negativ oder zu hoch. (max. SM_MAX_BEGINVALUE)
        -5  - BeginnLevel ist negativ oder zu hoch. (max. MUD_MAX_LEVEL)
        -6  - Kosten sind negativ oder zu hoch. (max. SM_MAX_COSTS)
        -7  - Kein gueltiges 'stat'. (Bsp: A_INT, A_DEX, usw.)
        -8  - Delay negativ oder zu hoch. (max. SM_MAX_DELAY)
        -9  - Parameter 'magic' ist kein String. (Combat-Skill)
        -10 - Ungueltige Magie-Art in 'magic'. (Combat-Skill)
        -11 - Kein gueltiger Typ. (siehe oben)
        -12 - Negativer Flagwert.
        -13 - Kein File-Name angegeben. (Spell/Skill)
        -14 - Konnte das Objekt 'file' nicht laden/finden. (Spell/Skill)
        -15 - _cast_<ability> exisitiert nicht in 'file'. (Spell/Skill)
        -16 - Skill/Spell Factor negativ oder zu hoch. (max SM_MAX_FACTOR1)
        -17 - Konnte das Objekt 'file' nicht laden/finden. (Combat-Skill)
        -18 - _cast_<ability> exisitiert nicht in 'file'. (Combat-Skill)
        -19 - Combat-Skill Beginnwert >0.
        -20 - Combat-Skill Costs >0.
        -21 - Combat-Skill Factor kleiner 1 oder zu hoch. (max SM_MAX_FACTOR2)
        -22 - Combat-Skill Delay >0.
        -23 - Kein gueltiger Waffentyp. (Attack-Skill)
        -24 - Kein gueltiger Ruestungstyp. (Defend-Skill)
        -25 - Parameter 'verben' muss Typ string oder *string sein.
        -26 - Unzulaessige Werte im Array 'verben'. (nur Strings)
        -27 - Es wurde ein ungueltiges Spell-Level ( < 0 oder > 10 ) angegeben
        -28 - Es wurde fuer einen Spell kein Spelllevel angegeben (mind. 1)
        -29 - Es wurde fuer einen (Combat-)Skill ein Spelllevel angegeben

BEISPIEL:
        #include <properties.h>

        SM->AddAbility("gewitter", "Du beschwoerst ein Gewitter herauf.",
              100, 18, 100, 5, A_INT, 0, "", SM_SPELL, "/obj/spellbook",
              "", "", SM_F_POLL, 1);

SIEHE AUCH:
        skillmaster(SEC), abilities.doc(WL)


Start » Magierhandbuch » Docu » Lfun » AddAbility Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!