HerculesWS / Hercules

Hercules is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. Hercules is a continuation of the original Athena project.
http://herc.ws
GNU General Public License v3.0
900 stars 758 forks source link

progressbar should allow movement #2373

Open AnnieRuru opened 5 years ago

AnnieRuru commented 5 years ago

Describe the bug https://rathena.org/board/topic/118266-npcscriptcont-unexpected-state-2-for-continue-call/?sortby=date

To Reproduce

prontera,155,185,5  script  F_PetTrader 1_F_MARIA,{
    progressbar "", 5;
//  progressbar_unit "", 5, getnpcid();
}

Expected behavior https://github.com/rathena/rathena/issues/1425

Screenshots click on the link above

System specs (please complete the following information):

Plugins used or source modifications

Additional context should we emulate official bug ? although I can tell people going to yell why hercules doesn't allow movement to break free from progressbar

dastgirp commented 5 years ago

For some reason it is commented on source without any reason why it is done so Clif.c

/*else if( sd->progressbar.npc_id )
        clif->progressbar_abort(sd);*/
Emistry commented 5 years ago

perhaps an option to allow walkable or not? progressbar("<color>", <time>, <walkable true/false>); the color param seem like useless, never seen the color actually work in any client so far.

AnnieRuru commented 5 years ago

its more like ... should we emulate official bug or not ... rathena doesn't think twice in emulating the bug https://github.com/rathena/rathena/commit/fc92a97978ad18095759299052b5ba96120351f9 ~example, if you gets hit, the progressbar stops and close button disappear <-- this part is official, OK what if the monster hitting you was kill by teammates, haha you get stuck for 60 seconds <-- 60 seconds is SECURE_TIMEOUT think about it, if you need to relog in endless tower ... also means you have to walk all the stairs ... again~ https://github.com/rathena/rathena/commit/42920b2794b2afa40bd0d41475d5c84e081a7cf3

and even if we allow <walkable> or not, it should be default to ON, as officially allow it ... well based on the video in the link of course, need aegis confirmation

EDIT: bad news for hercules, our secure timeout is disabled https://github.com/HerculesWS/Hercules/issues/2073

EDIT2: it seems rathena workaround with it with an immediate close button

Emistry commented 5 years ago

its more like ... should we emulate official bug or not ...

if i recall correctly, @MishimaHaruna mentioned it last time, cant recall under which PR/issue. Herc shall provide option/config to emulate the bug and then providing a fix for the bug would be a bonus.

adding the option <walkable> would allow other to self decide to allow the bug or otherwise. Their choices.

aleos89 commented 5 years ago

You keep using the word "bug" when you haven't even tested this on kRO. We tested this on kRO at School of Fish as there were only a select amount of NPC (that didn't require tons of prerequisite quests) in 2016 that used progressbar. If you want me to test again I can do that later today for you and provide you with a video.

If you can provide us with kRO documentation that says when this feature was implemented, how it should be implemented, and any updates/changes to it then we can prove if this is a "bug" or not. Other than that, I don't see how you can determine this is a bug on kRO just because it differs from how Hercules has it implemented. Were the walk test cases even performed when it was originally implemented by Malufett?

It's disheartening to constantly see you berate the work and time people put into the emulator. We all work for the same cause, to emulate RO. I don't see why there has to be a rift between the two emulators. I'll get off my soap box now.

kyeme commented 5 years ago

http://herc.ws/oldboard/tracker/issue-7380-showprocgressbar-improper-behaviour/?gopid=18574#entry18574

https://github.com/HerculesWS/Hercules/commit/962d203f95fd8b81d504f60aa28bb17cc268395d

AnnieRuru commented 5 years ago

that's old, 2013, I talked to aleos in discord about this issue, he said the progressbar behavior has changed since ... dunno when ...

also, hercules progressbar can cause player get stuck when the progressbar is running and gets hit from a monster while having a npc dialog

aleos89 commented 5 years ago

2019-02-22_17-30-30 Here's a quick GIF from kRO Sakray that I just made. As soon as I click the progressbar is cancelled and my second click lets me walk.

guilherme-gm commented 5 years ago

just a suggestion: what about making a config to set the default behaviour (so users can decide what better suits them) and add that extra parameter as suggested by emistry to force one behaviour for specific cases (e.g. custom scripts)?

dastgirp commented 5 years ago

http://herc.ws/oldboard/tracker/issue-7380-showprocgressbar-improper-behaviour/?gopid=18574#entry18574

962d203

I may have missed the part, but the video you provided on the issue does not show walk behavior. or most likely kRO changed the behavior.

guilherme-gm commented 5 years ago

I think kRO changed the behavior later on, like annie commented above:

I talked to aleos in discord about this issue, he said the progressbar behavior has changed since ... dunno when ...

that's another reason that might be a good idea to make it a battle option, as this could be a re-only behavior