Guest

Roblox Combat Script with Mana

Nov 22nd, 2025
146
0
Never
Not a member of gistpad yet? Sign Up, it unlocks many cool features!
Lua 7.01 KB | Gaming | 0 0
  1. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  2. local CombatEvent = ReplicatedStorage:WaitForChild("CombatEvent")
  3.  
  4. print("⚔️ Скрипт Боя (с Маной) загружен")
  5.  
  6. -- === НАСТРОЙКА ЦЕНЫ ===
  7. local MANA_COST = 20
  8.  
  9. CombatEvent.OnServerEvent:Connect(function(attacker, targetCharacter, victimAnimId)
  10. print("Сигнал боя: " .. attacker.Name .. " -> " .. tostring(targetCharacter))
  11.  
  12. if not targetCharacter then return end
  13. local victimHumanoid = targetCharacter:FindFirstChild("Humanoid")
  14. if not victimHumanoid then return end
  15. if targetCharacter == attacker.Character then return end
  16.  
  17. -- [СПИСАНИЕ МАНЫ У АТАКУЮЩЕГО]
  18. local char = attacker.Character
  19. if char then
  20. local currentMana = char:GetAttribute("Mana") or 0
  21. if currentMana < MANA_COST then return end -- Отмена, если маны нет
  22. char:SetAttribute("Mana", currentMana - MANA_COST)
  23. end
  24.  
  25. -- Урон и анимация
  26. local damage = victimHumanoid.MaxHealth * 0.15
  27. victimHumanoid:TakeDamage(damage)
  28.  
  29. if victimAnimId and victimAnimId ~= "rbxassetid://0" then
  30. local animator = victimHumanoid:FindFirstChild("Animator") or Instance.new("Animator", victimHumanoid)
  31. pcall(function()
  32. local anim = Instance.new("Animation"); anim.AnimationId = victimAnimId
  33. local track = animator:LoadAnimation(anim); track.Priority = Enum.AnimationPriority.Action; track:Play()
  34. end)
  35. end
  36. end)
RAW Gist Data Copied