--- specinfo.sma 2007/11/18 00:28:03 20 +++ specinfo.sma 2007/11/18 00:28:32 21 @@ -1,5 +1,5 @@ /* -SpecInfo v1.2 +SpecInfo v1.3 Copyright (C) 2007 Ian (Juan) Cammarata This program is free software; you can redistribute it and/or modify it under @@ -53,12 +53,16 @@ Supported Languages: English (100%) Spanish (100%) - Thanks to <3 Mely <3 for checking these. -German (78%) - Thanks to [S]killer for this translation. +German (63%) - Thanks to [S]killer for this translation. Change Log: Key (+ added | - removed | c changed | f fixed) +v1.3 (Nov xx, 2007) ++: Command "/showkeys" to view your own keys. +c: Minor code optimizations. + v1.2 (Jul 14, 2007) +: Command "say /spechide" for immune to toggle hidden state. c: Lots of code optimizations. @@ -82,7 +86,7 @@ #include #include -#define VERSION "1.2" +#define VERSION "1.3b1" #define IMMUNE_FLAG ADMIN_IMMUNITY #define KEYS_STR_LEN 31 @@ -94,30 +98,58 @@ new p_red, p_grn, p_blu, p_immunity //data arrays -new cl_keys[32], cl_prefs[32] -new keys_string[32][KEYS_STR_LEN+1], list_string[32][LIST_STR_LEN+1] -new cl_names[32][21], spec_ids[32][32] +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] //cl_prefs constants -#define FL_LIST (1<<0) -#define FL_KEYS (1<<1) -#define FL_HIDE (1<<2) +#define FL_LIST (1<<0) +#define FL_KEYS (1<<1) +#define FL_OWNKEYS (1<<2) +#define FL_HIDE (1<<3) + +public plugin_init( ) +{ + register_plugin( "SpecInfo", VERSION, "Ian Cammarata" ) + register_cvar( "specinfo_version", VERSION, FCVAR_SERVER ) + set_cvar_string( "specinfo_version", VERSION ) + + p_enabled = register_cvar( "si_enabled", "1" ) + p_list_enabled = register_cvar( "si_list_enabled", "1" ) + p_keys_enabled = register_cvar( "si_keys_enabled", "1" ) + p_list_default = register_cvar( "si_list_default", "1" ) + p_keys_default = register_cvar( "si_keys_default", "1" ) + p_immunity = register_cvar( "si_immunity", "1" ) + p_red = register_cvar( "si_msg_r", "45" ) + p_grn = register_cvar( "si_msg_g", "89" ) + p_blu = register_cvar( "si_msg_b", "116" ) + + register_clcmd( "say /speclist", "toggle_list", _, "Toggle spectator list." ) + register_clcmd( "say /speckeys", "toggle_keys", _, "Toggle spectator keys." ) + register_clcmd( "say /showkeys", "toggle_ownkeys", _, "Toggle viewing own keys." ) + register_clcmd( "say /spechide", "toggle_hide", IMMUNE_FLAG, "Admins toggle being hidden from list." ) + + set_task( 1.0, "list_update", _, _, _, "b" ) + set_task( 0.1, "keys_update", _, _, _, "b" ) + + register_dictionary( "specinfo.txt" ) +} public client_connect( id ) { - cl_prefs[id-1] = 0 + cl_prefs[id] = 0 if( !is_user_bot( id ) ) { - if( get_pcvar_num( p_list_default ) ) cl_prefs[id-1] |= FL_LIST - if( get_pcvar_num( p_keys_default ) ) cl_prefs[id-1] |= FL_KEYS + if( get_pcvar_num( p_list_default ) ) cl_prefs[id] |= FL_LIST + if( get_pcvar_num( p_keys_default ) ) cl_prefs[id] |= FL_KEYS } - get_user_name( id, cl_names[id-1], 20 ) + get_user_name( id, cl_names[id], 20 ) return PLUGIN_CONTINUE } public client_infochanged( id ) { - get_user_name( id, cl_names[id-1], 20 ) + get_user_name( id, cl_names[id], 20 ) return PLUGIN_CONTINUE } @@ -126,12 +158,12 @@ if( get_pcvar_num( p_enabled ) && get_pcvar_num ( p_list_enabled ) ) { new players[32], num, id, id2, i, j - for( i=1; i<33; i++ ) spec_ids[i-1][0] = 0 + for( i=1; i<33; i++ ) spec_ids[i][0] = 0 get_players( players, num, "bch" ) for( i=0; i