Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. OnDestroyed = function(ent)
  2. local gib = ent.Gib
  3. if !IsValid(gib) then return end
  4.  
  5. local pos,ang,skin,pitch,yaw = gib:GetPos(),gib:GetAngles(),gib:GetSkin(),ent:GetPoseParameter("turret_pitch"),ent:GetPoseParameter("spin_tower")
  6. gib:SetPoseParameter("turret_pitch",pitch)
  7. gib:SetPoseParameter("turret_yaw",yaw)
  8.  
  9. local function CreateAmmoFire(gib,ang)
  10. local bonepos = gib:GetBonePosition(gib:LookupBone("turret_yaw"))
  11. gib.AmmoFire = ents.Create("info_particle_system")
  12. gib.AmmoFire:SetKeyValue("effect_name","flame_jet")
  13. gib.AmmoFire:SetKeyValue("start_active",1)
  14. gib.AmmoFire:SetOwner(gib)
  15. gib.AmmoFire:SetPos(bonepos)
  16. gib.AmmoFire:SetAngles(ang)
  17. gib.AmmoFire:Spawn()
  18. gib.AmmoFire:Activate()
  19. gib.AmmoFire:SetParent(gib)
  20.  
  21. gib.AmmoFireSound = CreateSound(gib,"gredwitch/burning_jet.wav")
  22. gib.AmmoFireSound:SetSoundLevel(120)
  23. gib.AmmoFireSound:Play()
  24. gib:CallOnRemove("removesnd",function(gib)
  25. gib.AmmoFireSound:Stop()
  26. end)
  27. end
  28.  
  29. local function CreateTurret(gib,ang,pitch,yaw)
  30. for i = 0,13 do
  31. gib:SetBodygroup(i,1)
  32. end
  33.  
  34. local bonepos = gib:GetBonePosition(gib:LookupBone("turret_yaw"))
  35. local prop = ents.Create("prop_physics")
  36. prop:SetModel("models/Mechanics/gears2/gear_12t3.mdl")
  37. prop:SetAngles(ang + Angle(pitch,yaw))
  38. prop:SetPos(bonepos)
  39. prop:Spawn()
  40. prop:Activate()
  41. prop:SetMaterial( "models/player/player_chrome1" )
  42. prop:SetRenderMode( RENDERMODE_TRANSALPHA )
  43. gib.Turret = prop
  44.  
  45. local phys = prop:GetPhysicsObject()
  46. if IsValid(phys) then
  47. phys:AddVelocity(gib:GetUp()*600)
  48. phys:AddAngleVelocity(VectorRand()*math.random(300,600))
  49. end
  50.  
  51. gib:CallOnRemove("removeturret",function(gib)
  52. if IsValid(gib.Turret) then gib.Turret:Remove() end
  53. end)
  54. end
  55.  
  56. local function StopAmmoFire(gib)
  57. gib.AmmoFire:Remove()
  58. gib.AmmoFireSound:Stop()
  59. end
  60.  
  61. local function CreateExplosion(gib,ang)
  62. local pos = gib:LocalToWorld(Vector(-10,0,40))
  63. net.Start("gred_net_createparticle")
  64. net.WriteString("doi_flak88_explosion")
  65. net.WriteVector(pos)
  66. net.WriteAngle(ang)
  67. net.WriteBool(false)
  68. net.Broadcast()
  69. gred.CreateSound(pos,false,"explosions/fuel_depot_explode_close.wav","explosions/fuel_depot_explode_dist.wav","explosions/fuel_depot_explode_far.wav")
  70. end
  71.  
  72. gred.TankDestruction(ent,gib,ang,skin,pitch,yaw,CreateAmmoFire,StopAmmoFire,CreateExplosion,CreateTurret)
  73. end,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement