@@ -19,8 +19,23 @@ new HamHook:g_hSecondaryAttack[sizeof(g_szWeaponList)], HamHook:g_hAddToPlayer[s
19
19
20
20
new g_bWeaponState[MAX_CLIENTS + 1 ][CSW_P90 + 1 ]
21
21
22
- new bool: g_bWeaponStateRemember = true , g_bitHideHudFlags, g_iRefillClip = 1
22
+ new bool: g_bWeaponStateRemember = true , g_bitHideHudFlags, g_iRefillClip = 1 , bool: g_bAllowResetScore = true
23
23
24
+ # define register_trigger_clcmd (%0 ,%1 ) \
25
+ for (new iter = 0 ; iter < sizeof (BASE_CHAT_TRIGGERS); iter++ ) \
26
+ { \
27
+ register_clcmd(fmt(" say %s%s " , BASE_CHAT_TRIGGERS[iter], %0 ), %1 ); \
28
+ register_clcmd(fmt(" say_team %s%s " , BASE_CHAT_TRIGGERS[iter], %0 ), %1 ); \
29
+ }
30
+
31
+ new stock const BASE_CHAT_TRIGGERS[][] = { " /" , " \" , " ! " , " ." };
32
+
33
+ enum forwardlist_e
34
+ {
35
+ iFwdPlayerResetScore
36
+ }
37
+
38
+ new g_eCustomForwards[forwardlist_e]
24
39
25
40
public plugin_init ()
26
41
{
@@ -31,6 +46,13 @@ public plugin_init()
31
46
DisableHamForward (g_hAddToPlayer[i] = RegisterHam (Ham_Item_AddToPlayer, g_szWeaponList[i], " CBasePlayerItem_AddToPlayer" , .Post = true ))
32
47
DisableHamForward (g_hSecondaryAttack[i] = RegisterHam (Ham_Weapon_SecondaryAttack, g_szWeaponList[i], " CBasePlayerItem_SecAttack" , .Post = true ))
33
48
}
49
+
50
+ new const CMDS_ResetScore[][] = { " rs" , " resetscore" };
51
+ for (new i; i < sizeof (CMDS_ResetScore); i++ ) {
52
+ register_trigger_clcmd (CMDS_ResetScore[i], " hCMD_ResetScore" )
53
+ }
54
+
55
+ g_eCustomForwards[iFwdPlayerResetScore] = CreateMultiForward (" CSDM_PlayerResetScore" , ET_IGNORE, FP_CELL)
34
56
}
35
57
36
58
public plugin_cfg ()
@@ -132,6 +154,10 @@ public ReadCfg(const szLineData[], const iSectionID)
132
154
if (ContainFlag (szValue, " t" ))
133
155
g_bitHideHudFlags |= HIDEHUD_TIMER
134
156
}
157
+ else if (equali (szKey, " allow_reset_score" ))
158
+ {
159
+ g_bAllowResetScore = true ;
160
+ }
135
161
}
136
162
137
163
CheckForwards ()
@@ -165,3 +191,24 @@ CheckForwards()
165
191
iMsgHookHideWeapon = 0
166
192
}
167
193
}
194
+
195
+ public hCMD_ResetScore (const pPlayer) {
196
+ if (! g_bAllowResetScore)
197
+ return PLUGIN_CONTINUE
198
+
199
+ if (is_nullent (pPlayer))
200
+ return PLUGIN_CONTINUE
201
+
202
+ new ret;
203
+ ExecuteForward (g_eCustomForwards[iFwdPlayerResetScore], ret, pPlayer)
204
+
205
+ if (ret == PLUGIN_HANDLED)
206
+ return PLUGIN_CONTINUE
207
+
208
+ set_entvar (pPlayer, var_frags, 0 .0 )
209
+ set_member (pPlayer, m_iDeaths, 0 )
210
+
211
+ client_print_color (pPlayer, print_team_grey, " ^4[CSDM] % L" , pPlayer, " CHAT_RESETSCORE" )
212
+
213
+ return PLUGIN_HANDLED
214
+ }
0 commit comments