Jump to content

[SOLUCION] Bug en los efectos "Cuando inicias de sesion"


𝗔𝗿𝗲𝘀

Mensajes recomendados

Buenas tardes zoneros y zoneras: 

En esta ocasion os traigo una solucion para todas aquellas personas que usan base Wonder2 o WoM2

Esta solucion sirve para el bug que provoca que desaparezcan los efectos algunas veces cuando inicias sesion dentro del juego. "Lo que usan la base que mencione sabran de lo que les hablo"

 

Bueno antes de nada dejarme decirle como es ocasionado este bug y cual es su solucion:

 

Este bug esta ocasionado por lo siguiente. Si nos damos cuenta en las opciones del juego, en la segunda pestaña tenemos las siguientes opciones

image.jpeg

Si se fijan existen 2 opciones de ocultar efectos:

Pues bueno lo que haremos aca es elimar completamente la segunda opcion. "La que dice Ocultar efectos"

La cual en verdad es tonteria que este puesta ya que hace el mismo funcionamiento que la primera opcion de ocultar.

Solamente la diferencia esta en que la primera opcion "La que dice ocultar" Cuando le das a la opcion donde dice efectos automaticamente te ocultan todos los efectos "Incluyendo los buff y demas"

Y en la segunda opcion podras ir eligiendo lo que deseas ocultar "Si los buff o los brillos de las armas o los de las armaduras....etc"

 

Bueno ya sabiendo esto comencemos:

 

¿Como puedo desactivar esas opciones?

 

Mucha gente se pregunta sobre como desactivarlas para que no funcionen mas.

 

Hay gente que se piensa que desactivandolas desde el archivo del uiscript y del game ya no funcionara mas pero ERROR. Hay lo que estas haciendo es desactivando los botones, pero todavia sigue funcionando ya que para desactivarla completamente es necesario eliminarla tambien de la parte del binario.

 

Bueno para eliminarla completa necesitaremos los siguientes archivos:

 

Carpeta UserInterface

-.PythonSystem.cpp

-.PythonSystem.h

-.PythonSystemModule.cpp

 

Carpeta root

uigameoption.py

Dentro del root la carpeta uiscript

gameoptiondialog.py

 

Comencemos:

 

Vamos a nuestro archivo PythonSystem.cpp y buscamos lo siguiente

bool CPythonSystem::GetHideMode1Status2() {
	return m_Config.bHide1Mode2;
}

bool CPythonSystem::GetHideMode2Status2() {
	return m_Config.bHide2Mode2;
}

bool CPythonSystem::GetHideMode3Status2() {
	return m_Config.bHide3Mode2;
}

bool CPythonSystem::GetHideMode4Status2() {
	return m_Config.bHide4Mode2;
}

void CPythonSystem::SetHideModeStatus2(int type, int value) {
	switch (type) {
		case 0:
			m_Config.bHide1Mode2 = value == 0 ? false : true;
			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_ARMORS_SHININGS, m_Config.bHide1Mode2);
			break;
		case 1:
			m_Config.bHide2Mode2 = value == 0 ? false : true;
			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_WEAPONS_SHININGS, m_Config.bHide2Mode2);
			break;
		case 2:
			m_Config.bHide3Mode2 = value == 0 ? false : true;
			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_BUFF, m_Config.bHide3Mode2);
			break;
		case 3:
			m_Config.bHide4Mode2 = value == 0 ? false : true;
			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_SKILL, m_Config.bHide4Mode2);
			break;
		default:
			break;
	}
}


Una vez lo encontremos lo remplazamos por el siguiente

//bool CPythonSystem::GetHideMode1Status2() {
//	return m_Config.bHide1Mode2;
//}
//
//bool CPythonSystem::GetHideMode2Status2() {
//	return m_Config.bHide2Mode2;
//}
//
//bool CPythonSystem::GetHideMode3Status2() {
//	return m_Config.bHide3Mode2;
//}
//
//bool CPythonSystem::GetHideMode4Status2() {
//	return m_Config.bHide4Mode2;
//}

//void CPythonSystem::SetHideModeStatus2(int type, int value) {
//	switch (type) {
//		case 0:
//			m_Config.bHide1Mode2 = value == 0 ? false : true;
//			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_ARMORS_SHININGS, m_Config.bHide1Mode2);
//			break;
//		case 1:
//			m_Config.bHide2Mode2 = value == 0 ? false : true;
//			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_WEAPONS_SHININGS, m_Config.bHide2Mode2);
//			break;
//		case 2:
//			m_Config.bHide3Mode2 = value == 0 ? false : true;
//			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_BUFF, m_Config.bHide3Mode2);
//			break;
//		case 3:
//			m_Config.bHide4Mode2 = value == 0 ? false : true;
//			CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_SKILL, m_Config.bHide4Mode2);
//			break;
//		default:
//			break;
//	}
//}

Ahora buscamos lo siguiente

m_Config.bHide1Mode2 = false;
m_Config.bHide2Mode2 = false;
m_Config.bHide3Mode2 = false;
m_Config.bHide4Mode2 = false;

Todo esto lo remplazamos por lo siguiente

	//m_Config.bHide1Mode2 = false;
	//m_Config.bHide2Mode2 = false;
	//m_Config.bHide3Mode2 = false;
	//m_Config.bHide4Mode2 = false;

Despues buscamos lo siguiente

else if (!stricmp(command, "HIDE1_MODE2")) {
	m_Config.bHide1Mode2 = atoi(value) == 0 ? false : true;
	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_ARMORS_SHININGS, m_Config.bHide1Mode2);
}
else if (!stricmp(command, "HIDE2_MODE2")) {
	m_Config.bHide2Mode2 = atoi(value) == 0 ? false : true;
	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_WEAPONS_SHININGS, m_Config.bHide2Mode2);
}
else if (!stricmp(command, "HIDE3_MODE2")) {
	m_Config.bHide3Mode2 = atoi(value) == 0 ? false : true;
	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_BUFF, m_Config.bHide3Mode2);
}
else if (!stricmp(command, "HIDE4_MODE2")) {
	m_Config.bHide4Mode2 = atoi(value) == 0 ? false : true;
	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_SKILL, m_Config.bHide4Mode2);
}

Todo esto lo remplazamos por 
        
		//else if (!stricmp(command, "HIDE1_MODE2")) {
		//	m_Config.bHide1Mode2 = atoi(value) == 0 ? false : true;
		//	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_ARMORS_SHININGS, m_Config.bHide1Mode2);
		//}
		//else if (!stricmp(command, "HIDE2_MODE2")) {
		//	m_Config.bHide2Mode2 = atoi(value) == 0 ? false : true;
		//	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_WEAPONS_SHININGS, m_Config.bHide2Mode2);
		//}
		//else if (!stricmp(command, "HIDE3_MODE2")) {
		//	m_Config.bHide3Mode2 = atoi(value) == 0 ? false : true;
		//	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_BUFF, m_Config.bHide3Mode2);
		//}
		//else if (!stricmp(command, "HIDE4_MODE2")) {
		//	m_Config.bHide4Mode2 = atoi(value) == 0 ? false : true;
		//	CEffectManager::Instance().SetEffectOption(CEffectManager::EFFECT_OPTION_SKILL, m_Config.bHide4Mode2);
		//}

Ahora buscamos lo siguiente

fprintf(fp, "HIDE1_MODE2			%d\n", m_Config.bHide1Mode2);
fprintf(fp, "HIDE2_MODE2			%d\n", m_Config.bHide2Mode2);
fprintf(fp, "HIDE3_MODE2			%d\n", m_Config.bHide3Mode2);
fprintf(fp, "HIDE4_MODE2			%d\n", m_Config.bHide4Mode2);


Y lo remplazamos por

	//fprintf(fp, "HIDE1_MODE2			%d\n", m_Config.bHide1Mode2);
	//fprintf(fp, "HIDE2_MODE2			%d\n", m_Config.bHide2Mode2);
	//fprintf(fp, "HIDE3_MODE2			%d\n", m_Config.bHide3Mode2);
	//fprintf(fp, "HIDE4_MODE2			%d\n", m_Config.bHide4Mode2);
                
Guardamos y pasamos al siguiente

 

Abrimos nuestro PythonSystem.h y buscamos lo siguiente

			bool	bHide1Mode2;
			bool	bHide2Mode2;
			bool	bHide3Mode2;
			bool	bHide4Mode2;

Este lo remplazamos por el siguiente

			//bool	bHide1Mode2;
			//bool	bHide2Mode2;
			//bool	bHide3Mode2;
			//bool	bHide4Mode2;

Ahora buscamos lo siguiente

		void	SetHideModeStatus2(int type, int value);
		bool	GetHideMode1Status2();
		bool	GetHideMode2Status2();
		bool	GetHideMode3Status2();
		bool	GetHideMode4Status2();

Este lo remplazamos por el siguiente

		//void	SetHideModeStatus2(int type, int value);
		//bool	GetHideMode1Status2();
		//bool	GetHideMode2Status2();
		//bool	GetHideMode3Status2();
		//bool	GetHideMode4Status2();

Una vez hecho guardamos y abrimos el siguiente archivo
Abrimos nuestro archivo PythonSystemModule.cpp y buscamos lo siguiente

PyObject * systemSetHideModeStatus2(PyObject * poSelf, PyObject * poArgs) {
	int type;
	if (!PyTuple_GetInteger(poArgs, 0, &type))
		return Py_BuildException();

	int value;
	if (!PyTuple_GetInteger(poArgs, 1, &value))
		return Py_BuildException();

	CPythonSystem::Instance().SetHideModeStatus2(type, value);
	return Py_BuildNone();
}

PyObject * systemGetHideModeStatus2(PyObject * poSelf, PyObject * poArgs) {
	return Py_BuildValue("(bbbb)", CPythonSystem::Instance().GetHideMode1Status2(), CPythonSystem::Instance().GetHideMode2Status2(), CPythonSystem::Instance().GetHideMode3Status2(), CPythonSystem::Instance().GetHideMode4Status2());
}

Luego este lo remplazamos por lo siguiente:

//PyObject * systemSetHideModeStatus2(PyObject * poSelf, PyObject * poArgs) {
//	int type;
//	if (!PyTuple_GetInteger(poArgs, 0, &type))
//		return Py_BuildException();
//
//	int value;
//	if (!PyTuple_GetInteger(poArgs, 1, &value))
//		return Py_BuildException();
//
//	CPythonSystem::Instance().SetHideModeStatus2(type, value);
//	return Py_BuildNone();
//}
//
//PyObject * systemGetHideModeStatus2(PyObject * poSelf, PyObject * poArgs) {
//	return Py_BuildValue("(bbbb)", CPythonSystem::Instance().GetHideMode1Status2(), CPythonSystem::Instance().GetHideMode2Status2(), CPythonSystem::Instance().GetHideMode3Status2(), CPythonSystem::Instance().GetHideMode4Status2());
//}

Ahora buscamos lo siguiente

		{"SetHideModeStatus2", systemSetHideModeStatus2, METH_VARARGS},
		{"GetHideModeStatus2", systemGetHideModeStatus2, METH_VARARGS},

Este lo remplazamos por el siguiente

		//{"SetHideModeStatus2", systemSetHideModeStatus2, METH_VARARGS},
		//{"GetHideModeStatus2", systemGetHideModeStatus2, METH_VARARGS},

Y listo ya guardamos y compilamos nuestro binario

 

Ahora pasamos a la parte del cliente:

Ahora abrimos nuestro archivo uigameoption.py de la carpeta root y buscamos lo siguiente


class OptionDialog(ui.ScriptWindow): 

"Dentro de esta clase buscan la siguiente linea"

self.RefreshHideMode2()

"Ahora la remplazan por la siguiente"

#self.RefreshHideMode2()

Ahora buscan lo siguiente

	def __Initialize(self):

"Dentro de este metodo buscan lo siguiente"

		self.hideMode2ButtonList = []

"Ahora lo remplazan por la siguiente"

		#self.hideMode2ButtonList = []

"Ahora buscan la siguiente linea"

for i in xrange(4):
	self.hideMode2ButtonList.append(GetObject("hide2mode_%d" % i))

"Ahora la remplazan por la siguiente"

			#for i in xrange(4):
			#	self.hideMode2ButtonList.append(GetObject("hide2mode_%d" % i))

"Ahora buscan lo siguiente"

for i in xrange(4):
	self.hideMode2ButtonList[i].SetToggleUpEvent(self.__OnClickHideOptionUp2, i)
	self.hideMode2ButtonList[i].SetToggleDownEvent(self.__OnClickHideOptionDown2, i)

"La remplazan por la siguiente"

		#for i in xrange(4):
		#	self.hideMode2ButtonList[i].SetToggleUpEvent(self.__OnClickHideOptionUp2, i)
		#	self.hideMode2ButtonList[i].SetToggleDownEvent(self.__OnClickHideOptionDown2, i)

"Ahora buscan la siguiente linea"

def RefreshHideMode2(self):
	(b1, b2, b3, b4) = systemSetting.GetHideModeStatus2()
	if b1:
		self.hideMode2ButtonList[0].Down()
	else:
		self.hideMode2ButtonList[0].SetUp()
	
	if b2:
		self.hideMode2ButtonList[1].Down()
	else:
		self.hideMode2ButtonList[1].SetUp()
	
	if b3:
		self.hideMode2ButtonList[2].Down()
	else:
		self.hideMode2ButtonList[2].SetUp()
	
	if b4:
		self.hideMode2ButtonList[3].Down()
	else:
		self.hideMode2ButtonList[3].SetUp()


"Esta la remplazan por la siguiente"

	#def RefreshHideMode2(self):
	#	(b1, b2, b3, b4) = systemSetting.GetHideModeStatus2()
	#	if b1:
	#		self.hideMode2ButtonList[0].Down()
	#	else:
	#		self.hideMode2ButtonList[0].SetUp()
	#	
	#	if b2:
	#		self.hideMode2ButtonList[1].Down()
	#	else:
	#		self.hideMode2ButtonList[1].SetUp()
	#	
	#	if b3:
	#		self.hideMode2ButtonList[2].Down()
	#	else:
	#		self.hideMode2ButtonList[2].SetUp()
	#	
	#	if b4:
	#		self.hideMode2ButtonList[3].Down()
	#	else:
	#		self.hideMode2ButtonList[3].SetUp()

 

Ahora vamos a nuestra carpeta uiscript y abrimos el archivo gameoptiondialog.py

"Dentro del archivo buscamos la siguiente linea"

{
	"name" : "hide2_mode",
	"type" : "text",
	"x" : LINE_LABEL_X,
	"y" : 40+(25 * 3)+3,
	"text" : uiscriptlocale.HIDE_2_OPTION,
},
{
	"name" : "hide2mode_0",
	"type" : "toggle_button",
	"x" : LINE_DATA_X,
	"y" : 40+(25 * 3),
	"text" : uiscriptlocale.HIDE_2_OPTION0,
	"default_image" : ROOT_PATH + "large_button_01.sub",
	"over_image" : ROOT_PATH + "large_button_02.sub",
	"down_image" : ROOT_PATH + "large_button_03.sub",
},
{
	"name" : "hide2mode_2",
	"type" : "toggle_button",
	"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH+27,
	"y" : 40+(25 * 3),
	"text" : uiscriptlocale.HIDE_2_OPTION2,
	"default_image" : ROOT_PATH + "middle_button_01.sub",
	"over_image" : ROOT_PATH + "middle_button_02.sub",
	"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
	"name" : "hide2mode_1",
	"type" : "toggle_button",
	"x" : LINE_DATA_X,
	"y" : 40+(25 * 4),
	"text" : uiscriptlocale.HIDE_2_OPTION1,
	"default_image" : ROOT_PATH + "large_button_01.sub",
	"over_image" : ROOT_PATH + "large_button_02.sub",
	"down_image" : ROOT_PATH + "large_button_03.sub",
},
{
	"name" : "hide2mode_3",
	"type" : "toggle_button",
	"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH+27,
	"y" : 40+(25 * 4),
	"text" : uiscriptlocale.HIDE_2_OPTION3,
	"default_image" : ROOT_PATH + "middle_button_01.sub",
	"over_image" : ROOT_PATH + "middle_button_02.sub",
	"down_image" : ROOT_PATH + "middle_button_03.sub",
},

"Esta linea la remplazamos por la siguiente"

						#{
						#	"name" : "hide2_mode",
						#	"type" : "text",
						#	"x" : LINE_LABEL_X,
						#	"y" : 40+(25 * 3)+3,
						#	"text" : uiscriptlocale.HIDE_2_OPTION,
						#},
						#{
						#	"name" : "hide2mode_0",
						#	"type" : "toggle_button",
						#	"x" : LINE_DATA_X,
						#	"y" : 40+(25 * 3),
						#	"text" : uiscriptlocale.HIDE_2_OPTION0,
						#	"default_image" : ROOT_PATH + "large_button_01.sub",
						#	"over_image" : ROOT_PATH + "large_button_02.sub",
						#	"down_image" : ROOT_PATH + "large_button_03.sub",
						#},
						#{
						#	"name" : "hide2mode_2",
						#	"type" : "toggle_button",
						#	"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH+27,
						#	"y" : 40+(25 * 3),
						#	"text" : uiscriptlocale.HIDE_2_OPTION2,
						#	"default_image" : ROOT_PATH + "middle_button_01.sub",
						#	"over_image" : ROOT_PATH + "middle_button_02.sub",
						#	"down_image" : ROOT_PATH + "middle_button_03.sub",
						#},
						#{
						#	"name" : "hide2mode_1",
						#	"type" : "toggle_button",
						#	"x" : LINE_DATA_X,
						#	"y" : 40+(25 * 4),
						#	"text" : uiscriptlocale.HIDE_2_OPTION1,
						#	"default_image" : ROOT_PATH + "large_button_01.sub",
						#	"over_image" : ROOT_PATH + "large_button_02.sub",
						#	"down_image" : ROOT_PATH + "large_button_03.sub",
						#},
						#{
						#	"name" : "hide2mode_3",
						#	"type" : "toggle_button",
						#	"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH+27,
						#	"y" : 40+(25 * 4),
						#	"text" : uiscriptlocale.HIDE_2_OPTION3,
						#	"default_image" : ROOT_PATH + "middle_button_01.sub",
						#	"over_image" : ROOT_PATH + "middle_button_02.sub",
						#	"down_image" : ROOT_PATH + "middle_button_03.sub",
						#},

 

Y con eso ya estaria el bug reparado, en caso de problemas dejenlos en los comentarios y os ayudare.

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