ExileCore menu

User Tag List

Thread: ExileCore

Results 1 to 11 of 11
  1. #1
    XiNoMaHc's Avatar Member CoreCoins Purchaser
    Reputation
    1
    Join Date
    Apr 2020
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    ExileCore

    Can someone provide some valid usages for ExileCore.dll as a reference in another project over pm i dont mind paying/tipping for this.

    ExileCore
  2. #2
    Sychotix's Avatar Moderator Authenticator enabled
    Reputation
    1421
    Join Date
    Apr 2006
    Posts
    3,942
    Thanks G/R
    285/572
    Trade Feedback
    1 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by XiNoMaHc View Post
    Can someone provide some valid usages for ExileCore.dll as a reference in another project over pm i dont mind paying/tipping for this.
    That is like asking what can you cook with rice. You have the source code, you can code basically anything using it as a base or starting point. It has a lot of the interactions setup for you, which makes things easier... but it doesn't restrict you to coding any one thing/way.

  3. #3
    XiNoMaHc's Avatar Member CoreCoins Purchaser
    Reputation
    1
    Join Date
    Apr 2020
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sychotix View Post
    That is like asking what can you cook with rice. You have the source code, you can code basically anything using it as a base or starting point. It has a lot of the interactions setup for you, which makes things easier... but it doesn't restrict you to coding any one thing/way.
    Ok i get that, but i cant seem to find an example that uses the dll.. instead every example i see its from a plugin that relies on the loader to do the init... im trying to find an example where one can see the items in inventory for example... yet i cant seem to get the rice cooker to cook the rice properly

  4. #4
    Sychotix's Avatar Moderator Authenticator enabled
    Reputation
    1421
    Join Date
    Apr 2006
    Posts
    3,942
    Thanks G/R
    285/572
    Trade Feedback
    1 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by XiNoMaHc View Post
    Ok i get that, but i cant seem to find an example that uses the dll.. instead every example i see its from a plugin that relies on the loader to do the init... im trying to find an example where one can see the items in inventory for example... yet i cant seem to get the rice cooker to cook the rice properly
    So the reason it is normally done in a plugin is because it is meant to be used as a framework to load plugins. I don't believe it is designed to just be used as a library for other programs, so you might be better off ripping out the code you want and starting from there.

  5. #5
    XiNoMaHc's Avatar Member CoreCoins Purchaser
    Reputation
    1
    Join Date
    Apr 2020
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sychotix View Post
    So the reason it is normally done in a plugin is because it is meant to be used as a framework to load plugins. I don't believe it is designed to just be used as a library for other programs, so you might be better off ripping out the code you want and starting from there.
    Yeah sadly that dosnt fit the use case i had planed, I would rly like to have it as a standalone reference in a project and it seems to be hard to find working examples of a simple memory reading without using the framework entirely..

  6. #6
    Sychotix's Avatar Moderator Authenticator enabled
    Reputation
    1421
    Join Date
    Apr 2006
    Posts
    3,942
    Thanks G/R
    285/572
    Trade Feedback
    1 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by XiNoMaHc View Post
    Yeah sadly that dosnt fit the use case i had planed, I would rly like to have it as a standalone reference in a project and it seems to be hard to find working examples of a simple memory reading without using the framework entirely..
    Well the problem is, in order to get to something like your inventory, you have to go through 4 or 5 memory structures in order to find the data. I don't see how having the source code doesn't fit your use case. Rip out only the chunks you need if the entire framework is too much for you.

    https://www.ownedcore.com/forums/mmo...nsion-dll.html (PoEapi - AHK extension dll)

    Perhaps something like this might interest you?

  7. #7
    XiNoMaHc's Avatar Member CoreCoins Purchaser
    Reputation
    1
    Join Date
    Apr 2020
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sychotix View Post
    Well the problem is, in order to get to something like your inventory, you have to go through 4 or 5 memory structures in order to find the data. I don't see how having the source code doesn't fit your use case. Rip out only the chunks you need if the entire framework is too much for you.

    https://www.ownedcore.com/forums/mmo...nsion-dll.html (PoEapi - AHK extension dll)

    Perhaps something like this might interest you?
    sadly no but thanks for the tip(s), guess i dont have the skills for what im trying to implement, ive never messed around much with assembly or things of this kind, hence trying to reach out and see if someone is willing to share experience.

  8. #8
    Sychotix's Avatar Moderator Authenticator enabled
    Reputation
    1421
    Join Date
    Apr 2006
    Posts
    3,942
    Thanks G/R
    285/572
    Trade Feedback
    1 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by XiNoMaHc View Post
    sadly no but thanks for the tip(s), guess i dont have the skills for what im trying to implement, ive never messed around much with assembly or things of this kind, hence trying to reach out and see if someone is willing to share experience.
    Thankfully, you shouldn't have to touch anything low-level as this is assembly. This is all C#.

    That said, the concepts that go along with interacting with a game can be a little advanced, depending on your programming experience. Perhaps take up the challenge and if you don't know how to do a thing, google it? There is a near infinite amount of resources on the internet for learning how to program.

  9. #9
    GameAssist's Avatar Banned CoreCoins Purchaser Authenticator enabled
    Reputation
    98
    Join Date
    Apr 2010
    Posts
    349
    Thanks G/R
    55/83
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    As far as I know, it is not customary to spoon feed on this forum. But since the great build presented on this forum is quite complex, I can probably post some code to help you debug both the DLL and your component in real time directly from Visual Studio.
    Code:
    public class Exile : IDisposable{
            ExileCore.Core core;
            State state { get; } // <--
            Stopwatch sw=new Stopwatch();
            public Exile(State _state) {
              ...
                LoadCoreDllDirect();
            }
           void LoadCoreDllDirect() {
                var _form = new ApplForm();
                core = new ExileCore.Core(_form);
                ExileCore.Core.Logger = new LoggerConfiguration()
                .Enrich.FromLogContext()
                //.WriteTo.Console()<== need insall for
                .CreateLogger();
              
                LoadPlugins();
    	   //standard way of Core updating with "HUD". 
    //You can also use the core.Tick() in your thread, but then you will lose  ImGuiNET HUD, and its calls will need to be commented out in the Core code. 
                RenderLoop.Run(_form, () => {
                    try {
                        core.Render();
                    }
                    catch(Exception ex) {
                        state.AddToLog?.Invoke("() err" + ex.Message);
                    }
                });
            }
           async void LoadPlugins() {
                await Task.Delay(300); // for left menu creating
                test = (LoadPlugin(typeof(Test)) as Test); // your class Test :BaseSettingsPlugin<TestSettings>
                test.state = state; //
                LoadPlugin(typeof(IconsBuilder));//same standart IconsBuilder like direct .cs  code
            }
            IPlugin LoadPlugin(Type t) {
                sw.Restart();
                var instance = (IPlugin)Activator.CreateInstance(t);
                var pw = new PluginWrapper(instance);
                pw.SetApi(gc, core.Graphics, core.pluginManager);
                pw.LoadSettings();
                pw.Onload();
                instance.DirectoryFullName = Application.StartupPath;
                core.pluginManager.Plugins.Add(pw);
                var mmi = core.pluginManager.Plugins.Find((p) => p.Name == pw.Name).Plugin;
                mmi.Initialise();
                DebugWindow.LogMsg($"{pw.Name} loaded in {sw.ElapsedTostring()} ms.", 1, Color.Orange);
                return instance;
            }
    ...
    }
    
    in your form.Load(,){
              if(exile_thread == null) {
                    exile_thread = new Thread(() => {
                        state = new State(CleareLog, AddToLog, AddToDebug, worker.Jump);
                        var exile = new Exile(state); //
                    });
                    exile_thread.Start();
                }
    ..
    }
    //the layer class through which you will interact with your add-on after blocking the "Exile" in RenderLoop.Run (
    public class State {
            public Action<string> AddToLog;
            public Action<string> AddToDebug;
            public Action CleareLog;
            public Func<Task> Jump;
    ....
    }
    Last edited by GameAssist; 09-09-2020 at 08:52 AM. Reason: added some comments to the code

  10. #10
    MrM000Cow's Avatar Member
    Reputation
    2
    Join Date
    Mar 2007
    Posts
    5
    Thanks G/R
    9/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I was curious about using ExileApi in a similar way. I added ExileApi.dll and GameOffsets.dll as a reference and added the Loader class to my project. Ive modified the Loader class a bit and commented out everything related to _form. I used Core.CreateInstance() to instantiate the core and started a new thread that keeps calling Core.Current.Tick();

    Right now the application just prints out a few things using ExileApi and reprints on area change so its nothing special. I'm still trying to get a handle on how ExileApi works in finer detail and I'm not sure what kind of problems this may cause later down the road.

    Just my 2 cents, good luck!

  11. #11
    Randomizer's Avatar Contributor
    Reputation
    120
    Join Date
    Jun 2008
    Posts
    188
    Thanks G/R
    6/0
    Trade Feedback
    1 (100%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by MrM000Cow View Post
    I was curious about using ExileApi in a similar way. I added ExileApi.dll and GameOffsets.dll as a reference and added the Loader class to my project. Ive modified the Loader class a bit and commented out everything related to _form. I used Core.CreateInstance() to instantiate the core and started a new thread that keeps calling Core.Current.Tick();

    Right now the application just prints out a few things using ExileApi and reprints on area change so its nothing special. I'm still trying to get a handle on how ExileApi works in finer detail and I'm not sure what kind of problems this may cause later down the road.

    Just my 2 cents, good luck!
    You are better off using ExileApi as an example and creating your own base off of it. It is missing a lot, however the model structure is worth keeping for the most part.
    Yup.

All times are GMT -5. The time now is 08:52 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search