hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.06. 14:48



Jelenlévő felhasználók

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

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

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

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



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

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Jetpack lángjának eltüntetése
HozzászólásElküldve: 2014.09.21. 20:12 
Offline
Lelkes
Avatar

Csatlakozott: 2014.03.28. 20:20
Hozzászólások: 17
Megköszönt másnak: 5 alkalommal
Sziasztok, az lenne a kérésem, hogy valaki kiszedné a lángját a jetpack-nak?

SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. /*|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*
  3. *.
  4. * [ZP] Extra Item Jetpack+Bazooka 3.2
  5. *
  6. *|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*
  7. *
  8. * Original Plugin:
  9. * AMX Jetpack
  10. * BY
  11. * (c) Copyright 2005, KleeneX
  12. * This file is provided as is (no warranties)
  13. *
  14. * CREDITS:
  15. * MeRcyLeZZ |>>>| bug fix, some code from [ZP] Stamina (http://forums.alliedmods.net/showpost.p ... count=1300)
  16. * mogel |>>>| Icon code form Predator-Mod (http://forums.alliedmods.net/showthread ... t=predator)
  17. *
  18. *|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*
  19. *
  20. * Plagued Version 3.2 by B!gBud
  21. *
  22. *
  23. * Allows Humans buy a Jetpack+Bazooka in Zombie Plague [4.0]
  24. *
  25. *
  26. * CVARS:
  27. * zp_jetpack 2 // 0 = Off / 1 = have Knive & Hold ATTACK / 2 = Hold JUMP and DUCK
  28. *
  29. * zp_jp_forward_speed 300 // Set the forward speed(when you fly and press FORWARD)
  30. * zp_jp_up_speed 35 // Set the UP speed(when you press ATTACK and JUMP up)
  31. * zp_jp_accelerate 100 // How fast you get to the max ForwardSpeed
  32. *
  33. * zp_jp_rocket_delay 12 // How long you got to wait to shoot the next rocket(in sec.)
  34. * zp_jp_rocket_speed 1500 // Set the rocket Speed
  35. * zp_jp_rocket_damage 1500 // Set the max rocket Damage
  36. * zp_jp_damage_radius 350 // Set the radius of a rocket explosion
  37. *
  38. * zp_jp_max_engery 100 // Set the max Energy for the Jetpack
  39. * zp_jp_engery 10 // Set how many Energy need the JP to fly (time interval is "zp_jp_energy_cal")
  40. * zp_jp_regain_energy 3 // Set how fast you get JP_Energy back, when you on the ground (time interval is "zp_jp_energy_cal")
  41. * zp_jp_energy_cal 1.0 // Set time interval for "zp_jp_engery" & "zp_jp_regain_energy"
  42. * zp_jp_oneround 1 // 0 = jetpack stay on a new round if someone alive / 1 = jetpack for One Round only
  43. *
  44. *|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*/
  45.  
  46. #include <amxmodx>
  47. #include <fun>
  48. #include <engine>
  49. #include <fakemeta>
  50. #include <hamsandwich>
  51. #include <zombieplague>
  52.  
  53. #define PLUGINNAME "Jetpack+Bazoka"
  54. #define VERSION "3.2"
  55. #define AUTHOR "B!gBud"
  56.  
  57. #define ACCESS_LEVEL ADMIN_LEVEL_A
  58. #define VOTE_ACCESS ADMIN_CFG
  59.  
  60. #define TE_EXPLOSION 3
  61. #define TE_BEAMFOLLOW 22
  62. #define TE_BEAMCYLINDER 21
  63.  
  64. #define JETPACK_COST 25 // set how may ammopacks the Jatpack+Rocket cost
  65.  
  66. new ROCKET_MDL[64] = "models/rpgrocket.mdl"
  67. new ROCKET_SOUND[64] = "weapons/rocketfire1.wav"
  68. new getrocket[64] = "items/9mmclip2.wav"
  69.  
  70. new bool:fly[33] = false
  71. new bool:rocket[33] = false
  72. new bool:rksound[33] = false
  73. new bool:shot[33] = false
  74.  
  75. new Float:gltime = 0.0
  76. new Float:last_Rocket[33] = 0.0
  77. new Float:jp_cal[33] = 0.0
  78. new Float:jp_soun[33] = 0.0
  79. new flame, explosion, trail, white
  80. new g_flyEnergy[33], hasjet[33]
  81. new cvar_jetpack, cvar_jetpackSpeed, cvar_jetpackUpSpeed, cvar_jetpackAcrate ,cvar_RocketDelay, cvar_RocketSpeed, cvar_RocketDmg, cvar_Dmg_range, cvar_fly_max_engery, cvar_fly_engery, cvar_regain_energy, g_item_jetpack, cvar_cal_time, cvar_oneround
  82.  
  83.  
  84. public plugin_init() {
  85. register_plugin(PLUGINNAME, VERSION, AUTHOR)
  86.  
  87. g_item_jetpack = zp_register_extra_item("Jetpack+Bazooka (one Round)", JETPACK_COST, ZP_TEAM_HUMAN)
  88. register_clcmd("drop","cmdDrop")
  89. register_clcmd("say /jphelp","cmdHelp",0,": Displays Jetpack help")
  90.  
  91. new ver[64]
  92. format(ver,63,"%s v%s",PLUGINNAME,VERSION)
  93. register_cvar("zp_jp_version",ver,FCVAR_SERVER)
  94.  
  95. cvar_jetpack = register_cvar("zp_jetpack", "2")
  96.  
  97. cvar_jetpackSpeed=register_cvar("zp_jp_forward_speed","300.0")
  98. cvar_jetpackUpSpeed=register_cvar("zp_jp_up_speed","35.0")
  99. cvar_jetpackAcrate=register_cvar("zp_jp_accelerate","100.0")
  100.  
  101. cvar_RocketDelay=register_cvar("zp_jp_rocket_delay","12.0")
  102. cvar_RocketSpeed=register_cvar("zp_jp_rocket_speed","1500")
  103. cvar_RocketDmg=register_cvar("zp_jp_rocket_damage","1500")
  104. cvar_Dmg_range=register_cvar("zp_jp_damage_radius","350")
  105.  
  106. cvar_fly_max_engery = register_cvar("zp_jp_max_engery", "100")
  107. cvar_fly_engery = register_cvar("zp_jp_engery", "10")
  108. cvar_regain_energy = register_cvar("zp_jp_regain_energy", "3")
  109. cvar_cal_time = register_cvar("zp_jp_energy_cal", "1.0")
  110. cvar_oneround = register_cvar("zp_jp_oneround", "0")
  111.  
  112.  
  113. register_event("CurWeapon", "check_models", "be")
  114. register_event("DeathMsg", "player_die", "a")
  115. register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
  116.  
  117. register_forward(FM_StartFrame, "fm_startFrame")
  118. register_forward(FM_EmitSound, "emitsound")
  119. }
  120.  
  121. public plugin_precache() {
  122. precache_model("models/p_egon.mdl")
  123. precache_model("models/v_egon.mdl")
  124. precache_model("models/w_egon.mdl")
  125. precache_sound("jetpack.wav")
  126. precache_sound("jp_blow.wav")
  127.  
  128. precache_model(ROCKET_MDL)
  129. precache_sound(ROCKET_SOUND)
  130. precache_sound(getrocket)
  131.  
  132. explosion = precache_model("sprites/zerogxplode.spr")
  133. trail = precache_model("sprites/smoke.spr")
  134. flame = precache_model("sprites/xfireball3.spr")
  135. white = precache_model("sprites/white.spr")
  136. }
  137.  
  138. public client_putinserver(id) {
  139. fly[id] = false
  140. rocket[id] = false
  141. hasjet[id] = 0
  142. g_flyEnergy[id] = 0
  143. }
  144.  
  145. public client_disconnect(id) {
  146. fly[id] = false
  147. rocket[id] = false
  148. hasjet[id] = 0
  149. g_flyEnergy[id] = 0
  150. }
  151.  
  152. public event_round_start()
  153. {
  154. remove_jetpacks();
  155. if (get_pcvar_num(cvar_oneround) == 1) {
  156. for (new id; id <= 32; id++) hasjet[id] = 0, g_flyEnergy[id] = 0, fly[id] = false;
  157. }
  158. }
  159.  
  160. public fm_startFrame(){
  161.  
  162. gltime = get_gametime()
  163. static id
  164. for (id = 1; id <= 32; id++)
  165. {
  166. jp_forward(id)
  167. }
  168. }
  169.  
  170. public jp_forward(player) {
  171.  
  172. if (!is_user_alive(player) && (zp_get_user_zombie(player) || zp_get_user_nemesis(player) || zp_get_user_survivor(player)))
  173. return FMRES_IGNORED
  174.  
  175. if (!hasjet[player])
  176. return FMRES_IGNORED
  177.  
  178. if(jp_cal[player] < gltime){
  179. jp_energy(player); jp_cal[player] = gltime + get_pcvar_float(cvar_cal_time)
  180. }
  181.  
  182. check_rocket(player)
  183.  
  184. new clip,ammo
  185. new wpnid = get_user_weapon(player,clip,ammo)
  186. if (wpnid == CSW_KNIFE){
  187. if(get_pcvar_num(cvar_jetpack) == 1){
  188. if(!(pev(player, pev_flags)&FL_ONGROUND) && pev(player,pev_button)&IN_ATTACK){
  189. if((g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
  190. if(jp_soun[player] < gltime){
  191. emit_sound(player,CHAN_ITEM,"jetpack.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
  192. jp_soun[player] = gltime + 1.0
  193. }
  194. }
  195. else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.3)){
  196. if(jp_soun[player] < gltime){
  197. emit_sound(player,CHAN_ITEM,"jp_blow.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
  198. jp_soun[player] = gltime + 1.0
  199. }
  200. }
  201. }
  202. human_fly(player)
  203. attack(player)
  204. }
  205. if((pev(player,pev_button)&IN_ATTACK2)){
  206. attack2(player)
  207. }
  208. }
  209. if((get_pcvar_num(cvar_jetpack) == 2 && !(pev(player, pev_flags)&FL_ONGROUND)) && (pev(player,pev_button)&IN_JUMP && pev(player,pev_button)&IN_DUCK)){
  210. if((g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
  211. if(jp_soun[player] < gltime){
  212. emit_sound(player,CHAN_ITEM,"jetpack.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
  213. jp_soun[player] = gltime + 1.0
  214. }
  215. }
  216. else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.3)){
  217. if(jp_soun[player] < gltime){
  218. emit_sound(player,CHAN_ITEM,"jp_blow.wav",1.0,ATTN_NORM,1,PITCH_HIGH)
  219. jp_soun[player] = gltime + 1.0
  220. }
  221. }
  222. human_fly(player)
  223. attack(player)
  224. }
  225. // Icon Show system
  226. /*if (!is_user_alive(player) && zp_get_user_zombie(player) && zp_get_user_nemesis(player) && zp_get_user_survivor(player))
  227. Icon_Energy({0, 255, 0}, 0, player);
  228. //Icon_Energy({128, 128, 0}, 0, player);
  229. //Icon_Energy({255, 255, 0}, 0, player);
  230.  
  231. }*/
  232. if((g_flyEnergy[player] >= get_pcvar_num(cvar_fly_max_engery)*0.8) && (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery))){
  233. Icon_Energy({0, 255, 0}, 1, player); // Green
  234. }
  235. else if((g_flyEnergy[player] >= get_pcvar_num(cvar_fly_max_engery)*0.5) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.8)){
  236. Icon_Energy({255, 255, 0}, 1, player); // yellow
  237. }
  238. else if((g_flyEnergy[player] >= get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.5)){
  239. Icon_Energy({255, 215, 0}, 2, player);
  240. }
  241. else if((g_flyEnergy[player] > 0) && (g_flyEnergy[player] < get_pcvar_num(cvar_fly_max_engery)*0.3)){
  242. Icon_Energy({255, 0, 0}, 1, player);
  243. }
  244.  
  245. return FMRES_IGNORED
  246. }
  247.  
  248. public jp_energy(player) {
  249.  
  250. if (!(pev(player, pev_flags)&FL_ONGROUND) && pev(player,pev_button)&IN_ATTACK)
  251. {
  252. // Get our current velocity
  253. new clip,ammo
  254. new wpnid = get_user_weapon(player,clip,ammo)
  255. if (wpnid == CSW_KNIFE)
  256. {
  257. // flying
  258. if(g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.09)
  259. g_flyEnergy[player] = g_flyEnergy[player] - get_pcvar_num(cvar_fly_engery); // Increase distance counter
  260. }
  261. }
  262. else if ((get_pcvar_num(cvar_jetpack) == 2 && !(pev(player, pev_flags)&FL_ONGROUND)) && (pev(player,pev_button)&IN_JUMP && pev(player,pev_button)&IN_DUCK))
  263. {
  264. if(g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.09)
  265. g_flyEnergy[player] = g_flyEnergy[player] - get_pcvar_num(cvar_fly_engery); // Increase distance counter
  266. }
  267. // Walking/Runnig
  268. if (pev(player, pev_flags) & FL_ONGROUND)
  269. g_flyEnergy[player] = g_flyEnergy[player] + get_pcvar_num(cvar_regain_energy);// Decrease distance counter
  270. }
  271.  
  272. public attack(player) {
  273. //code snippa from TS_Jetpack 1.0 - Jetpack plugin for The Specialists.
  274. //http://forums.alliedmods.net/showthread.php?s=3ea22295e3e5a292fa82899676583326&t=55709&highlight=jetpack
  275. //By: Bad_Bud
  276. if(fly[player])
  277. {
  278. static Float:JetpackData[3]
  279. pev(player,pev_velocity,JetpackData)
  280.  
  281. new fOrigin[3],Float:Aim[3]
  282. VelocityByAim(player, 10, Aim)
  283. get_user_origin(player,fOrigin)
  284. fOrigin[0] -= floatround(Aim[0])
  285. fOrigin[1] -= floatround(Aim[1])
  286. fOrigin[2] -= floatround(Aim[2])
  287.  
  288.  
  289. if((pev(player,pev_button)&IN_FORWARD) && !(pev(player, pev_flags) & FL_ONGROUND))
  290. {
  291.  
  292. message_begin(MSG_ALL,SVC_TEMPENTITY)
  293. write_byte(17)
  294. write_coord(fOrigin[0])
  295. write_coord(fOrigin[1])
  296. write_coord(fOrigin[2])
  297. write_short(flame)
  298. write_byte(10)
  299. write_byte(255)
  300. message_end()
  301.  
  302. static Float:Speed
  303. Speed=floatsqroot(JetpackData[0]*JetpackData[0]+JetpackData[1]*JetpackData[1])
  304.  
  305. if(Speed!=0.0)//Makes players only lay down if their speed isn't 0; if they are thrusting forward.
  306. {
  307. set_pev(player,pev_gaitsequence,0)
  308. set_pev(player,pev_sequence,111)
  309. }
  310.  
  311. if(Speed<get_pcvar_float(cvar_jetpackSpeed))
  312. Speed+=get_pcvar_float(cvar_jetpackAcrate)
  313.  
  314. static Float:JetpackData2[3]
  315. pev(player,pev_angles,JetpackData2)
  316. JetpackData2[2]=0.0//Remove the Z value/
  317.  
  318. angle_vector(JetpackData2,ANGLEVECTOR_FORWARD,JetpackData2)
  319. JetpackData2[0]*=Speed
  320. JetpackData2[1]*=Speed
  321.  
  322. JetpackData[0]=JetpackData2[0]
  323. JetpackData[1]=JetpackData2[1]
  324. }
  325.  
  326. if(JetpackData[2]<get_pcvar_float(cvar_jetpackSpeed)&&JetpackData[2]>0.0)//Jetpacks get more power on the way down -- it helps landing.
  327. JetpackData[2]+=get_pcvar_float(cvar_jetpackUpSpeed)
  328. else if(JetpackData[2]<0.0)
  329. JetpackData[2]+=(get_pcvar_float(cvar_jetpackUpSpeed)*1.15)
  330.  
  331. set_pev(player,pev_velocity,JetpackData)
  332. }
  333. }
  334.  
  335. public attack2(player) {
  336.  
  337. if (rocket[player])
  338. {
  339.  
  340. new rocket = create_entity("info_target")
  341. if(rocket == 0) return PLUGIN_CONTINUE
  342.  
  343. entity_set_string(rocket, EV_SZ_classname, "zp_jp_rocket")
  344. entity_set_model(rocket, ROCKET_MDL)
  345.  
  346. entity_set_size(rocket, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0})
  347. entity_set_int(rocket, EV_INT_movetype, MOVETYPE_FLY)
  348. entity_set_int(rocket, EV_INT_solid, SOLID_BBOX)
  349.  
  350. new Float:vSrc[3]
  351. entity_get_vector(player, EV_VEC_origin, vSrc)
  352.  
  353. new Float:Aim[3],Float:origin[3]
  354. VelocityByAim(player, 64, Aim)
  355. entity_get_vector(player,EV_VEC_origin,origin)
  356.  
  357. vSrc[0] += Aim[0]
  358. vSrc[1] += Aim[1]
  359. entity_set_origin(rocket, vSrc)
  360.  
  361. new Float:velocity[3], Float:angles[3]
  362. VelocityByAim(player, get_pcvar_num(cvar_RocketSpeed), velocity)
  363.  
  364. entity_set_vector(rocket, EV_VEC_velocity, velocity)
  365. vector_to_angle(velocity, angles)
  366. entity_set_vector(rocket, EV_VEC_angles, angles)
  367. entity_set_edict(rocket,EV_ENT_owner,player)
  368. entity_set_float(rocket, EV_FL_takedamage, 1.0)
  369.  
  370. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  371. write_byte(TE_BEAMFOLLOW)
  372. write_short(rocket)
  373. write_short(trail)
  374. write_byte(25)
  375. write_byte(5)
  376. write_byte(224)
  377. write_byte(224)
  378. write_byte(255)
  379. write_byte(255)
  380. message_end()
  381.  
  382. emit_sound(rocket, CHAN_WEAPON, ROCKET_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM)
  383.  
  384. shot[player] = true
  385. last_Rocket[player] = gltime + get_pcvar_num(cvar_RocketDelay)
  386. }
  387. return PLUGIN_CONTINUE
  388. }
  389.  
  390. public check_models(id) {
  391.  
  392. if (zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
  393. return FMRES_IGNORED
  394.  
  395. if(hasjet[id]) {
  396. new clip,ammo
  397. new wpnid = get_user_weapon(id,clip,ammo)
  398.  
  399. if ( wpnid == CSW_KNIFE ) {
  400. switchmodel(id)
  401. }
  402. return PLUGIN_CONTINUE
  403. }
  404. return PLUGIN_CONTINUE
  405. }
  406.  
  407. public switchmodel(id) {
  408. entity_set_string(id,EV_SZ_viewmodel,"models/v_egon.mdl")
  409. entity_set_string(id,EV_SZ_weaponmodel,"models/p_egon.mdl")
  410. }
  411.  
  412. public remove_jetpacks() {
  413. new nextitem = find_ent_by_class(-1,"zp_jp_jetpack")
  414. while(nextitem) {
  415. remove_entity(nextitem)
  416. nextitem = find_ent_by_class(-1,"zp_jp_jetpack")
  417. }
  418. return PLUGIN_CONTINUE
  419. }
  420.  
  421. public emitsound(entity, channel, const sample[]) {
  422. if(is_user_alive(entity)) {
  423. new clip,ammo
  424. new weapon = get_user_weapon(entity,clip,ammo)
  425.  
  426. if(hasjet[entity] && weapon == CSW_KNIFE) {
  427. if(equal(sample,"weapons/knife_slash1.wav")) return FMRES_SUPERCEDE
  428. if(equal(sample,"weapons/knife_slash2.wav")) return FMRES_SUPERCEDE
  429.  
  430. if(equal(sample,"weapons/knife_deploy1.wav")) return FMRES_SUPERCEDE
  431. if(equal(sample,"weapons/knife_hitwall1.wav")) return FMRES_SUPERCEDE
  432.  
  433. if(equal(sample,"weapons/knife_hit1.wav")) return FMRES_SUPERCEDE
  434. if(equal(sample,"weapons/knife_hit2.wav")) return FMRES_SUPERCEDE
  435. if(equal(sample,"weapons/knife_hit3.wav")) return FMRES_SUPERCEDE
  436. if(equal(sample,"weapons/knife_hit4.wav")) return FMRES_SUPERCEDE
  437.  
  438. if(equal(sample,"weapons/knife_stab.wav")) return FMRES_SUPERCEDE
  439. }
  440. }
  441. return FMRES_IGNORED
  442. }
  443.  
  444. public Icon_Show(icon[], color[3], mode, player) {
  445.  
  446. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("StatusIcon"), {0,0,0}, player);
  447. write_byte(mode); // status (0=hide, 1=show, 2=flash)
  448. write_string(icon); // sprite name
  449. write_byte(color[0]); // red
  450. write_byte(color[1]); // green
  451. write_byte(color[2]); // blue
  452. message_end();
  453.  
  454. }
  455.  
  456. public Icon_Energy(color[3], mode, player) {
  457.  
  458. Icon_Show("item_longjump", color, mode, player)
  459. }
  460.  
  461. public human_fly(player) {
  462.  
  463. if (g_flyEnergy[player] <= get_pcvar_num(cvar_fly_max_engery)*0.1)
  464. {
  465. jp_off(player);
  466. }
  467. if (g_flyEnergy[player] > get_pcvar_num(cvar_fly_max_engery)*0.1)
  468. {
  469. jp_on(player);
  470. }
  471. }
  472.  
  473. public jp_on(player) {
  474.  
  475. fly[player] = true
  476.  
  477. }
  478.  
  479. public jp_off(player) {
  480.  
  481. fly[player] = false
  482.  
  483. }
  484.  
  485. public check_rocket(player) {
  486.  
  487. if (last_Rocket[player] > gltime)
  488. {
  489. rk_forbidden(player)
  490. rksound[player] = true
  491. }
  492. else
  493. {
  494.  
  495. if (shot[player])
  496. {
  497. rksound[player] = false
  498. shot[player] = false
  499. }
  500. rk_sound(player)
  501. rk_allow(player)
  502. }
  503.  
  504. }
  505.  
  506. public rk_allow(player) {
  507.  
  508. rocket[player] = true
  509. }
  510.  
  511. public rk_forbidden(player) {
  512.  
  513. rocket[player] = false
  514.  
  515. }
  516.  
  517. public rk_sound(player) {
  518.  
  519. if (!rksound[player])
  520. {
  521. engfunc(EngFunc_EmitSound, player, CHAN_WEAPON, getrocket, 1.0, ATTN_NORM, 0, PITCH_NORM)
  522. client_print(player, print_center, "*Bazooka Ujratoltve*")
  523. rksound[player] = true
  524. }
  525. else if (rksound[player])
  526. {
  527.  
  528. }
  529.  
  530. }
  531.  
  532. public cmdHelp(id) {
  533.  
  534. new g_max = get_pcvar_num(cvar_fly_max_engery)
  535. new g_lost = get_pcvar_num(cvar_fly_engery)
  536. new g_back = get_pcvar_num(cvar_regain_energy)
  537. new g_dmg = get_pcvar_num(cvar_RocketDmg)
  538. new g_delay = get_pcvar_num(cvar_RocketDelay)
  539.  
  540. new jpmotd[2048], title[64], dpos = 0
  541. format(title,63,"[ZP] %s ver.%s",PLUGINNAME,VERSION)
  542.  
  543.  
  544. dpos += format(jpmotd[dpos],2047-dpos,"<html><head><style type=^"text/css^">pre{color:#FF0505;}body{background:#000000;margin-left:16px;margin-top:1px;}</style></head><pre><body>")
  545. dpos += format(jpmotd[dpos],2047-dpos,"<b>%s</b>^n^n",title)
  546.  
  547. dpos += format(jpmotd[dpos],2047-dpos,"Hogyan hasznaljuk:^n")
  548. dpos += format(jpmotd[dpos],2047-dpos,"=============^n^n")
  549. if(get_pcvar_num(cvar_jetpack) == 1) {
  550. dpos += format(jpmotd[dpos],2047-dpos,"- Valts kersre a loveshez! Es jobb klick^n")
  551. dpos += format(jpmotd[dpos],2047-dpos,"^n")
  552. dpos += format(jpmotd[dpos],2047-dpos,"- Bazooka hasznalata Job klick!^n^n")
  553. }
  554. else if(get_pcvar_num(cvar_jetpack) == 2){
  555. dpos += format(jpmotd[dpos],2047-dpos,"- A repuleshez nyomd a ctrl+spacet egybe!")
  556. dpos += format(jpmotd[dpos],2047-dpos,"^n")
  557. dpos += format(jpmotd[dpos],2047-dpos,"A raketa kiloveseert nyomd a Job kiclket^n^n")
  558. }
  559. dpos += format(jpmotd[dpos],2047-dpos,"INFO's^n")
  560. dpos += format(jpmotd[dpos],2047-dpos,"Max energia : <b>%i Units</b>^n^n", g_max)
  561. dpos += format(jpmotd[dpos],2047-dpos,"Jatpack repulesi sebessege %i 1masodperc. to work^n", g_lost)
  562. dpos += format(jpmotd[dpos],2047-dpos,"Energia ujratoltese %i . (when you are on the ground)^n^n", g_back)
  563. dpos += format(jpmotd[dpos],2047-dpos,"Raketa sebzese: <b>%i dmg</b>^n",g_dmg)
  564. dpos += format(jpmotd[dpos],2047-dpos,"New Rocket comes ervry <b>%i Sec.</b>^n^n", g_delay )
  565. dpos += format(jpmotd[dpos],2047-dpos,"-Hasznald egessegel!!^n")
  566.  
  567.  
  568. show_motd(id,jpmotd,title)
  569. }
  570.  
  571. public player_die() {
  572.  
  573. new id = read_data(2)
  574. if(hasjet[id]) {
  575. drop_jetpack(id)
  576. hasjet[id] = 0
  577. rocket[id] = false
  578. g_flyEnergy[id] = 0
  579. }
  580.  
  581. return PLUGIN_CONTINUE
  582. }
  583.  
  584. public cmdDrop(id) {
  585.  
  586. if(hasjet[id]) {
  587. new clip,ammo
  588. new weapon = get_user_weapon(id,clip,ammo)
  589. if(weapon == CSW_KNIFE) {
  590. drop_jetpack(id)
  591. if(!zp_get_user_zombie(id)){
  592. entity_set_string(id,EV_SZ_viewmodel,"models/v_knife.mdl")
  593. entity_set_string(id,EV_SZ_weaponmodel,"models/p_knife.mdl")
  594. }
  595. return PLUGIN_HANDLED
  596. }
  597. }
  598. return PLUGIN_CONTINUE
  599. }
  600.  
  601. public drop_jetpack(player) {
  602. if(hasjet[player]) {
  603. new Float:Aim[3],Float:origin[3]
  604. VelocityByAim(player, 64, Aim)
  605. entity_get_vector(player,EV_VEC_origin,origin)
  606.  
  607. origin[0] += Aim[0]
  608. origin[1] += Aim[1]
  609.  
  610. new jetpack = create_entity("info_target")
  611. entity_set_string(jetpack,EV_SZ_classname,"zp_jp_jetpack")
  612. entity_set_model(jetpack,"models/w_egon.mdl")
  613.  
  614. entity_set_size(jetpack,Float:{-16.0,-16.0,-16.0},Float:{16.0,16.0,16.0})
  615. entity_set_int(jetpack,EV_INT_solid,1)
  616.  
  617. entity_set_int(jetpack,EV_INT_movetype,6)
  618.  
  619. entity_set_vector(jetpack,EV_VEC_origin,origin)
  620.  
  621. Icon_Energy({255, 255, 0}, 0, player)
  622. Icon_Energy({128, 128, 0}, 0, player )
  623. Icon_Energy({0, 255, 0}, 0, player)
  624.  
  625. hasjet[player] = 0
  626. rocket[player] = false
  627. }
  628. }
  629.  
  630. public pfn_touch(ptr, ptd) {
  631. if(is_valid_ent(ptr)) {
  632. new classname[32]
  633. entity_get_string(ptr,EV_SZ_classname,classname,31)
  634.  
  635. if(equal(classname, "zp_jp_jetpack")) {
  636. if(is_valid_ent(ptd)) {
  637. new id = ptd
  638. if(id > 0 && id < 34) {
  639. if(!hasjet[id] && !zp_get_user_zombie(id) && is_user_alive(id)) {
  640.  
  641. hasjet[id] = 1
  642. g_flyEnergy[id] = get_pcvar_num(cvar_fly_max_engery)
  643. rocket[id] = true
  644. client_cmd(id,"spk items/gunpickup2.wav")
  645. engclient_cmd(id,"weapon_knife")
  646. switchmodel(id)
  647. remove_entity(ptr)
  648. }
  649. }
  650. }
  651. }else if(equal(classname, "zp_jp_rocket")) {
  652. new Float:fOrigin[3]
  653. new iOrigin[3]
  654. entity_get_vector(ptr, EV_VEC_origin, fOrigin)
  655. FVecIVec(fOrigin,iOrigin)
  656. jp_radius_damage(ptr)
  657.  
  658. message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
  659. write_byte(TE_EXPLOSION)
  660. write_coord(iOrigin[0])
  661. write_coord(iOrigin[1])
  662. write_coord(iOrigin[2])
  663. write_short(explosion)
  664. write_byte(30)
  665. write_byte(15)
  666. write_byte(0)
  667. message_end()
  668.  
  669. message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)
  670. write_byte(TE_BEAMCYLINDER)
  671. write_coord(iOrigin[0])
  672. write_coord(iOrigin[1])
  673. write_coord(iOrigin[2])
  674. write_coord(iOrigin[0])
  675. write_coord(iOrigin[1])
  676. write_coord(iOrigin[2]+200)
  677. write_short(white)
  678. write_byte(0)
  679. write_byte(1)
  680. write_byte(6)
  681. write_byte(8)
  682. write_byte(1)
  683. write_byte(255)
  684. write_byte(255)
  685. write_byte(192)
  686. write_byte(128)
  687. write_byte(5)
  688. message_end()
  689.  
  690. if(is_valid_ent(ptd)) {
  691. new classname2[32]
  692. entity_get_string(ptd,EV_SZ_classname,classname2,31)
  693.  
  694. if(equal(classname2,"func_breakable"))
  695. force_use(ptr,ptd)
  696. }
  697.  
  698. remove_entity(ptr)
  699. }
  700. }
  701. return PLUGIN_CONTINUE
  702. }
  703.  
  704. public zp_user_infected_pre(player, infector){
  705.  
  706. Icon_Energy({0, 255, 0}, 0, player);
  707. cmdDrop(player);
  708. hasjet[player] = 0;
  709. g_flyEnergy[player] = 0;
  710. rocket[player] = false;
  711. }
  712.  
  713. public zp_extra_item_selected(player, itemid){
  714.  
  715.  
  716. new clip,ammo
  717. new weapon = get_user_weapon(player,clip,ammo)
  718.  
  719. if (itemid == g_item_jetpack)
  720. {
  721. client_print(player, print_chat, "[ZP] ird be hogy /jphelp a jetpack segicseghez")
  722. hasjet[player] = 1
  723. g_flyEnergy[player] = get_pcvar_num(cvar_fly_max_engery)
  724. rocket[player] = true
  725. client_cmd(player,"spk items/gunpickup2.wav")
  726. if(weapon == CSW_KNIFE){
  727. switchmodel(player)
  728. }
  729. else
  730. {
  731. engclient_cmd(player,"weapon_knife"),switchmodel(player)
  732. }
  733. }
  734. }
  735.  
  736. stock jp_radius_damage(entity) {
  737. new id = entity_get_edict(entity,EV_ENT_owner)
  738. for(new i = 1; i < 33; i++) {
  739. if(is_user_alive(i)) {
  740. new dist = floatround(entity_range(entity,i))
  741.  
  742. if(dist <= get_pcvar_num(cvar_Dmg_range)) {
  743. new hp = get_user_health(i)
  744. new Float:damage = get_pcvar_float(cvar_RocketDmg)-(get_pcvar_float(cvar_RocketDmg)/get_pcvar_float(cvar_Dmg_range))*float(dist)
  745.  
  746. new Origin[3]
  747. get_user_origin(i,Origin)
  748.  
  749. if(zp_get_user_zombie(id) != zp_get_user_zombie(i)) {
  750. if(hp > damage)
  751. jp_take_damage(i,floatround(damage),Origin,DMG_BLAST)
  752. else
  753. log_kill(id,i,"Jetpack Rocket",0)
  754. }
  755. }
  756. }
  757. }
  758. }
  759.  
  760. stock log_kill(killer, victim, weapon[], headshot)
  761. {
  762. // code from MeRcyLeZZ
  763. set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
  764. ExecuteHamB(Ham_Killed, victim, killer, 2) // set last param to 2 if you want victim to gib
  765. set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
  766.  
  767.  
  768. message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))
  769. write_byte(killer)
  770. write_byte(victim)
  771. write_byte(headshot)
  772. write_string(weapon)
  773. message_end()
  774. //
  775.  
  776. if(get_user_team(killer)!=get_user_team(victim))
  777. set_user_frags(killer,get_user_frags(killer) +1)
  778. if(get_user_team(killer)==get_user_team(victim))
  779. set_user_frags(killer,get_user_frags(killer) -1)
  780.  
  781. new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10]
  782.  
  783. get_user_name(killer, kname, 31)
  784. get_user_team(killer, kteam, 9)
  785. get_user_authid(killer, kauthid, 31)
  786.  
  787. get_user_name(victim, vname, 31)
  788. get_user_team(victim, vteam, 9)
  789. get_user_authid(victim, vauthid, 31)
  790.  
  791. log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
  792. kname, get_user_userid(killer), kauthid, kteam,
  793. vname, get_user_userid(victim), vauthid, vteam, weapon)
  794.  
  795. return PLUGIN_CONTINUE;
  796. }
  797.  
  798. stock jp_take_damage(victim,damage,origin[3],bit) {
  799. message_begin(MSG_ONE,get_user_msgid("Damage"),{0,0,0},victim)
  800. write_byte(21)
  801. write_byte(20)
  802. write_long(bit)
  803. write_coord(origin[0])
  804. write_coord(origin[1])
  805. write_coord(origin[2])
  806. message_end()
  807.  
  808. set_user_health(victim,get_user_health(victim)-damage)
  809. }
  810.  
  811.  

_________________
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <amxmisc>
  4.  
  5. #define PLUGIN "NoName"
  6. #define VERSION "1.0"
  7. #define AUTHOR "FuRy"
  8.  


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 82 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