hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 15:46



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [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ő


Új téma nyitása Hozzászólás a témához  [1 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve:2015.01.11. 21:41 
Offline
Senior Tag

Csatlakozott:2013.05.22. 17:06
Hozzászólások:205
Megköszönt másnak: 88 alkalommal
Sziasztok valaki tud segíteni nekem hogyan tudom bele írni ezt
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <fakemeta>
  4. #include <fun>
  5. #include <hamsandwich>
  6. #include <xs>
  7. #include <cstrike>
  8. #include <zombieplague>
  9.  
  10. #define ENG_NULLENT -1
  11. #define EV_INT_WEAPONKEY EV_INT_impulse
  12. #define ROCKGUITAR_WEAPONKEY 100102
  13. #define MAX_PLAYERS 32
  14. const USE_STOPPED = 0
  15. const OFFSET_ACTIVE_ITEM = 373
  16. const OFFSET_WEAPONOWNER = 41
  17. const OFFSET_LINUX = 5
  18. const OFFSET_LINUX_WEAPONS = 4
  19. #define WEAP_LINUX_XTRA_OFF 4
  20. #define m_fKnown 44
  21. #define m_flNextPrimaryAttack 46
  22. #define m_flTimeWeaponIdle 48
  23. #define m_iClip 51
  24. #define m_fInReload 54
  25. #define PLAYER_LINUX_XTRA_OFF 5
  26. #define m_flNextAttack 83
  27. #define ROCKGUITAR_RELOAD_TIME 2.5
  28. const PRIMARY_WEAPONS_BIT_SUM =
  29. (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
  30. CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
  31. new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
  32. "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
  33. "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
  34. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  35. "weapon_ak47", "weapon_knife", "weapon_p90" }
  36.  
  37. new const Sound_Fire[][] = { "weapons/gt-1.wav" }
  38. new const Sound_Zoom[] = { "weapons/zoom.wav" }
  39. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  40. new ROCKGUITAR_V_MODEL[64] = "models/oldmax_new_guitar/v_guitar_new.mdl"
  41. new ROCKGUITAR_P_MODEL[64] = "models/oldmax_new_guitar/p_guitar.mdl"
  42. new ROCKGUITAR_W_MODEL[64] = "models/oldmax_new_guitar/w_guitar.mdl"
  43. new cvar_dmg_RockGuitar, cvar_recoil_RockGuitar, g_itemid_RockGuitar, cvar_clip_RockGuitar, cvar_spd_RockGuitar, cvar_RockGuitar_ammo
  44. new g_has_RockGuitar[33], g_MaxPlayers, Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2], g_hasZoom[33],
  45. g_orig_event_RockGuitar, g_IsInPrimaryAttack, g_clip_ammo[33], g_RockGuitar_TmpClip[33]
  46.  
  47. public plugin_init()
  48. {
  49. register_plugin("[ZP] Extra: New Weapons", "1.0", "=)")
  50. register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
  51. register_event("CurWeapon","CurrentWeapon","be","1=1")
  52. RegisterHam(Ham_Item_AddToPlayer, "weapon_galil", "fw_Aug_AddToPlayer")
  53. RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
  54. RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
  55. RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
  56. RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
  57. for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
  58. if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
  59. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "fw_Aug_PrimaryAttack")
  60. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "fw_Aug_PrimaryAttack_Post", 1)
  61. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  62. RegisterHam(Ham_Item_PostFrame, "weapon_galil", "ROCKGUITAR__ItemPostFrame");
  63. RegisterHam(Ham_Weapon_Reload, "weapon_galil", "ROCKGUITAR__Reload");
  64. RegisterHam(Ham_Weapon_Reload, "weapon_galil", "ROCKGUITAR__Reload_Post", 1);
  65. register_forward(FM_SetModel, "fw_SetModel")
  66. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  67. register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
  68. register_forward(FM_CmdStart, "fw_CmdStart")
  69.  
  70. cvar_dmg_RockGuitar = register_cvar("zp_RockGuitar_dmg", "2.4")
  71. cvar_recoil_RockGuitar = register_cvar("zp_RockGuitar_recoil", "0.3")
  72. cvar_clip_RockGuitar = register_cvar("zp_RockGuitar_clip", "45")
  73. cvar_spd_RockGuitar = register_cvar("zp_RockGuitar_spd", "1.0")
  74. cvar_RockGuitar_ammo = register_cvar("zp_RockGuitar_ammo", "90")
  75.  
  76. g_itemid_RockGuitar = zp_register_extra_item("Gitar Skull Fegyver \r(!)", 55, ZP_TEAM_HUMAN)
  77. g_MaxPlayers = get_maxplayers()
  78. }
  79.  
  80. public plugin_precache()
  81. {
  82. precache_model(ROCKGUITAR_V_MODEL)
  83. precache_model(ROCKGUITAR_P_MODEL)
  84. precache_model(ROCKGUITAR_W_MODEL)
  85. precache_sound("weapons/oldmax_new_guitar/gt_draw.wav")
  86. precache_sound("weapons/oldmax_new_guitar/gt_clipout.wav")
  87. precache_sound("weapons/oldmax_new_guitar/gt_clipon.wav")
  88. precache_sound("weapons/oldmax_new_guitar/gt_clipin.wav")
  89. for(new i = 0; i < sizeof Sound_Fire; i++)
  90. precache_sound(Sound_Fire[i])
  91. m_iBlood[0] = precache_model("sprites/blood.spr")
  92. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  93.  
  94. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  95. }
  96.  
  97. public zp_user_humanized_post(id)
  98. {
  99. g_has_RockGuitar[id] = false
  100. }
  101.  
  102. public fwPrecacheEvent_Post(type, const name[])
  103. {
  104. if (equal("events/galil.sc", name))
  105. {
  106. g_orig_event_RockGuitar = get_orig_retval()
  107. return FMRES_HANDLED
  108. }
  109.  
  110. return FMRES_IGNORED
  111. }
  112.  
  113. public client_connect(id)
  114. {
  115. g_has_RockGuitar[id] = false
  116. }
  117.  
  118. public client_disconnect(id)
  119. {
  120. g_has_RockGuitar[id] = false
  121. }
  122.  
  123. public zp_user_infected_post(id)
  124. {
  125. if (zp_get_user_zombie(id))
  126. {
  127. g_has_RockGuitar[id] = false
  128. }
  129. }
  130.  
  131. public fw_SetModel(entity, model[])
  132. {
  133. if(!is_valid_ent(entity))
  134. return FMRES_IGNORED;
  135.  
  136. static szClassName[33]
  137. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  138.  
  139. if(!equal(szClassName, "weaponbox"))
  140. return FMRES_IGNORED;
  141.  
  142. static iOwner
  143.  
  144. iOwner = entity_get_edict(entity, EV_ENT_owner)
  145.  
  146. if(equal(model, "models/w_galil.mdl"))
  147. {
  148. static iStoredAugID
  149.  
  150. iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_galil", entity)
  151.  
  152. if(!is_valid_ent(iStoredAugID))
  153. return FMRES_IGNORED;
  154.  
  155. if(g_has_RockGuitar[iOwner])
  156. {
  157. entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, ROCKGUITAR_WEAPONKEY)
  158.  
  159. g_has_RockGuitar[iOwner] = false
  160.  
  161. entity_set_model(entity, ROCKGUITAR_W_MODEL)
  162.  
  163. return FMRES_SUPERCEDE;
  164. }
  165. }
  166.  
  167. return FMRES_IGNORED;
  168. }
  169.  
  170. public zp_extra_item_selected(id, itemid)
  171. {
  172. if(itemid == g_itemid_RockGuitar)
  173. {
  174. drop_weapons(id, 1);
  175. new iWep2 = give_item(id,"weapon_galil")
  176. if( iWep2 > 0 )
  177. {
  178. cs_set_weapon_ammo( iWep2, get_pcvar_num(cvar_clip_RockGuitar) )
  179. cs_set_user_bpammo (id, CSW_GALIL, get_pcvar_num(cvar_RockGuitar_ammo))
  180. UTIL_PlayWeaponAnimation(id, 2)
  181. }
  182. g_has_RockGuitar[id] = true;
  183. }
  184. }
  185.  
  186. public fw_Aug_AddToPlayer(Aug, id)
  187. {
  188. if(!is_valid_ent(Aug) || !is_user_connected(id))
  189. return HAM_IGNORED;
  190.  
  191. if(entity_get_int(Aug, EV_INT_WEAPONKEY) == ROCKGUITAR_WEAPONKEY)
  192. {
  193. g_has_RockGuitar[id] = true
  194.  
  195. entity_set_int(Aug, EV_INT_WEAPONKEY, 0)
  196.  
  197. return HAM_HANDLED;
  198. }
  199.  
  200. return HAM_IGNORED;
  201. }
  202.  
  203. public fw_UseStationary_Post(entity, caller, activator, use_type)
  204. {
  205. if (use_type == USE_STOPPED && is_user_connected(caller))
  206. replace_weapon_models(caller, get_user_weapon(caller))
  207. }
  208.  
  209. public fw_Item_Deploy_Post(weapon_ent)
  210. {
  211. static owner
  212. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  213.  
  214. static weaponid
  215. weaponid = cs_get_weapon_id(weapon_ent)
  216.  
  217. replace_weapon_models(owner, weaponid)
  218. }
  219.  
  220. public CurrentWeapon(id)
  221. {
  222. replace_weapon_models(id, read_data(2))
  223.  
  224. if(read_data(2) != CSW_GALIL || !g_has_RockGuitar[id])
  225. return
  226.  
  227. static Float:iSpeed
  228. if(g_has_RockGuitar[id])
  229. iSpeed = get_pcvar_float(cvar_spd_RockGuitar)
  230.  
  231. static weapon[32],Ent
  232. get_weaponname(read_data(2),weapon,31)
  233. Ent = find_ent_by_owner(-1,weapon,id)
  234. if(Ent)
  235. {
  236. static Float:Delay
  237. Delay = get_pdata_float( Ent, 46, 4) * iSpeed
  238. if (Delay > 0.0)
  239. {
  240. set_pdata_float(Ent, 46, Delay, 4)
  241. }
  242. }
  243. }
  244.  
  245. replace_weapon_models(id, weaponid)
  246. {
  247. switch (weaponid)
  248. {
  249. case CSW_GALIL:
  250. {
  251. if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
  252. return;
  253.  
  254. if(g_has_RockGuitar[id])
  255. {
  256. set_pev(id, pev_viewmodel2, ROCKGUITAR_V_MODEL)
  257. set_pev(id, pev_weaponmodel2, ROCKGUITAR_P_MODEL)
  258. }
  259. }
  260. }
  261. }
  262.  
  263. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  264. {
  265. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_GALIL || !g_has_RockGuitar[Player]))
  266.  
  267. return FMRES_IGNORED
  268.  
  269. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  270. return FMRES_HANDLED
  271. }
  272.  
  273. public fw_Aug_PrimaryAttack(Weapon)
  274. {
  275. new Player = get_pdata_cbase(Weapon, 41, 4)
  276.  
  277. if (!g_has_RockGuitar[Player])
  278. return;
  279.  
  280. g_IsInPrimaryAttack = 1
  281. pev(Player,pev_punchangle,cl_pushangle[Player])
  282.  
  283. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  284. }
  285.  
  286. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  287. {
  288. if ((eventid != g_orig_event_RockGuitar) || !g_IsInPrimaryAttack)
  289. return FMRES_IGNORED
  290. if (!(1 <= invoker <= g_MaxPlayers))
  291. return FMRES_IGNORED
  292.  
  293. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  294. return FMRES_SUPERCEDE
  295. }
  296.  
  297. public fw_Aug_PrimaryAttack_Post(Weapon)
  298. {
  299. g_IsInPrimaryAttack = 0
  300. new Player = get_pdata_cbase(Weapon, 41, 4)
  301.  
  302. if(g_has_RockGuitar[Player])
  303. {
  304. new Float:push[3]
  305. pev(Player,pev_punchangle,push)
  306. xs_vec_sub(push,cl_pushangle[Player],push)
  307.  
  308. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_RockGuitar),push)
  309. xs_vec_add(push,cl_pushangle[Player],push)
  310. set_pev(Player,pev_punchangle,push)
  311.  
  312. if (!g_clip_ammo[Player])
  313. return
  314.  
  315. emit_sound(Player, CHAN_WEAPON, Sound_Fire[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  316. UTIL_PlayWeaponAnimation(Player, random_num(3, 4))
  317.  
  318. make_blood_and_bulletholes(Player)
  319. }
  320. }
  321.  
  322. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  323. {
  324. if (victim != attacker && is_user_connected(attacker))
  325. {
  326. if(get_user_weapon(attacker) == CSW_GALIL)
  327. {
  328. if(g_has_RockGuitar[attacker])
  329. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_RockGuitar))
  330. }
  331. }
  332. }
  333.  
  334. public message_DeathMsg(msg_id, msg_dest, id)
  335. {
  336. static szTruncatedWeapon[33], iAttacker, iVictim
  337.  
  338. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  339.  
  340. iAttacker = get_msg_arg_int(1)
  341. iVictim = get_msg_arg_int(2)
  342.  
  343. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  344. return PLUGIN_CONTINUE
  345.  
  346. if(equal(szTruncatedWeapon, "galil") && get_user_weapon(iAttacker) == CSW_GALIL)
  347. {
  348. if(g_has_RockGuitar[iAttacker])
  349. set_msg_arg_string(4, "RockGuitar")
  350. }
  351.  
  352. return PLUGIN_CONTINUE
  353. }
  354.  
  355. stock fm_cs_get_current_weapon_ent(id)
  356. {
  357. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX);
  358. }
  359.  
  360. stock fm_cs_get_weapon_ent_owner(ent)
  361. {
  362. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS);
  363. }
  364.  
  365. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  366. {
  367. set_pev(Player, pev_weaponanim, Sequence)
  368.  
  369. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  370. write_byte(Sequence)
  371. write_byte(pev(Player, pev_body))
  372. message_end()
  373. }
  374.  
  375. stock make_blood_and_bulletholes(id)
  376. {
  377. new aimOrigin[3], target, body
  378. get_user_origin(id, aimOrigin, 3)
  379. get_user_aiming(id, target, body)
  380.  
  381. if(target > 0 && target <= g_MaxPlayers && zp_get_user_zombie(target))
  382. {
  383. new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
  384. pev(id, pev_origin, fStart)
  385.  
  386. velocity_by_aim(id, 64, fVel)
  387.  
  388. fStart[0] = float(aimOrigin[0])
  389. fStart[1] = float(aimOrigin[1])
  390. fStart[2] = float(aimOrigin[2])
  391. fEnd[0] = fStart[0]+fVel[0]
  392. fEnd[1] = fStart[1]+fVel[1]
  393. fEnd[2] = fStart[2]+fVel[2]
  394.  
  395. new res
  396. engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res)
  397. get_tr2(res, TR_vecEndPos, fRes)
  398.  
  399. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  400. write_byte(TE_BLOODSPRITE)
  401. write_coord(floatround(fStart[0]))
  402. write_coord(floatround(fStart[1]))
  403. write_coord(floatround(fStart[2]))
  404. write_short( m_iBlood [ 1 ])
  405. write_short( m_iBlood [ 0 ] )
  406. write_byte(70)
  407. write_byte(random_num(1,2))
  408. message_end()
  409.  
  410.  
  411. }
  412. else if(!is_user_connected(target))
  413. {
  414. if(target)
  415. {
  416. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  417. write_byte(TE_DECAL)
  418. write_coord(aimOrigin[0])
  419. write_coord(aimOrigin[1])
  420. write_coord(aimOrigin[2])
  421. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  422. write_short(target)
  423. message_end()
  424. }
  425. else
  426. {
  427. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  428. write_byte(TE_WORLDDECAL)
  429. write_coord(aimOrigin[0])
  430. write_coord(aimOrigin[1])
  431. write_coord(aimOrigin[2])
  432. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  433. message_end()
  434. }
  435.  
  436. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  437. write_byte(TE_GUNSHOTDECAL)
  438. write_coord(aimOrigin[0])
  439. write_coord(aimOrigin[1])
  440. write_coord(aimOrigin[2])
  441. write_short(id)
  442. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  443. message_end()
  444. }
  445. }
  446.  
  447. public ROCKGUITAR__ItemPostFrame(weapon_entity)
  448. {
  449. new id = pev(weapon_entity, pev_owner)
  450. if (!is_user_connected(id))
  451. return HAM_IGNORED;
  452.  
  453. if (!g_has_RockGuitar[id])
  454. return HAM_IGNORED;
  455.  
  456. static iClipExtra
  457.  
  458. if(g_has_RockGuitar[id])
  459. iClipExtra = get_pcvar_num(cvar_clip_RockGuitar)
  460.  
  461. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  462.  
  463. new iBpAmmo = cs_get_user_bpammo(id, CSW_GALIL);
  464. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  465.  
  466. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  467.  
  468. if( fInReload && flNextAttack <= 0.0 )
  469. {
  470. new j = min(iClipExtra - iClip, iBpAmmo)
  471.  
  472. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  473. cs_set_user_bpammo(id, CSW_GALIL, iBpAmmo-j);
  474.  
  475. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  476. fInReload = 0
  477. }
  478.  
  479. return HAM_IGNORED;
  480. }
  481.  
  482. public ROCKGUITAR__Reload(weapon_entity)
  483. {
  484. new id = pev(weapon_entity, pev_owner)
  485. if (!is_user_connected(id))
  486. return HAM_IGNORED;
  487.  
  488. if (!g_has_RockGuitar[id])
  489. return HAM_IGNORED;
  490.  
  491. static iClipExtra
  492.  
  493. if(g_has_RockGuitar[id])
  494. iClipExtra = get_pcvar_num(cvar_clip_RockGuitar)
  495.  
  496. g_RockGuitar_TmpClip[id] = -1;
  497.  
  498. new iBpAmmo = cs_get_user_bpammo(id, CSW_GALIL);
  499. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  500.  
  501. if (iBpAmmo <= 0)
  502. return HAM_SUPERCEDE;
  503.  
  504. if (iClip >= iClipExtra)
  505. return HAM_SUPERCEDE;
  506.  
  507.  
  508. g_RockGuitar_TmpClip[id] = iClip;
  509.  
  510. return HAM_IGNORED;
  511. }
  512.  
  513. public ROCKGUITAR__Reload_Post(weapon_entity)
  514. {
  515. new id = pev(weapon_entity, pev_owner)
  516. if (!is_user_connected(id))
  517. return HAM_IGNORED;
  518.  
  519. if (!g_has_RockGuitar[id])
  520. return HAM_IGNORED;
  521.  
  522. if (g_RockGuitar_TmpClip[id] == -1)
  523. return HAM_IGNORED;
  524.  
  525. static Float:iReloadTime
  526. if(g_has_RockGuitar[id])
  527. iReloadTime = ROCKGUITAR_RELOAD_TIME
  528.  
  529. set_pdata_int(weapon_entity, m_iClip, g_RockGuitar_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  530.  
  531. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, iReloadTime, WEAP_LINUX_XTRA_OFF)
  532.  
  533. set_pdata_float(id, m_flNextAttack, iReloadTime, PLAYER_LINUX_XTRA_OFF)
  534.  
  535. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  536.  
  537. UTIL_PlayWeaponAnimation(id, 1)
  538.  
  539. return HAM_IGNORED;
  540. }
  541.  
  542. public fw_CmdStart(id, uc_handle, seed)
  543. {
  544. if(!is_user_alive(id))
  545. return PLUGIN_HANDLED
  546.  
  547. if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
  548. {
  549. new szClip, szAmmo
  550. new szWeapID = get_user_weapon(id, szClip, szAmmo)
  551.  
  552. if(szWeapID == CSW_GALIL && g_has_RockGuitar[id] && !g_hasZoom[id] == true)
  553. {
  554. g_hasZoom[id] = true
  555. cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1)
  556. emit_sound(id, CHAN_ITEM, Sound_Zoom, 0.20, 2.40, 0, 100)
  557. }
  558.  
  559. else if(szWeapID == CSW_GALIL && g_has_RockGuitar[id] && g_hasZoom[id])
  560. {
  561. g_hasZoom[id] = false
  562. cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
  563.  
  564. }
  565.  
  566. }
  567.  
  568. if (g_hasZoom[ id ] && (pev(id, pev_button) & IN_RELOAD))
  569. {
  570. g_hasZoom[ id ] = false
  571. cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
  572. }
  573. return PLUGIN_HANDLED
  574. }
  575.  
  576. stock drop_weapons(id, dropwhat)
  577. {
  578. static weapons[32], num, i, weaponid
  579. num = 0
  580. get_user_weapons(id, weapons, num)
  581.  
  582. for (i = 0; i < num; i++)
  583. {
  584. weaponid = weapons[i]
  585.  
  586. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  587. {
  588. static wname[32]
  589. get_weaponname(weaponid, wname, sizeof wname - 1)
  590. engclient_cmd(id, "drop", wname)
  591. }
  592. }
  593. }
  594. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  595. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
  596. */
  597.  


a zombie plague extra itemet

ebbe a pont rendszerbe ?
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fun>
  4. #include <cstrike>
  5. #include <hamsandwich>
  6. #include <fakemeta>
  7. #include <engine>
  8. #include <nvault>
  9.  
  10. #define PLUGIN "Pontrendszer"
  11. #define VERSION "1.2"
  12. #define AUTHOR "damon"
  13.  
  14. //VIP tagok joga
  15. #define VIPJOG ADMIN_LEVEL_H
  16.  
  17. #define OFFSET_CLIPAMMO 51
  18. #define OFFSET_LINUX_WEAPONS 4
  19. #define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)
  20. #define m_pActiveItem 373
  21.  
  22. const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
  23. new const g_MaxClipAmmo[] =
  24. {
  25. 0,
  26. 13, //CSW_P228
  27. 0,
  28. 10, //CSW_SCOUT
  29. 0, //CSW_HEGRENADE
  30. 7, //CSW_XM1014
  31. 0, //CSW_C4
  32. 30,//CSW_MAC10
  33. 30, //CSW_AUG
  34. 0, //CSW_SMOKEGRENADE
  35. 15,//CSW_ELITE
  36. 20,//CSW_FIVESEVEN
  37. 25,//CSW_UMP45
  38. 30, //CSW_SG550
  39. 35, //CSW_GALIL
  40. 25, //CSW_FAMAS
  41. 12,//CSW_USP
  42. 20,//CSW_GLOCK18
  43. 10, //CSW_AWP
  44. 30,//CSW_MP5NAVY
  45. 100,//CSW_M249
  46. 8, //CSW_M3
  47. 30, //CSW_M4A1
  48. 30,//CSW_TMP
  49. 20, //CSW_G3SG1
  50. 0, //CSW_FLASHBANG
  51. 7, //CSW_DEAGLE
  52. 30, //CSW_SG552
  53. 30, //CSW_AK47
  54. 0, //CSW_KNIFE
  55. 50//CSW_P90
  56. }
  57.  
  58. new pont[33];
  59. new g_vault;
  60.  
  61. //Prefix
  62. new const Prefix[ ] = "[ BB ]";
  63.  
  64. //Uzenetek
  65. new const Hiba1[ ] = "!yEz sajnos nem sikerALlt nincs elA©g pontod!";
  66. new const Hiba2[ ] = "!yHalottak nem hasznA?lhatjA?k ezt a menALpontot!";
  67. new const Hiba3[ ] = "!yEzt a menALpontot csak terroristA?k hasznA?lhatjA?k!";
  68. new const Vasarlas[ ] = "!ySikeres vA?sA?rlA?s.";
  69.  
  70. new shop;
  71. new vipitem1cost;
  72. new vipitem2cost;
  73. new vipitem3cost;
  74. new vipitem4cost;
  75. new vipitem5cost;
  76. new vipitem6cost;
  77. new vipitem7cost;
  78.  
  79. new wpnitem1cost;
  80. new wpnitem2cost;
  81. new wpnitem3cost;
  82. new wpnitem4cost;
  83. new wpnitem5cost;
  84. new wpnitem6cost;
  85.  
  86. new egyebitem1cost;
  87. new egyebitem2cost;
  88. new egyebitem3cost;
  89. new egyebitem4cost;
  90. new egyebitem5cost;
  91. new egyebitem6cost;
  92.  
  93. new kill, hs;
  94.  
  95. new const g_varanyak[] = "models/v_golden_ak47.mdl"; //Arany AK47 v modelje
  96. new const g_paranyak[] = "models/p_golden_ak47.mdl"; //Arany AK47 p modelje
  97. new const g_varanym4[] = "models/v_m4a1.mdl"; //Arany M4A1 v modelje
  98. new const g_paranym4[] = "models/p_m4a1.mdl"; //Arany M4A1 p modelje
  99. new const g_varanydezi[] = "models/v_deagle.mdl"; //Arany Deagle v modelje
  100. new const g_paranydezi[] = "models/p_deagle.mdl"; //Arany Deagle p modelje
  101. new bool:g_aranyak[33] = false;
  102. new bool:g_aranym4[33] = false;
  103. new bool:g_aranydezi[33] = false;
  104. new bool:g_has_unlimited_clip[33];
  105.  
  106. public plugin_init(){
  107. register_plugin(PLUGIN, VERSION, AUTHOR);
  108. register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
  109. RegisterHam(Ham_TakeDamage , "player" , "PlayerHurt", 0);
  110. RegisterHam(Ham_Spawn, "player", "newRound", 1);
  111. register_clcmd("say /shop", "ShowMenu");
  112. register_clcmd("say shop", "ShowMenu");
  113. register_clcmd("say /bolt", "ShowMenu");
  114. register_clcmd("say bolt", "ShowMenu");
  115. register_clcmd("say_team /shop", "ShowMenu");
  116. register_clcmd("say_team shop", "ShowMenu");
  117. register_clcmd("say_team /bolt", "ShowMenu");
  118. register_clcmd("say_team bolt", "ShowMenu");
  119. register_event("DeathMsg", "halal", "a");
  120.  
  121. g_vault = nvault_open("pont_rendszer");
  122.  
  123. shop = register_cvar( "pt_shop", "1" ); //Bolt ki/bekapcsolasa 1-be, 0-ki
  124.  
  125. vipitem1cost = register_cvar( "pt_vipitem1", "110" ); //VIP menu item1 a'ra
  126. vipitem2cost = register_cvar( "pt_vipitem2", "140" ); //VIP menu item2 a'ra
  127. vipitem3cost = register_cvar( "pt_vipitem3", "150" ); //VIP menu item3 a'ra
  128. vipitem4cost = register_cvar( "pt_vipitem4", "10" ); //VIP menu item4 a'ra
  129. vipitem5cost = register_cvar( "pt_vipitem5", "15" ); //VIP menu item5 a'ra
  130. vipitem6cost = register_cvar( "pt_vipitem6", "10" ); //VIP menu item6 a'ra
  131. vipitem7cost = register_cvar( "pt_vipitem7", "5" ); //VIP menu item7 a'ra
  132.  
  133. wpnitem1cost = register_cvar( "pt_wpnitem1", "215" ); //Fegyver menu item1 a'ra
  134. wpnitem2cost = register_cvar( "pt_wpnitem2", "215" ); //Fegyver menu item2 a'ra
  135. wpnitem3cost = register_cvar( "pt_wpnitem3", "15" ); //Fegyver menu item3 a'ra
  136. wpnitem4cost = register_cvar( "pt_wpnitem4", "25" ); //Fegyver menu item4 a'ra
  137. wpnitem5cost = register_cvar( "pt_wpnitem5", "220" ); //Fegyver menu item5 a'ra
  138. wpnitem6cost = register_cvar( "pt_wpnitem6", "220" ); //Fegyver menu item6 a'ra
  139.  
  140. egyebitem1cost = register_cvar( "pt_egyebitem1", "5" ); //Egyeb menu item1 a'ra
  141. egyebitem2cost = register_cvar( "pt_egyebitem2", "60" ); //Egyeb menu item2 a'ra
  142. egyebitem3cost = register_cvar( "pt_egyebitem3", "150" ); //Egyeb menu item3 a'ra
  143. egyebitem4cost = register_cvar( "pt_egyebitem4", "25" ); //Egyeb menu item4 a'ra
  144. egyebitem5cost = register_cvar( "pt_egyebitem5", "55" ); //Egyeb menu item5 a'ra
  145. egyebitem6cost = register_cvar( "pt_egyebitem6", "90" ); //Egyeb menu item6 a'ra
  146.  
  147. kill = register_cvar( "pt_kill", "10000" ); //Sima olesert jaro pont
  148. hs = register_cvar( "pt_hs", "20000" ); //Fejloveser jaro pont
  149. }
  150.  
  151. public plugin_precache(){
  152. precache_model(g_varanyak)
  153. precache_model(g_paranyak)
  154. precache_model(g_varanym4)
  155. precache_model(g_paranym4)
  156. precache_model(g_varanydezi)
  157. precache_model(g_paranydezi)
  158. }
  159.  
  160. public newRound(id){
  161. g_aranyak[id] = false;
  162. g_aranym4[id] = false;
  163. g_aranydezi[id] = false;
  164. for (new id; id <= 32; id++) g_has_unlimited_clip[id] = false;
  165. }
  166.  
  167. public halal(){
  168. new killer = read_data(1)
  169. new victim = read_data(2)
  170. new team = get_user_team(killer)
  171. if(killer != victim && team != get_user_team(victim) && read_data(3)){
  172. pont[killer] += get_pcvar_num( hs )
  173. }
  174. else if(killer != victim && team != get_user_team(victim)){
  175. pont[killer] += get_pcvar_num( kill )
  176. }
  177. }
  178.  
  179. public Informaciok(id){
  180. set_task(0.1, "Informaciok", id);
  181. if(!is_user_alive(id)){
  182. new target = entity_get_int(id, EV_INT_iuser2);
  183.  
  184. if(target == 0)
  185.  
  186. return PLUGIN_CONTINUE;
  187. set_hudmessage(0, 255, 0, 0.07, 0.22, 0, 6.0, 0.0)
  188. show_hudmessage(id, "Pontjai: %d", pont[target])
  189.  
  190. return PLUGIN_CONTINUE;
  191. }
  192. set_hudmessage(0, 255, 0, 0.07, 0.22, 0, 6.0, 0.0)
  193. show_hudmessage(id, "Pontjaid: %d", pont[id])
  194. return PLUGIN_CONTINUE;
  195. }
  196.  
  197. public client_connect(id){
  198. Betolt(id)
  199. set_task(1.0, "Informaciok", id);
  200. }
  201.  
  202. public client_disconnect(id){
  203. Mentes(id)
  204. }
  205.  
  206. public Mentes(id){
  207. new name[32]
  208. get_user_name(id, name, 31)
  209.  
  210. new vaultkey[64],vaultdata[256]
  211. format(vaultkey,63,"%sPT", name)
  212. format(vaultdata,255,"%i",pont[id])
  213. nvault_set(g_vault,vaultkey,vaultdata)
  214. return PLUGIN_CONTINUE
  215. }
  216.  
  217. public Betolt(id){
  218. new name[32]
  219. get_user_name(id, name, 31)
  220. new vaultkey[64],vaultdata[256]
  221. format(vaultkey,63,"%sPT", name)
  222. format(vaultdata,255,"%i",pont[id])
  223. nvault_get(g_vault,vaultkey,vaultdata,255)
  224. replace_all(vaultdata, 255, "#", " ")
  225. new pt[32]
  226. parse(vaultdata, pt, 31)
  227. pont[id] = str_to_num(pt)
  228. return PLUGIN_CONTINUE
  229. }
  230.  
  231. public ShowMenu(id){
  232. if( get_pcvar_num( shop ) != 1 ){
  233. print_color(id, "!g%s !yA bolt ki van kapcsolva!", Prefix)
  234. return PLUGIN_HANDLED;
  235. }
  236. new szMenu[128];
  237. formatex(szMenu, charsmax(szMenu), "\rBolt^n\yPontjaid: \d%d", pont[ id ] )
  238. new menu = menu_create(szMenu, "shop_h" );
  239. if(get_user_flags(id) & VIPJOG){
  240. menu_additem(menu, "\rVIp menu", "0", 0); // case 0
  241. }
  242. else{
  243. menu_additem(menu, "\dVIp menu", "0", 0); // case 0
  244. }
  245. menu_additem(menu, "\wFegyver menAL", "1", 0); // case 1
  246. menu_additem(menu, "\wEgyA©b menAL", "2", 0); // case 2
  247.  
  248. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  249.  
  250. menu_display(id, menu, 0);
  251.  
  252. return PLUGIN_HANDLED;
  253. }
  254.  
  255. public shop_h(id, menu, item, level, cid) {
  256. if(item == MENU_EXIT){
  257. menu_destroy(menu);
  258. return PLUGIN_HANDLED;
  259. }
  260.  
  261. new command[6], name[64], access, callback;
  262.  
  263. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  264.  
  265. switch(item){
  266. case 0: {
  267. VIPMenu(id);
  268. }
  269. case 1: {
  270. FegyverMenu(id);
  271. }
  272. case 2: {
  273. EgyebMenu(id);
  274. }
  275. }
  276.  
  277. menu_destroy(menu);
  278. return PLUGIN_HANDLED;
  279.  
  280. }
  281.  
  282. public VIPMenu(id){
  283. if(!(get_user_flags(id) & VIPJOG)){
  284. client_print(id, print_center, "Ezt a boltot csak Vip tag használhatja!")
  285. ShowMenu(id);
  286. return PLUGIN_HANDLED;
  287. }
  288. new szMenu[128];
  289. formatex(szMenu, charsmax(szMenu), "\rVIP cuccok^n\yPontjaid: \d%d", pont[ id ] )
  290. new menu = menu_create(szMenu, "vipmenu_h" );
  291. new szText[128];
  292.  
  293. if(cs_get_user_team(id) == CS_TEAM_CT){
  294. formatex(szText, charsmax(szText), "\wArany AK47 - \y%d Pont", get_pcvar_num( vipitem1cost ) )
  295. menu_additem(menu, szText, "0", 0);
  296. }
  297. else{
  298. formatex(szText, charsmax(szText), "\wArany AK47 \r(Bugos!!) \w- \y%d Pont", get_pcvar_num( vipitem1cost ) )
  299. menu_additem(menu, szText, "0", 0);
  300. }
  301. formatex(szText, charsmax(szText), "\wArany M4A1 - \y%d Pont", get_pcvar_num( vipitem2cost ) )
  302. menu_additem(menu, szText, "1", 0);
  303. formatex(szText, charsmax(szText), "\wArany deagle - \y%d Pont", get_pcvar_num( vipitem3cost ) )
  304. menu_additem(menu, szText, "2", 0);
  305. formatex(szText, charsmax(szText), "\wCT magozAl - \y%d Pont", get_pcvar_num( vipitem4cost ) )
  306. menu_additem(menu, szText, "3", 0);
  307. formatex(szText, charsmax(szText), "\wT magozAl - \y%d Pont", get_pcvar_num( vipitem5cost ) )
  308. menu_additem(menu, szText, "4", 0);
  309. formatex(szText, charsmax(szText), "\w+560HP - \y%d Pont", get_pcvar_num( vipitem6cost ) )
  310. menu_additem(menu, szText, "5", 0);
  311. formatex(szText, charsmax(szText), "\wGyorsasA?g - \y%d Pont", get_pcvar_num( vipitem7cost ) )
  312. menu_additem(menu, szText, "6", 0);
  313.  
  314. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  315.  
  316. menu_display(id, menu, 0);
  317. return PLUGIN_HANDLED;
  318. }
  319.  
  320. public vipmenu_h(id, menu, item, level, cid) {
  321. new elo = is_user_alive(id);
  322. if(item == MENU_EXIT){
  323. menu_destroy(menu);
  324. ShowMenu(id);
  325. return PLUGIN_HANDLED;
  326. }
  327.  
  328. new command[6], name[64], access, callback;
  329.  
  330. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  331.  
  332. switch(item){
  333. case 0: {
  334. if(cs_get_user_team(id) == CS_TEAM_CT)
  335. if(pont[id] >= get_pcvar_num( vipitem1cost )){
  336. if(elo){
  337. give_item(id, "weapon_ak47")
  338. cs_set_user_bpammo(id, CSW_AK47, 90)
  339. g_aranyak[id] = true
  340. print_color(id, "!g%s %s", Prefix, Vasarlas)
  341. pont[id] -= get_pcvar_num( vipitem1cost )
  342. }
  343. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  344. }
  345. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  346. }
  347. case 1: {
  348. if(pont[id] >= get_pcvar_num( vipitem2cost )){
  349. if(elo){
  350. give_item(id, "weapon_m4a1")
  351. cs_set_user_bpammo(id, CSW_M4A1, 90)
  352. g_aranym4[id] = true
  353. print_color(id, "!g%s %s", Prefix, Vasarlas)
  354. pont[id] -= get_pcvar_num( vipitem2cost )
  355. }
  356. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  357. }
  358. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  359. }
  360. case 2: {
  361. if(pont[id] >= get_pcvar_num( vipitem3cost )){
  362. if(elo){
  363. give_item(id, "weapon_deagle")
  364. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  365. g_aranydezi[id] = true
  366. print_color(id, "!g%s %s", Prefix, Vasarlas)
  367. pont[id] -= get_pcvar_num( vipitem3cost )
  368. }
  369. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  370. }
  371. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  372. }
  373. case 3: {
  374. if(pont[id] >= get_pcvar_num( vipitem4cost )){
  375. if(elo){
  376. give_item(id, "weapon_sg550")
  377. cs_set_user_bpammo(id, CSW_SG550, 120)
  378. print_color(id, "!g%s %s", Prefix, Vasarlas)
  379. pont[id] -= get_pcvar_num( vipitem4cost )
  380. }
  381. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  382. }
  383. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  384. }
  385. case 4: {
  386. if(pont[id] >= get_pcvar_num( vipitem5cost )){
  387. if(elo){
  388. give_item(id, "weapon_sg552")
  389. cs_set_user_bpammo(id, CSW_SG552, 120)
  390. print_color(id, "!g%s %s", Prefix, Vasarlas)
  391. pont[id] -= get_pcvar_num( vipitem5cost )
  392. }
  393. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  394. }
  395. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  396. }
  397. case 5: {
  398. if(pont[id] >= get_pcvar_num( vipitem6cost )){
  399. if(elo){
  400. set_user_health(id, get_user_health(id)+560)
  401. print_color(id, "!g%s %s", Prefix, Vasarlas)
  402. pont[id] -= get_pcvar_num( vipitem6cost )
  403. }
  404. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  405. }
  406. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  407. }
  408. case 6: {
  409. if(pont[id] >= get_pcvar_num( vipitem7cost )){
  410. if(elo){
  411. set_user_maxspeed(id, 300.0)
  412. print_color(id, "!g%s %s", Prefix, Vasarlas)
  413. pont[id] -= get_pcvar_num( vipitem7cost )
  414. }
  415. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  416. }
  417. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  418. }
  419. }
  420.  
  421. menu_destroy(menu);
  422. return PLUGIN_HANDLED;
  423.  
  424. }
  425.  
  426. public FegyverMenu(id){
  427. new szMenu[128];
  428. formatex(szMenu, charsmax(szMenu), "\rFegyver menAL^n\yPontjaid: \d%d", pont[ id ] )
  429. new menu = menu_create(szMenu, "fegyvermenu_h" );
  430. new szText[128];
  431.  
  432. formatex(szText, charsmax(szText), "\wArany AK47 - \y%d Pont", get_pcvar_num( wpnitem1cost ) )
  433. menu_additem(menu, szText, "0", 0);
  434. formatex(szText, charsmax(szText), "\wArany M4A1 - \y%d Pont", get_pcvar_num( wpnitem2cost ) )
  435. menu_additem(menu, szText, "1", 0);
  436. formatex(szText, charsmax(szText), "\wCT magozAl - \y%d Pont", get_pcvar_num( wpnitem3cost ) )
  437. menu_additem(menu, szText, "2", 0);
  438. formatex(szText, charsmax(szText), "\wT magozAl - \y%d Pont", get_pcvar_num( wpnitem4cost ) )
  439. menu_additem(menu, szText, "3", 0);
  440. formatex(szText, charsmax(szText), "\wPlazma - \y%d Pont", get_pcvar_num( wpnitem5cost ) )
  441. menu_additem(menu, szText, "4", 0);
  442. formatex(szText, charsmax(szText), "\wRakA©ta - \y%d Pont", get_pcvar_num( wpnitem6cost ) )
  443. menu_additem(menu, szText, "5", 0);
  444.  
  445. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  446.  
  447. menu_display(id, menu, 0);
  448. return PLUGIN_HANDLED;
  449. }
  450.  
  451. public fegyvermenu_h(id, menu, item, level, cid) {
  452. new elo = is_user_alive(id);
  453. if(item == MENU_EXIT){
  454. menu_destroy(menu);
  455. ShowMenu(id);
  456. return PLUGIN_HANDLED;
  457. }
  458.  
  459. new command[6], name[64], access, callback;
  460.  
  461. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  462.  
  463. switch(item){
  464. case 0: {
  465. if(pont[id] >= get_pcvar_num( wpnitem1cost )){
  466. if(elo){
  467. give_item(id, "weapon_ak47")
  468. cs_set_user_bpammo(id, CSW_AK47, 90)
  469. g_aranyak[id] = true
  470. print_color(id, "!g%s %s", Prefix, Vasarlas)
  471. pont[id] -= get_pcvar_num( wpnitem1cost )
  472. }
  473. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  474. }
  475. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  476. }
  477. case 1: {
  478. if(pont[id] >= get_pcvar_num( wpnitem2cost )){
  479. if(elo){
  480. give_item(id, "weapon_m4a1")
  481. cs_set_user_bpammo(id, CSW_M4A1, 90)
  482. g_aranym4[id] = true
  483. print_color(id, "!g%s %s", Prefix, Vasarlas)
  484. pont[id] -= get_pcvar_num( wpnitem2cost )
  485. }
  486. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  487. }
  488. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  489. }
  490. case 2: {
  491. if(pont[id] >= get_pcvar_num( wpnitem3cost )){
  492. if(elo){
  493. give_item(id, "weapon_sg550")
  494. cs_set_user_bpammo(id, CSW_SG550, 120)
  495. print_color(id, "!g%s %s", Prefix, Vasarlas)
  496. pont[id] -= get_pcvar_num( wpnitem3cost )
  497. }
  498. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  499. }
  500. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  501. }
  502. case 3: {
  503. if(pont[id] >= get_pcvar_num( wpnitem4cost )){
  504. if(elo){
  505. give_item(id, "weapon_sg552")
  506. cs_set_user_bpammo(id, CSW_SG552, 120)
  507. print_color(id, "!g%s %s", Prefix, Vasarlas)
  508. pont[id] -= get_pcvar_num( wpnitem4cost )
  509. }
  510. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  511. }
  512. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  513. }
  514. case 4: {
  515. if(pont[id] >= get_pcvar_num( wpnitem5cost )){
  516. if(elo){
  517.  
  518. //Plazma
  519.  
  520. print_color(id, "!g%s %s", Prefix, Vasarlas)
  521. pont[id] -= get_pcvar_num( wpnitem5cost )
  522. }
  523. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  524. }
  525. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  526. }
  527. case 5: {
  528. if(pont[id] >= get_pcvar_num( wpnitem6cost )){
  529. if(elo){
  530.  
  531. //Raketa
  532.  
  533. print_color(id, "!g%s %s", Prefix, Vasarlas)
  534. pont[id] -= get_pcvar_num( wpnitem6cost )
  535. }
  536. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  537. }
  538. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  539. }
  540. }
  541.  
  542. menu_destroy(menu);
  543. return PLUGIN_HANDLED;
  544.  
  545. }
  546.  
  547. public EgyebMenu(id){
  548. new szMenu[128];
  549. formatex(szMenu, charsmax(szMenu), "\rBolt^n\yPontjaid: \d%d", pont[ id ] )
  550. new menu = menu_create(szMenu, "egyebmenu_h" );
  551. new szText[128];
  552.  
  553. formatex(szText, charsmax(szText), "\wGyorsasA?g - \y%d Pont", get_pcvar_num( egyebitem1cost ) )
  554. menu_additem(menu, szText, "0", 0);
  555. formatex(szText, charsmax(szText), "\wNoRecoil \r(1 KA¶r) - \y%d Pont", get_pcvar_num( egyebitem2cost ) )
  556. menu_additem(menu, szText, "1", 0);
  557. formatex(szText, charsmax(szText), "\wA–rA¶klAµszer \r(1 KA¶r) - \y%d Pont", get_pcvar_num( egyebitem3cost ) )
  558. menu_additem(menu, szText, "2", 0);
  559. if(cs_get_user_team(id) == CS_TEAM_T){
  560. formatex(szText, charsmax(szText), "\w+1000HP - \y%d Pont", get_pcvar_num( egyebitem4cost ) )
  561. menu_additem(menu, szText, "3", 0);
  562. }
  563. else{
  564. formatex(szText, charsmax(szText), "\d+1000HP \r(Csak Terrorista) - \y%d Pont", get_pcvar_num( egyebitem4cost ) )
  565. menu_additem(menu, szText, "3", 0);
  566. }
  567. if(cs_get_user_team(id) == CS_TEAM_T){
  568. formatex(szText, charsmax(szText), "\w+2500HP \r - \y%d Pont", get_pcvar_num( egyebitem5cost ) )
  569. menu_additem(menu, szText, "4", 0);
  570. }
  571. else{
  572. formatex(szText, charsmax(szText), "\d+2500HP \r(Csak Terrorista) - \y%d Pont", get_pcvar_num( egyebitem5cost ) )
  573. menu_additem(menu, szText, "4", 0);
  574. }
  575. formatex(szText, charsmax(szText), "\wExtra gyorsasA?g - \y%d Pont", get_pcvar_num( egyebitem6cost ) )
  576. menu_additem(menu, szText, "5", 0);
  577.  
  578. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  579.  
  580. menu_display(id, menu, 0);
  581. return PLUGIN_HANDLED;
  582. }
  583.  
  584. public egyebmenu_h(id, menu, item, level, cid) {
  585. new elo = is_user_alive(id);
  586. if(item == MENU_EXIT){
  587. menu_destroy(menu);
  588. ShowMenu(id);
  589. return PLUGIN_HANDLED;
  590. }
  591.  
  592. new command[6], name[64], access, callback;
  593.  
  594. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  595.  
  596. switch(item){
  597. case 0: {
  598. if(pont[id] >= get_pcvar_num( egyebitem1cost )){
  599. if(elo){
  600. set_user_maxspeed(id, 300.0)
  601. print_color(id, "!g%s %s", Prefix, Vasarlas)
  602. pont[id] -= get_pcvar_num( egyebitem1cost )
  603. }
  604. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  605. }
  606. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  607. }
  608. case 1: {
  609. if(pont[id] >= get_pcvar_num( egyebitem2cost )){
  610. if(elo){
  611.  
  612. //No recoil
  613.  
  614. print_color(id, "!g%s %s", Prefix, Vasarlas)
  615. pont[id] -= get_pcvar_num( egyebitem2cost )
  616. }
  617. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  618. }
  619. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  620. }
  621. case 2: {
  622. if(pont[id] >= get_pcvar_num( egyebitem3cost )){
  623. if(elo){
  624. g_has_unlimited_clip[id] = true
  625. print_color(id, "!g%s %s", Prefix, Vasarlas)
  626. pont[id] -= get_pcvar_num( egyebitem3cost )
  627. }
  628. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  629. }
  630. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  631. }
  632. case 3: {
  633. if(cs_get_user_team(id) == CS_TEAM_T){
  634. if(pont[id] >= get_pcvar_num( egyebitem5cost )){
  635. if(elo){
  636. set_user_health(id, get_user_health(id)+1000)
  637. print_color(id, "!g%s %s", Prefix, Vasarlas)
  638. pont[id] -= get_pcvar_num( egyebitem5cost )
  639. }
  640. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  641. }
  642. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  643. }
  644. else print_color(id, "!g%s %s", Prefix ,Hiba3)
  645. }
  646. case 4: {
  647. if(cs_get_user_team(id) == CS_TEAM_T){
  648. if(pont[id] >= get_pcvar_num( egyebitem5cost )){
  649. if(elo){
  650. set_user_health(id, get_user_health(id)+2500)
  651. print_color(id, "!g%s %s", Prefix, Vasarlas)
  652. pont[id] -= get_pcvar_num( egyebitem5cost )
  653. }
  654. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  655. }
  656. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  657. }
  658. else print_color(id, "!g%s %s", Prefix ,Hiba3)
  659. }
  660. case 5: {
  661. if(pont[id] >= get_pcvar_num( egyebitem6cost )){
  662. if(elo){
  663. set_user_maxspeed(id, 340.0)
  664. print_color(id, "!g%s %s", Prefix, Vasarlas)
  665. pont[id] -= get_pcvar_num( egyebitem6cost )
  666. }
  667. else print_color(id, "!g%s %s", Prefix ,Hiba2)
  668. }
  669. else print_color(id, "!g%s %s", Prefix ,Hiba1)
  670. }
  671. }
  672.  
  673. menu_destroy(menu);
  674. return PLUGIN_HANDLED;
  675.  
  676. }
  677.  
  678. public Event_CurWeapon(id){
  679. if(g_has_unlimited_clip[id] == true){
  680. new iWeapon = read_data(2)
  681. if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) ){
  682. fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_MaxClipAmmo[ iWeapon ] )
  683. }
  684. }
  685. new weapon = get_user_weapon(id)
  686. if(weapon == CSW_AK47 && g_aranyak[id] == true){
  687. entity_set_string(id, EV_SZ_viewmodel, g_varanyak)
  688. entity_set_string(id, EV_SZ_weaponmodel, g_paranyak)
  689. }
  690. if(weapon == CSW_AK47 && g_aranyak[id] == false){
  691. entity_set_string(id, EV_SZ_viewmodel, "models/v_ak47.mdl")
  692. entity_set_string(id, EV_SZ_weaponmodel, "models/p_ak47.mdl")
  693. }
  694. if(weapon == CSW_M4A1 && g_aranym4[id] == true){
  695. entity_set_string(id, EV_SZ_viewmodel, g_varanym4)
  696. entity_set_string(id, EV_SZ_weaponmodel, g_paranym4)
  697. }
  698. if(weapon == CSW_M4A1 && g_aranym4[id] == false){
  699. entity_set_string(id, EV_SZ_viewmodel, "models/v_m4a1.mdl")
  700. entity_set_string(id, EV_SZ_weaponmodel, "models/p_m4a1.mdl")
  701. }
  702. if(weapon == CSW_DEAGLE && g_aranydezi[id] == true){
  703. entity_set_string(id, EV_SZ_viewmodel, g_varanydezi)
  704. entity_set_string(id, EV_SZ_weaponmodel, g_paranydezi)
  705. }
  706. if(weapon == CSW_DEAGLE && g_aranydezi[id] == false){
  707. entity_set_string(id, EV_SZ_viewmodel, "models/v_deagle.mdl")
  708. entity_set_string(id, EV_SZ_weaponmodel, "models/p_deagle.mdl")
  709. }
  710. }
  711. public PlayerHurt( victim,inflictor,attacker,Float:damage, DamageBits ){
  712. new weapon = get_user_weapon(attacker)
  713. if(weapon == CSW_AK47 && g_aranyak[attacker]){
  714. SetHamParamFloat(4, damage * 2.10);
  715. }
  716. if(weapon == CSW_M4A1 && g_aranym4[attacker]){
  717. SetHamParamFloat(4, damage * 1.50);
  718. }
  719. if(weapon == CSW_DEAGLE && g_aranydezi[attacker]){
  720. SetHamParamFloat(4, damage * 1.50);
  721. }
  722. }
  723.  
  724. stock print_color(const id, const input[], any:...)
  725. {
  726. new count = 1, players[32]
  727. static msg[191]
  728. vformat(msg, 190, input, 3)
  729.  
  730. replace_all(msg, 190, "!g", "^4")
  731. replace_all(msg, 190, "!y", "^1")
  732. replace_all(msg, 190, "!t", "^3")
  733.  
  734. if (id) players[0] = id; else get_players(players, count, "ch")
  735. {
  736. for (new i = 0; i < count; i++)
  737. {
  738. if (is_user_connected(players[i]))
  739. {
  740. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  741. write_byte(players[i])
  742. write_string(msg)
  743. message_end()
  744. }
  745. }
  746. }
  747. return PLUGIN_HANDLED
  748. }
  749.  



aki tudja segítene nekem ? aki segít megy a gömb!

köszönöm elöre !

_________________
Ha, segítettél mindig meg köszönöm!
De ha, segítettem köszönd meg Te is ! LIKE


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


Ki van itt

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