Jump to content

COWARD en Npcs y 1 de daño en mobs


Mensajes recomendados

 

Buenas noches zoneros y zoneras:


1-.Coward en los NPC
 

-.Hace unos días estuve investigando de como hacer que un npc salga a correr como los tanakas "Osea que la opcion COWARD en el navicat tambien sea funcional para npc".

-.Despues de estar mirando por un rato el codigo encontre la solucion y hoy os la vengo a compartir con ustedes en caso de que quieran usarla.



Bueno para ello debemos de abrir nuestro archivo "Char_state.cpp" de nuestro source game y hacer lo siguiente:

 

1-.Buscamos en el archivo la siguiente linea

void CHARACTER::__StateIdle_NPC()

2-.Dentro de ella buscamos lo siguiente:

	else if (IsGuardNPC())

3-.Despues agregamos la siguiente linea encima-

#ifdef ENABLE_COWARD_NPC
	if (IsCoward())
	{
		if (!IsDead())
			CowardEscape();
		return;
	}
#endif

[Informacion]Pero antes de nada debeis de asegurar que las definiciones del sistema de mascotas o monturas que tengais instalado
[Informacion]Queden por encima de la nueva linea que agregais ya que si queda por debajo cuando invoqueis la montura o el pet
con el sello saldra corriendo. Ejemplo:

#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
	if (IsMount())
		return;
#endif

	//  시스템의 Idle 처리는 기존 거의 모든 종류의 캐릭터들이 공유해서 사용하는 상태머신이 아닌 CPetActor::Update에서 처리함.
#ifdef __NEWPET_SYSTEM__
	if (IsPet() || IsNewPet())
#else
	if (IsPet())
#endif
		return;

#ifdef ENABLE_COWARD_NPC
	if (IsCoward())
	{
		if (!IsDead())
			CowardEscape();
		return;
	}
#endif
	else if (IsGuardNPC())

[Informacion]Si os dais cuenta las que son del sistema de pets y monturas van antes que la que hemos agregado.

Una vez realizado guardan el archivo y abren el "CommonDefine.h" y agregan el siguiente define

#define ENABLE_COWARD_NPC

6-. Cuando realize todos los cambios solamente basta conque en la tabla del mob_proto en la parte donde dice ai_flag, pongan la opcion de COWARD.

 

Una vez realizado todo lo anterior guardan los cambios y compilan. Si lo hicieron tal cual les puse no deberian de tener problema a la hora de compilar.


 

2-. 1 de daño a un mob en especifico

 

Bueno ahora os voy a explicar como hacer que solamente le peguen 1 de daño a un mob que ustedes asignen "Incluso haciendo habilidades"

Para ello abrimos nuestro archivo "char_battle.cpp" del src game y hacemos lo siguiente

 

1-.Abren su archivo char_battle.cpp y buscan lo siguiente

bool CHARACTER::Damage

2-. Dentro de esta clase buscan la siguientes lineas

		float damMul = this->GetDamMul();
		float tempDam = dam;
		dam = tempDam * damMul + 0.5f;

3-Debajo agregan lo siguiente

#ifdef DAMAGE_CODE
		if (GetRaceNum() == 8510)
		{
			dam = 1;
			damageFlag == DAMAGE_NORMAL;
		}
#endif

4-. Donde dice 8510 agregan el vnum del mob que quieren que le saquen 1 de daño, y donde dice dam = 1; pueden editar si quieren que saque 1 o 10 o el numero que le asignen

5-. Guardan el archivo y agregan el define al archivo "CommonDefine.h"

#define DAMAGE_CODE



Espero que este aporte les sirva de algo.😊

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...