hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.09. 13:21



Jelenlévő felhasználók

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

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-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ás témája: [ZP] Jetpack + Bazooka
HozzászólásElküldve: 2013.08.14. 22:20 
Offline
Félisten

Csatlakozott: 2012.06.19. 15:12
Hozzászólások: 926
Megköszönt másnak: 109 alkalommal
Megköszönték neki: 31 alkalommal
Valaki javítaná ez a jetpack + bazooka plugint.

L 08/14/2013 - 14:44:33: [ZP] Invalid Player (30)
L 08/14/2013 - 14:44:33: [AMXX] Displaying debug trace (plugin "zp50_bazooka_jetpack.amxx")
L 08/14/2013 - 14:44:33: [AMXX] Run time error 10: native error (native "zp_core_is_zombie")
L 08/14/2013 - 14:44:33: [AMXX] [0] 51d9673b539f2.sma::pfn_touch (line 598)

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

_________________
Kép


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