MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | Waffenskills im MorgenGrauen |
| 2 | ---------------------------- |
| 3 | |
| 4 | Das Skillsystem des MGs ist recht komplex. Hier nur ein paar Bemeerkungen |
| 5 | zu den Waffenskills. |
| 6 | |
| 7 | Es gibt 2 Sorten von Waffenskills: |
| 8 | |
| 9 | * allgemeine Waffenskills. Diese sind in die Shell eingebunden. |
| 10 | * Gildenspezifische Skills. Diese sind in der entsprechenden Gilde definiert. |
| 11 | |
| 12 | Die Skills werden in einer Property im Spieler gespeichert (P_NEWSKILLS). Es |
| 13 | handelt es sich um ein mapping, das diesen Aufbau hat: |
| 14 | |
| 15 | (["ANY":([ANYSKILLS]), |
| 16 | "gilde1":([SKILLS_VON_GILDE_1]), |
| 17 | "gilde2":([SKILLS_VON_GILDE_2]), |
| 18 | ...]) |
| 19 | |
| 20 | Mit Query(P_NEWSKILLS) erhaelt man das gesamte Mapping. |
| 21 | |
| 22 | Mit QueryProp(P_NEWSKILLS) erhaelt man NUR DIE SKILLS DER AKTUELLEN GILDE! |
| 23 | Das heisst, im obigen Beispiel, wenn der Spieler in gilde1 ist, ist |
| 24 | der Returnwert SKILLS_VON_GILDE_1. |
| 25 | |
| 26 | Sprich: Allgemeine Skills, wie allgemeine Waffenskills, stehen in diesem |
| 27 | Mapping nicht drin! Ebenso wie z.B. der entgifte-Spell aus der |
| 28 | Duesterwaldquest (wohl aber der der Kleriker, wenn man einer ist). |
| 29 | |
| 30 | Mit QuerySkill("skillname") kann man einen Skill abfragen. Dabei wird, wenn |
| 31 | kein Skill unter diesem Namen in der aktuellen Gilde eingetragen ist, ein |
| 32 | eventuell vorhandener ANY-Skill zurueckgegeben. Daher wird z.B. bei einem |
| 33 | Abenteurer bei QueryProp(P_NEWSKILLS) der Schwertwaffenskill nicht |
| 34 | angezeigt, wohl aber bei einem QuerySkill(FIGHT(WT_SWORD)). |
| 35 | |
| 36 | Prioritaet hat immer der Skill der Gilde, wenn er vorhanden ist. |
| 37 | |
| 38 | Man kann auch Skills in der Gilde unterdruecken. Dies geht ueber die Poperty |
| 39 | P_GUILD_DEACTIVATE_SKILLS. Diese Skills werden nicht per se unterdrueckt, |
| 40 | sondern nur die entsprechenden ANY-Skills. |
| 41 | |
| 42 | Sprich: Es sei A ein Abenteurer. |
| 43 | |
| 44 | xcall A->QuerySkill(FIGHT(WT_SWORD)) |
| 45 | |
| 46 | mag folgendes zurueckgeben: |
| 47 | |
| 48 | Result: (["si_difficulty":150,"si_abil":0,"si_guild":"ANY"]) |
| 49 | |
| 50 | tritt A daraufhin den Kaempfern bei und hat dort noch keinen Schwertskill |
| 51 | gelernt, wird hingegen 0 zurueckgegebn. Fuer den Fall eines Austritts ist der |
| 52 | Wert aber nach wie vor gespeichert, wie man per Query(P_NEWSKILLS) leicht |
| 53 | sehen kann. Dies wird unterdrueckt, da in der Kaempfergilde die Prop |
| 54 | P_GUILD_DEACTIVATE_SKILLS gesetzt wird. |
| 55 | |
| 56 | Tritt der Spieler den Chaoten bei, aendert sich hingegen bei diesem Aufruf |
| 57 | nichts. |
| 58 | |
| 59 | Letzte Aenderung: Humni, 2003-07-09 |