Jump to content

Implementacion de funciones botones en inventario by Quest's


clanco365

Recommended Posts

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.

Botones Inventario.JPG

 

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 😄

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

  • 1 month later...

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