1 |
/* |
/* |
2 |
SpecInfo v1.3 |
SpecInfo v1.3.1 |
3 |
Copyright (C) 2007 Ian (Juan) Cammarata |
Copyright (C) 2007-2008 Ian (Juan) Cammarata |
4 |
|
|
5 |
This program is free software: you can redistribute it and/or modify |
This program is free software: you can redistribute it and/or modify |
6 |
it under the terms of the GNU Affero General Public License as |
it under the terms of the GNU Affero General Public License as |
16 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
18 |
http://ian.cammarata.us |
http://ian.cammarata.us |
19 |
Nov 21 11:13 |
Jan 05 17:39 |
20 |
|
|
21 |
|
|
22 |
Description: |
Description: |
61 |
Change Log: |
Change Log: |
62 |
Key (+ added | - removed | c changed | f fixed) |
Key (+ added | - removed | c changed | f fixed) |
63 |
|
|
64 |
|
v1.3.1 (Jan 5, 2008) |
65 |
|
f: Eliminated a bug introduced in 1.3 as well as the occasional index out of bounds error it caused. |
66 |
|
|
67 |
v1.3 (Nov 21, 2007) |
v1.3 (Nov 21, 2007) |
68 |
+: Command "/showkeys" to view your own keys. |
+: Command "/showkeys" to view your own keys. |
69 |
c: Minor code optimizations. |
c: Minor code optimizations. |
91 |
#include <engine> |
#include <engine> |
92 |
#include <fakemeta> |
#include <fakemeta> |
93 |
|
|
94 |
new const VERSION[ ] = "1.3" |
new const VERSION[ ] = "1.3.1" |
95 |
new const TRKCVAR[ ] = "specinfo_version" |
new const TRKCVAR[ ] = "specinfo_version" |
96 |
#define IMMUNE_FLAG ADMIN_IMMUNITY |
#define IMMUNE_FLAG ADMIN_IMMUNITY |
97 |
|
|
99 |
#define LIST_STR_LEN 610 |
#define LIST_STR_LEN 610 |
100 |
#define BOTH_STR_LEN KEYS_STR_LEN+LIST_STR_LEN |
#define BOTH_STR_LEN KEYS_STR_LEN+LIST_STR_LEN |
101 |
|
|
|
//cvar pointers |
|
|
new p_enabled, p_list_enabled, p_keys_enabled, p_list_default, p_keys_default |
|
|
new p_red, p_grn, p_blu, p_immunity |
|
|
|
|
|
//data arrays |
|
|
new cl_keys[33], cl_prefs[33] |
|
|
new keys_string[33][KEYS_STR_LEN+1], list_string[33][LIST_STR_LEN+1] |
|
|
new cl_names[33][21], spec_ids[33][32] |
|
|
|
|
102 |
//cl_prefs constants |
//cl_prefs constants |
103 |
#define FL_LIST (1<<0) |
#define FL_LIST (1<<0) |
104 |
#define FL_KEYS (1<<1) |
#define FL_KEYS (1<<1) |
105 |
#define FL_OWNKEYS (1<<2) |
#define FL_OWNKEYS (1<<2) |
106 |
#define FL_HIDE (1<<3) |
#define FL_HIDE (1<<3) |
107 |
|
|
108 |
|
//cvar pointers |
109 |
|
new p_enabled, p_list_enabled, p_keys_enabled, p_list_default, p_keys_default; |
110 |
|
new p_red, p_grn, p_blu, p_immunity; |
111 |
|
|
112 |
|
//data arrays |
113 |
|
new cl_keys[33], cl_prefs[33]; |
114 |
|
new keys_string[33][KEYS_STR_LEN + 1], list_string[33][LIST_STR_LEN + 1] |
115 |
|
new cl_names[33][21], spec_ids[33][33]; |
116 |
|
|
117 |
public plugin_init( ) |
public plugin_init( ) |
118 |
{ |
{ |
119 |
register_plugin( "SpecInfo", VERSION, "Ian Cammarata" ) |
register_plugin( "SpecInfo", VERSION, "Ian Cammarata" ); |
120 |
register_cvar( TRKCVAR, VERSION, FCVAR_SERVER ) |
register_cvar( TRKCVAR, VERSION, FCVAR_SERVER ); |
121 |
set_cvar_string( TRKCVAR, VERSION ) |
set_cvar_string( TRKCVAR, VERSION ); |
122 |
|
|
123 |
p_enabled = register_cvar( "si_enabled", "1" ) |
p_enabled = register_cvar( "si_enabled", "1" ); |
124 |
p_list_enabled = register_cvar( "si_list_enabled", "1" ) |
p_list_enabled = register_cvar( "si_list_enabled", "1" ); |
125 |
p_keys_enabled = register_cvar( "si_keys_enabled", "1" ) |
p_keys_enabled = register_cvar( "si_keys_enabled", "1" ); |
126 |
p_list_default = register_cvar( "si_list_default", "1" ) |
p_list_default = register_cvar( "si_list_default", "1" ); |
127 |
p_keys_default = register_cvar( "si_keys_default", "1" ) |
p_keys_default = register_cvar( "si_keys_default", "1" ); |
128 |
p_immunity = register_cvar( "si_immunity", "1" ) |
p_immunity = register_cvar( "si_immunity", "1" ); |
129 |
p_red = register_cvar( "si_msg_r", "45" ) |
p_red = register_cvar( "si_msg_r", "45" ); |
130 |
p_grn = register_cvar( "si_msg_g", "89" ) |
p_grn = register_cvar( "si_msg_g", "89" ); |
131 |
p_blu = register_cvar( "si_msg_b", "116" ) |
p_blu = register_cvar( "si_msg_b", "116" ); |
132 |
|
|
133 |
register_clcmd( "say /speclist", "toggle_list", _, "Toggle spectator list." ) |
register_clcmd( "say /speclist", "toggle_list", _, "Toggle spectator list." ); |
134 |
register_clcmd( "say /speckeys", "toggle_keys", _, "Toggle spectator keys." ) |
register_clcmd( "say /speckeys", "toggle_keys", _, "Toggle spectator keys." ); |
135 |
register_clcmd( "say /showkeys", "toggle_ownkeys", _, "Toggle viewing own keys." ) |
register_clcmd( "say /showkeys", "toggle_ownkeys", _, "Toggle viewing own keys." ); |
136 |
register_clcmd( "say /spechide", "toggle_hide", IMMUNE_FLAG, "Admins toggle being hidden from list." ) |
register_clcmd( "say /spechide", "toggle_hide", IMMUNE_FLAG, "Admins toggle being hidden from list." ); |
137 |
|
|
138 |
set_task( 1.0, "list_update", _, _, _, "b" ) |
set_task( 1.0, "list_update", _, _, _, "b" ); |
139 |
set_task( 0.1, "keys_update", _, _, _, "b" ) |
set_task( 0.1, "keys_update", _, _, _, "b" ); |
140 |
|
|
141 |
register_dictionary( "specinfo.txt" ) |
register_dictionary( "specinfo.txt" ); |
142 |
} |
} |
143 |
|
|
144 |
public client_connect( id ) |
public client_connect( id ) |
145 |
{ |
{ |
146 |
cl_prefs[id] = 0 |
cl_prefs[id] = 0; |
147 |
if( !is_user_bot( id ) ) |
if( !is_user_bot( id ) ) |
148 |
{ |
{ |
149 |
if( get_pcvar_num( p_list_default ) ) cl_prefs[id] |= FL_LIST |
if( get_pcvar_num( p_list_default ) ) cl_prefs[id] |= FL_LIST; |
150 |
if( get_pcvar_num( p_keys_default ) ) cl_prefs[id] |= FL_KEYS |
if( get_pcvar_num( p_keys_default ) ) cl_prefs[id] |= FL_KEYS; |
151 |
} |
} |
152 |
get_user_name( id, cl_names[id], 20 ) |
get_user_name( id, cl_names[id], 20 ); |
153 |
return PLUGIN_CONTINUE |
return PLUGIN_CONTINUE; |
154 |
} |
} |
155 |
|
|
156 |
public client_infochanged( id ) |
public client_infochanged( id ) |
157 |
{ |
{ |
158 |
get_user_name( id, cl_names[id], 20 ) |
get_user_name( id, cl_names[id], 20 ); |
159 |
return PLUGIN_CONTINUE |
return PLUGIN_CONTINUE; |
160 |
} |
} |
161 |
|
|
162 |
public list_update( ) |
public list_update( ) |
163 |
{ |
{ |
164 |
if( get_pcvar_num( p_enabled ) && get_pcvar_num ( p_list_enabled ) ) |
if( get_pcvar_num( p_enabled ) && get_pcvar_num ( p_list_enabled ) ) |
165 |
{ |
{ |
166 |
new players[32], num, id, id2, i, j |
new players[32], num, id, id2, i, j; |
167 |
for( i=1; i<33; i++ ) spec_ids[i][0] = 0 |
for( i = 1; i < 33; i++ ) spec_ids[i][0] = 0; |
168 |
get_players( players, num, "bch" ) |
|
169 |
|
get_players( players, num, "bch" ); |
170 |
for( i=0; i<num; i++ ) |
for( i=0; i<num; i++ ) |
171 |
{ |
{ |
172 |
id = players[i] |
id = players[i]; |
173 |
if( !( get_user_flags( id ) & IMMUNE_FLAG && get_pcvar_num( p_immunity ) && cl_prefs[id] & FL_HIDE ) ) |
if( !( get_user_flags( id ) & IMMUNE_FLAG && get_pcvar_num( p_immunity ) && cl_prefs[id] & FL_HIDE ) ) |
174 |
{ |
{ |
175 |
id2 = pev( id, pev_iuser2 ) |
id2 = pev( id, pev_iuser2 ); |
176 |
if( id2 ) |
if( id2 ) |
177 |
{ |
{ |
178 |
spec_ids[ id2 - 1 ][ 0 ]++ |
spec_ids[ id2 ][ 0 ]++; |
179 |
spec_ids[ id2 - 1 ][ spec_ids[ id2 - 1 ][ 0 ] ] = id |
spec_ids[ id2 ][ spec_ids[ id2 ][ 0 ] ] = id; |
180 |
} |
} |
181 |
} |
} |
182 |
} |
} |
183 |
new tmplist[ LIST_STR_LEN + 1 ], tmpstr[41] |
new tmplist[ LIST_STR_LEN + 1 ], tmpstr[41]; |
184 |
new count, namelen, tmpname[21] |
new count, namelen, tmpname[21]; |
185 |
for( i=1; i<33; i++ ) |
for( i=1; i<33; i++ ) |
186 |
{ |
{ |
187 |
count = spec_ids[i][0] |
count = spec_ids[i][0]; |
188 |
if( count ) |
if( count ) |
189 |
{ |
{ |
190 |
namelen = ( LIST_STR_LEN - 10 ) / count |
namelen = ( LIST_STR_LEN - 10 ) / count; |
191 |
clamp( namelen, 10, 20 ) |
clamp( namelen, 10, 20 ); |
192 |
format( tmpname, namelen, cl_names[i] ) |
format( tmpname, namelen, cl_names[i] ); |
193 |
formatex( tmplist, LIST_STR_LEN - 1, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t(%d) %s %s:^n", count, "%L", tmpname) |
formatex( tmplist, LIST_STR_LEN - 1, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t(%d) %s %s:^n", count, "%L", tmpname); |
194 |
for( j=1; j<=count; j++ ) |
for( j=1; j<=count; j++ ) |
195 |
{ |
{ |
196 |
format( tmpname, namelen, cl_names[spec_ids[i][j]]) |
format( tmpname, namelen, cl_names[spec_ids[i][j]]); |
197 |
formatex( tmpstr, 40, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t%s", tmpname ) |
formatex( tmpstr, 40, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t%s", tmpname ); |
198 |
if( strlen( tmplist ) + strlen( tmpstr ) + ( 11 - j ) < ( LIST_STR_LEN - 1 ) ) |
if( strlen( tmplist ) + strlen( tmpstr ) + ( 11 - j ) < ( LIST_STR_LEN - 1 ) ) |
199 |
format( tmplist, LIST_STR_LEN-10, "%s%s^n", tmplist, tmpstr ) |
format( tmplist, LIST_STR_LEN - 10, "%s%s^n", tmplist, tmpstr ); |
200 |
else |
else |
201 |
{ |
{ |
202 |
format( tmplist, LIST_STR_LEN, "%s...^n", tmplist ) |
format( tmplist, LIST_STR_LEN, "%s...^n", tmplist ); |
203 |
break |
break; |
204 |
} |
} |
205 |
} |
} |
206 |
if( count < 10 ) |
if( count < 10 ) |
207 |
format( tmplist, LIST_STR_LEN, |
format( tmplist, LIST_STR_LEN, |
208 |
"%s^n^n^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^tSpecInfo v%s^n", |
"%s^n^n^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^tSpecInfo v%s^n", |
209 |
tmplist, VERSION |
tmplist, VERSION |
210 |
) |
); |
211 |
for( j+=0; j<10; j++ ) |
for( j+=0; j<10; j++ ) |
212 |
format( tmplist, LIST_STR_LEN, "%s%s", tmplist, "^n" ) |
format( tmplist, LIST_STR_LEN, "%s%s", tmplist, "^n" ); |
213 |
list_string[i] = tmplist |
list_string[i] = tmplist; |
214 |
} |
} |
215 |
} |
} |
216 |
get_players( players, num, "ch" ) |
get_players( players, num, "ch" ); |
217 |
for( i=0; i<num; i++ ) clmsg( players[i] ) |
for( i=0; i<num; i++ ) clmsg( players[i] ); |
218 |
} |
} |
219 |
return PLUGIN_HANDLED |
return PLUGIN_HANDLED; |
220 |
} |
} |
221 |
|
|
222 |
public keys_update( ) |
public keys_update( ) |
223 |
{ |
{ |
224 |
if( !get_pcvar_num( p_enabled ) && !get_pcvar_num( p_keys_enabled ) ) return |
if( !get_pcvar_num( p_enabled ) && !get_pcvar_num( p_keys_enabled ) ) return; |
225 |
|
|
226 |
new players[32], num, id, i |
new players[32], num, id, i; |
227 |
get_players( players, num, "a" ) |
get_players( players, num, "a" ); |
228 |
for( i = 0; i < num; i++ ) |
for( i = 0; i < num; i++ ) |
229 |
{ |
{ |
230 |
id = players[i] |
id = players[i]; |
231 |
formatex( keys_string[id], KEYS_STR_LEN, " ^n^t^t%s^t^t^t%s^n^t%s %s %s^t^t%s", |
formatex( keys_string[id], KEYS_STR_LEN, " ^n^t^t%s^t^t^t%s^n^t%s %s %s^t^t%s", |
232 |
cl_keys[id] & IN_FORWARD ? "W" : " .", |
cl_keys[id] & IN_FORWARD ? "W" : " .", |
233 |
"%L", |
"%L", |
235 |
cl_keys[id] & IN_BACK ? "S" : ".", |
cl_keys[id] & IN_BACK ? "S" : ".", |
236 |
cl_keys[id] & IN_MOVERIGHT ? "D" : ".", |
cl_keys[id] & IN_MOVERIGHT ? "D" : ".", |
237 |
"%L" |
"%L" |
238 |
) |
); |
239 |
|
|
240 |
//Flags stored in string to fill translation char in clmsg function |
//Flags stored in string to fill translation char in clmsg function |
241 |
keys_string[id][0] = 0 |
keys_string[id][0] = 0; |
242 |
if( cl_keys[id] & IN_JUMP ) keys_string[id][0] |= IN_JUMP |
if( cl_keys[id] & IN_JUMP ) keys_string[id][0] |= IN_JUMP; |
243 |
if( cl_keys[id] & IN_DUCK ) keys_string[id][0] |= IN_DUCK |
if( cl_keys[id] & IN_DUCK ) keys_string[id][0] |= IN_DUCK; |
244 |
|
|
245 |
cl_keys[id] = 0 |
cl_keys[id] = 0; |
246 |
} |
} |
247 |
|
|
248 |
new id2 |
new id2; |
249 |
get_players( players, num, "ch" ) |
get_players( players, num, "ch" ); |
250 |
for( i=0; i<num; i++ ) |
for( i=0; i<num; i++ ) |
251 |
{ |
{ |
252 |
id = players[i] |
id = players[i]; |
253 |
if( is_user_alive( id ) ) |
if( is_user_alive( id ) ) |
254 |
{ |
{ |
255 |
if( cl_prefs[id] & FL_OWNKEYS ) clmsg( id ) |
if( cl_prefs[id] & FL_OWNKEYS ) clmsg( id ); |
256 |
} |
} |
257 |
else |
else |
258 |
{ |
{ |
259 |
id2 = pev( id, pev_iuser2 ) |
id2 = pev( id, pev_iuser2 ); |
260 |
if( cl_prefs[id] & FL_KEYS && id2 && id2 != id ) clmsg( id ) |
if( cl_prefs[id] & FL_KEYS && id2 && id2 != id ) clmsg( id ); |
261 |
} |
} |
262 |
} |
} |
263 |
|
|
267 |
{ |
{ |
268 |
if( get_pcvar_num( p_enabled ) && get_pcvar_num( p_keys_enabled ) ) |
if( get_pcvar_num( p_enabled ) && get_pcvar_num( p_keys_enabled ) ) |
269 |
{ |
{ |
270 |
new players[32], num, id |
new players[32], num, id; |
271 |
get_players( players, num, "a" ) |
get_players( players, num, "a" ); |
272 |
for( new i = 0; i < num; i++ ) |
for( new i = 0; i < num; i++ ) |
273 |
{ |
{ |
274 |
id = players[i] |
id = players[i]; |
275 |
if( get_user_button( id ) & IN_FORWARD ) |
if( get_user_button( id ) & IN_FORWARD ) |
276 |
cl_keys[id] |= IN_FORWARD |
cl_keys[id] |= IN_FORWARD; |
277 |
if( get_user_button( id ) & IN_BACK ) |
if( get_user_button( id ) & IN_BACK ) |
278 |
cl_keys[id] |= IN_BACK |
cl_keys[id] |= IN_BACK; |
279 |
if( get_user_button( id ) & IN_MOVELEFT ) |
if( get_user_button( id ) & IN_MOVELEFT ) |
280 |
cl_keys[id] |= IN_MOVELEFT |
cl_keys[id] |= IN_MOVELEFT; |
281 |
if( get_user_button( id ) & IN_MOVERIGHT ) |
if( get_user_button( id ) & IN_MOVERIGHT ) |
282 |
cl_keys[id] |= IN_MOVERIGHT |
cl_keys[id] |= IN_MOVERIGHT; |
283 |
if( get_user_button( id ) & IN_DUCK ) |
if( get_user_button( id ) & IN_DUCK ) |
284 |
cl_keys[id] |= IN_DUCK |
cl_keys[id] |= IN_DUCK; |
285 |
if( get_user_button( id ) & IN_JUMP ) |
if( get_user_button( id ) & IN_JUMP ) |
286 |
cl_keys[id] |= IN_JUMP |
cl_keys[id] |= IN_JUMP; |
287 |
} |
} |
288 |
} |
} |
289 |
return PLUGIN_CONTINUE |
return PLUGIN_CONTINUE |
291 |
|
|
292 |
public clmsg( id ) |
public clmsg( id ) |
293 |
{ |
{ |
294 |
if( !id ) return |
if( !id ) return; |
295 |
|
|
296 |
new prefs = cl_prefs[id] |
new prefs = cl_prefs[id]; |
297 |
|
|
298 |
new bool:show_own = false |
new bool:show_own = false; |
299 |
if( is_user_alive( id ) && prefs & FL_OWNKEYS ) show_own = true |
if( is_user_alive( id ) && prefs & FL_OWNKEYS ) show_own = true; |
300 |
|
|
301 |
if( is_user_alive( id ) && !show_own ) |
if( is_user_alive( id ) && !show_own ) |
302 |
{ |
{ |
314 |
0.1, /*fade in*/ |
0.1, /*fade in*/ |
315 |
0.1, /*fade out*/ |
0.1, /*fade out*/ |
316 |
3 /*chan*/ |
3 /*chan*/ |
317 |
) |
); |
318 |
show_hudmessage( id, list_string[id], id, "SPECTATING" ) |
show_hudmessage( id, list_string[id], id, "SPECTATING" ); |
319 |
} |
} |
320 |
} |
} |
321 |
else |
else |
322 |
{ |
{ |
323 |
new id2 |
new id2; |
324 |
if( show_own ) id2 = id |
if( show_own ) id2 = id; |
325 |
else id2 = pev( id, pev_iuser2 ) |
else id2 = pev( id, pev_iuser2 ); |
326 |
if( !id2 ) return |
if( !id2 ) return; |
327 |
|
|
328 |
if( prefs & FL_LIST || prefs & FL_KEYS || show_own ) |
if( prefs & FL_LIST || prefs & FL_KEYS || show_own ) |
329 |
{ |
{ |
339 |
0.1, /*fade in*/ |
0.1, /*fade in*/ |
340 |
0.1, /*fade out*/ |
0.1, /*fade out*/ |
341 |
3 /*chan*/ |
3 /*chan*/ |
342 |
) |
); |
343 |
new msg[BOTH_STR_LEN+1] |
new msg[BOTH_STR_LEN + 1]; |
344 |
if( prefs & FL_LIST && get_pcvar_num( p_list_enabled ) && spec_ids[id2][0] ) |
if( prefs & FL_LIST && get_pcvar_num( p_list_enabled ) && spec_ids[id2][0] ) |
345 |
formatex(msg,BOTH_STR_LEN,list_string[id2],id,"SPECTATING") |
formatex(msg,BOTH_STR_LEN,list_string[id2],id,"SPECTATING"); |
346 |
else msg ="^n^n^n^n^n^n^n^n^n^n^n^n" |
else msg ="^n^n^n^n^n^n^n^n^n^n^n^n"; |
347 |
if( get_pcvar_num( p_keys_enabled ) && ( prefs & FL_KEYS || show_own ) ) |
if( get_pcvar_num( p_keys_enabled ) && ( prefs & FL_KEYS || show_own ) ) |
348 |
{ |
{ |
349 |
format( msg, BOTH_STR_LEN, "%s%s", msg, keys_string[id2][1] ) |
format( msg, BOTH_STR_LEN, "%s%s", msg, keys_string[id2][1] ); |
350 |
format( msg, BOTH_STR_LEN, msg, |
format( msg, BOTH_STR_LEN, msg, |
351 |
id, keys_string[id2][0] & IN_JUMP ? "JUMP" : "LAME", |
id, keys_string[id2][0] & IN_JUMP ? "JUMP" : "LAME", |
352 |
id, keys_string[id2][0] & IN_DUCK ? "DUCK" : "LAME" |
id, keys_string[id2][0] & IN_DUCK ? "DUCK" : "LAME" |
353 |
) |
); |
354 |
} |
} |
355 |
show_hudmessage( id, msg ) |
show_hudmessage( id, msg ); |
356 |
} |
} |
357 |
} |
} |
358 |
} |
} |
371 |
0.0, /*fade in*/ |
0.0, /*fade in*/ |
372 |
0.0, /*fade out*/ |
0.0, /*fade out*/ |
373 |
-1 /*chan*/ |
-1 /*chan*/ |
374 |
) |
); |
375 |
} |
} |
376 |
|
|
377 |
public toggle_list( id ) |
public toggle_list( id ) |
378 |
{ |
{ |
379 |
set_hudmsg_flg_notify( ) |
set_hudmsg_flg_notify( ); |
380 |
cl_prefs[id] ^= FL_LIST |
cl_prefs[id] ^= FL_LIST; |
381 |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_LIST ? "SPEC_LIST_ENABLED" : "SPEC_LIST_DISABLED" ) |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_LIST ? "SPEC_LIST_ENABLED" : "SPEC_LIST_DISABLED" ); |
382 |
return PLUGIN_HANDLED |
return PLUGIN_HANDLED; |
383 |
} |
} |
384 |
|
|
385 |
public toggle_keys( id ) |
public toggle_keys( id ) |
386 |
{ |
{ |
387 |
set_hudmsg_flg_notify( ) |
set_hudmsg_flg_notify( ); |
388 |
cl_prefs[id] ^= FL_KEYS |
cl_prefs[id] ^= FL_KEYS; |
389 |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_KEYS ? "SPEC_KEYS_ENABLED" : "SPEC_KEYS_DISABLED" ) |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_KEYS ? "SPEC_KEYS_ENABLED" : "SPEC_KEYS_DISABLED" ); |
390 |
return PLUGIN_HANDLED |
return PLUGIN_HANDLED; |
391 |
} |
} |
392 |
|
|
393 |
public toggle_ownkeys( id ) |
public toggle_ownkeys( id ) |
394 |
{ |
{ |
395 |
set_hudmsg_flg_notify( ) |
set_hudmsg_flg_notify( ); |
396 |
cl_prefs[id] ^= FL_OWNKEYS |
cl_prefs[id] ^= FL_OWNKEYS; |
397 |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_OWNKEYS ? "SPEC_OWNKEYS_ENABLED" : "SPEC_OWNKEYS_DISABLED" ) |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_OWNKEYS ? "SPEC_OWNKEYS_ENABLED" : "SPEC_OWNKEYS_DISABLED" ); |
398 |
return PLUGIN_HANDLED |
return PLUGIN_HANDLED; |
399 |
} |
} |
400 |
|
|
401 |
public toggle_hide( id, level, cid ) |
public toggle_hide( id, level, cid ) |
402 |
{ |
{ |
403 |
if( cmd_access( id, level, cid, 0 ) ) |
if( cmd_access( id, level, cid, 0 ) ) |
404 |
{ |
{ |
405 |
set_hudmsg_flg_notify( ) |
set_hudmsg_flg_notify( ); |
406 |
cl_prefs[id] ^= FL_HIDE |
cl_prefs[id] ^= FL_HIDE; |
407 |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_HIDE ? "SPEC_HIDE_ENABLED" : "SPEC_HIDE_DISABLED" ) |
show_hudmessage( id, "%L", id, cl_prefs[id] & FL_HIDE ? "SPEC_HIDE_ENABLED" : "SPEC_HIDE_DISABLED" ); |
408 |
} |
} |
409 |
return PLUGIN_HANDLED |
return PLUGIN_HANDLED; |
410 |
} |
} |