
GetReputation()
***************


FUNKTION
========

   public int GetReputation(string repid)


DEFINIERT IN
============

   /std/player/reputation.c


ARGUMENTE
=========

   repid
     Eindeutige ID der angefragten Reputation.


BESCHREIBUNG
============

   Liefert den aktuellen Wert der angegebenen Reputation <repid> zurueck.


RUeCKGABEWERT
=============

   Zahlenwert, Integer.


BEISPIELE
=========

   s. reputation


SIEHE AUCH
==========

   reputation
   ChangeReputation(), GetReputations()


ZULETZT GEAeNDERT
=================

06.04.2009, Zesstra
