FUNKTION
	public int Pacify(object caster)

DEFINIERT IN
	/std/living/combat.c

BESCHREIBUNG
	Diese Funktion versucht, ein Lebewesen zu befrieden.
  Will eine Gilde ein Lebewesen befrieden, muss sie hierfuer diese Funktion
  in dem Lebewesen aufrufen.

  Ein immer befriedbarer NPC kann durch das Setzen von P_ACCEPT_PEACE in einem
  Lebewesen realisiert werden.

	Standardmaessig funktioniert die Funktion wie folgt:
  * Kommt der Versuch vom Spellcaster selbst, ist er immer erfolgreich.
  * Kommt der Versuch von einem Teamkollegen, ist er immer erfolgreich.
  * Hat das Lebewesen keine Gegner, ist der Versuch immer erfolglos.
  In diesen Faellen erfolgt auch keine Erhoehung des Befriedezaehlers.
  
  In anderen Faellen wird die in P_PEACE_HISTORY fuer die Gilde des Casters
  abgelegte Zahl erfolgreicher Befriedungen (ANZ), die Intelligenz des
  Casters (INT_CASTER) und die Intelligenz des Lebenwesens selber (INT_ME)
  ermittelt.
  Anschliessend wird eine Wahrscheinlichkeit w ausgerechnet:
  
    w = (INT_CASTER + 10 - ANZ*4) / (INT_ME + 10)
  
  Hierbei gibt w die Chance auf eine erfolgreiche Befriedung an. Mittels einer
  Zufallszahl wird bestimmt, ob der aktuelle Versuch erfolgreich ist. Falls
  ja, wird der Zaehler fuer die Gilde des Casters in P_PEACE_HISTORY erhoeht.

  Je oefter ein Lebewesen als von einer Gilde schon befriedet wurde, desto
  unwahrscheinlicher, dass es erneut darauf 'hereinfaellt'.

BEMERKUNGEN:
  *	Die Funktion kann auch ueberschrieben werden, um ein vom Magier
    gewuenschtes Verhalten zu realisieren. Ein komplettes Abhaengen von
    Befriedungen sollte dabei aber die Ausnahme sein!
  * Diese Funktion verwaltet auch das P_PEACE_HISTORY, speziell die Reduktion
    der Erfolgszaehler. Ueberschreibt man sie ohne das geerbte Pacify()
    zu nutzen, wird P_PEACE_HISTORY nicht mehr verwaltet.

RUECKGABEWERTE:
    1 - das Lebewesen wurde erfolgreich befriedet..
    0 - der Befriedeversuch ist gescheitert.
    
BEISPIELE:
    Angenommen, der Caster hat eine Intelligenz von 22. Die folgende Tabelle
    gibt dann die Wahrscheinlichkeiten fuer eine erfolgreiche Befriedung an:
    (in Abhaengigkeit von eigener Intelligenz und vergangener erfolgreicher
     Versuche)
 INT_ME  Erfolgswahrscheinlichkeiten je nach Anzahl erfolgreicher Versuche
              1       2       3       4       5       6       7       8
      0     280     240     200     160     120      80      40       0
      2  233,33     200  166,67  133,33     100   66,67   33,33       0
      4     200  171,43  142,86  114,29   85,71   57,14   28,57       0
      6     175     150     125     100      75      50      25       0
      8  155,56  133,33  111,11   88,89   66,67   44,44   22,22       0
     10     140     120     100      80      60      40      20       0
     12  127,27  109,09   90,91   72,73   54,55   36,36   18,18       0
     14  116,67     100   83,33   66,67      50   33,33   16,67       0
     16  107,69   92,31   76,92   61,54   46,15   30,77   15,38       0
     18     100   85,71   71,43   57,14   42,86   28,57   14,29       0
     20   93,33      80   66,67   53,33      40   26,67   13,33       0
     22    87,5      75    62,5      50    37,5      25    12,5       0
     24   82,35   70,59   58,82   47,06   35,29   23,53   11,76       0
     26   77,78   66,67   55,56   44,44   33,33   22,22   11,11       0
     28   73,68   63,16   52,63   42,11   31,58   21,05   10,53       0
     30      70      60      50      40      30      20      10       0
     32   66,67   57,14   47,62    38,1   28,57   19,05    9,52       0
     34   63,64   54,55   45,45   36,36   27,27   18,18    9,09       0
     35   62,22   53,33   44,44   35,56   26,67   17,78    8,89       0
     36   60,87   52,17   43,48   34,78   26,09   17,39     8,7       0
     38   58,33      50   41,67   33,33      25   16,67    8,33       0
     40      56      48      40      32      24      16       8       0
     42   53,85   46,15   38,46   30,77   23,08   15,38    7,69       0
     44   51,85   44,44   37,04   29,63   22,22   14,81    7,41       0
     46      50   42,86   35,71   28,57   21,43   14,29    7,14       0
     48   48,28   41,38   34,48   27,59   20,69   13,79     6,9       0
     50   46,67      40   33,33   26,67      20   13,33    6,67       0
     52   45,16   38,71   32,26   25,81   19,35    12,9    6,45       0
     54   43,75    37,5   31,25      25   18,75    12,5    6,25       0
     56   42,42   36,36    30,3   24,24   18,18   12,12    6,06       0
     58   41,18   35,29   29,41   23,53   17,65   11,76    5,88       0
     60      40   34,29   28,57   22,86   17,14   11,43    5,71       0
     62   38,89   33,33   27,78   22,22   16,67   11,11    5,56       0
     64   37,84   32,43   27,03   21,62   16,22   10,81    5,41       0
     66   36,84   31,58   26,32   21,05   15,79   10,53    5,26       0
     68    35,9   30,77   25,64   20,51   15,38   10,26    5,13       0
     70      35      30      25      20      15      10       5       0
     72   34,15   29,27   24,39   19,51   14,63    9,76    4,88       0
     74   33,33   28,57   23,81   19,05   14,29    9,52    4,76       0
     76   32,56   27,91   23,26    18,6   13,95     9,3    4,65       0
     78   31,82   27,27   22,73   18,18   13,64    9,09    4,55       0
     80   31,11   26,67   22,22   17,78   13,33    8,89    4,44       0
     82   30,43   26,09   21,74   17,39   13,04     8,7    4,35       0
     84   29,79   25,53   21,28   17,02   12,77    8,51    4,26       0
     86   29,17      25   20,83   16,67    12,5    8,33    4,17       0
     88   28,57   24,49   20,41   16,33   12,24    8,16    4,08       0
     90      28      24      20      16      12       8       4       0
     92   27,45   23,53   19,61   15,69   11,76    7,84    3,92       0
     94   26,92   23,08   19,23   15,38   11,54    7,69    3,85       0
     96   26,42   22,64   18,87   15,09   11,32    7,55    3,77       0
     98   25,93   22,22   18,52   14,81   11,11    7,41     3,7       0
    100   25,45   21,82   18,18   14,55   10,91    7,27    3,64       0

SIEHE AUCH
        P_ACCEPT_PEACE, P_PEACE_HISTORY

LETZTE AENDERUNG
07.06.2008, Zesstra

