Skip to content

flying everywhere?

Featured Replies

And so far, Falcon/etc are considered as transformation, not as mou.nt.

More or less

@Override
public void onTransform()
{
	if ((getPlayer().getTransformationId() != 8) || getPlayer().isCursedWeaponEquipped())
	{
		return;
	}
	getPlayer().setIsFlyingMou.nted(true);

	transformedSkills();
}

 

public void setIsFlyingMou.nted(boolean val)
{
	_isFlyingMounted = val;
	setIsFlying(val);
}

So both, wyvern and falcon are isFlying

try to attack (or falcons only could use skills?) some1 that is flying with a wyvern, maybe its move packets problem

  • Author

No system message at the moment.

I've changed the Skill.xml as An4rchy proposed:

 

so, check what will do

Code: [select]

 

setIsFlying(true);

 

Now characters can transform into aurabird falcon, while on aden continent but vertical movement still isn't possible and if you click somewhere to move, character doesn't really move. there are just some seconds passing, while nothing happens, then character "jumps" forward.

 

: //

 

so well, you thin I should re-change skill and look for the message when trying to transform?

well, lets state what things works and what doesnt:

- transformation (as skill) is done well (you get the skills so all the process is done)

 

- we dont know if the packets system works ( i cant find what are the move packets and if there is another packet of flymove) if some1 can find them, just add some debug information to know if they are send/recived and if core try to do anything with them

 

-Wyverns dont have any problem to fly (right?) in Aden

  • Author

Found this parts in model/actor/L2Character.java

 

	final boolean verticalMovementOnly = isFlying() && distance == 0 && dz != 0;
	if (verticalMovementOnly)
		distance = Math.abs(dz);

	// make water move short and use no geodata checks for swimming chars
	// distance in a click can easily be over 3000
	if (Config.GEODATA > 0 && isInsideZone(ZONE_WATER) && distance > 700)
	{
		double divider = 700 / distance;
		x = curX + (int) (divider * dx);
		y = curY + (int) (divider * dy);
		z = curZ + (int) (divider * dz);
		dx = (x - curX);
		dy = (y - curY);
		dz = (z - curZ);
		distance = Math.sqrt(dx * dx + dy * dy);
	}

 

AND

 

// Apply Z distance for flying or swimming for correct timing calculations
	if ((isFlying() || isInsideZone(ZONE_WATER)) && !verticalMovementOnly)
		distance = Math.sqrt(distance * distance + dz * dz);

 

I guess "vertical movement" is for swimming AND flying...maybe the solution is somewhere around here or somewhere else in the L2Character.java? I don't really understand the code...

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.