GithubHelp home page GithubHelp logo

onimitch / ffxi-balloon-ashitav4 Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 26.23 MB

This is an Ashita v4 port of the Balloon addon, forked from StarlitGhost's version. The original Windower Balloon addon was created by Hando and modified by Kenshi, Yuki and Ghosty.

License: Other

Lua 99.64% Shell 0.36%

ffxi-balloon-ashitav4's Introduction

Balloon (Ashita v4 Port)

This is an Ashita v4 port of the Balloon addon, forked from StarlitGhost's version.

The original Windower Balloon addon was created by Hando and modified by Kenshi, Yuki and Ghosty.

This Ashita v4 port was created by onimitch.

Example default

How to install:

  1. Download the latest Release from the Releases page
  2. Extract the balloon folder to your Ashita4/addons folder

How to enable it in-game:

  1. Login to your character in FFXI
  2. Type /addon load balloon

How to have Ashita load it automatically:

  1. Go to your Ashita v4 folder
  2. Open the file Ashita4/scripts/default.txt
  3. Add /addon load balloon to the list of addons to load under "Load Plugins and Addons"

Commands

You can use /balloon or /bl

/balloon 0 - Hide balloon & display npc text in game log window.

/balloon 1 - Show balloon & hide npc text from game log window.

/balloon 2 - Show balloon & display npc text in game log window.

/balloon reset - Reset all settings back to default.

/balloon reset pos - Reset the balloon position.

/balloon theme <theme> - Switch theme (see below for info on Themes).

/balloon scale <scale> - Scales the size of the balloon by a decimal (eg: 1.5).

/balloon delay <seconds> - Delay before closing promptless balloons.

/balloon speed <chars per second> - Speed that text is displayed, in characters per second. Set to 0 to disable.

/balloon portrait - Toggle the display of character portraits, if the theme has settings for them.

/balloon move_closes - Toggle balloon auto-close on player movement.

/balloon always_on_top - Toggle always on top (IMGUI mode). This mode renders the final elements using IMGUI to ensure Balloon always appears in front of any other custom UI. If for some reason you have issues with this mode, you can use this command to disable it.

/balloon in_combat - Toggle displaying balloon during combat (off by default).

/balloon test <name> <lang> <mode> - Display a test bubble. Lang: "-" (auto), "en" or "ja". Mode: 1 (dialogue), 2 (system).

/balloon test - List all available tests.

Moving balloon

While the balloon is open you can use the mouse to click and drag it to move it around.

Themes

There are currently four themes bundled with the addon.

default

Example default

ffvii-r

Requires "Libre Franklin Medium" or "Libre Franklin Regular" font, which you can get free from Google Fonts. Install the font in Windows.

Example ffvii-r

ffxi

Example ffxi

snes-ff

Uses "DotGothic16" font, which you can get free from Google Fonts. Install the font in Windows.

Alternatively it will look for "DePixel" font if "DotGothic16" not installed, which you can get free from Be Fonts.

Example snes-ff

Theme customisation

If you want to customise a theme, copy one of the existing themes from addons/balloon/themes into config/addons/balloon/themes.

Example: config/addons/balloon/themes/my_theme.

In game switch to your new theme: /balloon theme my_theme.

Edit the theme.xml file as you wish, or replace the pngs with alternatives. Sorry there isn't any more help on this for now but hopefully the existing themes are enough to figure out how it works.

Reload the theme by using: /balloon theme my_theme.

See your changes immediately by using one of the test prompts:

e.g: /balloon test bahamut or /balloon test colors.

Issues/Support

I only have limited time available to offer support, but if you have a problem, have discovered a bug or want to request a feature, please create an issue on GitHub.

Gdifonts

This addon uses a custom fork of ThornyXI's gdifonts and gdifonttextures, in order to support colored regions and clipping:

https://github.com/onimitch/gdifonts/tree/regions

https://github.com/onimitch/gdifonttexture/tree/regions

ffxi-balloon-ashitav4's People

Contributors

herschel avatar onimitch avatar starlitghost avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

herschel

ffxi-balloon-ashitav4's Issues

Balloon tests failing in HorizonXI

Just installed version 4.0.4 and wanted to run the tests cases to check my config, running any test causes the addon to unload

balloon-error

I'm not sure if other addons could cause this but changing line 619 to this seems to fix the issue, at least for me:

local message_prefix = (npc_name ~= '' and npc_name .. ' : ') or ''

That ensures message_prefix is not boolean before concatenating in line 620.

Fishing results

I use the Hush addon to remove things like synthesis and fishing results from my log. However, I've noticed with Balloon that fishing results pop up in a balloon. I haven't yet seen/noticed synthesis results, but fishing for sure. Is there a way to turn those off?

Z Sorting

Hello! I just discovered this addon the other day and I think its a huge help for reading game text. One thing I would like to suggest is if its possible to introduce some sort of Z Sorting setting, if that is even possible with the UI framework being used, to have this addon render over all other game UI and other loaded addons.

It specifically has an interesting interaction with the HXUI addon, where the sprite and text are rendered over the HXUI text but not the sprites. It would be great if there was either a "force to front" toggle or being able to set a sort priority. Pictures below to illustrate what I mean. Thanks for considering and developing this addon!

image
image

Option to disable Balloon in battle

@TheConBot It could be nice if there was a toggle to not have the text pop up while you are in battle. I was doing the Tenzen fight CoP mission the other day, and part of that fight had the three Tarus spamming text during the battle and it was constantly popping up during the battle and it was very distracting to the point where I had to disable the addon in the middle of the fight.
From: #13

Honor auto-prompt delay times when animating text

As an enhancement to #3, Balloon could mimic the delay times when an auto-prompt occurs. For example, a 0x7f 0x36 0x02 byte sequence indicates that the text display should pause for 2 seconds(?) before continuing. For accuracy's sake, some logic could be added to pause Balloon's text animation for the same amount of time, as opposed to simply ignoring these sequences.

Text shifts slightly when wrapping to a new line

When Balloon is displaying a long text string, there will be a sudden ~1 pixel shift when the text animation wraps to a new line, probably due to some inconsistency the gdifonttexture clip range logic when a newline occurs.

Example video:
https://github.com/onimitch/ffxi-balloon-ashitav4/assets/36278/28677e30-e540-4b51-bdfc-93629d0d1377

Test case:

tests.wrap_jitter = {
    'Nebibi',
    "But we ladies-in-waiting mustaru go on being our usual perky-werky selves. I can't let my bed-making standards drop just because times are tough!",
    ''
}

Incorrect text in log when using `/bl 1`

When using /bl 1, certain non-NPC messages are incorrectly truncated, causing extraneous characters to appear in the chat log.

Example:
Hersch_2024 01 25_195225

Message data:

"\x1e\x01A home point can be set as a spot for you to return to Vana'diel when you have been knocked out. You can also use a home point to teleport to other home points."

snes-ff theme balloon cut off

Left side of the snes-ff theme is cut off after the latest update on Horizon (not sure about other servers). Verified it wasn't just me with a few streamers and ls mates.

Addon version 4.2.1

image

Prompt/delay characters are not stripped from the middle of a message

Prompt characters are not stripped from the middle of the message, causing extraneous characters to appear:

Hersch_2024 01 25_230652

Test case:

tests.delay = {
    'Lathuya',
    'Now the crafting fee for the \x1e\x02magus shalwar\x1e\x01...\x7f\x36\x02\x07We require an up-front payment of 2 \x1e\x02Imperial mythril pieces\x1e\x01.\x7f\x31',
    ''
}

Balloon crashes ashita addons plugin on "..." or "......" during cutscenes

Ashita API Ver: 4.16 (Git commit 4f0c5f20d7bf270608c529af74c48e85b3580bfb)
Balloon ver: 4.0.2

Other loaded addons (shouldn't matter, confirmed crash is reproducible with only balloon loaded):

  • fps
  • move
  • drawdistance
  • allmaps
  • tcrossbar
  • hxui
  • zonename
  • nomount

Steps to reproduce:

  • Enter any story cutscene where a character says "..." or "......".
  • The cutscene dialogue must consist of only dots. Cutscenes with "Speaker : ...... blah blah" or "Speaker : ...!?" are fine.

Expected result:

  • Addon should show a text box with the said text

Actual result:

  • AshitaV4 addons plugin immediately crashes, causing it to unload all addons

Logs listed below:
Capture2

Capture

Capture

settings.lua:

require('common');

local settings = T{ };
settings["position"] = T{ };
settings["theme"] = "default";
settings["scale"] = 2;
settings["position"]["y"] = 1918;
settings["position"]["x"] = 1924;
settings["portraits"] = true;
settings["no_prompt_close_delay"] = 10;
settings["display_mode"] = 2;
settings["text_speed"] = 100;
settings["move_close"] = true;

return settings;

Obtaining item shows in balloon a split second before the balloon closes

Can you separate out the "Obtained" lines and leave them in the chat log no matter what? With the recent addition to Horizon, it's FANTASTIC, but it shows the item being obtained in a flash before the balloon closes. It's going to cause issues about people not knowing they received items when they just need to check their inventory.

Edit: This is for the setting "/balloon 1"

Ability to view chat log history

It would be nice, especially when the log is hidden, to view previous chat messages in balloon.

My thinking initially is something like:

  1. /balloon history to bring up the most recent message.
  2. Keyboard and controller left/right buttons to move backwards/forwards in time through the previous messages.

This is especially useful where some NPC dialogue is timed (e.g with a cutscene) and you might not have time to read it. The FFXI team obviously don't usually have to worry about this as normally all NPC messages are in the chat log but if we hide the chat log messages with Balloon, it's easy to miss some lines of dialogue that go by too quickly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.