blob: 9e4914547298fdf37f27982b04f36ee3f75e246f [file] [log] [blame]
Zesstrabbc000b2020-01-23 21:34:06 +01001walk_mapping
2============
3
4BEISPIELE
5---------
6
7 In einem Mapping (Keys: Spielerobjekte) soll auf alle Werte etwas drauf
8 addiert werden:
9
10 .. code-block:: pike
11
12 // Liste mit Spielern durchgehen ...
13 mapping x=([ [/human:liafar]: 20,
14 [/dwarf:mesirii]: 50,
15 [/elf:zarniya]: 40,
16 [/feline:turbo]: 30]);
17
18 // ... und Werte aendern:
19 void add_val(object key, int val, int add) {
20 if(key->InFight())
21 val+=add;
22 else
23 val-=add;
24 }
25
26 // verschiedene Aufrufarten, identisches Resultat:
27 walk_mapping(x, "add_val", 0, 10);
28 walk_mapping(x, "add_val", this_object(), 10
29 walk_mapping(x, "add_val", "/players/jof/addierobjektmitmethode", 10);
30
31 walk_mapping(x, #'add_val, 10);
32