hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 21:47



Jelenlévő felhasználók

Jelenleg 232 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 232 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 13 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2019.12.31. 09:59 
Offline
Fanatikus

Csatlakozott: 2019.12.06. 20:00
Hozzászólások: 158
Megköszönt másnak: 13 alkalommal
Sziasztok!

Esetleg valaki letudja nekem fordítani?


  1. /*
  2.  *    BombSite Lock
  3.  *    Version: 0.4
  4.  *    Author: Bugsy
  5.  *
  6.  *
  7.  * Description
  8.  *
  9.  *    This plugin allows you to lock bombsite(s), preventing them from being used.
  10.  *    When a bombsite is locked, the player currently holding the bomb will have a HUD message indicating which bombsite(s) are locked.
  11.  *    Bombsite locks will remain from round to round but not between map changes.
  12.  *    There are cvars to control if and how bombsites are automatically locked depending on the number of CT players on the server.
  13.  *
  14.  *
  15.  * Commands
  16.  *
  17.  *    amx_setbombsite <A|B> <0|1> - unlocks/locks the specified bombsite
  18.  *    amx_bombsitemenu - displays bomb site lock menu
  19.  *
  20.  *
  21.  * CVars
  22.  *
  23.  *    bl_allowplantctnum - Minimum number of CT players required to allow bomb planting (both sites would be locked if less).
  24.  *        Default: 0 (0=disabled or any number as # CT of players)
  25.  *    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.
  26.  *        Default: 2 (0=disabled or any number as # CT of players)
  27.  *    bl_locksite - The bombsite that will be locked if the number of CT players is less than bl_locksitectnum value.
  28.  *        Default: b (Must be a or b)
  29.  *
  30.  *
  31.  * Modules
  32.  *
  33.  *    VexdUM
  34.  *
  35.  *
  36.  * ChangeLog
  37.  *
  38.  *    0.4
  39.  *        Fixed support for all maps, but not for more than two bombsites (supports now the "info_bomb_target" entities).
  40.  *        Plugin will be unitialized if there are not two bombsites found at least.
  41.  *    0.3
  42.  *        Added support for all maps (experimental).
  43.  *        Bombsites on all of the standard CS maps with an A and B designation should all work properly according to A and B naming.
  44.  *        Maps without an A and B designation will still be treated as A and B by the plugin; A and B is chosen by
  45.  *        the plugin based on which bombsite entity is spawned first.
  46.  *        If you notice a map where A and B are handled by the plugin oppositely, let me know and I can correct it.
  47.  *        Menu will now display only the available commands for use. ie, if A is already locked, "Lock A" menu item will be disabled etc.
  48.  *        Fixed bug which affected the HUD being displayed to the user holding the bomb.
  49.  *        Added cvars to control auto-locking of bombsites. See above.
  50.  *    0.2
  51.  *        Initial release
  52.  *
  53.  */
  54.  
  55. /******************************************************************************/
  56. // If you change one of the following settings, do not forget to recompile
  57. // the plugin and to install the new .amx file on your server.
  58. // You can find the list of admin flags in the amx/examples/include/amxconst.inc file.
  59.  
  60. #define FLAG_AMX_SETBOMBSITE  ADMIN_CVAR
  61. #define FLAG_AMX_BOMBSITEMENU ADMIN_CVAR
  62.  
  63. /******************************************************************************/
  64.  
  65. #include <translator>
  66. #include <amxmod>
  67. #include <amxmisc>
  68. #include <VexdUM>
  69.  
  70. enum BombSites
  71. {
  72.     BOMBSITE_A,
  73.     BOMBSITE_B
  74. }
  75.  
  76. new g_iBombSiteEntity[ BombSites ];
  77. new bool:g_bBombSiteStatus[ BombSites ];
  78. new bool:g_bIsBombSiteInfo[ BombSites ];
  79. new Float:g_flBombSiteInfoOrigins[ BombSites ][3];
  80. new g_iPlayerWithBomb;
  81. new bool:g_bPlayerHoldingBomb;
  82.  
  83. new g_iHUDEntity;
  84.  
  85. new g_pCVarAllowPlantNum;
  86. new g_pCVarLockSiteNum;
  87. new g_pCVarLockSite;
  88.  
  89. public plugin_init( )
  90. {
  91.     load_translations( "bombsite_lock" );
  92.     register_plugin( _T( "BombSite Lock" ) , "0.4" , "Bugsy" );
  93.    
  94.     new szMap[ 11 ] , BombSites:bsBombSiteA , BombSites:bsBombSiteB;
  95.     get_mapname( szMap , charsmax( szMap ) );
  96.    
  97.     if ( equal( szMap , "de_chateau" ) || equal( szMap , "de_dust2" , 8 ) || equal( szMap , "de_train" ) )
  98.     {
  99.         bsBombSiteA = BOMBSITE_B;
  100.         bsBombSiteB = BOMBSITE_A;
  101.     }
  102.     else
  103.     {
  104.         bsBombSiteA = BOMBSITE_A;
  105.         bsBombSiteB = BOMBSITE_B;  
  106.     }
  107.    
  108.     g_iBombSiteEntity[ bsBombSiteA ] = find_entity( -1 , "func_bomb_target" );
  109.    
  110.     if ( g_iBombSiteEntity[ bsBombSiteA ] <= 0 )
  111.     {
  112.         g_iBombSiteEntity[ bsBombSiteA ] = find_entity( -1 , "info_bomb_target" );
  113.        
  114.         if ( g_iBombSiteEntity[ bsBombSiteA ] > 0 )
  115.         {
  116.             g_bIsBombSiteInfo[ bsBombSiteA ] = true;
  117.             entity_get_vector( g_iBombSiteEntity[ bsBombSiteA ] , EV_VEC_origin , g_flBombSiteInfoOrigins[ bsBombSiteA ] );
  118.         }
  119.     }
  120.    
  121.     g_iBombSiteEntity[ bsBombSiteB ] = find_entity( g_iBombSiteEntity[ bsBombSiteA ] , "func_bomb_target" );
  122.    
  123.     if ( g_iBombSiteEntity[ bsBombSiteB ] <= 0 )
  124.     {
  125.         g_iBombSiteEntity[ bsBombSiteB ] = find_entity( g_iBombSiteEntity[ bsBombSiteA ] , "info_bomb_target" );
  126.        
  127.         if ( g_iBombSiteEntity[ bsBombSiteB ] > 0 )
  128.         {
  129.             g_bIsBombSiteInfo[ bsBombSiteB ] = true;
  130.             entity_get_vector( g_iBombSiteEntity[ bsBombSiteB ] , EV_VEC_origin , g_flBombSiteInfoOrigins[ bsBombSiteB ] );
  131.         }
  132.     }
  133.    
  134.     if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 )
  135.     {
  136.         server_print( _T( "* BombSite Lock: Map ^"%s^" is not supported. Plugin uninitialized." ) , szMap );
  137.         return;
  138.     }
  139.    
  140.     register_concmd( "amx_setbombsite" , "SetBombSiteConsole" , FLAG_AMX_SETBOMBSITE , _T( "<A|B> <0|1> - unlocks/locks the specified bombsite" ) );
  141.     register_concmd( "amx_bombsitemenu" , "ShowBombSiteMenu" , FLAG_AMX_BOMBSITEMENU , _T( "- displays bomb site lock menu" ) );
  142.    
  143.     g_pCVarAllowPlantNum = register_cvar( "bl_allowplantctnum" , "0" );
  144.     g_pCVarLockSiteNum = register_cvar( "bl_locksitectnum" , "2" );
  145.     g_pCVarLockSite = register_cvar( "bl_locksite" , "b" );
  146.    
  147.     register_event( "CurWeapon" , "fw_EvCurWeapon" , "b" , "1=1" );
  148.     register_event( "WeapPickup", "fw_EvWeapPickup" , "be" , "1=6" );
  149.     register_event( "BombDrop" ,  "fw_EvBombDrop" , "bc" );
  150.    
  151.     register_logevent( "fw_EvRoundStart" , 2 , "1=Round_Start" );
  152.    
  153.     register_menucmd( register_menuid( "\yBombSite Lock Menu" ) , (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9) , "CommandBombSiteMenu" );
  154.    
  155.     g_iHUDEntity = create_entity( "info_target" );
  156.     entity_set_string( g_iHUDEntity , EV_SZ_classname , "bl_hud_entity" );
  157. }
  158.  
  159. public client_disconnect( id )
  160. {
  161.     if ( g_iPlayerWithBomb == id )
  162.     {
  163.         g_iPlayerWithBomb = 0;
  164.         g_bPlayerHoldingBomb = false;
  165.     }
  166. }
  167.  
  168. public fw_EvCurWeapon( id )
  169. {
  170.     if ( id == g_iPlayerWithBomb )
  171.     {
  172.         if ( read_data( 2 ) == CSW_C4 )
  173.         {
  174.             g_bPlayerHoldingBomb = true;
  175.             entity_set_float( g_iHUDEntity , EV_FL_nextthink , get_gametime() + 1.0 );
  176.         }
  177.         else
  178.         {
  179.             g_bPlayerHoldingBomb = false;
  180.         }
  181.     }
  182. }
  183.  
  184. public fw_EvWeapPickup( id )
  185. {
  186.     g_iPlayerWithBomb = id;
  187. }
  188.  
  189. public fw_EvBombDrop()
  190. {
  191.     g_iPlayerWithBomb = 0;
  192.     g_bPlayerHoldingBomb = false;
  193. }
  194.  
  195. public fw_EvRoundStart()
  196. {
  197.     new iAllowPlantNum = get_cvarptr_num( g_pCVarAllowPlantNum );
  198.     new iLockSiteNum = get_cvarptr_num( g_pCVarLockSiteNum );      
  199.     new iPlayers[ 32 ] , iNum , iCTCount;
  200.    
  201.     get_players( iPlayers , iNum , "h" );
  202.    
  203.     for ( new i = 0 ; i < iNum ; i++ )
  204.         if ( get_user_team( iPlayers[ i ] ) == 2 )
  205.             iCTCount++;
  206.    
  207.     if ( iCTCount < iAllowPlantNum )
  208.     {
  209.         SetBombSiteLock( BOMBSITE_A , true );
  210.         SetBombSiteLock( BOMBSITE_B , true );
  211.        
  212.         client_print( 0 , print_chat , _T( "* BombSites A & B are both locked since there are less than %d CTs." ) , iAllowPlantNum );
  213.     }
  214.     else if ( iCTCount < iLockSiteNum )
  215.     {
  216.         new szSite[ 2 ];
  217.         get_cvarptr_string( g_pCVarLockSite , szSite , charsmax( szSite ) );
  218.         szSite[ 0 ] = toupper( szSite[ 0 ] );
  219.        
  220.         if ( !( 'A' <= szSite[ 0 ] <= 'B' ) )
  221.             return;
  222.            
  223.         SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_A : BOMBSITE_B , true );    
  224.         SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_B : BOMBSITE_A , false );           
  225.        
  226.         client_print( 0 , print_chat , _T( "* BombSite %s has been locked since there are less than %d CTs." ) , szSite , iLockSiteNum );  
  227.     }
  228.     else
  229.     {
  230.         SetBombSiteLock( BOMBSITE_A , false );
  231.         SetBombSiteLock( BOMBSITE_B , false );
  232.     }
  233. }
  234.  
  235. public SetBombSiteConsole( id , AdminLevel , CommandId )
  236. {
  237.     if ( !cmd_access( id , AdminLevel , CommandId , 3 ) )
  238.     {
  239.         return PLUGIN_HANDLED;
  240.     }
  241.    
  242.     /*if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 )
  243.     {
  244.         console_print( id , _T( "* BombSite Lock: Sorry, this map is not supported." ) );
  245.         return PLUGIN_HANDLED;
  246.     }*/
  247.    
  248.     new szSite[ 3 ] , szState[ 3 ] , iState , BombSites:bsSite;
  249.     read_argv( 1 , szSite , charsmax( szSite ) );
  250.     read_argv( 2 , szState , charsmax( szState ) );
  251.    
  252.     iState = str_to_num( szState );
  253.    
  254.     if ( strlen( szSite ) > 1 || !is_str_num( szState ) || !( 0 <= iState <= 1 ) )
  255.         szSite[ 0 ] = 'X';
  256.     else
  257.         szSite[ 0 ] = toupper( szSite[ 0 ] );
  258.    
  259.     switch ( szSite[ 0 ] )
  260.     {
  261.         case 'A':
  262.         {
  263.             bsSite = BOMBSITE_A;
  264.         }
  265.         case 'B':
  266.         {
  267.             bsSite = BOMBSITE_B;
  268.         }
  269.         default:
  270.         {
  271.             console_print( id , _T( "Usage: amx_setbombsite <A|B> <0|1> - unlocks/locks the specified bombsite" ) );
  272.             return PLUGIN_HANDLED;
  273.         }
  274.     }
  275.    
  276.     SetBombSiteLock( bsSite , bool:iState );
  277.    
  278.     console_print( id , _T( "* BombSite %s has been %s." ) , szSite , iState ? _T( "locked" ) : _T( "unlocked" ) );
  279.    
  280.     set_hudmessage( 255 , 165 , 000 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  281.     show_hudmessage( 0 , _T( "BombSite %s has been %s..." ) , szSite , iState ? _T( "locked" ) : _T( "unlocked" ) );
  282.    
  283.     return PLUGIN_HANDLED;
  284. }
  285.  
  286. public ShowBombSiteMenu( id , AdminLevel )
  287. {
  288.     if ( !access( id , AdminLevel ) )
  289.     {
  290.         console_print( id , _T( "You have no access to that command." ) );
  291.         return PLUGIN_HANDLED;
  292.     }
  293.    
  294.     /*if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 )
  295.     {
  296.         console_print( id , _T( "* BombSite Lock: Sorry, this map is not supported." ) );
  297.         return PLUGIN_HANDLED;
  298.     }*/
  299.    
  300.     DisplayBombSiteMenu( id );
  301.    
  302.     return PLUGIN_HANDLED;
  303. }
  304.  
  305. DisplayBombSiteMenu( id )
  306. {
  307.     new szMenu[ 256 ] , iKeys = (1<<9);
  308.     new iLen = copy( szMenu , charsmax( szMenu ) , _T( "\yBombSite Lock Menu\w" , id ) );
  309.    
  310.     if ( g_bBombSiteStatus[ BOMBSITE_A ] )
  311.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\d1. Lock A" , id ) );
  312.     else
  313.     {
  314.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\w1. Lock A" , id ) );
  315.         iKeys |= (1<<0);
  316.     }
  317.    
  318.     if ( g_bBombSiteStatus[ BOMBSITE_B ] )
  319.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d2. Lock B" , id ) );
  320.     else
  321.     {
  322.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w2. Lock B" , id ) );
  323.         iKeys |= (1<<1);
  324.     }
  325.    
  326.     if ( g_bBombSiteStatus[ BOMBSITE_A ] )
  327.     {
  328.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w3. Unlock A" , id ) );
  329.         iKeys |= (1<<2);
  330.     }
  331.     else
  332.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d3. Unlock A" , id ) );
  333.    
  334.     if ( g_bBombSiteStatus[ BOMBSITE_B ] )
  335.     {
  336.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w4. Unlock B" , id ) );
  337.         iKeys |= (1<<3);
  338.     }
  339.     else
  340.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d4. Unlock B" , id ) );
  341.    
  342.     if ( g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] )
  343.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d5. Lock A & B" , id ) );
  344.     else
  345.     {
  346.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w5. Lock A & B" , id ) );
  347.         iKeys |= (1<<4);
  348.     }
  349.    
  350.     if (g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] )
  351.     {
  352.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w6. Unlock A & B" , id ) );
  353.         iKeys |= (1<<5);
  354.     }
  355.     else
  356.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d6. Unlock A & B" , id ) );
  357.    
  358.     iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\w0. Exit" , id ) );
  359.    
  360.     show_menu( id , iKeys , szMenu , _ , "\yBombSite Lock Menu" );
  361. }
  362.  
  363. public CommandBombSiteMenu( id , iKey )
  364. {
  365.     set_hudmessage( 255 , 165 , 000 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  366.    
  367.     switch ( iKey )
  368.     {
  369.         case 0:
  370.         {
  371.             SetBombSiteLock( BOMBSITE_A , true );
  372.             show_hudmessage( 0 , _T( "BombSite A has been locked..." ) );
  373.         }
  374.         case 1:
  375.         {
  376.             SetBombSiteLock( BOMBSITE_B , true );
  377.             show_hudmessage( 0 , _T( "BombSite B has been locked..." ) );
  378.         }
  379.         case 2:
  380.         {
  381.             SetBombSiteLock( BOMBSITE_A , false );
  382.             show_hudmessage( 0 , _T( "BombSite A has been unlocked..." ) );
  383.         }
  384.         case 3:
  385.         {
  386.             SetBombSiteLock( BOMBSITE_B , false );
  387.             show_hudmessage( 0 , _T( "BombSite B has been unlocked..." ) );
  388.         }
  389.         case 4:
  390.         {
  391.             SetBombSiteLock( BOMBSITE_A , true );
  392.             SetBombSiteLock( BOMBSITE_B , true );
  393.             show_hudmessage( 0 , _T( "BombSites A & B have both been locked..." ) );
  394.         }
  395.         case 5:
  396.         {
  397.             SetBombSiteLock( BOMBSITE_A , false );
  398.             SetBombSiteLock( BOMBSITE_B , false );
  399.             show_hudmessage( 0 , _T( "BombSites A & B have both been unlocked..." ) );
  400.         }
  401.     }
  402.    
  403.     if( 0 <= iKey <= 5 )
  404.         DisplayBombSiteMenu( id );
  405. }
  406.  
  407. public entity_think( iEntity )
  408. {
  409.     if ( iEntity == g_iHUDEntity )
  410.     {
  411.         if( g_bPlayerHoldingBomb &&
  412.         ( g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) && is_user_alive( g_iPlayerWithBomb ) )
  413.         {
  414.             set_hudmessage( 255 , 165 , 000 , -1.0 , 0.87 , 0 , 1.0 , 1.0 , .channel = -1 );
  415.             show_hudmessage( g_iPlayerWithBomb , _T( "BombSite%s %s%s%s %s currently locked!" ) ,
  416.                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "s" : ""  ,
  417.                 g_bBombSiteStatus[ BOMBSITE_A ] ? "A" : "" ,
  418.                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? " & " : "" ,
  419.                 g_bBombSiteStatus[ BOMBSITE_B ] ? "B" : "" ,
  420.                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? _T( "are" ) : _T( "is" ) );
  421.            
  422.             entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  423.         }
  424.     }
  425. }
  426.  
  427. SetBombSiteLock( BombSites:bsBombSite , bool:bLockState )  
  428. {
  429.     if ( g_bIsBombSiteInfo[ bsBombSite ] )
  430.     {
  431.         if( bLockState )
  432.             entity_set_origin( g_iBombSiteEntity[ bsBombSite ] , Float:{99999.0, 99999.0, 99999.0} );
  433.         else
  434.             entity_set_origin( g_iBombSiteEntity[ bsBombSite ] , g_flBombSiteInfoOrigins[ bsBombSite ] );
  435.     }
  436.     else
  437.     {
  438.         entity_set_int( g_iBombSiteEntity[ bsBombSite ] , EV_INT_solid , bLockState ? SOLID_NOT : SOLID_TRIGGER );
  439.     }
  440.    
  441.     g_bBombSiteStatus[ bsBombSite ] = bLockState;
  442.    
  443.     if ( bLockState )
  444.         entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  445. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2019.12.31. 10:10 
Offline
Nagyúr
Avatar

Csatlakozott: 2019.08.20. 18:19
Hozzászólások: 501
Megköszönt másnak: 244 alkalommal
Megköszönték neki: 45 alkalommal
Jobban kőrül néznél itt a fórumon is fent meg találod a plugint magyar fordítással..

Bombalerakó zárolás

_________________
Hamarosan új pluginok lesznek ki terjesztve! :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2019.12.31. 10:20 
Offline
Fanatikus

Csatlakozott: 2019.12.06. 20:00
Hozzászólások: 158
Megköszönt másnak: 13 alkalommal
8mTNNe írta:
Jobban kőrül néznél itt a fórumon is fent meg találod a plugint magyar fordítással..

Bombalerakó zárolás



Version: 0.4 újverzió
amit link etél az 0.3 verzió régi :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2019.12.31. 10:34 
Offline
Nagyúr
Avatar

Csatlakozott: 2019.08.20. 18:19
Hozzászólások: 501
Megköszönt másnak: 244 alkalommal
Megköszönték neki: 45 alkalommal
Google forditó.

_________________
Hamarosan új pluginok lesznek ki terjesztve! :)


A hozzászólást 1 alkalommal szerkesztették, utoljára 8mTNNe 2020.02.18. 06:07-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2019.12.31. 11:42 
Offline
Őskövület
Avatar

Csatlakozott: 2012.03.22. 18:22
Hozzászólások: 2978
Megköszönt másnak: 115 alkalommal
Megköszönték neki: 368 alkalommal
Helyezve,nem scripting

_________________
Blasenkampfwagen

https://discord.gg/uBYnNnZP
GTA:PURSUIT MTA

Ők köszönték meg ultraibolya nek ezt a hozzászólást: 8mTNNe (2019.12.31. 11:52)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2020.02.17. 23:19 
Offline
Beavatott
Avatar

Csatlakozott: 2018.12.09. 10:07
Hozzászólások: 84
Megköszönt másnak: 23 alkalommal
Megköszönték neki: 5 alkalommal
Tessék.
  1. #include <amxmodx>
  2. #include <engine>
  3.  
  4. new const Version[] = "0.3";
  5.  
  6. enum BombSites
  7. {
  8.     BOMBSITE_A,
  9.     BOMBSITE_B
  10. }
  11.  
  12. new g_iBombSiteEntity[ BombSites ];
  13. new bool:g_bBombSiteStatus[ BombSites ];
  14. new g_iPlayerWithBomb;
  15. new bool:g_bPlayerHoldingBomb;
  16.  
  17. new g_iHUDEntity;
  18.  
  19. new g_pCVarAllowPlantNum;
  20. new g_pCVarLockSiteNum;
  21. new g_pCVarLockSite;
  22.  
  23. public plugin_init( )
  24. {
  25.     register_plugin( "BombSite Lock" , Version , "bugsy" );
  26.    
  27.     register_concmd( "bl_setbombsite" , "SetBombSiteConsole" , ADMIN_KICK );
  28.     register_concmd( "bl_bombsitemenu" , "ShowBombSiteMenu" , ADMIN_KICK );
  29.    
  30.     register_event( "CurWeapon" , "fw_EvCurWeapon" , "b" , "1=1" );
  31.     register_event( "WeapPickup", "fw_EvWeapPickup" , "be" , "1=6" );
  32.     register_event( "BombDrop" ,  "fw_EvBombDrop" , "bc" );
  33.    
  34.     register_logevent( "fw_EvRoundStart" , 2 , "1=Round_Start" );  
  35.  
  36.     g_pCVarAllowPlantNum = register_cvar( "bl_allowplantctnum" , "0" );
  37.     g_pCVarLockSiteNum = register_cvar( "bl_locksitectnum" , "5" );
  38.     g_pCVarLockSite = register_cvar( "bl_locksite" , "b" );
  39.    
  40.     g_iHUDEntity = create_entity( "info_target" );
  41.     entity_set_string( g_iHUDEntity , EV_SZ_classname , "bl_hud_entity" );
  42.     register_think( "bl_hud_entity" , "fw_HUDEntThink" );
  43.  
  44.     new szMap[ 11 ] , BombSites:bsBombSiteA , BombSites:bsBombSiteB;
  45.     get_mapname( szMap , charsmax( szMap ) );
  46.    
  47.     if ( equal( szMap , "de_chateau" ) || equal( szMap , "de_dust2" ) || equal( szMap , "de_train" ) )
  48.     {
  49.         bsBombSiteA = BOMBSITE_B;
  50.         bsBombSiteB = BOMBSITE_A;
  51.     }
  52.     else
  53.     {
  54.         bsBombSiteA = BOMBSITE_A;
  55.         bsBombSiteB = BOMBSITE_B;  
  56.     }
  57.    
  58.     g_iBombSiteEntity[ bsBombSiteA ] = find_ent_by_class( -1 , "func_bomb_target" );
  59.     g_iBombSiteEntity[ bsBombSiteB ] = find_ent_by_class( g_iBombSiteEntity[ bsBombSiteA ] , "func_bomb_target" );
  60. }
  61.  
  62. public client_disconnect( id )
  63. {
  64.     if ( g_iPlayerWithBomb == id )
  65.     {
  66.         g_iPlayerWithBomb = 0;
  67.         g_bPlayerHoldingBomb = false;
  68.     }
  69. }
  70.  
  71. public fw_EvCurWeapon( id )
  72. {
  73.     if ( id == g_iPlayerWithBomb )
  74.     {
  75.         if ( read_data( 2 ) == CSW_C4 )
  76.         {
  77.             g_bPlayerHoldingBomb = true;
  78.             entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  79.         }
  80.         else
  81.         {
  82.             g_bPlayerHoldingBomb = false;
  83.         }
  84.     }
  85. }
  86.  
  87. public fw_EvWeapPickup( id )
  88. {
  89.     g_iPlayerWithBomb = id;
  90. }
  91.  
  92. public fw_EvBombDrop()
  93. {
  94.     g_iPlayerWithBomb = 0;
  95.     g_bPlayerHoldingBomb = false;
  96. }
  97.  
  98. public fw_EvRoundStart()
  99. {
  100.     new iAllowPlantNum = get_pcvar_num( g_pCVarAllowPlantNum );
  101.     new iLockSiteNum = get_pcvar_num( g_pCVarLockSiteNum );    
  102.     new iPlayers[ 32 ] , iNum , iCTCount;
  103.    
  104.     get_players( iPlayers , iNum , "h" );
  105.    
  106.     for ( new i = 0 ; i < iNum ; i++ )
  107.         if ( get_user_team( iPlayers[ i ] ) == 2 )
  108.             iCTCount++;
  109.    
  110.     if ( iCTCount < iAllowPlantNum )
  111.     {
  112.         SetBombSiteLock( BOMBSITE_A , true );
  113.         SetBombSiteLock( BOMBSITE_B , true );
  114.        
  115.         client_print( 0 , print_chat , " Bombalerakó (A & B) lezárva, ameddig %d CT 1nem lesz." , iAllowPlantNum );
  116.     }
  117.     else if ( iCTCount < iLockSiteNum )
  118.     {
  119.         new szSite[ 2 ];
  120.         get_pcvar_string( g_pCVarLockSite , szSite , charsmax( szSite ) );
  121.         szSite[ 0 ] = toupper( szSite[ 0 ] );
  122.        
  123.         if ( !( 'A' <= szSite[ 0 ] <= 'B' ) )
  124.             return PLUGIN_CONTINUE;
  125.            
  126.         SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_A : BOMBSITE_B , true );    
  127.         SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_B : BOMBSITE_A , false );           
  128.        
  129.         print_color( 0 ,  "!g[Informacio] !yBombalerakó !t(%s) !ylezárva, ameddig !t%d !yCT nem lesz." , szSite , iLockSiteNum );
  130.     }
  131.     else
  132.     {
  133.         SetBombSiteLock( BOMBSITE_A , false );
  134.         SetBombSiteLock( BOMBSITE_B , false );
  135.     }
  136.    
  137.     return PLUGIN_CONTINUE;
  138. }
  139.  
  140. public SetBombSiteConsole( id , AdminLevel )
  141. {
  142.     if ( !( get_user_flags( id ) & AdminLevel ) )
  143.     {
  144.         console_print( id , "* Nincs engedelyed ehhez a parancshoz." );
  145.         return PLUGIN_HANDLED;
  146.     }
  147.    
  148.     if ( !g_iBombSiteEntity[ BOMBSITE_A ] || !g_iBombSiteEntity[ BOMBSITE_B ] )
  149.     {
  150.         console_print( id , "* Bombalerakó Lezáras: Ezen a pályán nem engedélyezett!" );
  151.         return PLUGIN_HANDLED;
  152.     }
  153.    
  154.     new szSite[ 3 ] , szState[ 3 ] , iState , BombSites:bsSite;
  155.     read_argv( 1 , szSite , charsmax( szSite ) );
  156.     read_argv( 2 , szState , charsmax( szState ) );
  157.    
  158.     iState = str_to_num( szState );
  159.  
  160.     if ( ( strlen( szSite ) > 1 ) || !is_str_num( szState ) || !( 0 <= iState <= 1 ) )
  161.         szSite[ 0 ] = 'X';
  162.     else
  163.         szSite[ 0 ] = toupper( szSite[ 0 ] );
  164.    
  165.     switch ( szSite[ 0 ] )
  166.     {
  167.         case 'A':
  168.         {
  169.             bsSite = BOMBSITE_A;
  170.         }
  171.         case 'B':
  172.         {
  173.             bsSite = BOMBSITE_B;
  174.         }
  175.         default:
  176.         {
  177.             console_print( id , "* Bombalerakó lezárása: Ismeretlen argumentum! Megfelelő: 'fb_setbombsite a\b 0\1'" );
  178.             return PLUGIN_HANDLED;
  179.         }
  180.     }
  181.    
  182.     SetBombSiteLock( bsSite , bool:iState );
  183.  
  184.     console_print( id , "* Bombalerakó (%s) jelenleg %s" , szSite , iState ? "szabad" : "zart" );
  185.    
  186.     set_hudmessage( 255 , 255 , 255 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  187.     show_hudmessage( 0 , "Bombalerakó (%s) jelenleg %s" , szSite , iState ? "szabad" : "zart" );
  188.    
  189.     return PLUGIN_HANDLED;
  190. }
  191.  
  192. public ShowBombSiteMenu( id , AdminLevel )
  193. {
  194.     if ( !( get_user_flags( id ) & AdminLevel ) )
  195.     {
  196.         console_print( id , "* Nincs engedélyed ehhez a parancshoz." );
  197.         return PLUGIN_HANDLED;
  198.     }
  199.    
  200.     if ( !g_iBombSiteEntity[ BOMBSITE_A ] || !g_iBombSiteEntity[ BOMBSITE_B ] )
  201.     {
  202.         console_print( id , "* Bombalerakó Lezárás: Ezen a pályán nem engedélyezett!" );
  203.         return PLUGIN_HANDLED;
  204.     }
  205.    
  206.     new iMenu = menu_create( "Bombalerakó zárolas menü" , "MenuHandler" );
  207.     new iCallBack = menu_makecallback( "MenuCallBack" );
  208.  
  209.     menu_additem( iMenu , "A zarolasa" , .callback = iCallBack );
  210.     menu_additem( iMenu , "B zarolasa" , .callback = iCallBack );
  211.     menu_additem( iMenu , "A feloldasa" , .callback = iCallBack );
  212.     menu_additem( iMenu , "B feloldasa" , .callback = iCallBack );
  213.     menu_additem( iMenu , "A & B zarolasa" , .callback = iCallBack );
  214.     menu_additem( iMenu , "A & B feloldasa" , .callback = iCallBack );
  215.    
  216.     menu_display( id , iMenu );
  217.    
  218.     return PLUGIN_HANDLED;
  219. }
  220.  
  221. public MenuCallBack( id , iMenu, iItem )
  222. {  
  223.     new iRetVal;
  224.    
  225.     switch ( iItem )
  226.     {
  227.         case 0: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] ? ITEM_DISABLED : ITEM_ENABLED;
  228.         case 1: iRetVal = g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_DISABLED : ITEM_ENABLED;
  229.         case 2: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] ? ITEM_ENABLED : ITEM_DISABLED;
  230.         case 3: iRetVal = g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_ENABLED : ITEM_DISABLED;
  231.         case 4: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_DISABLED : ITEM_ENABLED;
  232.         case 5: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_ENABLED : ITEM_DISABLED;
  233.     }  
  234.    
  235.     return iRetVal;
  236. }
  237.  
  238. public MenuHandler( id , iMenu , iItem )
  239. {
  240.     if( iItem == MENU_EXIT )
  241.     {
  242.         menu_destroy( iMenu );
  243.         return PLUGIN_HANDLED;
  244.     }
  245.    
  246.     set_hudmessage( 255 , 255 , 255 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  247.    
  248.     switch ( iItem )
  249.     {
  250.         case 0:
  251.         {
  252.             SetBombSiteLock( BOMBSITE_A , true );
  253.             show_hudmessage( 0 , "Bombalerakó (A) lezárva" );
  254.         }
  255.         case 1:
  256.         {
  257.             SetBombSiteLock( BOMBSITE_B , true );
  258.             show_hudmessage( 0 , "Bombalerakó (B) lezárva" );
  259.         }
  260.         case 2:
  261.         {
  262.             SetBombSiteLock( BOMBSITE_A , false );
  263.             show_hudmessage( 0 , "Bombalerakó (A) feloldva" );
  264.         }
  265.         case 3:
  266.         {
  267.             SetBombSiteLock( BOMBSITE_B , false );
  268.             show_hudmessage( 0 , "Bombalerakó (B) feloldva" );
  269.         }
  270.         case 4:
  271.         {
  272.             SetBombSiteLock( BOMBSITE_A , true );
  273.             SetBombSiteLock( BOMBSITE_B , true );
  274.             show_hudmessage( 0 , "Bombalerakó (A & B) lezárva" );
  275.         }
  276.         case 5:
  277.         {
  278.             SetBombSiteLock( BOMBSITE_A , false );
  279.             SetBombSiteLock( BOMBSITE_B , false );
  280.             show_hudmessage( 0 , "Bombalerakó (A & B) feloldva" );
  281.         }
  282.     }
  283.    
  284.     menu_destroy( iMenu );
  285.    
  286.     return PLUGIN_HANDLED;
  287. }
  288.  
  289. public fw_HUDEntThink( iEntity )
  290. {
  291.     if( g_bPlayerHoldingBomb && ( g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) && ( iEntity == g_iHUDEntity ) && is_user_alive( g_iPlayerWithBomb ) )
  292.     {
  293.         set_hudmessage( 255 , 255 , 255 , -1.0 , 0.87 , 0 , 1.0 , 1.0 , .channel = -1 );
  294.         show_hudmessage( g_iPlayerWithBomb , "Bombalerakó%s %s%s%s %s jelenleg lezárva!" ,    g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "s" : ""  ,
  295.                                                 g_bBombSiteStatus[ BOMBSITE_A ] ? "A" : "" ,
  296.                                                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? " & " : "" ,
  297.                                                 g_bBombSiteStatus[ BOMBSITE_B ] ? "B" : "" ,
  298.                                                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "are" : "" );
  299.        
  300.         entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  301.     }
  302. }
  303.  
  304. SetBombSiteLock( BombSites:bsBombSite , bool:bLockState )  
  305. {
  306.     entity_set_int( g_iBombSiteEntity[ bsBombSite ] , EV_INT_solid , bLockState ? SOLID_NOT : SOLID_TRIGGER );
  307.     g_bBombSiteStatus[ bsBombSite ] = bLockState;
  308.    
  309.     if ( bLockState )
  310.         entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  311. }
  312.  
  313. stock print_color(const id, const input[], any:...) {
  314.         new count = 1, players[32]
  315.         static msg[191]
  316.         vformat(msg, 190, input, 3)
  317.  
  318.         replace_all(msg, 190, "!g", "^4")
  319.         replace_all(msg, 190, "!y", "^1")
  320.         replace_all(msg, 190, "!t", "^3")    
  321.  
  322.         if (id) players[0] = id; else get_players(players, count, "ch")
  323.         {
  324.                 for (new i = 0; i < count; i++)
  325.                 {
  326.                         if (is_user_connected(players[i]))
  327.                         {
  328.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  329.                                 write_byte(players[i])
  330.                                 write_string(msg)
  331.                                 message_end()
  332.                         }
  333.                 }
  334.         }
  335.         return PLUGIN_HANDLED
  336. }

_________________
[steam]steamcommunity.com/id/XaHuReW-NEW/[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2020.02.18. 16:32 
Offline
Fanatikus

Csatlakozott: 2019.12.06. 20:00
Hozzászólások: 158
Megköszönt másnak: 13 alkalommal
✪ BeNiCh' írta:
Tessék.
  1. #include <amxmodx>
  2. #include <engine>
  3.  
  4. new const Version[] = "0.3";
  5.  
  6. enum BombSites
  7. {
  8.     BOMBSITE_A,
  9.     BOMBSITE_B
  10. }
  11.  
  12. new g_iBombSiteEntity[ BombSites ];
  13. new bool:g_bBombSiteStatus[ BombSites ];
  14. new g_iPlayerWithBomb;
  15. new bool:g_bPlayerHoldingBomb;
  16.  
  17. new g_iHUDEntity;
  18.  
  19. new g_pCVarAllowPlantNum;
  20. new g_pCVarLockSiteNum;
  21. new g_pCVarLockSite;
  22.  
  23. public plugin_init( )
  24. {
  25.     register_plugin( "BombSite Lock" , Version , "bugsy" );
  26.    
  27.     register_concmd( "bl_setbombsite" , "SetBombSiteConsole" , ADMIN_KICK );
  28.     register_concmd( "bl_bombsitemenu" , "ShowBombSiteMenu" , ADMIN_KICK );
  29.    
  30.     register_event( "CurWeapon" , "fw_EvCurWeapon" , "b" , "1=1" );
  31.     register_event( "WeapPickup", "fw_EvWeapPickup" , "be" , "1=6" );
  32.     register_event( "BombDrop" ,  "fw_EvBombDrop" , "bc" );
  33.    
  34.     register_logevent( "fw_EvRoundStart" , 2 , "1=Round_Start" );  
  35.  
  36.     g_pCVarAllowPlantNum = register_cvar( "bl_allowplantctnum" , "0" );
  37.     g_pCVarLockSiteNum = register_cvar( "bl_locksitectnum" , "5" );
  38.     g_pCVarLockSite = register_cvar( "bl_locksite" , "b" );
  39.    
  40.     g_iHUDEntity = create_entity( "info_target" );
  41.     entity_set_string( g_iHUDEntity , EV_SZ_classname , "bl_hud_entity" );
  42.     register_think( "bl_hud_entity" , "fw_HUDEntThink" );
  43.  
  44.     new szMap[ 11 ] , BombSites:bsBombSiteA , BombSites:bsBombSiteB;
  45.     get_mapname( szMap , charsmax( szMap ) );
  46.    
  47.     if ( equal( szMap , "de_chateau" ) || equal( szMap , "de_dust2" ) || equal( szMap , "de_train" ) )
  48.     {
  49.         bsBombSiteA = BOMBSITE_B;
  50.         bsBombSiteB = BOMBSITE_A;
  51.     }
  52.     else
  53.     {
  54.         bsBombSiteA = BOMBSITE_A;
  55.         bsBombSiteB = BOMBSITE_B;  
  56.     }
  57.    
  58.     g_iBombSiteEntity[ bsBombSiteA ] = find_ent_by_class( -1 , "func_bomb_target" );
  59.     g_iBombSiteEntity[ bsBombSiteB ] = find_ent_by_class( g_iBombSiteEntity[ bsBombSiteA ] , "func_bomb_target" );
  60. }
  61.  
  62. public client_disconnect( id )
  63. {
  64.     if ( g_iPlayerWithBomb == id )
  65.     {
  66.         g_iPlayerWithBomb = 0;
  67.         g_bPlayerHoldingBomb = false;
  68.     }
  69. }
  70.  
  71. public fw_EvCurWeapon( id )
  72. {
  73.     if ( id == g_iPlayerWithBomb )
  74.     {
  75.         if ( read_data( 2 ) == CSW_C4 )
  76.         {
  77.             g_bPlayerHoldingBomb = true;
  78.             entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  79.         }
  80.         else
  81.         {
  82.             g_bPlayerHoldingBomb = false;
  83.         }
  84.     }
  85. }
  86.  
  87. public fw_EvWeapPickup( id )
  88. {
  89.     g_iPlayerWithBomb = id;
  90. }
  91.  
  92. public fw_EvBombDrop()
  93. {
  94.     g_iPlayerWithBomb = 0;
  95.     g_bPlayerHoldingBomb = false;
  96. }
  97.  
  98. public fw_EvRoundStart()
  99. {
  100.     new iAllowPlantNum = get_pcvar_num( g_pCVarAllowPlantNum );
  101.     new iLockSiteNum = get_pcvar_num( g_pCVarLockSiteNum );    
  102.     new iPlayers[ 32 ] , iNum , iCTCount;
  103.    
  104.     get_players( iPlayers , iNum , "h" );
  105.    
  106.     for ( new i = 0 ; i < iNum ; i++ )
  107.         if ( get_user_team( iPlayers[ i ] ) == 2 )
  108.             iCTCount++;
  109.    
  110.     if ( iCTCount < iAllowPlantNum )
  111.     {
  112.         SetBombSiteLock( BOMBSITE_A , true );
  113.         SetBombSiteLock( BOMBSITE_B , true );
  114.        
  115.         client_print( 0 , print_chat , " Bombalerakó (A & B) lezárva, ameddig %d CT 1nem lesz." , iAllowPlantNum );
  116.     }
  117.     else if ( iCTCount < iLockSiteNum )
  118.     {
  119.         new szSite[ 2 ];
  120.         get_pcvar_string( g_pCVarLockSite , szSite , charsmax( szSite ) );
  121.         szSite[ 0 ] = toupper( szSite[ 0 ] );
  122.        
  123.         if ( !( 'A' <= szSite[ 0 ] <= 'B' ) )
  124.             return PLUGIN_CONTINUE;
  125.            
  126.         SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_A : BOMBSITE_B , true );    
  127.         SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_B : BOMBSITE_A , false );           
  128.        
  129.         print_color( 0 ,  "!g[Informacio] !yBombalerakó !t(%s) !ylezárva, ameddig !t%d !yCT nem lesz." , szSite , iLockSiteNum );
  130.     }
  131.     else
  132.     {
  133.         SetBombSiteLock( BOMBSITE_A , false );
  134.         SetBombSiteLock( BOMBSITE_B , false );
  135.     }
  136.    
  137.     return PLUGIN_CONTINUE;
  138. }
  139.  
  140. public SetBombSiteConsole( id , AdminLevel )
  141. {
  142.     if ( !( get_user_flags( id ) & AdminLevel ) )
  143.     {
  144.         console_print( id , "* Nincs engedelyed ehhez a parancshoz." );
  145.         return PLUGIN_HANDLED;
  146.     }
  147.    
  148.     if ( !g_iBombSiteEntity[ BOMBSITE_A ] || !g_iBombSiteEntity[ BOMBSITE_B ] )
  149.     {
  150.         console_print( id , "* Bombalerakó Lezáras: Ezen a pályán nem engedélyezett!" );
  151.         return PLUGIN_HANDLED;
  152.     }
  153.    
  154.     new szSite[ 3 ] , szState[ 3 ] , iState , BombSites:bsSite;
  155.     read_argv( 1 , szSite , charsmax( szSite ) );
  156.     read_argv( 2 , szState , charsmax( szState ) );
  157.    
  158.     iState = str_to_num( szState );
  159.  
  160.     if ( ( strlen( szSite ) > 1 ) || !is_str_num( szState ) || !( 0 <= iState <= 1 ) )
  161.         szSite[ 0 ] = 'X';
  162.     else
  163.         szSite[ 0 ] = toupper( szSite[ 0 ] );
  164.    
  165.     switch ( szSite[ 0 ] )
  166.     {
  167.         case 'A':
  168.         {
  169.             bsSite = BOMBSITE_A;
  170.         }
  171.         case 'B':
  172.         {
  173.             bsSite = BOMBSITE_B;
  174.         }
  175.         default:
  176.         {
  177.             console_print( id , "* Bombalerakó lezárása: Ismeretlen argumentum! Megfelelő: 'fb_setbombsite a\b 0\1'" );
  178.             return PLUGIN_HANDLED;
  179.         }
  180.     }
  181.    
  182.     SetBombSiteLock( bsSite , bool:iState );
  183.  
  184.     console_print( id , "* Bombalerakó (%s) jelenleg %s" , szSite , iState ? "szabad" : "zart" );
  185.    
  186.     set_hudmessage( 255 , 255 , 255 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  187.     show_hudmessage( 0 , "Bombalerakó (%s) jelenleg %s" , szSite , iState ? "szabad" : "zart" );
  188.    
  189.     return PLUGIN_HANDLED;
  190. }
  191.  
  192. public ShowBombSiteMenu( id , AdminLevel )
  193. {
  194.     if ( !( get_user_flags( id ) & AdminLevel ) )
  195.     {
  196.         console_print( id , "* Nincs engedélyed ehhez a parancshoz." );
  197.         return PLUGIN_HANDLED;
  198.     }
  199.    
  200.     if ( !g_iBombSiteEntity[ BOMBSITE_A ] || !g_iBombSiteEntity[ BOMBSITE_B ] )
  201.     {
  202.         console_print( id , "* Bombalerakó Lezárás: Ezen a pályán nem engedélyezett!" );
  203.         return PLUGIN_HANDLED;
  204.     }
  205.    
  206.     new iMenu = menu_create( "Bombalerakó zárolas menü" , "MenuHandler" );
  207.     new iCallBack = menu_makecallback( "MenuCallBack" );
  208.  
  209.     menu_additem( iMenu , "A zarolasa" , .callback = iCallBack );
  210.     menu_additem( iMenu , "B zarolasa" , .callback = iCallBack );
  211.     menu_additem( iMenu , "A feloldasa" , .callback = iCallBack );
  212.     menu_additem( iMenu , "B feloldasa" , .callback = iCallBack );
  213.     menu_additem( iMenu , "A & B zarolasa" , .callback = iCallBack );
  214.     menu_additem( iMenu , "A & B feloldasa" , .callback = iCallBack );
  215.    
  216.     menu_display( id , iMenu );
  217.    
  218.     return PLUGIN_HANDLED;
  219. }
  220.  
  221. public MenuCallBack( id , iMenu, iItem )
  222. {  
  223.     new iRetVal;
  224.    
  225.     switch ( iItem )
  226.     {
  227.         case 0: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] ? ITEM_DISABLED : ITEM_ENABLED;
  228.         case 1: iRetVal = g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_DISABLED : ITEM_ENABLED;
  229.         case 2: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] ? ITEM_ENABLED : ITEM_DISABLED;
  230.         case 3: iRetVal = g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_ENABLED : ITEM_DISABLED;
  231.         case 4: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_DISABLED : ITEM_ENABLED;
  232.         case 5: iRetVal = g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ? ITEM_ENABLED : ITEM_DISABLED;
  233.     }  
  234.    
  235.     return iRetVal;
  236. }
  237.  
  238. public MenuHandler( id , iMenu , iItem )
  239. {
  240.     if( iItem == MENU_EXIT )
  241.     {
  242.         menu_destroy( iMenu );
  243.         return PLUGIN_HANDLED;
  244.     }
  245.    
  246.     set_hudmessage( 255 , 255 , 255 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  247.    
  248.     switch ( iItem )
  249.     {
  250.         case 0:
  251.         {
  252.             SetBombSiteLock( BOMBSITE_A , true );
  253.             show_hudmessage( 0 , "Bombalerakó (A) lezárva" );
  254.         }
  255.         case 1:
  256.         {
  257.             SetBombSiteLock( BOMBSITE_B , true );
  258.             show_hudmessage( 0 , "Bombalerakó (B) lezárva" );
  259.         }
  260.         case 2:
  261.         {
  262.             SetBombSiteLock( BOMBSITE_A , false );
  263.             show_hudmessage( 0 , "Bombalerakó (A) feloldva" );
  264.         }
  265.         case 3:
  266.         {
  267.             SetBombSiteLock( BOMBSITE_B , false );
  268.             show_hudmessage( 0 , "Bombalerakó (B) feloldva" );
  269.         }
  270.         case 4:
  271.         {
  272.             SetBombSiteLock( BOMBSITE_A , true );
  273.             SetBombSiteLock( BOMBSITE_B , true );
  274.             show_hudmessage( 0 , "Bombalerakó (A & B) lezárva" );
  275.         }
  276.         case 5:
  277.         {
  278.             SetBombSiteLock( BOMBSITE_A , false );
  279.             SetBombSiteLock( BOMBSITE_B , false );
  280.             show_hudmessage( 0 , "Bombalerakó (A & B) feloldva" );
  281.         }
  282.     }
  283.    
  284.     menu_destroy( iMenu );
  285.    
  286.     return PLUGIN_HANDLED;
  287. }
  288.  
  289. public fw_HUDEntThink( iEntity )
  290. {
  291.     if( g_bPlayerHoldingBomb && ( g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) && ( iEntity == g_iHUDEntity ) && is_user_alive( g_iPlayerWithBomb ) )
  292.     {
  293.         set_hudmessage( 255 , 255 , 255 , -1.0 , 0.87 , 0 , 1.0 , 1.0 , .channel = -1 );
  294.         show_hudmessage( g_iPlayerWithBomb , "Bombalerakó%s %s%s%s %s jelenleg lezárva!" ,    g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "s" : ""  ,
  295.                                                 g_bBombSiteStatus[ BOMBSITE_A ] ? "A" : "" ,
  296.                                                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? " & " : "" ,
  297.                                                 g_bBombSiteStatus[ BOMBSITE_B ] ? "B" : "" ,
  298.                                                 g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "are" : "" );
  299.        
  300.         entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  301.     }
  302. }
  303.  
  304. SetBombSiteLock( BombSites:bsBombSite , bool:bLockState )  
  305. {
  306.     entity_set_int( g_iBombSiteEntity[ bsBombSite ] , EV_INT_solid , bLockState ? SOLID_NOT : SOLID_TRIGGER );
  307.     g_bBombSiteStatus[ bsBombSite ] = bLockState;
  308.    
  309.     if ( bLockState )
  310.         entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  311. }
  312.  
  313. stock print_color(const id, const input[], any:...) {
  314.         new count = 1, players[32]
  315.         static msg[191]
  316.         vformat(msg, 190, input, 3)
  317.  
  318.         replace_all(msg, 190, "!g", "^4")
  319.         replace_all(msg, 190, "!y", "^1")
  320.         replace_all(msg, 190, "!t", "^3")    
  321.  
  322.         if (id) players[0] = id; else get_players(players, count, "ch")
  323.         {
  324.                 for (new i = 0; i < count; i++)
  325.                 {
  326.                         if (is_user_connected(players[i]))
  327.                         {
  328.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  329.                                 write_byte(players[i])
  330.                                 write_string(msg)
  331.                                 message_end()
  332.                         }
  333.                 }
  334.         }
  335.         return PLUGIN_HANDLED
  336. }


sajnos vannak benne bugok pl: fy_mapokon lebenek a fegyverek,ha eldobod eltünik :(

  1. /*
  2.      *    BombSite Lock
  3.      *    Version: 0.4
  4.      *    Author: Bugsy
  5.      *
  6.      *
  7.      * Description
  8.      *
  9.      *    This plugin allows you to lock bombsite(s), preventing them from being used.
  10.      *    When a bombsite is locked, the player currently holding the bomb will have a HUD message indicating which bombsite(s) are locked.
  11.      *    Bombsite locks will remain from round to round but not between map changes.
  12.      *    There are cvars to control if and how bombsites are automatically locked depending on the number of CT players on the server.
  13.      *
  14.      *
  15.      * Commands
  16.      *
  17.      *    amx_setbombsite <A|B> <0|1> - unlocks/locks the specified bombsite
  18.      *    amx_bombsitemenu - displays bomb site lock menu
  19.      *
  20.      *
  21.      * CVars
  22.      *
  23.      *    bl_allowplantctnum - Minimum number of CT players required to allow bomb planting (both sites would be locked if less).
  24.      *        Default: 0 (0=disabled or any number as # CT of players)
  25.      *    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.
  26.      *        Default: 2 (0=disabled or any number as # CT of players)
  27.      *    bl_locksite - The bombsite that will be locked if the number of CT players is less than bl_locksitectnum value.
  28.      *        Default: b (Must be a or b)
  29.      *
  30.      *
  31.      * Modules
  32.      *
  33.      *    VexdUM
  34.      *
  35.      *
  36.      * ChangeLog
  37.      *
  38.      *    0.4
  39.      *        Fixed support for all maps, but not for more than two bombsites (supports now the "info_bomb_target" entities).
  40.      *        Plugin will be unitialized if there are not two bombsites found at least.
  41.      *    0.3
  42.      *        Added support for all maps (experimental).
  43.      *        Bombsites on all of the standard CS maps with an A and B designation should all work properly according to A and B naming.
  44.      *        Maps without an A and B designation will still be treated as A and B by the plugin; A and B is chosen by
  45.      *        the plugin based on which bombsite entity is spawned first.
  46.      *        If you notice a map where A and B are handled by the plugin oppositely, let me know and I can correct it.
  47.      *        Menu will now display only the available commands for use. ie, if A is already locked, "Lock A" menu item will be disabled etc.
  48.      *        Fixed bug which affected the HUD being displayed to the user holding the bomb.
  49.      *        Added cvars to control auto-locking of bombsites. See above.
  50.      *    0.2
  51.      *        Initial release
  52.      *
  53.      */
  54.      
  55.     /******************************************************************************/
  56.     // If you change one of the following settings, do not forget to recompile
  57.     // the plugin and to install the new .amx file on your server.
  58.     // You can find the list of admin flags in the amx/examples/include/amxconst.inc file.
  59.      
  60.     #define FLAG_AMX_SETBOMBSITE  ADMIN_CVAR
  61.     #define FLAG_AMX_BOMBSITEMENU ADMIN_CVAR
  62.      
  63.     /******************************************************************************/
  64.      
  65.     #include <translator>
  66.     #include <amxmodx>
  67.     #include <amxmisc>
  68.     #include <VexdUM>
  69.      
  70.     enum BombSites
  71.     {
  72.         BOMBSITE_A,
  73.         BOMBSITE_B
  74.     }
  75.      
  76.     new g_iBombSiteEntity[ BombSites ];
  77.     new bool:g_bBombSiteStatus[ BombSites ];
  78.     new bool:g_bIsBombSiteInfo[ BombSites ];
  79.     new Float:g_flBombSiteInfoOrigins[ BombSites ][3];
  80.     new g_iPlayerWithBomb;
  81.     new bool:g_bPlayerHoldingBomb;
  82.      
  83.     new g_iHUDEntity;
  84.      
  85.     new g_pCVarAllowPlantNum;
  86.     new g_pCVarLockSiteNum;
  87.     new g_pCVarLockSite;
  88.      
  89.     public plugin_init( )
  90.     {
  91.         load_translations( "bombsite_lock" );
  92.         register_plugin( _T( "BombSite Lock" ) , "0.4" , "Bugsy" );
  93.        
  94.         new szMap[ 11 ] , BombSites:bsBombSiteA , BombSites:bsBombSiteB;
  95.         get_mapname( szMap , charsmax( szMap ) );
  96.        
  97.         if ( equal( szMap , "de_chateau" ) || equal( szMap , "de_dust2" , 8 ) || equal( szMap , "de_train" ) )
  98.         {
  99.             bsBombSiteA = BOMBSITE_B;
  100.             bsBombSiteB = BOMBSITE_A;
  101.         }
  102.         else
  103.         {
  104.             bsBombSiteA = BOMBSITE_A;
  105.             bsBombSiteB = BOMBSITE_B;  
  106.         }
  107.        
  108.         g_iBombSiteEntity[ bsBombSiteA ] = find_entity( -1 , "func_bomb_target" );
  109.        
  110.         if ( g_iBombSiteEntity[ bsBombSiteA ] <= 0 )
  111.         {
  112.             g_iBombSiteEntity[ bsBombSiteA ] = find_entity( -1 , "info_bomb_target" );
  113.            
  114.             if ( g_iBombSiteEntity[ bsBombSiteA ] > 0 )
  115.             {
  116.                 g_bIsBombSiteInfo[ bsBombSiteA ] = true;
  117.                 entity_get_vector( g_iBombSiteEntity[ bsBombSiteA ] , EV_VEC_origin , g_flBombSiteInfoOrigins[ bsBombSiteA ] );
  118.             }
  119.         }
  120.        
  121.         g_iBombSiteEntity[ bsBombSiteB ] = find_entity( g_iBombSiteEntity[ bsBombSiteA ] , "func_bomb_target" );
  122.        
  123.         if ( g_iBombSiteEntity[ bsBombSiteB ] <= 0 )
  124.         {
  125.             g_iBombSiteEntity[ bsBombSiteB ] = find_entity( g_iBombSiteEntity[ bsBombSiteA ] , "info_bomb_target" );
  126.            
  127.             if ( g_iBombSiteEntity[ bsBombSiteB ] > 0 )
  128.             {
  129.                 g_bIsBombSiteInfo[ bsBombSiteB ] = true;
  130.                 entity_get_vector( g_iBombSiteEntity[ bsBombSiteB ] , EV_VEC_origin , g_flBombSiteInfoOrigins[ bsBombSiteB ] );
  131.             }
  132.         }
  133.        
  134.         if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 )
  135.         {
  136.             server_print( _T( "* BombSite Lock: Map ^"%s^" is not supported. Plugin uninitialized." ) , szMap );
  137.             return;
  138.         }
  139.        
  140.         register_concmd( "amx_setbombsite" , "SetBombSiteConsole" , FLAG_AMX_SETBOMBSITE , _T( "<A|B> <0|1> - feloldja / lezárja a megadott bombát" ) );
  141.         register_concmd( "amx_bombsitemenu" , "ShowBombSiteMenu" , FLAG_AMX_BOMBSITEMENU , _T( "- megjeleníti a bombahely zárolás menü" ) );
  142.        
  143.         g_pCVarAllowPlantNum = register_cvar( "bl_allowplantctnum" , "0" );
  144.         g_pCVarLockSiteNum = register_cvar( "bl_locksitectnum" , "2" );
  145.         g_pCVarLockSite = register_cvar( "bl_locksite" , "b" );
  146.        
  147.         register_event( "CurWeapon" , "fw_EvCurWeapon" , "b" , "1=1" );
  148.         register_event( "WeapPickup", "fw_EvWeapPickup" , "be" , "1=6" );
  149.         register_event( "BombDrop" ,  "fw_EvBombDrop" , "bc" );
  150.        
  151.         register_logevent( "fw_EvRoundStart" , 2 , "1=Round_Start" );
  152.        
  153.         register_menucmd( register_menuid( "\yBombSite Lock Menu" ) , (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9) , "CommandBombSiteMenu" );
  154.        
  155.         g_iHUDEntity = create_entity( "info_target" );
  156.         entity_set_string( g_iHUDEntity , EV_SZ_classname , "bl_hud_entity" );
  157.     }
  158.      
  159.     public client_disconnect( id )
  160.     {
  161.         if ( g_iPlayerWithBomb == id )
  162.         {
  163.             g_iPlayerWithBomb = 0;
  164.             g_bPlayerHoldingBomb = false;
  165.         }
  166.     }
  167.      
  168.     public fw_EvCurWeapon( id )
  169.     {
  170.         if ( id == g_iPlayerWithBomb )
  171.         {
  172.             if ( read_data( 2 ) == CSW_C4 )
  173.             {
  174.                 g_bPlayerHoldingBomb = true;
  175.                 entity_set_float( g_iHUDEntity , EV_FL_nextthink , get_gametime() + 1.0 );
  176.             }
  177.             else
  178.             {
  179.                 g_bPlayerHoldingBomb = false;
  180.             }
  181.         }
  182.     }
  183.      
  184.     public fw_EvWeapPickup( id )
  185.     {
  186.         g_iPlayerWithBomb = id;
  187.     }
  188.      
  189.     public fw_EvBombDrop()
  190.     {
  191.         g_iPlayerWithBomb = 0;
  192.         g_bPlayerHoldingBomb = false;
  193.     }
  194.      
  195.     public fw_EvRoundStart()
  196.     {
  197.         new iAllowPlantNum = get_cvarptr_num( g_pCVarAllowPlantNum );
  198.         new iLockSiteNum = get_cvarptr_num( g_pCVarLockSiteNum );      
  199.         new iPlayers[ 32 ] , iNum , iCTCount;
  200.        
  201.         get_players( iPlayers , iNum , "h" );
  202.        
  203.         for ( new i = 0 ; i < iNum ; i++ )
  204.             if ( get_user_team( iPlayers[ i ] ) == 2 )
  205.                 iCTCount++;
  206.        
  207.         if ( iCTCount < iAllowPlantNum )
  208.         {
  209.             SetBombSiteLock( BOMBSITE_A , true );
  210.             SetBombSiteLock( BOMBSITE_B , true );
  211.            
  212.             client_print( 0 , print_chat , _T( "* Bomba A és B egyaránt zárolva vannak, mivel kevesebb van %d CT." ) , iAllowPlantNum );
  213.         }
  214.         else if ( iCTCount < iLockSiteNum )
  215.         {
  216.             new szSite[ 2 ];
  217.             get_cvarptr_string( g_pCVarLockSite , szSite , charsmax( szSite ) );
  218.             szSite[ 0 ] = toupper( szSite[ 0 ] );
  219.            
  220.             if ( !( 'A' <= szSite[ 0 ] <= 'B' ) )
  221.                 return;
  222.                
  223.             SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_A : BOMBSITE_B , true );    
  224.             SetBombSiteLock( ( szSite[ 0 ] == 'A' ) ? BOMBSITE_B : BOMBSITE_A , false );          
  225.            
  226.             client_print( 0 , print_chat , _T( "* Bomba %s már lezárt, mivel kevesebb van %d CT." ) , szSite , iLockSiteNum );  
  227.         }
  228.         else
  229.         {
  230.             SetBombSiteLock( BOMBSITE_A , false );
  231.             SetBombSiteLock( BOMBSITE_B , false );
  232.         }
  233.     }
  234.      
  235.     public SetBombSiteConsole( id , AdminLevel , CommandId )
  236.     {
  237.         if ( !cmd_access( id , AdminLevel , CommandId , 3 ) )
  238.         {
  239.             return PLUGIN_HANDLED;
  240.         }
  241.        
  242.         /*if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 )
  243.         {
  244.             console_print( id , _T( "* Bomba Zárolás: sajnálom, ez a pálya nem támogatott." ) );
  245.             return PLUGIN_HANDLED;
  246.         }*/
  247.        
  248.         new szSite[ 3 ] , szState[ 3 ] , iState , BombSites:bsSite;
  249.         read_argv( 1 , szSite , charsmax( szSite ) );
  250.         read_argv( 2 , szState , charsmax( szState ) );
  251.        
  252.         iState = str_to_num( szState );
  253.        
  254.         if ( strlen( szSite ) > 1 || !is_str_num( szState ) || !( 0 <= iState <= 1 ) )
  255.             szSite[ 0 ] = 'X';
  256.         else
  257.             szSite[ 0 ] = toupper( szSite[ 0 ] );
  258.        
  259.         switch ( szSite[ 0 ] )
  260.         {
  261.             case 'A':
  262.             {
  263.                 bsSite = BOMBSITE_A;
  264.             }
  265.             case 'B':
  266.             {
  267.                 bsSite = BOMBSITE_B;
  268.             }
  269.             default:
  270.             {
  271.                 console_print( id , _T( "Usage: amx_setbombsite <A|B> <0|1> - feloldja / lezárja a megadott bombát" ) );
  272.                 return PLUGIN_HANDLED;
  273.             }
  274.         }
  275.        
  276.         SetBombSiteLock( bsSite , bool:iState );
  277.        
  278.         console_print( id , _T( "* Bomba %s volt %s." ) , szSite , iState ? _T( "zárt" ) : _T( "nyitva" ) );
  279.        
  280.         set_hudmessage( 255 , 165 , 000 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  281.         show_hudmessage( 0 , _T( "Bomba %s volt %s..." ) , szSite , iState ? _T( "zárt" ) : _T( "nyitva" ) );
  282.        
  283.         return PLUGIN_HANDLED;
  284.     }
  285.      
  286.     public ShowBombSiteMenu( id , AdminLevel )
  287.     {
  288.         if ( !access( id , AdminLevel ) )
  289.         {
  290.             console_print( id , _T( "Nincs hozzáférése ehhez a parancshoz." ) );
  291.             return PLUGIN_HANDLED;
  292.         }
  293.        
  294.         /*if ( g_iBombSiteEntity[ BOMBSITE_A ] <= 0 || g_iBombSiteEntity[ BOMBSITE_B ] <= 0 )
  295.         {
  296.             console_print( id , _T( "* Bomba Zárolás: sajnálom, ez a pálya nem támogatott." ) );
  297.             return PLUGIN_HANDLED;
  298.         }*/
  299.        
  300.         DisplayBombSiteMenu( id );
  301.        
  302.         return PLUGIN_HANDLED;
  303.     }
  304.      
  305.     DisplayBombSiteMenu( id )
  306.     {
  307.         new szMenu[ 256 ] , iKeys = (1<<9);
  308.         new iLen = copy( szMenu , charsmax( szMenu ) , _T( "\yBomba Zárolás menü\w" , id ) );
  309.        
  310.         if ( g_bBombSiteStatus[ BOMBSITE_A ] )
  311.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\d1. Zár A" , id ) );
  312.         else
  313.         {
  314.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\w1. Zár A" , id ) );
  315.             iKeys |= (1<<0);
  316.         }
  317.        
  318.         if ( g_bBombSiteStatus[ BOMBSITE_B ] )
  319.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d2. Zár B" , id ) );
  320.         else
  321.         {
  322.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w2. Zár B" , id ) );
  323.             iKeys |= (1<<1);
  324.         }
  325.        
  326.         if ( g_bBombSiteStatus[ BOMBSITE_A ] )
  327.         {
  328.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w3. Kinyit A" , id ) );
  329.             iKeys |= (1<<2);
  330.         }
  331.         else
  332.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d3. Kinyit A" , id ) );
  333.        
  334.         if ( g_bBombSiteStatus[ BOMBSITE_B ] )
  335.         {
  336.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w4. Kinyit B" , id ) );
  337.             iKeys |= (1<<3);
  338.         }
  339.         else
  340.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d4. Kinyit B" , id ) );
  341.        
  342.         if ( g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] )
  343.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d5. Zár A & B" , id ) );
  344.         else
  345.         {
  346.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w5. Zár A & B" , id ) );
  347.             iKeys |= (1<<4);
  348.         }
  349.        
  350.         if (g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] )
  351.         {
  352.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\w6. Kinyit A & B" , id ) );
  353.             iKeys |= (1<<5);
  354.         }
  355.         else
  356.             iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n\d6. Kinyit A & B" , id ) );
  357.        
  358.         iLen += copy( szMenu[ iLen ] , charsmax( szMenu ) - iLen , _T( "^n^n\w0. Exit" , id ) );
  359.        
  360.         show_menu( id , iKeys , szMenu , _ , "\yBomba Zárolás menü" );
  361.     }
  362.      
  363.     public CommandBombSiteMenu( id , iKey )
  364.     {
  365.         set_hudmessage( 255 , 165 , 000 , -1.0 , 0.65 , 0 , 3.0 , 3.0 , .channel = -1 );
  366.        
  367.         switch ( iKey )
  368.         {
  369.             case 0:
  370.             {
  371.                 SetBombSiteLock( BOMBSITE_A , true );
  372.                 show_hudmessage( 0 , _T( "Bomba A Lezárva..." ) );
  373.             }
  374.             case 1:
  375.             {
  376.                 SetBombSiteLock( BOMBSITE_B , true );
  377.                 show_hudmessage( 0 , _T( "Bomba B Lezárva..." ) );
  378.             }
  379.             case 2:
  380.             {
  381.                 SetBombSiteLock( BOMBSITE_A , false );
  382.                 show_hudmessage( 0 , _T( "Bomba A fel van oldva..." ) );
  383.             }
  384.             case 3:
  385.             {
  386.                 SetBombSiteLock( BOMBSITE_B , false );
  387.                 show_hudmessage( 0 , _T( "Bomba B fel van oldva..." ) );
  388.             }
  389.             case 4:
  390.             {
  391.                 SetBombSiteLock( BOMBSITE_A , true );
  392.                 SetBombSiteLock( BOMBSITE_B , true );
  393.                 show_hudmessage( 0 , _T( "Bomba A & B mindkettőt bezárták..." ) );
  394.             }
  395.             case 5:
  396.             {
  397.                 SetBombSiteLock( BOMBSITE_A , false );
  398.                 SetBombSiteLock( BOMBSITE_B , false );
  399.                 show_hudmessage( 0 , _T( "Bomba A & B mindkettőt feloldottuk..." ) );
  400.             }
  401.         }
  402.        
  403.         if( 0 <= iKey <= 5 )
  404.             DisplayBombSiteMenu( id );
  405.     }
  406.      
  407.     public entity_think( iEntity )
  408.     {
  409.         if ( iEntity == g_iHUDEntity )
  410.         {
  411.             if( g_bPlayerHoldingBomb &&
  412.             ( g_bBombSiteStatus[ BOMBSITE_A ] || g_bBombSiteStatus[ BOMBSITE_B ] ) && is_user_alive( g_iPlayerWithBomb ) )
  413.             {
  414.                 set_hudmessage( 255 , 165 , 000 , -1.0 , 0.87 , 0 , 1.0 , 1.0 , .channel = -1 );
  415.                 show_hudmessage( g_iPlayerWithBomb , _T( "Bomba%s %s%s%s %s jelenleg zárva van!" ) ,
  416.                     g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? "s" : ""  ,
  417.                     g_bBombSiteStatus[ BOMBSITE_A ] ? "A" : "" ,
  418.                     g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? " & " : "" ,
  419.                     g_bBombSiteStatus[ BOMBSITE_B ] ? "B" : "" ,
  420.                     g_bBombSiteStatus[ BOMBSITE_A ] && g_bBombSiteStatus[ BOMBSITE_B ] ? _T( "are" ) : _T( "is" ) );
  421.                
  422.                 entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  423.             }
  424.         }
  425.     }
  426.      
  427.     SetBombSiteLock( BombSites:bsBombSite , bool:bLockState )  
  428.     {
  429.         if ( g_bIsBombSiteInfo[ bsBombSite ] )
  430.         {
  431.             if( bLockState )
  432.                 entity_set_origin( g_iBombSiteEntity[ bsBombSite ] , Float:{99999.0, 99999.0, 99999.0} );
  433.             else
  434.                 entity_set_origin( g_iBombSiteEntity[ bsBombSite ] , g_flBombSiteInfoOrigins[ bsBombSite ] );
  435.         }
  436.         else
  437.         {
  438.             entity_set_int( g_iBombSiteEntity[ bsBombSite ] , EV_INT_solid , bLockState ? SOLID_NOT : SOLID_TRIGGER );
  439.         }
  440.        
  441.         g_bBombSiteStatus[ bsBombSite ] = bLockState;
  442.        
  443.         if ( bLockState )
  444.             entity_set_float( g_iHUDEntity , EV_FL_nextthink , ( get_gametime() + 1.0 ) );
  445.     }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2020.02.18. 16:53 
Offline
Nagyúr
Avatar

Csatlakozott: 2019.08.20. 18:19
Hozzászólások: 501
Megköszönt másnak: 244 alkalommal
Megköszönték neki: 45 alkalommal
ennek a pluginnak ahhoz semmi köze xD

_________________
Hamarosan új pluginok lesznek ki terjesztve! :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2020.02.18. 17:15 
Offline
Fanatikus

Csatlakozott: 2019.12.06. 20:00
Hozzászólások: 158
Megköszönt másnak: 13 alkalommal
8mTNNe írta:
ennek a pluginnak ahhoz semmi köze xD


de van mert összebugolnak :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: bombsite_lock 0.4 fordítása
HozzászólásElküldve: 2020.02.18. 17:18 
Offline
Nagyúr
Avatar

Csatlakozott: 2019.08.20. 18:19
Hozzászólások: 501
Megköszönt másnak: 244 alkalommal
Megköszönték neki: 45 alkalommal
De nem a pluginban van a hiba értsd meg....

_________________
Hamarosan új pluginok lesznek ki terjesztve! :)


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 13 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole