OpenKore / OpenKore/openkore

Improve NPC goodbye message handling

Open
#4,174 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
Perl
Stars
1.5k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

Describe the solution you'd like

Something that always bothered me is this:

Task::TalkNPC::conversation_end called at ai npc_talk 'select'. 
Conversa com NPC Funcionária Kafra (0) finalizada. 
NPC Funcionária Kafra (0): Task::TalkNPC::DESTROY was called 
An unexpected npc conversation has started, auto-creating a TalkNPC Task Task::TalkNPC::new has been called with sequence ''. 
[Funcionária Kafra] A Corporação Kafra tem o enorme prazer em servir você.
Agradecemos por usar nossos serviços. 
Npc which started autotalk has automatically sent a 'npc_talk_done'. 
Client network buffer flushed out
Talking was initiated by the other side and finished instantly
Talking with NPC Funcionária Kafra (0) at (175,226), ID 1F 00 00 00 
NPC Funcionária Kafra (0): Sending talk cancel [id '31'] after NPC has done talking 

The task is immediately destroyed after chosing to end conversation, and then opens a new task to handle the goodbye message.
Maybe we can improve the task by letting the task wait for a goodbye message, before destroying it?

Additional context

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing Task::TalkNPC::conversation_end and the ai npc_talk 'select' entry point shown in the log. Compare how Task::TalkNPC::new handles the automatically created conversation and how npc_talk_done ends it. Done means the existing task handles the goodbye message without immediately destroying and recreating a task, with the logged conversation flow behaving correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
perl
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.