New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Casting Position Bug #1001
Comments
I kind of have implemented the functionality needed for this with stepaction already... // Remember the skill request from the client while walking to the next cell
if(src->type == BL_PC && ud->walktimer != INVALID_TIMER && !battle->check_range(src, target, range-1)) {
ud->stepaction = true;
ud->target_to = target_id;
ud->stepskill_id = skill_id;
ud->stepskill_lv = skill_lv;
return 0; // Attacking will be handled by unit_walktoxy_timer in this case
} But I didn't want it to apply unless when absolutely necessary, because of the complex timer mechanics that are involved with that, so I only did when you cast while the target is not in range (battle->check_range). If you removed that check it would always apply. Of course for self skills, the target is always in range. Problem is that unlike using a skill outside skill range where you can be sure that the client itself will make sure you stop one cell later, if you cast a self spell while moving, you will continue walking after reaching the next cell, so if your latency is high, you will still see yourself moving to the next cell... I tried to solve this by sending the client a move packet saying that the path was shortened, but the client ignored it. =/ Alternatively, one could simply remove the fixpos when stopping because of casting, but might create position lag. With fixpos it looks funny but at least you can tell on which cell the server considers you to be on. |
Hello dev :) any update for this? |
For rAthena I decided to keep it as it is. On official servers you are also pulled back to the previous cell but it doesn't send a fixpos packet so it just causes position lag. I rather have the real position show. |
I see. Sir @Playtester can you help me how to do that not sending a fixpos packet? |
In my testing Sir @Playtester in unit.c
i comment the line to disable it
Then my character didn't back to the cell where I was when im casting a skills. Like you said it causes position lag on high latency server. Commenting the line i dont know if its safe or this is the line your pointing out?. If you have any method sir please help. Thank you very much. |
It's better if you go to unit.c --> unit_skilluse_id2 And change: if(!ud->state.running) // Need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026
unit_stop_walking(src, 1); // Even though this is not how official works but this will do the trick. bugreport:6829 To: if(!ud->state.running) // Need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026
unit_stop_walking(src, 0); Then it doesn't affect other situations. (Note: This is rAthena code.) |
Thank you very much sir @Playtester it works for me. this is what im looking for long time ago :) |
I can confirm that Aegis either pushes you back to the previous cell, but shows the coordinates of next cell when using /where or does not push you back the previous cell but shows the coordinates of previous cell when using /where. |
Whenever I click on a cell and I cast a self -skill before stepping on that certain cell my charactter goes back to the cell where I was.
Video: https://youtu.be/PVRk7I59dmw
Bug tracker: http://herc.ws/board/index.php?app=tracker&showissue=7255
The text was updated successfully, but these errors were encountered: