hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 304 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 304 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  [ 9 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.17. 09:31 
Offline
Senior Tag

Csatlakozott: 2013.05.22. 17:06
Hozzászólások: 205
Megköszönt másnak: 88 alkalommal
Üdv, lehet olyat csinálni egy zombival pl nincs bele írva hogy nemesis vagy assassin vagy zombi ne tudja azt a képességet ha letiltjuk ?

valaki tudja-e ? megosztaná velem ?

nagyon szükséges lenne köszönöm!.

_________________
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ás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.17. 09:40 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
Fertozeskor kerd le hogy Nemesis vagy assasin.

_________________
Idk. Csak ugy funbooo.
Kép

Ők köszönték meg DeteCT0R nek ezt a hozzászólást: nyalka17 (2014.09.17. 11:38)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.17. 11:38 
Offline
Senior Tag

Csatlakozott: 2013.05.22. 17:06
Hozzászólások: 205
Megköszönt másnak: 88 alkalommal
DeteCT0R írta:
Fertozeskor kerd le hogy Nemesis vagy assasin.



nem tudom főnők hát én még talán haladóban vagyok látom te érted miről van szó segítesz nekem?

hogyan kel le kérni ?

forrás kód vagy ilyesmi kell?

_________________
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ás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.17. 11:53 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
nyalka17 írta:
DeteCT0R írta:
Fertozeskor kerd le hogy Nemesis vagy assasin.



nem tudom főnők hát én még talán haladóban vagyok látom te érted miről van szó segítesz nekem?

hogyan kel le kérni ?

forrás kód vagy ilyesmi kell?

Forraskodnelkul max a yedi erommel ha latni fogom az sma-t.

Igen kell.

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.18. 13:10 
Offline
Senior Tag

Csatlakozott: 2013.05.22. 17:06
Hozzászólások: 205
Megköszönt másnak: 88 alkalommal
Tessék parancsolj detector.

Csatolmány:
zombi_class_zombi.sma [14.19 KiB]
Letöltve 76 alkalommal.

_________________
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ás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.18. 14:58 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
Tessek nem teszteltem.

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.18. 15:26 
Offline
Senior Tag

Csatlakozott: 2013.05.22. 17:06
Hozzászólások: 205
Megköszönt másnak: 88 alkalommal
Ugyan az minden semmi nem lett irva bele vagy csinaltal valamit benne? Le teszteltem lehet nemesisnek is meg assassinnak is . nem lett elirva valami?

_________________
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ás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.09.18. 15:44 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. /*================================================================================
  2.  
  3. -----------------------------------
  4. -*- [ZP] Zombie Flame -*-
  5. -----------------------------------
  6.  
  7. ~~~~~~~~~~~~~~~
  8. - Description -
  9. ~~~~~~~~~~~~~~~
  10.  
  11. Original by jtp10181, Upgraded to zp by LARP
  12. larp.source@gmail.com (Chile) Languaje spanish!
  13.  
  14. ================================================================================*/
  15.  
  16. #include <amxmodx>
  17. #include <amxmisc>
  18. #include <cstrike>
  19. #include <engine>
  20. #include <fakemeta>
  21. #include <fun>
  22. #include <zombieplague>
  23.  
  24.  
  25. new smoke
  26. new fire
  27. new burning
  28. new isburning[33]
  29. //new flame_count[33]
  30. new tkcount[33]
  31. new gmsgDeathMsg
  32. new gmsgScoreInfo
  33. new bool:flame[33]
  34.  
  35. // Zombi Atributes
  36. new const zclass_name[] = { "Tuzes" } // name
  37. new const zclass_info[] = { "Tuzetokad" } // description
  38. new const zclass_model[] = { "3" } // model
  39. new const zclass_clawmodel[] = { "1.mdl" } // claw model
  40. const zclass_health = 4100 // health
  41. const zclass_speed = 180 // speed
  42. const Float:zclass_gravity = 1.0 // gravity
  43. const Float:zclass_knockback = 1.0 // knockback
  44.  
  45. // Class IDs
  46. new g_zflame
  47.  
  48. // Zombie Classes MUST be registered on plugin_precache
  49. public plugin_precache()
  50. {
  51. fire = precache_model("sprites/explode1.spr")
  52. smoke = precache_model("sprites/steam1.spr")
  53. burning = precache_model("sprites/xfire.spr")
  54. precache_sound("ambience/burning1.wav")
  55. precache_sound("ambience/flameburst1.wav")
  56. precache_sound("scientist/c1a0_sci_catscream.wav")
  57. precache_sound("vox/_period.wav")
  58. precache_sound("player/headshot2.wav")
  59. // Register the new class and store ID for reference
  60. g_zflame = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
  61. }
  62.  
  63. public plugin_init()
  64. {
  65. register_plugin("[ZP] Zombie Flame", "1.2", "LARP")
  66. register_cvar("amx_flamethrower_tkpunish1", "0")
  67. register_cvar("amx_flamethrower_tkpunish2", "0")
  68. register_cvar("amx_fl_hp", "10")
  69. register_logevent("round_start", 2, "1=Round_Start")
  70. register_logevent("round_end", 2, "1=Round_End")
  71. register_forward(FM_PlayerPreThink,"FM_PreThink")
  72.  
  73. }
  74. // User Infected forward
  75. public zp_user_infected_post(id, infector)
  76. {
  77.  
  78. // Check if the infected player is using our custom zombie class
  79. if(zp_get_user_zombie_class(id) == g_zflame && zp_get_user_zombie(id) && !zp_get_user_nemesis(id))
  80. {
  81.  
  82. new cost = get_cvar_num("amx_fl_hp");
  83. cmd_flamita(id);
  84. client_print(id,print_chat,"[ZP] Ahhoz hogy tuzet tudj hanyni nyomj E betut. Minden egyes langcsovanal %d Hp-t vesztesz.", cost)
  85. flame[id]=true
  86. }
  87.  
  88. }
  89.  
  90. public cmd_flamita(id)
  91. {
  92. if (!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return PLUGIN_CONTINUE
  93. if (zp_get_user_zombie_class(id) == g_zflame)
  94. {
  95. fire_flamethrower(id)
  96. }
  97. return PLUGIN_HANDLED
  98. }
  99.  
  100. fire_flamethrower(id){
  101. if (!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id))
  102.  
  103.  
  104. emit_sound(id, CHAN_WEAPON, "ambience/flameburst1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  105. //client_cmd(id, "bind mouse3 lallamitaywea")
  106. new vec[3]
  107. new aimvec[3]
  108. new velocityvec[3]
  109. new length
  110. new speed = 10
  111. get_user_origin(id,vec)
  112. get_user_origin(id,aimvec,2)
  113. new dist = get_distance(vec,aimvec)
  114.  
  115. new speed1 = 160
  116. new speed2 = 350
  117. new radius = 105
  118.  
  119. if(dist < 50){
  120. radius = 0
  121. speed = 5
  122. }
  123. else if(dist < 150){
  124. speed1 = speed2 = 1
  125. speed = 5
  126. radius = 50
  127. }
  128. else if(dist < 200){
  129. speed1 = speed2 = 1
  130. speed = 5
  131. radius = 90
  132. }
  133. else if(dist < 250){
  134. speed1 = speed2 = 90
  135. speed = 6
  136. radius = 90
  137. }
  138. else if(dist < 300){
  139. speed1 = speed2 = 140
  140. speed = 7
  141. }
  142. else if(dist < 350){
  143. speed1 = speed2 = 190
  144. speed = 7
  145. }
  146. else if(dist < 400){
  147. speed1 = 150
  148. speed2 = 240
  149. speed = 8
  150. }
  151. else if(dist < 450){
  152. speed1 = 150
  153. speed2 = 290
  154. speed = 8
  155. }
  156. else if(dist < 500){
  157. speed1 = 180
  158. speed2 = 340
  159. speed = 9
  160. }
  161. else if(dist < 550){
  162. speed1 = 180
  163. speed2 = 340
  164. speed = 10
  165. }
  166. else if(dist < 600){
  167. speed1 = 250
  168. speed2 = 360
  169. speed = 11
  170. }
  171. else if(dist < 660){
  172. speed1 = 280
  173. speed2 = 390
  174. speed = 12
  175. }
  176. velocityvec[0]=aimvec[0]-vec[0]
  177. velocityvec[1]=aimvec[1]-vec[1]
  178. velocityvec[2]=aimvec[2]-vec[2]
  179. length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
  180. velocityvec[0]=velocityvec[0]*speed/length
  181. velocityvec[1]=velocityvec[1]*speed/length
  182. velocityvec[2]=velocityvec[2]*speed/length
  183.  
  184. new args[8]
  185. args[0] = vec[0]
  186. args[1] = vec[1]
  187. args[2] = vec[2]
  188. args[3] = velocityvec[0]
  189. args[4] = velocityvec[1]
  190. args[5] = velocityvec[2]
  191. set_task(0.1,"te_spray",0,args,8,"a",2)
  192. check_burnzone(id,vec,aimvec,speed1,speed2,radius)
  193. //set_task(0.5,"client_bind",id)
  194.  
  195. return PLUGIN_CONTINUE
  196. }
  197.  
  198.  
  199.  
  200. public te_spray(args[]){
  201.  
  202. //TE_SPRAY
  203. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  204. write_byte (120) // Throws a shower of sprites or models
  205. write_coord(args[0]) // start pos
  206. write_coord(args[1])
  207. write_coord(args[2])
  208. write_coord(args[3]) // velocity
  209. write_coord(args[4])
  210. write_coord(args[5])
  211. write_short (fire) // spr
  212. write_byte (8) // count
  213. write_byte (70) // speed
  214. write_byte (100) //(noise)
  215. write_byte (5) // (rendermode)
  216. message_end()
  217.  
  218. return PLUGIN_CONTINUE
  219. }
  220.  
  221.  
  222. public sqrt(num) {
  223. new div = num
  224. new result = 1
  225. while (div > result) { // end when div == result, or just below
  226. div = (div + result) / 2 // take mean value as new divisor
  227. result = num / div
  228. }
  229. return div
  230. }
  231.  
  232. check_burnzone(id,vec[],aimvec[],speed1,speed2,radius){
  233. new maxplayers = get_maxplayers()+1
  234. new tid, tbody
  235. get_user_aiming(id,tid,tbody,550)
  236. if((tid > 0) && (tid < maxplayers)){
  237. burn_victim(tid,id,0)
  238. /*if(cvar_exists("mp_friendlyfire")){
  239. new ffcvar = get_cvar_num("mp_friendlyfire")
  240. if( (ffcvar == 0) || ((ffcvar == 1) && (get_cvar_num("amx_flamethrower_obeyffcvar") == 0)) ){
  241. if(get_user_team(tid) != get_user_team(id))
  242. burn_victim(tid,id,1)
  243. }
  244. else {
  245. if(get_user_team(tid) == get_user_team(id))
  246. burn_victim(tid,id,1)
  247. else
  248. burn_victim(tid,id,1)
  249. }
  250. }else{
  251. burn_victim(tid,id,0)
  252. }*/
  253. }
  254.  
  255. new burnvec1[3],burnvec2[3],length1
  256.  
  257. burnvec1[0]=aimvec[0]-vec[0]
  258. burnvec1[1]=aimvec[1]-vec[1]
  259. burnvec1[2]=aimvec[2]-vec[2]
  260.  
  261. length1=sqrt(burnvec1[0]*burnvec1[0]+burnvec1[1]*burnvec1[1]+burnvec1[2]*burnvec1[2])
  262. burnvec2[0]=burnvec1[0]*speed2/length1
  263. burnvec2[1]=burnvec1[1]*speed2/length1
  264. burnvec2[2]=burnvec1[2]*speed2/length1
  265. burnvec1[0]=burnvec1[0]*speed1/length1
  266. burnvec1[1]=burnvec1[1]*speed1/length1
  267. burnvec1[2]=burnvec1[2]*speed1/length1
  268. burnvec1[0] += vec[0]
  269. burnvec1[1] += vec[1]
  270. burnvec1[2] += vec[2]
  271. burnvec2[0] += vec[0]
  272. burnvec2[1] += vec[1]
  273. burnvec2[2] += vec[2]
  274.  
  275. new origin[3]
  276. for (new i=1; i<=maxplayers; i++) {
  277. if(cvar_exists("mp_friendlyfire")){
  278. new ffcvar = get_cvar_num("mp_friendlyfire")
  279. if( (ffcvar == 0) || ((ffcvar == 1) && (get_cvar_num("amx_flamethrower_obeyffcvar") == 0)) ){
  280. if(get_user_team(i) != get_user_team(id)){
  281. if((is_user_alive(i) == 1) && (i != id)){
  282. get_user_origin(i,origin)
  283. if(get_distance(origin,burnvec1) < radius)
  284. burn_victim(i,id,1)
  285. else if(get_distance(origin,burnvec2) < radius)
  286. burn_victim(i,id,1)
  287. }
  288. }
  289.  
  290. }
  291. else {
  292. if((is_user_alive(i) == 1) && (i != id)){
  293. get_user_origin(i,origin)
  294. if(get_user_team(i) == get_user_team(id)){
  295. if(get_distance(origin,burnvec1) < radius)
  296. burn_victim(i,id,1)
  297. else if(get_distance(origin,burnvec2) < radius)
  298. burn_victim(i,id,1)
  299. }else{
  300. if(get_distance(origin,burnvec1) < radius)
  301. burn_victim(i,id,1)
  302. else if(get_distance(origin,burnvec2) < radius)
  303. burn_victim(i,id,1)
  304. }
  305. }
  306. }
  307. }
  308. else {
  309. if((is_user_alive(i) == 1) && (i != id)){
  310. get_user_origin(i,origin)
  311. if(get_distance(origin,burnvec1) < radius)
  312. burn_victim(i,id,1)
  313. else if(get_distance(origin,burnvec2) < radius)
  314. burn_victim(i,id,1)
  315.  
  316. }
  317. }
  318. }
  319. return PLUGIN_CONTINUE
  320. }
  321.  
  322. burn_victim(id,killer,tk){
  323. if(isburning[id] == 1)
  324. return PLUGIN_CONTINUE
  325.  
  326. isburning[id] = 1
  327.  
  328. emit_sound(id, CHAN_ITEM, "ambience/burning1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  329.  
  330. new hp,args[4]
  331. hp = get_user_health(id)
  332. if(hp > 250)
  333. hp = 250
  334. args[0] = id
  335. args[1] = killer
  336. args[2] = tk
  337. set_task(0.3,"on_fire",451,args,4,"a",hp / 10)
  338. set_task(0.7,"fire_scream",0,args,4)
  339. set_task(5.5,"stop_firesound",0,args,4)
  340.  
  341. if(tk == 1){
  342. new namea[32]
  343. get_user_name(killer,namea,31)
  344. new teama[32]
  345. get_user_team(killer,teama,31)
  346. new players[32],pNum
  347. get_players(players,pNum,"e",teama)
  348. for(new i=0;i<pNum;i++)
  349. //client_print(players[i],print_chat,"%s megtamadta a csapattarsat",namea)
  350. client_print(players[i],print_chat,"",namea)
  351. new punish1 = get_cvar_num("amx_flamethrower_tkpunish1")
  352. new punish2 = get_cvar_num("amx_flamethrower_tkpunish2")
  353. if(punish1 > 2){
  354. user_kill(killer,0)
  355. //set_hudmessage(255,50,50, -1.0, 0.45, 0, 0.02, 10.0, 1.01, 1.1, 16)
  356. //show_hudmessage(killer,"Meg haltal^nMert megtamadtad a csapattarsadat.^nHalott vagy!")
  357. server_cmd("echo Plugin By LARP^^!", tk)
  358. }
  359.  
  360. tkcount[killer] +=1
  361. if((punish1) && (tkcount[killer] > punish2 - 1)){
  362. if(punish1 == 1 || punish1 == 3)
  363. server_cmd("echo Plugin By LARP^^!")
  364. else if(punish1 == 2 || punish1 == 4){
  365. server_cmd("echo Plugin By LARP^^!")
  366. new authida[35]
  367. get_user_authid(killer,authida,34)
  368. if (equal("4294967295",authida)){
  369. new ipa[32]
  370. get_user_ip(killer,ipa,31,1)
  371. server_cmd("echo Plugin By LARP^^!")
  372. }else{
  373. server_cmd("echo Plugin By LARP^^!")
  374. }
  375. }
  376. }
  377. }
  378. return PLUGIN_CONTINUE
  379. }
  380.  
  381. public on_fire(args[]){
  382.  
  383. new hp,rx,ry,rz,forigin[3]
  384. new id = args[0]
  385. new killer = args[1]
  386. new tk = args[2]
  387.  
  388. if(isburning[id] == 0)
  389. return PLUGIN_CONTINUE
  390.  
  391. rx = random_num(-30,30)
  392. ry = random_num(-30,30)
  393. rz = random_num(-30,30)
  394. get_user_origin(id,forigin)
  395.  
  396. //TE_SPRITE - additive sprite, plays 1 cycle
  397. message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  398. write_byte( 17 )
  399. write_coord(forigin[0]+rx) // coord, coord, coord (position)
  400. write_coord(forigin[1]+ry)
  401. write_coord(forigin[2]+10+rz)
  402. write_short( burning ) // short (sprite index)
  403. write_byte( 30 ) // byte (scale in 0.1's)
  404. write_byte( 200 ) // byte (brightness)
  405. message_end()
  406.  
  407. //Smoke
  408. message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  409. write_byte( 5 )
  410. write_coord(forigin[0]+(rx*2)) // coord, coord, coord (position)
  411. write_coord(forigin[1]+(ry*2))
  412. write_coord(forigin[2]+100+(rz*2))
  413. write_short( smoke )// short (sprite index)
  414. write_byte( 60 ) // byte (scale in 0.1's)
  415. write_byte( 15 ) // byte (framerate)
  416. message_end()
  417.  
  418. if(is_user_alive(id) == 0)
  419. return PLUGIN_CONTINUE
  420.  
  421. hp = get_user_health(id)
  422.  
  423. if((hp - 10) > 0){
  424. set_user_health(id,hp - 8)
  425. }
  426. else {
  427.  
  428. new namek[32],namev[32],authida[35],authidv[35],teama[32],teamv[32]
  429. get_user_name(id,namev,31)
  430. get_user_name(killer,namek,31)
  431. get_user_authid(id,authidv,34)
  432. get_user_authid(killer,authida,34)
  433. get_user_team(id,teamv,31)
  434. get_user_team(killer,teama,31)
  435.  
  436. //Log the Kill
  437. //log_message("^"%s<%d><%s><%s>^" megolve ^"%s<%d><%s><%s>^" a ^"tuzhanyas altal^"",
  438. //namek,get_user_userid(killer),authida,teama,namev,get_user_userid(id),authidv,teamv)
  439.  
  440. //Print message to clients
  441. //client_print(id,print_chat,"[AMXX] Megoltek teged %s's a Tuz hanyasoddal.",namek)
  442. //client_print(killer,print_chat,"[AMXX] Te megolted %s a Tuz Hanyasoddal.",namev)
  443. user_kill(id,0)
  444.  
  445. if(tk == 1){
  446. //client_print(killer,print_center,"Megolted a csapat tarsadat")
  447. server_cmd("echo Plugin By LARP^^!")
  448. }
  449. else{
  450. server_cmd("echo Plugin By LARP^^!")
  451. }
  452.  
  453. //Makes them stop burning
  454. isburning[id] = 0
  455.  
  456. //Update killers scorboard with new info
  457. message_begin(MSG_ALL,gmsgScoreInfo)
  458. write_byte(killer)
  459. write_short(get_user_frags(killer))
  460. write_short(get_user_deaths(killer))
  461. write_short(0)
  462. write_short(get_user_team(killer))
  463. message_end()
  464.  
  465. //Update victims scoreboard with correct info
  466. message_begin(MSG_ALL,gmsgScoreInfo)
  467. write_byte(id)
  468. write_short(get_user_frags(id))
  469. write_short(get_user_deaths(id))
  470. write_short(0)
  471. write_short(get_user_team(id))
  472. message_end()
  473.  
  474. //Replaced HUD death message
  475. message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
  476. write_byte(killer)
  477. write_byte(id)
  478. write_byte(0)
  479. write_string("flamethrower")
  480. message_end()
  481.  
  482. }
  483. return PLUGIN_CONTINUE
  484. }
  485.  
  486. public fire_scream(args[]){
  487. emit_sound(args[0], CHAN_AUTO, "player/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  488. return PLUGIN_CONTINUE
  489. }
  490.  
  491. public stop_firesound(args[]){
  492. isburning[args[0]] = 0
  493. emit_sound(args[0], CHAN_ITEM, "vox/_period.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  494. return PLUGIN_CONTINUE
  495. }
  496.  
  497. public client_connect(id){
  498. flame[id]=false
  499. return PLUGIN_CONTINUE
  500. }
  501.  
  502. public client_disconnect(id){
  503. flame[id]=false
  504. return PLUGIN_CONTINUE
  505. }
  506.  
  507. public round_start(id) {
  508. /*for (new k = 1; k <= get_maxplayers(); k++) {
  509. isburning[k] = 0
  510. new freeF = get_cvar_num("amx_flamethrower_free")
  511. if(freeF > 0)
  512. flame_count[k] = freeF
  513. }*/
  514. flame[id]=false
  515. }
  516. public round_end(id) {
  517. flame[id]=false
  518. }
  519.  
  520.  
  521.  
  522. public plugin_modules()
  523. {
  524. require_module("fun")
  525. require_module("engine")
  526. require_module("Counter-Strike")
  527.  
  528. }
  529.  
  530. public FM_PreThink(id)
  531. {
  532. if(!is_user_alive(id) || !zp_get_user_zombie(id)) return PLUGIN_CONTINUE
  533. new fl_cost = get_cvar_num("amx_fl_hp");
  534. new armr = get_user_health(id);
  535. new nzbut = get_user_button(id)
  536. new ozbut = get_user_oldbutton(id)
  537. if((zp_get_user_zombie_class(id) == g_zflame) && (nzbut & IN_USE) && !(ozbut & IN_USE))
  538. //static name[32]
  539. if(flame[id])
  540. {
  541. if(armr < fl_cost)
  542. {
  543. client_print(id,print_chat,"[ZP] Vigyazz!, Hamarosan meg fogsz halni ha folytatod a tuz hanyast!")
  544. return PLUGIN_HANDLED
  545. }
  546. set_user_health(id ,armr - fl_cost);
  547. fire_flamethrower(id);
  548. }
  549. else{
  550. if((nzbut & IN_USE) && (get_entity_flags(id) & FL_ONGROUND))
  551. flame[id]=false
  552. }
  553. return PLUGIN_CONTINUE
  554. }
  555.  


Most remelem megy. Assasinra nemis fog mert fingom sincs millyen zpt hasznalsz.

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zombie Class letiltás?
HozzászólásElküldve: 2014.11.03. 04:33 
Offline
Senior Tag

Csatlakozott: 2013.05.22. 17:06
Hozzászólások: 205
Megköszönt másnak: 88 alkalommal
DeteCT0R írta:
SMA Forráskód: [ Mindet kijelol ]/*================================================================================
 
-----------------------------------
-*- [ZP] Zombie Flame -*-
-----------------------------------
 
~~~~~~~~~~~~~~~
- Description -
~~~~~~~~~~~~~~~
 
Original by jtp10181, Upgraded to zp by LARP
larp.source@gmail.com (Chile) Languaje spanish!
 
================================================================================*/
 
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <zombieplague>
 
 
new smoke
new fire
new burning
new isburning[33]
//new flame_count[33]
new tkcount[33]
new gmsgDeathMsg
new gmsgScoreInfo
new bool:flame[33]
 
// Zombi Atributes
new const zclass_name[] = { "Tuzes" } // name
new const zclass_info[] = { "Tuzetokad" } // description
new const zclass_model[] = { "3" } // model
new const zclass_clawmodel[] = { "1.mdl" } // claw model
const zclass_health = 4100 // health
const zclass_speed = 180 // speed
const Float:zclass_gravity = 1.0 // gravity
const Float:zclass_knockback = 1.0 // knockback
 
// Class IDs
new g_zflame
 
// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
fire = precache_model("sprites/explode1.spr")
smoke = precache_model("sprites/steam1.spr")
burning = precache_model("sprites/xfire.spr")
precache_sound("ambience/burning1.wav")
precache_sound("ambience/flameburst1.wav")
precache_sound("scientist/c1a0_sci_catscream.wav")
precache_sound("vox/_period.wav")
precache_sound("player/headshot2.wav")
// Register the new class and store ID for reference
g_zflame = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
}
 
public plugin_init()
{
register_plugin("[ZP] Zombie Flame", "1.2", "LARP")
register_cvar("amx_flamethrower_tkpunish1", "0")
register_cvar("amx_flamethrower_tkpunish2", "0")
register_cvar("amx_fl_hp", "10")
register_logevent("round_start", 2, "1=Round_Start")
register_logevent("round_end", 2, "1=Round_End")
register_forward(FM_PlayerPreThink,"FM_PreThink")
 
}
// User Infected forward
public zp_user_infected_post(id, infector)
{
 
// Check if the infected player is using our custom zombie class
if(zp_get_user_zombie_class(id) == g_zflame && zp_get_user_zombie(id) && !zp_get_user_nemesis(id))
{
 
new cost = get_cvar_num("amx_fl_hp");
cmd_flamita(id);
client_print(id,print_chat,"[ZP] Ahhoz hogy tuzet tudj hanyni nyomj E betut. Minden egyes langcsovanal %d Hp-t vesztesz.", cost)
flame[id]=true
}
 
}
 
public cmd_flamita(id)
{
if (!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return PLUGIN_CONTINUE
if (zp_get_user_zombie_class(id) == g_zflame)
{
fire_flamethrower(id)
}
return PLUGIN_HANDLED
}
 
fire_flamethrower(id){
if (!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id))
 
 
emit_sound(id, CHAN_WEAPON, "ambience/flameburst1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
//client_cmd(id, "bind mouse3 lallamitaywea")
new vec[3]
new aimvec[3]
new velocityvec[3]
new length
new speed = 10
get_user_origin(id,vec)
get_user_origin(id,aimvec,2)
new dist = get_distance(vec,aimvec)
 
new speed1 = 160
new speed2 = 350
new radius = 105
 
if(dist < 50){
radius = 0
speed = 5
}
else if(dist < 150){
speed1 = speed2 = 1
speed = 5
radius = 50
}
else if(dist < 200){
speed1 = speed2 = 1
speed = 5
radius = 90
}
else if(dist < 250){
speed1 = speed2 = 90
speed = 6
radius = 90
}
else if(dist < 300){
speed1 = speed2 = 140
speed = 7
}
else if(dist < 350){
speed1 = speed2 = 190
speed = 7
}
else if(dist < 400){
speed1 = 150
speed2 = 240
speed = 8
}
else if(dist < 450){
speed1 = 150
speed2 = 290
speed = 8
}
else if(dist < 500){
speed1 = 180
speed2 = 340
speed = 9
}
else if(dist < 550){
speed1 = 180
speed2 = 340
speed = 10
}
else if(dist < 600){
speed1 = 250
speed2 = 360
speed = 11
}
else if(dist < 660){
speed1 = 280
speed2 = 390
speed = 12
}
velocityvec[0]=aimvec[0]-vec[0]
velocityvec[1]=aimvec[1]-vec[1]
velocityvec[2]=aimvec[2]-vec[2]
length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
velocityvec[0]=velocityvec[0]*speed/length
velocityvec[1]=velocityvec[1]*speed/length
velocityvec[2]=velocityvec[2]*speed/length
 
new args[8]
args[0] = vec[0]
args[1] = vec[1]
args[2] = vec[2]
args[3] = velocityvec[0]
args[4] = velocityvec[1]
args[5] = velocityvec[2]
set_task(0.1,"te_spray",0,args,8,"a",2)
check_burnzone(id,vec,aimvec,speed1,speed2,radius)
//set_task(0.5,"client_bind",id)
 
return PLUGIN_CONTINUE
}
 
 
 
public te_spray(args[]){
 
//TE_SPRAY
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (120) // Throws a shower of sprites or models
write_coord(args[0]) // start pos
write_coord(args[1])
write_coord(args[2])
write_coord(args[3]) // velocity
write_coord(args[4])
write_coord(args[5])
write_short (fire) // spr
write_byte (8) // count
write_byte (70) // speed
write_byte (100) //(noise)
write_byte (5) // (rendermode)
message_end()
 
return PLUGIN_CONTINUE
}
 
 
public sqrt(num) {
new div = num
new result = 1
while (div > result) { // end when div == result, or just below
div = (div + result) / 2 // take mean value as new divisor
result = num / div
}
return div
}
 
check_burnzone(id,vec[],aimvec[],speed1,speed2,radius){
new maxplayers = get_maxplayers()+1
new tid, tbody
get_user_aiming(id,tid,tbody,550)
if((tid > 0) && (tid < maxplayers)){
burn_victim(tid,id,0)
/*if(cvar_exists("mp_friendlyfire")){
new ffcvar = get_cvar_num("mp_friendlyfire")
if( (ffcvar == 0) || ((ffcvar == 1) && (get_cvar_num("amx_flamethrower_obeyffcvar") == 0)) ){
if(get_user_team(tid) != get_user_team(id))
burn_victim(tid,id,1)
}
else {
if(get_user_team(tid) == get_user_team(id))
burn_victim(tid,id,1)
else
burn_victim(tid,id,1)
}
}else{
burn_victim(tid,id,0)
}*/
}
 
new burnvec1[3],burnvec2[3],length1
 
burnvec1[0]=aimvec[0]-vec[0]
burnvec1[1]=aimvec[1]-vec[1]
burnvec1[2]=aimvec[2]-vec[2]
 
length1=sqrt(burnvec1[0]*burnvec1[0]+burnvec1[1]*burnvec1[1]+burnvec1[2]*burnvec1[2])
burnvec2[0]=burnvec1[0]*speed2/length1
burnvec2[1]=burnvec1[1]*speed2/length1
burnvec2[2]=burnvec1[2]*speed2/length1
burnvec1[0]=burnvec1[0]*speed1/length1
burnvec1[1]=burnvec1[1]*speed1/length1
burnvec1[2]=burnvec1[2]*speed1/length1
burnvec1[0] += vec[0]
burnvec1[1] += vec[1]
burnvec1[2] += vec[2]
burnvec2[0] += vec[0]
burnvec2[1] += vec[1]
burnvec2[2] += vec[2]
 
new origin[3]
for (new i=1; i<=maxplayers; i++) {
if(cvar_exists("mp_friendlyfire")){
new ffcvar = get_cvar_num("mp_friendlyfire")
if( (ffcvar == 0) || ((ffcvar == 1) && (get_cvar_num("amx_flamethrower_obeyffcvar") == 0)) ){
if(get_user_team(i) != get_user_team(id)){
if((is_user_alive(i) == 1) && (i != id)){
get_user_origin(i,origin)
if(get_distance(origin,burnvec1) < radius)
burn_victim(i,id,1)
else if(get_distance(origin,burnvec2) < radius)
burn_victim(i,id,1)
}
}
 
}
else {
if((is_user_alive(i) == 1) && (i != id)){
get_user_origin(i,origin)
if(get_user_team(i) == get_user_team(id)){
if(get_distance(origin,burnvec1) < radius)
burn_victim(i,id,1)
else if(get_distance(origin,burnvec2) < radius)
burn_victim(i,id,1)
}else{
if(get_distance(origin,burnvec1) < radius)
burn_victim(i,id,1)
else if(get_distance(origin,burnvec2) < radius)
burn_victim(i,id,1)
}
}
}
}
else {
if((is_user_alive(i) == 1) && (i != id)){
get_user_origin(i,origin)
if(get_distance(origin,burnvec1) < radius)
burn_victim(i,id,1)
else if(get_distance(origin,burnvec2) < radius)
burn_victim(i,id,1)
 
}
}
}
return PLUGIN_CONTINUE
}
 
burn_victim(id,killer,tk){
if(isburning[id] == 1)
return PLUGIN_CONTINUE
 
isburning[id] = 1
 
emit_sound(id, CHAN_ITEM, "ambience/burning1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
 
new hp,args[4]
hp = get_user_health(id)
if(hp > 250)
hp = 250
args[0] = id
args[1] = killer
args[2] = tk
set_task(0.3,"on_fire",451,args,4,"a",hp / 10)
set_task(0.7,"fire_scream",0,args,4)
set_task(5.5,"stop_firesound",0,args,4)
 
if(tk == 1){
new namea[32]
get_user_name(killer,namea,31)
new teama[32]
get_user_team(killer,teama,31)
new players[32],pNum
get_players(players,pNum,"e",teama)
for(new i=0;i<pNum;i++)
//client_print(players[i],print_chat,"%s megtamadta a csapattarsat",namea)
client_print(players[i],print_chat,"",namea)
new punish1 = get_cvar_num("amx_flamethrower_tkpunish1")
new punish2 = get_cvar_num("amx_flamethrower_tkpunish2")
if(punish1 > 2){
user_kill(killer,0)
//set_hudmessage(255,50,50, -1.0, 0.45, 0, 0.02, 10.0, 1.01, 1.1, 16)
//show_hudmessage(killer,"Meg haltal^nMert megtamadtad a csapattarsadat.^nHalott vagy!")
server_cmd("echo Plugin By LARP^^!", tk)
}
 
tkcount[killer] +=1
if((punish1) && (tkcount[killer] > punish2 - 1)){
if(punish1 == 1 || punish1 == 3)
server_cmd("echo Plugin By LARP^^!")
else if(punish1 == 2 || punish1 == 4){
server_cmd("echo Plugin By LARP^^!")
new authida[35]
get_user_authid(killer,authida,34)
if (equal("4294967295",authida)){
new ipa[32]
get_user_ip(killer,ipa,31,1)
server_cmd("echo Plugin By LARP^^!")
}else{
server_cmd("echo Plugin By LARP^^!")
}
}
}
}
return PLUGIN_CONTINUE
}
 
public on_fire(args[]){
 
new hp,rx,ry,rz,forigin[3]
new id = args[0]
new killer = args[1]
new tk = args[2]
 
if(isburning[id] == 0)
return PLUGIN_CONTINUE
 
rx = random_num(-30,30)
ry = random_num(-30,30)
rz = random_num(-30,30)
get_user_origin(id,forigin)
 
//TE_SPRITE - additive sprite, plays 1 cycle
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 17 )
write_coord(forigin[0]+rx) // coord, coord, coord (position)
write_coord(forigin[1]+ry)
write_coord(forigin[2]+10+rz)
write_short( burning ) // short (sprite index)
write_byte( 30 ) // byte (scale in 0.1's)
write_byte( 200 ) // byte (brightness)
message_end()
 
//Smoke
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 5 )
write_coord(forigin[0]+(rx*2)) // coord, coord, coord (position)
write_coord(forigin[1]+(ry*2))
write_coord(forigin[2]+100+(rz*2))
write_short( smoke )// short (sprite index)
write_byte( 60 ) // byte (scale in 0.1's)
write_byte( 15 ) // byte (framerate)
message_end()
 
if(is_user_alive(id) == 0)
return PLUGIN_CONTINUE
 
hp = get_user_health(id)
 
if((hp - 10) > 0){
set_user_health(id,hp - 8)
}
else {
 
new namek[32],namev[32],authida[35],authidv[35],teama[32],teamv[32]
get_user_name(id,namev,31)
get_user_name(killer,namek,31)
get_user_authid(id,authidv,34)
get_user_authid(killer,authida,34)
get_user_team(id,teamv,31)
get_user_team(killer,teama,31)
 
//Log the Kill
//log_message("^"%s<%d><%s><%s>^" megolve ^"%s<%d><%s><%s>^" a ^"tuzhanyas altal^"",
//namek,get_user_userid(killer),authida,teama,namev,get_user_userid(id),authidv,teamv)
 
//Print message to clients
//client_print(id,print_chat,"[AMXX] Megoltek teged %s's a Tuz hanyasoddal.",namek)
//client_print(killer,print_chat,"[AMXX] Te megolted %s a Tuz Hanyasoddal.",namev)
user_kill(id,0)
 
if(tk == 1){
//client_print(killer,print_center,"Megolted a csapat tarsadat")
server_cmd("echo Plugin By LARP^^!")
}
else{
server_cmd("echo Plugin By LARP^^!")
}
 
//Makes them stop burning
isburning[id] = 0
 
//Update killers scorboard with new info
message_begin(MSG_ALL,gmsgScoreInfo)
write_byte(killer)
write_short(get_user_frags(killer))
write_short(get_user_deaths(killer))
write_short(0)
write_short(get_user_team(killer))
message_end()
 
//Update victims scoreboard with correct info
message_begin(MSG_ALL,gmsgScoreInfo)
write_byte(id)
write_short(get_user_frags(id))
write_short(get_user_deaths(id))
write_short(0)
write_short(get_user_team(id))
message_end()
 
//Replaced HUD death message
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(killer)
write_byte(id)
write_byte(0)
write_string("flamethrower")
message_end()
 
}
return PLUGIN_CONTINUE
}
 
public fire_scream(args[]){
emit_sound(args[0], CHAN_AUTO, "player/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_CONTINUE
}
 
public stop_firesound(args[]){
isburning[args[0]] = 0
emit_sound(args[0], CHAN_ITEM, "vox/_period.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_CONTINUE
}
 
public client_connect(id){
flame[id]=false
return PLUGIN_CONTINUE
}
 
public client_disconnect(id){
flame[id]=false
return PLUGIN_CONTINUE
}
 
public round_start(id) {
/*for (new k = 1; k <= get_maxplayers(); k++) {
isburning[k] = 0
new freeF = get_cvar_num("amx_flamethrower_free")
if(freeF > 0)
flame_count[k] = freeF
}*/
flame[id]=false
}
public round_end(id) {
flame[id]=false
}
 
 
 
public plugin_modules()
{
require_module("fun")
require_module("engine")
require_module("Counter-Strike")
 
}
 
public FM_PreThink(id)
{
if(!is_user_alive(id) || !zp_get_user_zombie(id)) return PLUGIN_CONTINUE
new fl_cost = get_cvar_num("amx_fl_hp");
new armr = get_user_health(id);
new nzbut = get_user_button(id)
new ozbut = get_user_oldbutton(id)
if((zp_get_user_zombie_class(id) == g_zflame) && (nzbut & IN_USE) && !(ozbut & IN_USE))
//static name[32]
if(flame[id])
{
if(armr < fl_cost)
{
client_print(id,print_chat,"[ZP] Vigyazz!, Hamarosan meg fogsz halni ha folytatod a tuz hanyast!")
return PLUGIN_HANDLED
}
set_user_health(id ,armr - fl_cost);
fire_flamethrower(id);
}
else{
if((nzbut & IN_USE) && (get_entity_flags(id) & FL_ONGROUND))
flame[id]=false
}
return PLUGIN_CONTINUE
}
 

Most remelem megy. Assasinra nemis fog mert fingom sincs millyen zpt hasznalsz.


nem jó :(

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


Ki van itt

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