Anpassende Kreaturen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Anpassende Kreaturen

      Hallo ich wollte mal wissen ob es möglich ist über LUA einen NPC (Boss oder Kreatur) zu erstellen die sich an das Level, Leben, Mana und Rüsstung des Spielers Anpasst.

      Ich habe mit das eigentlich so gedacht:

      C-Quellcode

      1. local NpcID = 51001
      2. local pAttacker = pPlayer
      3. function player_Infos (pUnit, pAttacker, Event)
      4. pUnit:SetLevel(pAttacker:GetLevel())
      5. pUnit:SetHealth(pAttacker:GetMaxHealth())
      6. pUnit:SetMana(pAttacker:GetMaxMana())
      7. end
      8. function SSTrash_OnCombat(Unit, Event)
      9. Unit:RegisterEvent("player_Infos", 1000, 0)
      10. end
      11. function SSTrash_OnLeaveCombat(Unit, Event)
      12. Unit:RemoveEvents()
      13. end
      14. function SSTrash_OnDeath(Unit, Event)
      15. Unit:RemoveEvents()
      16. end
      17. RegisterUnitEvent(NpcID, 1, "SSTrash_OnCombat")
      18. RegisterUnitEvent(NpcID, 2, "SSTrash_OnLeaveCombat")
      19. RegisterUnitEvent(NpcID, 4, "SSTrash_OnDeath")
      Alles anzeigen

      So oder so ähnlich. Aber so wie ich es mache geht es nicht.

      Hier die Fehler Meldung:

      C-Quellcode

      1. [ERR] report scripts/UnitScripts/Seelenschmiede(Custom)/SSTrash.lua:5: attempt to index a nil value (local 'pAttacker')
      Ich hoffe mir kann jemand dabei helfen.

      MFG

      RyffLe aka Chris
    • local NpcID = 51001

      function player_Infos (pUnit, pAttacker, Event)
      pUnit:SetLevel(pAttacker:GetLevel())
      pUnit:SetHealth(pAttacker:GetMaxHealth())
      pUnit:SetMana(pAttacker:GetMaxMana())
      End

      Function SSTrash_OnCombat (pUnit, Event, pAttacker)
      local NPC_Name = pUnit:GetName() pUnit:RegisterEvent(function() player_infos(pUnit, Event, pAttacker); end, 3000, 1)end

      function SSTrash_OnLeaveCombat(Unit, Event)
      Unit:RemoveEvents()
      end

      function SSTrash_OnDeath(Unit, Event)
      Unit:RemoveEvents()
      end

      RegisterUnitEvent(NpcID, 1, "SSTrash_OnCombat")
      RegisterUnitEvent(NpcID, 2, "SSTrash_OnLeaveCombat")
      RegisterUnitEvent(NpcID, 4, "SSTrash_OnDeath")
    • Ok hab es Gestern noch gefixt danke Aaron.

      Hier der Script:

      C-Quellcode

      1. function SSTrash_Infos(Unit, event, player)
      2. Unit:SetLevel(player:GetLevel())
      3. Unit:SetMaxHealth(player:GetMaxHealth() * math.random(1,3))
      4. Unit:SetMaxMana(player:GetMaxMana() * math.random(1,3))
      5. Unit:SetHealthPct(100)
      6. Unit:RegisterEvent("SSTrash_Battle", 1000, 1)
      7. end
      8. function SSTrash_Battle(Unit, event)
      9. Unit:RemoveEvents()
      10. end
      11. function SSTrash_OnCombat (pUnit, Event, player)
      12. pUnit:RegisterEvent(function() SSTrash_Infos(pUnit, Event, player); end, 1000, 1)--[[Deklaration der Funktion mit Parametern]]--
      13. end
      14. function SSTrash_OnLeaveCombat(Unit, Event)
      15. Unit:RemoveEvents()
      16. end
      17. function SSTrash_OnDeath(Unit, Event)
      18. Unit:RemoveEvents()
      19. end
      20. RegisterUnitEvent([NpcID], 1, "SSTrash_OnCombat")
      21. RegisterUnitEvent([NpcID], 2, "SSTrash_OnLeaveCombat")
      22. RegisterUnitEvent([NpcID], 4, "SSTrash_OnDeath")
      Alles anzeigen