Dokumentation zu: material(WL)

HR Image


Material
========

Um P_MATERIAL verwenden zu koennen, muss ein Objekt sys/thing/material.h
includen.

Das Property P_MATERIAL ist grundsaetzlich ein Mapping, in dem zu jedem 
Material der Anteil an dem Objekt stehen sollte, z.B. kann ein Speer zu 
80% aus Holz und zu 20% aus Metall (Speerspitze) bestehen:
  SetProp(P_MATERIAL, ([MAT_MISC_METAL:20,MAT_MISC_WOOD:80]));

Zur Vereinfachung ist es erlaubt, bei SetProp ein einzelnes Material oder
ein Array aus Materialien anzugeben, beides wird automatisch umgewandelt
in ein Mapping mit gleichen Anteilen aller Materialien:
  SetProp(P_MATERIAL, MAT_PAPER)
    -> ([MAT_PAPER:100])
  SetProp(P_MATERIAL, ({MAT_SILVER, MAT_GOLD}))
    -> ([MAT_SILVER:50,MAT_GOLD:50])

Falls das Material nicht gesetzt wurde, gelten folgende Defaults:
+------------+-------------+-----------------------------------------+
| Waffen     | WT_SWORD    | ([MAT_MISC_METAL:100])                  |
|            | WT_FENCING  | ([MAT_MISC_METAL:100])                  |
|            | WT_KNIFE    | ([MAT_MISC_METAL:80, MAT_MISC_WOOD:20]) |
|            | WT_AXE      | ([MAT_MISC_METAL:50, MAT_MISC_WOOD:50]) |
|            | WT_SPEAR    | ([MAT_MISC_METAL:20, MAT_MISC_WOOD:80]) |
|            | WT_POLE     | ([MAT_MISC_WOOD:100])                   |
|            | WT_CLUB     | ([MAT_MISC_WOOD:100])                   |
|            | WT_FLAIL    | ([MAT_MISC_WOOD:100])                   |
|            | WT_MAGIC    | ([MAT_MISC_MAGIC:100])                  |
|            | WT_AMMU     | ([MAT_MISC_METAL:100])                  |
|            | Default     | ([MAT_MISC_METAL:100])                  |
+------------+-------------+-----------------------------------------+
| Ruestungen | AT_ARMOUR   | ([MAT_MISC_METAL:100])                  |
|            | AT_HEMLET   | ([MAT_MISC_METAL:100])                  |
|            | AT_RING     | ([MAT_MISC_METAL:100])                  |
|            | AT_SHIELD   | ([MAT_MISC_METAL:100])                  |
|            | AT_AMULET   | ([MAT_MISC_METAL:100])                  |
|            | AT_TIARA    | ([MAT_MISC_METAL:100])                  |
|            | AT_CLOAK    | ([MAT_CLOTH:100])                       |
|            | AT_TROUSERS | ([MAT_CLOTH:100])                       |
|            | AT_BOOT     | ([MAT_MISC_LEATHER:100])                     |
|            | AT_GLOVE    | ([MAT_MISC_LEATHER:100])                     |
|            | AT_GIRDLE   | ([MAT_MISC_LEATHER:100])                     |
|            | AT_GLASSES  | ([MAT_MISC:100])                        |
|            | Default     | ([MAT_MISC:100])                        |
+------------+-------------+-----------------------------------------+
| Lebewesen  | ([MAT_LIVING:100])                                    |
+------------+-------------------------------------------------------+
| Essen      | ([MAT_FOOD:100])                                      |
+------------+-------------------------------------------------------+
| Leichen    | ([MAT_MISC_DEAD:100])                                 |
+------------+-------------------------------------------------------+
| Dinge      | ([MAT_MISC:100])                                      |
+------------+-------------------------------------------------------+

alle Objekte in /obj haben schon die korrekten P_MATERIAL gesetzt

Folgende Funktionen stehen in Objekten zur Verfuegung:

Mit der Funktion

-> int QueryMaterial(string mat)
kann man testen, ob und zu welchem Anteil ein Objekt aus einem bestimmten 
Material besteht. Damit man nicht z.B. auf alle Metalle einzeln testen 
muss, sind viele Materialien in Gruppen zusammengefasst, so gehoeren 
beispielsweise Gold und Eisen zur Gruppe MATGROUP_METAL. Jede Gruppe, 
bei der es noetig erschien, hat ein Material MAT_MISC_ ..., fuer alle 
Dinge die man nicht genauer angeben kann. Auf Gruppen kann man mit

-> int QueryMaterialGroup(string grp)
testen. Um die Ausgabe zu erleichtern, kann man mit

-> string MaterialList(int casus, mixed erkennungsfaehigkeit)
eine Liste aller verwendeten Materialien erhalten. Weiter einzelheiten
findet man in materialerkennung(WL).
 
Richtlinien:

1a. Falls es kein genau passendes Material gibt, sollte man das am
    ehesten passende MAT_MISC-Material verwenden.
1b. Falls es sich lohnen wuerde, das bisher noch nicht definierte
    Material einzubauen reg es nach
2.  Verschiedene Eigenschaften lassen sich kombinieren.
    Z.B. besteht explosives Gas zu 100% aus Gas und zu 100%
    aus explosivem Material. Folgerichtig setzt man es mit
      SetProp(P_MATERIAL, ([MAT_MISC_GAS:100, MAT_MISC_EXPLOSIVE:100]))
3.  Bei Lebewesen braucht man nur ein Material setzen, wenn
    es besondere Materialeigenschaften haben soll. 
    Bsp (Eisdrache, Metallmonster...)

SIEHE AUCH:
    P_MATERIAL(WL), materialliste(WL), materialgruppen(WL), 
    materialerkennung(WL), QueryMaterial(L), QueryMaterialGroup(L), 
    MaterialList(WL), materialdb(WL)


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