Jump to content

(help) Création d'un Plugin


Elexir

Recommended Posts

Bonjour,

J'ai créé un profil de grinder sur la dernière version du bot, et j'aimerais développer un plugin qui, toutes les 10 minutes, met en pause le grinder, jette tous les objets gris inutiles, puis relance le grinder. Est-ce réalisable ?

Merci d'avance pour votre aide !

Link to comment
Share on other sites

38 minutes ago, Droidz said:

Bonjour,

Il existe des add-ons Wow pour ça comme https://www.curseforge.com/wow/addons/junkremover . Utiliser un add-on de ce type compatible avec votre version du jeu est l'approche la plus simple et la plus fiable.

malheureusement l'API de WOW a suprimer la supression automatique des item gris

 

Quote

Because of recent change to the API addon no longer can automaticly remove any items from your bags. Now every action like that requires a mouse click. I came up with a word around. If addon is enabled it will monitor what gray items you are looting but won't remove them. When you decide you want to remove them just click with your middle mouse button(mouse wheel), each click will remove one item or stack from your bags. Sorry for inconviniance but this is the best I can do given recent change.

 

Link to comment
Share on other sites

9 minutes ago, Droidz said:

Dans la liste des fichiers, il y a des versions pour DF https://www.curseforge.com/wow/addons/junkremover/files/all?page=1&pageSize=20 ; J'ignore ce qu'il en est pour la version actuelle du jeu, mais ça serait étonnant qu'ils aient publié des versions de l'addon pour DF si elles ne fonctionnent pas.

Il y as un edit dans la description de l'addon qui dit que la suppression automatique ne fonctionne plus  pas a cause d'une mis a jour de l'API de wow

Link to comment
Share on other sites

12 minutes ago, Droidz said:

 

Si tu as la version 10.1.7 du jeu essaye cette version de l'addon : https://www.curseforge.com/wow/addons/junkremover/files/4746599

 

J'ai cette version, je pense que c'est la version qui ne fonctionne pas justement, c'est un problème très gênant surtout avec le profils Grinder car de mon coté le bot dés que les sac sont plein va au vendeur le plus proche mais ne retourne pas dans la zone de farm aprés la ventes des items

Link to comment
Share on other sites

using robotManager.Helpful;
using wManager.Wow.Helpers;
using wManager.Plugin;
using Timer = System.Threading.Timer;

public class Main : IPlugin
{
    private bool _isEnabled;

    public void Initialize()
    {
        Logging.Write("[JunkRemover] Plugin initialized and activated");

        _isEnabled = true;

        EventsLua.AttachEventLua("BAG_UPDATE", context => BagUpdateHandler());
    }

    public void Dispose()
    {
        _isEnabled = false;
        Logging.Write("[JunkRemover] Plugin disposed");
    }

    private Timer _debounceTimer;

    private void BagUpdateHandler()
    {
        Logging.Write("[JunkRemover] BAG_UPDATE");
        if (_debounceTimer != null)
        {
            _debounceTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
            _debounceTimer.Dispose();
        }

        _debounceTimer = new Timer((state) =>
        {
            if (_isEnabled)
            {
                Logging.Write("[JunkRemover] Checking bags for junk");
                var needToRunAgain = Lua.LuaDoString<bool>(@"
	                for i = 0, NUM_BAG_SLOTS do
		                for j = 1, C_Container.GetContainerNumSlots(i) do
                            local itemId = C_Container.GetContainerItemID(i, j)
                            if itemId then
			                    local itemName, _, itemQuality = GetItemInfo(C_Container.GetContainerItemID(i, j))
			                    if itemName and itemQuality == 0  then
                                    print('Deleting ' .. itemName)
                                    C_Container.PickupContainerItem(i, j)
                                    DeleteCursorItem()
                                    return true
			                    end
                            end
		                end
	                end
                return false
                ");

                if (needToRunAgain)
                {
                    BagUpdateHandler();
                }
            }
        }, null, 1000, System.Threading.Timeout.Infinite);
    }

    public void Settings()
    {
    }
}

 

JunkRemover.cs

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...