hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.29. 11:42



Jelenlévő felhasználók

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

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

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

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



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

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Kivenni itemeket a fegyómenüből
HozzászólásElküldve: 2015.01.09. 21:19 
Offline
Beavatott
Avatar

Csatlakozott: 2011.04.17. 20:04
Hozzászólások: 85
Megköszönt másnak: 20 alkalommal
Megköszönték neki: 3 alkalommal
Sziasztok, kivettem pár itemet a fegyómenüből, de nem fut le. Valaki kijavítaná?

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


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

C:\CsSzerver\cstrike\addons\amxmodx\scripting\weapon_menu_wo_chatcolor.sma(61) : error 029: invalid expression, assumed zero
C:\CsSzerver\cstrike\addons\amxmodx\scripting\weapon_menu_wo_chatcolor.sma(61) : error 008: must be a constant expression; assumed zero
C:\CsSzerver\cstrike\addons\amxmodx\scripting\weapon_menu_wo_chatcolor.sma(69) : error 029: invalid expression, assumed zero
C:\CsSzerver\cstrike\addons\amxmodx\scripting\weapon_menu_wo_chatcolor.sma(69) : error 008: must be a constant expression; assumed zero

4 Errors.
Could not locate output file C:\CsSzerver\cstrike\addons\amxmodx\scripting\weapon_menu_wo_chatcolor.amx (compile failed).

Compilation Time: 0,28 sec

_________________
Eladó hírdető plugin induló szervereknek! --> PM


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kivenni itemeket a fegyómenüből
HozzászólásElküldve: 2015.01.09. 21:31 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2014.12.05. 20:46
Hozzászólások: 177
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 23 alkalommal
Nem volt nagy hiba.
Leírom, hogy legközelebb tudd.

Itt volt a hiba hiba:
SMA Forráskód: [ Mindet kijelol ]
  1. new const g_szWeaponMenuNames[ ][ ] =
  2. {
  3. "M4A1 Csomag",
  4. "AK47 Csomag",
  5. "AWP Csomag",
  6. "AUG Csomag",
  7. };
  8.  
  9. new const g_szWeaponsName[ ][ ] =
  10. {
  11. "weapon_m4a1",
  12. "weapon_ak47",
  13. "weapon_awp",
  14. "weapon_aug",
  15. };

Ez helyett, ezt kellet javítani -->
SMA Forráskód: [ Mindet kijelol ]
  1. new const g_szWeaponMenuNames[ ][ ] =
  2. {
  3. "M4A1 Csomag",
  4. "AK47 Csomag",
  5. "AWP Csomag",
  6. "AUG Csomag"
  7. };
  8.  
  9. new const g_szWeaponsName[ ][ ] =
  10. {
  11. "weapon_m4a1",
  12. "weapon_ak47",
  13. "weapon_awp",
  14. "weapon_aug"
  15. };


Az utolsó névhez, nem kell , jel.

Try:

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

_________________
Kép
Kép

Ők köszönték meg aron87 nek ezt a hozzászólást: protoN (2015.01.09. 21:39)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kivenni itemeket a fegyómenüből
HozzászólásElküldve: 2015.01.09. 21:39 
Offline
Beavatott
Avatar

Csatlakozott: 2011.04.17. 20:04
Hozzászólások: 85
Megköszönt másnak: 20 alkalommal
Megköszönték neki: 3 alkalommal
aron87 írta:
Nem volt nagy hiba.
Leírom, hogy legközelebb tudd.


Köszi! :xicon_e_biggrin:

_________________
Eladó hírdető plugin induló szervereknek! --> PM


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


Ki van itt

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