hlmod.hu
https://hlmod.hu/

Fegyvermenü Szín
https://hlmod.hu/viewtopic.php?f=9&t=14790
Oldal: 1 / 1

Szerző:  Beckx [2014.03.04. 16:02 ]
Hozzászólás témája:  Fegyvermenü Szín

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



Sziasztok!
Nekem egy bajom van a fegyvermenüvel mégpedig, az hogy ugye be van színezve (\r \y) és ezt is írja vele együtt chat-be, ezt hogy lehet megoldani?

Szerző:  Badboy.killer [2014.03.04. 17:05 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

egyszerüen szedd ki a színeket a szövegből

Szerző:  Beckx [2014.03.04. 17:10 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

De nekem a szín fontos lenne,nincs rá valami másik megoldás?

Szerző:  Badboy.killer [2014.03.04. 17:11 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

jaj félre olvastam, bocsi

Szerző:  Beckx [2014.03.04. 17:13 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

Nem gond!De van rá megoldás?

Szerző:  pixxa112 [2014.03.04. 17:13 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

Beckx írta:
De nekem a szín fontos lenne,nincs rá valami másik megoldás?


De van, olyan oldalon kell lefordítani ahol ezt támogatják is..
Vagy telepítsd fel az AMXMODX STUDIOT

Szerző:  Beckx [2014.03.04. 17:15 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

AMXX-Studioval fordítok, de nem megy!

Szerző:  Vinnice [2014.03.04. 17:42 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

Szia!

Gondolom nem használsz chatcolor inc-t.

A plugin oldalán ( http://hlmod.hu/viewtopic.php?f=101&t=14279 ) letöltöd a .zip-et és abba találsz olyat amelyik nem tartalmazza a chatcolor függvénytárat ( inc-t ). Letöltöd átírod és megy is.

Vinnice írta:
Szükséges modulok:
- Fun
- Fakemeta
- Hamsandwich
- Cstrike
- ChatColor*

*A pluginból 2 féle verziót készítettem. ( A .zip verzió tartalmazza mind2őt ).
1. A chatcolor pluginnal ( https://forums.alliedmods.net/showthread.php?t=94960 )
2. Chatcolor nélküli, de így is színesen írja ki az üzeneteket. ( Jelenleg csatolva. )

Szerző:  Beckx [2014.03.04. 18:45 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

Kép

Hali!
Ezt az SMA-t fordítottam és beraktam de mint a képen látod nem működik! ColorChat-at is lefordítottam és azt is beraktam!

Csatolmányok:
weapon_menu_wo_chatcolor.sma [12.66KiB]
Letöltve 43 alkalommal.

Szerző:  ultraibolya [2014.03.04. 18:57 ]
Hozzászólás témája:  Re: Fegyvermenü Szín

Mert azt nem is így kell.
[INC] ColorChat

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