HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fun>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5. #include <amxmisc>
  6.  
  7. new const PLUGIN[] = "Revive System"
  8. new const VERSION[] = "1.0"
  9. new const AUTHOR[] = "Blizzards"
  10.  
  11. #define JOG ADMIN_IMMUNITY
  12.  
  13. new g_iReviveTeam[ 33 ];
  14. new g_pReviveMsg;
  15.  
  16. #pragma semicolon 1
  17.  
  18. public plugin_init( )
  19. {
  20. register_plugin(PLUGIN,VERSION,AUTHOR);
  21.  
  22. g_pReviveMsg = register_cvar( "amx_revive_msg", "1" );
  23.  
  24. register_concmd( "cmdRevive", "cmdRevive", JOG );
  25. register_clcmd( "say /revive", "cmdReviveMenu" );
  26. }
  27.  
  28. public cmdReviveMenu( id )
  29. {
  30. if( !has_flag( id, "a" ) )
  31. {
  32. client_print( id, print_center, "Nincs jogod ehhez!" );
  33. client_cmd( id, "spk ^"access denied^"" );
  34. return PLUGIN_HANDLED;
  35. }
  36.  
  37. new menu = menu_create( "\rFelélesztés Menü", "cmdReviveMenu_handler" );
  38.  
  39. new players[32], pnum, tempid;
  40.  
  41. new szName[32], szUserId[32], Desc[ 64 ];
  42.  
  43. get_players( players, pnum );
  44.  
  45. menu_additem( menu, "\yMindenki/Csapat újraélesztése \w[ \rCT/Terrorista/All\w ]" );
  46. switch( g_iReviveTeam[ id ] )
  47. {
  48. case 0: menu_additem( menu, "\yJátékos Csapat \w[ \rTerrorista\w ]^n" );
  49. case 1: menu_additem( menu, "\yJátékos Csapat \w[ \rCT\w ]^n" );
  50. }
  51. for ( new i; i<pnum; i++ )
  52. {
  53. tempid = players[i];
  54.  
  55. get_user_name( tempid, szName, charsmax( szName ) );
  56. formatex( Desc, charsmax( Desc ), "%s [ \r%s\w ] [ %s \w]", szName, get_team_name( tempid ), is_user_alive( tempid ) ? "Él" : "\dHalott" );
  57. formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
  58. menu_additem( menu, Desc, szUserId, 0 );
  59. }
  60.  
  61. menu_display( id, menu, 0 );
  62. return PLUGIN_HANDLED;
  63. }
  64.  
  65. public cmdReviveMenu_handler( id, menu, item )
  66. {
  67. if ( item == MENU_EXIT )
  68. {
  69. menu_destroy( menu );
  70. return PLUGIN_HANDLED;
  71. }
  72.  
  73. new szData[6], szName[64], szName2[ 64 ];
  74. new item_access, item_callback;
  75.  
  76. menu_item_getinfo( menu, item, item_access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
  77.  
  78. new userid = str_to_num( szData );
  79.  
  80. new player = find_player( "k", userid );
  81.  
  82. if( item == 0 )
  83. {
  84. client_cmd( id, "messagemode cmdRevive" );
  85. set_hudmessage(255, 255, 85, 0.01, 0.18, 2, 0.5, 6.0, 0.05, 0.05, -1);
  86. show_hudmessage(id, "Type Either @all, @ct, @t");
  87. menu_destroy( menu );
  88. return PLUGIN_HANDLED;
  89. }
  90.  
  91. if( !player )
  92. {
  93. switch( g_iReviveTeam[ id ] )
  94. {
  95. case 0: g_iReviveTeam[ id ]++;
  96. case 1: g_iReviveTeam[ id ]--;
  97. }
  98. cmdReviveMenu( id );
  99. }
  100. get_user_name( id, szName2, charsmax( szName2 ) );
  101. get_user_name( player, szName, charsmax( szName ) );
  102. if ( player )
  103. {
  104. switch( g_iReviveTeam[ id ] )
  105. {
  106. case 0: {
  107. if( is_user_alive( player ) ) user_silentkill( player );
  108. cs_set_user_team( player, CS_TEAM_T, CS_T_TERROR );
  109. ExecuteHamB( Ham_CS_RoundRespawn, player );
  110. if( get_pcvar_num( g_pReviveMsg ) )
  111. client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Újraélesztette %s-t A Terroristák csapatába", szName2, szName );
  112. }
  113. case 1: {
  114. if( is_user_alive( player ) ) user_silentkill( player );
  115. cs_set_user_team( player, CS_TEAM_CT, CS_CT_SAS );
  116. ExecuteHamB( Ham_CS_RoundRespawn, player );
  117. if( get_pcvar_num( g_pReviveMsg ) )
  118. client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Újraélesztette %s-t A Counter-Terroristák csapatába", szName2, szName );
  119. }
  120. }
  121. }
  122.  
  123. menu_destroy( menu );
  124. cmdReviveMenu( id );
  125. return PLUGIN_HANDLED;
  126. }
  127.  
  128. public cmdRevive( id, lvl, cid )
  129. {
  130. if( !cmd_access( id, lvl, cid, 2 ) )
  131. {
  132. client_print( id, print_console, "[ AMXX ] Nincs jogod ehez!" );
  133. client_cmd( id, "spk ^"access denied^"" );
  134. return PLUGIN_HANDLED;
  135. }
  136.  
  137.  
  138. new iArg[ 64 ], szName[ 32 ];
  139. read_argv( 1, iArg, charsmax( iArg ) );
  140. get_user_name( id, szName, charsmax( szName ) );
  141.  
  142. new iPlayers[ 32 ], iNum, i, players;
  143.  
  144. if( equal( iArg, "@all" ) )
  145. {
  146. get_players( iPlayers, iNum );
  147. for( i = 0; i < iNum; i++ )
  148. {
  149. players = iPlayers[ i ];
  150. if( !is_user_alive( players ) ) ExecuteHamB( Ham_CS_RoundRespawn, players );
  151. }
  152. if( get_pcvar_num( g_pReviveMsg ) )
  153. client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Újraélesztette az összes halott játékost", szName );
  154. }
  155. else if( equal( iArg, "@ct" ) )
  156. {
  157. get_players( iPlayers, iNum, "e", "CT" );
  158. for( i = 0; i < iNum; i++ )
  159. {
  160. players = iPlayers[ i ];
  161. if( !is_user_alive( players ) ) ExecuteHamB( Ham_CS_RoundRespawn, players );
  162. }
  163. if( get_pcvar_num( g_pReviveMsg ) )
  164. client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Újraélesztette az összes halott CT játékost.", szName );
  165. }
  166. else if( equal( iArg, "@t" ) )
  167. {
  168. get_players( iPlayers, iNum, "e", "TERRORIST" );
  169. for( i = 0; i < iNum; i++ )
  170. {
  171. players = iPlayers[ i ];
  172. if( !is_user_alive( players ) ) ExecuteHamB( Ham_CS_RoundRespawn, players );
  173. }
  174. if( get_pcvar_num( g_pReviveMsg ) )
  175. client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Újraélesztette az összes halott TE játékost.", szName );
  176. }
  177. else if( equal( iArg, "" ) || !equal( iArg, "@all") || !equal( iArg, "@ct") || !equal( iArg, "@t") )
  178. {
  179. client_print( id, print_chat, "[ AMXX ] Válassz ezek közül: @all, @ct, @t" );
  180. cmdReviveMenu( id );
  181. return PLUGIN_HANDLED;
  182. }
  183.  
  184. return PLUGIN_HANDLED;
  185. }
  186.  
  187. public client_connect( id )
  188. {
  189. g_iReviveTeam[ id ] = 0;
  190. }
  191.  
  192. stock get_team_name( id )
  193. {
  194. new string[ 32 ];
  195. switch( cs_get_user_team( id ) )
  196. {
  197. case CS_TEAM_T: formatex( string, charsmax( string ), "Terrorist" );
  198. case CS_TEAM_CT: formatex( string, charsmax( string ), "CT" );
  199. }
  200.  
  201. return string;
  202. }