Difference between revisions of "Sacred 2:How is a character's unarmed damage calculated?"

From SacredWiki
Jump to navigation Jump to search
(Created page with "It all starts in '''blueprint.txt'''. There is a bonus called '''crbonus_damage_phy'''. <pre> newBonus = { -- name = "crbonus_damage_phy", rating = 0, basedonskill = "SKI...")
 
(Add references)
 
Line 78: Line 78:
  
 
The generic formula for blueprint bonuses is:
 
The generic formula for blueprint bonuses is:
<blockquote>ValueOfBonus = FLOOR((FLOOR(((ValueAt200 - ValueAt0) / 200) * CreatureOrItemLevel) + ValueAt0) * Intensity * 0.001)</blockquote>
+
<blockquote>ValueOfBonus = FLOOR((FLOOR((ValueAt200 - ValueAt0) * (1 / 200) * CreatureOrItemLevel) + ValueAt0) * Intensity * 0.001)</blockquote>
  
 
For the unarmed damage, there are no additional operations to perform:
 
For the unarmed damage, there are no additional operations to perform:
Line 84: Line 84:
  
 
We can adapt and simplify the formula like so:
 
We can adapt and simplify the formula like so:
<blockquote>UnarmedDamage = FLOOR((FLOOR(((ValueAt200 - ValueAt0) / 200) * CharacterLevel) + ValueAt0) * Intensity * 0.001)</blockquote>
+
<blockquote>UnarmedDamage = FLOOR((FLOOR((ValueAt200 - ValueAt0) * (1 / 200) * CharacterLevel) + ValueAt0) * Intensity * 0.001)</blockquote>
<blockquote>UnarmedDamage = FLOOR((FLOOR(((371 - 24) / 200) * CharacterLevel) + 24) * Intensity * 0.001)</blockquote>
+
<blockquote>UnarmedDamage = FLOOR((FLOOR((371 - 24) * (1 / 200) * CharacterLevel) + 24) * Intensity * 0.001)</blockquote>
<blockquote>UnarmedDamage = FLOOR((FLOOR((347 / 200) * CharacterLevel) + 24) * Intensity * 0.001)</blockquote>
+
<blockquote>UnarmedDamage = FLOOR((FLOOR(347 * (1 / 200) * CharacterLevel) + 24) * Intensity * 0.001)</blockquote>
 
<blockquote>UnarmedDamage = FLOOR((FLOOR(1.735 * CharacterLevel) + 24) * Intensity * 0.001)</blockquote>
 
<blockquote>UnarmedDamage = FLOOR((FLOOR(1.735 * CharacterLevel) + 24) * Intensity * 0.001)</blockquote>
  
Line 497: Line 497:
 
| 200 || 148 || 148 || 129 || 148 || 148 || 148 || 148
 
| 200 || 148 || 148 || 129 || 148 || 148 || 148 || 148
 
|}
 
|}
 +
 +
 +
 +
== References ==
 +
* https://darkmatters.org/forums/index.php?/topic/18511-how-is-sacred-2-weapon-damage-calculated/&do=findComment&comment=7146103
 +
* https://darkmatters.org/forums/index.php?/topic/18511-how-is-sacred-2-weapon-damage-calculated/&do=findComment&comment=7144874
 +
* https://darkmatters.org/forums/index.php?/topic/18511-how-is-sacred-2-weapon-damage-calculated/&do=findComment&comment=7146000

Latest revision as of 18:02, 26 September 2024

It all starts in blueprint.txt. There is a bonus called crbonus_damage_phy.

newBonus = {
--  name = "crbonus_damage_phy",
  rating = 0,
  basedonskill = "SKILL_INVALID",
  type = "BONUS_WEAPONDAMAGERANGE",
  spez = "DMG_PHYS",
  spez2 = "",
  usagebits = 65535,
  minconstraints = {1,0,0},
  difficultyvaluerange0 = {0,24,371},
  difficultyvaluerange1 = {1,24,371},
  difficultyvaluerange2 = {2,24,371},
  difficultyvaluerange3 = {3,24,371},
  difficultyvaluerange4 = {4,24,371},
}
mgr.createBonus(27, newBonus);

In creatures.txt, each character receives this bonus at a different "intensity" value. Actually, all characters receive this bonus at 400 intensity, except the High Elf, who receives this bonus at 350 intensity.

The Dragon Mage:

mgr.addCreatureBonus( 1949, {
	intensity = 400,
	bonus = 27,
})

The Dryad:

mgr.addCreatureBonus( 94, {
	intensity = 400,
	bonus = 27,
})

The High Elf:

mgr.addCreatureBonus( 209, {
	intensity = 350,
	bonus = 27,
})

The Inquisitor:

mgr.addCreatureBonus( 51, {
	intensity = 400,
	bonus = 27,
})

The Seraphim:

mgr.addCreatureBonus( 1, {
	intensity = 400,
	bonus = 27,
})

The Shadow Warrior:

mgr.addCreatureBonus( 93, {
	intensity = 400,
	bonus = 27,
})

The Temple Guardian:

mgr.addCreatureBonus( 210, {
	intensity = 400,
	bonus = 27,
})


TODO Guide on how to interpret blueprint bonuses.


The generic formula for blueprint bonuses is:

ValueOfBonus = FLOOR((FLOOR((ValueAt200 - ValueAt0) * (1 / 200) * CreatureOrItemLevel) + ValueAt0) * Intensity * 0.001)

For the unarmed damage, there are no additional operations to perform:

UnarmedDamage = ValueOfBonus

We can adapt and simplify the formula like so:

UnarmedDamage = FLOOR((FLOOR((ValueAt200 - ValueAt0) * (1 / 200) * CharacterLevel) + ValueAt0) * Intensity * 0.001)

UnarmedDamage = FLOOR((FLOOR((371 - 24) * (1 / 200) * CharacterLevel) + 24) * Intensity * 0.001)

UnarmedDamage = FLOOR((FLOOR(347 * (1 / 200) * CharacterLevel) + 24) * Intensity * 0.001)

UnarmedDamage = FLOOR((FLOOR(1.735 * CharacterLevel) + 24) * Intensity * 0.001)

By using the formula, we can fill in the following table:

Character level Unarmed damage
Dragon Mage Dryad High Elf Inquisitor Seraphim Shadow Warrior Temple Guardian
1 10 10 8 10 10 10 10
2 10 10 9 10 10 10 10
3 11 11 10 11 11 11 11
4 12 12 10 12 12 12 12
5 12 12 11 12 12 12 12
6 13 13 11 13 13 13 13
7 14 14 12 14 14 14 14
8 14 14 12 14 14 14 14
9 15 15 13 15 15 15 15
10 16 16 14 16 16 16 16
11 17 17 15 17 17 17 17
12 17 17 15 17 17 17 17
13 18 18 16 18 18 18 18
14 19 19 16 19 19 19 19
15 20 20 17 20 20 20 20
16 20 20 17 20 20 20 20
17 21 21 18 21 21 21 21
18 22 22 19 22 22 22 22
19 22 22 19 22 22 22 22
20 23 23 20 23 23 23 23
21 24 24 21 24 24 24 24
22 24 24 21 24 24 24 24
23 25 25 22 25 25 25 25
24 26 26 22 26 26 26 26
25 26 26 23 26 26 26 26
26 27 27 24 27 27 27 27
27 28 28 24 28 28 28 28
28 28 28 25 28 28 28 28
29 29 29 25 29 29 29 29
30 30 30 26 30 30 30 30
31 30 30 26 30 30 30 30
32 31 31 27 31 31 31 31
33 32 32 28 32 32 32 32
34 32 32 28 32 32 32 32
35 33 33 29 33 33 33 33
36 34 34 30 34 34 34 34
37 35 35 30 35 35 35 35
38 35 35 31 35 35 35 35
39 36 36 31 36 36 36 36
40 37 37 32 37 37 37 37
41 38 38 33 38 38 38 38
42 38 38 33 38 38 38 38
43 39 39 34 39 39 39 39
44 40 40 35 40 40 40 40
45 40 40 35 40 40 40 40
46 41 41 36 41 41 41 41
47 42 42 36 42 42 42 42
48 42 42 37 42 42 42 42
49 43 43 38 43 43 43 43
50 44 44 38 44 44 44 44
51 44 44 39 44 44 44 44
52 45 45 39 45 45 45 45
53 46 46 40 46 46 46 46
54 46 46 40 46 46 46 46
55 47 47 41 47 47 47 47
56 48 48 42 48 48 48 48
57 48 48 42 48 48 48 48
58 49 49 43 49 49 49 49
59 50 50 44 50 50 50 50
60 51 51 44 51 51 51 51
61 51 51 45 51 51 51 51
62 52 52 45 52 52 52 52
63 53 53 46 53 53 53 53
64 54 54 47 54 54 54 54
65 54 54 47 54 54 54 54
66 55 55 48 55 55 55 55
67 56 56 49 56 56 56 56
68 56 56 49 56 56 56 56
69 57 57 50 57 57 57 57
70 58 58 50 58 58 58 58
71 58 58 51 58 58 58 58
72 59 59 51 59 59 59 59
73 60 60 52 60 60 60 60
74 60 60 53 60 60 60 60
75 61 61 53 61 61 61 61
76 62 62 54 62 62 62 62
77 62 62 54 62 62 62 62
78 63 63 55 63 63 63 63
79 64 64 56 64 64 64 64
80 64 64 56 64 64 64 64
81 65 65 57 65 65 65 65
82 66 66 58 66 66 66 66
83 67 67 58 67 67 67 67
84 67 67 59 67 67 67 67
85 68 68 59 68 68 68 68
86 69 69 60 69 69 69 69
87 69 69 60 69 69 69 69
88 70 70 61 70 70 70 70
89 71 71 62 71 71 71 71
90 72 72 63 72 72 72 72
91 72 72 63 72 72 72 72
92 73 73 64 73 73 73 73
93 74 74 64 74 74 74 74
94 74 74 65 74 74 74 74
95 75 75 65 75 75 75 75
96 76 76 66 76 76 76 76
97 76 76 67 76 76 76 76
98 77 77 67 77 77 77 77
99 78 78 68 78 78 78 78
100 78 78 68 78 78 78 78
101 79 79 69 79 79 79 79
102 80 80 70 80 80 80 80
103 80 80 70 80 80 80 80
104 81 81 71 81 81 81 81
105 82 82 72 82 82 82 82
106 82 82 72 82 82 82 82
107 83 83 73 83 83 83 83
108 84 84 73 84 84 84 84
109 85 85 74 85 85 85 85
110 85 85 74 85 85 85 85
111 86 86 75 86 86 86 86
112 87 87 76 87 87 87 87
113 88 88 77 88 88 88 88
114 88 88 77 88 88 88 88
115 89 89 78 89 89 89 89
116 90 90 78 90 90 90 90
117 90 90 79 90 90 90 90
118 91 91 79 91 91 91 91
119 92 92 80 92 92 92 92
120 92 92 81 92 92 92 92
121 93 93 81 93 93 93 93
122 94 94 82 94 94 94 94
123 94 94 82 94 94 94 94
124 95 95 83 95 95 95 95
125 96 96 84 96 96 96 96
126 96 96 84 96 96 96 96
127 97 97 85 97 97 97 97
128 98 98 86 98 98 98 98
129 98 98 86 98 98 98 98
130 99 99 87 99 99 99 99
131 100 100 87 100 100 100 100
132 101 101 88 101 101 101 101
133 101 101 88 101 101 101 101
134 102 102 89 102 102 102 102
135 103 103 90 103 103 103 103
136 103 103 90 103 103 103 103
137 104 104 91 104 104 104 104
138 105 105 92 105 105 105 105
139 106 106 92 106 106 106 106
140 106 106 93 106 106 106 106
141 107 107 93 107 107 107 107
142 108 108 94 108 108 108 108
143 108 108 95 108 108 108 108
144 109 109 95 109 109 109 109
145 110 110 96 110 110 110 110
146 110 110 96 110 110 110 110
147 111 111 97 111 111 111 111
148 112 112 98 112 112 112 112
149 112 112 98 112 112 112 112
150 113 113 99 113 113 113 113
151 114 114 99 114 114 114 114
152 114 114 100 114 114 114 114
153 115 115 101 115 115 115 115
154 116 116 101 116 116 116 116
155 116 116 102 116 116 116 116
156 117 117 102 117 117 117 117
157 118 118 103 118 118 118 118
158 119 119 104 119 119 119 119
159 119 119 104 119 119 119 119
160 120 120 105 120 120 120 120
161 121 121 106 121 121 121 121
162 122 122 106 122 122 122 122
163 122 122 107 122 122 122 122
164 123 123 107 123 123 123 123
165 124 124 108 124 124 124 124
166 124 124 109 124 124 124 124
167 125 125 109 125 125 125 125
168 126 126 110 126 126 126 126
169 126 126 110 126 126 126 126
170 127 127 111 127 127 127 127
171 128 128 112 128 128 128 128
172 128 128 112 128 128 128 128
173 129 129 113 129 129 129 129
174 130 130 113 130 130 130 130
175 130 130 114 130 130 130 130
176 131 131 115 131 131 131 131
177 132 132 115 132 132 132 132
178 132 132 116 132 132 132 132
179 133 133 116 133 133 133 133
180 134 134 117 134 134 134 134
181 135 135 118 135 135 135 135
182 135 135 118 135 135 135 135
183 136 136 119 136 136 136 136
184 137 137 120 137 137 137 137
185 137 137 120 137 137 137 137
186 138 138 121 138 138 138 138
187 139 139 121 139 139 139 139
188 140 140 122 140 140 140 140
189 140 140 122 140 140 140 140
190 141 141 123 141 141 141 141
191 142 142 124 142 142 142 142
192 142 142 124 142 142 142 142
193 143 143 125 143 143 143 143
194 144 144 126 144 144 144 144
195 144 144 126 144 144 144 144
196 145 145 127 145 145 145 145
197 146 146 127 146 146 146 146
198 146 146 128 146 146 146 146
199 147 147 129 147 147 147 147
200 148 148 129 148 148 148 148


References