hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.17. 02:47



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: ASDD, Google [Bot], Majestic-12 [Bot] az elmúlt 5 percben aktív felhasználók alapján

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



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

Regisztráció

Kereső


Lezárt fórum  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: törölhető
HozzászólásElküldve: 2014.12.11. 14:36 
Offline
Lelkes

Csatlakozott: 2014.12.11. 14:17
Hozzászólások: 26
Megköszönt másnak: 11 alkalommal
aa

_________________
Kép


A hozzászólást 1 alkalommal szerkesztették, utoljára seherezade 2014.12.11. 19:33-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Fegyvermenü átírás
HozzászólásElküldve: 2014.12.11. 14:55 
Teszteld:
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. "\r1.\yM4A1 \rCsomag",
  57. "\r2.\yAK47 \rCsomag",
  58. "\r3.\yAWP \rCsomag",
  59. "\r4.\yM249 \rCsomag",
  60. "\r5.\yAUG \rCsomag",
  61. "\r6.\yFamas \rCsomag",
  62. "\r7.\yGalil \rCsomag",
  63. "\r8.\yMP5 \rCsomag",
  64. "\r9.\yXM1014 \rCsomag",
  65. "\r10.\yM3 \rCsomag",
  66. "\r11.\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", "3" ); // Ct-n?l 2 AWP-s lehet.
  160. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "3" ); // Terrorist?kn?l 2 AWP-s lehet.
  161.  
  162. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "0" ); // Ha mindk?t csapatban van 4-4 j?t?kos akkor engedi az AWP-t
  163.  
  164. 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
  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", "0" ); // Itt tudod be?ll?tani ,hogy elfoggyon-e a t?r vagy ne. Alap: 1 ( Teh?t nem fogy el a t?r )
  172.  
  173. pCvarBlockBuy = register_cvar( "awm_block_buy", "1" ); // Itt tudod be?ll?tani ,hogy tiltsa-e a v?s?rl?st vagy ne. Alap 1 ( Teh?t tiltva van ) ( 0 = Nincs tiltva )
  174. pCvarMoney = register_cvar( "awm_set_money", "0" ); // Itt tudod be?ll?tani ,hogy mennyi p?nze legyen a j?t?kosoknak. ( 0 = Nincs , elt?nik a hudr?l is ) Alap: 0
  175. pCvarPrefix = register_cvar( "awm_prefix", "" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  176.  
  177. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  178.  
  179. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  180. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  181.  
  182. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  183. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  184.  
  185. register_event( "ResetHUD", "onResetHUD", "b" );
  186. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  187.  
  188. register_message( g_msgHideWeapon, "msgHideWeapon" );
  189.  
  190. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  191. }
  192.  
  193. public client_connect( iClient ) {
  194.  
  195. g_bHasWeapon[ iClient ] = false;
  196. }
  197.  
  198. public client_disconnect( iClient ) {
  199.  
  200. g_bHasWeapon[ iClient ] = false;
  201. }
  202.  
  203. public cmd_ShowWeaponMenu( iClient ) {
  204.  
  205. switch( g_bHasWeapon[ iClient ] ) {
  206.  
  207. case true:
  208. {
  209. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  210. ColorChat( iClient, "^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 ), "", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  297. case 2: format( szMenuItem, charsmax( szMenuItem ), "", 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.  
  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.  
  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.  
  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.  


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Fegyvermenü átírás
HozzászólásElküldve: 2014.12.11. 15:52 
Offline
Lelkes

Csatlakozott: 2014.12.11. 14:17
Hozzászólások: 26
Megköszönt másnak: 11 alkalommal
köszönöm.
még egy kicsit szeretnék rajta csiszolni. meg ezeket az 1. ahogy látom nem kell elé rakni alapból oda rakja..
az miért van, hogyha akármit is átírok akár egy betűt amit a chatba ír akkor már nem tudom átalakítani, mert hibás ????
esetleg valamilyen szerkesztés elleni védelem van bele kódolva vagy mi :D

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Fegyvermenü átírás
HozzászólásElküldve: 2014.12.11. 16:13 
Nincs semmi féle szerkesztés valami bele írva :) (Azaz tudod szerkeszteni ha tudod :) )
Hát nem tom mit csinálsz de ha csak olyat csinálsz hogy Pl

SMA Forráskód: [ Mindet kijelol ]
  1. ColorChat(0,GREEN,"Valamit nem tom mit")


Átírod erre :
SMA Forráskód: [ Mindet kijelol ]
  1. ColorChat(0,GREEN,"Tudom meg nem is ")


Ettől még le kell neki fordítani :


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Fegyvermenü átírás
HozzászólásElküldve: 2014.12.11. 16:33 
Offline
Lelkes

Csatlakozott: 2014.12.11. 14:17
Hozzászólások: 26
Megköszönt másnak: 11 alkalommal
igen ilyet csinálok.. maximum még az volt hogy kviettem azt hogy AWP 4v4től használható

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Fegyvermenü átírás
HozzászólásElküldve: 2014.12.11. 16:37 
seherezade írta:
igen ilyet csinálok.. maximum még az volt hogy kviettem azt hogy AWP 4v4től használható


Akkor lehet ott rontottad el mert azt lehet cvar-al állítani csak elkelene olvasni a dolgokat


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Fegyvermenü átírás
HozzászólásElküldve: 2014.12.11. 17:35 
Offline
Lelkes

Csatlakozott: 2014.12.11. 14:17
Hozzászólások: 26
Megköszönt másnak: 11 alkalommal
na itt a kód. ezzel már csak 2 bajom lenne:
1.A prefix egy sorral fentebb lehetne rakni
2.Az AWP-t nem írja ki, tehát így látszik:
1.M4A1 Csomag
2.AK47 Csomag
3.
4.M249 Csomag
stb..


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 "Válassz 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_szMessages [ ] [ ] =
  46. {
  47. "",
  48. "Csapatonként csak három 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. "\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. "say /fegyo",
  134. "say_team /fegyo",
  135.  
  136. "say /fegyver",
  137. "say_team /fegyver"
  138.  
  139. };
  140.  
  141. new g_szChatPrefix[ 64 ];
  142. new g_msgHideWeapon;
  143. new g_bHasWeapon[ Max_Players ];
  144.  
  145. public plugin_init ( ) {
  146.  
  147. register_plugin( "Advanced Weapon Menu", VERSION, "#YouCantStopMe" );
  148.  
  149. RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 );
  150.  
  151. pCvarMaxCTWps = register_cvar( "awm_max_ct_awp", "3" ); // Ct-nel 3 AWP-s lehet.
  152. pCvarMaxTEWps = register_cvar( "awm_max_te_awp", "3" ); // Terroristaknal 3 AWP-s lehet.
  153.  
  154. pCvarWPBlock = register_cvar( "awm_allow_wp_player", "0" );
  155.  
  156. 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
  157. 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
  158. pCvarSmoke = register_cvar( "awm_give_smoke", "0" ); // Itt tudod be?ll?tani ,hogy adjon-e f?st gr?n?tot. ( 0 = Nem ad )
  159.  
  160. 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 )
  161. pCvarDefuser = register_cvar( "awm_give_defuser", "1" ); // Itt tudod be?ll?tani ,hogy adjon-e defusert. ( 0 = Nem Ad )
  162.  
  163. 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 )
  164.  
  165. 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 )
  166. 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
  167. pCvarPrefix = register_cvar( "awm_prefix", "MOGYORO only dust2" ); // Itt tudod be?ll?tani, hogy mi legyen a Fegyvermen? prefix-je.
  168.  
  169. g_msgHideWeapon = get_user_msgid( "HideWeapon" );
  170.  
  171. for( new i = 0; i < sizeof( g_szBuyCommands ); i++ )
  172. register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" );
  173.  
  174. for( new i = 0; i < sizeof( g_szMenuCommands ); i++ )
  175. register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" );
  176.  
  177. register_event( "ResetHUD", "onResetHUD", "b" );
  178. register_event( "CurWeapon", "eCurWeapon", "be", "1=1" );
  179.  
  180. register_message( g_msgHideWeapon, "msgHideWeapon" );
  181.  
  182. register_logevent( "eRoundEnd", 2, "1=Round_End" );
  183. }
  184.  
  185. public client_connect( iClient ) {
  186.  
  187. g_bHasWeapon[ iClient ] = false;
  188. }
  189.  
  190. public client_disconnect( iClient ) {
  191.  
  192. g_bHasWeapon[ iClient ] = false;
  193. }
  194.  
  195. public cmd_ShowWeaponMenu( iClient ) {
  196.  
  197. switch( g_bHasWeapon[ iClient ] ) {
  198.  
  199. case true:
  200. {
  201. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  202. ColorChat( iClient, "^3%s %s" , g_szChatPrefix, g_szMessages[ 4 ] );
  203.  
  204. return PLUGIN_HANDLED;
  205. }
  206. case false: func_OpenWeaponMenu( iClient );
  207. }
  208. return PLUGIN_HANDLED;
  209. }
  210.  
  211. public cmd_BlockBuy( iClient ) {
  212.  
  213. if( !get_pcvar_num( pCvarBlockBuy ) )
  214. return PLUGIN_CONTINUE;
  215.  
  216. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  217. ColorChat( iClient, "^3%s %s" , g_szChatPrefix, g_szMessages[ 3 ] );
  218. return PLUGIN_HANDLED;
  219. }
  220.  
  221. public eCurWeapon( iClient ) {
  222.  
  223. if( get_pcvar_num( pCvarUnAmmo ) ) {
  224.  
  225. if( is_user_alive( iClient ) ) {
  226.  
  227. new weapon = read_data( 2 );
  228. if( !( DoNotReload & ( 1 << weapon ) ) ) {
  229.  
  230. cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] );
  231. }
  232. }
  233. }
  234. }
  235.  
  236. public onResetHUD( iClient ) {
  237.  
  238. if( !get_pcvar_num( pCvarMoney ) ) {
  239.  
  240. message_begin( MSG_ONE, g_msgHideWeapon, _, iClient );
  241. write_byte( Money_Hud );
  242. message_end( );
  243. }
  244. }
  245.  
  246. public msgHideWeapon( ) {
  247.  
  248. if( !get_pcvar_num( pCvarMoney ) ) {
  249.  
  250. set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud );
  251. }
  252. }
  253.  
  254. public eRoundEnd ( ) {
  255.  
  256. g_iWPCT = 0;
  257. g_iWPTE = 0;
  258. }
  259.  
  260. public func_OpenWeaponMenu ( iClient ) {
  261.  
  262. if( !is_user_alive( iClient ) )
  263. return;
  264.  
  265. cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) );
  266.  
  267. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  268.  
  269. g_bHasWeapon[ iClient ] = false;
  270.  
  271. new szMenuTitle[ 121 ];
  272. new szMenuItem[ 121 ];
  273.  
  274. format( szMenuTitle, charsmax( szMenuTitle ), "\r%s^n\w%s", g_szChatPrefix, Weapon_Menu_Name );
  275.  
  276. StripUserWeapons( iClient );
  277. new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" );
  278.  
  279. for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) {
  280.  
  281. if( i != 2 ) {
  282.  
  283. format( szMenuItem, charsmax( szMenuItem ), "\w%s", g_szWeaponMenuNames[ i ] );
  284. }
  285. else {
  286. switch( get_user_team( iClient ) )
  287. {
  288. case 1: format( szMenuItem, charsmax( szMenuItem ), "", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) );
  289. case 2: format( szMenuItem, charsmax( szMenuItem ), "", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) );
  290. default: continue;
  291. }
  292. }
  293.  
  294. menu_additem( menu, szMenuItem, _, 0 );
  295. }
  296.  
  297. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
  298. menu_setprop( menu, MPROP_BACKNAME, Back_Button );
  299. menu_setprop( menu, MPROP_NEXTNAME, Next_Button );
  300. menu_setprop( menu, MPROP_EXITNAME, Exit_Button );
  301. menu_display( iClient, menu );
  302. }
  303.  
  304. public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) {
  305.  
  306. if( iItem == MENU_EXIT ) {
  307.  
  308. menu_destroy( iMenu );
  309. return PLUGIN_HANDLED;
  310. }
  311.  
  312. new data[ 6 ], szName[ 64 ];
  313. new access, callback;
  314. menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  315.  
  316. get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) );
  317.  
  318. if( iItem != 2 ) {
  319.  
  320. give_item( iClient, g_szWeaponsName[ iItem ] );
  321. give_item( iClient, g_szPistolName );
  322.  
  323.  
  324. }
  325. else {
  326.  
  327. new iTeams[ CsTeams ];
  328. GetPlayerCount( iTeams );
  329.  
  330. if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )
  331. || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) {
  332.  
  333. ColorChat( iClient, g_szChatPrefix );
  334. func_OpenWeaponMenu( iClient );
  335.  
  336. return PLUGIN_HANDLED;
  337. }
  338.  
  339. new CsTeams:userTeam = cs_get_user_team( iClient );
  340. if( userTeam == CS_TEAM_CT ) {
  341.  
  342. if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) {
  343.  
  344. give_item( iClient, g_szWeaponsName[ iItem ] );
  345. give_item( iClient, g_szPistolName );
  346.  
  347.  
  348. g_iWPCT++;
  349. }
  350. else {
  351.  
  352. client_print( iClient, print_center, g_szMessages[ 1 ] );
  353. func_OpenWeaponMenu ( iClient );
  354.  
  355. return PLUGIN_HANDLED;
  356. }
  357. }
  358.  
  359. if( userTeam == CS_TEAM_T ) {
  360.  
  361. if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) {
  362.  
  363.  
  364. give_item( iClient, g_szWeaponsName[ iItem ] );
  365. give_item( iClient, g_szPistolName );
  366.  
  367.  
  368. g_iWPTE++;
  369. }
  370. else {
  371.  
  372. client_print( iClient, print_center, g_szMessages[ 1 ] );
  373. func_OpenWeaponMenu( iClient );
  374.  
  375. return PLUGIN_HANDLED;
  376. }
  377. }
  378. }
  379.  
  380. give_item( iClient, "weapon_knife" );
  381. give_player_stuff( iClient );
  382.  
  383. menu_destroy( iMenu );
  384. return PLUGIN_HANDLED;
  385. }
  386.  
  387. GetPlayerCount( iTeamPlayers[ CsTeams ] ) {
  388.  
  389. new iPlayers[ 32 ] , iPlayerCount;
  390.  
  391. get_players( iPlayers , iPlayerCount );
  392.  
  393. for ( new i = 0 ; i < iPlayerCount ; i++ )
  394. iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++;
  395. }
  396.  
  397. stock give_player_stuff( iClient ) {
  398.  
  399. if( get_pcvar_num( pCvarFlash ) ) {
  400.  
  401. give_item( iClient, "weapon_flashbang" );
  402. cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) );
  403. }
  404.  
  405. if( get_pcvar_num( pCvarHe ) ) {
  406.  
  407. give_item( iClient, "weapon_hegrenade" );
  408. cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) );
  409. }
  410.  
  411. if( get_pcvar_num( pCvarSmoke ) ) {
  412.  
  413. give_item( iClient, "weapon_smokegrenade" );
  414. cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) );
  415. }
  416.  
  417. if( get_pcvar_num( pCvarKevlar ) ) {
  418.  
  419. switch( get_pcvar_num( pCvarKevlar ) ) {
  420.  
  421. case 1: give_item( iClient, "item_kevlar" );
  422. case 2: give_item( iClient, "item_assaultsuit" );
  423. default: return PLUGIN_CONTINUE;
  424. }
  425. }
  426.  
  427. if( get_pcvar_num( pCvarDefuser ) ) {
  428.  
  429. give_item( iClient, "item_thighpack" );
  430. }
  431.  
  432. if( !get_pcvar_num( pCvarUnAmmo ) ) {
  433.  
  434. new weapons[ 32 ];
  435. new weaponsnum;
  436. get_user_weapons( iClient, weapons, weaponsnum );
  437. for( new i = 0; i < weaponsnum; i++ )
  438. if( is_user_alive( iClient ) )
  439. if( maxAmmo[ weapons[ i ] ] > 0 )
  440. cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] );
  441. }
  442.  
  443. g_bHasWeapon[ iClient ] = true;
  444. return PLUGIN_CONTINUE;
  445. }
  446.  
  447.  
  448. //Stolen from CSDM Weapon Menu
  449. stock StripUserWeapons( iClient ) {
  450.  
  451. new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT );
  452.  
  453. if( iC4Ent > 0 ) {
  454.  
  455. set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT );
  456. }
  457.  
  458. strip_user_weapons( iClient );
  459. set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 );
  460.  
  461. if( iC4Ent > 0 ) {
  462.  
  463. set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) );
  464. set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent );
  465.  
  466. cs_set_user_bpammo( iClient, CSW_C4, 1 );
  467. cs_set_user_plant( iClient, 1 );
  468. }
  469.  
  470. return PLUGIN_HANDLED;
  471. }
  472.  
  473. stock ColorChat( iClient, const input[], any:...)
  474. {
  475. new count = 1, players[ 32 ];
  476. static msg[ 191 ];
  477. vformat( msg, 190, input, 3 );
  478.  
  479. replace_all( msg, 190, "^x01" , "^1");
  480. replace_all( msg, 190, "^x03" , "^3");
  481. replace_all( msg, 190, "^x04" , "^4");
  482.  
  483. if ( iClient ) players[ 0 ] = iClient; else get_players( players , count , "ch" );
  484. {
  485. for ( new i = 0; i < count; i++ )
  486. {
  487. if ( is_user_connected( players[ i ] ) )
  488. {
  489. message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] );
  490. write_byte( players[ i ] );
  491. write_string( msg );
  492. message_end( );
  493. }
  494. }
  495. }
  496. }
  497.  

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 
Hozzászólások megjelenítése:  Rendezés  
Lezárt fórum  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 25 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem 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