Jump to content

Fix de textura en sura u otros npc


[D]ELARO ✓

Mensajes recomendados

Guía para Fixear el bug de la textura del Sura incluso de alguna otra que presente el problema, sigan la guía dejo ejemplos del antes y después.

Se modifica Source Binario.

ANTES

1.png

DESPUES


2.png

 

 

/////////////////////////////////////////////////////////////

1 Userinterface/Locale.inc.h

// Pegar
#define NPC_TEXTURE_FIX

/////////////////////////////////////////////////////////////

2 EterGrnLib/Thing.cpp

// Buscar
CGrannyMotion * CGraphicThing::GetMotionPointer(int iMotion)

// Agregar abajo
#ifdef NPC_TEXTURE_FIX
int CGraphicThing::GetTextureCount() const
{
	if (!m_pgrnFileInfo)
		return 0;

	if (m_pgrnFileInfo->TextureCount <= 0)
		return 0;

	return (m_pgrnFileInfo->TextureCount);
}

const char * CGraphicThing::GetTexturePath(int iTexture)
{
	if(iTexture >= GetTextureCount())
		return "";

	return m_pgrnFileInfo->Textures[iTexture]->FromFileName;
}
#endif

/////////////////////////////////////////////////////////////

3 EterGrnLib/Thing.h

// Buscar
		int				GetMotionCount() const;

// Agregar abajo
#ifdef NPC_TEXTURE_FIX
		int				GetTextureCount() const;
		const char *				GetTexturePath(int iTexture);
#endif

/////////////////////////////////////////////////////////////

4 GameLib/ActorInstanceData.cpp

// Buscar
			CGraphicThing* pLODModelThing = pRaceData->GetLODModelThing();
			RegisterLODThing(0, pLODModelThing);

// Reemplazar
#ifdef NPC_TEXTURE_FIX
			CGraphicThing* pLODModelThing = pRaceData->GetLODModelThing();

			bool canLOD = true;
			if (pModelThing && pLODModelThing) {
				if (pModelThing->GetTextureCount() == pLODModelThing->GetTextureCount()) {
					for (int i = 0; i < pModelThing->GetTextureCount(); i++) {
						if (strcmp(pModelThing->GetTexturePath(i), pLODModelThing->GetTexturePath(i)) != 0)
							canLOD = false;
					}
				} else {
					canLOD = false;
				}
			}

			if(canLOD)
				RegisterLODThing(0, pLODModelThing);
#endif

/////////////////////////////////////////////////////////////

// PARA LOS QUE NO ENTIENDAN ESTE PASO, QUEDARIA ASI:

	{
		if (pRaceData->IsTree())
		{
			__CreateTree(pRaceData->GetTreeFileName());
		}
		else
		{
			CGraphicThing* pModelThing = pRaceData->GetBaseModelThing();
			RegisterModelThing(0, pModelThing);

#ifdef NPC_TEXTURE_FIX
			CGraphicThing* pLODModelThing = pRaceData->GetLODModelThing();

			bool canLOD = true;
			if (pModelThing && pLODModelThing) {
				if (pModelThing->GetTextureCount() == pLODModelThing->GetTextureCount()) {
					for (int i = 0; i < pModelThing->GetTextureCount(); i++) {
						if (strcmp(pModelThing->GetTexturePath(i), pLODModelThing->GetTexturePath(i)) != 0)
							canLOD = false;
					}
				} else {
					canLOD = false;
				}
			}

			if(canLOD)
				RegisterLODThing(0, pLODModelThing);
#endif

			SetModelInstance(0, 0, 0);
		}
	}

 

LES DEJO UN ARCHIVO .CPP CON LA GUIA PARA QUE LA GUARDEN O QUIERAN VERLO MAS CLARO EN NOTEPAD++

 

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