Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- OnDestroyed = function(ent)
- local gib = ent.Gib
- if !IsValid(gib) then return end
- local pos,ang,skin,pitch,yaw = gib:GetPos(),gib:GetAngles(),gib:GetSkin(),ent:GetPoseParameter("turret_pitch"),ent:GetPoseParameter("spin_tower")
- gib:SetPoseParameter("turret_pitch",pitch)
- gib:SetPoseParameter("turret_yaw",yaw)
- local function CreateAmmoFire(gib,ang)
- local bonepos = gib:GetBonePosition(gib:LookupBone("turret_yaw"))
- gib.AmmoFire = ents.Create("info_particle_system")
- gib.AmmoFire:SetKeyValue("effect_name","flame_jet")
- gib.AmmoFire:SetKeyValue("start_active",1)
- gib.AmmoFire:SetOwner(gib)
- gib.AmmoFire:SetPos(bonepos)
- gib.AmmoFire:SetAngles(ang)
- gib.AmmoFire:Spawn()
- gib.AmmoFire:Activate()
- gib.AmmoFire:SetParent(gib)
- gib.AmmoFireSound = CreateSound(gib,"gredwitch/burning_jet.wav")
- gib.AmmoFireSound:SetSoundLevel(120)
- gib.AmmoFireSound:Play()
- gib:CallOnRemove("removesnd",function(gib)
- gib.AmmoFireSound:Stop()
- end)
- end
- local function CreateTurret(gib,ang,pitch,yaw)
- for i = 0,13 do
- gib:SetBodygroup(i,1)
- end
- local bonepos = gib:GetBonePosition(gib:LookupBone("turret_yaw"))
- local prop = ents.Create("prop_physics")
- prop:SetModel("models/Mechanics/gears2/gear_12t3.mdl")
- prop:SetAngles(ang + Angle(pitch,yaw))
- prop:SetPos(bonepos)
- prop:Spawn()
- prop:Activate()
- prop:SetMaterial( "models/player/player_chrome1" )
- prop:SetRenderMode( RENDERMODE_TRANSALPHA )
- gib.Turret = prop
- local phys = prop:GetPhysicsObject()
- if IsValid(phys) then
- phys:AddVelocity(gib:GetUp()*600)
- phys:AddAngleVelocity(VectorRand()*math.random(300,600))
- end
- gib:CallOnRemove("removeturret",function(gib)
- if IsValid(gib.Turret) then gib.Turret:Remove() end
- end)
- end
- local function StopAmmoFire(gib)
- gib.AmmoFire:Remove()
- gib.AmmoFireSound:Stop()
- end
- local function CreateExplosion(gib,ang)
- local pos = gib:LocalToWorld(Vector(-10,0,40))
- net.Start("gred_net_createparticle")
- net.WriteString("doi_flak88_explosion")
- net.WriteVector(pos)
- net.WriteAngle(ang)
- net.WriteBool(false)
- net.Broadcast()
- gred.CreateSound(pos,false,"explosions/fuel_depot_explode_close.wav","explosions/fuel_depot_explode_dist.wav","explosions/fuel_depot_explode_far.wav")
- end
- gred.TankDestruction(ent,gib,ang,skin,pitch,yaw,CreateAmmoFire,StopAmmoFire,CreateExplosion,CreateTurret)
- end,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement