Skip to content

Sura Job Change Quest #1655

@iRagno

Description

@iRagno

Issue Prelude

  • I have not modified the source prior to reproducing this issue.
  • I am using the latest version of Hercules.
  • I am aware that this report will be closed or deleted if it becomes obvious that I am stating the false.

Description

Sura Job Change Quest will be buged after the first attemp to complete it.

Current Behavior

After the first attemp to Sura job change quest, all the quest gets bugged and can't be started by any player.

Expected Behavior

Quest should never get bugged.

Steps To Reproduce The Issue

[Buddy#Sura_Salon] is the npc in charge to control the practice test on job change quest to sura. This npc has two events to enable and disable this npc respectively and this events are called from other npcs.

Because the order of the events trigger to this npc, all the job change quest gets bugged after the first try of any Monk/Champion to this quest. This is what happens:

  1. Monk/Champion enters the waitingroom on [Drawing Room] npc and triggers OnStartArena event. Player is warped to the test and triggers "Buddy#Sura_Salon::OnEnable" event.
  2. "Buddy#Sura_Salon::OnEnable" inits npc timer and the test begin with normal messages and normal monster spawns according to the test.
  3. When timer triggers "OnTimer303000" event, enables npc [Buddy#job_shuaneh] allowing to the player to talk with an npc to be warped to the next destination and that is the normal way to complete the test with success. A way to fail this part is to be dead and be kicked out from map.
  4. When timer triggers "OnTimer305000" event, npc kills all the monsters from the test.
  5. When timer triggers "OnTimer315000" event, enables npc [#Sura_garajjom], and this warps player to the next destination allowing to the player to continue the test just like if talked to the npc in point 3, even if player is dead. I checked this on official script and seems to be right compared to it, but wanted to point this because this is really a bug that allow players to don't need to do anything, can be afk and be killed and still will success the test, and, from the messages on the test, seems that if player can't talk to the npc he is "not ready to meet the master yet" and should be kicked out of there, but this point allows player to bypass that kicking.
  6. THIS IS THE IMPORTANT ONE: When timer triggers "OnTimer320000" event, npc do this:
    a) disables previous npc.
    b) triggers "Drawing Room::OnEnable" -> enablewaitingroom -> warp next player to the test map -> enables npc [Buddy#Sura_Salon] and initnpctimer of all of triggers above.
    c) triggers "Buddy#Sura_Salon::OnDisable" -> disables npc [Buddy#Sura_Salon] and stops npctimer.

As result of the before, none of the timer events of [Buddy#Sura_Salon] will be trigger again, because timer was stoped in point 6c and will never be enabled again the waiting room event to warp new players.

To solve this, just needs the following:

For the bug described in point 5: comment lines 657 and 662 on script.
For the bug described in point 6: just switch the order of lines 663 and 664.

Branch(es):

  • master

Hercules rev. hash/commit:

Git revision src: latest (1eb26bf)

Operating System

Windows 8.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions