Skip to content
View in the app

A better way to browse. Learn more.

WRobot

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Decursing/cleansing in C#

Featured Replies

Hello all,

Has anyone built a C# script that automatically removes curses/poison or magic?

I have been unable to find any examples of this

Thanks!

  • Author
31 minutes ago, Zan said:

Did you try searching? Your answer is on the forums.

Yes, all I could find was some Lua code, but nothing in C# that I could use

  • Author
28 minutes ago, The Smokie. said:

 

Hey, this is a bit different. This looks for a specific debuff

I am looking for function that can search through the debuffs for curse/magic etc. and then cast, I would not have the spell IDs of all the world afflictions

 

4 minutes ago, penumbra said:

Hey, this is a bit different. This looks for a specific debuff

I am looking for function that can search through the debuffs for curse/magic etc. and then cast, I would not have the spell IDs of all the world afflictions

 

Best bet is to add each spell 

5 minutes ago, penumbra said:

Hey, this is a bit different. This looks for a specific debuff

I am looking for function that can search through the debuffs for curse/magic etc. and then cast, I would not have the spell IDs of all the world afflictions

 

That's why you should run a little bit of LUA in your C#. There isn't an in built C# function for this. LUA is definitely the best way as it returns the specific debuff type.

  • Author
8 minutes ago, Marsbar said:

That's why you should run a little bit of LUA in your C#. There isn't an in built C# function for this. LUA is definitely the best way as it returns the specific debuff type.

Thanks,

 

Im trying the following
 

    public bool hasDisease = false;

    hasDisease = Lua.LuaDoString<bool>("for i=1,40 do local texture, count, debuffType = UnitDebuff('player', i); if debuffType == 'Disease' then return true break; end end");

    if (hasDisease && SpellManager.SpellUsableLUA("Abolish Disease") && ObjectManager.Me.ManaPercentage > 10 && !ObjectManager.Me.HaveBuff("Abolish Disease")) {
        Interact.InteractGameObject(ObjectManager.Me.GetBaseAddress);
        AbolishDisease.Launch();
        Lua.LuaDoString("ClearTarget();");
        hasDisease = false;
    }

But that does not seem to work

 

9 minutes ago, penumbra said:

Thanks,

 

Im trying the following
 


    public bool hasDisease = false;

    hasDisease = Lua.LuaDoString<bool>("for i=1,40 do local texture, count, debuffType = UnitDebuff('player', i); if debuffType == 'Disease' then return true break; end end");

    if (hasDisease && SpellManager.SpellUsableLUA("Abolish Disease") && ObjectManager.Me.ManaPercentage > 10 && !ObjectManager.Me.HaveBuff("Abolish Disease")) {
        Interact.InteractGameObject(ObjectManager.Me.GetBaseAddress);
        AbolishDisease.Launch();
        Lua.LuaDoString("ClearTarget();");
        hasDisease = false;
    }

But that does not seem to work

 

What expansion are you on? Your LUA looks incorrect.

Using https://vanilla-wow.fandom.com/wiki/API_UnitDebuff as an example, debufftype would be the 5th property, not the 3rd like in your example. In lua you need to declare all the other properties before the one you want so you could do
local _, _, _, _, debuffType = UnitDebuff('player', i)

  • Author
5 minutes ago, Marsbar said:

What expansion are you on? Your LUA looks incorrect.

Using https://vanilla-wow.fandom.com/wiki/API_UnitDebuff as an example, debufftype would be the 5th property, not the 3rd like in your example. In lua you need to declare all the other properties before the one you want so you could do
local _, _, _, _, debuffType = UnitDebuff('player', i)

Thanks,

I am on WOTLK

  • Author

For those that come later:

The following work for WOTLK

 

hasDisease = Lua.LuaDoString<bool>("for i=1,40 do local _, _, _, _, debuffType = UnitDebuff('player', i); if debuffType == 'Disease' then return true; end end");

	
if (hasDisease && SpellManager.SpellUsableLUA("Abolish Disease") && ObjectManager.Me.ManaPercentage > 10 && !ObjectManager.Me.HaveBuff("Abolish Disease") && !ObjectManager.Me.InCombatFlagOnly) {
        Interact.InteractGameObject(ObjectManager.Me.GetBaseAddress);
        AbolishDisease.Launch();
        Lua.LuaDoString("ClearTarget();");
        hasDisease = false;
}

 

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.