Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/lfun/ModifySkill

ModifySkill()
*************


FUNKTION
========

   public varargs void ModifySkill(string sname, mixed val,
                                   int diff, string gilde)


DEFINIERT IN
============

   /std/living/skills.c


ARGUMENTE
=========

   string sname     der zu aendernde Skill
   mixed val        Aenderungswert: int fuer SI_SKILLABILITY, sonst mapping
   int diff         Schwierigkeit (optional: default ist existierendes diff)
   string gilde     Gilde (optional: default ist eigene Gilde)


BESCHREIBUNG
============

   Mit der Methode kann man die Werte eines Skills/Spells veraendern. Dabei
   wird ein Skill immer in ein Mapping umgewandelt (Skills/Spells koennen
   auch einfach nur ihren Skillwert enthalten, diese ist aequivalent zu
   einem Mapping mit ([SI_SKILLABILITY:]).

   Ist 'val' ein int, wird dieses als SI_SKILLABILITY gesetzt. Falls der
   Skill nur ein int war, wird ein 'diff'!=0 als SI_DIFFICULTY gesetzt.

   Ist 'val' ein Mapping, wird dieses zum Skillmapping addiert.



   Etwaige SI_SKILLABILITY-Aenderungen laufen danach noch durch LimitAbility.


BEISPIELE
=========

   // #1a: Lerne einen Spell/Skill (einer Gilde)
   caster->ModifySkill("feuerball", MAX_ABILITY, 100, "abenteurer")
   // #1b: ... oder ...
   caster->ModifySkill("feuerball", ([SI_SKILLABILITY: MAX_ABILITY]), 100,
                       "abenteurer")
   // #1c: ... oder fuer einen Abenteurer ...
   caster->ModifySkill("feuerball", ([SI_SKILLABILITY: MAX_ABILITY]), 100);



   // #2: Setze eine Skill-Funktion fuer einen Kampfskill des Klerus
   this_player()->ModifySkill(FIGHT(WT_CLUB),
                              ([SI_SKILLFUNC: "Keulenkampf",
                                SI_DIFFICULTY: 100]),
                              100, "klerus");

   // #3: Speichere im Skill (also Spieler) eine Option fuer diesen Skill
   // Vorteil: dieser Eintrag wird dem Spell immer uebergeben
   caster->ModifySkill("blitz", (["klerus_spell_option": 2]));

   (Code in /doc/beispiele/testobjekte/modifyskillspell_test)
   // #4: Lerne einen unabhaengigen Spell: ACHTUNG
   // dieser Spell funktioniert nur solange, wie die Closure existiert,
   // SI_SKILLABILITY und Spell bleiben jedoch im Spieler gespeichert (!)
   this_player()->ModifySkill("fnrx",
     ([SI_CLOSURE:
         function int (object caster, string skill, mapping sinf) {
           caster->LearnSkill("fnrx", 1);
           tell_object(caster, "Peng! Dein Skillwert steigt auf "+
                               caster->QuerySkillAbility("fnrx")+".\n");
           return ERFOLG;
         },
       SI_SKILLABILITY: 8432]),
     100,
     "ANY");


SIEHE AUCH
==========


Skills Lernen: LearnSkill, 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

3. Okt 2011 Gloinson


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.