Skip to content

Commit b3b03c8

Browse files
authored
v1.53.5 merge
- restored geforce now compatibility - added optional hotkeys to switch between leveling tracker guide-pages - stash-ninja: price history fix, custom stock for unstackable items
2 parents df9b446 + 571cb1c commit b3b03c8

24 files changed

+795
-557
lines changed

Lailloken UI.ahk

Lines changed: 65 additions & 52 deletions
Large diffs are not rendered by default.

data/changelog.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
[
2+
[
3+
["1.53.5", 15305],
4+
"restored geforce now compatibility",
5+
"added optional hotkeys to switch between leveling tracker guide-pages",
6+
"stash-ninja: price history fix, custom stock for unstackable items"
7+
],
28
[
39
["1.53.4", 15304],
410
"hotfix 1: help tooltips were displayed incorrectly if settings menu was in center position",

data/english/UI.txt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@
153153
global_pattern = "pattern" ;## as in color pattern
154154
global_regular = "regular" ;## as in default
155155
global_setup = "setup"
156+
global_variance = "variance (0-255)"
157+
global_hotkey = "hotkey:"
156158

157159
mechanic_bestiary = "bestiary"
158160
mechanic_betrayal = "betrayal"
@@ -665,9 +667,10 @@
665667
m_lvltracker_pause = "pause timer in hideouts"
666668
m_lvltracker_fade = "fade out after x seconds:"
667669
m_lvltracker_fade = "fade in on mouse-hover"
668-
m_lvltracker_gear = "enable gear tracker"
669-
m_lvltracker_zones = "enable zone-layout overlay"
670-
m_lvltracker_hints = "show additional hints in the guide"
670+
m_lvltracker_gear = "gear tracker"
671+
m_lvltracker_zones = "zone-layouts"
672+
m_lvltracker_hints = "hints"
673+
m_lvltracker_hotkeys = "enable page-switching via hotkeys"
671674
m_lvltracker_skilltree = "skill-tree overlay settings:"
672675
m_lvltracker_pob = "pob: middle-click opens screen-cap menu"
673676
m_lvltracker_screencap = "screen-cap menu"
@@ -804,7 +807,6 @@
804807
m_ocr_error = "test requires at least 8 unique words"
805808
m_ocr_error = "screen-cap too large"
806809
m_ocr_finish = "press esc to finish setup"
807-
m_ocr_hotkey = "hotkey:"
808810
m_ocr_hotkey = "<toggle highlighting> (in game):"
809811
m_ocr_debug = "enable debug features"
810812
m_ocr_unsupported = "720p and lower resolutions are not supported because screen-reading has a very high failure rate at low resolutions, making this feature almost unusable"

data/english/help tooltips.json

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -318,10 +318,17 @@
318318
"click the overlay to toggle layout orientation, drag to move it, right-click to reset position, or scroll to resize it"
319319
],
320320
"leveltracker hints": [
321-
"inserts additional information underneath specific guide-steps",
322-
"this info is displayed in indented lines with smaller text",
321+
"inserts additional hints underneath specific guide-steps",
322+
"these are displayed in indented lines with smaller text",
323323
"if a hint is marked with a book icon, you can hold tab to see an illustration"
324324
],
325+
"leveltracker hotkeys enable": [
326+
"allows you switch guide-pages via customizable hotkeys"
327+
],
328+
"leveltracker hotkeys": [
329+
"type in a key-name and press <enter>",
330+
"don't bind it to keys used for chatting"
331+
],
325332
"maptracker enable": [
326333
"provides automated tracking of your map runs, and a log viewer with export tools",
327334
"tracks map-times, deaths, portals, loot, kills, and certain types of side-content"
@@ -515,7 +522,8 @@
515522
],
516523
"screenchecks pixel-test": [
517524
"click this button while the ui element shown in <info> is visible, the test should return positive",
518-
"click it again while the ui element shown in <info> is not visible, the test should return negative"
525+
"click it again while the ui element shown in <info> is not visible, the test should return negative",
526+
"geforce now: move your character around a bit, then redo steps 1 & 2"
519527
],
520528
"screenchecks pixel-info": [
521529
"hold to see instructions"
@@ -544,6 +552,11 @@
544552
"opens the folder with calibration files",
545553
"if tests keep failing, open the img-files to check if they represent the correct image-clip"
546554
],
555+
"screenchecks variance": [
556+
"since streaming-clients have variable image quality, the tool may not be able to accurately check the screen for certain ui elements",
557+
"if clicking <test> doesn't return consistent, repeatable results, you may have to increase the allowed variance of screen-checks",
558+
"increase the value in increments of 10 and retest the checks until the results are consistent"
559+
],
547560
"searchstrings poe-regex": [
548561
"3rd-party website for regex-strings"
549562
],
@@ -585,10 +598,9 @@
585598
"long-press the omni-key (default: middle mouse-button) while hovering over an item in a tab to activate the feature",
586599
"there needs to be at least one tab-folder somewhere in your stash (the overlay will be slightly offset otherwise)"
587600
],
588-
"stash calibrate": [
589-
"move the settings window to the right side of the screen",
590-
"open the specific stash tab in game (it CANNOT be in a tab-folder), then click this button",
591-
"this calibration enables the omni-key to activate the overlay"
601+
"stash hotkey": [
602+
"this hotkey is exclusive to streaming clients, and pressing it will open an exclusive selection menu that lists the available tabs",
603+
"bind this feature to a key not used for chatting: type in a key-name and press <enter>"
592604
],
593605
"stash history": [
594606
"shows an additional bar-chart with an item's price history for this week",
@@ -623,7 +635,7 @@
623635
],
624636
"stash gap": [
625637
"refers to the horizontal gap between item boxes/slots in the stash tab",
626-
"fine-tune this value to make the overlay scale correctly on your screen"
638+
"fine-tune this value to align the overlay and in-game stash"
627639
],
628640
"stash in folder": [
629641
"the overlay's position has to be offset if this specific tab is in a stash folder",

data/versions.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
{
2-
"_release": [15304, "https://github.com/Lailloken/Lailloken-UI/archive/refs/heads/main.zip"],
3-
"hotfix": 1
2+
"_release": [15305, "https://github.com/Lailloken/Lailloken-UI/archive/refs/heads/main.zip"]
43
}

modules/GUI.ahk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ GuiToolbarButtons(cHWND, hotkey)
160160
KeyWait, LButton
161161
IniWrite, % xPos, ini\config.ini, UI, button xcoord
162162
IniWrite, % yPos, ini\config.ini, UI, button ycoord
163-
settings.general.xButton := xPos, settings.general.yButton := yPos
163+
settings.general.xButton := xPos, settings.general.yButton := yPos, vars.general.drag := 0
164164
Init_GUI()
165165
WinActivate, ahk_group poe_window
166166
vars.toolbar.drag := 0

modules/betrayal-info.ahk

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,21 @@
44
global vars, settings, Json
55

66
settings.features.betrayal := LLK_IniRead("ini\config.ini", "Features", "enable betrayal-info", 0)
7+
ini := IniBatchRead("ini\betrayal info.ini")
78
settings.betrayal := {}, file := FileExist("data\" settings.general.lang_client "\Betrayal.json") ? settings.general.lang_client : "english"
8-
settings.betrayal.fSize := LLK_IniRead("ini\betrayal info.ini", "Settings", "font-size", settings.general.fSize)
9-
LLK_FontDimensions(settings.betrayal.fSize, font_height, font_width)
10-
settings.betrayal.fHeight := font_height, settings.betrayal.fWidth := font_width
11-
settings.betrayal.trans := LLK_IniRead("ini\betrayal info.ini", "Settings", "transparency", 220)
9+
settings.betrayal.fSize := !Blank(check := ini.settings["font-size"]) ? check : settings.general.fSize
10+
LLK_FontDimensions(settings.betrayal.fSize, font_height, font_width), settings.betrayal.fHeight := font_height, settings.betrayal.fWidth := font_width
1211
settings.betrayal.dColors := ["00D000", "Yellow", "E90000"]
1312
settings.betrayal.colors := []
1413
settings.betrayal.colors[0] := "White"
1514
settings.betrayal.sPrio := vars.client.h * (2/15)
16-
settings.betrayal.ruthless := LLK_IniRead("ini\betrayal info.ini", "settings", "ruthless", 0)
15+
settings.betrayal.ruthless := !Blank(check := ini.settings.ruthless) ? check : 0
1716

1817
Loop 3
19-
settings.betrayal.colors[A_Index] := LLK_IniRead("ini\betrayal info.ini", "settings", "rank "A_Index " color", settings.betrayal.dColors[A_Index])
18+
settings.betrayal.colors[A_Index] := !Blank(check := ini.settings["rank " A_Index " color"]) ? check : settings.betrayal.dColors[A_Index]
2019

21-
ini := LLK_IniRead("ini\betrayal info.ini", "settings", "board")
22-
If !IsObject(vars.betrayal.board) && ini
23-
vars.betrayal.board := Json.Load(ini)
20+
If !IsObject(vars.betrayal.board) && ini.settings.board
21+
vars.betrayal.board := Json.Load(ini.settings.board)
2422

2523
vars.betrayal.members := Json.Load(LLK_FileRead("data\" file "\Betrayal.json", 0, "65001")), vars.betrayal.members_localized := {}, vars.betrayal.divisions_localized := {}
2624
For key in vars.betrayal.members ;create an object with localized names (solely for alphabetical ordering)
@@ -33,19 +31,18 @@
3331
If !FileExist("ini\betrayal info.ini")
3432
{
3533
IniWrite, % settings.general.fSize, ini\betrayal info.ini, Settings, font-size
36-
IniWrite, 220, ini\betrayal info.ini, Settings, transparency
3734
For member in vars.betrayal.members
3835
IniWrite, transportation=0`nfortification=0`nresearch=0`nintervention=0, ini\betrayal info.ini, % member
3936
}
40-
If !InStr(LLK_FileRead("ini\betrayal info.ini"), " - ruthless")
37+
If !LLK_HasKey(ini, "- ruthless", 1,,, 1)
4138
For member in vars.betrayal.members
4239
IniWrite, transportation=0`nfortification=0`nresearch=0`nintervention=0, ini\betrayal info.ini, % member " - ruthless"
4340

4441
For member in vars.betrayal.members
4542
{
4643
vars.betrayal.members[member].ranks := {}
4744
For division in vars.betrayal.divisions
48-
vars.betrayal.members[member].ranks[division] := LLK_IniRead("ini\betrayal info.ini", member (settings.betrayal.ruthless ? " - ruthless" : ""), division, 0)
45+
vars.betrayal.members[member].ranks[division] := !Blank(check := ini[member (settings.betrayal.ruthless ? " - ruthless" : "")][division]) ? check : 0
4946
}
5047
BetrayalRefreshRanks()
5148
}

modules/cheat sheets.ahk

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,17 @@
44
global vars, settings
55

66
settings.features.cheatsheets := LLK_IniRead("ini\config.ini", "Features", "enable cheat-sheets", 0)
7-
settings.cheatsheets := {}
8-
settings.cheatsheets.fSize := LLK_IniRead("ini\cheat-sheets.ini", "settings", "font-size", settings.general.fSize)
9-
LLK_FontDimensions(settings.cheatsheets.fSize, font_height, font_width)
10-
settings.cheatsheets.fHeight := font_height, settings.cheatsheets.fWidth := font_width
7+
settings.cheatsheets := {}, ini := IniBatchRead("ini\cheat-sheets.ini")
8+
settings.cheatsheets.fSize := !Blank(check := ini.settings["font-size"]) ? check : settings.general.fSize
9+
LLK_FontDimensions(settings.cheatsheets.fSize, font_height, font_width), settings.cheatsheets.fHeight := font_height, settings.cheatsheets.fWidth := font_width
1110
settings.cheatsheets.dColors := ["Lime", "Yellow", "Red", "Aqua"]
12-
settings.cheatsheets.colors := []
13-
settings.cheatsheets.colors[0] := "White"
14-
;settings.cheatsheets.quick := LLK_IniRead("ini\cheat-sheets.ini", "settings", "quick access", 0)
11+
settings.cheatsheets.colors := [], settings.cheatsheets.colors[0] := "White"
1512
settings.cheatsheets.modifiers := ["alt", "ctrl", "shift"]
16-
settings.cheatsheets.modifier := LLK_IniRead("ini\cheat-sheets.ini", "settings", "modifier-key", "alt")
13+
settings.cheatsheets.modifier := !Blank(check := ini.settings["modifier-key"]) ? check : "alt"
1714
If Blank(LLK_HasVal(settings.cheatsheets.modifiers, settings.cheatsheets.modifier)) ;force alt if modifier-key is an unexpected key
1815
settings.cheatsheets.modifier := "alt"
19-
2016
Loop 4
21-
settings.cheatsheets.colors[A_Index] := LLK_IniRead("ini\cheat-sheets.ini", "UI", "rank " A_Index " color", settings.cheatsheets.dColors[A_Index])
22-
17+
settings.cheatsheets.colors[A_Index] := !Blank(check := ini.UI["rank " A_Index " color"]) ? check : settings.cheatsheets.dColors[A_Index]
2318
vars.cheatsheets.count_advanced := 0 ;save number of advanced sheets (used in the settings menu to determine if list of advanced sheets will be shown or not)
2419

2520
;rebuild list of cheat-sheets
@@ -31,15 +26,15 @@
3126
{
3227
If !IsObject(vars.cheatsheets[key])
3328
vars.cheatsheets[key] := {}
34-
vars.cheatsheets.list[key].enable := LLK_IniRead("cheat-sheets\" key "\info.ini", "general", "enable", 1)
35-
vars.cheatsheets.list[key].area := LLK_IniRead("cheat-sheets\" key "\info.ini", "general", "image search", "static")
36-
vars.cheatsheets.list[key].type := LLK_IniRead("cheat-sheets\" key "\info.ini", "general", "type", "images")
37-
vars.cheatsheets.list[key].activation := LLK_IniRead("cheat-sheets\" key "\info.ini", "general", "activation", "hold")
38-
vars.cheatsheets.list[key].scale := LLK_IniRead("cheat-sheets\" key "\info.ini", "UI", "scale", 1)
39-
vars.cheatsheets.list[key].pos := LLK_IniRead("cheat-sheets\" key "\info.ini", "UI", "position", "2,2")
29+
ini := IniBatchRead("cheat-sheets\" key "\info.ini")
30+
vars.cheatsheets.list[key].enable := !Blank(check := ini.general.enable) ? check : 1
31+
vars.cheatsheets.list[key].area := !Blank(check := ini.general["image search"]) ? check : "static"
32+
vars.cheatsheets.list[key].type := !Blank(check := ini.general.type) ? check : "images"
33+
vars.cheatsheets.list[key].activation := !Blank(check := ini.general.activation) ? check : "hold"
34+
vars.cheatsheets.list[key].scale := !Blank(check := ini.UI.scale) ? check : 1
35+
vars.cheatsheets.list[key].pos := !Blank(check := ini.UI.position) ? check : "2,2"
4036
vars.cheatsheets.list[key].pos := [SubStr(vars.cheatsheets.list[key].pos, 1, 1), SubStr(vars.cheatsheets.list[key].pos, 3, 1)]
41-
iniread := LLK_IniRead("cheat-sheets\" key "\info.ini", "image search", "last coordinates")
42-
Loop, Parse, iniread, `,
37+
Loop, Parse, % ini["image search"]["last coordinates"], `,
4338
{
4439
If (A_Index = 1)
4540
vars.cheatsheets.list[key].x1 := A_LoopField
@@ -53,24 +48,22 @@
5348
If (vars.cheatsheets.list[key].type = "advanced")
5449
{
5550
vars.cheatsheets.count_advanced += 1
56-
vars.cheatsheets.list[key].variation := LLK_IniRead("cheat-sheets\" key "\info.ini", "general", "image search variation", 0) ;each sheet has its own imgsearch-variation (strictness) which is determined on-the-fly, then saved for future use
57-
iniread := LLK_IniRead("cheat-sheets\" key "\info.ini", "entries") ;load a sheet's entries from ini
51+
vars.cheatsheets.list[key].variation := !Blank(check := ini.general["image search variation"]) ? check : 0 ;each sheet has its own imgsearch-variation (strictness) which is determined on-the-fly, then saved for future use
5852
vars.cheatsheets.list[key].entries := {} ;store the entries here
59-
Loop, Parse, iniread, `n
53+
For kEntry, vEntry in ini.entries
6054
{
61-
parse1 := SubStr(A_LoopField, 1, InStr(A_LoopField, "=") - 1)
62-
vars.cheatsheets.list[key].entries[parse1] := {"panels": [], "ranks": []} ;each entry has panels which may also be ranked
55+
vars.cheatsheets.list[key].entries[kEntry] := {"panels": [], "ranks": []} ;each entry has panels which may also be ranked
6356
Loop 4
6457
{
65-
vars.cheatsheets.list[key].entries[parse1].panels[A_Index] := StrReplace(LLK_IniRead("cheat-sheets\" key "\info.ini", parse1, "panel "A_Index), "^^^", "`n")
66-
vars.cheatsheets.list[key].entries[parse1].ranks[A_Index] := LLK_IniRead("cheat-sheets\" key "\info.ini", parse1, "panel " A_Index " rank", 0)
58+
vars.cheatsheets.list[key].entries[kEntry].panels[A_Index] := StrReplace(ini[kEntry]["panel " A_Index], "^^^", "`n")
59+
vars.cheatsheets.list[key].entries[kEntry].ranks[A_Index] := !Blank(check := ini[kEntry]["panel " A_Index " rank"]) ? check : 0
6760
}
6861
}
6962
}
7063
Else If (vars.cheatsheets.list[key].type = "app")
71-
vars.cheatsheets.list[key].title := LLK_IniRead("cheat-sheets\" key "\info.ini", "general", "app title")
64+
vars.cheatsheets.list[key].title := ini.general["app title"]
7265
Else If (vars.cheatsheets.list[key].type = "images")
73-
vars.cheatsheets.list[key].header := LLK_IniRead("cheat-sheets\"key "\info.ini", "general", "00-position", "top")
66+
vars.cheatsheets.list[key].header := !Blank(check := ini.general["00-position"]) ? check : "top"
7467
}
7568
}
7669

@@ -579,6 +572,7 @@ CheatsheetImage(name := "", hotkey := "") ;'hotkey' parameter used when overlay
579572
Return
580573
}
581574
Gdip_GetImageDimensions(pBitmap, width, height)
575+
582576
If (height >= vars.monitor.h*0.9)
583577
{
584578
pBitmap_copy := pBitmap
@@ -684,7 +678,7 @@ CheatsheetInfo(name)
684678
Gui, cheatsheet_info: Add, Text, % "Section xs BackgroundTrans w"settings.general.fWidth*35, % "instructions:"
685679
Gui, cheatsheet_info: Font, norm
686680
IniRead, ini, % "cheat-sheets\" name "\info.ini", general, instructions, % "to recalibrate, screen-cap the area displayed above"
687-
While (ini != "")
681+
While (ini != "" && ini != " ")
688682
{
689683
Gui, cheatsheet_info: Add, Text, % "xs y+0 BackgroundTrans w"settings.general.fWidth*35, % "–> " ini
690684
IniRead, ini, % "cheat-sheets\" name "\info.ini", general, instructions%A_Index%, % A_Space
@@ -866,6 +860,7 @@ CheatsheetMenu2(cHWND) ;function to handle inputs within the 'cheatsheet_menu' G
866860
LLK_Drag(w, h, xPos, yPos, 1, A_Gui)
867861
Sleep 1
868862
}
863+
vars.general.drag := 0
869864
}
870865
Else LLK_Tooltip("no action")
871866

@@ -1162,11 +1157,11 @@ CheatsheetMenuEntrySave()
11621157
local
11631158
global vars, settings
11641159

1165-
name := vars.cheatsheet_menu.active
1160+
name := vars.cheatsheet_menu.active, ini := IniBatchRead("cheat-sheets\" name "\info.ini")
11661161
Loop 4
11671162
{
11681163
vars.cheatsheets.list[name].entries[vars.cheatsheet_menu.entry].panels[A_Index] := LLK_ControlGet(vars.hwnd.cheatsheet_menu["panelentry_"A_Index])
1169-
If (StrReplace(LLK_ControlGet(vars.hwnd.cheatsheet_menu["panelentry_"A_Index]), "`n", "^^^") != LLK_IniRead("cheat-sheets\"name "\info.ini", vars.cheatsheet_menu.entry, "panel "A_Index))
1164+
If (StrReplace(LLK_ControlGet(vars.hwnd.cheatsheet_menu["panelentry_"A_Index]), "`n", "^^^") != ini[vars.cheatsheet_menu.entry]["panel " A_Index])
11701165
IniWrite, % """" StrReplace(LLK_ControlGet(vars.hwnd.cheatsheet_menu["panelentry_"A_Index]), "`n", "^^^") """", % "cheat-sheets\"name "\info.ini", % vars.cheatsheet_menu.entry, % "panel " A_Index
11711166
}
11721167
}

modules/client log.ahk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
Return
1616
}
1717
}
18-
18+
1919
If mode
2020
vars.log.level := ""
2121
Else
@@ -26,7 +26,7 @@
2626

2727
If !settings.general.lang_client
2828
check := InStr(log_content, " Generating level ", 1, 0, 10), LangClient(SubStr(log_content, InStr(log_content, " Generating level ", 1, 0, check ? 10 : 1)))
29-
29+
3030
settings.general.character := LLK_IniRead("ini\config.ini", "settings", "active character"), check := Blank(settings.general.character) ? 0 : InStr(log_content, " " settings.general.character " " LangTrans("system_parenthesis"),, 0, 1)
3131
}
3232

0 commit comments

Comments
 (0)