Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.46 KB | None | 0 0
  1. AddCSLuaFile("cl_init.lua")
  2. AddCSLuaFile("shared.lua")
  3. include('shared.lua')
  4.  
  5. function ENT:Initialize()
  6.     self.Entity:SetModel("models/weapons/w_snowball_thrown.mdl");
  7.     //self.Entity:PhysicsInit(SOLID_VPHYSICS);
  8.     self.Entity:SetMoveType(MOVETYPE_VPHYSICS);
  9.     self.Entity:SetSolid(SOLID_VPHYSICS);
  10.     self.Entity:SetCollisionGroup( COLLISION_GROUP_PROJECTILE )
  11.     self:PhysicsInitSphere( 30, "ice" )
  12.     local phys = self:GetPhysicsObject()
  13.     if phys:IsValid() then
  14.         phys:Wake()
  15.         phys:EnableGravity(true);
  16.         phys:SetBuoyancyRatio(0);
  17.     end
  18.     self.Trail = util.SpriteTrail(self.Entity, 0, Color(150,200,255,50), false, 15, 1, 2, 1/(15+1)*0.5, "trails/laser.vmt")
  19. end
  20.  
  21. function ENT:Think()
  22. end
  23.  
  24. function ENT:SpawnFunction(ply, tr)
  25.     if (!tr.Hit) then return end
  26.     local SpawnPos = tr.HitPos + tr.HitNormal * 16;
  27.     local ent = ents.Create("ent_snowball_nodamage");
  28.     ent:SetPos(SpawnPos);
  29.     ent:Spawn();
  30.     ent:Activate();
  31.     ent:SetOwner(ply)
  32.     return ent;
  33. end
  34.  
  35. function ENT:PhysicsCollide(data)
  36.     local pos = self.Entity:GetPos() --Get the position of the snowball
  37.     local effectdata = EffectData()
  38.     data.HitObject:ApplyForceCenter(self:GetPhysicsObject():GetVelocity() * 40)
  39.    
  40.     effectdata:SetStart( pos )
  41.     effectdata:SetOrigin( pos )
  42.     effectdata:SetScale( 1.5 )
  43.     self:EmitSound("hit.wav")
  44.     util.Effect( "WheelDust", effectdata ) -- effect
  45.     util.Effect( "GlassImpact", effectdata ) -- effect
  46.  
  47.  
  48.     local explosion = ents.Create("env_explosion")
  49.     explosion:SetPos(pos)
  50.     explosion:Spawn()
  51.     explosion:SetKeyValue( "iMagnitude", "125" ) --Valeur à changer pour les dégats
  52.     explosion:Fire( "Explode", 0, 0 )
  53.     explosion:EmitSound( "BaseExplosionEffect.Sound", 1, 1)
  54.  
  55.     for k, v in pairs(ents.FindInSphere(pos,300)) do
  56.         if v:IsPlayer() then
  57.  
  58.             local VitesseFreezeRunT = 200 --Mettre valeur desiré
  59.             local VitesseFreezeWalkT = 100 --Mettre valeur desiré
  60.  
  61.  
  62.             local VitesseDefautRun = v:GetRunSpeed()
  63.             local VitesseDefautWalk = v:GetWalkSpeed()
  64.  
  65.             v:SetRunSpeed(VitesseFreezeRunT)
  66.             v:SetWalkSpeed(VitesseFreezeWalkT)
  67.  
  68.             timer.Simple(3, function() v:SetRunSpeed(VitesseDefautRun) end ) -- L'effet ne dure que 3sec
  69.             timer.Simple(3, function() v:SetWalkSpeed(VitesseDefautWalk) end )         
  70.        
  71.         else
  72.  
  73.         end
  74.        
  75.  
  76.     end
  77.  
  78.  
  79.     effectdata:SetStart( pos )
  80.     effectdata:SetOrigin( pos )
  81.     effectdata:SetScale( 1.5 )
  82.            
  83.     util.Effect( "WheelDust", effectdata )
  84.     util.Effect( "GlassImpact", effectdata )
  85.     util.Effect("Explosion", effectdata)
  86.     self.Entity:Remove();
  87.  
  88. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement