Xian55 / WowClassicGrindBot

Highly configurable and responsive World of Warcraft Classic pixel Grind Bot - No DLL injection or memory tampering, just screen capture and input simulation.
178 stars 121 forks source link

[Chinese client] Skinning is not working properly #167

Closed AsterNighT closed 2 years ago

AsterNighT commented 2 years ago

Describe the bug The skinning function is not working properly. The mouse shakes around on the screen but does not click at all, even if it does pass over the skinable corpse.

To Reproduce Steps to reproduce the behavior:

  1. Start the bot and kill a beast.

Expected behavior The bot skins the corpse after looting.

Screenshots

Logs That's short so I'll just put it here.

[19:31:00:801 INF] ---------------------------------
[19:31:00:802 INF] New Plan= ConsumeCorpse
[19:31:00:804 WRN] ----- Safe to consume a corpse.
[19:31:00:831 INF] ---------------------------------
[19:31:00:831 INF] New Plan= LootGoal
[19:31:00:832 INF] LootGoal: Search for Corpse
[19:31:00:833 INF] NpcNameFinder.ChangeNpcType = Corpse
[19:31:00:834 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[19:31:00:846 INF] Input: KeyUp UpArrow
[19:31:01:685 INF] Input: [G] TapLastTarget (LootGoal: No corpse name found - check last dead target exists) pressing for 50ms
[19:31:01:841 INF] LootGoal: 2354 is skinnable? True
[19:31:01:842 INF] LootGoal: Should skin ? True
[19:31:01:843 INF] Input: [H] TapInteract (LootGoal: Found last dead target) pressing for 50ms
[19:31:02:059 INF] CombatUtil:   Goto corpse(0.0015ms) - Wait till player become stil!
[19:31:02:061 INF] Input: [H] TapInteract (LootGoal: Last dead target double) pressing for 50ms
[19:31:02:806 INF] LootGoal: Loot Successfull
[19:31:02:808 INF] Plan= LootGoal is not Repeatable!
[19:31:03:902 INF] Input: [G] TapLastTarget (LootGoal: No corpse name found - check last dead target exists) pressing for 50ms
[19:31:05:045 INF] LootGoal: Loot Failed
[19:31:05:046 INF] ---------------------------------
[19:31:05:047 INF] New Plan= SkinningGoal
[19:31:05:048 INF] SkinningGoal: Try to find Corpse
[19:31:05:803 INF] SkinningGoal: Target is not skinnable - NPC Count: 0
[19:31:06:821 INF] SkinningGoal: Skin-Loot Failed
[19:31:06:823 INF] ---------------------------------
[19:31:06:824 INF] New Plan= CorpseConsumed
[19:31:06:825 INF] ----- Corpse consumed. Remaining: 0
[19:31:06:837 INF] ---------------------------------
Xian55 commented 2 years ago

Hey thanks for creating the issue.

It seems the NPCNameFinder component can't find any name on the screen.

May i ask are you using non English client ?

In that case, would like to recommend to change the default font to an another one Change font

AsterNighT commented 2 years ago

Yes I'm using a chinese client, and already using a much bolder font than default. I think I'm getting to it. If I move the camara too far, in which case the enemy name become barely visible, the bot will fail to find the corpse.

Xian55 commented 2 years ago

If you could attach few screenshots which describes your situation would be helpful. I suggest do not include any part of the image which could lead to your character such as name and chat.

AsterNighT commented 2 years ago

If I zoom the camera near the character like this, the skinning works fine. image But if I zoom out (I'm using a nameplate plugin), it will fail to find the corpse. image Well, that seems reasonable.

Xian55 commented 2 years ago

It is suggested to disable nameplates and any nameplate addon at all.

Ye well I've only tested the NpcNameFinder with English letters(Latin-script alphabet). i had no chance with eastern letters yet. If you could attach more screenshots it would be nice and speed up the investigation process. Would be nice 1920x1080 screenshots.

On the other hand i see you are using ElvUI, Personally i ran into some troubles while used Elvui + AddonSkins. AddonSkins is doing some changes how the default skins appears which caused the DataToColor addon not working as intended.

AsterNighT commented 2 years ago

I've tested it with and without nameplate, so I'm pretty sure it is not the nameplate. As for elvui I would disable addonskin and try again. I wonder what kind of screenshot would you need? From a "zoom out" or "zoom in" camera?

Xian55 commented 2 years ago

These two images worked fine, the colors are matching. Should be able to find the grey corpse npc names.

I would recommend to use zoomed out camera as much as you can.

Note that no all of the screen are searched by the NPCNameFinder component only the 60% top part of the screen.

AsterNighT commented 2 years ago

image This is a windowed 1920x1080 screen shot. And it fails in skinning. With log

22:21:07:100 INF] ---------------------------------
[22:21:07:101 INF] New Plan= ConsumeCorpse
[22:21:07:103 WRN] ----- Safe to consume a corpse.
[22:21:07:129 INF] ---------------------------------
[22:21:07:130 INF] New Plan= LootGoal
[22:21:07:132 INF] LootGoal: Search for Corpse
[22:21:07:135 INF] NpcNameFinder.ChangeNpcType = Corpse
[22:21:07:138 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[22:21:07:174 INF] Input: KeyUp UpArrow
[22:21:08:121 INF] Input: [G] TapLastTarget (LootGoal: No corpse name found - check last dead target exists) pressing for 50ms
[22:21:08:258 INF] LootGoal: 2384 is skinnable? True
[22:21:08:260 INF] LootGoal: Should skin ? True
[22:21:08:262 INF] Input: [H] TapInteract (LootGoal: Found last dead target) pressing for 50ms
[22:21:08:431 INF] CombatUtil:   Goto corpse(0.0016ms) - Wait till player become stil!
[22:21:08:433 INF] Input: [H] TapInteract (LootGoal: Last dead target double) pressing for 50ms
[22:21:08:774 INF] LootGoal: Loot Successfull
[22:21:08:776 INF] Input: [Insert] TapClearTarget: LootGoal: Exit Goal pressing for 50ms
[22:21:08:948 INF] ---------------------------------
[22:21:08:949 INF] New Plan= CorpseConsumed
[22:21:08:951 INF] ----- Corpse consumed. Remaining: 0
[22:21:08:963 INF] ---------------------------------
Xian55 commented 2 years ago

Please upload the whole log file, not just a a sliced part of it.

AsterNighT commented 2 years ago

image

[23:04:27:368 INF] Program.Main(): Starting blazor server
[23:04:27:372 DBG] Startup()
[23:04:29:410 INF] RemotePathingAPIV3 PingServer 2015ms False
[23:04:34:523 WRN] INFO: Pathing API is not running remotely, this means the local one will be used. http://localhost:5001/api/PPather/ Gave(由于目标计算机积极拒绝,无法连接。).
[23:04:34:525 INF] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[23:04:34:526 DBG] RemoteV3 not available!
[23:04:34:527 INF] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[23:04:34:529 INF] MPQ dir is ../json/MPQ/
[23:04:34:530 WRN] Some of these MPQ files should exist!
[23:04:34:531 INF] ../json/MPQ/patch.MPQ
[23:04:34:532 INF] ../json/MPQ/enUS\patch-enUS.MPQ
[23:04:34:534 INF] ../json/MPQ/enGB\patch-enGB.MPQ
[23:04:34:535 INF] ../json/MPQ/lichking.MPQ
[23:04:34:536 INF] ../json/MPQ/common-2.MPQ
[23:04:34:537 INF] ../json/MPQ/common.MPQ
[23:04:34:538 INF] ../json/MPQ/expansion.MPQ
[23:04:34:543 INF] ../json/MPQ/enUS\lichking-locale-enUS.MPQ
[23:04:34:544 INF] ../json/MPQ/enUS\locale-enUS.MPQ
[23:04:34:545 INF] ../json/MPQ/enUS\expansion-locale-enUS.MPQ
[23:04:34:546 INF] ../json/MPQ/enGB\lichking-locale-enGB.MPQ
[23:04:34:548 INF] ../json/MPQ/enGB\locale-enGB.MPQ
[23:04:34:551 INF] ../json/MPQ/enGB\expansion-locale-enGB.MPQ
[23:04:34:551 INF] ../json/MPQ/enUS\base-enUS.MPQ
[23:04:34:552 INF] ../json/MPQ/enGB\base-enGB.MPQ
[23:04:34:556 INF] ../json/MPQ/enUS\backup-enUS.MPQ
[23:04:34:558 INF] ../json/MPQ/enGB\backup-enGB.MPQ
[23:04:34:559 INF] ../json/MPQ/expansion1.MPQ
[23:04:34:559 INF] ../json/MPQ/expansion2.MPQ
[23:04:34:560 INF] ../json/MPQ/OldWorld.MPQ
[23:04:34:561 INF] ../json/MPQ/world.MPQ
[23:04:34:562 INF] ../json/MPQ/enGB\expansion1-locale-enGB.MPQ
[23:04:34:563 INF] ../json/MPQ/enGB\expansion2-locale-enGB.MPQ
[23:04:34:565 INF] ../json/MPQ/enGB\locale-enGB.MPQ
[23:04:34:566 INF] ../json/MPQ/enGB\locale-enGB.MPQ
[23:04:34:568 INF] ../json/MPQ/wow-update-13164.MPQ
[23:04:34:568 INF] ../json/MPQ/wow-update-oldworld-13154.MPQ
[23:04:34:571 INF] ../json/MPQ/Cache\patch-base-oldworld-13154.MPQ
[23:04:34:573 INF] ../json/MPQ/Cache\enGB\patch-enGB-oldworld-13154.MPQ
[23:04:34:575 INF] ../json/MPQ/expansion2.MPQ
[23:04:34:576 INF] ../json/MPQ/expansion1.MPQ
[23:04:34:576 INF] ../json/MPQ/world.MPQ
[23:04:34:577 INF] ../json/MPQ/sound.MPQ
[23:04:34:578 INF] ../json/MPQ/art.MPQ
[23:04:34:579 INF] ../json/MPQ/enGB\expansion2-locale-enGB.MPQ
[23:04:34:581 INF] ../json/MPQ/enGB\expansion1-locale-enGB.MPQ
[23:04:34:583 INF] ../json/MPQ/enGB\locale-enGB.MPQ
[23:04:34:583 INF] ../json/MPQ/enGB\base-enGB.MPQ
[23:04:34:587 ERR] No MPQ files found, refer to the Readme to download them.
[23:04:34:590 INF] Using Local(LocalPathingApi) pathing API.
[23:04:34:591 INF] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[23:04:34:600 INF] Using AddonDataProvider
[23:04:34:912 DBG] Woohoo, I have read the player class. You are a Undead Rogue.
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://0.0.0.0:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: F:\work\personal\WowClassicGrindBot\BlazorServer
[23:04:59:860 INF] [Interact] uses "H" -> H
[23:04:59:861 INF] [Approach] uses "H" -> H
[23:04:59:862 INF] [AutoAttack] uses "H" -> H
[23:04:59:863 INF] [Form] Initialise KeyActions.
[23:04:59:863 INF] [Pull] Initialise KeyActions.
[23:04:59:864 INF] [投掷] uses "1" -> D1
[23:04:59:865 INF] [投掷] Processing requirement: "!InMeleeRange"
[23:04:59:866 INF] [Combat] Initialise KeyActions.
[23:04:59:867 INF] [Approach] uses "H" -> H
[23:04:59:868 INF] [消失] uses "5" -> D5
[23:04:59:869 INF] [消失] Processing requirement: "Health%<10"
[23:04:59:877 INF] [闪避] uses "7" -> D7
[23:04:59:878 INF] [闪避] Processing requirement: "Health%<50"
[23:04:59:879 INF] [刺骨] uses "4" -> D4
[23:04:59:880 INF] [影袭] uses "2" -> D2
[23:04:59:880 INF] [Adhoc] Initialise KeyActions.
[23:04:59:881 INF] [次级治疗药水] uses "6" -> D6
[23:04:59:882 INF] [次级治疗药水] Processing requirement: "Health%<10"
[23:04:59:883 INF] [Eat] uses "E" -> E
[23:04:59:885 INF] [Eat] Processing requirement: "Health%<60"
[23:04:59:887 INF] [Sharpen Weapon 1] uses "F1" -> F1
[23:04:59:888 INF] [Sharpen Weapon 2] uses "F2" -> F2
[23:04:59:892 DBG] Loaded `Rogue.json` with Path Profile `23_tarenmill.json`.
[23:05:00:647 INF] ---------------------------------
[23:05:00:649 INF] New Plan= FollowRouteGoal
[23:05:00:651 INF] Trying to path a new route.
[23:05:00:651 INF] FollowRouteGoal: .. Start searching for target...
[23:05:00:654 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:00:720 INF] FollowRouteGoal: Has target!
[23:05:00:765 INF] FollowRouteGoal: .. Found target!
[23:05:00:905 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[23:05:00:921 INF] Input: KeyUp UpArrow
[23:05:00:923 INF] Input: KeyUp DownArrow
[23:05:00:937 INF] Input: KeyUp LeftArrow
[23:05:00:952 INF] Input: KeyUp RightArrow
[23:05:00:967 WRN] Pathing is disabled, please check the messages when the bot started.
[23:05:00:969 INF] Input: [Spacebar] TapJump: FollowRouteGoal: Random jump pressing for 50ms
[23:05:01:044 INF] Input: KeyDown UpArrow SetKeyState-Move Forward
[23:05:01:120 INF] ---------------------------------
[23:05:01:122 INF] New Plan= ApproachTargetGoal
[23:05:01:215 INF] Input: [Tab] TapNearestTarget: Try to find closer target... pressing for 50ms
[23:05:01:526 INF] Input: [Tab] TapNearestTarget: Try to find closer target... pressing for 50ms
[23:05:01:635 INF] ---------------------------------
[23:05:01:636 INF] New Plan= PullTargetGoal
[23:05:01:638 INF] Input: [H] TapApproachKey (PullTargetGoal: OnEnter - Face the target and stop) pressing for 10ms
[23:05:01:712 INF] Input: KeyUp UpArrow
[23:05:02:019 INF] 投掷:  ... gcd interrupted 0.001ms
[23:05:02:021 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[23:05:02:050 INF] Input: KeyUp UpArrow
[23:05:02:160 INF] Input: [D1] 投掷 pressing for 50ms
[23:05:02:440 INF] 投掷:  ... instant input 108.9535ms
[23:05:02:442 INF] 投掷:  ... usable: True->True -- (NONE->CAST_START)
[23:05:02:443 INF] 投掷:  ... delay after cast 1000ms
[23:05:03:498 INF] 投掷:  .... delay after cast not interrupted 1054.9704ms
[23:05:04:495 INF] PullTargetGoal: Entered combat after 931.7106ms
[23:05:04:498 INF] ---------------------------------
[23:05:04:500 INF] New Plan= ApproachTargetGoal
[23:05:06:101 INF] ---------------------------------
[23:05:06:102 INF] New Plan= CombatGoal
[23:05:06:165 INF] 影袭:  ... gcd interrupted 0.0003ms
[23:05:06:167 INF] Input: [D2] 影袭 pressing for 50ms
[23:05:06:336 INF] 影袭:  ... instant input 0.0003ms
[23:05:06:338 INF] 影袭:  ... usable: True->False -- (NONE->CAST_SUCCESS)
[23:05:06:742 INF] 影袭:  ... instant interrupt: False | CanRun:True | Delay: 402.3759ms
[23:05:06:788 INF] Input: [H] Approach pressing for 10ms
[23:05:06:989 INF] 影袭:  ... gcd interrupted 0.0004ms
[23:05:06:990 INF] Input: [D2] 影袭 pressing for 50ms
[23:05:07:141 INF] 影袭:  ... instant input 0.0003ms
[23:05:07:142 INF] 影袭:  ... usable: True->False -- (NONE->NONE)
[23:05:07:547 INF] 影袭:  ... instant interrupt: False | CanRun:True | Delay: 403.1205ms
[23:05:07:609 INF] Input: [H] Approach pressing for 10ms
[23:05:08:185 INF] 影袭:  ... gcd interrupted 403.7862ms
[23:05:08:186 INF] Input: [D2] 影袭 pressing for 50ms
[23:05:08:358 INF] 影袭:  ... instant input 0.0003ms
[23:05:08:360 INF] 影袭:  ... usable: True->False -- (NONE->CAST_SUCCESS)
[23:05:08:826 INF] 影袭:  ... instant interrupt: False | CanRun:True | Delay: 465.5105ms
[23:05:08:888 INF] Input: [H] Approach pressing for 10ms
[23:05:09:354 INF] 影袭:  ... gcd interrupted 295.8433ms
[23:05:09:357 INF] Input: [D2] 影袭 pressing for 50ms
[23:05:09:525 INF] 影袭:  ... instant input 0.0003ms
[23:05:09:528 INF] 影袭:  ... usable: True->False -- (NONE->CAST_SUCCESS)
[23:05:09:650 INF] 影袭:  ... instant interrupt: True | CanRun:False | Delay: 57.7847ms
[23:05:09:760 INF] Input: [H] Approach pressing for 10ms
[23:05:09:946 INF] Input: [H] Approach pressing for 10ms
[23:05:10:150 INF] Input: [H] Approach pressing for 10ms
[23:05:10:555 INF] 影袭:  ... gcd interrupted 265.8809ms
[23:05:10:557 INF] Input: [D2] 影袭 pressing for 50ms
[23:05:10:695 INF] 影袭:  ... instant input 0.0002ms
[23:05:10:697 INF] 影袭:  ... usable: True->False -- (NONE->CAST_SUCCESS)
[23:05:10:834 INF] 影袭:  ... instant interrupt: True | CanRun:False | Delay: 75.2548ms
[23:05:10:897 INF] Input: [H] Approach pressing for 10ms
[23:05:11:145 INF] Input: [H] Approach pressing for 10ms
[23:05:11:350 INF] Input: [H] Approach pressing for 10ms
[23:05:11:555 INF] Input: [H] Approach pressing for 10ms
[23:05:11:755 INF] Input: [H] Approach pressing for 10ms
[23:05:12:020 INF] Input: [H] Approach pressing for 10ms
[23:05:12:270 INF] Input: [H] Approach pressing for 10ms
[23:05:12:520 INF] Input: [H] Approach pressing for 10ms
[23:05:12:783 INF] Input: [H] Approach pressing for 10ms
[23:05:13:003 INF] Input: [H] Approach pressing for 10ms
[23:05:13:189 INF] Input: [H] Approach pressing for 10ms
[23:05:13:456 INF] Input: [H] Approach pressing for 10ms
[23:05:13:687 INF] Input: [H] Approach pressing for 10ms
[23:05:13:918 INF] Input: [H] Approach pressing for 10ms
[23:05:14:134 INF] Input: [H] Approach pressing for 10ms
[23:05:14:290 INF] 影袭:  ... gcd interrupted 0.0003ms
[23:05:14:292 INF] Input: [D2] 影袭 pressing for 50ms
[23:05:14:446 INF] 影袭:  ... instant input 0.0006ms
[23:05:14:449 INF] 影袭:  ... usable: True->False -- (NONE->CAST_SUCCESS)
[23:05:14:556 INF] 影袭:  ... instant interrupt: True | CanRun:False | Delay: 43.7922ms
[23:05:14:619 INF] Input: [H] Approach pressing for 10ms
[23:05:14:881 INF] Input: [H] Approach pressing for 10ms
[23:05:15:083 INF] Input: [H] Approach pressing for 10ms
[23:05:15:303 INF] Input: [H] Approach pressing for 10ms
[23:05:15:551 INF] Input: [H] Approach pressing for 10ms
[23:05:15:723 INF] Input: [H] Approach pressing for 10ms
[23:05:15:973 INF] Input: [H] Approach pressing for 10ms
[23:05:16:190 INF] Input: [H] Approach pressing for 10ms
[23:05:16:426 INF] Input: [H] Approach pressing for 10ms
[23:05:16:660 INF] Input: [H] Approach pressing for 10ms
[23:05:16:892 INF] Input: [H] Approach pressing for 10ms
[23:05:17:095 INF] Input: [H] Approach pressing for 10ms
[23:05:17:361 INF] Input: [H] Approach pressing for 10ms
[23:05:17:598 INF] Input: [H] Approach pressing for 10ms
[23:05:17:705 INF] CombatGoal: --- Target is killed! Record death location.
[23:05:17:706 INF] GoalThread Kill location added to list
[23:05:17:707 INF] GoapAgent --- Kill credit detected! Known kills: 1 | Combat mobs remaing: 0
[23:05:17:783 INF] ---------------------------------
[23:05:17:784 INF] New Plan= ConsumeCorpse
[23:05:17:785 WRN] ----- Safe to consume a corpse.
[23:05:17:798 INF] ---------------------------------
[23:05:17:800 INF] New Plan= LootGoal
[23:05:17:801 WRN] Inventory is full
[23:05:17:802 INF] LootGoal: Search for Corpse
[23:05:17:802 INF] NpcNameFinder.ChangeNpcType = Corpse
[23:05:17:803 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[23:05:17:828 INF] Input: KeyUp UpArrow
[23:05:18:641 INF] Input: [G] TapLastTarget (LootGoal: No corpse name found - check last dead target exists) pressing for 50ms
[23:05:18:766 INF] LootGoal: 2351 is skinnable? True
[23:05:18:768 INF] LootGoal: Should skin ? True
[23:05:18:769 INF] Input: [H] TapInteract (LootGoal: Found last dead target) pressing for 50ms
[23:05:18:997 INF] CombatUtil:   Goto corpse(0.002ms) - Wait till player become stil!
[23:05:18:999 INF] Input: [H] TapInteract (LootGoal: Last dead target double) pressing for 50ms
[23:05:19:294 INF] LootGoal: Loot Successfull
[23:05:19:295 INF] Input: [Insert] TapClearTarget: LootGoal: Exit Goal pressing for 50ms
[23:05:19:448 INF] ---------------------------------
[23:05:19:450 INF] New Plan= CorpseConsumed
[23:05:19:451 INF] ----- Corpse consumed. Remaining: 0
[23:05:19:464 INF] ---------------------------------
[23:05:19:466 INF] New Plan= FollowRouteGoal
[23:05:19:468 INF] Trying to path a new route.
[23:05:19:468 INF] FollowRouteGoal: .. Start searching for target...
[23:05:19:469 INF] Adjusted resume point
[23:05:19:470 INF] NpcNameFinder.ChangeNpcType = Enemy, Neutral
[23:05:19:474 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:19:589 INF] > NPCs found: (1672,417)[19,2]
[23:05:20:509 WRN] Pathing is disabled, please check the messages when the bot started.
[23:05:20:510 INF] Input: [Spacebar] TapJump: FollowRouteGoal: Random jump pressing for 50ms
[23:05:20:604 INF] Adjusted resume point
[23:05:20:697 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:21:832 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:21:926 INF] > NPCs found: (1672,417)[19,2]
[23:05:23:003 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:23:099 INF] > NPCs found: (1672,417)[19,2]
[23:05:23:272 INF] Input: KeyUp UpArrow
[23:05:23:661 INF] Adjusted resume point
[23:05:23:800 INF] Adjusted resume point
[23:05:24:266 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:24:357 INF] > NPCs found: (1672,417)[19,2]
[23:05:25:510 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:25:606 INF] > NPCs found: (1672,417)[19,2]
[23:05:26:787 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:27:008 INF] Input: KeyUp UpArrow
[23:05:27:164 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[23:05:27:178 INF] Input: KeyUp UpArrow
[23:05:27:986 INF] Input: KeyUp UpArrow
[23:05:28:079 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:28:175 INF] > NPCs found: (1672,417)[19,2]
[23:05:28:830 INF] Adjusted resume point
[23:05:28:971 INF] Input: KeyUp UpArrow
[23:05:29:082 INF] Adjusted resume point
[23:05:29:222 INF] Input: [Tab] TapNearestTarget: FollowRouteGoal pressing for 50ms
[23:05:29:391 INF] Input: KeyDown UpArrow SetKeyState-StopForward - Cancel interact
[23:05:29:391 INF] FollowRouteGoal: .. Finding target aborted!
[23:05:29:406 INF] Input: KeyUp UpArrow
[23:05:29:408 INF] Input: KeyUp DownArrow
[23:05:29:422 INF] Input: KeyUp LeftArrow
[23:05:29:438 INF] Input: KeyUp RightArrow
[23:05:29:454 INF] Stopped!
Xian55 commented 2 years ago

About the last case, i'm almost certain about the bear's name with those characters are just to small to be considered by the NpcNameFinder there's a minimum and maximum length which helps to filter out any issues and noise. But it seems these values are just not fitted for Chinese language https://github.com/Xian55/WowClassicGrindBot/blob/1d4802701fe20832829f439245c5a2462de4209d/SharedLib/NpcFinder/NpcNameFinder.cs#L59

AsterNighT commented 2 years ago

I will test different values for that.

Xian55 commented 2 years ago

There's an another project which has an much more interactive way to tweak the previously mentioned values of the NpcNameFinder.

The project uses the same codebase as in the main project. However you may have to change this line in order to specify what type of npc name you are looking for https://github.com/Xian55/WowClassicGrindBot/blob/1d4802701fe20832829f439245c5a2462de4209d/Utilities/ImageFilter/ImageFilter/MainWindow.xaml.cs#L49

AsterNighT commented 2 years ago

I think I can tell the reason. It has nothing to do with LinesOfNpcMinLength. No matter how bold the font I use, It will be reduced to some 1 pixel width if I zoom the camera out to the limit. In which case the corpse text get mixed with the game scene and it is no more (128,128,128) to be checked by ColorMatch. I wonder if it is the same for a english client.

Xian55 commented 2 years ago

Personally can't really do much about it, within EU it is not allowed to join any server while using Simplified Chinese language. Either have to contribute or i need a supply of high definition video samples

AsterNighT commented 2 years ago

I wonder what is like in a english client? Can u provide a screenshot of a corpse with a zoomed out camera?

Xian55 commented 2 years ago

Fully zoomed out ( under the interface settings the Camera -> Camera -> Max Camera Distance is set to High) zoomed_out

50% zoom zoomed_out

/run SetView(2) with a rogue character zoomed_out

AsterNighT commented 2 years ago

Well, Maybe there is difference between chinese and english character rendering.

BillDong2021 commented 2 years ago

I guess you may have a same problem as mine about color deviation with Chinese client, see pull request (closed) #97.

Xian55 commented 2 years ago

Hey little bit update about. I've been introduced a new way to match colors https://github.com/Xian55/WowClassicGrindBot/tree/feature/npc-name-finder-fuzzy-search

In order to use the SearchMode.Fuzzy have to edit the code https://github.com/Xian55/WowClassicGrindBot/blob/57f7d6af5974740b2c15127e8874b16e785da0ac/SharedLib/NpcFinder/NpcNameFinder.cs#L30 to

private SearchMode searchMode = SearchMode.Fuzzy; 

If you still have interest about the topic, let me know if you find any improvement.

Few note:

BillDong2021 commented 2 years ago

I have completely solved the problem by the way that replacing the default game font and disable glow effect on original search mode of the bot in Chinese client, many thanks.

Xian55 commented 2 years ago

As of #255 has been merged to dev closing this issue.