Poll

New set of feature's name? (read)

BLG Unite
7 (77.8%)
BLG Link
1 (11.1%)
Other (post)
1 (11.1%)

Total Members Voted: 9

Author Topic: BLG (Unite) Development  (Read 48958 times)

It works! I didn't even have the .gui file on the client.
« Last Edit: April 08, 2012, 09:20:05 PM by Scout31 »

Nice work. Do you have any working input controls yet?

Alpha 1

Download

Alone, this does nothing to your game. You must join a server where the host has integrated their add-on with BLG. Also, it currently only works with RTB installed.

Features:
  • GUI Download System

Developers
To add in your GUI, use the following code:
Code: [Select]
exec("MyGui.gui");
BLG_GDS.registerObject(MyGui);

Opening your GUI:
Code: [Select]
BLG_GDS.getDataObject(MyGui).push(%client);
Closing:
Code: [Select]
BLG_GDS.getDataObject(MyGui).pop(%client);
Modifying the value of a property:
Code: [Select]
BLG_GDS.getDataObject(MyProperty).updateAttribute(%client, %data, %value);Example:
Code: [Select]
BLG_GDS.getDataObject(MyProperty).updateAttribute(findclientbyname(Jincux), "extent", "100 100");
To capture input (command, altCommand, closeCommand), use one of the following commands:
Code: [Select]
BLG_GDS.getDataObject(MyButton).registerHandler("MyHandleFunction");
BLG_GDS.getDataObject(MyInput).registerAltHandler("MyAltHandleFunction");
BLG_GDS.getDataObject(MyWindow).registerCloseHandler("MyEscapeHandleFunction");

Example of a handle function:
Code: [Select]
function MyButtonPressHandle(%client, %dataObject) {
     //Do stuff
}

EDIT: I will be adding keybinds next update.
« Last Edit: April 07, 2012, 03:24:59 PM by Scout31 »

Glad to see this is still in development.

Alpha 2

After spending an hour or two with Nullable/DC4F, we squashed a lot of bugs and added a ton of security.

Download

Additions
  • Added ability to change the value of an object with getDataObject(MyObject).setValue(%client, "MyValue")

Changes
  • ClassName is now verified
  • Object name is now verified
  • Numbers are now verified to be numbers
  • Reduced the amount of script that is eval'd
  • Disconnect now cleans up correctly
« Last Edit: April 07, 2012, 06:58:36 PM by Scout31 »

Beta 1

As we've implemented all of the planned features, it's time to move into the beta stage. Please remember to submit any bugs, tweaks, or feature adjustments on our issue tracker.

Download

Additions
  • HUD Manager

Changes
  • Security check tweaks
  • Security checks actually work (Thanks, Greek2Me)
  • Instead of denying a string, make it safe


Using HUD Manager:

To register a new value,
Code: [Select]
BLG_HUDS.registerValue(%type, %name, %defaultValue);Types:
  • text - Displays text
  • progressbar - Progress bar. Value is two lines; line one is a number between 0 and 1, line two is the text in the progress bar

Example (Left in Beta 1 for testing purpose, but non-functional):
Code: [Select]
BLG_HUDS.registerValue("text", "Ammo", "None");
BLG_HUDS.registerValue("progressbar", "Health", "1" NL "%100");

To update a HUD value,
Code: [Select]
%client.updateHUD(%name, %value);

The only issue I see with this is that it looks like it will be very hard or even impossible to create a large GUI like the Slayer GUI.

Aside from that, it looks very good. I can see a lot of use for smaller HUDs and stuff.

I have no clue how I overlooked this, but I just realized that lists and a few other elements won't work without adding in more special functions. That'll be in beta 2, along with getting the value of inputs and possibly keybinds. I'm still not sure how to go about doing keybinds. We could either have a few slots that the player can bind (BLG slot 1, ect), which the server can then forward to different add-ons, or force binds, which would never end well. I don't particularly favor either of those, but I'll just have to pick the lesser of two evils.

I have no clue how I overlooked this, but I just realized that lists and a few other elements won't work without adding in more special functions. That'll be in beta 2, along with getting the value of inputs and possibly keybinds. I'm still not sure how to go about doing keybinds. We could either have a few slots that the player can bind (BLG slot 1, ect), which the server can then forward to different add-ons, or force binds, which would never end well. I don't particularly favor either of those, but I'll just have to pick the lesser of two evils.
Third alternative: ask the user to bind it, saving it for next time (with the ability to change that setting somewhere, of course).

Keep at it. The GUI downloader would be heaven for someone like me who flicks between CityRPG servers a lot-- sick of having to crawl through RTB to get server-specific GUI mods.

Third alternative: ask the user to bind it, saving it for next time (with the ability to change that setting somewhere, of course).
I thought of that too. It just dawned on me that we could use GlobalActionMap.bind/GlobalActionMap.unbind.

I finished the client side of bindings. The way I made it dynamic is just to have the binds act when the PlayGui is open with no other GUIs open.

You doing well buddy :) keep up the good work!

Release Candidate 1

Keybinds! This still contains all of the testing objects, which will be removed before the actual release.

Download

Additions
  • Keybinds
  • Require BLG to join the server by using BLG.setRequired();
  • List Functionality

Developers

As most developers know, this is the normal code to register a normal keybind:
Code: [Select]
$remapDivision[$remapCount] = "My Divison";
$remapName[$remapCount] = "My Name";
$remapCmd[$remapCount] = "command";
$remapCount++;

BLG's is just as simple, if not simpler:
Code: [Select]
BLG_GKS.newBind("My Name", "command");
The only difference is the argument fed to the command is the client.
« Last Edit: April 12, 2012, 08:00:15 PM by Scout31 »

Release Candidate 2

Candidate or Release?

Download

Additions
  • Auto-Updater
  • Popup menu support
  • No longer dependent on RTB

Changes
  • Removed test objects

Please, if there are any unimplemented features or bugs, make sure to submit them, as we don't want to release lacking features or with bugs!