clanco365 Posted June 13, 2022 Report Share Posted June 13, 2022 Buenas noches, me encontré con un problema que había tenido hace mucho tiempo y al retomarlo me encontré que casi no hay guías y si las hay no son bien explicadas a mi parecer le faltan cosas a las guías por lo tanto hoy les traigo en lo que pueda bien explicado el tema de usar una quest via python para las funciones de los botones del inventario les dejo una imagen para mayor guia. Bien empecemos: Lo primero que tenemos que hacer es abrir el game.py que esta en root Buscamos: def __ServerCommand_Build(self): Y agregamos a la lista el boton que usaremos para la quest: "boton_quest" :self.boton_quest, Luego Bajamos a las ultimas lineas del archivo game.py y agregamos la funcion del botón: def boton_quest(self, id): constInfo.boton_quest= int(id) Bien, una vez tengamos hecho lo anterior vamos al archivo uiinventory.py Buscamos lo siguiente: def LoadWindow(self): debajo agregamos nuestro botón: self.nombrequest= self.GetChild("nombrequeapareceraencliente") Luego buscamos en este mismo archivo lo siguiente: # MallButton Creamos el evento de la función self.nombrequest.SetEvent(ui.mem_func(self._nombrequest)) Luego buscamos: def ClickMallButton(self) Abajo ponemos la funcion del boton con la unión de la llamada del botón def _nombrequest(self): event.QuestButtonClick(constInfo.boton_quest) Luego de esto compilamos el archivo root y vamos a decompilar el locale Buscamos el archivo llamado inventoriywindows.py que se encuentra en el directorio /ui Buscamos la linea: "name" : "InventoryWindow" Dentro agregamos nuesto botón (que contendrá su ubicación, icono y conexion con el uiinventory.py llamado = nombrequeapareceraencliente): { "name" : "nombrequeapareceraencliente", "type" : "button", "x" : 10, "y" : 20+34+34+34-13, "tooltip_text" : "nombrequeapareceraencliente", "default_image" : "locale/es/botones/img.tga", "over_image" : "locale/es/botones/img2.tga", "down_image" : "locale/es/botones/img3.tga", }, Por último lo único que tenemos que hacer es en la quest que usaremos necesitamos indicarle que quest usara y que boton quedando algo asi: quest myquest begin state start begin when login begin cmdchat("boton_quest"..q.getcurrentquestindex()) end when button or info begin say_title ( "Nuestra quest funciona con boton :D" ) end end end Aquí el nombre "boton_quest" tiene que ser el nombre que usamos en el archivo game.py al principio para indicarle que funcion usara el boton. cmdchat("boton_quest "..q.getcurrentquestindex()) Eso seria todo, cualquier consulta o algo que no se entienda o explique mal hagan me lo saber y lo corrijo, espero haber ayudado, suerte wellington soldado 1 Quote Link to comment Share on other sites More sharing options...
NazoX Posted June 14, 2022 Report Share Posted June 14, 2022 Se agradece, pero realmente no se necesito ninguna quest para usar un botón, más bien es para que el sistema se ejecute y se abra por ejemplo dungeon info, ticket system, etc. Lo único que tienes que hacer es utilizar la función de mostrar la interfaz a través de un botón como harías con un F5, F6, F7 o letras como i, p, m, n, etc, aún así puede que le sirva alguno, gracias por el aporte. clanco365 1 Quote Link to comment Share on other sites More sharing options...
clanco365 Posted June 14, 2022 Author Report Share Posted June 14, 2022 Si lo se pero generalmente se busca este tipo de problemas para la implementación de botones por lo que vi que siempre preguntan, buscando soluciones siempre planteaban el mismo problema, al implementar un "botón", de nada a las ordenes. Quote Link to comment Share on other sites More sharing options...
xplittz Posted August 3, 2022 Report Share Posted August 3, 2022 Buenas tardes, Estoy siguiendo los pasos pero en el paso de buscar: def LoadWindow(self No me aparece en el uiinventory,py ¿Alguna idea de por que puede ser? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.