What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

API wish list.

Exmortem

Community Developer
Joined
Mar 28, 2010
Messages
799
CurrentEorzeaTime()
Teleport("string or id")

If possible, thank you for all your hard work.
 
Teleportation is going to take some work due to how crazy they sort the list, current time ill take a look at.
 
// the following porting code worked for me in my test

var locationsToPort = ff14bot.Managers.WorldManager.AvalibleLocations;
ff14bot.Managers.WorldManager.Teleport(locationsToPort[0].Name);
 
// the following porting code worked for me in my test

var locationsToPort = ff14bot.Managers.WorldManager.AvalibleLocations;
ff14bot.Managers.WorldManager.Teleport(locationsToPort[0].Name);


You can use partial matchs.

ff14bot.Managers.WorldManager.Teleport("limsa");
 
Can you add CurrentRegion to ff14bot.Core.Me or ff14bot.Managers.WorldManager?
 
Could you do proper polling or make it so that the api doesn't recreate the info everytime you poll the api. Makes it a lot harder to code plugins when I have to figure out polling instead of the already built api that has most of that info.
 
Could you do proper polling or make it so that the api doesn't recreate the info everytime you poll the api. Makes it a lot harder to code plugins when I have to figure out polling instead of the already built api that has most of that info.


What?
 

Your currently fetch the most current values from memory when a consumer requests them. For example, if I do:

Code:
 PartyManager.AllMembers

I receive the latest copy from memory -- this is desirable in some cases but it requires myself to implement my own polling. This means if I ask for the value now, assign it a UserControl and have it monitor that reference, I can't do that. This is because the value is only updated when I make an explicit call to the getter. This causes two complications:

1: The data isn't being updated in the background by anything. Is this by design, and up to the author to solve?
2: This means data binding cannot possibly work. This is because nothing is ever truly changed.
 
Your currently fetch the most current values from memory when a consumer requests them. For example, if I do:

Code:
 PartyManager.AllMembers

I receive the latest copy from memory -- this is desirable in some cases but it requires myself to implement my own polling. This means if I ask for the value now, assign it a UserControl and have it monitor that reference, I can't do that. This is because the value is only updated when I make an explicit call to the getter. This causes two complications:

1: The data isn't being updated in the background by anything. Is this by design, and up to the author to solve?
2: This means data binding cannot possibly work. This is because nothing is ever truly changed.

We do caching at the memory library level. The bot caches data for 1 tick and then clears the cache. If the bot is not 'started' then youll run into issues where youll get objects that don't update. If your storing the object results from the partymanager you can work around this by wrapping where you update the fields with
Code:
                        using (Core.Memory.TemporaryCacheState(true))
                        {
somefield = PartyMemberobj.CurrentHealth;
}
 
We do caching at the memory library level. The bot caches data for 1 tick and then clears the cache. If the bot is not 'started' then youll run into issues where youll get objects that don't update. If your storing the object results from the partymanager you can work around this by wrapping where you update the fields with
Code:
                        using (Core.Memory.TemporaryCacheState(true))
                        {
somefield = PartyMemberobj.CurrentHealth;
}

Ah. Great! Thank you very much for that info. Much appreciated.
 
Can you post an example of how you databinded partymanager to a user control please?
 
Can you post an example of how you databinded partymanager to a user control please?
example this quick a dirty.
Code:
using System.Windows.Forms;
using ff14bot.Managers;

namespace Reborn_Healer.Controls
{
    public partial class test : UserControl
    {
        private PartyMember _member;

        public void DataBind()
        {
            progressBar1.DataBindings.Add("Maximum", Member, "MaxHP");
            progressBar1.DataBindings.Add("Value", Member, "CurrentHP");
        }

        public test(PartyMember member)
        {
            _member = member;
            InitializeComponent();
        }

        public PartyMember Member
        {
            get { return _member; }
            set { Member = value; UpdateUI(); }
        }

        public void UpdateUI()
        {
            DataBind();
        }
    }
}

That's a user control I built. What you will have to do on your main winform, is to pass in the information for the member your tryin to poll and have that information poll through a Timer and looping through partymanager to check for updates. Cant provide the winform part cause I Decided to do something completely different now and rewrote a lot of code now. But basically youll need a for loop to check for each member and if you make a user control you could pass in info to each user control on demand and update each user control on the fly for each member.
 
I'm trying to understand and learn this, i'm currently using this to update my form - it works for the first tick but then doesn't constantly update the progress bar with my health.

Code:
        public void OnPulse()
        {
            UpdateForm();
        }


        public void UpdateForm()
        {
            if (Core.Me.InCombat)
            {
                using (Core.Memory.TemporaryCacheState(true))
                {
                    MethodInvoker action = () => _form.progressBar1.Value = (int)Core.Me.CurrentHealthPercent;
                    _form.BeginInvoke(action);
                }
            }
        }

I'm just trying to get a form updated in real time with info from the game.
 
I'm trying to understand and learn this, i'm currently using this to update my form - it works for the first tick but then doesn't constantly update the progress bar with my health.

Code:
        public void OnPulse()
        {
            UpdateForm();
        }


        public void UpdateForm()
        {
            if (Core.Me.InCombat)
            {
                using (Core.Memory.TemporaryCacheState(true))
                {
                    MethodInvoker action = () => _form.progressBar1.Value = (int)Core.Me.CurrentHealthPercent;
                    _form.BeginInvoke(action);
                }
            }
        }

I'm just trying to get a form updated in real time with info from the game.

are you doing that inside of the one .cs file that inherits the main plugin? I tried to keep those separated. I sent you a Skype request easier to chat on there then forums lol. But what I can do is fix your code to bare minimal of what you want your form or w/e to do atm and zip it up and put on forums ill edit it and get It running for ya so you can see the code. Then you can go from there.
 
are you doing that inside of the one .cs file that inherits the main plugin? I tried to keep those separated. I sent you a Skype request easier to chat on there then forums lol. But what I can do is fix your code to bare minimal of what you want your form or w/e to do atm and zip it up and put on forums ill edit it and get It running for ya so you can see the code. Then you can go from there.

Damn man, if you could do that that would be awesome.
 
This is all i'm trying to do right now, keep a progressbar updated with my current health. So this is just a bare plugin with a simple form.
 
Back
Top