Running into a wall/npc/pc/mob no longer enables spurt. (bugreport:1155)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12498 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
8e31579894
commit
81a6774764
@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
|||||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
2008/04/05
|
2008/04/05
|
||||||
|
* Running into a wall/npc/pc/mob no longer enables spurt. (r12498) [Kevin]
|
||||||
* Fixed unable to move after using a skill to break out of sprint. (r12497) [Kevin]
|
* Fixed unable to move after using a skill to break out of sprint. (r12497) [Kevin]
|
||||||
* DMG no longer stops running. (r12488) [Kevin]
|
* DMG no longer stops running. (r12488) [Kevin]
|
||||||
2008/04/04
|
2008/04/04
|
||||||
|
@ -6305,12 +6305,15 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
case SC_RUN:
|
case SC_RUN:
|
||||||
{
|
{
|
||||||
struct unit_data *ud = unit_bl2ud(bl);
|
struct unit_data *ud = unit_bl2ud(bl);
|
||||||
|
bool begin_spurt = true;
|
||||||
if (ud) {
|
if (ud) {
|
||||||
|
if(!ud->state.running)
|
||||||
|
begin_spurt = false;
|
||||||
ud->state.running = 0;
|
ud->state.running = 0;
|
||||||
if (ud->walktimer != -1)
|
if (ud->walktimer != -1)
|
||||||
unit_stop_walking(bl,1);
|
unit_stop_walking(bl,1);
|
||||||
}
|
}
|
||||||
if (sce->val1 >= 7 &&
|
if (begin_spurt && sce->val1 >= 7 &&
|
||||||
DIFF_TICK(gettick(), sce->val4) <= 1000 &&
|
DIFF_TICK(gettick(), sce->val4) <= 1000 &&
|
||||||
(!sd || (sd->weapontype1 == 0 && sd->weapontype2 == 0))
|
(!sd || (sd->weapontype1 == 0 && sd->weapontype2 == 0))
|
||||||
)
|
)
|
||||||
|
@ -432,7 +432,11 @@ int unit_run(struct block_list *bl)
|
|||||||
if(to_x == bl->x && to_y == bl->y) {
|
if(to_x == bl->x && to_y == bl->y) {
|
||||||
//If you can't run forward, you must be next to a wall, so bounce back. [Skotlex]
|
//If you can't run forward, you must be next to a wall, so bounce back. [Skotlex]
|
||||||
clif_status_change(bl, SI_BUMP, 1);
|
clif_status_change(bl, SI_BUMP, 1);
|
||||||
|
|
||||||
|
//Set running to 0 beforehand so status_change_end knows not to enable spurt [Kevin]
|
||||||
|
unit_bl2ud(bl)->state.running = 0;
|
||||||
status_change_end(bl,SC_RUN,-1);
|
status_change_end(bl,SC_RUN,-1);
|
||||||
|
|
||||||
skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0);
|
skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0);
|
||||||
clif_fixpos(bl); //Why is a clif_slide (skill_blown) AND a fixpos needed? Ask Aegis.
|
clif_fixpos(bl); //Why is a clif_slide (skill_blown) AND a fixpos needed? Ask Aegis.
|
||||||
clif_status_change(bl, SI_BUMP, 0);
|
clif_status_change(bl, SI_BUMP, 0);
|
||||||
@ -448,7 +452,11 @@ int unit_run(struct block_list *bl)
|
|||||||
if (i==0) {
|
if (i==0) {
|
||||||
// copy-paste from above
|
// copy-paste from above
|
||||||
clif_status_change(bl, SI_BUMP, 1);
|
clif_status_change(bl, SI_BUMP, 1);
|
||||||
|
|
||||||
|
//Set running to 0 beforehand so status_change_end knows not to enable spurt [Kevin]
|
||||||
|
unit_bl2ud(bl)->state.running = 0;
|
||||||
status_change_end(bl,SC_RUN,-1);
|
status_change_end(bl,SC_RUN,-1);
|
||||||
|
|
||||||
skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0);
|
skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0);
|
||||||
clif_fixpos(bl);
|
clif_fixpos(bl);
|
||||||
clif_status_change(bl, SI_BUMP, 0);
|
clif_status_change(bl, SI_BUMP, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user