MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | id() |
| 2 | |
| 3 | FUNKTION: |
| 4 | varargs int id(string str, int lvl); |
| 5 | |
| 6 | DEFINIERT IN: |
| 7 | /std/thing/description.c |
| 8 | /std/player/base.c |
| 9 | |
| 10 | ARGUMENTE: |
| 11 | string str |
| 12 | String, auf den getestet werden soll. |
| 13 | int lvl |
| 14 | In /std/player/base.c benutzt. Wenn der Spieler unsichtbar ist |
| 15 | und lvl kleiner ist als sein Level, wird 0 zurueckgegeben. |
| 16 | |
| 17 | BESCHREIBUNG: |
| 18 | Es wird geprueft, ob sich das Objekt mit str ansprechen laesst. Dazu |
| 19 | wird str mit dem Inhalt der Property P_IDS verglichen. Falls |
| 20 | P_ADJECTIVES gesetzt ist, werden auch alle Adjektivkombinationen mit |
| 21 | den Bezeichnern geprueft. |
| 22 | |
| 23 | Besondere Bedeutung hat diese Funktion bei Mengenobjekten: Anhand von |
| 24 | str wird vermerkt, welche Menge des Objektes angesprochen wird. Es |
| 25 | werden dabei mehrere Faelle unterschieden: |
| 26 | o str ist einer der mit AddId() angegebener Bezeichner. In diesem |
| 27 | Fall ist die angesprochene Menge die Gesamtmenge. |
| 28 | o str ist einer der mit AddSingularId() angegebenen Bezeichner. Die |
| 29 | angesprochene Menge ist in diesem Fall 1. |
| 30 | o str ist einer der mit AddPluralId() angegebenen Bezeichner. Die |
| 31 | angesprochene Menge ist in diesem Fall . die Gesamtmenge. |
| 32 | o Hat str die Form "<n> <id>", wobei <n>=1 und <id> eine SingularId |
| 33 | oder 1 < <n> <= der Gesamtmenge und <id> eine PluralId, so ist die |
| 34 | angesprochene Menge = <n>. |
| 35 | Wie gesagt, gilt dies einzig und allein bei Mengenobjekten! |
| 36 | |
| 37 | RUeCKGABEWERT: |
| 38 | 1, wenn sich das Objekt von str angesprochen fuehlt, ansonsten 0. |
| 39 | |
| 40 | BEISPIELE: |
| 41 | Angenommen, ein Objekt habe folgende Bezeichner: |
| 42 | |
| 43 | AddId( "murmel" ); |
| 44 | AddAdjective( "runde" ); |
| 45 | |
| 46 | Dann liefern die angegebenen id()-Aufrufe folgende Ergebnisse: |
| 47 | |
| 48 | id( "murmel" ); => 1 |
| 49 | id( "runde murmel" ); => 1 |
| 50 | id( "kleine murmel" ); => 0 |
| 51 | id( "runder ball" ); => 0 |
| 52 | id( "runde murmel 2" ); => 1, wenn dies die zweite Murmel in der |
| 53 | gleichen Umgebung ist, ansonsten 0 |
| 54 | |
| 55 | Bei einem Haufen von 100 Muenzen haette man zB.: |
| 56 | |
| 57 | AddId( "geld" ); |
| 58 | AddSingularId( "muenze" ); |
| 59 | AddPluralId( "muenzen" ); |
| 60 | |
| 61 | Nach fuehlen sich nach den folgenden id()-Aufrufen folgende Anzahlen |
| 62 | angesprochen: |
| 63 | |
| 64 | id( "geld" ); => 100 Muenzen |
| 65 | id( "muenze" ); => 1 Muenze |
| 66 | id( "muenzen" ); => 100 Muenzen |
| 67 | id( "1 muenze" ); => 1 Muenze |
| 68 | id( "42 muenzen" ); => 42 Muenzen |
| 69 | |
| 70 | id() liefert in all diesen Faellen 1 zurueck. |
| 71 | |
| 72 | SIEHE AUCH: |
| 73 | AddId(), AddAdjective(), AddSingularId(), AddPluralId(), present(), |
| 74 | match_ids(), /std/thing/description.c, /std/unit.c |
| 75 | |
| 76 | 6. Sep 2012 Gloinson |