hlmod.hu
https://hlmod.hu/

Fegyvermenü Javítás!
https://hlmod.hu/viewtopic.php?f=10&t=18467
Oldal: 1 / 2

Szerző:  levo00 [2014.12.12. 14:26 ]
Hozzászólás témája:  Fegyvermenü Javítás!

Sziasztok! valaki segítene hogy ebbe a fegyvermenübe egy olyat hogy az AWP -csak 4v4 től használható és hogy 4db legyen belölle hogy 4 darab ember vehet mert nincs több! sma:
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 "[*|P|eac|E|*] Kerlek valassz fegyvert.<!-- s:) --><img src=\"{SMILIES_PATH}/icon_e_smile.gif\" alt=\":)\" title=\"mosoly\" /><!-- s:) -->"
  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_szWeaponMenuNames [ ] [ ] = {
  46.  
  47. "1. M4A1 |Csomag",
  48. "2. AK47 |Csomag",
  49. "3. AWP |Csomag",
  50. "4. M249 |Csomag",
  51. "5. AUG |Csomag",
  52. "6. Famas |Csomag",
  53. "7. Galil |Csomag",
  54. "8. MP5 |Csomag",
  55. "9. Shotgun|Csomag",
  56. "10.M3 |Csomag",
  57. "11.Scout |Csomag"
  58. };
  59.  
  60. new const g_szWeaponsName [ ] [ ] = {
  61.  
  62. "weapon_m4a1",
  63. "weapon_ak47",
  64. "weapon_awp",
  65. "weapon_m249",
  66. "weapon_aug",
  67. "weapon_famas",
  68. "weapon_galil",
  69. "weapon_mp5navy",
  70. "weapon_xm1014",
  71. "weapon_m3",
  72. "weapon_scout"
  73. };
  74.  
  75. new const g_szPistolName [ ] = "weapon_deagle";
  76.  
  77. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  78. new const maxAmmo[ 31 ] = {
  79.  
  80. 0,
  81. 52,
  82. 0,
  83. 90,
  84. 1,
  85. 32,
  86. 1,
  87. 100,
  88. 90,
  89. 1,
  90. 120,
  91. 100,
  92. 100,
  93. 90,
  94. 90,
  95. 90,
  96. 100,
  97. 120,
  98. 30,
  99. 120,
  100. 200,
  101. 32,
  102. 90,
  103. 120,
  104. 90,
  105. 2,
  106. 35,
  107. 90,
  108. 90,
  109. 0,
  110. 100
  111. };
  112.  
  113. new g_szBuyCommands[ ][ ] =
  114. {
  115. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  116. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  117. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  118. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  119. "buyammo1", "buyammo2"
  120. };
  121.  
  122. new const g_szMenuCommands[ ] [ ] =
  123. {
  124. "say /fegyo",
  125. "say_team /fegyo",
  126.  
  127. "say /fegyver",
  128. "say_team /fegyver"
  129.  
  130. };
  131.  
  132. new g_szChatPrefix[ 64 ];
  133. new g_msgHideWeapon;
  134. new g_bHasWeapon[ Max_Players ];
  135.  
  136. public plugin_init ( ) {
  137.  
  138. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  139.  
  140. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  141.  
  142. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "3" ); // Ct-n?l 2 AWP-s lehet.
  143. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "3" ); // Terrorist?kn?l 2 AWP-s lehet.
  144.  
  145. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "0" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  146.  
  147. pCvarFlash = register_cvar( "awm_give_flash", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  148. 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
  149. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  150.  
  151. 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 )
  152. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  153.  
  154. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "0" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  155.  
  156. 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 )
  157. 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
  158. pCvarPrefix = register_cvar( "awm_prefix", "[*|P|eac|E|*]^n" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  159.  
  160. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  161.  
  162. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  163. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  164.  
  165. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  166. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  167.  
  168. register_event( "ResetHUD", "onResetHUD", "b" );
  169. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  170.  
  171. register_message( g_msgHideWeapon, "msgHideWeapon" );
  172.  
  173. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  174. }
  175.  
  176. public client_connect( iClient ) {
  177.  
  178. g_bHasWeapon[ iClient ] = false;
  179. }
  180.  
  181. public client_disconnect( iClient ) {
  182.  
  183. g_bHasWeapon[ iClient ] = false;
  184. }
  185.  
  186. public cmd_ShowWeaponMenu( iClient ) {
  187.  
  188. switch( g_bHasWeapon[ iClient ] ) {
  189.  
  190. case true:
  191. {
  192. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  193. ColorChat( iClient, "^3%s %s" , g_szChatPrefix );
  194.  
  195. return PLUGIN_HANDLED;
  196. }
  197. case false: func_OpenWeaponMenu( iClient );
  198. }
  199. return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmd_BlockBuy( iClient ) {
  203.  
  204. if( !get_pcvar_num( pCvarBlockBuy ) )
  205. return PLUGIN_CONTINUE;
  206.  
  207. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  208. ColorChat( iClient, "^3%s %s" , g_szChatPrefix);
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. public eCurWeapon( iClient ) {
  213.  
  214. if( get_pcvar_num( pCvarUnAmmo ) ) {
  215.  
  216. if( is_user_alive( iClient ) ) {
  217.  
  218. new weapon = read_data( 2 );
  219. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  220.  
  221. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  222. }
  223. }
  224. }
  225. }
  226.  
  227. public onResetHUD( iClient ) {
  228.  
  229. if( !get_pcvar_num( pCvarMoney ) ) {
  230.  
  231. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  232. write_byte( Money_Hud );
  233. message_end( );
  234. }
  235. }
  236.  
  237. public msgHideWeapon( ) {
  238.  
  239. if( !get_pcvar_num( pCvarMoney ) ) {
  240.  
  241. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  242. }
  243. }
  244.  
  245. public eRoundEnd ( ) {
  246.  
  247. g_iWPCT = 0;
  248. g_iWPTE = 0;
  249. }
  250.  
  251. public func_OpenWeaponMenu ( iClient ) {
  252.  
  253. if( !is_user_alive( iClient ) )
  254. return;
  255.  
  256. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  257.  
  258. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  259.  
  260. g_bHasWeapon[ iClient ] = false;
  261.  
  262. new szMenuTitle[ 121 ];
  263. new szMenuItem[ 121 ];
  264.  
  265. format( szMenuTitle, charsmax( szMenuTitle ), "%s^w%s", g_szChatPrefix, Weapon_Menu_Name );
  266.  
  267. StripUserWeapons( iClient );
  268. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  269.  
  270. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  271.  
  272. if( i != 2 ) {
  273.  
  274. format( szMenuItem, charsmax( szMenuItem ), "\w%s", g_szWeaponMenuNames[ i ] );
  275. }
  276. else {
  277. switch( get_user_team( iClient ) )
  278. {
  279. case 1: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  280. case 2: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  281. default: continue;
  282. }
  283. }
  284.  
  285. menu_additem( menu, szMenuItem, _, 0 );
  286. }
  287.  
  288. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  289. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  290. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  291. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  292. menu_display( iClient, menu );
  293. }
  294.  
  295. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  296.  
  297. if( iItem == MENU_EXIT ) {
  298.  
  299. menu_destroy( iMenu );
  300. return PLUGIN_HANDLED;
  301. }
  302.  
  303. new data[ 6 ], szName[ 64 ];
  304. new access, callback;
  305. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  306.  
  307. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  308.  
  309. if( iItem != 2 ) {
  310.  
  311. give_item( iClient, g_szWeaponsName[ iItem ] );
  312. give_item( iClient, g_szPistolName );
  313.  
  314. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  315. }
  316. else {
  317.  
  318. new iTeams[ CsTeams ];
  319. GetPlayerCount( iTeams );
  320.  
  321. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  322. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  323.  
  324. ColorChat( iClient, g_szChatPrefix );
  325. func_OpenWeaponMenu( iClient );
  326.  
  327. return PLUGIN_HANDLED;
  328. }
  329.  
  330. new CsTeams:userTeam = cs_get_user_team( iClient );
  331. if( userTeam == CS_TEAM_CT ) {
  332.  
  333. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  334.  
  335. give_item( iClient, g_szWeaponsName[ iItem ] );
  336. give_item( iClient, g_szPistolName );
  337.  
  338. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  339. g_iWPCT++;
  340. }
  341. else {
  342.  
  343. func_OpenWeaponMenu ( iClient );
  344.  
  345. return PLUGIN_HANDLED;
  346. }
  347. }
  348.  
  349. if( userTeam == CS_TEAM_T ) {
  350.  
  351. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  352.  
  353.  
  354. give_item( iClient, g_szWeaponsName[ iItem ] );
  355. give_item( iClient, g_szPistolName );
  356.  
  357. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  358. g_iWPTE++;
  359. }
  360. else {
  361.  
  362. func_OpenWeaponMenu( iClient );
  363.  
  364. return PLUGIN_HANDLED;
  365. }
  366. }
  367. }
  368.  
  369. give_item( iClient, "weapon_knife" );
  370. give_player_stuff( iClient );
  371.  
  372. menu_destroy( iMenu );
  373. return PLUGIN_HANDLED;
  374. }
  375.  
  376. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  377.  
  378. new iPlayers[ 32 ] , iPlayerCount;
  379.  
  380. get_players( iPlayers , iPlayerCount );
  381.  
  382. for ( new i = 0 ; i < iPlayerCount ; i++ )
  383. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  384. }
  385.  
  386. stock give_player_stuff( iClient ) {
  387.  
  388. if( get_pcvar_num( pCvarFlash ) ) {
  389.  
  390. give_item( iClient, "weapon_flashbang" );
  391. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  392. }
  393.  
  394. if( get_pcvar_num( pCvarHe ) ) {
  395.  
  396. give_item( iClient, "weapon_hegrenade" );
  397. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  398. }
  399.  
  400. if( get_pcvar_num( pCvarSmoke ) ) {
  401.  
  402. give_item( iClient, "weapon_smokegrenade" );
  403. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  404. }
  405.  
  406. if( get_pcvar_num( pCvarKevlar ) ) {
  407.  
  408. switch( get_pcvar_num( pCvarKevlar ) ) {
  409.  
  410. case 1: give_item( iClient, "item_kevlar" );
  411. case 2: give_item( iClient, "item_assaultsuit" );
  412. default: return PLUGIN_CONTINUE;
  413. }
  414. }
  415.  
  416. if( get_pcvar_num( pCvarDefuser ) ) {
  417.  
  418. give_item( iClient, "item_thighpack" );
  419. }
  420.  
  421. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  422.  
  423. new weapons[ 32 ];
  424. new weaponsnum;
  425. get_user_weapons( iClient, weapons, weaponsnum );
  426. for( new i = 0; i < weaponsnum; i++ )
  427. if( is_user_alive( iClient ) )
  428. if( maxAmmo[ weapons[ i ] ] > 0 )
  429. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  430. }
  431.  
  432. g_bHasWeapon[ iClient ] = true;
  433. return PLUGIN_CONTINUE;
  434. }
  435.  
  436.  
  437. //Stolen from CSDM Weapon Menu
  438. stock StripUserWeapons( iClient ) {
  439.  
  440. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  441.  
  442. if( iC4Ent > 0 ) {
  443.  
  444. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  445. }
  446.  
  447. strip_user_weapons( iClient );
  448. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  449.  
  450. if( iC4Ent > 0 ) {
  451.  
  452. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  453. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  454.  
  455. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  456. cs_set_user_plant( iClient, 1 );
  457. }
  458.  
  459. return PLUGIN_HANDLED;
  460. }
  461.  
  462. stock ColorChat( iClient, const input[], any:...)
  463. {
  464. new count = 1, players[ 32 ];
  465. static msg[ 191 ];
  466. vformat( msg, 190, input, 3 );
  467.  
  468. replace_all( msg, 190, "^x01" , "^1");
  469. replace_all( msg, 190, "^x03" , "^3");
  470. replace_all( msg, 190, "^x04" , "^4");
  471.  
  472. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  473. {
  474. for ( new i = 0; i < count; i++ )
  475. {
  476. if ( is_user_connected( players[ i ] ) )
  477. {
  478. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  479. write_byte( players[ i ] );
  480. write_string( msg );
  481. message_end( );
  482. }
  483. }
  484. }
  485. }

Szerző:  MeSter [2014.12.12. 14:29 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

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 "[*|P|eac|E|*] Kerlek valassz fegyvert.<!-- s:) --><img src=\"{SMILIES_PATH}/icon_e_smile.gif\" alt=\":)\" title=\"mosoly\" /><!-- s:) -->"
  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_szWeaponMenuNames [ ] [ ] = {
  46.  
  47. "1. M4A1 |Csomag",
  48. "2. AK47 |Csomag",
  49. "3. AWP |Csomag",
  50. "4. M249 |Csomag",
  51. "5. AUG |Csomag",
  52. "6. Famas |Csomag",
  53. "7. Galil |Csomag",
  54. "8. MP5 |Csomag",
  55. "9. Shotgun|Csomag",
  56. "10.M3 |Csomag",
  57. "11.Scout |Csomag"
  58. };
  59.  
  60. new const g_szWeaponsName [ ] [ ] = {
  61.  
  62. "weapon_m4a1",
  63. "weapon_ak47",
  64. "weapon_awp",
  65. "weapon_m249",
  66. "weapon_aug",
  67. "weapon_famas",
  68. "weapon_galil",
  69. "weapon_mp5navy",
  70. "weapon_xm1014",
  71. "weapon_m3",
  72. "weapon_scout"
  73. };
  74.  
  75. new const g_szPistolName [ ] = "weapon_deagle";
  76.  
  77. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  78. new const maxAmmo[ 31 ] = {
  79.  
  80. 0,
  81. 52,
  82. 0,
  83. 90,
  84. 1,
  85. 32,
  86. 1,
  87. 100,
  88. 90,
  89. 1,
  90. 120,
  91. 100,
  92. 100,
  93. 90,
  94. 90,
  95. 90,
  96. 100,
  97. 120,
  98. 30,
  99. 120,
  100. 200,
  101. 32,
  102. 90,
  103. 120,
  104. 90,
  105. 2,
  106. 35,
  107. 90,
  108. 90,
  109. 0,
  110. 100
  111. };
  112.  
  113. new g_szBuyCommands[ ][ ] =
  114. {
  115. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  116. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  117. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  118. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  119. "buyammo1", "buyammo2"
  120. };
  121.  
  122. new const g_szMenuCommands[ ] [ ] =
  123. {
  124. "say /fegyo",
  125. "say_team /fegyo",
  126.  
  127. "say /fegyver",
  128. "say_team /fegyver"
  129.  
  130. };
  131.  
  132. new g_szChatPrefix[ 64 ];
  133. new g_msgHideWeapon;
  134. new g_bHasWeapon[ Max_Players ];
  135.  
  136. public plugin_init ( ) {
  137.  
  138. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  139.  
  140. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  141.  
  142. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "4" ); // Ct-n?l 2 AWP-s lehet.
  143. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "4" ); // Terrorist?kn?l 2 AWP-s lehet.
  144.  
  145. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "4" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  146.  
  147. pCvarFlash = register_cvar( "awm_give_flash", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  148. 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
  149. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  150.  
  151. 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 )
  152. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  153.  
  154. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "0" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  155.  
  156. 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 )
  157. 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
  158. pCvarPrefix = register_cvar( "awm_prefix", "[*|P|eac|E|*]^n" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  159.  
  160. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  161.  
  162. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  163. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  164.  
  165. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  166. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  167.  
  168. register_event( "ResetHUD", "onResetHUD", "b" );
  169. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  170.  
  171. register_message( g_msgHideWeapon, "msgHideWeapon" );
  172.  
  173. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  174. }
  175.  
  176. public client_connect( iClient ) {
  177.  
  178. g_bHasWeapon[ iClient ] = false;
  179. }
  180.  
  181. public client_disconnect( iClient ) {
  182.  
  183. g_bHasWeapon[ iClient ] = false;
  184. }
  185.  
  186. public cmd_ShowWeaponMenu( iClient ) {
  187.  
  188. switch( g_bHasWeapon[ iClient ] ) {
  189.  
  190. case true:
  191. {
  192. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  193. ColorChat( iClient, "^3%s %s" , g_szChatPrefix );
  194.  
  195. return PLUGIN_HANDLED;
  196. }
  197. case false: func_OpenWeaponMenu( iClient );
  198. }
  199. return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmd_BlockBuy( iClient ) {
  203.  
  204. if( !get_pcvar_num( pCvarBlockBuy ) )
  205. return PLUGIN_CONTINUE;
  206.  
  207. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  208. ColorChat( iClient, "^3%s %s" , g_szChatPrefix);
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. public eCurWeapon( iClient ) {
  213.  
  214. if( get_pcvar_num( pCvarUnAmmo ) ) {
  215.  
  216. if( is_user_alive( iClient ) ) {
  217.  
  218. new weapon = read_data( 2 );
  219. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  220.  
  221. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  222. }
  223. }
  224. }
  225. }
  226.  
  227. public onResetHUD( iClient ) {
  228.  
  229. if( !get_pcvar_num( pCvarMoney ) ) {
  230.  
  231. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  232. write_byte( Money_Hud );
  233. message_end( );
  234. }
  235. }
  236.  
  237. public msgHideWeapon( ) {
  238.  
  239. if( !get_pcvar_num( pCvarMoney ) ) {
  240.  
  241. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  242. }
  243. }
  244.  
  245. public eRoundEnd ( ) {
  246.  
  247. g_iWPCT = 0;
  248. g_iWPTE = 0;
  249. }
  250.  
  251. public func_OpenWeaponMenu ( iClient ) {
  252.  
  253. if( !is_user_alive( iClient ) )
  254. return;
  255.  
  256. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  257.  
  258. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  259.  
  260. g_bHasWeapon[ iClient ] = false;
  261.  
  262. new szMenuTitle[ 121 ];
  263. new szMenuItem[ 121 ];
  264.  
  265. format( szMenuTitle, charsmax( szMenuTitle ), "%s^w%s", g_szChatPrefix, Weapon_Menu_Name );
  266.  
  267. StripUserWeapons( iClient );
  268. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  269.  
  270. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  271.  
  272. if( i != 2 ) {
  273.  
  274. format( szMenuItem, charsmax( szMenuItem ), "\w%s", g_szWeaponMenuNames[ i ] );
  275. }
  276. else {
  277. switch( get_user_team( iClient ) )
  278. {
  279. case 1: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  280. case 2: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  281. default: continue;
  282. }
  283. }
  284.  
  285. menu_additem( menu, szMenuItem, _, 0 );
  286. }
  287.  
  288. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  289. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  290. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  291. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  292. menu_display( iClient, menu );
  293. }
  294.  
  295. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  296.  
  297. if( iItem == MENU_EXIT ) {
  298.  
  299. menu_destroy( iMenu );
  300. return PLUGIN_HANDLED;
  301. }
  302.  
  303. new data[ 6 ], szName[ 64 ];
  304. new access, callback;
  305. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  306.  
  307. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  308.  
  309. if( iItem != 2 ) {
  310.  
  311. give_item( iClient, g_szWeaponsName[ iItem ] );
  312. give_item( iClient, g_szPistolName );
  313.  
  314. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  315. }
  316. else {
  317.  
  318. new iTeams[ CsTeams ];
  319. GetPlayerCount( iTeams );
  320.  
  321. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  322. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  323.  
  324. ColorChat( iClient, g_szChatPrefix );
  325. func_OpenWeaponMenu( iClient );
  326.  
  327. return PLUGIN_HANDLED;
  328. }
  329.  
  330. new CsTeams:userTeam = cs_get_user_team( iClient );
  331. if( userTeam == CS_TEAM_CT ) {
  332.  
  333. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  334.  
  335. give_item( iClient, g_szWeaponsName[ iItem ] );
  336. give_item( iClient, g_szPistolName );
  337.  
  338. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  339. g_iWPCT++;
  340. }
  341. else {
  342.  
  343. func_OpenWeaponMenu ( iClient );
  344.  
  345. return PLUGIN_HANDLED;
  346. }
  347. }
  348.  
  349. if( userTeam == CS_TEAM_T ) {
  350.  
  351. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  352.  
  353.  
  354. give_item( iClient, g_szWeaponsName[ iItem ] );
  355. give_item( iClient, g_szPistolName );
  356.  
  357. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  358. g_iWPTE++;
  359. }
  360. else {
  361.  
  362. func_OpenWeaponMenu( iClient );
  363.  
  364. return PLUGIN_HANDLED;
  365. }
  366. }
  367. }
  368.  
  369. give_item( iClient, "weapon_knife" );
  370. give_player_stuff( iClient );
  371.  
  372. menu_destroy( iMenu );
  373. return PLUGIN_HANDLED;
  374. }
  375.  
  376. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  377.  
  378. new iPlayers[ 32 ] , iPlayerCount;
  379.  
  380. get_players( iPlayers , iPlayerCount );
  381.  
  382. for ( new i = 0 ; i < iPlayerCount ; i++ )
  383. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  384. }
  385.  
  386. stock give_player_stuff( iClient ) {
  387.  
  388. if( get_pcvar_num( pCvarFlash ) ) {
  389.  
  390. give_item( iClient, "weapon_flashbang" );
  391. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  392. }
  393.  
  394. if( get_pcvar_num( pCvarHe ) ) {
  395.  
  396. give_item( iClient, "weapon_hegrenade" );
  397. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  398. }
  399.  
  400. if( get_pcvar_num( pCvarSmoke ) ) {
  401.  
  402. give_item( iClient, "weapon_smokegrenade" );
  403. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  404. }
  405.  
  406. if( get_pcvar_num( pCvarKevlar ) ) {
  407.  
  408. switch( get_pcvar_num( pCvarKevlar ) ) {
  409.  
  410. case 1: give_item( iClient, "item_kevlar" );
  411. case 2: give_item( iClient, "item_assaultsuit" );
  412. default: return PLUGIN_CONTINUE;
  413. }
  414. }
  415.  
  416. if( get_pcvar_num( pCvarDefuser ) ) {
  417.  
  418. give_item( iClient, "item_thighpack" );
  419. }
  420.  
  421. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  422.  
  423. new weapons[ 32 ];
  424. new weaponsnum;
  425. get_user_weapons( iClient, weapons, weaponsnum );
  426. for( new i = 0; i < weaponsnum; i++ )
  427. if( is_user_alive( iClient ) )
  428. if( maxAmmo[ weapons[ i ] ] > 0 )
  429. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  430. }
  431.  
  432. g_bHasWeapon[ iClient ] = true;
  433. return PLUGIN_CONTINUE;
  434. }
  435.  
  436.  
  437. //Stolen from CSDM Weapon Menu
  438. stock StripUserWeapons( iClient ) {
  439.  
  440. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  441.  
  442. if( iC4Ent > 0 ) {
  443.  
  444. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  445. }
  446.  
  447. strip_user_weapons( iClient );
  448. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  449.  
  450. if( iC4Ent > 0 ) {
  451.  
  452. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  453. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  454.  
  455. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  456. cs_set_user_plant( iClient, 1 );
  457. }
  458.  
  459. return PLUGIN_HANDLED;
  460. }
  461.  
  462. stock ColorChat( iClient, const input[], any:...)
  463. {
  464. new count = 1, players[ 32 ];
  465. static msg[ 191 ];
  466. vformat( msg, 190, input, 3 );
  467.  
  468. replace_all( msg, 190, "^x01" , "^1");
  469. replace_all( msg, 190, "^x03" , "^3");
  470. replace_all( msg, 190, "^x04" , "^4");
  471.  
  472. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  473. {
  474. for ( new i = 0; i < count; i++ )
  475. {
  476. if ( is_user_connected( players[ i ] ) )
  477. {
  478. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  479. write_byte( players[ i ] );
  480. write_string( msg );
  481. message_end( );
  482. }
  483. }
  484. }
  485. }


A plugint ahol nézzted van leírás meg cvarok :)

Szerző:  levo00 [2014.12.12. 14:47 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
Modified for www.freakz.ro

fegyi.sma(265) : error 027: invalid character constant
fegyi.sma(265) : error 027: invalid character constant

2 Errors.
Compilarea failed!
? :O

Szerző:  MeSter [2014.12.12. 15:19 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

Már hibásan másoltad a be a smát én csak cvarot állítómat át

Szerző:  levo00 [2014.12.12. 16:22 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

MeSter írta:
Már hibásan másoltad a be a smát én csak cvarot állítómat át
Akkor mosz mit kell átírni? :O itt az sma ez megy:
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 "[*|P|eac|E|*] Kerlek valassz fegyvert.<!-- s:) --><img src=\"{SMILIES_PATH}/icon_e_smile.gif\" alt=\":)\" title=\"mosoly\" /><!-- s:) -->"
  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_szWeaponMenuNames [ ] [ ] = {
  46.  
  47. "1.\yM4A1 \rCsomag",
  48. "2.\yAK47 \rCsomag",
  49. "3.\yAWP \rCsomag",
  50. "4.\yM249 \rCsomag",
  51. "5.\yAUG \rCsomag",
  52. "6.\yFamas \rCsomag",
  53. "7.\yGalil \rCsomag",
  54. "8.\yMP5 \rCsomag",
  55. "9.\yXM1014 \rCsomag",
  56. "10.\yM3 \rCsomag",
  57. "11.\yScout \rCsomag"
  58. };
  59.  
  60. new const g_szWeaponsName [ ] [ ] = {
  61.  
  62. "weapon_m4a1",
  63. "weapon_ak47",
  64. "weapon_awp",
  65. "weapon_m249",
  66. "weapon_aug",
  67. "weapon_famas",
  68. "weapon_galil",
  69. "weapon_mp5navy",
  70. "weapon_xm1014",
  71. "weapon_m3",
  72. "weapon_scout"
  73. };
  74.  
  75. new const g_szPistolName [ ] = "weapon_deagle";
  76.  
  77. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  78. new const maxAmmo[ 31 ] = {
  79.  
  80. 0,
  81. 52,
  82. 0,
  83. 90,
  84. 1,
  85. 32,
  86. 1,
  87. 100,
  88. 90,
  89. 1,
  90. 120,
  91. 100,
  92. 100,
  93. 90,
  94. 90,
  95. 90,
  96. 100,
  97. 120,
  98. 30,
  99. 120,
  100. 200,
  101. 32,
  102. 90,
  103. 120,
  104. 90,
  105. 2,
  106. 35,
  107. 90,
  108. 90,
  109. 0,
  110. 100
  111. };
  112.  
  113. new g_szBuyCommands[ ][ ] =
  114. {
  115. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  116. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  117. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  118. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  119. "buyammo1", "buyammo2"
  120. };
  121.  
  122. new const g_szMenuCommands[ ] [ ] =
  123. {
  124. "say /fegyo",
  125. "say_team /fegyo",
  126.  
  127. "say /fegyver",
  128. "say_team /fegyver"
  129.  
  130. };
  131.  
  132. new g_szChatPrefix[ 64 ];
  133. new g_msgHideWeapon;
  134. new g_bHasWeapon[ Max_Players ];
  135.  
  136. public plugin_init ( ) {
  137.  
  138. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  139.  
  140. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  141.  
  142. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "3" ); // Ct-n?l 2 AWP-s lehet.
  143. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "3" ); // Terrorist?kn?l 2 AWP-s lehet.
  144.  
  145. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "0" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  146.  
  147. pCvarFlash = register_cvar( "awm_give_flash", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  148. 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
  149. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  150.  
  151. 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 )
  152. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  153.  
  154. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "0" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  155.  
  156. 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 )
  157. 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
  158. pCvarPrefix = register_cvar( "awm_prefix", "[ä*|P|eac|E|*]^n" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  159.  
  160. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  161.  
  162. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  163. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  164.  
  165. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  166. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  167.  
  168. register_event( "ResetHUD", "onResetHUD", "b" );
  169. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  170.  
  171. register_message( g_msgHideWeapon, "msgHideWeapon" );
  172.  
  173. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  174. }
  175.  
  176. public client_connect( iClient ) {
  177.  
  178. g_bHasWeapon[ iClient ] = false;
  179. }
  180.  
  181. public client_disconnect( iClient ) {
  182.  
  183. g_bHasWeapon[ iClient ] = false;
  184. }
  185.  
  186. public cmd_ShowWeaponMenu( iClient ) {
  187.  
  188. switch( g_bHasWeapon[ iClient ] ) {
  189.  
  190. case true:
  191. {
  192. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  193. ColorChat( iClient, "^3%s %s" , g_szChatPrefix );
  194.  
  195. return PLUGIN_HANDLED;
  196. }
  197. case false: func_OpenWeaponMenu( iClient );
  198. }
  199. return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmd_BlockBuy( iClient ) {
  203.  
  204. if( !get_pcvar_num( pCvarBlockBuy ) )
  205. return PLUGIN_CONTINUE;
  206.  
  207. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  208. ColorChat( iClient, "^3%s %s" , g_szChatPrefix);
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. public eCurWeapon( iClient ) {
  213.  
  214. if( get_pcvar_num( pCvarUnAmmo ) ) {
  215.  
  216. if( is_user_alive( iClient ) ) {
  217.  
  218. new weapon = read_data( 2 );
  219. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  220.  
  221. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  222. }
  223. }
  224. }
  225. }
  226.  
  227. public onResetHUD( iClient ) {
  228.  
  229. if( !get_pcvar_num( pCvarMoney ) ) {
  230.  
  231. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  232. write_byte( Money_Hud );
  233. message_end( );
  234. }
  235. }
  236.  
  237. public msgHideWeapon( ) {
  238.  
  239. if( !get_pcvar_num( pCvarMoney ) ) {
  240.  
  241. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  242. }
  243. }
  244.  
  245. public eRoundEnd ( ) {
  246.  
  247. g_iWPCT = 0;
  248. g_iWPTE = 0;
  249. }
  250.  
  251. public func_OpenWeaponMenu ( iClient ) {
  252.  
  253. if( !is_user_alive( iClient ) )
  254. return;
  255.  
  256. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  257.  
  258. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  259.  
  260. g_bHasWeapon[ iClient ] = false;
  261.  
  262. new szMenuTitle[ 121 ];
  263. new szMenuItem[ 121 ];
  264.  
  265. format( szMenuTitle, charsmax( szMenuTitle ), "%s^w%s", g_szChatPrefix, Weapon_Menu_Name );
  266.  
  267. StripUserWeapons( iClient );
  268. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  269.  
  270. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  271.  
  272. if( i != 2 ) {
  273.  
  274. format( szMenuItem, charsmax( szMenuItem ), "\w%s", g_szWeaponMenuNames[ i ] );
  275. }
  276. else {
  277. switch( get_user_team( iClient ) )
  278. {
  279. case 1: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  280. case 2: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  281. default: continue;
  282. }
  283. }
  284.  
  285. menu_additem( menu, szMenuItem, _, 0 );
  286. }
  287.  
  288. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  289. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  290. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  291. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  292. menu_display( iClient, menu );
  293. }
  294.  
  295. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  296.  
  297. if( iItem == MENU_EXIT ) {
  298.  
  299. menu_destroy( iMenu );
  300. return PLUGIN_HANDLED;
  301. }
  302.  
  303. new data[ 6 ], szName[ 64 ];
  304. new access, callback;
  305. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  306.  
  307. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  308.  
  309. if( iItem != 2 ) {
  310.  
  311. give_item( iClient, g_szWeaponsName[ iItem ] );
  312. give_item( iClient, g_szPistolName );
  313.  
  314. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  315. }
  316. else {
  317.  
  318. new iTeams[ CsTeams ];
  319. GetPlayerCount( iTeams );
  320.  
  321. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  322. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  323.  
  324. ColorChat( iClient, g_szChatPrefix );
  325. func_OpenWeaponMenu( iClient );
  326.  
  327. return PLUGIN_HANDLED;
  328. }
  329.  
  330. new CsTeams:userTeam = cs_get_user_team( iClient );
  331. if( userTeam == CS_TEAM_CT ) {
  332.  
  333. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  334.  
  335. give_item( iClient, g_szWeaponsName[ iItem ] );
  336. give_item( iClient, g_szPistolName );
  337.  
  338. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  339. g_iWPCT++;
  340. }
  341. else {
  342.  
  343. func_OpenWeaponMenu ( iClient );
  344.  
  345. return PLUGIN_HANDLED;
  346. }
  347. }
  348.  
  349. if( userTeam == CS_TEAM_T ) {
  350.  
  351. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  352.  
  353.  
  354. give_item( iClient, g_szWeaponsName[ iItem ] );
  355. give_item( iClient, g_szPistolName );
  356.  
  357. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  358. g_iWPTE++;
  359. }
  360. else {
  361.  
  362. func_OpenWeaponMenu( iClient );
  363.  
  364. return PLUGIN_HANDLED;
  365. }
  366. }
  367. }
  368.  
  369. give_item( iClient, "weapon_knife" );
  370. give_player_stuff( iClient );
  371.  
  372. menu_destroy( iMenu );
  373. return PLUGIN_HANDLED;
  374. }
  375.  
  376. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  377.  
  378. new iPlayers[ 32 ] , iPlayerCount;
  379.  
  380. get_players( iPlayers , iPlayerCount );
  381.  
  382. for ( new i = 0 ; i < iPlayerCount ; i++ )
  383. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  384. }
  385.  
  386. stock give_player_stuff( iClient ) {
  387.  
  388. if( get_pcvar_num( pCvarFlash ) ) {
  389.  
  390. give_item( iClient, "weapon_flashbang" );
  391. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  392. }
  393.  
  394. if( get_pcvar_num( pCvarHe ) ) {
  395.  
  396. give_item( iClient, "weapon_hegrenade" );
  397. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  398. }
  399.  
  400. if( get_pcvar_num( pCvarSmoke ) ) {
  401.  
  402. give_item( iClient, "weapon_smokegrenade" );
  403. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  404. }
  405.  
  406. if( get_pcvar_num( pCvarKevlar ) ) {
  407.  
  408. switch( get_pcvar_num( pCvarKevlar ) ) {
  409.  
  410. case 1: give_item( iClient, "item_kevlar" );
  411. case 2: give_item( iClient, "item_assaultsuit" );
  412. default: return PLUGIN_CONTINUE;
  413. }
  414. }
  415.  
  416. if( get_pcvar_num( pCvarDefuser ) ) {
  417.  
  418. give_item( iClient, "item_thighpack" );
  419. }
  420.  
  421. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  422.  
  423. new weapons[ 32 ];
  424. new weaponsnum;
  425. get_user_weapons( iClient, weapons, weaponsnum );
  426. for( new i = 0; i < weaponsnum; i++ )
  427. if( is_user_alive( iClient ) )
  428. if( maxAmmo[ weapons[ i ] ] > 0 )
  429. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  430. }
  431.  
  432. g_bHasWeapon[ iClient ] = true;
  433. return PLUGIN_CONTINUE;
  434. }
  435.  
  436.  
  437. //Stolen from CSDM Weapon Menu
  438. stock StripUserWeapons( iClient ) {
  439.  
  440. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  441.  
  442. if( iC4Ent > 0 ) {
  443.  
  444. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  445. }
  446.  
  447. strip_user_weapons( iClient );
  448. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  449.  
  450. if( iC4Ent > 0 ) {
  451.  
  452. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  453. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  454.  
  455. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  456. cs_set_user_plant( iClient, 1 );
  457. }
  458.  
  459. return PLUGIN_HANDLED;
  460. }
  461.  
  462. stock ColorChat( iClient, const input[], any:...)
  463. {
  464. new count = 1, players[ 32 ];
  465. static msg[ 191 ];
  466. vformat( msg, 190, input, 3 );
  467.  
  468. replace_all( msg, 190, "^x01" , "^1");
  469. replace_all( msg, 190, "^x03" , "^3");
  470. replace_all( msg, 190, "^x04" , "^4");
  471.  
  472. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  473. {
  474. for ( new i = 0; i < count; i++ )
  475. {
  476. if ( is_user_connected( players[ i ] ) )
  477. {
  478. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  479. write_byte( players[ i ] );
  480. write_string( msg );
  481. message_end( );
  482. }
  483. }
  484. }
  485. }

Szerző:  MeSter [2014.12.12. 16:23 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

Nézdd meg a cvarokat -_-

Szerző:  theglorious [2014.12.12. 16:30 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

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 "[*|P|eac|E|*] Kerlek valassz fegyvert.<!-- s:) --><img src=\"{SMILIES_PATH}/icon_e_smile.gif\" alt=\":)\" title=\"mosoly\" /><!-- s:) -->"
  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_szWeaponMenuNames [ ] [ ] = {
  46.  
  47. "1.\yM4A1 \rCsomag",
  48. "2.\yAK47 \rCsomag",
  49. "3.\yAWP \rCsomag",
  50. "4.\yM249 \rCsomag",
  51. "5.\yAUG \rCsomag",
  52. "6.\yFamas \rCsomag",
  53. "7.\yGalil \rCsomag",
  54. "8.\yMP5 \rCsomag",
  55. "9.\yXM1014 \rCsomag",
  56. "10.\yM3 \rCsomag",
  57. "11.\yScout \rCsomag"
  58. };
  59.  
  60. new const g_szWeaponsName [ ] [ ] = {
  61.  
  62. "weapon_m4a1",
  63. "weapon_ak47",
  64. "weapon_awp",
  65. "weapon_m249",
  66. "weapon_aug",
  67. "weapon_famas",
  68. "weapon_galil",
  69. "weapon_mp5navy",
  70. "weapon_xm1014",
  71. "weapon_m3",
  72. "weapon_scout"
  73. };
  74.  
  75. new const g_szPistolName [ ] = "weapon_deagle";
  76.  
  77. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  78. new const maxAmmo[ 31 ] = {
  79.  
  80. 0,
  81. 52,
  82. 0,
  83. 90,
  84. 1,
  85. 32,
  86. 1,
  87. 100,
  88. 90,
  89. 1,
  90. 120,
  91. 100,
  92. 100,
  93. 90,
  94. 90,
  95. 90,
  96. 100,
  97. 120,
  98. 30,
  99. 120,
  100. 200,
  101. 32,
  102. 90,
  103. 120,
  104. 90,
  105. 2,
  106. 35,
  107. 90,
  108. 90,
  109. 0,
  110. 100
  111. };
  112.  
  113. new g_szBuyCommands[ ][ ] =
  114. {
  115. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  116. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  117. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  118. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  119. "buyammo1", "buyammo2"
  120. };
  121.  
  122. new const g_szMenuCommands[ ] [ ] =
  123. {
  124. "say /fegyo",
  125. "say_team /fegyo",
  126.  
  127. "say /fegyver",
  128. "say_team /fegyver"
  129.  
  130. };
  131.  
  132. new g_szChatPrefix[ 64 ];
  133. new g_msgHideWeapon;
  134. new g_bHasWeapon[ Max_Players ];
  135.  
  136. public plugin_init ( ) {
  137.  
  138. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  139.  
  140. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  141.  
  142. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "4" ); // Ct-n?l 2 AWP-s lehet.
  143. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "4" ); // Terrorist?kn?l 2 AWP-s lehet.
  144.  
  145. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "4" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  146.  
  147. pCvarFlash = register_cvar( "awm_give_flash", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  148. 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
  149. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  150.  
  151. 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 )
  152. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  153.  
  154. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "0" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  155.  
  156. 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 )
  157. 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
  158. pCvarPrefix = register_cvar( "awm_prefix", "[ä*|P|eac|E|*]^n" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  159.  
  160. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  161.  
  162. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  163. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  164.  
  165. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  166. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  167.  
  168. register_event( "ResetHUD", "onResetHUD", "b" );
  169. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  170.  
  171. register_message( g_msgHideWeapon, "msgHideWeapon" );
  172.  
  173. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  174. }
  175.  
  176. public client_connect( iClient ) {
  177.  
  178. g_bHasWeapon[ iClient ] = false;
  179. }
  180.  
  181. public client_disconnect( iClient ) {
  182.  
  183. g_bHasWeapon[ iClient ] = false;
  184. }
  185.  
  186. public cmd_ShowWeaponMenu( iClient ) {
  187.  
  188. switch( g_bHasWeapon[ iClient ] ) {
  189.  
  190. case true:
  191. {
  192. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  193. ColorChat( iClient, "^3%s %s" , g_szChatPrefix );
  194.  
  195. return PLUGIN_HANDLED;
  196. }
  197. case false: func_OpenWeaponMenu( iClient );
  198. }
  199. return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmd_BlockBuy( iClient ) {
  203.  
  204. if( !get_pcvar_num( pCvarBlockBuy ) )
  205. return PLUGIN_CONTINUE;
  206.  
  207. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  208. ColorChat( iClient, "^3%s %s" , g_szChatPrefix);
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. public eCurWeapon( iClient ) {
  213.  
  214. if( get_pcvar_num( pCvarUnAmmo ) ) {
  215.  
  216. if( is_user_alive( iClient ) ) {
  217.  
  218. new weapon = read_data( 2 );
  219. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  220.  
  221. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  222. }
  223. }
  224. }
  225. }
  226.  
  227. public onResetHUD( iClient ) {
  228.  
  229. if( !get_pcvar_num( pCvarMoney ) ) {
  230.  
  231. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  232. write_byte( Money_Hud );
  233. message_end( );
  234. }
  235. }
  236.  
  237. public msgHideWeapon( ) {
  238.  
  239. if( !get_pcvar_num( pCvarMoney ) ) {
  240.  
  241. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  242. }
  243. }
  244.  
  245. public eRoundEnd ( ) {
  246.  
  247. g_iWPCT = 0;
  248. g_iWPTE = 0;
  249. }
  250.  
  251. public func_OpenWeaponMenu ( iClient ) {
  252.  
  253. if( !is_user_alive( iClient ) )
  254. return;
  255.  
  256. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  257.  
  258. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  259.  
  260. g_bHasWeapon[ iClient ] = false;
  261.  
  262. new szMenuTitle[ 121 ];
  263. new szMenuItem[ 121 ];
  264.  
  265. format( szMenuTitle, charsmax( szMenuTitle ), "%s^w%s", g_szChatPrefix, Weapon_Menu_Name );
  266.  
  267. StripUserWeapons( iClient );
  268. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  269.  
  270. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  271.  
  272. if( i != 2 ) {
  273.  
  274. format( szMenuItem, charsmax( szMenuItem ), "\w%s", g_szWeaponMenuNames[ i ] );
  275. }
  276. else {
  277. switch( get_user_team( iClient ) )
  278. {
  279. case 1: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  280. case 2: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  281. default: continue;
  282. }
  283. }
  284.  
  285. menu_additem( menu, szMenuItem, _, 0 );
  286. }
  287.  
  288. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  289. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  290. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  291. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  292. menu_display( iClient, menu );
  293. }
  294.  
  295. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  296.  
  297. if( iItem == MENU_EXIT ) {
  298.  
  299. menu_destroy( iMenu );
  300. return PLUGIN_HANDLED;
  301. }
  302.  
  303. new data[ 6 ], szName[ 64 ];
  304. new access, callback;
  305. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  306.  
  307. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  308.  
  309. if( iItem != 2 ) {
  310.  
  311. give_item( iClient, g_szWeaponsName[ iItem ] );
  312. give_item( iClient, g_szPistolName );
  313.  
  314. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  315. }
  316. else {
  317.  
  318. new iTeams[ CsTeams ];
  319. GetPlayerCount( iTeams );
  320.  
  321. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  322. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  323.  
  324. ColorChat( iClient, g_szChatPrefix );
  325. func_OpenWeaponMenu( iClient );
  326.  
  327. return PLUGIN_HANDLED;
  328. }
  329.  
  330. new CsTeams:userTeam = cs_get_user_team( iClient );
  331. if( userTeam == CS_TEAM_CT ) {
  332.  
  333. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  334.  
  335. give_item( iClient, g_szWeaponsName[ iItem ] );
  336. give_item( iClient, g_szPistolName );
  337.  
  338. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  339. g_iWPCT++;
  340. }
  341. else {
  342.  
  343. func_OpenWeaponMenu ( iClient );
  344.  
  345. return PLUGIN_HANDLED;
  346. }
  347. }
  348.  
  349. if( userTeam == CS_TEAM_T ) {
  350.  
  351. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  352.  
  353.  
  354. give_item( iClient, g_szWeaponsName[ iItem ] );
  355. give_item( iClient, g_szPistolName );
  356.  
  357. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  358. g_iWPTE++;
  359. }
  360. else {
  361.  
  362. func_OpenWeaponMenu( iClient );
  363.  
  364. return PLUGIN_HANDLED;
  365. }
  366. }
  367. }
  368.  
  369. give_item( iClient, "weapon_knife" );
  370. give_player_stuff( iClient );
  371.  
  372. menu_destroy( iMenu );
  373. return PLUGIN_HANDLED;
  374. }
  375.  
  376. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  377.  
  378. new iPlayers[ 32 ] , iPlayerCount;
  379.  
  380. get_players( iPlayers , iPlayerCount );
  381.  
  382. for ( new i = 0 ; i < iPlayerCount ; i++ )
  383. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  384. }
  385.  
  386. stock give_player_stuff( iClient ) {
  387.  
  388. if( get_pcvar_num( pCvarFlash ) ) {
  389.  
  390. give_item( iClient, "weapon_flashbang" );
  391. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  392. }
  393.  
  394. if( get_pcvar_num( pCvarHe ) ) {
  395.  
  396. give_item( iClient, "weapon_hegrenade" );
  397. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  398. }
  399.  
  400. if( get_pcvar_num( pCvarSmoke ) ) {
  401.  
  402. give_item( iClient, "weapon_smokegrenade" );
  403. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  404. }
  405.  
  406. if( get_pcvar_num( pCvarKevlar ) ) {
  407.  
  408. switch( get_pcvar_num( pCvarKevlar ) ) {
  409.  
  410. case 1: give_item( iClient, "item_kevlar" );
  411. case 2: give_item( iClient, "item_assaultsuit" );
  412. default: return PLUGIN_CONTINUE;
  413. }
  414. }
  415.  
  416. if( get_pcvar_num( pCvarDefuser ) ) {
  417.  
  418. give_item( iClient, "item_thighpack" );
  419. }
  420.  
  421. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  422.  
  423. new weapons[ 32 ];
  424. new weaponsnum;
  425. get_user_weapons( iClient, weapons, weaponsnum );
  426. for( new i = 0; i < weaponsnum; i++ )
  427. if( is_user_alive( iClient ) )
  428. if( maxAmmo[ weapons[ i ] ] > 0 )
  429. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  430. }
  431.  
  432. g_bHasWeapon[ iClient ] = true;
  433. return PLUGIN_CONTINUE;
  434. }
  435.  
  436.  
  437. //Stolen from CSDM Weapon Menu
  438. stock StripUserWeapons( iClient ) {
  439.  
  440. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  441.  
  442. if( iC4Ent > 0 ) {
  443.  
  444. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  445. }
  446.  
  447. strip_user_weapons( iClient );
  448. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  449.  
  450. if( iC4Ent > 0 ) {
  451.  
  452. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  453. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  454.  
  455. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  456. cs_set_user_plant( iClient, 1 );
  457. }
  458.  
  459. return PLUGIN_HANDLED;
  460. }
  461.  
  462. stock ColorChat( iClient, const input[], any:...)
  463. {
  464. new count = 1, players[ 32 ];
  465. static msg[ 191 ];
  466. vformat( msg, 190, input, 3 );
  467.  
  468. replace_all( msg, 190, "^x01" , "^1");
  469. replace_all( msg, 190, "^x03" , "^3");
  470. replace_all( msg, 190, "^x04" , "^4");
  471.  
  472. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  473. {
  474. for ( new i = 0; i < count; i++ )
  475. {
  476. if ( is_user_connected( players[ i ] ) )
  477. {
  478. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  479. write_byte( players[ i ] );
  480. write_string( msg );
  481. message_end( );
  482. }
  483. }
  484. }
  485. }

Szerző:  levo00 [2014.12.12. 16:46 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

Köszi! még ezt javítanád kérlek? már csak ez a kettő hiba van! :) és adok 1 kezet is :)
error 027: invalid character constant
(265) : error 027: invalid character constant

2 Errors.
Compilarea failed!

Szerző:  MeSter [2014.12.12. 16:53 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

levo00

Ha hosszú a hozzászólás ne idéz!

Kód:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

dae77b7bc1e3f4a1b328dd527a2894f9.sma(193) : error 017: undefined symbol "ColorChat"
dae77b7bc1e3f4a1b328dd527a2894f9.sma(208) : error 017: undefined symbol "ColorChat"
dae77b7bc1e3f4a1b328dd527a2894f9.sma(254) : warning 209: function "func_OpenWeaponMenu" should return a value
dae77b7bc1e3f4a1b328dd527a2894f9.sma(265) : error 027: invalid character constant
dae77b7bc1e3f4a1b328dd527a2894f9.sma(265) : error 027: invalid character constant
dae77b7bc1e3f4a1b328dd527a2894f9.sma(265) : error 017: undefined symbol "SMILIES_PATH"
dae77b7bc1e3f4a1b328dd527a2894f9.sma(265) : fatal error 107: too many error messages on one line

Compilation aborted.
6 Errors.
Could not locate output file dae77b7bc1e3f4a1b328dd527a2894f9.amx (compile failed).



Nem csak az a hiba van mind meg csinálom ami kell :)

Szerző:  levo00 [2014.12.12. 16:55 ]
Hozzászólás témája:  Re: Fegyvermenü Javítás!

Mester ha megcsinálod akkor megy a kéz! :) ebbe átálítod akkor a cvarokat? :D : SMA Forráskód:
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 "[*|P|eac|E|*] Kerlek valassz fegyvert."
  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_szWeaponMenuNames [ ] [ ] = {
  46.  
  47. "1. M4A1 |Csomag",
  48. "2. AK47 |Csomag",
  49. "3. AWP |Csomag",
  50. "4. M249 |Csomag",
  51. "5. AUG |Csomag",
  52. "6. Famas |Csomag",
  53. "7. Galil |Csomag",
  54. "8. MP5 |Csomag",
  55. "9. XM1014|Csomag",
  56. "10. M3 |Csomag",
  57. "11. Scout|Csomag"
  58. };
  59.  
  60. new const g_szWeaponsName [ ] [ ] = {
  61.  
  62. "weapon_m4a1",
  63. "weapon_ak47",
  64. "weapon_awp",
  65. "weapon_m249",
  66. "weapon_aug",
  67. "weapon_famas",
  68. "weapon_galil",
  69. "weapon_mp5navy",
  70. "weapon_xm1014",
  71. "weapon_m3",
  72. "weapon_scout"
  73. };
  74.  
  75. new const g_szPistolName [ ] = "weapon_deagle";
  76.  
  77. const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );
  78. new const maxAmmo[ 31 ] = {
  79.  
  80. 0,
  81. 52,
  82. 0,
  83. 90,
  84. 1,
  85. 32,
  86. 1,
  87. 100,
  88. 90,
  89. 1,
  90. 120,
  91. 100,
  92. 100,
  93. 90,
  94. 90,
  95. 90,
  96. 100,
  97. 120,
  98. 30,
  99. 120,
  100. 200,
  101. 32,
  102. 90,
  103. 120,
  104. 90,
  105. 2,
  106. 35,
  107. 90,
  108. 90,
  109. 0,
  110. 100
  111. };
  112.  
  113. new g_szBuyCommands[ ][ ] =
  114. {
  115. "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
  116. "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
  117. "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
  118. "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
  119. "buyammo1", "buyammo2"
  120. };
  121.  
  122. new const g_szMenuCommands[ ] [ ] =
  123. {
  124. "say /fegyo",
  125. "say_team /fegyo",
  126.  
  127. "say /fegyver",
  128. "say_team /fegyver"
  129.  
  130. };
  131.  
  132. new g_szChatPrefix[ 64 ];
  133. new g_msgHideWeapon;
  134. new g_bHasWeapon[ Max_Players ];
  135.  
  136. public plugin_init ( ) {
  137.  
  138. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  139.  
  140. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  141.  
  142. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "4" ); // Ct-n?l 2 AWP-s lehet.
  143. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "4" ); // Terrorist?kn?l 2 AWP-s lehet.
  144.  
  145. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "4" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  146.  
  147. pCvarFlash = register_cvar( "awm_give_flash", "2" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad ) Alap: 2 Flash gr?n?t
  148. 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
  149. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  150.  
  151. 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 )
  152. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  153.  
  154. pCvarUnAmmo = register_cvar( "awm_unlimited_ammo", "0" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  155.  
  156. 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 )
  157. 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
  158. pCvarPrefix = register_cvar( "awm_prefix", "[*|P|eac|E|*]^n" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  159.  
  160. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  161.  
  162. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  163. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  164.  
  165. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  166. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  167.  
  168. register_event( "ResetHUD", "onResetHUD", "b" );
  169. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  170.  
  171. register_message( g_msgHideWeapon, "msgHideWeapon" );
  172.  
  173. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  174. }
  175.  
  176. public client_connect( iClient ) {
  177.  
  178. g_bHasWeapon[ iClient ] = false;
  179. }
  180.  
  181. public client_disconnect( iClient ) {
  182.  
  183. g_bHasWeapon[ iClient ] = false;
  184. }
  185.  
  186. public cmd_ShowWeaponMenu( iClient ) {
  187.  
  188. switch( g_bHasWeapon[ iClient ] ) {
  189.  
  190. case true:
  191. {
  192. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  193. ColorChat( iClient, "^3%s %s" , g_szChatPrefix );
  194.  
  195. return PLUGIN_HANDLED;
  196. }
  197. case false: func_OpenWeaponMenu( iClient );
  198. }
  199. return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmd_BlockBuy( iClient ) {
  203.  
  204. if( !get_pcvar_num( pCvarBlockBuy ) )
  205. return PLUGIN_CONTINUE;
  206.  
  207. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  208. ColorChat( iClient, "^3%s %s" , g_szChatPrefix);
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. public eCurWeapon( iClient ) {
  213.  
  214. if( get_pcvar_num( pCvarUnAmmo ) ) {
  215.  
  216. if( is_user_alive( iClient ) ) {
  217.  
  218. new weapon = read_data( 2 );
  219. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  220.  
  221. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  222. }
  223. }
  224. }
  225. }
  226.  
  227. public onResetHUD( iClient ) {
  228.  
  229. if( !get_pcvar_num( pCvarMoney ) ) {
  230.  
  231. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  232. write_byte( Money_Hud );
  233. message_end( );
  234. }
  235. }
  236.  
  237. public msgHideWeapon( ) {
  238.  
  239. if( !get_pcvar_num( pCvarMoney ) ) {
  240.  
  241. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  242. }
  243. }
  244.  
  245. public eRoundEnd ( ) {
  246.  
  247. g_iWPCT = 0;
  248. g_iWPTE = 0;
  249. }
  250.  
  251. public func_OpenWeaponMenu ( iClient ) {
  252.  
  253. if( !is_user_alive( iClient ) )
  254. return;
  255.  
  256. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  257.  
  258. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  259.  
  260. g_bHasWeapon[ iClient ] = false;
  261.  
  262. new szMenuTitle[ 121 ];
  263. new szMenuItem[ 121 ];
  264.  
  265. format( szMenuTitle, charsmax( szMenuTitle ), "%s^%s", g_szChatPrefix, Weapon_Menu_Name );
  266.  
  267. StripUserWeapons( iClient );
  268. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  269.  
  270. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  271.  
  272. if( i != 2 ) {
  273.  
  274. format( szMenuItem, charsmax( szMenuItem ), "\w%s", g_szWeaponMenuNames[ i ] );
  275. }
  276. else {
  277. switch( get_user_team( iClient ) )
  278. {
  279. case 1: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  280. case 2: format( szMenuItem, charsmax( szMenuItem ), "\w%s \y[Elso %d embernek]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  281. default: continue;
  282. }
  283. }
  284.  
  285. menu_additem( menu, szMenuItem, _, 0 );
  286. }
  287.  
  288. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  289. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  290. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  291. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  292. menu_display( iClient, menu );
  293. }
  294.  
  295. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  296.  
  297. if( iItem == MENU_EXIT ) {
  298.  
  299. menu_destroy( iMenu );
  300. return PLUGIN_HANDLED;
  301. }
  302.  
  303. new data[ 6 ], szName[ 64 ];
  304. new access, callback;
  305. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  306.  
  307. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  308.  
  309. if( iItem != 2 ) {
  310.  
  311. give_item( iClient, g_szWeaponsName[ iItem ] );
  312. give_item( iClient, g_szPistolName );
  313.  
  314. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );
  315. }
  316. else {
  317.  
  318. new iTeams[ CsTeams ];
  319. GetPlayerCount( iTeams );
  320.  
  321. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  322. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  323.  
  324. ColorChat( iClient, g_szChatPrefix );
  325. func_OpenWeaponMenu( iClient );
  326.  
  327. return PLUGIN_HANDLED;
  328. }
  329.  
  330. new CsTeams:userTeam = cs_get_user_team( iClient );
  331. if( userTeam == CS_TEAM_CT ) {
  332.  
  333. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  334.  
  335. give_item( iClient, g_szWeaponsName[ iItem ] );
  336. give_item( iClient, g_szPistolName );
  337.  
  338. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  339. g_iWPCT++;
  340. }
  341. else {
  342.  
  343. func_OpenWeaponMenu ( iClient );
  344.  
  345. return PLUGIN_HANDLED;
  346. }
  347. }
  348.  
  349. if( userTeam == CS_TEAM_T ) {
  350.  
  351. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  352.  
  353.  
  354. give_item( iClient, g_szWeaponsName[ iItem ] );
  355. give_item( iClient, g_szPistolName );
  356.  
  357. ColorChat( iClient, "^3%s^1 ~ Tessek egy ^4%s^1 !", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] );
  358. g_iWPTE++;
  359. }
  360. else {
  361.  
  362. func_OpenWeaponMenu( iClient );
  363.  
  364. return PLUGIN_HANDLED;
  365. }
  366. }
  367. }
  368.  
  369. give_item( iClient, "weapon_knife" );
  370. give_player_stuff( iClient );
  371.  
  372. menu_destroy( iMenu );
  373. return PLUGIN_HANDLED;
  374. }
  375.  
  376. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  377.  
  378. new iPlayers[ 32 ] , iPlayerCount;
  379.  
  380. get_players( iPlayers , iPlayerCount );
  381.  
  382. for ( new i = 0 ; i < iPlayerCount ; i++ )
  383. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  384. }
  385.  
  386. stock give_player_stuff( iClient ) {
  387.  
  388. if( get_pcvar_num( pCvarFlash ) ) {
  389.  
  390. give_item( iClient, "weapon_flashbang" );
  391. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  392. }
  393.  
  394. if( get_pcvar_num( pCvarHe ) ) {
  395.  
  396. give_item( iClient, "weapon_hegrenade" );
  397. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  398. }
  399.  
  400. if( get_pcvar_num( pCvarSmoke ) ) {
  401.  
  402. give_item( iClient, "weapon_smokegrenade" );
  403. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  404. }
  405.  
  406. if( get_pcvar_num( pCvarKevlar ) ) {
  407.  
  408. switch( get_pcvar_num( pCvarKevlar ) ) {
  409.  
  410. case 1: give_item( iClient, "item_kevlar" );
  411. case 2: give_item( iClient, "item_assaultsuit" );
  412. default: return PLUGIN_CONTINUE;
  413. }
  414. }
  415.  
  416. if( get_pcvar_num( pCvarDefuser ) ) {
  417.  
  418. give_item( iClient, "item_thighpack" );
  419. }
  420.  
  421. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  422.  
  423. new weapons[ 32 ];
  424. new weaponsnum;
  425. get_user_weapons( iClient, weapons, weaponsnum );
  426. for( new i = 0; i < weaponsnum; i++ )
  427. if( is_user_alive( iClient ) )
  428. if( maxAmmo[ weapons[ i ] ] > 0 )
  429. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  430. }
  431.  
  432. g_bHasWeapon[ iClient ] = true;
  433. return PLUGIN_CONTINUE;
  434. }
  435.  
  436.  
  437. //Stolen from CSDM Weapon Menu
  438. stock StripUserWeapons( iClient ) {
  439.  
  440. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  441.  
  442. if( iC4Ent > 0 ) {
  443.  
  444. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  445. }
  446.  
  447. strip_user_weapons( iClient );
  448. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  449.  
  450. if( iC4Ent > 0 ) {
  451.  
  452. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  453. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  454.  
  455. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  456. cs_set_user_plant( iClient, 1 );
  457. }
  458.  
  459. return PLUGIN_HANDLED;
  460. }
  461.  
  462. stock ColorChat( iClient, const input[], any:...)
  463. {
  464. new count = 1, players[ 32 ];
  465. static msg[ 191 ];
  466. vformat( msg, 190, input, 3 );
  467.  
  468. replace_all( msg, 190, "^x01" , "^1");
  469. replace_all( msg, 190, "^x03" , "^3");
  470. replace_all( msg, 190, "^x04" , "^4");
  471.  
  472. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  473. {
  474. for ( new i = 0; i < count; i++ )
  475. {
  476. if ( is_user_connected( players[ i ] ) )
  477. {
  478. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  479. write_byte( players[ i ] );
  480. write_string( msg );
  481. message_end( );
  482. }
  483. }
  484. }
  485. }

Oldal: 1 / 2 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/