Offline |
|
Csatlakozott: 2019.12.06. 20:00 Hozzászólások: 158
Megköszönt másnak: 13 alkalommal
|
✪ BeNiCh' írta: Tessék. #include <amxmodx> #include <engine> new const Version[] = "0.3"; enum BombSites { BOMBSITE_A, BOMBSITE_B } new g_iBombSiteEntity[ BombSites ]; new bool:g_bBombSiteStatus[ BombSites ]; new g_iPlayerWithBomb; new bool:g_bPlayerHoldingBomb; new g_iHUDEntity; new g_pCVarAllowPlantNum; new g_pCVarLockSiteNum; new g_pCVarLockSite; public plugin_init( ) { register_plugin( "BombSite Lock" , Version , "bugsy" ); register_concmd( "bl_setbombsite" , "SetBombSiteConsole" , ADMIN_KICK ); register_concmd( "bl_bombsitemenu" , "ShowBombSiteMenu" , ADMIN_KICK ); register_event( "CurWeapon" , "fw_EvCurWeapon" , "b" , "1=1" ); register_event( "WeapPickup", "fw_EvWeapPickup" , "be" , "1=6" ); register_event( "BombDrop" , "fw_EvBombDrop" , "bc" ); register_logevent( "fw_EvRoundStart" , 2 , "1=Round_Start" ); g_pCVarAllowPlantNum = register_cvar( "bl_allowplantctnum" , "0" ); g_pCVarLockSiteNum = register_cvar( "bl_locksitectnum" , "5" ); g_pCVarLockSite = register_cvar( "bl_locksite" , "b" ); g_iHUDEntity = create_entity( "info_target" ); entity_set_string( g_iHUDEntity , EV_SZ_classname , "bl_hud_entity" ); register_think( "bl_hud_entity" , "fw_HUDEntThink" ); new szMap[ 11 ] , BombSites:bsBombSiteA , BombSites:bsBombSiteB; get_mapname( szMap , charsmax( szMap ) ); if ( equal( szMap , "de_chateau" ) || equal( szMap , "de_dust2" ) || equal( szMap , "de_train" ) ) { bsBombSiteA = BOMBSITE_B; bsBombSiteB = BOMBSITE_A; } else { bsBombSiteA = BOMBSITE_A; bsBombSiteB = BOMBSITE_B; } g_iBombSiteEntity[ bsBombSiteA ] = find_ent_by_class( -1 , "func_bomb_target" ); g_iBombSiteEntity[ bsBombSiteB ] = find_ent_by_class( g_iBombSiteEntity[ bsBombSiteA ] , "func_bomb_target" ); } public client_disconnect( id ) { if ( g_iPlayerWithBomb == id ) { g_iPlayerWithBomb = 0; g_bPlayerHoldingBomb = false; } } public fw_EvCurWeapon( id ) { if ( id == g_iPlayerWithBomb ) { if ( read_data( 2 ) == CSW_C4 ) { g_bPlayerHoldingBomb = true; entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) ); } else { g_bPlayerHoldingBomb = false; } } } public fw_EvWeapPickup( id ) { g_iPlayerWithBomb = id; } public fw_EvBombDrop() { g_iPlayerWithBomb = 0; g_bPlayerHoldingBomb = false; } public fw_EvRoundStart() { new iAllowPlantNum = get_pcvar_num( g_pCVarAllowPlantNum ); new iLockSiteNum = get_pcvar_num( g_pCVarLockSiteNum ); new iPlayers[ 32 ] , iNum , iCTCount; get_players( iPlayers , iNum , "h" ); for ( new i = 0 ; i < iNum ; i++ ) if ( get_user_team( iPlayers[ i ] ) == 2 ) iCTCount++; if ( iCTCount < iAllowPlantNum ) { SetBombSiteLock( BOMBSITE_A , true ); SetBombSiteLock( BOMBSITE_B , true ); client_print( 0 , print_chat , " Bombalerakó (A & B) lezárva, ameddig %d CT 1nem lesz." , iAllowPlantNum ); } else if ( iCTCount < iLockSiteNum ) { new szSite[ 2 ]; get_pcvar_string( g_pCVarLockSite , szSite , charsmax( szSite ) ); szSite[ 0 ] = toupper( szSite[ 0 ] ); if ( !( 'A' <= szSite[ 0 ] <= 'B' ) ) return PLUGIN_CONTINUE; SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_A : BOMBSITE_B , true ); SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_B : BOMBSITE_A , false ); print_color( 0 , "!g[Informacio] !yBombalerakó !t(%s) !ylezárva, ameddig !t%d !yCT nem lesz." , szSite , iLockSiteNum ); } else { SetBombSiteLock( BOMBSITE_A , false ); SetBombSiteLock( BOMBSITE_B , false ); } return PLUGIN_CONTINUE; } public SetBombSiteConsole( id , AdminLevel ) { if ( !( get_user_flags( id ) & AdminLevel ) ) { console_print( id , "* Nincs engedelyed ehhez a parancshoz." ); return PLUGIN_HANDLED; } if ( !g_iBombSiteEntity[ BOMBSITE_A ] || !g_iBombSiteEntity[ BOMBSITE_B ] ) { console_print( id , "* Bombalerakó Lezáras: Ezen a pályán nem engedélyezett!" ); return PLUGIN_HANDLED; } new szSite[ 3 ] , szState[ 3 ] , iState , BombSites:bsSite; read_argv( 1 , szSite , charsmax( szSite ) ); read_argv( 2 , szState , charsmax( szState ) ); iState = str_to_num( szState ); if ( ( strlen( szSite ) > 1 ) || !is_str_num( szState ) || !( 0 <= iState <= 1 ) ) szSite[ 0 ] = 'X'; else szSite[ 0 ] = toupper( szSite[ 0 ] ); switch ( szSite[ 0 ] ) { case 'A': { bsSite = BOMBSITE_A; } case 'B': { bsSite = BOMBSITE_B; } default: { console_print( id , "* Bombalerakó lezárása: Ismeretlen argumentum! Megfelelő: 'fb_setbombsite a\b 0\1'" ); return PLUGIN_HANDLED; } } SetBombSiteLock( bsSite , bool:iState ); console_print( id , "* Bombalerakó (%s) jelenleg %s" , szSite , iState ? "szabad" : "zart" ); set_hudmessage( 255 , 255 , 255 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 ); show_hudmessage( 0 , "Bombalerakó (%s) jelenleg %s" , szSite , iState ? "szabad" : "zart" ); return PLUGIN_HANDLED; } public ShowBombSiteMenu( id , AdminLevel ) { if ( !( get_user_flags( id ) & AdminLevel ) ) { console_print( id , "* Nincs engedélyed ehhez a parancshoz." ); return PLUGIN_HANDLED; } if ( !g_iBombSiteEntity[ BOMBSITE_A ] || !g_iBombSiteEntity[ BOMBSITE_B ] ) { console_print( id , "* Bombalerakó Lezárás: Ezen a pályán nem engedélyezett!" ); return PLUGIN_HANDLED; } new iMenu = menu_create( "Bombalerakó zárolas menü" , "MenuHandler" ); new iCallBack = menu_makecallback( "MenuCallBack" ); menu_additem( iMenu , "A zarolasa" , .callback = iCallBack ); menu_additem( iMenu , "B zarolasa" , .callback = iCallBack ); menu_additem( iMenu , "A feloldasa" , .callback = iCallBack ); menu_additem( iMenu , "B feloldasa" , .callback = iCallBack ); menu_additem( iMenu , "A & B zarolasa" , .callback = iCallBack ); menu_additem( iMenu , "A & B feloldasa" , .callback = iCallBack ); menu_display( id , iMenu ); return PLUGIN_HANDLED; } public MenuCallBack( id , iMenu, iItem ) { new iRetVal; switch ( iItem ) { case 0: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] ? ITEM_DISABLED : ITEM_ENABLED; case 1: iRetVal = g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_DISABLED : ITEM_ENABLED; case 2: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] ? ITEM_ENABLED : ITEM_DISABLED; case 3: iRetVal = g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_ENABLED : ITEM_DISABLED; case 4: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_DISABLED : ITEM_ENABLED; case 5: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_ENABLED : ITEM_DISABLED; } return iRetVal; } public MenuHandler( id , iMenu , iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( iMenu ); return PLUGIN_HANDLED; } set_hudmessage( 255 , 255 , 255 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 ); switch ( iItem ) { case 0: { SetBombSiteLock( BOMBSITE_A , true ); show_hudmessage( 0 , "Bombalerakó (A) lezárva" ); } case 1: { SetBombSiteLock( BOMBSITE_B , true ); show_hudmessage( 0 , "Bombalerakó (B) lezárva" ); } case 2: { SetBombSiteLock( BOMBSITE_A , false ); show_hudmessage( 0 , "Bombalerakó (A) feloldva" ); } case 3: { SetBombSiteLock( BOMBSITE_B , false ); show_hudmessage( 0 , "Bombalerakó (B) feloldva" ); } case 4: { SetBombSiteLock( BOMBSITE_A , true ); SetBombSiteLock( BOMBSITE_B , true ); show_hudmessage( 0 , "Bombalerakó (A & B) lezárva" ); } case 5: { SetBombSiteLock( BOMBSITE_A , false ); SetBombSiteLock( BOMBSITE_B , false ); show_hudmessage( 0 , "Bombalerakó (A & B) feloldva" ); } } menu_destroy( iMenu ); return PLUGIN_HANDLED; } public fw_HUDEntThink( iEntity ) { if( g_bPlayerHoldingBomb && ( g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) && ( iEntity == g_iHUDEntity ) && is_user_alive( g_iPlayerWithBomb ) ) { set_hudmessage( 255 , 255 , 255 , -1.0 , 0.87 , 0 , 1.0 , 1.0 , .channel = -1 ); show_hudmessage( g_iPlayerWithBomb , "Bombalerakó%s %s%s%s %s jelenleg lezárva!" , g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "s" : "" , g_bBombSiteStatus[ BOMBSITE_A ] ? "A" : "" , g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? " & " : "" , g_bBombSiteStatus[ BOMBSITE_B ] ? "B" : "" , g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "are" : "" ); entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) ); } } SetBombSiteLock( BombSites:bsBombSite , bool:bLockState ) { entity_set_int( g_iBombSiteEntity[ bsBombSite ] , EV_INT_solid , bLockState ? SOLID_NOT : SOLID_TRIGGER ); g_bBombSiteStatus[ bsBombSite ] = bLockState; if ( bLockState ) entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) ); } stock print_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]) write_string(msg) message_end() } } } return PLUGIN_HANDLED }
sajnos vannak benne bugok pl: fy_mapokon lebenek a fegyverek,ha eldobod eltünik /* * BombSite Lock * Version: 0.4 * Author: Bugsy * * * Description * * This plugin allows you to lock bombsite(s), preventing them from being used. * When a bombsite is locked, the player currently holding the bomb will have a HUD message indicating which bombsite(s) are locked. * Bombsite locks will remain from round to round but not between map changes. * There are cvars to control if and how bombsites are automatically locked depending on the number of CT players on the server. * * * Commands * * amx_setbombsite <A|B> <0|1> - unlocks/locks the specified bombsite * amx_bombsitemenu - displays bomb site lock menu * * * CVars * * bl_allowplantctnum - Minimum number of CT players required to allow bomb planting (both sites would be locked if less). * Default: 0 (0=disabled or any number as # CT of players) * bl_locksitectnum - Minimum number of CT players required to have both bombsites open for planting. If there are less CT players, one of the bombsites (defined by cvar bl_locksite) will be locked. * Default: 2 (0=disabled or any number as # CT of players) * bl_locksite - The bombsite that will be locked if the number of CT players is less than bl_locksitectnum value. * Default: b (Must be a or b) * * * Modules * * VexdUM * * * ChangeLog * * 0.4 * Fixed support for all maps, but not for more than two bombsites (supports now the "info_bomb_target" entities). * Plugin will be unitialized if there are not two bombsites found at least. * 0.3 * Added support for all maps (experimental). * Bombsites on all of the standard CS maps with an A and B designation should all work properly according to A and B naming. * Maps without an A and B designation will still be treated as A and B by the plugin; A and B is chosen by * the plugin based on which bombsite entity is spawned first. * If you notice a map where A and B are handled by the plugin oppositely, let me know and I can correct it. * Menu will now display only the available commands for use. ie, if A is already locked, "Lock A" menu item will be disabled etc. * Fixed bug which affected the HUD being displayed to the user holding the bomb. * Added cvars to control auto-locking of bombsites. See above. * 0.2 * Initial release * */ /******************************************************************************/ // If you change one of the following settings, do not forget to recompile // the plugin and to install the new .amx file on your server. // You can find the list of admin flags in the amx/examples/include/amxconst.inc file. #define FLAG_AMX_SETBOMBSITE ADMIN_CVAR #define FLAG_AMX_BOMBSITEMENU ADMIN_CVAR /******************************************************************************/ #include <translator> #include <amxmodx> #include <amxmisc> #include <VexdUM> enum BombSites { BOMBSITE_A, BOMBSITE_B } new g_iBombSiteEntity[ BombSites ]; new bool:g_bBombSiteStatus[ BombSites ]; new bool:g_bIsBombSiteInfo[ BombSites ]; new Float:g_flBombSiteInfoOrigins[ BombSites ][3]; new g_iPlayerWithBomb; new bool:g_bPlayerHoldingBomb; new g_iHUDEntity; new g_pCVarAllowPlantNum; new g_pCVarLockSiteNum; new g_pCVarLockSite; public plugin_init( ) { load_translations( "bombsite_lock" ); register_plugin( _T( "BombSite Lock" ) , "0.4" , "Bugsy" ); new szMap[ 11 ] , BombSites:bsBombSiteA , BombSites:bsBombSiteB; get_mapname( szMap , charsmax( szMap ) ); if ( equal( szMap , "de_chateau" ) || equal( szMap , "de_dust2" , 8 ) || equal( szMap , "de_train" ) ) { bsBombSiteA = BOMBSITE_B; bsBombSiteB = BOMBSITE_A; } else { bsBombSiteA = BOMBSITE_A; bsBombSiteB = BOMBSITE_B; } g_iBombSiteEntity[ bsBombSiteA ] = find_entity( -1 , "func_bomb_target" ); if ( g_iBombSiteEntity[ bsBombSiteA ] <= 0 ) { g_iBombSiteEntity[ bsBombSiteA ] = find_entity( -1 , "info_bomb_target" ); if ( g_iBombSiteEntity[ bsBombSiteA ] > 0 ) { g_bIsBombSiteInfo[ bsBombSiteA ] = true; entity_get_vector( g_iBombSiteEntity[ bsBombSiteA ] , EV_VEC_origin , g_flBombSiteInfoOrigins[ bsBombSiteA ] ); } } g_iBombSiteEntity[ bsBombSiteB ] = find_entity( g_iBombSiteEntity[ bsBombSiteA ] , "func_bomb_target" ); if ( g_iBombSiteEntity[ bsBombSiteB ] <= 0 ) { g_iBombSiteEntity[ bsBombSiteB ] = find_entity( g_iBombSiteEntity[ bsBombSiteA ] , "info_bomb_target" ); if ( g_iBombSiteEntity[ bsBombSiteB ] > 0 ) { g_bIsBombSiteInfo[ bsBombSiteB ] = true; entity_get_vector( g_iBombSiteEntity[ bsBombSiteB ] , EV_VEC_origin , g_flBombSiteInfoOrigins[ bsBombSiteB ] ); } } if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 ) { server_print( _T( "* BombSite Lock: Map ^"%s^" is not supported. Plugin uninitialized." ) , szMap ); return; } register_concmd( "amx_setbombsite" , "SetBombSiteConsole" , FLAG_AMX_SETBOMBSITE , _T( "<A|B> <0|1> - feloldja / lezárja a megadott bombát" ) ); register_concmd( "amx_bombsitemenu" , "ShowBombSiteMenu" , FLAG_AMX_BOMBSITEMENU , _T( "- megjeleníti a bombahely zárolás menü" ) ); g_pCVarAllowPlantNum = register_cvar( "bl_allowplantctnum" , "0" ); g_pCVarLockSiteNum = register_cvar( "bl_locksitectnum" , "2" ); g_pCVarLockSite = register_cvar( "bl_locksite" , "b" ); register_event( "CurWeapon" , "fw_EvCurWeapon" , "b" , "1=1" ); register_event( "WeapPickup", "fw_EvWeapPickup" , "be" , "1=6" ); register_event( "BombDrop" , "fw_EvBombDrop" , "bc" ); register_logevent( "fw_EvRoundStart" , 2 , "1=Round_Start" ); register_menucmd( register_menuid( "\yBombSite Lock Menu" ) , (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9) , "CommandBombSiteMenu" ); g_iHUDEntity = create_entity( "info_target" ); entity_set_string( g_iHUDEntity , EV_SZ_classname , "bl_hud_entity" ); } public client_disconnect( id ) { if ( g_iPlayerWithBomb == id ) { g_iPlayerWithBomb = 0; g_bPlayerHoldingBomb = false; } } public fw_EvCurWeapon( id ) { if ( id == g_iPlayerWithBomb ) { if ( read_data( 2 ) == CSW_C4 ) { g_bPlayerHoldingBomb = true; entity_set_float( g_iHUDEntity , EV_FL_nextthink , get_gametime() + 1.0 ); } else { g_bPlayerHoldingBomb = false; } } } public fw_EvWeapPickup( id ) { g_iPlayerWithBomb = id; } public fw_EvBombDrop() { g_iPlayerWithBomb = 0; g_bPlayerHoldingBomb = false; } public fw_EvRoundStart() { new iAllowPlantNum = get_cvarptr_num( g_pCVarAllowPlantNum ); new iLockSiteNum = get_cvarptr_num( g_pCVarLockSiteNum ); new iPlayers[ 32 ] , iNum , iCTCount; get_players( iPlayers , iNum , "h" ); for ( new i = 0 ; i < iNum ; i++ ) if ( get_user_team( iPlayers[ i ] ) == 2 ) iCTCount++; if ( iCTCount < iAllowPlantNum ) { SetBombSiteLock( BOMBSITE_A , true ); SetBombSiteLock( BOMBSITE_B , true ); client_print( 0 , print_chat , _T( "* Bomba A és B egyaránt zárolva vannak, mivel kevesebb van %d CT." ) , iAllowPlantNum ); } else if ( iCTCount < iLockSiteNum ) { new szSite[ 2 ]; get_cvarptr_string( g_pCVarLockSite , szSite , charsmax( szSite ) ); szSite[ 0 ] = toupper( szSite[ 0 ] ); if ( !( 'A' <= szSite[ 0 ] <= 'B' ) ) return; SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_A : BOMBSITE_B , true ); SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_B : BOMBSITE_A , false ); client_print( 0 , print_chat , _T( "* Bomba %s már lezárt, mivel kevesebb van %d CT." ) , szSite , iLockSiteNum ); } else { SetBombSiteLock( BOMBSITE_A , false ); SetBombSiteLock( BOMBSITE_B , false ); } } public SetBombSiteConsole( id , AdminLevel , CommandId ) { if ( !cmd_access( id , AdminLevel , CommandId , 3 ) ) { return PLUGIN_HANDLED; } /*if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 ) { console_print( id , _T( "* Bomba Zárolás: sajnálom, ez a pálya nem támogatott." ) ); return PLUGIN_HANDLED; }*/ new szSite[ 3 ] , szState[ 3 ] , iState , BombSites:bsSite; read_argv( 1 , szSite , charsmax( szSite ) ); read_argv( 2 , szState , charsmax( szState ) ); iState = str_to_num( szState ); if ( strlen( szSite ) > 1 || !is_str_num( szState ) || !( 0 <= iState <= 1 ) ) szSite[ 0 ] = 'X'; else szSite[ 0 ] = toupper( szSite[ 0 ] ); switch ( szSite[ 0 ] ) { case 'A': { bsSite = BOMBSITE_A; } case 'B': { bsSite = BOMBSITE_B; } default: { console_print( id , _T( "Usage: amx_setbombsite <A|B> <0|1> - feloldja / lezárja a megadott bombát" ) ); return PLUGIN_HANDLED; } } SetBombSiteLock( bsSite , bool:iState ); console_print( id , _T( "* Bomba %s volt %s." ) , szSite , iState ? _T( "zárt" ) : _T( "nyitva" ) ); set_hudmessage( 255 , 165 , 000 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 ); show_hudmessage( 0 , _T( "Bomba %s volt %s..." ) , szSite , iState ? _T( "zárt" ) : _T( "nyitva" ) ); return PLUGIN_HANDLED; } public ShowBombSiteMenu( id , AdminLevel ) { if ( !access( id , AdminLevel ) ) { console_print( id , _T( "Nincs hozzáférése ehhez a parancshoz." ) ); return PLUGIN_HANDLED; } /*if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 ) { console_print( id , _T( "* Bomba Zárolás: sajnálom, ez a pálya nem támogatott." ) ); return PLUGIN_HANDLED; }*/ DisplayBombSiteMenu( id ); return PLUGIN_HANDLED; } DisplayBombSiteMenu( id ) { new szMenu[ 256 ] , iKeys = (1<<9); new iLen = copy( szMenu , charsmax( szMenu ) , _T( "\yBomba Zárolás menü\w" , id ) ); if ( g_bBombSiteStatus[ BOMBSITE_A ] ) iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\d1. Zár A" , id ) ); else { iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\w1. Zár A" , id ) ); iKeys |= (1<<0); } if ( g_bBombSiteStatus[ BOMBSITE_B ] ) iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d2. Zár B" , id ) ); else { iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w2. Zár B" , id ) ); iKeys |= (1<<1); } if ( g_bBombSiteStatus[ BOMBSITE_A ] ) { iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w3. Kinyit A" , id ) ); iKeys |= (1<<2); } else iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d3. Kinyit A" , id ) ); if ( g_bBombSiteStatus[ BOMBSITE_B ] ) { iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w4. Kinyit B" , id ) ); iKeys |= (1<<3); } else iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d4. Kinyit B" , id ) ); if ( g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ) iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d5. Zár A & B" , id ) ); else { iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w5. Zár A & B" , id ) ); iKeys |= (1<<4); } if (g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) { iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w6. Kinyit A & B" , id ) ); iKeys |= (1<<5); } else iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d6. Kinyit A & B" , id ) ); iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\w0. Exit" , id ) ); show_menu( id , iKeys , szMenu , _ , "\yBomba Zárolás menü" ); } public CommandBombSiteMenu( id , iKey ) { set_hudmessage( 255 , 165 , 000 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 ); switch ( iKey ) { case 0: { SetBombSiteLock( BOMBSITE_A , true ); show_hudmessage( 0 , _T( "Bomba A Lezárva..." ) ); } case 1: { SetBombSiteLock( BOMBSITE_B , true ); show_hudmessage( 0 , _T( "Bomba B Lezárva..." ) ); } case 2: { SetBombSiteLock( BOMBSITE_A , false ); show_hudmessage( 0 , _T( "Bomba A fel van oldva..." ) ); } case 3: { SetBombSiteLock( BOMBSITE_B , false ); show_hudmessage( 0 , _T( "Bomba B fel van oldva..." ) ); } case 4: { SetBombSiteLock( BOMBSITE_A , true ); SetBombSiteLock( BOMBSITE_B , true ); show_hudmessage( 0 , _T( "Bomba A & B mindkettőt bezárták..." ) ); } case 5: { SetBombSiteLock( BOMBSITE_A , false ); SetBombSiteLock( BOMBSITE_B , false ); show_hudmessage( 0 , _T( "Bomba A & B mindkettőt feloldottuk..." ) ); } } if( 0 <= iKey <= 5 ) DisplayBombSiteMenu( id ); } public entity_think( iEntity ) { if ( iEntity == g_iHUDEntity ) { if( g_bPlayerHoldingBomb && ( g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) && is_user_alive( g_iPlayerWithBomb ) ) { set_hudmessage( 255 , 165 , 000 , -1.0 , 0.87 , 0 , 1.0 , 1.0 , .channel = -1 ); show_hudmessage( g_iPlayerWithBomb , _T( "Bomba%s %s%s%s %s jelenleg zárva van!" ) , g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "s" : "" , g_bBombSiteStatus[ BOMBSITE_A ] ? "A" : "" , g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? " & " : "" , g_bBombSiteStatus[ BOMBSITE_B ] ? "B" : "" , g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? _T( "are" ) : _T( "is" ) ); entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) ); } } } SetBombSiteLock( BombSites:bsBombSite , bool:bLockState ) { if ( g_bIsBombSiteInfo[ bsBombSite ] ) { if( bLockState ) entity_set_origin( g_iBombSiteEntity[ bsBombSite ] , Float:{99999.0, 99999.0, 99999.0} ); else entity_set_origin( g_iBombSiteEntity[ bsBombSite ] , g_flBombSiteInfoOrigins[ bsBombSite ] ); } else { entity_set_int( g_iBombSiteEntity[ bsBombSite ] , EV_INT_solid , bLockState ? SOLID_NOT : SOLID_TRIGGER ); } g_bBombSiteStatus[ bsBombSite ] = bLockState; if ( bLockState ) entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) ); }
|
|