Jump to content

Recommended Posts

Posted

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies to enhance your browsing experience and provide relevant content. By continuing to browse, you agree to our We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. and Terms of Use. For more information on how we protect your data, please check our Privacy Policy.