Jump to content

Implementacion de funciones botones en inventario by Quest's


clanco365

Mensajes recomendados

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 😄

Enlace para comentar
Compartir en otros sitios

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. 

Enlace para comentar
Compartir en otros sitios

  • 1 month later...

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