Member
|
01-23-2010
, 22:19
Questions About :Bool
|
#1
|
Target:
I was trying to make every round call a function that randomly pick randomly number of clients to become humans and change their team to "CT", the rest shall become zombies which it's team is "T". A human classes menu will appear only for humans.
Problem:
1. I not sure weither the function that randomly pick randomly number of clients is called or the human classes menu were called, because the human classes didn't show.
2. Should i use hook the speed or using playerthink will do ?
3. I can't figure how to change the remaining clients after the "CT" were pick to become "T".
4. How to use bool ?
5. Game hangs when using this plugin-in.
Codes:
PHP Code:
/*================================================================================ ----------------------------------- -*- Dead World -*- ----------------------------------- ~~~~~~~~~~~~~~~ - Description - ~~~~~~~~~~~~~~~ Currently none. ================================================================================*/
/*================================================================================ [ Include Customization ] =================================================================================*/
#include < amxmodx > #include < fakemeta > #include < amxmisc > #include < fun > #include < cstrike >
/*================================================================================ [ Game Variable Customization ] =================================================================================*/
new g_iMsgSayText, g_iMaxPlayers, g_iDelay, g_iHumanClasses[ 33 ] new bool:g_iZombie[ 33 ]
/*================================================================================ [ Plugin ini Customization ] =================================================================================*/
public plugin_init( ) { register_plugin( "Dead World" , "1.0", "Merc3y" ) register_forward( FM_PlayerPreThink, "fw_PlayerPreThink" ) register_logevent( "logevent_round_start", 2, "1=Round_Start" ) register_concmd( "amx_deadworld", "Toggle", ADMIN_LEVEL_D, " < 1 = on | 0 = off >" ) register_cvar( "deadworld_toggle", "0" ) g_iDelay = register_cvar( "deadworld_delay", "10.0" ) g_iMsgSayText = get_user_msgid( "SayText" ) g_iMaxPlayers = get_maxplayers( ) }
/*================================================================================ [ Game Customization ] =================================================================================*/
public Game_Start( id ) { #define NUMS 4 new iNum, players[ 32 ] new randomnums[ NUMS ] get_players( players, iNum, "a" ) for ( new i=0; i<= sizeof( randomnums ); i++ ) { randomnums[ i ] = random_num( 1, iNum ) if ( i != 0 ) { for( new j=0; j<i; j++ ) { if ( randomnums[ i ] == randomnums[ j ] ) { i-- break } } } } for ( new a=0; a<=iNum; a++ ) { for ( new b=0; b<=NUMS; b++ ) { if ( players[ a ] == players[ randomnums[ b ] ] ) { cs_set_user_team( players[ randomnums[ a ] ], CS_TEAM_CT ) g_iZombie[ id ] = false } else { cs_set_user_team( players[ randomnums[ b ] ], CS_TEAM_T ) g_iZombie[ id ] = true } } }
if ( is_user_alive( id ) && !g_iZombie[ id ] ) { set_task( 1.0, "Human_Class_Menu", id ) g_iZombie[ id ] = false }
else if ( is_user_alive( id ) && g_iZombie[ id ] ) { g_iZombie[ id ] = true remove_task( id ) } }
/*================================================================================ [ Human Class Customization ] =================================================================================*/
public Human_Class_Menu( id ) { new menu = menu_create( "Human Class Menu", "Human_Class_Menu_Handler" ) menu_additem( menu, "Sniper", "1", 0 ) menu_additem( menu, "Combat", "2", 0 ) menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ) menu_display( id, menu, 0 ) }
public Human_Class_Menu_Handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ) return PLUGIN_HANDLED } new data[ 6 ], iName[ 64 ] new access, callback menu_item_getinfo( menu, item, access, data, 5, iName, 63, callback ) new key = str_to_num( data ) switch( key ) { case 1: { g_iHumanClasses [ id ] = 1 strip_user_weapons( id ) set_user_health( id, 100 ) set_user_armor( id, 50 ) cs_set_user_nvg( id, 1 ) give_item( id, "weapon_awp" ) give_item( id, "weapon_deagle" ) cs_set_user_bpammo( id, CSW_AWP, 30 ) cs_set_user_bpammo( id, CSW_DEAGLE, 56 ) client_printcolor( id, "/gYou have chosen sniper." ) }
case 2: { g_iHumanClasses[ id ] = 1
strip_user_weapons( id ) set_user_health( id, 150 ) set_user_armor( id, 35 ) give_item( id, "weapon_m4a1" ) give_item( id, "weapon_ak47" ) give_item( id, "weapon_deagle" ) cs_set_user_bpammo( id, CSW_M4A1, 90 ) cs_set_user_bpammo( id, CSW_AK47, 90 ) cs_set_user_bpammo( id, CSW_DEAGLE, 56 ) client_printcolor( id, "/gYou have chosen combat." ) } } menu_destroy( menu ) return PLUGIN_HANDLED }
/*================================================================================ [ Human Speed Customization ] =================================================================================*/
public fw_PlayerPreThink( id ) { if ( g_iHumanClasses[ id ] == 0 ) { set_user_maxspeed( id, 250.0 ) }
if ( g_iHumanClasses[ id ] == 1 ) { set_user_maxspeed( id, 230.0 ) } }
/*================================================================================ [ Toggle Customization ] =================================================================================*/
public Toggle( id, level, cid ) { if ( !cmd_access( id, level, cid, 2 ) ) { return PLUGIN_HANDLED } new arg1[ 32 ] read_argv( 1, arg1, 31 ) if ( str_to_num( arg1 ) ) { set_cvar_num( "deadworld_toggle", 1 ) server_cmd( "sv_restartround 10" ) } else { set_cvar_num( "deadworld_toggle", 0 ) server_cmd( "sv_restartround 10" ) } return PLUGIN_HANDLED }
/*================================================================================ [ Event Customization ] =================================================================================*/
public logevent_round_start( ) { if ( get_cvar_num( "deadworld_toggle" ) == 1 ) { for ( new i = 1; i <= g_iMaxPlayers; i++ ) { set_task( get_pcvar_float( g_iDelay ), "Game_Start" ) } } }
/*================================================================================ [ Stock Customization ] =================================================================================*/ stock client_printcolor( const id, const input[ ], any:... ) { new iCount = 1, iPlayers[ 32 ] static szMsg[ 191 ] vformat( szMsg, charsmax( szMsg ), input, 3 ) replace_all( szMsg, 190, "/g", "^4" ) replace_all( szMsg, 190, "/y", "^1" ) replace_all( szMsg, 190, "/ctr", "^3" ) replace_all( szMsg, 190, "/w", "^0" ) if ( id ) iPlayers[ 0 ] = id else get_players( iPlayers, iCount, "ch" ) for ( new i = 0; i < iCount; i++ ) { if ( is_user_connected( iPlayers[ i ] ) ) { message_begin( MSG_ONE_UNRELIABLE, g_iMsgSayText, _, iPlayers[ i ] ) write_byte( iPlayers[ i ] ) write_string( szMsg ) message_end( ) } } }
__________________
How I Wish That I Can Host Without Any Problem.
|
|