What's new
  • Visit Rebornbuddy
  • Visit Resources
  • Visit API Documentation
  • Visit Downloads
  • Visit Portal
  • Visit Panda Profiles
  • Visit LLamamMagic

[Release] RebornBuddy64 Version 1.0.726 - DirectX11 / x64 bit compatible

Is the navserver down right now?
Sorry about that, I moved the auth server and the navserver was still using a old domain instead of the new one. Leading to the nav server being unable to check if sessions were valid.
 
I've updated the navserver to utilize the proper domain, and improved the authentication logic.
 
Version 776

Code:
Api Changes:

FishingManager.ChangeBait added
WorldManager.GetWeatherForZone(uint zoneid, int houroffset) added

Orderbot changes:

Two new functions are available in the condition parser
IsWeatherInZone(uint zoneid, params string[] weather)
IsWeatherInZoneOffset(uint zoneid,int houroffset, params string[] weather)

ExMatt's excellent fishing tag has been ported over and is now included in the base install of RB. 
This is a first pass at getting this functional again, and it works well for the most part. The logic for checking if a fish is "high-quality" will likely need to be updated as well as a few strings for the global markets

Also further enhancements to the speed of the login server was done today.
 
Last edited:
Version 779
Code:
FrameCachedObject now internally locks, this is to prevent issues where 3rd party plugins can call functions from a gui thread while the bot is starting up causing race conditions
 
Version 780

Code:
Optimize FishingManager.ChangeBait slightly
Fixed filtering updatebuddy to show only products available in your region
Fixed some issues with updatebuddy when playing in a nonenglish locale

New Plugins:
Added a plugin to enable placing your character name in the title of the program
Added a plugin to enable minimizing rebornbudddy to the system tray
 
Last edited:
Version 782
Code:
Api Changes:
Catch window is now supported

Catch.FishName, Catch.Large, Catch.FishSize,Catch.QualityStars,Catch.Quantity,Catch.CaughtFish

Fish tag now uses this window instead of scraping the chatlog for increased profile compability across different locales
 
Today will update patch 7.4
The bot might need to be updated as well. I’d really appreciate it if you could help update the Offsets.
Thank you!
 
Version 787
Code:
First release for version 7.4

Some internal logic changed with this version, especially regarding Shops and Ground targeted spells
As usual, if you encounter any issues please try with a clean install and if they still occur then please post a log.
 
Version 787
Code:
First release for version 7.4

Some internal logic changed with this version, especially regarding Shops and Ground targeted spells
As usual, if you encounter any issues please try with a clean install and if they still occur then please post a log.
The newest version is having issues navigating.
 

Attachments

New build should resolve that issue, but there seems to be another inssue with getto, looking into that one now, its more complex
 
New build coming now that should resolve the getto issue.
 
Your last update is causing my client to crash constantly with Dalamud enabled. It was working perfectly fine before your latest update.
 
Your last update is causing my client to crash constantly with Dalamud enabled. It was working perfectly fine before your latest update.

Nothing has changed in the last 5 versions that would effect Dalamud. From 795 to 796 there was actually 0 internal code changes and just a small update to the external crafting macro generator.
 
Thanks for all the work. I wonder if you could add one feature that I would love that would be a one time implementation. I have multiple monitors and even for those with Single, would really be great to have it store the monitor and location on closing, so it opens in the same location each time. I have put a snippet of the code below to manage this if possible.

Code:
public class WindowPlacementSettings
{
    public double Left { get; set; }
    public double Top { get; set; }
    public double Width { get; set; }
    public double Height { get; set; }
    public string MonitorDeviceName { get; set; }
    public WindowState WindowState { get; set; }
}

using System;
using System.Linq;
using System.Windows;
using System.Windows.Forms;

public static class WindowPlacementHelper
{
    public static WindowPlacementSettings GetPlacement(Window window)
    {
        if (window.WindowState == WindowState.Minimized)
            return null;

        var screen = Screen.FromPoint(
            new System.Drawing.Point(
                (int)window.Left + 10,
                (int)window.Top + 10));

        return new WindowPlacementSettings
        {
            Left = window.RestoreBounds.Left,
            Top = window.RestoreBounds.Top,
            Width = window.RestoreBounds.Width,
            Height = window.RestoreBounds.Height,
            MonitorDeviceName = screen.DeviceName,
            WindowState = window.WindowState
        };
    }

    public static void RestorePlacement(Window window, WindowPlacementSettings settings)
    {
        if (settings == null)
            return;

        var screen = Screen.AllScreens
            .FirstOrDefault(s => s.DeviceName == settings.MonitorDeviceName)
            ?? Screen.PrimaryScreen;

        var bounds = screen.WorkingArea;

        // Clamp values so window always appears onscreen
        window.Left = Math.Max(bounds.Left,
            Math.Min(settings.Left, bounds.Right - settings.Width));
        window.Top = Math.Max(bounds.Top,
            Math.Min(settings.Top, bounds.Bottom - settings.Height));

        window.Width = settings.Width;
        window.Height = settings.Height;

        window.WindowState = settings.WindowState;
    }
}

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
    base.OnClosing(e);

    var placement = WindowPlacementHelper.GetPlacement(this);

    if (placement != null)
    {
        Properties.Settings.Default.WindowPlacement =
            System.Text.Json.JsonSerializer.Serialize(placement);

        Properties.Settings.Default.Save();
    }
}

protected override void OnSourceInitialized(EventArgs e)
{
    base.OnSourceInitialized(e);

    var json = Properties.Settings.Default.WindowPlacement;

    if (!string.IsNullOrEmpty(json))
    {
        var placement =
            System.Text.Json.JsonSerializer.Deserialize<WindowPlacementSettings>(json);

        WindowPlacementHelper.RestorePlacement(this, placement);
    }
}

New Settting in Settings.settings - WindowPlacement (String)

WinForms Version:
Code:
[Serializable]
public class FormPlacementSettings
{
    public int X { get; set; }
    public int Y { get; set; }
    public int Width { get; set; }
    public int Height { get; set; }
    public FormWindowState WindowState { get; set; }
    public string MonitorDeviceName { get; set; }
}

using System;
using System.Linq;
using System.Text.Json;
using System.Windows.Forms;

public static class FormPlacementHelper
{
    public static FormPlacementSettings GetPlacement(Form form)
    {
        if (form.WindowState == FormWindowState.Minimized)
            return null;

        var bounds = form.WindowState == FormWindowState.Normal
            ? form.Bounds
            : form.RestoreBounds;

        var screen = Screen.FromRectangle(bounds);

        return new FormPlacementSettings
        {
            X = bounds.X,
            Y = bounds.Y,
            Width = bounds.Width,
            Height = bounds.Height,
            WindowState = form.WindowState,
            MonitorDeviceName = screen.DeviceName
        };
    }

    public static void RestorePlacement(Form form, FormPlacementSettings settings)
    {
        if (settings == null)
            return;

        var screen = Screen.AllScreens
            .FirstOrDefault(s => s.DeviceName == settings.MonitorDeviceName)
            ?? Screen.PrimaryScreen;

        var workingArea = screen.WorkingArea;

        int x = Math.Max(workingArea.Left,
            Math.Min(settings.X, workingArea.Right - settings.Width));
        int y = Math.Max(workingArea.Top,
            Math.Min(settings.Y, workingArea.Bottom - settings.Height));

        form.StartPosition = FormStartPosition.Manual;
        form.Bounds = new System.Drawing.Rectangle(
            x, y, settings.Width, settings.Height);

        form.WindowState = settings.WindowState;
    }
}

protected override void OnFormClosing(FormClosingEventArgs e)
{
    base.OnFormClosing(e);

    var placement = FormPlacementHelper.GetPlacement(this);

    if (placement != null)
    {
        Properties.Settings.Default.FormPlacement =
            JsonSerializer.Serialize(placement);

        Properties.Settings.Default.Save();
    }
}

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    var json = Properties.Settings.Default.FormPlacement;

    if (!string.IsNullOrWhiteSpace(json))
    {
        var placement =
            JsonSerializer.Deserialize<FormPlacementSettings>(json);

        FormPlacementHelper.RestorePlacement(this, placement);
    }
}

New Settings.settings - FormPlacement (STRING)
 
Back
Top