hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.01. 08:00



Jelenlévő felhasználók

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

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

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

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



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

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17:02 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.06.11. 13:32
Hozzászólások: 254
Megköszönt másnak: 31 alkalommal
Megköszönték neki: 2 alkalommal
valaki kiveszi nekem belőle azt, hogy a jetpack maga után tüzet ne hagyjon? csak mert nem tudom, de szerintem ettől laggolok de nagyon.. felszállok és 150es ping.. o.O

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


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17:19 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Akkor sürgősen vegyél egy új gépet...

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17: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
A plugin nem fut rendesen 5.0.8-on az a baj.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17:28 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Tomos írta:
A plugin nem fut rendesen 5.0.8-on az a baj.


Az biztos, hogy nem.
Mindig az 5.0.8 használom és minden tökéletesen fut.
Szóval biztos, hogy nem az a hiba.

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17:29 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.06.11. 13:32
Hozzászólások: 254
Megköszönt másnak: 31 alkalommal
Megköszönték neki: 2 alkalommal
pixxa112 írta:
Tomos írta:
A plugin nem fut rendesen 5.0.8-on az a baj.


Az biztos, hogy nem.
Mindig az 5.0.8 használom és minden tökéletesen fut.
Szóval biztos, hogy nem az a hiba.



nemtudom hogy más laggol-e tőle, de én igen ha felszállok 150es ping


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17:30 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
ltscavo írta:
pixxa112 írta:
Tomos írta:
A plugin nem fut rendesen 5.0.8-on az a baj.


Az biztos, hogy nem.
Mindig az 5.0.8 használom és minden tökéletesen fut.
Szóval biztos, hogy nem az a hiba.



nemtudom hogy más laggol-e tőle, de én igen ha felszállok 150es ping


nekem még akkor 5-10 között mozog a pingem.
Szóval ott nálad van gebasz.

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JETPACK sprite
HozzászólásElküldve: 2013.07.16. 17:44 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.06.11. 13:32
Hozzászólások: 254
Megköszönt másnak: 31 alkalommal
Megköszönték neki: 2 alkalommal
meglehet:( bár fpsem 99


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


Ki van itt

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