blob: 495f6c1092252a02993f5e7163afa5414472ea50 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001Pacify()
2========
3
4FUNKTION
5--------
6::
7
8 public int Pacify(object caster)
9
10DEFINIERT IN
11------------
12::
13
14 /std/living/combat.c
15
16BESCHREIBUNG
17------------
18::
19
Arathorn214fd7a2021-01-20 00:27:01 +010020 Diese Funktion versucht, ein Lebewesen zu befrieden.
Zesstra18626972017-01-31 10:38:27 +010021 Will eine Gilde ein Lebewesen befrieden, muss sie hierfuer diese Funktion
22 in dem Lebewesen aufrufen.
23
Arathorn214fd7a2021-01-20 00:27:01 +010024 Ein immer befriedbarer NPC kann durch das Setzen von P_ACCEPT_PEACE in
25 einem Lebewesen realisiert werden.
Zesstra18626972017-01-31 10:38:27 +010026
Arathorn214fd7a2021-01-20 00:27:01 +010027 Standardmaessig funktioniert die Funktion wie folgt:
28
Zesstra18626972017-01-31 10:38:27 +010029 * Kommt der Versuch vom Spellcaster selbst, ist er immer erfolgreich.
30 * Kommt der Versuch von einem Teamkollegen, ist er immer erfolgreich.
31 * Hat das Lebewesen keine Gegner, ist der Versuch immer erfolglos.
Zesstra18626972017-01-31 10:38:27 +010032
Arathorn214fd7a2021-01-20 00:27:01 +010033 In diesen Faellen erfolgt auch keine Erhoehung des Befriedezaehlers.
Zesstra18626972017-01-31 10:38:27 +010034
35 In anderen Faellen wird die in P_PEACE_HISTORY fuer die Gilde des Casters
36 abgelegte Zahl erfolgreicher Befriedungen (ANZ), die Intelligenz des
37 Casters (INT_CASTER) und die Intelligenz des Lebenwesens selber (INT_ME)
38 ermittelt.
39 Anschliessend wird eine Wahrscheinlichkeit w ausgerechnet:
40
Zesstra18626972017-01-31 10:38:27 +010041 w = (INT_CASTER + 10 - ANZ*4) / (INT_ME + 10)
42
Zesstra18626972017-01-31 10:38:27 +010043 Hierbei gibt w die Chance auf eine erfolgreiche Befriedung an. Mittels einer
44 Zufallszahl wird bestimmt, ob der aktuelle Versuch erfolgreich ist. Falls
45 ja, wird der Zaehler fuer die Gilde des Casters in P_PEACE_HISTORY erhoeht.
46
47 Je oefter ein Lebewesen als von einer Gilde schon befriedet wurde, desto
48 unwahrscheinlicher, dass es erneut darauf 'hereinfaellt'.
49
50BEMERKUNGEN
51-----------
Zesstra18626972017-01-31 10:38:27 +010052
Arathorn214fd7a2021-01-20 00:27:01 +010053 * Die Funktion kann auch ueberschrieben werden, um ein vom Magier
Zesstra18626972017-01-31 10:38:27 +010054 gewuenschtes Verhalten zu realisieren. Ein komplettes Abhaengen von
55 Befriedungen sollte dabei aber die Ausnahme sein!
56 * Diese Funktion verwaltet auch das P_PEACE_HISTORY, speziell die Reduktion
57 der Erfolgszaehler. Ueberschreibt man sie ohne das geerbte Pacify()
58 zu nutzen, wird P_PEACE_HISTORY nicht mehr verwaltet.
59
60RUECKGABEWERTE
61--------------
62::
63
64 1 - das Lebewesen wurde erfolgreich befriedet..
65 0 - der Befriedeversuch ist gescheitert.
Zesstra18626972017-01-31 10:38:27 +010066
67
68BEISPIELE
69---------
70::
71
Arathorn214fd7a2021-01-20 00:27:01 +010072 Angenommen, der Caster hat eine Intelligenz von 22. Die folgende Tabelle
73 gibt dann die Wahrscheinlichkeiten fuer eine erfolgreiche Befriedung an:
74 (in Abhaengigkeit von NPC-Intelligenz INT_ME und vergangener erfolgreicher
75 Versuche).
76
Zesstra18626972017-01-31 10:38:27 +010077 INT_ME Erfolgswahrscheinlichkeiten je nach Anzahl erfolgreicher Versuche
78 1 2 3 4 5 6 7 8
79 0 280 240 200 160 120 80 40 0
80 2 233,33 200 166,67 133,33 100 66,67 33,33 0
81 4 200 171,43 142,86 114,29 85,71 57,14 28,57 0
82 6 175 150 125 100 75 50 25 0
83 8 155,56 133,33 111,11 88,89 66,67 44,44 22,22 0
84 10 140 120 100 80 60 40 20 0
85 12 127,27 109,09 90,91 72,73 54,55 36,36 18,18 0
86 14 116,67 100 83,33 66,67 50 33,33 16,67 0
87 16 107,69 92,31 76,92 61,54 46,15 30,77 15,38 0
88 18 100 85,71 71,43 57,14 42,86 28,57 14,29 0
89 20 93,33 80 66,67 53,33 40 26,67 13,33 0
90 22 87,5 75 62,5 50 37,5 25 12,5 0
91 24 82,35 70,59 58,82 47,06 35,29 23,53 11,76 0
92 26 77,78 66,67 55,56 44,44 33,33 22,22 11,11 0
93 28 73,68 63,16 52,63 42,11 31,58 21,05 10,53 0
94 30 70 60 50 40 30 20 10 0
95 32 66,67 57,14 47,62 38,1 28,57 19,05 9,52 0
96 34 63,64 54,55 45,45 36,36 27,27 18,18 9,09 0
97 35 62,22 53,33 44,44 35,56 26,67 17,78 8,89 0
98 36 60,87 52,17 43,48 34,78 26,09 17,39 8,7 0
99 38 58,33 50 41,67 33,33 25 16,67 8,33 0
100 40 56 48 40 32 24 16 8 0
101 42 53,85 46,15 38,46 30,77 23,08 15,38 7,69 0
102 44 51,85 44,44 37,04 29,63 22,22 14,81 7,41 0
103 46 50 42,86 35,71 28,57 21,43 14,29 7,14 0
104 48 48,28 41,38 34,48 27,59 20,69 13,79 6,9 0
105 50 46,67 40 33,33 26,67 20 13,33 6,67 0
106 52 45,16 38,71 32,26 25,81 19,35 12,9 6,45 0
107 54 43,75 37,5 31,25 25 18,75 12,5 6,25 0
108 56 42,42 36,36 30,3 24,24 18,18 12,12 6,06 0
109 58 41,18 35,29 29,41 23,53 17,65 11,76 5,88 0
110 60 40 34,29 28,57 22,86 17,14 11,43 5,71 0
111 62 38,89 33,33 27,78 22,22 16,67 11,11 5,56 0
112 64 37,84 32,43 27,03 21,62 16,22 10,81 5,41 0
113 66 36,84 31,58 26,32 21,05 15,79 10,53 5,26 0
114 68 35,9 30,77 25,64 20,51 15,38 10,26 5,13 0
115 70 35 30 25 20 15 10 5 0
116 72 34,15 29,27 24,39 19,51 14,63 9,76 4,88 0
117 74 33,33 28,57 23,81 19,05 14,29 9,52 4,76 0
118 76 32,56 27,91 23,26 18,6 13,95 9,3 4,65 0
119 78 31,82 27,27 22,73 18,18 13,64 9,09 4,55 0
120 80 31,11 26,67 22,22 17,78 13,33 8,89 4,44 0
121 82 30,43 26,09 21,74 17,39 13,04 8,7 4,35 0
122 84 29,79 25,53 21,28 17,02 12,77 8,51 4,26 0
123 86 29,17 25 20,83 16,67 12,5 8,33 4,17 0
124 88 28,57 24,49 20,41 16,33 12,24 8,16 4,08 0
125 90 28 24 20 16 12 8 4 0
126 92 27,45 23,53 19,61 15,69 11,76 7,84 3,92 0
127 94 26,92 23,08 19,23 15,38 11,54 7,69 3,85 0
128 96 26,42 22,64 18,87 15,09 11,32 7,55 3,77 0
129 98 25,93 22,22 18,52 14,81 11,11 7,41 3,7 0
130 100 25,45 21,82 18,18 14,55 10,91 7,27 3,64 0
131
132SIEHE AUCH
133----------
134::
135
136 P_ACCEPT_PEACE, P_PEACE_HISTORY
137
138LETZTE AENDERUNG
139----------------
Zesstra18626972017-01-31 10:38:27 +010014007.06.2008, Zesstra
141