BuffEntityCloaking.lua 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. local BuffEntityAnim = require("buff/BuffEntityAnim")
  2. local BuffEntityCloaking = class("BuffEntityCloaking", BuffEntityAnim)
  3. function BuffEntityCloaking:ctor(data)
  4. BuffEntityCloaking.super.ctor(self, data)
  5. self._buffEffHide = tonumber(global.ConstantConfig.disBuffHideEffect) == 1 --不显示隐身效果
  6. end
  7. function BuffEntityCloaking:OnEnter()
  8. BuffEntityCloaking.super.OnEnter(self)
  9. local actor = global.actorManager:GetActor(self._actorID)
  10. if not actor then
  11. self:disable()
  12. return false
  13. end
  14. -- net player only
  15. if not (actor:IsPlayer() or actor:IsMonster()) then
  16. self:disable()
  17. return false
  18. end
  19. if self._buffEffHide and actor:IsPlayer() then
  20. return false
  21. end
  22. actor:setCloaking(true, 2)
  23. end
  24. function BuffEntityCloaking:OnExit()
  25. BuffEntityCloaking.super.OnExit(self)
  26. local actor = global.actorManager:GetActor(self._actorID)
  27. if not actor then
  28. return nil
  29. end
  30. -- net player only
  31. if not (actor:IsPlayer() or actor:IsMonster()) then
  32. return false
  33. end
  34. if self._buffEffHide and actor:IsPlayer() then
  35. return false
  36. end
  37. actor:setCloaking(false, 2)
  38. end
  39. function BuffEntityCloaking:UpdatePresent()
  40. local actor = global.actorManager:GetActor(self._actorID)
  41. if not actor then
  42. return false
  43. end
  44. -- net player only
  45. if not (actor:IsPlayer() or actor:IsMonster()) then
  46. return false
  47. end
  48. if self._buffEffHide and actor:IsPlayer() then
  49. return false
  50. end
  51. actor:setCloaking(true, 2)
  52. end
  53. return BuffEntityCloaking