146{
147 int scoringmethod = 1;
148 float upscaler;
149 float frag_weight;
150 float damage_weight;
151
152
153
154
155
156 bool disable_selfdamage2score;
157
159
164 } else {
165
170 }
171
172
173
174 if (frag_weight && damage_weight)
175 scoringmethod = 1;
176 else if (frag_weight)
177 scoringmethod = 2;
178 else if (damage_weight)
179 scoringmethod = 3;
180 else
181 return;
182
183 switch (scoringmethod)
184 {
185 default:
186 case 1:
187 {
188
189
190
191 float suicide_weight = 1 + (disable_selfdamage2score / frag_weight);
192
193
194
196
197
198
199 float roundedplayerdamagescore =
rint(playerdamagescore * 10) / 10;
200
201
203
204
205 float playerkillscore = (
killcount * 100) * upscaler * frag_weight;
206
207
208 float playerscore = roundedplayerdamagescore + playerkillscore;
209
210
211 float scoretoadd = playerscore - (
PlayerScore_Get(scorer, SP_SCORE) * 100);
212
213
214
216
217
218 #if 0
219
221 print(sprintf(
"%f", scorer.total_damage_dealt),
" scorer.total_damage_dealt \n");
222 print(sprintf(
"%f", scorer.hitsound_damage_dealt),
" scorer.hitsound_damage_dealt \n");
223 print(sprintf(
"%f", playerdamagescore/100),
" playerdamagescore \n");
224 print(sprintf(
"%f", roundedplayerdamagescore/100),
" rounded playerdamagescore \n");
225 print(sprintf(
"%f", playerkillscore/100),
" playerkillscore \n");
226 print(sprintf(
"%f",
PlayerScore_Get(scorer, SP_KILLS)),
" PlayerScore_Get(scorer, SP_KILLS) \n");
227 print(sprintf(
"%f", playerscore/100),
" playerscore \n");
228 print(sprintf(
"%f", scoretoadd/100),
" scoretoadd \n");
229 print(sprintf(
"%f",
PlayerScore_Get(scorer, SP_SCORE)),
" PlayerScore_Get(scorer, SP_SCORE) \n \n");
230 }
231 #endif
232 return;
233 }
234
235 case 2:
236 {
237
239 float upscaledplayerscore = playerkillscore * upscaler;
240 float scoretoadd = upscaledplayerscore -
PlayerScore_Get(scorer, SP_SCORE);
242
243 #if 0
244
246 print(sprintf(
"%f", playerkillscore),
" playerkillscore \n");
247 print(sprintf(
"%f",
PlayerScore_Get(scorer, SP_KILLS)),
" PlayerScore_Get(scorer, SP_KILLS) \n");
248 print(sprintf(
"%f", upscaledplayerscore),
" upscaled playerscore \n");
249 print(sprintf(
"%f", scoretoadd),
" scoretoadd \n");
250 print(sprintf(
"%f",
PlayerScore_Get(scorer, SP_SCORE)),
" PlayerScore_Get(scorer, SP_SCORE) \n \n");
251 }
252 #endif
253 return;
254 }
255
256 case 3:
257 {
258
260 float roundedplayerdamagescore =
rint(playerdamagescore * 10) / 10;
261 float upscaledplayerscore = roundedplayerdamagescore * upscaler;
262 float scoretoadd = upscaledplayerscore - (
PlayerScore_Get(scorer, SP_SCORE) * 100);
264
265 #if 0
266
268 print(sprintf(
"%f", scorer.total_damage_dealt),
" scorer.total_damage_dealt \n");
269 print(sprintf(
"%f", playerdamagescore),
" playerdamagescore \n");
270 print(sprintf(
"%f", roundedplayerdamagescore),
" rounded playerdamagescore \n");
271 print(sprintf(
"%f", upscaledplayerscore),
" upscaled playerscore \n");
272 print(sprintf(
"%f", scoretoadd),
" scoretoadd \n");
273 print(sprintf(
"%f",
PlayerScore_Get(scorer, SP_SCORE)),
" PlayerScore_Get(scorer, SP_SCORE) \n \n");
274 }
275 #endif
276 return;
277 }
278 }
279}
#define PlayerScore_Get(player, scorefield)
Returns the player's score.
bool autocvar_g_mayhem_scoring_disable_selfdamage2score
float autocvar_g_mayhem_scoring_kill_weight
float autocvar_g_mayhem_scoring_damage_weight
float autocvar_g_mayhem_scoring_upscaler
#define GameRules_scoring_add_team(client, fld, value)
float autocvar_g_tmayhem_scoring_damage_weight
float autocvar_g_tmayhem_scoring_upscaler
float autocvar_g_tmayhem_scoring_kill_weight
bool autocvar_g_tmayhem_scoring_disable_selfdamage2score
#define IS_BOT_CLIENT(v)
want: (IS_CLIENT(v) && !IS_REAL_CLIENT(v))