What's new in Reforged
EasyUO Reforged is a port of EasyUO 1.5 from Delphi 7 to Lazarus / Free Pascal, as a native 64-bit Windows
application. The language is the same and existing .euo scripts are meant to run unchanged: every
command, every #variable and the quirks scripts rely on (tick timing, GOTO / GOSUB resolution,
EXIT restarting the script, …) are kept on purpose.
What it adds is listed below. Reference pages mark these with New in Reforged or Changed in Reforged, and the command and variable lists can filter on both.
New commands and variables
Section titled “New commands and variables”Path: plan a walking route anywhere on the facet, around walls and water, over bridges and up stairs, from the client’s own map files, and walk it.path goandpath walkwalk a route and wait;path stepandpath stoplet a script heal or fight meanwhile.- The walker walks step by step, or drives the client’s own pathfinder a stretch at a time. It sees the items, doors, creatures and house walls your client holds, opens doors, and goes round what it finds in the way.
- It asks the client itself about the next 12 tiles of the route, so it goes round a house it can’t read
before stepping into it.
path checkasks the same from a script. - With
path block,path avoidandpath linka script adds what the map doesn’t know. - Whether a step is a walk or a run is the client’s choice; Running shows how a script can make it run. On a mount, steps go out fast enough for a full-speed run.
- Results come back in
#PathState,#PathCnt,#PathX,#PathY,#PathZand#PathDir.
SQL: keep data in an SQLite database file, with raw SQL or a quicksave/loadof variables. Results come back in#SqlRes,#SqlCnt,#SqlChangesand#SqlLastID. See Using SQL.ScanBuffs: read the buff bar, with names, descriptions and timers, through#BuffCnt,#BuffIndex,#BuffID,#BuffCliloc,#BuffName,#BuffDesc,#BuffTimeand#BuffBarOpen.- EasyUO 1.6’s
menu: besides themenuof EasyUO 1.5, Reforged runs the rewritten one of EasyUO 1.6, so scripts written for 1.6 show their windows. Each script runs under one or the other, picked from the sub-commands it uses.- The sub-commands only 1.6 has:
menu Form,menu Panel,menu Radio,menu GetProp,menu SetProp,menu GetDef,menu SetDef,menu PushDefandmenu PopDef. menu Reforge Modesets the system for a script;menu Reforge IncludeCallmakes the automatic choice read the files the script calls.
- The sub-commands only 1.6 has:
#MountIDand#MountType: the ID and type of the mount item your character rides,N/Aon foot.#FindLayer: the layer a character wears the objectFindItemselected in.menu Memo: a multi-line, scrollable text field for menu windows.#ReforgedVer: the build version of EasyUO Reforged.#EUOVerstill returns1_50_00, so existing version checks keep working.
Changed behaviour
Section titled “Changed behaviour”FindItemalso fills#FindLayer. Nothing else it does has changed.Tilereads the.uopmap files of newer client installs directly; there is no need to extract them to the old.mulformat first.Tilereads current maps correctly: Trammel from its own files instead of Felucca’s, Felucca and Trammel up to x 7167 instead of 6143, and Ter Mur from the right place in its files. Scripts can see different tiles there than in EasyUO 1.5. Plaintile initalso works on installs that lack some of the map patch files, instead of stopping the script.
uo.dll
Section titled “uo.dll”uo.dllis a 64-bit build, for 64-bit programs. Its API is unchanged, plusScanBuffs,GetBuffandBuffBarOpenfor the buff bar, and the pathfinder for external programs:GetPathplans a route,PathCanandPathCheckcheck a tile or a step, andPathSet,PathBlock,PathUnblock,PathAvoid,PathLinkandPathClearset its options and rules. They plan; they don’t walk.MountIDandMountTyperead the mount, as#MountIDand#MountType(0 on foot), andGetItemLayerthe equip layer of an item of theScanItemslist, as#FindLayer.GetItem’s results are unchanged.BlockInfono longer crashesclient.exe7.0.117.1: EasyUO 1.5 passed the client’s function one argument too few. Its page now says what the two bytes per tile mean.
The editor
Section titled “The editor”- Line numbers and Ctrl+Space autocomplete (it knows the sub-commands of
menu,sql,eventand the others, and the property names ofmenu GetProp). - The status bar shows which
menusystem a script runs, and a message tells you when a script needs the other one. - A Find and Replace window with regular expressions, wrap-around, a match count, every match highlighted, search in a selection or in all open scripts, search history, and F3 / Shift+F3.
- Code folding for subs,
{ }blocks andrepeat, with Fold All / Unfold All. - Format Script (Ctrl+Shift+F) re-indents a script in one step.
- Breakpoints, conditional breakpoints, step into / over / out, run to cursor and a live call stack.
The MENU Designer
Section titled “The MENU Designer”- The MENU Designer (
EUOMenuDesigner.exe, in the release zip): lays out EasyUO 1.6 menu windows on a canvas, with alignment tools and snapping, and writes their script, one sub per window. It opens scripts too, including ones it did not write, and reads theirmenulines back into windows you can go on editing.
Not in Reforged
Section titled “Not in Reforged”event Sleepis accepted but does nothing.PlayCD,StopCDandInitEventsdo nothing, as in EasyUO 1.5.
See also the known limitations.