Jump to content

Remove Kik Boss cuando lo ataca


DrPolitica

Mensajes recomendados

src Cliente/Gamelib/ActorInstanceBattle.cpp

Buscar:

Quote

void CActorInstance::__HitGreate(CActorInstance& rVictim)
{

Agregar abajo:

Quote

    if (IS_HUGE_RACE(rVictim.GetRace()))
    {
        return;
    }

Una pequeña contribución a la comunidad.

Enlace para comentar
Compartir en otros sitios

  • 4 weeks later...

Este cambio de código lo que hace es que a ti no te empujen los jefes, pero si buscan la linea que voy a dejar abajo ahí ustedes agregan 1 a 1 los jefes que no podrás empujar al tu atacarlos, por ejemplo normalmente viene el dragón beran y yo agregue el jefe orco para testear, probado por mi ya no empujas al jefe que agregues en cada case.

Esto se busca en el mismo ActorInstanceBattle.cpp

bool IS_HUGE_RACE(unsigned int vnum)
{
	switch (vnum)
	{
	case 691: // Jefe Orco
	case 2493: // Beran
		return true;
	}
	return false;
}

 

Enlace para comentar
Compartir en otros sitios

void CActorInstance::__HitGreate(CActorInstance& rVictim)
{

Cuando un actor del juego (puerta, metin, personaje, mob, construccion, etc) recibe un "golpe bien dado"

Llámese golpe bien dado a los golpes básicos que generan empuje (golpes de caballo o el último golpe de un combo).

El parámetro que llega es el actor que recibe el golpe.

 

    if (IS_HUGE_RACE(rVictim.GetRace()))
    {
        return;
    }

IS_HUGE_RACE es una función que sirve como una bandera, que clasifica a los monstruos como "raza enorme", llámese mobs en el mob_proto que tienen rank 4 (jefe) o mayor.

Aquí pregunta que si el actor que recibe daño es un jefe, entonces no ejecutará las siguientes líneas de un "golpe bien dado".

PD: no es necesario poner los vnum de los jefes en este bloque porque IS_HUGE_RACE ya los clasifica.

 

Si un personaje jugador recibe el golpe, por supuesto que va a ser empujado porque un personaje no es un jefe mob. Y los jefes no empujan con golpes básicos.

 

Esto no funciona para habilidades. Si se fijan en los enum:

	enum EHitType
	{
		HIT_TYPE_NONE,
		HIT_TYPE_GREAT,
		HIT_TYPE_GOOD,
	};

Solo existen dos tipos de golpe. Ese none es que es no identificado y pues dará error.

Los otros dos son el golpe bueno (normal) y el "golpe bien dado" (que empuja).

Ya si van a poner lo de que no empuje cuando pegue el jefe una skill, creo que el enum es este:

	enum EAttackType
	{
		ATTACK_TYPE_SPLASH,
		ATTACK_TYPE_SNIPE,
	};

No estoy muy seguro si splash es aplastar y snipe es como "tipo francotirador" :v supongo que golpes lejanos

 

Sería probar entrando a la función:

void CActorInstance::__ProcessDataAttackSuccess

y comentar la línea:

__PushCircle(rVictim);

para ver si vuelve a empujar.

 

Porque la función es así:

void CActorInstance::__PushCircle(CActorInstance & rVictim)
{
	const TPixelPosition& c_rkPPosAtk=NEW_GetAtkPixelPositionRef();

	D3DXVECTOR3 v3SrcPos(c_rkPPosAtk.x, -c_rkPPosAtk.y, c_rkPPosAtk.z);

	const D3DXVECTOR3& c_rv3SrcPos = v3SrcPos;
	const D3DXVECTOR3& c_rv3DstPos = rVictim.GetPosition();

	D3DXVECTOR3 v3Direction;
	v3Direction.x = c_rv3DstPos.x - c_rv3SrcPos.x;
	v3Direction.y = c_rv3DstPos.y - c_rv3SrcPos.y;
	v3Direction.z = 0.0f;
	D3DXVec3Normalize(&v3Direction, &v3Direction);

	rVictim.__SetFallingDirection(v3Direction.x, v3Direction.y);
}

Me parece que esto hace el personaje se desplace al realizar el golpe y de una vez lo derriba.

 

No sé si esté equivocado en alguna parte, me puse a investigar un rato.

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...