268 |
#include <cstrike> |
#include <cstrike> |
269 |
#include <cstrike2> |
#include <cstrike2> |
270 |
|
|
271 |
#define VERSION "a3.7.0 Nov 17 16:17 MST" |
new const VERSION[ ] = "a3.7.1 Nov 18 06:22 MST" |
272 |
|
new const TRKCVAR[ ] = "climb_version" |
273 |
|
new const DONOTHING[ ] = "donothing" |
274 |
|
new const NULLSTR[ ] = "" |
275 |
|
|
276 |
#define IN_ATTACK_EITHER ( IN_ATTACK + IN_ATTACK2 ) |
#define IN_ATTACK_EITHER ( IN_ATTACK + IN_ATTACK2 ) |
277 |
|
|
392 |
#define CF_COUNTDOWN (1<<11) |
#define CF_COUNTDOWN (1<<11) |
393 |
#define CF_SUNGLASSES (1<<12) |
#define CF_SUNGLASSES (1<<12) |
394 |
|
|
|
new WPN_CLASS[30][17] = { "weapon_p228", |
|
|
"", |
|
|
"weapon_scout", |
|
|
"", //"weapon_hegrenade", |
|
|
"weapon_xm1014", |
|
|
"", //"weapon_c4", |
|
|
"weapon_mac10", |
|
|
"weapon_aug", |
|
|
"", //"weapon_smokegrenade", |
|
|
"weapon_elite", |
|
|
"weapon_fiveseven", |
|
|
"weapon_ump45", |
|
|
"weapon_sg550", |
|
|
"weapon_galil", |
|
|
"weapon_famas", |
|
|
"weapon_usp", |
|
|
"weapon_glock18", |
|
|
"weapon_awp", |
|
|
"weapon_mp5navy", |
|
|
"weapon_m249", |
|
|
"weapon_m3", |
|
|
"weapon_m4a1", |
|
|
"weapon_tmp", |
|
|
"weapon_g3sg1", |
|
|
"", //"weapon_flashbang", |
|
|
"weapon_deagle", |
|
|
"weapon_sg552", |
|
|
"weapon_ak47", |
|
|
"", //"weapon_knife", |
|
|
"weapon_p90" } |
|
|
|
|
395 |
new SVC_STATUSICON, SVC_TEAMINFO, SVC_ROUNDTIME, SVC_FLASHLIGHT, SVC_SCREENFADE |
new SVC_STATUSICON, SVC_TEAMINFO, SVC_ROUNDTIME, SVC_FLASHLIGHT, SVC_SCREENFADE |
396 |
|
|
397 |
new SCORES_PATH[100], HSCORES_PATH[100] |
new SCORES_PATH[100], HSCORES_PATH[100] |
401 |
//////////////////////////////////////////////////////////////////////////////// |
//////////////////////////////////////////////////////////////////////////////// |
402 |
public plugin_init( ) |
public plugin_init( ) |
403 |
{ |
{ |
|
MAXPLAYERS = get_maxplayers( ) |
|
404 |
register_plugin( "Climb", VERSION, "Ian Cammarata" ) |
register_plugin( "Climb", VERSION, "Ian Cammarata" ) |
405 |
register_cvar( "climb_version", VERSION, FCVAR_SERVER ) |
register_cvar( TRKCVAR, VERSION, FCVAR_SERVER ) |
406 |
|
set_cvar_string( TRKCVAR, VERSION ) |
|
//This line is for nightly builds only, to keep tracking cvar updated. |
|
|
set_cvar_string( "climb_version", VERSION ) |
|
407 |
|
|
408 |
p_climb = register_cvar( "climb", "0", FCVAR_SERVER ) |
p_climb = register_cvar( "climb", "0", FCVAR_SERVER ) |
409 |
p_auto = register_cvar( "climb_auto", "1" ) |
p_auto = register_cvar( "climb_auto", "1" ) |
414 |
register_cvar( "climb_save", "1" ) |
register_cvar( "climb_save", "1" ) |
415 |
register_cvar( "climb_db_type", "sqlite" ) |
register_cvar( "climb_db_type", "sqlite" ) |
416 |
register_cvar( "climb_db_host", "127.0.0.1" ) |
register_cvar( "climb_db_host", "127.0.0.1" ) |
417 |
register_cvar( "climb_db_user", "" ) |
register_cvar( "climb_db_user", NULLSTR ) |
418 |
register_cvar( "climb_db_pass", "", FCVAR_PROTECTED ) |
register_cvar( "climb_db_pass", NULLSTR, FCVAR_PROTECTED ) |
419 |
register_cvar( "climb_db_name", "climb" ) |
register_cvar( "climb_db_name", "climb" ) |
420 |
register_cvar( "climb_db_prefix", "climb_" ) |
register_cvar( "climb_db_prefix", "climb_" ) |
421 |
register_cvar( "climb_db_serverid", "" ) |
register_cvar( "climb_db_serverid", NULLSTR ) |
422 |
register_cvar( "climb_db_exists", "0" ) |
register_cvar( "climb_db_exists", "0" ) |
423 |
|
|
424 |
p_msg_r = register_cvar( "climb_msg_r", "0" ) |
p_msg_r = register_cvar( "climb_msg_r", "0" ) |
436 |
p_start_respawn = register_cvar( "climb_start_respawn", "0" ) |
p_start_respawn = register_cvar( "climb_start_respawn", "0" ) |
437 |
p_water_nodraw = register_cvar( "climb_water_nodraw", "0" ) |
p_water_nodraw = register_cvar( "climb_water_nodraw", "0" ) |
438 |
|
|
439 |
p_stats_hsurl = register_cvar( "climb_stats_hsurl", "" ) //Use %s in place of map name |
p_stats_hsurl = register_cvar( "climb_stats_hsurl", NULLSTR ) //Use %s in place of map name |
440 |
p_stats_msg = register_cvar( "climb_stats_msg", "" ) |
p_stats_msg = register_cvar( "climb_stats_msg", NULLSTR ) |
441 |
|
|
442 |
p_allow_spectators = get_cvar_pointer( "allow_spectators" ) |
p_allow_spectators = get_cvar_pointer( "allow_spectators" ) |
443 |
p_teambalance = get_cvar_pointer( "mp_autoteambalance" ) |
p_teambalance = get_cvar_pointer( "mp_autoteambalance" ) |
444 |
p_limitteams = get_cvar_pointer( "mp_limitteams" ) |
p_limitteams = get_cvar_pointer( "mp_limitteams" ) |
445 |
|
|
446 |
|
MAXPLAYERS = get_maxplayers( ) |
447 |
|
|
448 |
TEAM_BALANCE_OLD = get_pcvar_num( p_teambalance ) |
TEAM_BALANCE_OLD = get_pcvar_num( p_teambalance ) |
449 |
LIMIT_TEAMS_OLD = get_pcvar_num( p_limitteams ) |
LIMIT_TEAMS_OLD = get_pcvar_num( p_limitteams ) |
450 |
|
|
476 |
//Commands referencing function 'donothing' are picked up by the more flexible code in the client_command forward. |
//Commands referencing function 'donothing' are picked up by the more flexible code in the client_command forward. |
477 |
register_clcmd( "say help", "help_msg" ) |
register_clcmd( "say help", "help_msg" ) |
478 |
register_clcmd( "say /help", "help_msg" ) |
register_clcmd( "say /help", "help_msg" ) |
479 |
register_clcmd( "climbhelp", "donothing", 0, "- Veiw climb help." ) |
register_clcmd( "climbhelp", DONOTHING, 0, "- Veiw climb help." ) |
480 |
register_clcmd( "cp", "donothing", _, "- Make a checkpoint" ) |
register_clcmd( "cp", DONOTHING, _, "- Make a checkpoint" ) |
481 |
register_clcmd( "gc", "donothing", _, "- Teleport to last checkpoint" ) |
register_clcmd( "gc", DONOTHING, _, "- Teleport to last checkpoint" ) |
482 |
register_clcmd( "stuck", "donothing", _, "- Teleport to previous checkpoint" ) |
register_clcmd( "stuck", DONOTHING, _, "- Teleport to previous checkpoint" ) |
483 |
register_clcmd( "restart","donothing", _, "- Stop and respawn." ) |
register_clcmd( "restart", DONOTHING, _, "- Stop and respawn." ) |
484 |
register_clcmd( "stop", "donothing", _, "- End current climbing run." ) |
register_clcmd( "stop", DONOTHING, _, "- End current climbing run." ) |
485 |
register_clcmd( "pause", "donothing", _, "- Pause yourself." ) |
register_clcmd( "pause", DONOTHING, _, "- Pause yourself." ) |
486 |
register_clcmd( "scoreboard", "donothing", _, "- View score board." ) |
register_clcmd( "scoreboard", DONOTHING, _, "- View score board." ) |
487 |
register_clcmd( "respawn", "donothing", _, "- Force respawn" ) |
register_clcmd( "respawn", DONOTHING, _, "- Force respawn" ) |
488 |
register_clcmd( "boost", "donothing", _, "- Boost." ) |
register_clcmd( "boost", DONOTHING, _, "- Boost." ) |
489 |
register_clcmd( "spec", "donothing", _, "- Spectate mode." ) |
register_clcmd( "spec", DONOTHING, _, "- Spectate mode." ) |
490 |
register_clcmd( "ungc", "donothing", _, "- Undo last gocheck." ) |
register_clcmd( "ungc", DONOTHING, _, "- Undo last gocheck." ) |
491 |
|
|
492 |
//Commands related to stats account system. |
//Commands related to stats account system. |
493 |
//register_clcmd( "register", "reg", _, "- (Console Only) Register for stats tracking." ) |
//register_clcmd( "register", "reg", _, "- (Console Only) Register for stats tracking." ) |
511 |
//Events |
//Events |
512 |
register_event("DeathMsg","DeathMsg","a") |
register_event("DeathMsg","DeathMsg","a") |
513 |
register_event("ResetHUD","ResetHUD","b") |
register_event("ResetHUD","ResetHUD","b") |
514 |
register_event("Health","damage","b") |
register_event("Health","Health","b") |
515 |
register_event("ShowMenu","menuclass","b","4&CT_Select","4&Terrorist_Select") |
register_event("ShowMenu","menuclass","b","4&CT_Select","4&Terrorist_Select") |
516 |
register_event("ShowMenu","menuteam","b","4&Team_Select_Spect","4&Team_Select","4&IG_Team_Select") |
register_event("ShowMenu","menuteam","b","4&Team_Select_Spect","4&Team_Select","4&IG_Team_Select") |
517 |
|
|
527 |
set_task( 5.0, "run_tasks", _, _, _, "b" ) |
set_task( 5.0, "run_tasks", _, _, _, "b" ) |
528 |
|
|
529 |
register_message( get_user_msgid( "CurWeapon" ), "CurWeapon" ) |
register_message( get_user_msgid( "CurWeapon" ), "CurWeapon" ) |
|
register_message( get_user_msgid( "ReqState" ), "bot_msg_block" ) |
|
|
register_message( get_user_msgid( "Radar" ), "bot_msg_block" ) |
|
530 |
|
|
531 |
register_forward( FM_UpdateClientData, "PostUpdateClientData", 1 ) |
register_forward( FM_UpdateClientData, "PostUpdateClientData", 1 ) |
532 |
|
|
927 |
|
|
928 |
//erase previous save if exists |
//erase previous save if exists |
929 |
for( new i=0; i<32; i++ ) |
for( new i=0; i<32; i++ ) |
930 |
if( equal( saveid, steamid[i] ) ) steamid[i] = "" |
if( equal( saveid, steamid[i] ) ) steamid[i] = NULLSTR |
931 |
|
|
932 |
if( timer[id][TMR_CFLAGS] & CF_START ) change_status( id, CF_PAUSE ) //Pause if running |
if( timer[id][TMR_CFLAGS] & CF_START ) change_status( id, CF_PAUSE ) //Pause if running |
933 |
steamid[savepos] = saveid //save steamid to position reference |
steamid[savepos] = saveid //save steamid to position reference |
1228 |
|
|
1229 |
client_oldwpn[id] = wpn |
client_oldwpn[id] = wpn |
1230 |
|
|
1231 |
|
if( wpn == CSW_C4 || |
1232 |
|
wpn == CSW_HEGRENADE || |
1233 |
|
wpn == CSW_FLASHBANG || |
1234 |
|
wpn == CSW_SMOKEGRENADE || |
1235 |
|
wpn == CSW_KNIFE |
1236 |
|
) return PLUGIN_CONTINUE |
1237 |
|
|
1238 |
//If it's a gun, update pack and clip ammo & silencer |
//If it's a gun, update pack and clip ammo & silencer |
1239 |
if( strlen( WPN_CLASS[wpn-1] ) ) |
new wpn_id = get_user_weapon( id ) |
|
{ |
|
|
new wpn_id = find_ent_by_owner( -1, WPN_CLASS[wpn-1], id ) |
|
1240 |
if( !wpn_id ) return PLUGIN_CONTINUE |
if( !wpn_id ) return PLUGIN_CONTINUE |
1241 |
|
|
1242 |
new clip = get_msg_arg_int( 3 ) |
new clip = get_msg_arg_int( 3 ) |
1265 |
set_msg_arg_int( 3, ARG_BYTE, maxammo ) |
set_msg_arg_int( 3, ARG_BYTE, maxammo ) |
1266 |
cs_set_weapon_ammo( wpn_id, maxammo ) |
cs_set_weapon_ammo( wpn_id, maxammo ) |
1267 |
} |
} |
|
} |
|
1268 |
|
|
1269 |
return PLUGIN_CONTINUE |
return PLUGIN_CONTINUE |
1270 |
} |
} |
1325 |
formatex( ret_name, len, name ) |
formatex( ret_name, len, name ) |
1326 |
} |
} |
1327 |
|
|
|
public bot_msg_block(msg_id,msg_dest,id) |
|
|
{ |
|
|
if(get_pcvar_num(p_climb)&&is_user_bot(id))return PLUGIN_HANDLED |
|
|
return PLUGIN_CONTINUE |
|
|
} |
|
|
|
|
1328 |
public DeathMsg( ) |
public DeathMsg( ) |
1329 |
{//Respawn client when they die unless switching to spec |
{//Respawn client when they die unless switching to spec |
1330 |
if( get_pcvar_num( p_climb ) ) |
if( get_pcvar_num( p_climb ) ) |
2146 |
|
|
2147 |
formatex( line, 250, |
formatex( line, 250, |
2148 |
"%s%d %s%s %s %s%s %s%d%s", |
"%s%d %s%s %s %s%s %s%d%s", |
2149 |
i % 2 ? "" : "<div>", |
i % 2 ? NULLSTR : "<div>", |
2150 |
i, htmlspecialchars( name ), |
i, htmlspecialchars( name ), |
2151 |
getuserstatus( tid ), |
getuserstatus( tid ), |
2152 |
parsetime( ctime ), ctime_str, |
parsetime( ctime ), ctime_str, |
2153 |
parsetime( btime ), btime_str, |
parsetime( btime ), btime_str, |
2154 |
timer[tid][TMR_MAPFIN], |
timer[tid][TMR_MAPFIN], |
2155 |
i % 2 ? "" : "</div>" ) |
i % 2 ? NULLSTR : "</div>" ) |
2156 |
written_len += strlen( line ) |
written_len += strlen( line ) |
2157 |
//if( limit && written_len > ( 1263 - strlen( cust_msg ) ) ) break |
//if( limit && written_len > ( 1263 - strlen( cust_msg ) ) ) break |
2158 |
if( written_len > 1263 ) break |
if( written_len > 1263 ) break |
2372 |
//////////////////////////////////////////////////////////////////////////////// |
//////////////////////////////////////////////////////////////////////////////// |
2373 |
// Start: Auto Heal functions |
// Start: Auto Heal functions |
2374 |
//////////////////////////////////////////////////////////////////////////////// |
//////////////////////////////////////////////////////////////////////////////// |
2375 |
public damage(id){//Called when client takes damage |
public Health( id ) |
2376 |
|
{//Called when client takes damage |
2377 |
new ida[1] |
new ida[1] |
2378 |
ida[0]=id |
ida[0]=id |
2379 |
set_task(0.1,"damage_handle",_,ida,1) |
set_task(0.1,"damage_handle",_,ida,1) |
3719 |
|
|
3720 |
formatex( line, 150,\ |
formatex( line, 150,\ |
3721 |
"%s%d %s%s %s %d%s", |
"%s%d %s%s %s %d%s", |
3722 |
i % 2 ? "" : "<div>", |
i % 2 ? NULLSTR : "<div>", |
3723 |
i, htmlspecialchars( name ), |
i, htmlspecialchars( name ), |
3724 |
parsetime( SQL_ReadResult( query, 1 ) ), |
parsetime( SQL_ReadResult( query, 1 ) ), |
3725 |
btime_str, |
btime_str, |
3726 |
SQL_ReadResult( query, 4 ), |
SQL_ReadResult( query, 4 ), |
3727 |
i % 2 ? "" : "</div>" ) |
i % 2 ? NULLSTR : "</div>" ) |
3728 |
written_len += strlen( line ) |
written_len += strlen( line ) |
3729 |
if( written_len > 1263 ) break |
if( written_len > 1263 ) break |
3730 |
fprintf( fh, line ) |
fprintf( fh, line ) |