GetReputations()
================

FUNKTION
--------
::

     public mapping GetReputations()

DEFINIERT IN
------------
::

     /std/player/reputation.c

BESCHREIBUNG
------------
::

     Liefert ein Mapping aller im Spieler gespeicherten Reputationen und ihrer
     Werte zurueck.

RUeCKGABEWERT
-------------
::

     Mapping ([(string)repid: (int)wert])

BEISPIELE
---------
::

     s. repuation

SIEHE AUCH
----------
::

     reputation
     GetReputation(), GetReputations()

ZULETZT GEAeNDERT
-----------------
::

06.04.2009, Zesstra

