hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 23:36



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Bing [Bot] 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  [ 6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: fegyomenü
HozzászólásElküldve: 2015.01.07. 17:34 
Offline
Nagyúr
Avatar

Csatlakozott: 2013.09.14. 08:21
Hozzászólások: 547
Megköszönt másnak: 95 alkalommal
Megköszönték neki: 71 alkalommal
üdv,
valaki lenne szives bele irni hogy deaglet adjon kezdésnél
annak meg köszönném! :)
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include < amxmodx >
  3. #include < amxmisc >
  4. #include < fun >
  5. #include < fakemeta >
  6. #include < cstrike >
  7. #include < hamsandwich >
  8.  
  9. #pragma semicolon 1
  10.  
  11. #define VERSION "0.0.1"
  12.  
  13. #define Max_Players 32
  14.  
  15. #define OFFSET_PRIMARYWEAPON 116
  16. #define OFFSET_C4_SLOT 372
  17.  
  18. #define Weapon_Menu_Name ""
  19.  
  20. #define Next_Button "Kovetkezo"
  21. #define Back_Button "Vissza"
  22. #define Exit_Button "Kilepes"
  23.  
  24. #define Money_Hud ( 1 << 5 )
  25.  
  26. new g_iWPCT;
  27. new g_iWPTE;
  28.  
  29. new pCvarMaxCTWps;
  30. new pCvarMaxTEWps;
  31.  
  32. new pCvarWPBlock;
  33.  
  34. new pCvarFlash;
  35. new pCvarHe;
  36. new pCvarSmoke;
  37.  
  38. new pCvarKevlar;
  39. new pCvarDefuser;
  40.  
  41. new pCvarPrefix;
  42. new pCvarMoney;
  43. new pCvarBlockBuy;
  44. new pCvarUnAmmo;
  45.  
  46. new const g_szMessages [ ] [ ] =
  47. {
  48. "",
  49. "Csapatonként csak két ember AWP-zhet",
  50. "%s AWP csak 3v3-tól használható!",
  51. "%s A vásárlás letiltva!",
  52. "%s Te már választóttál fegyvert!"
  53. };
  54.  
  55. new const g_szWeaponMenuNames [ ] [ ] = {
  56.  
  57. "M4A1 Csomag",
  58. "AK47 Csomag",
  59. "AWP Csomag",
  60. "M249 Csomag",
  61. "AUG Csomag",
  62. "Famas Csomag",
  63. "Galil Csomag",
  64. "MP5 Csomag",
  65. "XM1014 Csomag",
  66. "M3 Csomag",
  67. "Scout Csomag"
  68. };
  69.  
  70. new const g_szWeaponsName [ ] [ ] = {
  71.  
  72. "weapon_m4a1",
  73. "weapon_ak47",
  74. "weapon_awp",
  75. "weapon_m249",
  76. "weapon_aug",
  77. "weapon_famas",
  78. "weapon_galil",
  79. "weapon_mp5navy",
  80. "weapon_xm1014",
  81. "weapon_m3",
  82. "weapon_scout"
  83. };
  84.  
  85. new const g_szPistolName [ ] = "weapon_deagle";
  86.  
  87. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  88. new const maxAmmo[ 31 ] = {
  89.  
  90. 0,
  91. 52,
  92. 0,
  93. 90,
  94. 1,
  95. 32,
  96. 1,
  97. 100,
  98. 90,
  99. 1,
  100. 120,
  101. 100,
  102. 100,
  103. 90,
  104. 90,
  105. 90,
  106. 100,
  107. 120,
  108. 30,
  109. 120,
  110. 200,
  111. 32,
  112. 90,
  113. 120,
  114. 90,
  115. 2,
  116. 35,
  117. 90,
  118. 90,
  119. 0,
  120. 100
  121. };
  122.  
  123. new g_szBuyCommands[ ][ ] =
  124. {
  125. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  126. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  127. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  128. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  129. "buyammo1", "buyammo2"
  130. };
  131.  
  132. new const g_szMenuCommands[ ] [ ] =
  133. {
  134. "fegyo",
  135. "say fegyo",
  136. "say_team fegyo",
  137.  
  138. "fegyver",
  139. "say fegyver",
  140. "say_team fegyver",
  141.  
  142. "say /fegyo",
  143. "say_team /fegyo",
  144.  
  145. "say /fegyver",
  146. "say_team /fegyver"
  147.  
  148. };
  149.  
  150. new g_szChatPrefix[ 64 ];
  151. new g_msgHideWeapon;
  152. new g_bHasWeapon[ Max_Players ];
  153.  
  154. public plugin_init ( ) {
  155.  
  156. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  157.  
  158. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  159.  
  160. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "2" ); // Ct-n?l 2 AWP-s lehet.
  161. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "2" ); // Terrorist?kn?l 2 AWP-s lehet.
  162.  
  163. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "3" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  164.  
  165. pCvarFlash = register_cvar( "awm_give_flash", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  166. pCvarHe = register_cvar( "awm_give_he", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 1 Roban? gr?n?t
  167. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  168.  
  169. pCvarKevlar = register_cvar( "awm_give_kevlar", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e kevl?rt. ( 0 = Nem Ad ) Alap: 2 ( Kevl?r + Sisak )
  170. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  171.  
  172. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "1" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  173.  
  174. pCvarBlockBuy = register_cvar( "awm_block_buy", "1" ); // Itt tudod be?ll?tani ,hogy tiltsa-e a v?s?rl?st vagy ne. Alap 1 ( Teh?t tiltva van ) ( 0 = Nincs tiltva )
  175. pCvarMoney = register_cvar( "awm_set_money", "0" ); // Itt tudod be?ll?tani ,hogy mennyi p?nze legyen a j?t?kosoknak. ( 0 = Nincs , elt?nik a hudr?l is ) Alap: 0
  176. pCvarPrefix = register_cvar( "awm_prefix", "" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  177.  
  178. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  179.  
  180. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  181. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  182.  
  183. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  184. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  185.  
  186. register_event( "ResetHUD", "onResetHUD", "b" );
  187. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  188.  
  189. register_message( g_msgHideWeapon, "msgHideWeapon" );
  190.  
  191. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  192. }
  193.  
  194. public client_connect( iClient ) {
  195.  
  196. g_bHasWeapon[ iClient ] = false;
  197. }
  198.  
  199. public client_disconnect( iClient ) {
  200.  
  201. g_bHasWeapon[ iClient ] = false;
  202. }
  203.  
  204. public cmd_ShowWeaponMenu( iClient ) {
  205.  
  206. switch( g_bHasWeapon[ iClient ] ) {
  207.  
  208. case true:
  209. {
  210. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  211. ColorChat( iClient, "%s %s" , g_szChatPrefix, g_szMessages[ 4 ] );
  212.  
  213. return PLUGIN_HANDLED;
  214. }
  215. case false: func_OpenWeaponMenu( iClient );
  216. }
  217. return PLUGIN_HANDLED;
  218. }
  219.  
  220. public cmd_BlockBuy( iClient ) {
  221.  
  222. if( !get_pcvar_num( pCvarBlockBuy ) )
  223. return PLUGIN_CONTINUE;
  224.  
  225. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  226. ColorChat( iClient, "%s %s" , g_szChatPrefix, g_szMessages[ 3 ] );
  227. return PLUGIN_HANDLED;
  228. }
  229.  
  230. public eCurWeapon( iClient ) {
  231.  
  232. if( get_pcvar_num( pCvarUnAmmo ) ) {
  233.  
  234. if( is_user_alive( iClient ) ) {
  235.  
  236. new weapon = read_data( 2 );
  237. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  238.  
  239. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  240. }
  241. }
  242. }
  243. }
  244.  
  245. public onResetHUD( iClient ) {
  246.  
  247. if( !get_pcvar_num( pCvarMoney ) ) {
  248.  
  249. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  250. write_byte( Money_Hud );
  251. message_end( );
  252. }
  253. }
  254.  
  255. public msgHideWeapon( ) {
  256.  
  257. if( !get_pcvar_num( pCvarMoney ) ) {
  258.  
  259. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  260. }
  261. }
  262.  
  263. public eRoundEnd ( ) {
  264.  
  265. g_iWPCT = 0;
  266. g_iWPTE = 0;
  267. }
  268.  
  269. public func_OpenWeaponMenu ( iClient ) {
  270.  
  271. if( !is_user_alive( iClient ) )
  272. return;
  273.  
  274. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  275.  
  276. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  277.  
  278. g_bHasWeapon[ iClient ] = false;
  279.  
  280. new szMenuTitle[ 121 ];
  281. new szMenuItem[ 121 ];
  282.  
  283. format( szMenuTitle, charsmax( szMenuTitle ), "%s %s", g_szChatPrefix, Weapon_Menu_Name );
  284.  
  285. StripUserWeapons( iClient );
  286. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  287.  
  288. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  289.  
  290. if( i != 2 ) {
  291.  
  292. format( szMenuItem, charsmax( szMenuItem ), "%s", g_szWeaponMenuNames[ i ] );
  293. }
  294. else {
  295. switch( get_user_team( iClient ) )
  296. {
  297. case 1: format( szMenuItem, charsmax( szMenuItem ), "%s [Elsö %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  298. case 2: format( szMenuItem, charsmax( szMenuItem ), "%s [Elsö %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  299. default: continue;
  300. }
  301. }
  302.  
  303. menu_additem( menu, szMenuItem, _, 0 );
  304. }
  305.  
  306. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  307. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  308. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  309. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  310. menu_display( iClient, menu );
  311. }
  312.  
  313. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  314.  
  315. if( iItem == MENU_EXIT ) {
  316.  
  317. menu_destroy( iMenu );
  318. return PLUGIN_HANDLED;
  319. }
  320.  
  321. new data[ 6 ], szName[ 64 ];
  322. new access, callback;
  323. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  324.  
  325. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  326.  
  327. if( iItem != 2 ) {
  328.  
  329. give_item( iClient, g_szWeaponsName[ iItem ] );
  330. give_item( iClient, g_szPistolName );
  331.  
  332. ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  333. }
  334. else {
  335.  
  336. new iTeams[ CsTeams ];
  337. GetPlayerCount( iTeams );
  338.  
  339. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  340. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  341.  
  342. ColorChat( iClient, g_szMessages[ 2 ], g_szChatPrefix );
  343. func_OpenWeaponMenu( iClient );
  344.  
  345. return PLUGIN_HANDLED;
  346. }
  347.  
  348. new CsTeams:userTeam = cs_get_user_team( iClient );
  349. if( userTeam == CS_TEAM_CT ) {
  350.  
  351. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  352.  
  353. give_item( iClient, g_szWeaponsName[ iItem ] );
  354. give_item( iClient, g_szPistolName );
  355.  
  356. ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  357. g_iWPCT++;
  358. }
  359. else {
  360.  
  361. client_print( iClient, print_center, g_szMessages[ 1 ] );
  362. func_OpenWeaponMenu ( iClient );
  363.  
  364. return PLUGIN_HANDLED;
  365. }
  366. }
  367.  
  368. if( userTeam == CS_TEAM_T ) {
  369.  
  370. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  371.  
  372.  
  373. give_item( iClient, g_szWeaponsName[ iItem ] );
  374. give_item( iClient, g_szPistolName );
  375.  
  376. ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  377. g_iWPTE++;
  378. }
  379. else {
  380.  
  381. client_print( iClient, print_center, g_szMessages[ 1 ] );
  382. func_OpenWeaponMenu( iClient );
  383.  
  384. return PLUGIN_HANDLED;
  385. }
  386. }
  387. }
  388.  
  389. give_item( iClient, "weapon_knife" );
  390. give_player_stuff( iClient );
  391.  
  392. menu_destroy( iMenu );
  393. return PLUGIN_HANDLED;
  394. }
  395.  
  396. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  397.  
  398. new iPlayers[ 32 ] , iPlayerCount;
  399.  
  400. get_players( iPlayers , iPlayerCount );
  401.  
  402. for ( new i = 0 ; i < iPlayerCount ; i++ )
  403. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  404. }
  405.  
  406. stock give_player_stuff( iClient ) {
  407.  
  408. if( get_pcvar_num( pCvarFlash ) ) {
  409.  
  410. give_item( iClient, "weapon_flashbang" );
  411. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  412. }
  413.  
  414. if( get_pcvar_num( pCvarHe ) ) {
  415.  
  416. give_item( iClient, "weapon_hegrenade" );
  417. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  418. }
  419.  
  420. if( get_pcvar_num( pCvarSmoke ) ) {
  421.  
  422. give_item( iClient, "weapon_smokegrenade" );
  423. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  424. }
  425.  
  426. if( get_pcvar_num( pCvarKevlar ) ) {
  427.  
  428. switch( get_pcvar_num( pCvarKevlar ) ) {
  429.  
  430. case 1: give_item( iClient, "item_kevlar" );
  431. case 2: give_item( iClient, "item_assaultsuit" );
  432. default: return PLUGIN_CONTINUE;
  433. }
  434. }
  435.  
  436. if( get_pcvar_num( pCvarDefuser ) ) {
  437.  
  438. give_item( iClient, "item_thighpack" );
  439. }
  440.  
  441. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  442.  
  443. new weapons[ 32 ];
  444. new weaponsnum;
  445. get_user_weapons( iClient, weapons, weaponsnum );
  446. for( new i = 0; i < weaponsnum; i++ )
  447. if( is_user_alive( iClient ) )
  448. if( maxAmmo[ weapons[ i ] ] > 0 )
  449. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  450. }
  451.  
  452. g_bHasWeapon[ iClient ] = true;
  453. return PLUGIN_CONTINUE;
  454. }
  455.  
  456.  
  457. //Stolen from CSDM Weapon Menu
  458. stock StripUserWeapons( iClient ) {
  459.  
  460. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  461.  
  462. if( iC4Ent > 0 ) {
  463.  
  464. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  465. }
  466.  
  467. strip_user_weapons( iClient );
  468. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  469.  
  470. if( iC4Ent > 0 ) {
  471.  
  472. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  473. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  474.  
  475. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  476. cs_set_user_plant( iClient, 1 );
  477. }
  478.  
  479. return PLUGIN_HANDLED;
  480. }
  481.  
  482. stock ColorChat( iClient, const input[], any:...)
  483. {
  484. new count = 1, players[ 32 ];
  485. static msg[ 191 ];
  486. vformat( msg, 190, input, 3 );
  487.  
  488. replace_all( msg, 190, "^x01" , "^1");
  489. replace_all( msg, 190, "^x03" , "^3");
  490. replace_all( msg, 190, "^x04" , "^4");
  491.  
  492. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  493. {
  494. for ( new i = 0; i < count; i++ )
  495. {
  496. if ( is_user_connected( players[ i ] ) )
  497. {
  498. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  499. write_byte( players[ i ] );
  500. write_string( msg );
  501. message_end( );
  502. }
  503. }
  504. }
  505. }
  506.  
  507. stock print_color(const id, const input[], any:...)
  508. {
  509. new count = 1, players[32]
  510. static msg[191]
  511. vformat(msg, 190, input, 3)
  512.  
  513. replace_all(msg, 190, "!g", "^4")
  514. replace_all(msg, 190, "!y", "^1")
  515. replace_all(msg, 190, "!t", "^3")
  516. replace_all(msg, 190, "á", "á")
  517. replace_all(msg, 190, "é", "Ă©")
  518. replace_all(msg, 190, "í", "Ă­")
  519. replace_all(msg, 190, "ó", "Ăł")
  520. replace_all(msg, 190, "ö", "ö")
  521. replace_all(msg, 190, "ő", "Ĺ‘")
  522. replace_all(msg, 190, "ú", "Ăş")
  523. replace_all(msg, 190, "ü", "ĂĽ")
  524. replace_all(msg, 190, "ű", "ű")
  525. replace_all(msg, 190, "Á", "Á")
  526. replace_all(msg, 190, "É", "É")
  527. replace_all(msg, 190, "Í", "ĂŤ")
  528. replace_all(msg, 190, "Ó", "Ă“")
  529. replace_all(msg, 190, "Ö", "Ă–")
  530. replace_all(msg, 190, "Ő", "Ő")
  531. replace_all(msg, 190, "Ú", "Ăš")
  532. replace_all(msg, 190, "Ü", "Ăś")
  533. replace_all(msg, 190, "Ű", "Ĺ°")
  534.  
  535. if (id) players[0] = id; else get_players(players, count, "ch")
  536. {
  537. for (new i = 0; i < count; i++)
  538. {
  539. if (is_user_connected(players[i]))
  540. {
  541. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  542. write_byte(players[i])
  543. write_string(msg)
  544. message_end()
  545. }
  546. }
  547. }
  548. return PLUGIN_HANDLED
  549. }

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyomenü
HozzászólásElküldve: 2015.01.07. 18:27 
Offline
Tud valamit
Avatar

Csatlakozott: 2015.01.07. 15:56
Hozzászólások: 100
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 15 alkalommal
Én is ezt használom és deaglét add.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyomenü
HozzászólásElküldve: 2015.01.07. 18:39 
Offline
Nagyúr
Avatar

Csatlakozott: 2013.09.14. 08:21
Hozzászólások: 547
Megköszönt másnak: 95 alkalommal
Megköszönték neki: 71 alkalommal
Fantom írta:
Én is ezt használom és deaglét add.

pack-ba bent van. de nekem nem az kell hanem mikor kezdödik a kör 1 dezi legyen minden játékos kezébe :)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyomenü
HozzászólásElküldve: 2015.01.07. 18:46 
Offline
Tud valamit
Avatar

Csatlakozott: 2015.01.07. 15:56
Hozzászólások: 100
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 15 alkalommal
elit írta:
Fantom írta:
Én is ezt használom és deaglét add.

pack-ba bent van. de nekem nem az kell hanem mikor kezdödik a kör 1 dezi legyen minden játékos kezébe :)


Próbáld nem sikerült kipróbálnom mert jelenleg nincs sehol, de 100% hiba nélkül le fordította.
SMA Forráskód: [ Mindet kijelol ]
  1. #include < amxmodx >
  2. #include < amxmisc >
  3. #include < fun >
  4. #include < fakemeta >
  5. #include < cstrike >
  6. #include < hamsandwich >
  7.  
  8. #pragma semicolon 1
  9.  
  10. #define VERSION "0.0.1"
  11.  
  12. #define Max_Players 32
  13.  
  14. #define OFFSET_PRIMARYWEAPON 116
  15. #define OFFSET_C4_SLOT 372
  16.  
  17. #define Weapon_Menu_Name ""
  18.  
  19. #define Next_Button "Kovetkezo"
  20. #define Back_Button "Vissza"
  21. #define Exit_Button "Kilepes"
  22.  
  23. #define Money_Hud ( 1 << 5 )
  24.  
  25. new g_iWPCT;
  26. new g_iWPTE;
  27.  
  28. new pCvarMaxCTWps;
  29. new pCvarMaxTEWps;
  30.  
  31. new pCvarWPBlock;
  32.  
  33. new pCvarFlash;
  34. new pCvarHe;
  35. new pCvarSmoke;
  36.  
  37. new pCvarKevlar;
  38. new pCvarDefuser;
  39.  
  40. new pCvarPrefix;
  41. new pCvarMoney;
  42. new pCvarBlockBuy;
  43. new pCvarUnAmmo;
  44.  
  45. new const g_szMessages [ ] [ ] =
  46. {
  47. "",
  48. "Csapatonként csak két ember AWP-zhet",
  49. "%s AWP csak 3v3-tól használható!",
  50. "%s A vásárlás letiltva!",
  51. "%s Te már választóttál fegyvert!"
  52. };
  53.  
  54. new const g_szWeaponMenuNames [ ] [ ] = {
  55.  
  56. "M4A1 Csomag",
  57. "AK47 Csomag",
  58. "AWP Csomag",
  59. "M249 Csomag",
  60. "AUG Csomag",
  61. "Famas Csomag",
  62. "Galil Csomag",
  63. "MP5 Csomag",
  64. "XM1014 Csomag",
  65. "M3 Csomag",
  66. "Scout Csomag"
  67. };
  68.  
  69. new const g_szWeaponsName [ ] [ ] = {
  70.  
  71. "weapon_m4a1",
  72. "weapon_ak47",
  73. "weapon_awp",
  74. "weapon_m249",
  75. "weapon_aug",
  76. "weapon_famas",
  77. "weapon_galil",
  78. "weapon_mp5navy",
  79. "weapon_xm1014",
  80. "weapon_m3",
  81. "weapon_scout"
  82. };
  83.  
  84. new const g_szPistolName [ ] = "weapon_deagle";
  85.  
  86. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  87. new const maxAmmo[ 31 ] = {
  88.  
  89. 0,
  90. 52,
  91. 0,
  92. 90,
  93. 1,
  94. 32,
  95. 1,
  96. 100,
  97. 90,
  98. 1,
  99. 120,
  100. 100,
  101. 100,
  102. 90,
  103. 90,
  104. 90,
  105. 100,
  106. 120,
  107. 30,
  108. 120,
  109. 200,
  110. 32,
  111. 90,
  112. 120,
  113. 90,
  114. 2,
  115. 35,
  116. 90,
  117. 90,
  118. 0,
  119. 100
  120. };
  121.  
  122. new g_szBuyCommands[ ][ ] =
  123. {
  124. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  125. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  126. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  127. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  128. "buyammo1", "buyammo2"
  129. };
  130.  
  131. new const g_szMenuCommands[ ] [ ] =
  132. {
  133. "fegyo",
  134. "say fegyo",
  135. "say_team fegyo",
  136.  
  137. "fegyver",
  138. "say fegyver",
  139. "say_team fegyver",
  140.  
  141. "say /fegyo",
  142. "say_team /fegyo",
  143.  
  144. "say /fegyver",
  145. "say_team /fegyver"
  146.  
  147. };
  148.  
  149. new g_szChatPrefix[ 64 ];
  150. new g_msgHideWeapon;
  151. new g_bHasWeapon[ Max_Players ];
  152.  
  153. public plugin_init ( ) {
  154.  
  155. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  156.  
  157. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  158.  
  159. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "2" ); // Ct-n?l 2 AWP-s lehet.
  160. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "2" ); // Terrorist?kn?l 2 AWP-s lehet.
  161.  
  162. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "3" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  163.  
  164. pCvarFlash = register_cvar( "awm_give_flash", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  165. pCvarHe = register_cvar( "awm_give_he", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 1 Roban? gr?n?t
  166. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  167.  
  168. pCvarKevlar = register_cvar( "awm_give_kevlar", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e kevl?rt. ( 0 = Nem Ad ) Alap: 2 ( Kevl?r + Sisak )
  169. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  170.  
  171. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "1" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  172.  
  173. pCvarBlockBuy = register_cvar( "awm_block_buy", "1" ); // Itt tudod be?ll?tani ,hogy tiltsa-e a v?s?rl?st vagy ne. Alap 1 ( Teh?t tiltva van ) ( 0 = Nincs tiltva )
  174. pCvarMoney = register_cvar( "awm_set_money", "0" ); // Itt tudod be?ll?tani ,hogy mennyi p?nze legyen a j?t?kosoknak. ( 0 = Nincs , elt?nik a hudr?l is ) Alap: 0
  175. pCvarPrefix = register_cvar( "awm_prefix", "" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  176.  
  177. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  178.  
  179. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  180. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  181.  
  182. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  183. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  184.  
  185. register_event( "ResetHUD", "onResetHUD", "b" );
  186. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  187.  
  188. register_message( g_msgHideWeapon, "msgHideWeapon" );
  189.  
  190. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  191. }
  192.  
  193. public client_connect( iClient ) {
  194.  
  195. g_bHasWeapon[ iClient ] = false;
  196. }
  197.  
  198. public client_disconnect( iClient ) {
  199.  
  200. g_bHasWeapon[ iClient ] = false;
  201. }
  202.  
  203. public cmd_ShowWeaponMenu( iClient ) {
  204.  
  205. switch( g_bHasWeapon[ iClient ] ) {
  206.  
  207. case true:
  208. {
  209. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  210. ColorChat( iClient, "%s %s" , g_szChatPrefix, g_szMessages[ 4 ] );
  211.  
  212. return PLUGIN_HANDLED;
  213. }
  214. case false: func_OpenWeaponMenu( iClient );
  215. }
  216. return PLUGIN_HANDLED;
  217. }
  218.  
  219. public cmd_BlockBuy( iClient ) {
  220.  
  221. if( !get_pcvar_num( pCvarBlockBuy ) )
  222. return PLUGIN_CONTINUE;
  223.  
  224. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  225. ColorChat( iClient, "%s %s" , g_szChatPrefix, g_szMessages[ 3 ] );
  226. return PLUGIN_HANDLED;
  227. }
  228.  
  229. public eCurWeapon( iClient ) {
  230.  
  231. if( get_pcvar_num( pCvarUnAmmo ) ) {
  232.  
  233. if( is_user_alive( iClient ) ) {
  234.  
  235. new weapon = read_data( 2 );
  236. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  237.  
  238. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  239. }
  240. }
  241. }
  242. }
  243.  
  244. public onResetHUD( iClient ) {
  245.  
  246. if( !get_pcvar_num( pCvarMoney ) ) {
  247.  
  248. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  249. write_byte( Money_Hud );
  250. message_end( );
  251. }
  252. }
  253.  
  254. public msgHideWeapon( ) {
  255.  
  256. if( !get_pcvar_num( pCvarMoney ) ) {
  257.  
  258. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  259. }
  260. }
  261.  
  262. public eRoundEnd ( ) {
  263.  
  264. g_iWPCT = 0;
  265. g_iWPTE = 0;
  266. }
  267.  
  268. public func_OpenWeaponMenu ( iClient ) {
  269.  
  270.  
  271. if( !is_user_alive( iClient ) )
  272. return;
  273.  
  274. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  275. give_item( iClient, g_szPistolName );
  276.  
  277. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  278.  
  279. g_bHasWeapon[ iClient ] = false;
  280.  
  281. new szMenuTitle[ 121 ];
  282. new szMenuItem[ 121 ];
  283.  
  284. format( szMenuTitle, charsmax( szMenuTitle ), "%s %s", g_szChatPrefix, Weapon_Menu_Name );
  285.  
  286. StripUserWeapons( iClient );
  287. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  288.  
  289. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  290.  
  291. if( i != 2 ) {
  292.  
  293. format( szMenuItem, charsmax( szMenuItem ), "%s", g_szWeaponMenuNames[ i ] );
  294. }
  295. else {
  296. switch( get_user_team( iClient ) )
  297. {
  298. case 1: format( szMenuItem, charsmax( szMenuItem ), "%s [Elsö %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  299. case 2: format( szMenuItem, charsmax( szMenuItem ), "%s [Elsö %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  300. default: continue;
  301. }
  302. }
  303.  
  304. menu_additem( menu, szMenuItem, _, 0 );
  305. }
  306.  
  307. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  308. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  309. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  310. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  311. menu_display( iClient, menu );
  312. }
  313.  
  314. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  315.  
  316. if( iItem == MENU_EXIT ) {
  317.  
  318. menu_destroy( iMenu );
  319. return PLUGIN_HANDLED;
  320. }
  321.  
  322. new data[ 6 ], szName[ 64 ];
  323. new access, callback;
  324. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  325.  
  326. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  327.  
  328. if( iItem != 2 ) {
  329.  
  330. give_item( iClient, g_szWeaponsName[ iItem ] );
  331. give_item( iClient, g_szPistolName );
  332.  
  333. ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  334. }
  335. else {
  336.  
  337. new iTeams[ CsTeams ];
  338. GetPlayerCount( iTeams );
  339.  
  340. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  341. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  342.  
  343. ColorChat( iClient, g_szMessages[ 2 ], g_szChatPrefix );
  344. func_OpenWeaponMenu( iClient );
  345.  
  346. return PLUGIN_HANDLED;
  347. }
  348.  
  349. new CsTeams:userTeam = cs_get_user_team( iClient );
  350. if( userTeam == CS_TEAM_CT ) {
  351.  
  352. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  353.  
  354. give_item( iClient, g_szWeaponsName[ iItem ] );
  355. give_item( iClient, g_szPistolName );
  356.  
  357. ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  358. g_iWPCT++;
  359. }
  360. else {
  361.  
  362. client_print( iClient, print_center, g_szMessages[ 1 ] );
  363. func_OpenWeaponMenu ( iClient );
  364.  
  365. return PLUGIN_HANDLED;
  366. }
  367. }
  368.  
  369. if( userTeam == CS_TEAM_T ) {
  370.  
  371. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  372.  
  373.  
  374. give_item( iClient, g_szWeaponsName[ iItem ] );
  375. give_item( iClient, g_szPistolName );
  376.  
  377. ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  378. g_iWPTE++;
  379. }
  380. else {
  381.  
  382. client_print( iClient, print_center, g_szMessages[ 1 ] );
  383. func_OpenWeaponMenu( iClient );
  384.  
  385. return PLUGIN_HANDLED;
  386. }
  387. }
  388. }
  389.  
  390. give_item( iClient, "weapon_knife" );
  391. give_player_stuff( iClient );
  392.  
  393. menu_destroy( iMenu );
  394. return PLUGIN_HANDLED;
  395. }
  396.  
  397. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  398.  
  399. new iPlayers[ 32 ] , iPlayerCount;
  400.  
  401. get_players( iPlayers , iPlayerCount );
  402.  
  403. for ( new i = 0 ; i < iPlayerCount ; i++ )
  404. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  405. }
  406.  
  407. stock give_player_stuff( iClient ) {
  408.  
  409. if( get_pcvar_num( pCvarFlash ) ) {
  410.  
  411. give_item( iClient, "weapon_flashbang" );
  412. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  413. }
  414.  
  415. if( get_pcvar_num( pCvarHe ) ) {
  416.  
  417. give_item( iClient, "weapon_hegrenade" );
  418. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  419. }
  420.  
  421. if( get_pcvar_num( pCvarSmoke ) ) {
  422.  
  423. give_item( iClient, "weapon_smokegrenade" );
  424. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  425. }
  426.  
  427. if( get_pcvar_num( pCvarKevlar ) ) {
  428.  
  429. switch( get_pcvar_num( pCvarKevlar ) ) {
  430.  
  431. case 1: give_item( iClient, "item_kevlar" );
  432. case 2: give_item( iClient, "item_assaultsuit" );
  433. default: return PLUGIN_CONTINUE;
  434. }
  435. }
  436.  
  437. if( get_pcvar_num( pCvarDefuser ) ) {
  438.  
  439. give_item( iClient, "item_thighpack" );
  440. }
  441.  
  442. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  443.  
  444. new weapons[ 32 ];
  445. new weaponsnum;
  446. get_user_weapons( iClient, weapons, weaponsnum );
  447. for( new i = 0; i < weaponsnum; i++ )
  448. if( is_user_alive( iClient ) )
  449. if( maxAmmo[ weapons[ i ] ] > 0 )
  450. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  451. }
  452.  
  453. g_bHasWeapon[ iClient ] = true;
  454. return PLUGIN_CONTINUE;
  455. }
  456.  
  457.  
  458. //Stolen from CSDM Weapon Menu
  459. stock StripUserWeapons( iClient ) {
  460.  
  461. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  462.  
  463. if( iC4Ent > 0 ) {
  464.  
  465. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  466. }
  467.  
  468. strip_user_weapons( iClient );
  469. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  470.  
  471. if( iC4Ent > 0 ) {
  472.  
  473. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  474. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  475.  
  476. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  477. cs_set_user_plant( iClient, 1 );
  478. }
  479.  
  480. return PLUGIN_HANDLED;
  481. }
  482.  
  483. stock ColorChat( iClient, const input[], any:...)
  484. {
  485. new count = 1, players[ 32 ];
  486. static msg[ 191 ];
  487. vformat( msg, 190, input, 3 );
  488.  
  489. replace_all( msg, 190, "^x01" , "^1");
  490. replace_all( msg, 190, "^x03" , "^3");
  491. replace_all( msg, 190, "^x04" , "^4");
  492.  
  493. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  494. {
  495. for ( new i = 0; i < count; i++ )
  496. {
  497. if ( is_user_connected( players[ i ] ) )
  498. {
  499. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  500. write_byte( players[ i ] );
  501. write_string( msg );
  502. message_end( );
  503. }
  504. }
  505. }
  506. }
  507.  
  508. stock print_color(const id, const input[], any:...)
  509. {
  510. new count = 1, players[32]
  511. static msg[191]
  512. vformat(msg, 190, input, 3)
  513.  
  514. replace_all(msg, 190, "!g", "^4")
  515. replace_all(msg, 190, "!y", "^1")
  516. replace_all(msg, 190, "!t", "^3")
  517. replace_all(msg, 190, "á", "á")
  518. replace_all(msg, 190, "é", "Ă©")
  519. replace_all(msg, 190, "í", "Ă­")
  520. replace_all(msg, 190, "ó", "Ăł")
  521. replace_all(msg, 190, "ö", "ö")
  522. replace_all(msg, 190, "ő", "Ĺ‘")
  523. replace_all(msg, 190, "ú", "Ăş")
  524. replace_all(msg, 190, "ü", "ĂĽ")
  525. replace_all(msg, 190, "ű", "ű")
  526. replace_all(msg, 190, "Á", "Á")
  527. replace_all(msg, 190, "É", "É")
  528. replace_all(msg, 190, "Í", "ĂŤ")
  529. replace_all(msg, 190, "Ó", "Ă“")
  530. replace_all(msg, 190, "Ö", "Ă–")
  531. replace_all(msg, 190, "Ő", "Ő")
  532. replace_all(msg, 190, "Ú", "Ăš")
  533. replace_all(msg, 190, "Ü", "Ăś")
  534. replace_all(msg, 190, "Ű", "Ĺ°")
  535.  
  536. if (id) players[0] = id; else get_players(players, count, "ch")
  537. {
  538. for (new i = 0; i < count; i++)
  539. {
  540. if (is_user_connected(players[i]))
  541. {
  542. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  543. write_byte(players[i])
  544. write_string(msg)
  545. message_end()
  546. }
  547. }
  548. }
  549. return PLUGIN_HANDLED
  550. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyomenü
HozzászólásElküldve: 2015.01.07. 19:12 
Offline
Nagyúr
Avatar

Csatlakozott: 2013.09.14. 08:21
Hozzászólások: 547
Megköszönt másnak: 95 alkalommal
Megköszönték neki: 71 alkalommal
Fantom írta:
elit írta:
Fantom írta:
Én is ezt használom és deaglét add.

pack-ba bent van. de nekem nem az kell hanem mikor kezdödik a kör 1 dezi legyen minden játékos kezébe :)


Próbáld nem sikerült kipróbálnom mert jelenleg nincs sehol, de 100% hiba nélkül le fordította.
SMA Forráskód: [ Mindet kijelol ] #include < amxmodx >
#include < amxmisc >
#include < fun >
#include < fakemeta >
#include < cstrike >
#include < hamsandwich >
 
#pragma semicolon 1
 
#define VERSION "0.0.1"
 
#define Max_Players 32
 
#define OFFSET_PRIMARYWEAPON 116
#define OFFSET_C4_SLOT 372
 
#define Weapon_Menu_Name ""
 
#define Next_Button "Kovetkezo"
#define Back_Button "Vissza"
#define Exit_Button "Kilepes"
 
#define Money_Hud ( 1 << 5 )
 
new g_iWPCT;
new g_iWPTE;
 
new pCvarMaxCTWps;
new pCvarMaxTEWps;
 
new pCvarWPBlock;
 
new pCvarFlash;
new pCvarHe;
new pCvarSmoke;
 
new pCvarKevlar;
new pCvarDefuser;
 
new pCvarPrefix;
new pCvarMoney;
new pCvarBlockBuy;
new pCvarUnAmmo;
 
new const g_szMessages [ ] [ ] =
{
"",
"Csapatonként csak két ember AWP-zhet",
"%s AWP csak 3v3-tól használható!",
"%s A vásárlás letiltva!",
"%s Te már választóttál fegyvert!"
};
 
new const g_szWeaponMenuNames [ ] [ ] = {
 
"M4A1 Csomag",
"AK47 Csomag",
"AWP Csomag",
"M249 Csomag",
"AUG Csomag",
"Famas Csomag",
"Galil Csomag",
"MP5 Csomag",
"XM1014 Csomag",
"M3 Csomag",
"Scout Csomag"
};
 
new const g_szWeaponsName [ ] [ ] = {
 
"weapon_m4a1",
"weapon_ak47",
"weapon_awp",
"weapon_m249",
"weapon_aug",
"weapon_famas",
"weapon_galil",
"weapon_mp5navy",
"weapon_xm1014",
"weapon_m3",
"weapon_scout"
};
 
new const g_szPistolName [ ] = "weapon_deagle";
 
const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
new const maxAmmo[ 31 ] = {
 
0,
52,
0,
90,
1,
32,
1,
100,
90,
1,
120,
100,
100,
90,
90,
90,
100,
120,
30,
120,
200,
32,
90,
120,
90,
2,
35,
90,
90,
0,
100
};
 
new g_szBuyCommands[ ][ ] =
{
"usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
"galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
"sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
"autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
"buyammo1", "buyammo2"
};
 
new const g_szMenuCommands[ ] [ ] =
{
"fegyo",
"say fegyo",
"say_team fegyo",
 
"fegyver",
"say fegyver",
"say_team fegyver",
 
"say /fegyo",
"say_team /fegyo",
 
"say /fegyver",
"say_team /fegyver"
 
};
 
new g_szChatPrefix[ 64 ];
new g_msgHideWeapon;
new g_bHasWeapon[ Max_Players ];
 
public plugin_init ( ) {
 
register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
 
RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
 
pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "2" ); // Ct-n?l 2 AWP-s lehet.
pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "2" ); // Terrorist?kn?l 2 AWP-s lehet.
 
pCvarWPBlock = register_cvar( "awm_allow_wp_player", "3" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
 
pCvarFlash = register_cvar( "awm_give_flash", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
pCvarHe = register_cvar( "awm_give_he", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 1 Roban? gr?n?t
pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
 
pCvarKevlar = register_cvar( "awm_give_kevlar", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e kevl?rt. ( 0 = Nem Ad ) Alap: 2 ( Kevl?r + Sisak )
pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
 
pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "1" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
 
pCvarBlockBuy = register_cvar( "awm_block_buy", "1" ); // Itt tudod be?ll?tani ,hogy tiltsa-e a v?s?rl?st vagy ne. Alap 1 ( Teh?t tiltva van ) ( 0 = Nincs tiltva )
pCvarMoney = register_cvar( "awm_set_money", "0" ); // Itt tudod be?ll?tani ,hogy mennyi p?nze legyen a j?t?kosoknak. ( 0 = Nincs , elt?nik a hudr?l is ) Alap: 0
pCvarPrefix = register_cvar( "awm_prefix", "" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
 
g_msgHideWeapon = get_user_msgid( "HideWeapon" );
 
for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
 
for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
 
register_event( "ResetHUD", "onResetHUD", "b" );
register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
 
register_message( g_msgHideWeapon, "msgHideWeapon" );
 
register_logevent( "eRoundEnd", 2, "1=Round_End" );
}
 
public client_connect( iClient ) {
 
g_bHasWeapon[ iClient ] = false;
}
 
public client_disconnect( iClient ) {
 
g_bHasWeapon[ iClient ] = false;
}
 
public cmd_ShowWeaponMenu( iClient ) {
 
switch( g_bHasWeapon[ iClient ] ) {
 
case true:
{
get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
ColorChat( iClient, "%s %s" , g_szChatPrefix, g_szMessages[ 4 ] );
 
return PLUGIN_HANDLED;
}
case false: func_OpenWeaponMenu( iClient );
}
return PLUGIN_HANDLED;
}
 
public cmd_BlockBuy( iClient ) {
 
if( !get_pcvar_num( pCvarBlockBuy ) )
return PLUGIN_CONTINUE;
 
get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
ColorChat( iClient, "%s %s" , g_szChatPrefix, g_szMessages[ 3 ] );
return PLUGIN_HANDLED;
}
 
public eCurWeapon( iClient ) {
 
if( get_pcvar_num( pCvarUnAmmo ) ) {
 
if( is_user_alive( iClient ) ) {
 
new weapon = read_data( 2 );
if( !( DoNotReload & ( 1 << weapon ) ) ) {
 
cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
}
}
}
}
 
public onResetHUD( iClient ) {
 
if( !get_pcvar_num( pCvarMoney ) ) {
 
message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
write_byte( Money_Hud );
message_end( );
}
}
 
public msgHideWeapon( ) {
 
if( !get_pcvar_num( pCvarMoney ) ) {
 
set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
}
}
 
public eRoundEnd ( ) {
 
g_iWPCT = 0;
g_iWPTE = 0;
}
 
public func_OpenWeaponMenu ( iClient ) {
 
 
if( !is_user_alive( iClient ) )
return;
 
cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
give_item( iClient, g_szPistolName );
 
get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
 
g_bHasWeapon[ iClient ] = false;
 
new szMenuTitle[ 121 ];
new szMenuItem[ 121 ];
 
format( szMenuTitle, charsmax( szMenuTitle ), "%s %s", g_szChatPrefix, Weapon_Menu_Name );
 
StripUserWeapons( iClient );
new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
 
for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
 
if( i != 2 ) {
 
format( szMenuItem, charsmax( szMenuItem ), "%s", g_szWeaponMenuNames[ i ] );
}
else {
switch( get_user_team( iClient ) )
{
case 1: format( szMenuItem, charsmax( szMenuItem ), "%s [Elsö %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
case 2: format( szMenuItem, charsmax( szMenuItem ), "%s [Elsö %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
default: continue;
}
}
 
menu_additem( menu, szMenuItem, _, 0 );
}
 
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_setprop( menu, MPROP_BACKNAME, Back_Button );
menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
menu_display( iClient, menu );
}
 
public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
 
if( iItem == MENU_EXIT ) {
 
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}
 
new data[ 6 ], szName[ 64 ];
new access, callback;
menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
 
get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
 
if( iItem != 2 ) {
 
give_item( iClient, g_szWeaponsName[ iItem ] );
give_item( iClient, g_szPistolName );
 
ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
}
else {
 
new iTeams[ CsTeams ];
GetPlayerCount( iTeams );
 
if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
|| iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
 
ColorChat( iClient, g_szMessages[ 2 ], g_szChatPrefix );
func_OpenWeaponMenu( iClient );
 
return PLUGIN_HANDLED;
}
 
new CsTeams:userTeam = cs_get_user_team( iClient );
if( userTeam == CS_TEAM_CT ) {
 
if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
 
give_item( iClient, g_szWeaponsName[ iItem ] );
give_item( iClient, g_szPistolName );
 
ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
g_iWPCT++;
}
else {
 
client_print( iClient, print_center, g_szMessages[ 1 ] );
func_OpenWeaponMenu ( iClient );
 
return PLUGIN_HANDLED;
}
}
 
if( userTeam == CS_TEAM_T ) {
 
if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
 
 
give_item( iClient, g_szWeaponsName[ iItem ] );
give_item( iClient, g_szPistolName );
 
ColorChat( iClient, "%s Tessék egy %s!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
g_iWPTE++;
}
else {
 
client_print( iClient, print_center, g_szMessages[ 1 ] );
func_OpenWeaponMenu( iClient );
 
return PLUGIN_HANDLED;
}
}
}
 
give_item( iClient, "weapon_knife" );
give_player_stuff( iClient );
 
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}
 
GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
 
new iPlayers[ 32 ] , iPlayerCount;
 
get_players( iPlayers , iPlayerCount );
 
for ( new i = 0 ; i < iPlayerCount ; i++ )
iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
}
 
stock give_player_stuff( iClient ) {
 
if( get_pcvar_num( pCvarFlash ) ) {
 
give_item( iClient, "weapon_flashbang" );
cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
}
 
if( get_pcvar_num( pCvarHe ) ) {
 
give_item( iClient, "weapon_hegrenade" );
cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
}
 
if( get_pcvar_num( pCvarSmoke ) ) {
 
give_item( iClient, "weapon_smokegrenade" );
cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
}
 
if( get_pcvar_num( pCvarKevlar ) ) {
 
switch( get_pcvar_num( pCvarKevlar ) ) {
 
case 1: give_item( iClient, "item_kevlar" );
case 2: give_item( iClient, "item_assaultsuit" );
default: return PLUGIN_CONTINUE;
}
}
 
if( get_pcvar_num( pCvarDefuser ) ) {
 
give_item( iClient, "item_thighpack" );
}
 
if( !get_pcvar_num( pCvarUnAmmo ) ) {
 
new weapons[ 32 ];
new weaponsnum;
get_user_weapons( iClient, weapons, weaponsnum );
for( new i = 0; i < weaponsnum; i++ )
if( is_user_alive( iClient ) )
if( maxAmmo[ weapons[ i ] ] > 0 )
cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
}
 
g_bHasWeapon[ iClient ] = true;
return PLUGIN_CONTINUE;
}
 
 
//Stolen from CSDM Weapon Menu
stock StripUserWeapons( iClient ) {
 
new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
 
if( iC4Ent > 0 ) {
 
set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
}
 
strip_user_weapons( iClient );
set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
 
if( iC4Ent > 0 ) {
 
set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
 
cs_set_user_bpammo( iClient, CSW_C4, 1 );
cs_set_user_plant( iClient, 1 );
}
 
return PLUGIN_HANDLED;
}
 
stock ColorChat( iClient, const input[], any:...)
{
new count = 1, players[ 32 ];
static msg[ 191 ];
vformat( msg, 190, input, 3 );
 
replace_all( msg, 190, "^x01" , "^1");
replace_all( msg, 190, "^x03" , "^3");
replace_all( msg, 190, "^x04" , "^4");
 
if ( iClient ) players[ 0 ] = iClient; 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( );
}
}
}
}
 
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")
replace_all(msg, 190, "á", "á")
replace_all(msg, 190, "é", "Ă©")
replace_all(msg, 190, "í", "Ă­")
replace_all(msg, 190, "ó", "Ăł")
replace_all(msg, 190, "ö", "ö")
replace_all(msg, 190, "ő", "Ĺ‘")
replace_all(msg, 190, "ú", "Ăş")
replace_all(msg, 190, "ü", "ĂĽ")
replace_all(msg, 190, "ű", "ű")
replace_all(msg, 190, "Á", "Á")
replace_all(msg, 190, "É", "É")
replace_all(msg, 190, "Í", "ĂŤ")
replace_all(msg, 190, "Ó", "Ă“")
replace_all(msg, 190, "Ö", "Ă–")
replace_all(msg, 190, "Ő", "Ő")
replace_all(msg, 190, "Ú", "Ăš")
replace_all(msg, 190, "Ü", "Ăś")
replace_all(msg, 190, "Ű", "Ĺ°")
 
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
}


nem adott dezit sajna :)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyomenü
HozzászólásElküldve: 2015.01.07. 19:15 
Offline
Tud valamit
Avatar

Csatlakozott: 2015.01.07. 15:56
Hozzászólások: 100
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 15 alkalommal
elit írta:
nem adott dezit sajna :)



Na már ki tudtam próbálni! nekem oda adta, csak nem kézbe már dolgozok rajta.


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  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 56 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