Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.35 KB | None | 0 0
  1. local Skill = {}
  2. Skill.Name = "skill_a_m_haura"
  3. Skill.PrintName = "Aura - Health"
  4. Skill.Category = CATEGORY_MELEE_WARLOCK
  5. Skill.Icon = "icons/sp/skill_auheal"
  6. Skill.Desc = {}
  7. Skill.Desc["story"] = "Emits a powerful magic healing aura, heals team mates and yourself."
  8. Skill.Levels = 10
  9. Skill.Requirements = {}
  10. for i = 0, 10 do
  11. Skill.Requirements[i] = {}
  12. Skill.Requirements[i].Skills = {}
  13. Skill.Requirements[i].Level = 2 + i*3
  14. end
  15. function Skill:GetDuration( intSkillLevel )
  16. return 5 + intSkillLevel * 2
  17. end
  18. for i=1, 10 do
  19. Skill.Desc[i] = "Emit Heal Aura for " .. Skill:GetDuration( i ) .. " within " .. 200 + i*10 .. " range. Heals " .. i .. " every 1 second." .. "\n\nLevel Requirement " .. Skill.Requirements[i].Level
  20. end
  21. Skill.Active = true
  22. function Skill:OnSet(plyPlayer, intSkillLevel, intOldSkillLevel, load)
  23. lvl_effect( plyPlayer, intSkillLevel, intOldSkillLevel, load )
  24. end
  25. function Skill:clEffect( plyPlayer, intSkillLevel )
  26.  
  27. local effectdata = EffectData()
  28. effectdata:SetEntity( plyPlayer )
  29. effectdata:SetScale( 200 + intSkillLevel * 10 )
  30. effectdata:SetMagnitude( self:GetDuration( intSkillLevel ) )
  31. util.Effect("healring", effectdata)
  32.  
  33. local effectdata = EffectData()
  34. effectdata:SetEntity( plyPlayer )
  35. util.Effect("healstart", effectdata)
  36.  
  37. end
  38. function notengcool( um )
  39. local effectdata = EffectData()
  40. effectdata:SetEntity( um:ReadEntity() )
  41. util.Effect("healed", effectdata)
  42. end
  43. usermessage.Hook( "healplayer", notengcool )
  44. function Skill:CanUse( plyPlayer )
  45. plyPlayer.tblSkillCool = plyPlayer.tblSkillCool or {}
  46. plyPlayer.NextMessage = plyPlayer.NextMessage or CurTime()
  47.  
  48. local wep = plyPlayer:GetActiveWeapon()
  49. if not wep:IsValid() then return end
  50.  
  51. if plyPlayer.OnAura then
  52. if plyPlayer.NextMessage > CurTime() then
  53. return
  54. end
  55. bliperror( plyPlayer, "You're already emitting Aura Power." )
  56. plyPlayer.NextMessage = CurTime() + 0.8
  57. return
  58. end
  59.  
  60. if not ( wep.WeaponTable.Melee ) then
  61. if plyPlayer.NextMessage > CurTime() then
  62. return
  63. end
  64. bliperror( plyPlayer, "You have to hold Melee weapon." )
  65. plyPlayer.NextMessage = CurTime() + 0.8
  66. return
  67. end
  68.  
  69. plyPlayer.tblSkillCool[ Skill.Name ] = plyPlayer.tblSkillCool[ Skill.Name ] or CurTime()
  70. if plyPlayer.tblSkillCool[ Skill.Name ] > CurTime() then
  71. if plyPlayer.NextMessage > CurTime() then
  72. return
  73. end
  74. bliperror( plyPlayer, "You have to wait " .. math.abs( math.floor( CurTime() - plyPlayer.tblSkillCool[ Skill.Name ] ) ) .. " second(s)." )
  75. plyPlayer.NextMessage = CurTime() + 0.8
  76. return end
  77.  
  78. return true
  79. end
  80. function Skill:OnUse( plyPlayer, intSkillLevel, boolSwitch )
  81.  
  82. if not self:CanUse( plyPlayer ) then return end
  83. local wep = plyPlayer:GetActiveWeapon()
  84. local range = 200 + intSkillLevel * 10
  85. local heal = math.ceil(intSkillLevel)
  86.  
  87. plyPlayer.dAuraEffect = CurTime()
  88. plyPlayer.dAuraDuration = CurTime() + self:GetDuration( intSkillLevel )
  89. plyPlayer:EmitSound( "weapons/physcannon/energy_sing_flyby1.wav", 100, 100 )
  90. plyPlayer.OnAura = true
  91.  
  92. umsg.Start( "skill_pusheffect" )
  93. umsg.Entity( plyPlayer )
  94. umsg.String( Skill.Name )
  95. umsg.Float( intSkillLevel )
  96. umsg.End()
  97.  
  98. local edx = plyPlayer:EntIndex()
  99.  
  100. local stopaura = function( plyPlayer )
  101.  
  102. if plyPlayer:IsValid() then
  103. plyPlayer.OnAura = false
  104. end
  105. hook.Remove( "Think", "AuraThink"..edx )
  106.  
  107. end
  108.  
  109. hook.Add( "Think", "AuraThink"..edx, function()
  110.  
  111. if ( !plyPlayer:IsValid() || plyPlayer.dAuraDuration < CurTime() || !plyPlayer:Alive() ) then
  112. stopaura( plyPlayer )
  113. end
  114. if plyPlayer:GetActiveWeapon():IsValid() then
  115. if not plyPlayer:GetActiveWeapon().WeaponTable.Melee then
  116. stopaura( plyPlayer )
  117. end
  118. else
  119. stopaura( plyPlayer )
  120. end
  121.  
  122. if plyPlayer.dAuraEffect < CurTime() then
  123.  
  124. plyPlayer.dAuraEffect = CurTime() + 1
  125. for k, v in pairs( player:GetAll() ) do
  126. if ( plyPlayer:GetPos():Distance( v:GetPos() ) < range ) then
  127. v:SetHealth( math.Clamp( v:Health() + heal, 0, v:GetMaxHealth() ) )
  128. v:EmitSound( "sc1/healing.wav", 100, 100 )
  129. umsg.Start( "healplayer" )
  130. umsg.Entity( v )
  131. umsg.String( Skill.Name )
  132. umsg.End()
  133. end
  134. end
  135.  
  136. end
  137. end)
  138.  
  139. plyPlayer.tblSkillCool[ Skill.Name ] = CurTime() + self:GetDuration( intSkillLevel ) + melee_adjcool( plyPlayer, 15 )
  140. plyPlayer.NextMessage = CurTime()
  141.  
  142. return
  143. end
  144. Register.Skill(Skill)
  145.  
  146.  
  147. local Skill = {}
  148. Skill.Name = "skill_a_m_faura"
  149. Skill.PrintName = "Aura - Focus"
  150. Skill.Category = CATEGORY_MELEE_WARLOCK
  151. Skill.Icon = "icons/sp/skill_aucrit"
  152. Skill.Desc = {}
  153. Skill.Desc["story"] = "Allows critical hits to become more possible."
  154. Skill.Requirements = {}
  155. for i = 0, 7 do
  156. Skill.Requirements[i] = {}
  157. Skill.Requirements[i].Skills = {}
  158. Skill.Requirements[i].Level = 3 + i*4
  159. end
  160. function Skill:GetDuration( intSkillLevel )
  161. return 2 + intSkillLevel * 2
  162. end
  163. for i=1, 7 do
  164. Skill.Desc[i] = "Emit Critical Focus Aura for " .. Skill:GetDuration( i ) .. " within " .. 100 + i*5 .. " range." .."\n\nLevel Requirement " .. Skill.Requirements[i].Level
  165. end
  166. Skill.Active = true
  167. function Skill:OnSet(plyPlayer, intSkillLevel, intOldSkillLevel, load)
  168. lvl_effect( plyPlayer, intSkillLevel, intOldSkillLevel, load )
  169. end
  170. function Skill:clEffect( plyPlayer, intSkillLevel )
  171. local effectdata = EffectData()
  172. effectdata:SetEntity( plyPlayer )
  173. effectdata:SetScale( 100 + intSkillLevel * 5 )
  174. effectdata:SetMagnitude( self:GetDuration( intSkillLevel ) )
  175. util.Effect("focusring", effectdata)
  176.  
  177. local effectdata = EffectData()
  178. effectdata:SetEntity( plyPlayer )
  179. util.Effect("focusstart", effectdata)
  180. end
  181. function notengcool( um )
  182. local effectdata = EffectData()
  183. effectdata:SetEntity( um:ReadEntity() )
  184. util.Effect("focused", effectdata)
  185. end
  186. usermessage.Hook( "focusplayer", notengcool )
  187. FireAuraPoles = {}
  188. FireAuraThink = CurTime()
  189. hook.Add( "Think", "FireAuraWorldThink", function()
  190. if FireAuraThink < CurTime() then
  191.  
  192. for k, v in pairs( player:GetAll() ) do
  193. v.FireBuff = nil
  194. end
  195.  
  196. for plyPlayer, _ in pairs( FireAuraPoles ) do
  197. for k, ply in pairs( player:GetAll() ) do
  198.  
  199. if ( plyPlayer:GetPos():Distance( ply:GetPos() ) < plyPlayer.dAuraRange ) then
  200. if !ply.FireBuff or ply.FireBuff < plyPlayer.dAuraLevel then
  201. ply.FireBuff = plyPlayer.dAuraLevel
  202. ply:EmitSound( "sc1/missile.wav", 100, 100 )
  203. umsg.Start( "focusplayer" )
  204. umsg.Entity( ply )
  205. umsg.String( Skill.Name )
  206. umsg.End()
  207. end
  208. end
  209. end
  210. end
  211.  
  212. FireAuraThink = CurTime() + .5
  213. end
  214. end)
  215. function Skill:CanUse( plyPlayer )
  216.  
  217. plyPlayer.tblSkillCool = plyPlayer.tblSkillCool or {}
  218. plyPlayer.NextMessage = plyPlayer.NextMessage or CurTime()
  219.  
  220. local wep = plyPlayer:GetActiveWeapon()
  221. if not wep:IsValid() then return end
  222. if not ( wep.WeaponTable.Melee ) then
  223. if plyPlayer.NextMessage > CurTime() then
  224. return
  225. end
  226. bliperror( plyPlayer, "You have to hold Melee weapon." )
  227. plyPlayer.NextMessage = CurTime() + 0.8
  228. return
  229. end
  230.  
  231. if ( plyPlayer.OnAura ) then
  232. if plyPlayer.NextMessage > CurTime() then
  233. return
  234. end
  235. bliperror( plyPlayer, "You're already emitting Aura Power." )
  236. plyPlayer.NextMessage = CurTime() + 0.8
  237. return
  238. end
  239.  
  240. plyPlayer.tblSkillCool[ Skill.Name ] = plyPlayer.tblSkillCool[ Skill.Name ] or CurTime()
  241. if plyPlayer.tblSkillCool[ Skill.Name ] > CurTime() then
  242. if plyPlayer.NextMessage > CurTime() then
  243. return
  244. end
  245. bliperror( plyPlayer, "You have to wait " .. math.abs( math.floor( CurTime() - plyPlayer.tblSkillCool[ Skill.Name ] ) ) .. " second(s)." )
  246. plyPlayer.NextMessage = CurTime() + 0.8
  247. return end
  248. return true
  249.  
  250. end
  251. function Skill:OnUse( plyPlayer, intSkillLevel, boolSwitch )
  252.  
  253. if not self:CanUse( plyPlayer ) then return end
  254. local wep = plyPlayer:GetActiveWeapon()
  255. local range = 100 + intSkillLevel * 5
  256.  
  257. plyPlayer.dAuraDuration = CurTime() + self:GetDuration( intSkillLevel )
  258. plyPlayer.dAuraRange = range
  259. plyPlayer.dAuraLevel = intSkillLevel
  260. plyPlayer:EmitSound( "weapons/physcannon/energy_sing_flyby1.wav", 100, 100 )
  261. plyPlayer.OnAura = true
  262. FireAuraPoles[ plyPlayer ] = true
  263. umsg.Start( "skill_pusheffect" )
  264. umsg.Entity( plyPlayer )
  265. umsg.String( Skill.Name )
  266. umsg.Float( intSkillLevel )
  267. umsg.End()
  268. local edx = plyPlayer:EntIndex()
  269. local stopaura = function( plyPlayer )
  270. if plyPlayer:IsValid() then
  271. plyPlayer.OnAura = false
  272. end
  273. FireAuraPoles[ plyPlayer ] = nil
  274. hook.Remove( "Think", "FireAuraThink"..edx )
  275. end
  276. hook.Add( "Think", "FireAuraThink"..edx, function()
  277.  
  278. if ( !plyPlayer:IsValid() || plyPlayer.dAuraDuration < CurTime() || !plyPlayer:Alive() ) then
  279. stopaura( plyPlayer )
  280. end
  281. if plyPlayer:GetActiveWeapon():IsValid() then
  282. if not plyPlayer:GetActiveWeapon().WeaponTable.Melee then
  283. stopaura( plyPlayer )
  284. end
  285. else
  286. stopaura( plyPlayer )
  287. end
  288.  
  289. end)
  290.  
  291. plyPlayer.tblSkillCool[ Skill.Name ] = CurTime() + self:GetDuration( intSkillLevel ) + melee_adjcool( plyPlayer, 10 )
  292. plyPlayer.NextMessage = CurTime()
  293.  
  294. return
  295. end
  296. Register.Skill(Skill)
  297.  
  298.  
  299. local Skill = {}
  300. Skill.Name = "skill_a_m_daura"
  301. Skill.PrintName = "Aura - Defensive"
  302. Skill.Category = CATEGORY_MELEE_WARLOCK
  303. Skill.Icon = "icons/sp/skill_audef"
  304. Skill.Desc = {}
  305. Skill.Desc["story"] = "Allows more hits be taken from enemies."
  306. Skill.Requirements = {}
  307. for i = 0, 7 do
  308. Skill.Requirements[i] = {}
  309. Skill.Requirements[i].Skills = {}
  310. Skill.Requirements[i].Level = 3 + i*4
  311. end
  312. function Skill:GetDuration( intSkillLevel )
  313. return 2 + intSkillLevel * 2
  314. end
  315. for i=1, 7 do
  316. Skill.Desc[i] = "Emit Defensive Aura for " .. Skill:GetDuration( i ) .. " within " .. 150 + i*10 .. " range." .."\n\nLevel Requirement " .. Skill.Requirements[i].Level
  317. end
  318. Skill.Active = true
  319. function Skill:OnSet(plyPlayer, intSkillLevel, intOldSkillLevel, load)
  320. lvl_effect( plyPlayer, intSkillLevel, intOldSkillLevel, load )
  321. end
  322. function Skill:clEffect( plyPlayer, intSkillLevel )
  323.  
  324. local effectdata = EffectData()
  325. effectdata:SetEntity( plyPlayer )
  326. effectdata:SetScale( 150 + intSkillLevel * 10 )
  327. effectdata:SetMagnitude( self:GetDuration( intSkillLevel ) )
  328. util.Effect("defensiveing", effectdata)
  329.  
  330. local effectdata = EffectData()
  331. effectdata:SetEntity( plyPlayer )
  332. util.Effect("defensivestart", effectdata)
  333.  
  334. end
  335. function notengcool( um )
  336. local effectdata = EffectData()
  337. effectdata:SetEntity( um:ReadEntity() )
  338. util.Effect("defensive", effectdata)
  339. end
  340. usermessage.Hook( "defensiveplayer", notengcool )
  341. DefensiveAuraPoles = {}
  342. DefensiveAuraThink = CurTime()
  343. hook.Add( "Think", "DefensiveAuraWorldThink", function()
  344. if DefensiveAuraThink < CurTime() then
  345.  
  346. for k, v in pairs( player:GetAll() ) do
  347. v.DefensiveBuff = nil
  348. end
  349.  
  350. for plyPlayer, _ in pairs( DefensiveAuraPoles ) do
  351. for k, ply in pairs( player:GetAll() ) do
  352.  
  353. if ( plyPlayer:GetPos():Distance( ply:GetPos() ) < plyPlayer.dAuraRange ) then
  354. if !ply.DefensiveBuff or ply.DefensiveBuff < plyPlayer.dAuraLevel then
  355. ply.DefensiveBuff = plyPlayer.dAuraLevel
  356. ply:EmitSound( "physics/concrete/concrete_impact_soft1.wav", 100, 50 )
  357. umsg.Start( "defensiveplayer" )
  358. umsg.Entity( ply )
  359. umsg.String( Skill.Name )
  360. umsg.End()
  361. end
  362. end
  363. end
  364. end
  365.  
  366. DefensiveAuraThink = CurTime() + .5
  367. end
  368. end)
  369. function Skill:CanUse( plyPlayer )
  370.  
  371. plyPlayer.tblSkillCool = plyPlayer.tblSkillCool or {}
  372. plyPlayer.NextMessage = plyPlayer.NextMessage or CurTime()
  373.  
  374. local wep = plyPlayer:GetActiveWeapon()
  375. if not wep:IsValid() then return end
  376. if not ( wep.WeaponTable.Melee ) then
  377. if plyPlayer.NextMessage > CurTime() then
  378. return
  379. end
  380. bliperror( plyPlayer, "You have to hold Melee weapon." )
  381. plyPlayer.NextMessage = CurTime() + 0.8
  382. return
  383. end
  384.  
  385. if ( plyPlayer.OnAura ) then
  386. if plyPlayer.NextMessage > CurTime() then
  387. return
  388. end
  389. bliperror( plyPlayer, "You're already emitting Aura Power." )
  390. plyPlayer.NextMessage = CurTime() + 0.8
  391. return
  392. end
  393.  
  394. plyPlayer.tblSkillCool[ Skill.Name ] = plyPlayer.tblSkillCool[ Skill.Name ] or CurTime()
  395. if plyPlayer.tblSkillCool[ Skill.Name ] > CurTime() then
  396. if plyPlayer.NextMessage > CurTime() then
  397. return
  398. end
  399. bliperror( plyPlayer, "You have to wait " .. math.abs( math.floor( CurTime() - plyPlayer.tblSkillCool[ Skill.Name ] ) ) .. " second(s)." )
  400. plyPlayer.NextMessage = CurTime() + 0.8
  401. return end
  402. return true
  403.  
  404. end
  405. function Skill:OnUse( plyPlayer, intSkillLevel, boolSwitch )
  406.  
  407.  
  408. if not self:CanUse( plyPlayer ) then return end
  409. local wep = plyPlayer:GetActiveWeapon()
  410. local range = 150 + intSkillLevel * 10
  411.  
  412. plyPlayer.dAuraDuration = CurTime() + self:GetDuration( intSkillLevel )
  413. plyPlayer.dAuraRange = range
  414. plyPlayer.dAuraLevel = intSkillLevel
  415.  
  416. plyPlayer:EmitSound( "weapons/physcannon/energy_sing_flyby1.wav", 100, 100 )
  417. plyPlayer.OnAura = true
  418. DefensiveAuraPoles[ plyPlayer ] = true
  419. umsg.Start( "skill_pusheffect" )
  420. umsg.Entity( plyPlayer )
  421. umsg.String( Skill.Name )
  422. umsg.Float( intSkillLevel )
  423. umsg.End()
  424.  
  425. local edx = plyPlayer:EntIndex()
  426. local stopaura = function( plyPlayer )
  427. if plyPlayer:IsValid() then
  428. plyPlayer.OnAura = false
  429. end
  430. DefensiveAuraPoles[ plyPlayer ] = nil
  431. hook.Remove( "Think", "DefensiveAuraThink"..edx )
  432. end
  433. hook.Add( "Think", "DefensiveAuraThink"..edx, function()
  434. if ( !plyPlayer:IsValid() || plyPlayer.dAuraDuration < CurTime() || !plyPlayer:Alive() ) then
  435. stopaura( plyPlayer )
  436. end
  437. if plyPlayer:GetActiveWeapon():IsValid() then
  438. if not plyPlayer:GetActiveWeapon().WeaponTable.Melee then
  439. stopaura( plyPlayer )
  440. end
  441. else
  442. stopaura( plyPlayer )
  443. end
  444. end)
  445.  
  446. plyPlayer.tblSkillCool[ Skill.Name ] = CurTime() + self:GetDuration( intSkillLevel ) + melee_adjcool( plyPlayer, 10 )
  447. plyPlayer.NextMessage = CurTime()
  448.  
  449. return
  450. end
  451. Register.Skill(Skill)
  452.  
  453. //////////////////////////////////////////////////
  454. // 505 Additions
  455. //////////////////////////////////////////////////
  456.  
  457. // Agility Aura
  458. local Skill = {}
  459. Skill.Name = "skill_a_m_aaura"
  460. Skill.PrintName = "Aura - Agility"
  461. Skill.Category = CATEGORY_MELEE_WARLOCK
  462. Skill.Icon = "icons/bt/skill_agility"
  463. Skill.Desc = {}
  464. Skill.Desc["story"] = "Emits a powerful magic aura that increases agility."
  465. Skill.Levels = 10
  466. Skill.Requirements = {}
  467.  
  468. for i = 0, 10 do
  469. Skill.Requirements[i] = {}
  470. Skill.Requirements[i].Skills = {}
  471. Skill.Requirements[i].Level = 2 + i*3
  472. end
  473.  
  474. function Skill:GetDuration( intSkillLevel )
  475. return 10 + intSkillLevel * 3
  476. end
  477.  
  478. for i=1, 10 do
  479. //Skill.Desc[i] = "Emit aura that increases agility by ".. i.. " for " .. Skill:GetDuration( i ) .. " within " .. 200 + i*10.. "\n\nLevel Requirement " .. Skill.Requirements[i].Level
  480. Skill.Desc[i] = "asdf"
  481. end
  482.  
  483. Skill.Active = true
  484.  
  485. function Skill:OnSet(plyPlayer, intSkillLevel, intOldSkillLevel, load)
  486. lvl_effect( plyPlayer, intSkillLevel, intOldSkillLevel, load )
  487. end
  488.  
  489. function Skill:clEffect( plyPlayer, intSkillLevel )
  490.  
  491. local effectdata = EffectData()
  492. effectdata:SetEntity( plyPlayer )
  493. effectdata:SetScale( 200 + intSkillLevel * 10 )
  494. effectdata:SetMagnitude( self:GetDuration( intSkillLevel ) )
  495. util.Effect("healring", effectdata)
  496.  
  497. local effectdata = EffectData()
  498. effectdata:SetEntity( plyPlayer )
  499. util.Effect("healstart", effectdata)
  500.  
  501. end
  502.  
  503. function notengcool( um )
  504. local effectdata = EffectData()
  505. effectdata:SetEntity( um:ReadEntity() )
  506. util.Effect("healed", effectdata)
  507. end
  508.  
  509. usermessage.Hook( "healplayer", notengcool )
  510.  
  511. function Skill:CanUse( plyPlayer )
  512. plyPlayer.tblSkillCool = plyPlayer.tblSkillCool or {}
  513. plyPlayer.NextMessage = plyPlayer.NextMessage or CurTime()
  514.  
  515. local wep = plyPlayer:GetActiveWeapon()
  516. if not wep:IsValid() then return end
  517.  
  518. if plyPlayer.OnAura then
  519. if plyPlayer.NextMessage > CurTime() then
  520. return
  521. end
  522. bliperror( plyPlayer, "You're already emitting Aura Power." )
  523. plyPlayer.NextMessage = CurTime() + 0.8
  524. return
  525. end
  526.  
  527. if not ( wep.WeaponTable.Melee ) then
  528. if plyPlayer.NextMessage > CurTime() then
  529. return
  530. end
  531. bliperror( plyPlayer, "You have to hold Melee weapon." )
  532. plyPlayer.NextMessage = CurTime() + 0.8
  533. return
  534. end
  535.  
  536. plyPlayer.tblSkillCool[ Skill.Name ] = plyPlayer.tblSkillCool[ Skill.Name ] or CurTime()
  537. if plyPlayer.tblSkillCool[ Skill.Name ] > CurTime() then
  538. if plyPlayer.NextMessage > CurTime() then
  539. return
  540. end
  541. bliperror( plyPlayer, "You have to wait " .. math.abs( math.floor( CurTime() - plyPlayer.tblSkillCool[ Skill.Name ] ) ) .. " second(s)." )
  542. plyPlayer.NextMessage = CurTime() + 0.8
  543. return end
  544.  
  545. return true
  546. end
  547.  
  548. function Skill:OnUse( plyPlayer, intSkillLevel, boolSwitch )
  549. if not self:CanUse( plyPlayer ) then return end
  550. local wep = plyPlayer:GetActiveWeapon()
  551. local range = 200 + intSkillLevel * 10
  552. local heal = math.ceil(intSkillLevel)
  553. local OriginStat = plyPlayer("stat_agility")
  554.  
  555. plyPlayer.dAuraEffect = CurTime()
  556. plyPlayer.dAuraDuration = CurTime() + self:GetDuration( intSkillLevel )
  557. plyPlayer:EmitSound( "weapons/physcannon/energy_sing_flyby1.wav", 100, 100 )
  558. plyPlayer.OnAura = true
  559.  
  560. umsg.Start( "skill_pusheffect" )
  561. umsg.Entity( plyPlayer )
  562. umsg.String( Skill.Name )
  563. umsg.Float( intSkillLevel )
  564. umsg.End()
  565.  
  566. local edx = plyPlayer:EntIndex()
  567.  
  568. local stopaura = function( plyPlayer )
  569.  
  570. if plyPlayer:IsValid() then
  571. plyPlayer.OnAura = false
  572. end
  573.  
  574. //Reset Agility
  575. plyPlayer:SetStat("stat_agility", OriginStat)
  576.  
  577. hook.Remove( "Think", "AuraThink"..edx )
  578.  
  579. end
  580.  
  581. //Increase Agility
  582. plyPlayer:SetStat("stat_agility", OriginStat + intSkillLevel)
  583.  
  584. hook.Add( "Think", "AuraThink"..edx, function()
  585.  
  586. if ( !plyPlayer:IsValid() || plyPlayer.dAuraDuration < CurTime() || !plyPlayer:Alive() ) then
  587. stopaura( plyPlayer )
  588. end
  589. if plyPlayer:GetActiveWeapon():IsValid() then
  590. if not plyPlayer:GetActiveWeapon().WeaponTable.Melee then
  591. stopaura( plyPlayer )
  592. end
  593. else
  594. stopaura( plyPlayer )
  595. end
  596.  
  597. if plyPlayer.dAuraEffect < CurTime() then
  598.  
  599. plyPlayer.dAuraEffect = CurTime() + 1
  600. for k, v in pairs( player:GetAll() ) do
  601. if ( plyPlayer:GetPos():Distance( v:GetPos() ) < range ) then
  602. //v:SetHealth( math.Clamp( v:Health() + heal, 0, v:GetMaxHealth() ) )
  603. //v:EmitSound( "sc1/healing.wav", 100, 100 )
  604. //umsg.Start( "healplayer" )
  605. // umsg.Entity( v )
  606. // umsg.String( Skill.Name )
  607. //umsg.End()
  608. end
  609. end
  610.  
  611. end
  612. end)
  613.  
  614. plyPlayer.tblSkillCool[ Skill.Name ] = CurTime() + self:GetDuration( intSkillLevel ) + melee_adjcool( plyPlayer, 15 )
  615. plyPlayer.NextMessage = CurTime()
  616.  
  617. return
  618. end
  619. Register.Skill(Skill)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement