hlmod.hu
https://hlmod.hu/

Fegyvermenü.
https://hlmod.hu/viewtopic.php?f=29&t=18366
Oldal: 1 / 2

Szerző:  kricsi15 [ 2014.12.05. 21:37 ]
Hozzászólás témája:  Fegyvermenü.

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

Szerző:  MeSter [ 2014.12.05. 21:42 ]
Hozzászólás témája:  Re: Fegyvermenü.

Fehér - \w
Citrom - \y
Piros - \r
Szürke - \d

De bugos lesz mert amikor kiválasztatod a fegyvert akkor így írja majd te az \dM4A1 \yCSomagot választatod
De én ezt is meg oldatom és nem árulom el mert nekem is így van a fegyvermenü majd más aki akkarja meg csinálja hogy normálisan írja ki :)

Szerző:  aron87 [ 2014.12.05. 21:58 ]
Hozzászólás témája:  Re: Fegyvermenü.

MeSter írta:
Fehér - \w
Citrom - \y
Piros - \r
Szürke - \d

De bugos lesz mert amikor kiválasztatod a fegyvert akkor így írja majd te az \dM4A1 \yCSomagot választatod
De én ezt is meg oldatom és nem árulom el mert nekem is így van a fegyvermenü majd más aki akkarja meg csinálja hogy normálisan írja ki :)


Egyáltalán nem lesz bugos. Ugyan is amikor kiválasztod az adott fegyvert, akkor az az üzenet amit írtál, chatben fog megjelenni. Semmi köze a menühöz.

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

Szerző:  MeSter [ 2014.12.05. 22:02 ]
Hozzászólás témája:  Re: Fegyvermenü.

Úgy írtam hogy ezt fogja valahogy chatben írni így: kaptál egy \dak47 \ycsomagot ha nem hiszed meg csinálom és küldök neked képet róla ..... :)

És szerinted chatben honnan szedi azt hogy épp milyen fegyvert kaptál? hát a menünek a neve .....
Ha menübe azt írod \djozska \dpista \daranka a menü tuti színes lesz de ha rá mész hogy aranka akkor ezt írja: te a \daranka választatod hidd el nekem :)

Szerző:  aron87 [ 2014.12.05. 22:04 ]
Hozzászólás témája:  Re: Fegyvermenü.

MeSter írta:
Úgy írtam hogy ezt fogja valahogy chatben írni így: kaptál egy \dak47 \ycsomagot ha nem hiszed meg csinálom és küldök neked képet róla ..... :)


Rendben, de akkor kérlek mond meg, hogy hol látsz ilyen chat üzenetet, ezen kívül?

SMA Forráskód: [ Mindet kijelol ]
  1. "Csapatonkent csak ket ember AWP-zhet",
  2. "^3%s^1 ~ ^4AWP^1 csak^4 3v3^1-tol hasznalhato!",
  3. "^3%s^1 ~ A ^1vasarlas ^4letiltva^1!",
  4. "^3%s^1 ~ Te mar ^4valasztottal ^1fegyvert!"

Szerző:  MeSter [ 2014.12.05. 22:06 ]
Hozzászólás témája:  Re: Fegyvermenü.

aron87 írta:
MeSter írta:
Úgy írtam hogy ezt fogja valahogy chatben írni így: kaptál egy \dak47 \ycsomagot ha nem hiszed meg csinálom és küldök neked képet róla ..... :)


Rendben, de akkor kérlek mond meg, hogy hol látsz ilyen chat üzenetet, ezen kívül?

SMA Forráskód: [ Mindet kijelol ] "Csapatonkent csak ket ember AWP-zhet",
"^3%s^1 ~ ^4AWP^1 csak^4 3v3^1-tol hasznalhato!",
"^3%s^1 ~ A ^1vasarlas ^4letiltva^1!",
"^3%s^1 ~ Te mar ^4valasztottal ^1fegyvert!"



Hmm.... gondolom nem kell elmagyaráznom hogy miért írtam azt :)

SMA Forráskód: [ Mindet kijelol ]
  1. ColorChat( iClient, "^3%s^1 ~ Tessek egy *->^4%s^1<-* !", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] );

Szerző:  aron87 [ 2014.12.05. 22:07 ]
Hozzászólás témája:  Re: Fegyvermenü.

Ez más. Ez ColorChat.in -et használ. A másik, az meg simán HUD -ba dolgozik. De majd kiderül, ha teszteli. :)

Szerző:  MeSter [ 2014.12.05. 22:12 ]
Hozzászólás témája:  Re: Fegyvermenü.

aron87 írta:
Ez más. Ez ColorChat.in -et használ. A másik, az meg simán HUD -ba dolgozik. De majd kiderül, ha teszteli. :)


Beraktam a plugint amit meg szerkesztetél :) és tessék kinek van igaza már bocsi de nem offolni akarlak gondolom érted.... ezel te is tanultál gondolom :)

Kép

Szerző:  aron87 [ 2014.12.05. 22:28 ]
Hozzászólás témája:  Re: Fegyvermenü.

MeSter írta:
aron87 írta:
Ez más. Ez ColorChat.in -et használ. A másik, az meg simán HUD -ba dolgozik. De majd kiderül, ha teszteli. :)


Beraktam a plugint amit meg szerkesztetél :) és tessék kinek van igaza már bocsi de nem offolni akarlak gondolom érted.... ezel te is tanultál gondolom :)

Kép


Most nézd meg.

Szerző:  MeSter [ 2014.12.05. 22:35 ]
Hozzászólás témája:  Re: Fegyvermenü.

aron87 írta:
MeSter írta:
aron87 írta:
Ez más. Ez ColorChat.in -et használ. A másik, az meg simán HUD -ba dolgozik. De majd kiderül, ha teszteli. :)


Beraktam a plugint amit meg szerkesztetél :) és tessék kinek van igaza már bocsi de nem offolni akarlak gondolom érted.... ezel te is tanultál gondolom :)

Kép


Most nézd meg.


Ugyan az lesz ! :) ha akarod akkor privátban el mondom mit kell csinálni :) Csak írj rám

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