Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

  • #006044

  • 2 - Fair

  • Started

Issue Confirmations

  • Yes (5)No (0)
Photo

Homunculus, mercenaries and elementals not warping to the master postion

Posted by Hercules Bot on 17 June 2012 - 02:19 AM

Originally posted by Daegaladh
Homunculus, mercenaries and elementals don't warp to the master position

Only mercenaries do, but not correctly, they're warping instantly and not after 3 seconds as it should be:

unit.c :
if( sd->md && !check_distance_bl(&sd->bl, &sd->md->bl, MAX_MER_DISTANCE) )
		{// mercenary is too far from the master so warp the master's position
			unit_warp( &sd->md->bl, sd->bl.m, sd->bl.x, sd->bl.y, CLR_TELEPORT );
		}
else if( mrd && mrd->master && !check_distance_bl(&mrd->master->bl, bl, MAX_MER_DISTANCE) )
{// mercenary is too far from the master so warp the master's position
unit_warp( bl, mrd->master->bl.id, mrd->master->bl.x, mrd->master->bl.y, CLR_TELEPORT );
}


How it should work (tested on kRO and iRO):
All, homunculus, mercenaries and elementals should warp to the master position when they are more than 14 cells from you (or 13 cells between you and them) away for 3 seconds.
That means, if you go away from them more than 14 cells but come back to the range before the time is over, they don't warp.

So, the distance should be double checked, first when you go away and starts the 3 seconds timer, and again when the timer is over to check if they're still away or not.

Originally posted by frenzmu06
confirmed this to homunc and elemental, also have problem with this
how about the pet? also is their walk speed behavior after warping to your position already fixed?

Edited by frenzmu06, 17 June 2012 - 03:02 AM.


Originally posted by Daegaladh
Don't know about pets, but mercenaries and elementals should mimic their master's speed on each change map, as homunculus do.

Originally posted by frenzmu06
what i remember on pet is that after they warp to you they sometimes do abnormal movement speed (they get max movespeed and resets only to normal after relogging) ill try test pets later if i have time

edit:
the pet is fine

Edited by frenzmu06, 27 June 2012 - 07:34 AM.


Originally posted by GreenBox
Partial fix on [rev=16327].

Originally posted by Daegaladh
Please, don't forget to add this too:


Index: clif.c
===================================================================
--- clif.c (revision 16345)
+++ clif.c (working copy)
@@ -9170,6 +9170,7 @@
  clif_spawn(&sd->md->bl);
  clif_mercenary_info(sd);
  clif_mercenary_skillblock(sd);
+ status_calc_bl(&sd->md->bl, SCB_SPEED); //Mercenary mimic their master's speed on each map change
  }

  if( sd->ed ) {
@@ -9179,6 +9180,7 @@
  clif_elemental_updatestatus(sd,SP_HP);
  clif_hpmeter_single(sd->fd,sd->ed->bl.id,sd->ed->battle_status.hp,sd->ed->battle_status.matk_max);
  clif_elemental_updatestatus(sd,SP_SP);
+ status_calc_bl(&sd->ed->bl, SCB_SPEED); //Elemental mimic their master's speed on each map change
  }
  
  if(sd->state.connect_new) {

Edited by Daegaladh, 25 June 2012 - 11:27 AM.