Jump to content

[Guia]Cambiar y Agregar Drops a un Mob


Ryukend

Mensajes recomendados

Petición hecha por alejandro1995, espero que lo ayude...

 

Primero de todo, encender el server (también se puede dejar en el inicio de sesión) y entrar con FileZilla o WinSCP.

 

Una vez conectado a través del programa ir a: usr / / Rain / share_data / local / Hong Kong / mob_drop_item.txt y abrir suele estar hay.

 

1. Busque el valor del MOB que quieren cambiar (por ejemplo, 1093: el reaper) y encontraras esto:

 

 

 

Group ȍ½Ã…

{

type limit

mob 1093

level_limit 75

1 ȍ½Ã…Àç»óÀÚ 1 50}

 

 

El nombre en chino color verde es el nombre del cofre del reaper pero puedes usar el numero del item que quieres que dropee es mas facil y comodo asi lo hare yo en la siguiente parte.

 

¿Que quiere decir cada numero?

 

 

 

Group ȍ½Ã…

{

type limit

mob 1093

level_limit 75

1 50082 1 50

}

 

 

El color amarillo indica que es el primer item que tirara el Mob.

 

El color Rojo indica el ID del item que dropeara.

 

El color azul indica la cantidad de items que dropeara.

 

El naranja oscuro indica la probabilidad de que caiga tal item (Para una caída casi segura poner 50 o más).

 

Para añadir otro item se debe colocar de la siguiente manera:

 

 

 

Group ȍ½Ã…

{

type limit

mob 1093

level_limit 75

1 50082 1 50}

2 (id del item) cantidad y % de drop

3...

}

 

 

Puedes colocar todos los drops que quieras :D

 

Nota: No siempre el mob_drop_item.txt viene arreglado en algunos casos es desordenado pero igual es de la misma forma ;)

 

Créditos:

 

La guía la saque de otro lado, pero la edite para que sea mas comprensiva :D

 

Espero les allá gustado ;)

Enlace para comentar
Compartir en otros sitios

  • 6 years later...
hace 5 horas, Lord Ahriman - 3D Modeler dijo:

reabro el tema, que hago en el caso de agregarle drop a un mob que no lo tenia, le queria darle al Lykos, pero al hacerlo y dar reboot no pasa nada, sigue dando lo mismo

Puedes mostrar cómo estás agregando el drop?

Enlace para comentar
Compartir en otros sitios

Group    Lykos            
{                    
    type    drop        
    mob    191                    
    1    71201    1    100
    2    71202    1    100
    3    71203    1    100
    4    71204    1    100
    5    71205    1    100
    6    71206    1    100
    7    71207    1    100
    8    71208    1    100
}

Enlace para comentar
Compartir en otros sitios

service.h
#define __LOAD_MOB_TXT__
#define __LOAD_CHEST_TXT__


buscas ACMD(do_reload)

debajo de  

			case 'c':	// cube
				// ·ÎÄà ÇÁ·Î¼¼½º¸¸ °»»êÇÑ´Ù.
				Cube_init ();
				break;

#if defined(__LOAD_CHEST_TXT__) || defined(__LOAD_MOB_TXT__)
			case 't':
				snprintf(szSpecialItemGroupFileName, sizeof(szSpecialItemGroupFileName), "%s/special_item_group.txt", LocaleService_GetBasePath().c_str());
				ITEM_MANAGER::Instance().DestroyChestDropItem();
				if (!ITEM_MANAGER::Instance().ReadSpecialDropItemFile(szSpecialItemGroupFileName))
				{
					ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar special_item_group.txt.");
					return;
				}
				else
				{
				 ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste special_item_group.");
				}
				break;

			case 'm':
				snprintf(szMOBDropItemFileName, sizeof(szMOBDropItemFileName), "%s/mob_drop_item.txt", LocaleService_GetBasePath().c_str());
				ITEM_MANAGER::Instance().DestroyMobDropItem();
				if (!ITEM_MANAGER::Instance().ReadMonsterDropItemGroup(szMOBDropItemFileName))
				{
					ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar mob_drop_item.txt.");
					return;
				}
				else
				{
				 ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste mob_drop_item.");
				}
				break;
#endif

agregar al final de item_manager.cpp
#if defined (__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__)
void ITEM_MANAGER::DestroyMobDropItem()
{
	if (!m_map_pkMobItemGroup.empty())
		m_map_pkMobItemGroup.clear();

	if (!m_map_pkDropItemGroup.empty())
		m_map_pkDropItemGroup.clear();

	if (!m_map_pkLevelItemGroup.empty())
		m_map_pkLevelItemGroup.clear();

	if (!m_map_pkGloveItemGroup.empty())
		m_map_pkGloveItemGroup.clear();
}

void ITEM_MANAGER::DestroyChestDropItem()
{
	if (!m_map_pkSpecialItemGroup.empty())
		m_map_pkSpecialItemGroup.clear();
}

#endif

en item_manager.h debajo de void			GracefulShutdown(); agregar

#if defined(__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__)
		void			DestroyMobDropItem();
		void			DestroyChestDropItem();
#endif

Agregando esto no tienes necesidad de dar reboot  solo reload t y reload m y automaticamente se carga en el juego.

Enlace para comentar
Compartir en otros sitios

hace 2 horas, Jfirewall dijo:

service.h
#define __LOAD_MOB_TXT__
#define __LOAD_CHEST_TXT__


buscas ACMD(do_reload)

debajo de  

			case 'c':	// cube
				// ·ÎÄà ÇÁ·Î¼¼½º¸¸ °»»êÇÑ´Ù.
				Cube_init ();
				break;

#if defined(__LOAD_CHEST_TXT__) || defined(__LOAD_MOB_TXT__)
			case 't':
				snprintf(szSpecialItemGroupFileName, sizeof(szSpecialItemGroupFileName), "%s/special_item_group.txt", LocaleService_GetBasePath().c_str());
				ITEM_MANAGER::Instance().DestroyChestDropItem();
				if (!ITEM_MANAGER::Instance().ReadSpecialDropItemFile(szSpecialItemGroupFileName))
				{
					ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar special_item_group.txt.");
					return;
				}
				else
				{
				 ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste special_item_group.");
				}
				break;

			case 'm':
				snprintf(szMOBDropItemFileName, sizeof(szMOBDropItemFileName), "%s/mob_drop_item.txt", LocaleService_GetBasePath().c_str());
				ITEM_MANAGER::Instance().DestroyMobDropItem();
				if (!ITEM_MANAGER::Instance().ReadMonsterDropItemGroup(szMOBDropItemFileName))
				{
					ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar mob_drop_item.txt.");
					return;
				}
				else
				{
				 ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste mob_drop_item.");
				}
				break;
#endif

agregar al final de item_manager.cpp
#if defined (__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__)
void ITEM_MANAGER::DestroyMobDropItem()
{
	if (!m_map_pkMobItemGroup.empty())
		m_map_pkMobItemGroup.clear();

	if (!m_map_pkDropItemGroup.empty())
		m_map_pkDropItemGroup.clear();

	if (!m_map_pkLevelItemGroup.empty())
		m_map_pkLevelItemGroup.clear();

	if (!m_map_pkGloveItemGroup.empty())
		m_map_pkGloveItemGroup.clear();
}

void ITEM_MANAGER::DestroyChestDropItem()
{
	if (!m_map_pkSpecialItemGroup.empty())
		m_map_pkSpecialItemGroup.clear();
}

#endif

en item_manager.h debajo de void			GracefulShutdown(); agregar

#if defined(__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__)
		void			DestroyMobDropItem();
		void			DestroyChestDropItem();
#endif

Agregando esto no tienes necesidad de dar reboot  solo reload t y reload m y automaticamente se carga en el juego.

Muy útil, gracias, lo usaré!

Enlace para comentar
Compartir en otros sitios

hace 8 horas, Jfirewall dijo:

service.h
#define __LOAD_MOB_TXT__
#define __LOAD_CHEST_TXT__


buscas ACMD(do_reload)

debajo de  

			case 'c':	// cube
				// ·ÎÄà ÇÁ·Î¼¼½º¸¸ °»»êÇÑ´Ù.
				Cube_init ();
				break;

#if defined(__LOAD_CHEST_TXT__) || defined(__LOAD_MOB_TXT__)
			case 't':
				snprintf(szSpecialItemGroupFileName, sizeof(szSpecialItemGroupFileName), "%s/special_item_group.txt", LocaleService_GetBasePath().c_str());
				ITEM_MANAGER::Instance().DestroyChestDropItem();
				if (!ITEM_MANAGER::Instance().ReadSpecialDropItemFile(szSpecialItemGroupFileName))
				{
					ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar special_item_group.txt.");
					return;
				}
				else
				{
				 ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste special_item_group.");
				}
				break;

			case 'm':
				snprintf(szMOBDropItemFileName, sizeof(szMOBDropItemFileName), "%s/mob_drop_item.txt", LocaleService_GetBasePath().c_str());
				ITEM_MANAGER::Instance().DestroyMobDropItem();
				if (!ITEM_MANAGER::Instance().ReadMonsterDropItemGroup(szMOBDropItemFileName))
				{
					ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar mob_drop_item.txt.");
					return;
				}
				else
				{
				 ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste mob_drop_item.");
				}
				break;
#endif

agregar al final de item_manager.cpp
#if defined (__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__)
void ITEM_MANAGER::DestroyMobDropItem()
{
	if (!m_map_pkMobItemGroup.empty())
		m_map_pkMobItemGroup.clear();

	if (!m_map_pkDropItemGroup.empty())
		m_map_pkDropItemGroup.clear();

	if (!m_map_pkLevelItemGroup.empty())
		m_map_pkLevelItemGroup.clear();

	if (!m_map_pkGloveItemGroup.empty())
		m_map_pkGloveItemGroup.clear();
}

void ITEM_MANAGER::DestroyChestDropItem()
{
	if (!m_map_pkSpecialItemGroup.empty())
		m_map_pkSpecialItemGroup.clear();
}

#endif

en item_manager.h debajo de void			GracefulShutdown(); agregar

#if defined(__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__)
		void			DestroyMobDropItem();
		void			DestroyChestDropItem();
#endif

Agregando esto no tienes necesidad de dar reboot  solo reload t y reload m y automaticamente se carga en el juego.

Excelente esto, muchas gracias!

Enlace para comentar
Compartir en otros sitios

  • 1 year later...

Acá te dejo el archivo de que líneas se deben modificar + las líneas faltantes que no dejaron en la guía y salía error al intentar compilar.

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

 

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