[Help][LUA] pUnit:GetHealthPct command menu

Shout-Out

User Tag List

Results 1 to 8 of 8
  1. #1
    Kiyoshi's Avatar Member
    Reputation
    28
    Join Date
    Jun 2008
    Posts
    192
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Help][LUA] pUnit:GetHealthPct command

    Ok so I was scripting a few mobs in Desolace for my project (LASP). It was all going fine until I came across a few mobs that needed to do certain things when their health was at a certain %. I know this must be done using

    Code:
    if pUnit:GetHealthPct() < # then
    # = The % I want him to do whatever is after the command.

    My real question here is how exactly do I use this command correctly? Do I need to register it in the OnEnterCombatr function? Do I register them within each other? Do I have to remove the events for each one? I looked at other scripts and this is what I came up with. I think maybe one of these are correct, but I don't know which one.

    Code:
    -- Way 1: Registering it inside of OnEnterCombat
    function Dummy_OnEnterCombat
    	pUnit:SendChatMessage(12, 0, "LEAVE ME ALONE!!!")
    	pUnit:RegisterEvent("Dummy_Lowhp", 0, 0)
    	pUnit:RegisterEvent("Dummy_Lowerhp", 0, 0)
    	pUnit:RegisterEvent("Dummy_Lowesthp", 0, 0)
    end
    
    function Dummy_Lowhp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0000)
    	pUnit:SendChatMessage(12, 0, "I'm a dummy with lower hp")
    end
     end
    
    function Dummy_Lowerhp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0001)
    	pUnit:SendChatMessage(12, 0, "I'm a dummy with even lower hp")
    end
     end
    
    function Dummy_Lowesthp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0002)
    	pUnit:SendChatMessage(12, 0, "What is hp?")
    end
     end
    
    function Dummy_OnLeaveCombat
    	pUnit:RemoveEvents()
    end
    
    function Dummy_OnKilledtarget
    	pUnit:RemoveEvents()
    end
    
    function Dummy_OnDead
    	pUnit:RemoveEvents()
    end
    
    RegisterUnitEvent(9999, 1, "Dummy_OnEnterCombat")
    RegisterUnitEvent(9999, 2, "Dummy_OnLeaveCombat")
    RegisterUnitEvent(9999, 3, "Dummy_OnKilledTarget")
    RegisterUnitEvent(9999, 4, "Dummy_OnDead")
    Code:
    -- Way 2: Auto-Pilot Registering?
    function Dummy_OnEnterCombat
    	pUnit:SendChatMessage(12, 0, "LEAVE ME ALONE!!!")
    
    function Dummy_Lowhp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0000)
    	pUnit:SendChatMessage(12, 0, "I'm a dummy with lower hp")
    	pUnit:RegisterEvent("Dummy_Lowhp", 0, 0)
    end
     end
    
    function Dummy_Lowerhp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0001)
    	pUnit:SendChatMessage(12, 0, "I'm a dummy with even lower hp")
    	pUnit:RegisterEvent("Dummy_Lowerhp", 0, 0)
    end
     end
    function Dummy_Lowesthp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0002)
    	pUnit:SendChatMessage(12, 0, "What is hp?")
    	pUnit:RegisterEvent("Dummy_Lowesthp", 0, 0)
    end
     end
    
    function Dummy_OnLeaveCombat
    	pUnit:RemoveEvents()
    end
    
    function Dummy_OnKilledtarget
    	pUnit:RemoveEvents()
    end
    
    function Dummy_OnDead
    	pUnit:RemoveEvents()
    end
    
    RegisterUnitEvent(9999, 1, "Dummy_OnEnterCombat")
    RegisterUnitEvent(9999, 2, "Dummy_OnLeaveCombat")
    RegisterUnitEvent(9999, 3, "Dummy_OnKilledTarget")
    RegisterUnitEvent(9999, 4, "Dummy_OnDead")
    Code:
    -- Way 3: Completely Automatically
    function Dummy_OnEnterCombat
    	pUnit:SendChatMessage(12, 0, "LEAVE ME ALONE!!!")
    
    function Dummy_Lowhp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0000)
    	pUnit:SendChatMessage(12, 0, "I'm a dummy with lower hp")
    end
     end
    
    function Dummy_Lowerhp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0001)
    	pUnit:SendChatMessage(12, 0, "I'm a dummy with even lower hp")
    end
     end
    function Dummy_Lowesthp
    	if pUnit:GetHealthPct() < # then
    	pUnit:RemoveEvents()
    	pUnit:CastSpell(0002)
    	pUnit:SendChatMessage(12, 0, "What is hp?")
    end
     end
    
    function Dummy_OnLeaveCombat
    	pUnit:RemoveEvents()
    end
    
    function Dummy_OnKilledtarget
    	pUnit:RemoveEvents()
    end
    
    function Dummy_OnDead
    	pUnit:RemoveEvents()
    end
    
    RegisterUnitEvent(9999, 1, "Dummy_OnEnterCombat")
    RegisterUnitEvent(9999, 2, "Dummy_OnLeaveCombat")
    RegisterUnitEvent(9999, 3, "Dummy_OnKilledTarget")
    RegisterUnitEvent(9999, 4, "Dummy_OnDead")
    Also what if I want to continue a spell I had going on, but do the event? I'm so lost lol. :banghead: So can someone out there help me out?

    [Help][LUA] pUnit:GetHealthPct command
  2. #2
    b!atch's Avatar Member
    Reputation
    118
    Join Date
    Oct 2007
    Posts
    726
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    function Snow_phase1(pUnit, Event)
    if pUnit:GetHealthPct() < 90 then
    pUnit:RemoveEvents();
    pUnit:FullCastSpell(28531)
    pUnit:RegisterEvent("Snow_phase19",1000, 0)
    pUnit:RegisterEvent("Snow_Icebolt",10000, 0)
    pUnit:RegisterEvent("Snow_Frostdot",6000, 0)
    end
    end
    
    function Snow_Icebolt(pUnit, Event)
    pUnit:FullCastSpell(44799)
    end
    
    function Snow_Frostdot(pUnit, Event)
    pUnit:FullCastSpell(28531)
    end
    
    function Snow_phase19(pUnit, Event)
    if pUnit:GetHealthPct() < 70 then
    pUnit:RemoveEvents();
    pUnit:FullCastSpell(28524)
    pUnit:RegisterEvent("Snow_Frostbolt8k",12000, 0)
    pUnit:RegisterEvent("Snow_Icebolt",10000, 0)
    pUnit:RegisterEvent("Snow_phase20",1000, 0)
    end
    end
    
    function Snow_Frostbolt8k(pUnit, Event)
        local plr = pUnit:GetMainTank()
       if (plr ~= nil) then
    pUnit:FullCastSpellOnTarget(28478, plr)
     end
    end
    
    function Snow_Icebolt(pUnit, Event)
    pUnit:FullCastSpell(44799)
    end
    
    function Snow_phase20(pUnit, Event)
    if pUnit:GetHealthPct() < 50 then
    pUnit:FullCastSpell(28547)
    pUnit:RemoveEvents();
    pUnit:RegisterEvent("Snow_Frostbolt8k",12000, 0)
    pUnit:RegisterEvent("Snow_Frostdot",6000, 0)
    pUnit:RegisterEvent("Snow_Adds",15000, 0)
    pUnit:RegisterEvent("Snow_phase21",1000, 0)
    end
    end
    
    function Snow_Frostbolt8k(pUnit, Event)
        local plr = pUnit:GetMainTank()
       if (plr ~= nil) then
    pUnit:FullCastSpellOnTarget(28478, plr)
     end
    end
    
    function Snow_Frostdot(pUnit, Event)
    pUnit:FullCastSpell(28531)
    end
    
    function Snow_Adds(pUnit, Event)
    pUnit:FullCastSpell(33539)
    end
    
    function Snow_phase21(pUnit, Event)
    if pUnit:GetHealthPct() < 20 then
    pUnit:RemoveEvents();
    pUnit:FullCastSpell(28524)
    pUnit:RegisterEvent("Snow_Frostbolt8k",12000, 0)
    pUnit:RegisterEvent("Snow_Frostdot",6000, 0)
    pUnit:RegisterEvent("Snow_Frostboltaoe",6500, 0)
    pUnit:RegisterEvent("Snow_Adds2",40000, 0)
    pUnit:RegisterEvent("satan_phase22",1000, 0)
    end
    end
    
    function Snow_Frostbolt8k(pUnit, Event)
        local plr = pUnit:GetMainTank()
       if (plr ~= nil) then
    pUnit:FullCastSpellOnTarget(28478, plr)
     end
    end
    
    function Snow_Frostdot(pUnit, Event)
    pUnit:FullCastSpell(28531)
    end
    
    function Snow_Adds2(pUnit, Event)
    pUnit:FullCastSpell(33539)
    pUnit:FullCastSpell(33539)
    pUnit:FullCastSpell(33539)
    pUnit:FullCastSpell(33539)
    end
    
    function Snow_Frostboltaoe(pUnit, Event)
    pUnit:FullCastSpell(33539)
    end
    
    function Snow_phase22(pUnit, Event)
    if pUnit:GetHealthPct() < 5 then
    pUnit:FullCastSpell(28547)
    pUnit:RemoveEvents();
    pUnit:RegisterEvent("Snow_Frostbolt8k",12000, 0)
    pUnit:RegisterEvent("Snow_Frostdot",6000, 0)
    pUnit:RegisterEvent("Snow_Frostboltaoe",6500, 0)
    pUnit:RegisterEvent("Snow_Adds3",30000, 0)
    pUnit:RegisterEvent("satan_start",1000, 0)
    end
    end
    
    function Snow_Frostbolt8k(pUnit, Event)
        local plr = pUnit:GetMainTank()
       if (plr ~= nil) then
    pUnit:FullCastSpellOnTarget(28478, plr)
     end
    end
    
    function Snow_Frostdot(pUnit, Event)
    pUnit:FullCastSpell(28531)
    end
    
    function Snow_Adds3(pUnit, Event)
    pUnit:FullCastSpell(33539)
    pUnit:FullCastSpell(33539)
    pUnit:FullCastSpell(33539)
    pUnit:FullCastSpell(33539)
    end
    
    function Snow_Icebolt(pUnit, Event)
    pUnit:FullCastSpell(44799)
    end
    
    function Snow_Frostboltaoe(pUnit, Event)
    pUnit:FullCastSpell(33539)
    end
    
    function Snow_start(pUnit, Event)
    pUnit:RegisterEvent("Snow_phase1",1000, 0)
    end
    RegisterUnitEvent(79, 1, "Snow_start")

    There is an example. I dont have time to check yours atm since i have adhd and therefore i cant read that much text atm.


    Try to work it off
    Spectrum-X is win! Rep People That Help You and Candybones Wont Eat Your Brain:>

  3. #3
    Kiyoshi's Avatar Member
    Reputation
    28
    Join Date
    Jun 2008
    Posts
    192
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Zomg thanks, you OWN

  4. #4
    b!atch's Avatar Member
    Reputation
    118
    Join Date
    Oct 2007
    Posts
    726
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Lul np :b
    Spectrum-X is win! Rep People That Help You and Candybones Wont Eat Your Brain:>

  5. #5
    BrantX's Avatar Contributor
    Reputation
    205
    Join Date
    Jul 2007
    Posts
    899
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Why the hell do people put

    if pUnit:GetHealthPct() # 50 then
    IT IS NOT # ITS < !!!!!!!!!!!!!!!!



  6. #6
    b!atch's Avatar Member
    Reputation
    118
    Join Date
    Oct 2007
    Posts
    726
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by BrantX View Post
    Why the hell do people put



    IT IS NOT # ITS < !!!!!!!!!!!!!!!!
    i think he ment
    if pUnit:GetHealthPct() < # then

    as < number

    since
    #
    means number
    Spectrum-X is win! Rep People That Help You and Candybones Wont Eat Your Brain:>

  7. #7
    BrantX's Avatar Contributor
    Reputation
    205
    Join Date
    Jul 2007
    Posts
    899
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Right... haha



  8. #8
    Kiyoshi's Avatar Member
    Reputation
    28
    Join Date
    Jun 2008
    Posts
    192
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Lol yeah I meant < # not < # 50 because # = Number

    Sorry for the confusion :S

Similar Threads

  1. [Help] LUA Script + GO info
    By Hellgawd in forum World of Warcraft Emulator Servers
    Replies: 4
    Last Post: 02-12-2008, 05:06 AM
  2. help .lua portal
    By Tom_2001 in forum World of Warcraft Emulator Servers
    Replies: 12
    Last Post: 01-26-2008, 11:14 AM
  3. help .lua portal help
    By Tom_2001 in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 01-24-2008, 03:21 PM
  4. [HELP] Lua DLL Error
    By Rouslan in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 01-12-2008, 02:02 PM
  5. can u help me with .mount commands...
    By AggramarEU in forum World of Warcraft Emulator Servers
    Replies: 1
    Last Post: 09-14-2007, 08:10 AM
All times are GMT -5. The time now is 04:49 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search