- Joined
- Jan 8, 2015
- Messages
- 2,769
- Thread Author
- #1
So the NpcDismisser doesn't work properly when the NPC is hidden behind an object. Evil Bob and Mysterious Old Man were behind a tree while I was running a bot. It tried clicking it away, but it got stuck trying to open the interaction menu with right-click. A few logs (which don't tell a lot, but describe the situation slightly):
Obviously it's not that bad you'd think, the NPC goes away out of itself eventually. Well, the problem is that the NpcDismisser and even the gamestate considers it to be there even after it disappears. This is only resolved by relogging. This conclusion was based on debugging the NPC, which turned out was 100% visible, had a model and even a full NpcDefinition. Obviously the NPC wasn't anywhere to be found.
Possible solutions:
Code:
00:02:25 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:25 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:26 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:26 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:27 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:28 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:29 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:29 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:30 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:31 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:31 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
00:02:32 TRACE [NpcDismisser] Dismissing the random event npc: Evil Bob(level: 0, position: 2924, 3412, 0)
Code:
01:35:03 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:03 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:04 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:04 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:05 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:06 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:06 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:07 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:08 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:08 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:09 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:09 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:10 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:11 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:11 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:12 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:12 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:13 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:14 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:14 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:15 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:16 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:17 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:17 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:18 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:18 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:19 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:20 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:20 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:21 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
01:35:22 TRACE [NpcDismisser] Dismissing the random event npc: Mysterious Old Man(level: 0, position: 2927, 3414, 0)
Obviously it's not that bad you'd think, the NPC goes away out of itself eventually. Well, the problem is that the NpcDismisser and even the gamestate considers it to be there even after it disappears. This is only resolved by relogging. This conclusion was based on debugging the NPC, which turned out was 100% visible, had a model and even a full NpcDefinition. Obviously the NPC wasn't anywhere to be found.
Possible solutions:
- Fix the handler to actually click away the NPC's
- Rewrite the handler to just deactivate after x minutes or seconds
- Find a way to determine whether the NPC is still in game (which turned out be be impossible for me)
- Just shut down the entire client and call it a day (would NOT recommend, 0/10 option)