Jump to content

RafaVK

Miembro
  • Contador contenido

    58
  • Ingreso

  • Última visita

  • Días ganados

    2

Actividad de reputación

  1. Me Gusta
    RafaVK got a reaction from Nadie70 in Resumen de Quest para Metin2   
    Les traigo este resumen de quest        lo hice mientras estudiaba este lenguaje. Tiene lo básico no está completo (Me ha dado pereza completarlo hace casi 1 año que lo hice...  pero les servirá a los que deseen aprender.
     
    ---Resumen de las Quest [*]Estructura de una quest quest capidos begin -----> Encabezado de la quesy seguido del nombre de la quest se recomienda que sea el mismo del archivo que se crea. state start begin -----> Indica que la quest empieza aquí when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. chat("Bienvenido al servidor, pasalo bien") -----> La acción que se realiza en al quest. end -----> Finaliza la acción end -----> Finaliza el estado end -----> Finaliza la quest [*] Comentarios Se hacen con un -- [*] Variables local nombre = variable -----> Nos sirve para almacenar datos. Ejemplo local nivel = pc.get_level() local texto = input() local numero = math.random(1,100) local s = select ("opcion1" , "opcion2" , "opcion3") -----> Sirve para colocar botones en los mensajes if s == 1 then -----> Sirve para preguntar por cual de las opciones se le dió clic es decir a la opcion1 corresponde el 1 a la opcion2 corresponde el 2 y asi sucesivamente con la cantidad de opciones que se coloquen. [*] Estados de las quest start -----> Estado de inicio de una quest. setstate("nombre estado") -----> Cambiar de estado. Tambien se usa la funcion set_state("nombre estado") set_quest_state(,) -----> Cambiar el estado de una quest distinta. Recordando que el nombre y el estado van dentro de comillas "" asi: set_quest_state("nombre", "estado") Ejemplo de estados: quest capidos begin -----> Encabezado de la quesy seguido del nombre de la quest se recomienda que sea el mismo del archivo que se crea. state start begin -----> Indica que la quest empieza aquí when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. setstate("run") -----> Ejecuta el cambio de STATE end -----> Finaliza la acción end -----> Finaliza el estado state run begin -----> Indica que la quest empieza aquí when enter begin -----> Se usa para que las acciones se hagan cuando se entra al estado. chat("Has entrado al state.") end when leave begin -----> Se usa para que las acciones se hagan cuando se finaliza o sale del estado. chat("Has salido del state.") end when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. return -----> Finaliza la quest end -----> Finaliza la acción end -----> Finaliza el estado end -----> Finaliza la quest [*] Operadores lógicos when -----> sirve para comenzar acciones. while -----> sirve para comenzar acciones. with -----> poner condiciones. and -----> poner condiciones. or -----> poner condiciones. if -----> poner condiciones. elseif -----> poner condiciones. else -----> poner condiciones. > -----> Comparación < -----> Comparación >= -----> Comparación <= -----> Comparación == -----> Comparación ~= -----> Comparación [*] Estructura de un IF if [X] then accion1 else if [X2] then accion2 end [*] Estructura de un when when condiciones begin accion end [*] Ciclos o Bucles Un BUCLE se puede romper con la palabra break [*] Bucle 1 repeat bloque de sentencias until (condición) [*] Bucle 2 while (condición) do bloque de sentencias end -- BUCLE INFINITO while true do bloque end -- FIN DE BUCLE INFINITO [*] Bucle 3 for var = start, stop , aumento do bloque de sentencias end [*] Bucle 4 -- FOR PARA ARRAY local tab = {"valor1", "valor2", "valor3"} for k, v in ipairs(tab) do say(k.." = "..v) end --for -- FIN FOR PARA ARRAY [*] Arrays local nombrearray = {10,20,34,43,57} -----> Array simple nombrearray[1] -----> Trae el contenido del array en la posición 1 en esta caso 10. EJEMPLO: local items = {160,161,162,163} for i=1, table.getn(items) do -- en la i ponemos igual a 1 y luego la cantidad de veces que se repita pc.give_item2(items[i]) -- te dara cada uno de los items que haya en la tabla end -- cada for le corresponde un end local nombre = { -- abres la tabla {} -- subcategoria 1 {} -- subcategoria 2 {} -- subcategoria 3 } -- cierras la tabla Una subcategoría sirve para agrupar una cantidad de elementos en si y para obtener los elementos se hace: nombre[subcategoria][posicion] Ejemplo: local cordes = { {12500,13400,17500,14000}, {12400,18900,13200} } cordes[1][4] -- 14000 cordes[2][2] -- 18900 EJEMPLO PRACTICO 1: local cordes = { {12500,13400}, {12400,18900}, {19800,12300} } pc.warp(cordes[1][1],cordes[1][2]) -- 12500, 13400 EJEMPLO PRACTICO 2: say("Que arma quieres") say("") local items = { {160,2}, {161,1}, {162,3} } local arma = select ("Ninfa +0" , "Ninfa +1" , "Ninfa +2" , "Cerrar") if arma == table.getn(items)+1 then return end pc.give_item2(items[arma][1],items[arma][2]) [*]Mostrar Texto En El Cliente chat("mensaje") -----> Mostrar chat de infromación en el chat general. Solo lo ve el personaje que se conecta. notice_all("mensaje") -----> Mostrar a todos los personajes Conectados. say_title("mensaje") -----> Mensaje en forma de título say("mensaje") -----> Mensaje que muestra el texto que se desea. Est mensaje es mostrado en un recuadro en medio de la pantalla. say_reward("mensaje") -----> Mensaje en forma de recompensa con color distinto. [*] Datos Curiosos. math.random(numero incial,numero final) -----> Funcion que devuelve un número aleatorio entre el numero inicial y el numero final que se establezca. pc -----> Es el usuario o personaje que esta conectado. pc.get_level() -----> Obteiene el nivel de un personaje. login -----> Acción que se da al conectarse un personaje. logout -----> Acción que se da al desconectarse un personaje. when vnum.chat."texto de opcion" begin -----> Se utiliza para activar la quest cuando le da en una opcion de un lista de opciones. Es decir, cuando se le da clic en la opcion "texto de opcion" del npv o item del vnum. pc.count_item("vnum") -----> Sirve para comprobar si el personaje tiene el item correspondiente al venum en su inventario. vnum.chat."texto" -----> Al darle clic en la npc con el vnum se abre un dialogo con opciones. Al dar click en la opción que contiene el texto empieza el contenido del when. vnum.click -----> Al hacer click en el npc del vnum, empieza el contenido del when. vnum.click -----> Al hacer click en el npc, empieza el contenido del when. kill -----> Cuando el jugador mata un enemigo, comienza el contenido del when. when vnum.kill begin -----> Indica si el monstruo que le corresponde el vnum esta muerto party_kill -----> Cuando un miembro del grupo mata a un enemigo inicia el contenido del when. vnum.party_kill -----> Cuando un miembro del grupo mata a aun enemigo con vnum, empieza el contenido del when. X.target.click -----> Cuando haces click al tarjet de nombre X empieza el contenido del when. X.target.arrive -----> Cuando llegas al punto con el tarje de nombre X empieza el contenido del when. pc.get_map_index == codigomapa -----> Indica si el personaje esta en el mapa de codigomapa pc.get_max_hp -----> Se puede preguntar por el nivel de hp que tienes. pc.is_mount -----> Se puede preguntar si estas montado en una montura o no. when condicion1 with condicion2 and condicion3 begin ----> Estrctura para 2 o mas condiciones pc.get_empire() -----> Se puede preguntar en que reino estas. vnum.use -----> Cuando se una un el item del vnum se activa esta quest pc.give_item2("vnum", cantidad) -----> Se utiliza para dar un item al inventario del personaje. return -----> Accion que se utiliza en la accion de un boton de cancelar o cerrar. Y sirve para cerrar la ventana de la quest. pc.change_money(-cantidad) -----> Acción que sirve para disminuir o aumentar la cantidad de yang de un personaje. pc.remove_item(vnum, cantidad) -----> Accion que sirve para remover un item del inventario del personaje. pc.gold -----> Pregunta por la cantidad de yang que tiene el personaje. pc.get_sex() -----> Obtiene el sexo de un personaje. Se compara 1 hombre 2 mujer. say_item_vnum(vnum) -----> Muestra 1 item con su imagen. pc.count_item(vnum) -----> Cuenta cuantos items hay. mob_name(vnum) -----> Nombre de un monstruo pc.getname() -----> Obtener el nombre del personaje. --------------------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡IMPORTANTE !!!! EL JUEGO ALMACENA PARA SIEMPRE LOS VALORES DE LOS SIGUIENTES COMANDOS pc.setqf -----> nos permite asignar un determinado valor a un personaje de modo que podamos usar el comando pc.getqf para crear condiciones que impliquen que el personaje tenga ese valor concreto para activarse. pc.setqf("nombredelqf", valor) otra forma pc.setqf("kekomola", pc.getqf("kekomola") + 1) ejemplo: pc.setqf("kekomola", 2) --> valor fijo pc.setqf("kekomola", pc.getqf("kekomola") + 1) ---> Cada que se use aumenta 1 pc.getqf -----> Chekea que valor tiene el comando anterior ejemplo: if pc.getqf("kekomola") == 5 then ----> se comprueba el valor de kemola que es el valor que se acumulo en el comando anterior. Ejemplo combinado: quest item begin state start begin when 70045.use begin pc.setqf("buenas", pc.getqf("buenas") + 1) if pc.getqf("buenas") == 1 then chat("buenas") elseif pc.getqf("buenas") == 2 then chat("que tal") elseif pc.getqf("buenas") >= 3 then chat("me aburro") end end end end Ejemplo Practico: quest muertes begin state start begin when kill with not npc.is_pc() begin pc.setqf("mobs", pc.getqf("mobs") + 1) chat("LLevas "..pc.getqf("mobs").." matados en tu juego") end end end --------------------------------------------------------------------------------------------------------------------------------------------- horse.unsummon() -----> Nos permite guardar el Caballo horse.summon() -----> Nos permite sacar el caballo horse.set_level(nivel) -----> Asigna un nivel al caballo letter : Relacionado con las letters (explicación en otro capitulo). button : Relacionado con las letters (explicación en otro capitulo). info : Relacionado con las letters (explicación en otro capitulo). nombre.timer : Cuando el timer llamado con nombre llega a 0, empieza el contenido del when. nombre.server_timer : Cuando el server_timer llamado con nombre llega a 0, empieza el contenido del when. ---------------------- Como hago yo para saber que valor tiene en el qf cierto personaje? es decir puedo poner una ques con el mismo nombre del qf para todos los personajes? y si es así como hago yo para saber con otra quest distinta que valor del qf tiene un personaje X ? pc.getf('nombrequest','nombreqf') pc.getqf = get playing character quest flag pc.getf = get playing character flag -----------------------
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  2. Me Gusta
    RafaVK got a reaction from Alegar in Resumen de Quest para Metin2   
    Les traigo este resumen de quest        lo hice mientras estudiaba este lenguaje. Tiene lo básico no está completo (Me ha dado pereza completarlo hace casi 1 año que lo hice...  pero les servirá a los que deseen aprender.
     
    ---Resumen de las Quest [*]Estructura de una quest quest capidos begin -----> Encabezado de la quesy seguido del nombre de la quest se recomienda que sea el mismo del archivo que se crea. state start begin -----> Indica que la quest empieza aquí when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. chat("Bienvenido al servidor, pasalo bien") -----> La acción que se realiza en al quest. end -----> Finaliza la acción end -----> Finaliza el estado end -----> Finaliza la quest [*] Comentarios Se hacen con un -- [*] Variables local nombre = variable -----> Nos sirve para almacenar datos. Ejemplo local nivel = pc.get_level() local texto = input() local numero = math.random(1,100) local s = select ("opcion1" , "opcion2" , "opcion3") -----> Sirve para colocar botones en los mensajes if s == 1 then -----> Sirve para preguntar por cual de las opciones se le dió clic es decir a la opcion1 corresponde el 1 a la opcion2 corresponde el 2 y asi sucesivamente con la cantidad de opciones que se coloquen. [*] Estados de las quest start -----> Estado de inicio de una quest. setstate("nombre estado") -----> Cambiar de estado. Tambien se usa la funcion set_state("nombre estado") set_quest_state(,) -----> Cambiar el estado de una quest distinta. Recordando que el nombre y el estado van dentro de comillas "" asi: set_quest_state("nombre", "estado") Ejemplo de estados: quest capidos begin -----> Encabezado de la quesy seguido del nombre de la quest se recomienda que sea el mismo del archivo que se crea. state start begin -----> Indica que la quest empieza aquí when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. setstate("run") -----> Ejecuta el cambio de STATE end -----> Finaliza la acción end -----> Finaliza el estado state run begin -----> Indica que la quest empieza aquí when enter begin -----> Se usa para que las acciones se hagan cuando se entra al estado. chat("Has entrado al state.") end when leave begin -----> Se usa para que las acciones se hagan cuando se finaliza o sale del estado. chat("Has salido del state.") end when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. return -----> Finaliza la quest end -----> Finaliza la acción end -----> Finaliza el estado end -----> Finaliza la quest [*] Operadores lógicos when -----> sirve para comenzar acciones. while -----> sirve para comenzar acciones. with -----> poner condiciones. and -----> poner condiciones. or -----> poner condiciones. if -----> poner condiciones. elseif -----> poner condiciones. else -----> poner condiciones. > -----> Comparación < -----> Comparación >= -----> Comparación <= -----> Comparación == -----> Comparación ~= -----> Comparación [*] Estructura de un IF if [X] then accion1 else if [X2] then accion2 end [*] Estructura de un when when condiciones begin accion end [*] Ciclos o Bucles Un BUCLE se puede romper con la palabra break [*] Bucle 1 repeat bloque de sentencias until (condición) [*] Bucle 2 while (condición) do bloque de sentencias end -- BUCLE INFINITO while true do bloque end -- FIN DE BUCLE INFINITO [*] Bucle 3 for var = start, stop , aumento do bloque de sentencias end [*] Bucle 4 -- FOR PARA ARRAY local tab = {"valor1", "valor2", "valor3"} for k, v in ipairs(tab) do say(k.." = "..v) end --for -- FIN FOR PARA ARRAY [*] Arrays local nombrearray = {10,20,34,43,57} -----> Array simple nombrearray[1] -----> Trae el contenido del array en la posición 1 en esta caso 10. EJEMPLO: local items = {160,161,162,163} for i=1, table.getn(items) do -- en la i ponemos igual a 1 y luego la cantidad de veces que se repita pc.give_item2(items[i]) -- te dara cada uno de los items que haya en la tabla end -- cada for le corresponde un end local nombre = { -- abres la tabla {} -- subcategoria 1 {} -- subcategoria 2 {} -- subcategoria 3 } -- cierras la tabla Una subcategoría sirve para agrupar una cantidad de elementos en si y para obtener los elementos se hace: nombre[subcategoria][posicion] Ejemplo: local cordes = { {12500,13400,17500,14000}, {12400,18900,13200} } cordes[1][4] -- 14000 cordes[2][2] -- 18900 EJEMPLO PRACTICO 1: local cordes = { {12500,13400}, {12400,18900}, {19800,12300} } pc.warp(cordes[1][1],cordes[1][2]) -- 12500, 13400 EJEMPLO PRACTICO 2: say("Que arma quieres") say("") local items = { {160,2}, {161,1}, {162,3} } local arma = select ("Ninfa +0" , "Ninfa +1" , "Ninfa +2" , "Cerrar") if arma == table.getn(items)+1 then return end pc.give_item2(items[arma][1],items[arma][2]) [*]Mostrar Texto En El Cliente chat("mensaje") -----> Mostrar chat de infromación en el chat general. Solo lo ve el personaje que se conecta. notice_all("mensaje") -----> Mostrar a todos los personajes Conectados. say_title("mensaje") -----> Mensaje en forma de título say("mensaje") -----> Mensaje que muestra el texto que se desea. Est mensaje es mostrado en un recuadro en medio de la pantalla. say_reward("mensaje") -----> Mensaje en forma de recompensa con color distinto. [*] Datos Curiosos. math.random(numero incial,numero final) -----> Funcion que devuelve un número aleatorio entre el numero inicial y el numero final que se establezca. pc -----> Es el usuario o personaje que esta conectado. pc.get_level() -----> Obteiene el nivel de un personaje. login -----> Acción que se da al conectarse un personaje. logout -----> Acción que se da al desconectarse un personaje. when vnum.chat."texto de opcion" begin -----> Se utiliza para activar la quest cuando le da en una opcion de un lista de opciones. Es decir, cuando se le da clic en la opcion "texto de opcion" del npv o item del vnum. pc.count_item("vnum") -----> Sirve para comprobar si el personaje tiene el item correspondiente al venum en su inventario. vnum.chat."texto" -----> Al darle clic en la npc con el vnum se abre un dialogo con opciones. Al dar click en la opción que contiene el texto empieza el contenido del when. vnum.click -----> Al hacer click en el npc del vnum, empieza el contenido del when. vnum.click -----> Al hacer click en el npc, empieza el contenido del when. kill -----> Cuando el jugador mata un enemigo, comienza el contenido del when. when vnum.kill begin -----> Indica si el monstruo que le corresponde el vnum esta muerto party_kill -----> Cuando un miembro del grupo mata a un enemigo inicia el contenido del when. vnum.party_kill -----> Cuando un miembro del grupo mata a aun enemigo con vnum, empieza el contenido del when. X.target.click -----> Cuando haces click al tarjet de nombre X empieza el contenido del when. X.target.arrive -----> Cuando llegas al punto con el tarje de nombre X empieza el contenido del when. pc.get_map_index == codigomapa -----> Indica si el personaje esta en el mapa de codigomapa pc.get_max_hp -----> Se puede preguntar por el nivel de hp que tienes. pc.is_mount -----> Se puede preguntar si estas montado en una montura o no. when condicion1 with condicion2 and condicion3 begin ----> Estrctura para 2 o mas condiciones pc.get_empire() -----> Se puede preguntar en que reino estas. vnum.use -----> Cuando se una un el item del vnum se activa esta quest pc.give_item2("vnum", cantidad) -----> Se utiliza para dar un item al inventario del personaje. return -----> Accion que se utiliza en la accion de un boton de cancelar o cerrar. Y sirve para cerrar la ventana de la quest. pc.change_money(-cantidad) -----> Acción que sirve para disminuir o aumentar la cantidad de yang de un personaje. pc.remove_item(vnum, cantidad) -----> Accion que sirve para remover un item del inventario del personaje. pc.gold -----> Pregunta por la cantidad de yang que tiene el personaje. pc.get_sex() -----> Obtiene el sexo de un personaje. Se compara 1 hombre 2 mujer. say_item_vnum(vnum) -----> Muestra 1 item con su imagen. pc.count_item(vnum) -----> Cuenta cuantos items hay. mob_name(vnum) -----> Nombre de un monstruo pc.getname() -----> Obtener el nombre del personaje. --------------------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡IMPORTANTE !!!! EL JUEGO ALMACENA PARA SIEMPRE LOS VALORES DE LOS SIGUIENTES COMANDOS pc.setqf -----> nos permite asignar un determinado valor a un personaje de modo que podamos usar el comando pc.getqf para crear condiciones que impliquen que el personaje tenga ese valor concreto para activarse. pc.setqf("nombredelqf", valor) otra forma pc.setqf("kekomola", pc.getqf("kekomola") + 1) ejemplo: pc.setqf("kekomola", 2) --> valor fijo pc.setqf("kekomola", pc.getqf("kekomola") + 1) ---> Cada que se use aumenta 1 pc.getqf -----> Chekea que valor tiene el comando anterior ejemplo: if pc.getqf("kekomola") == 5 then ----> se comprueba el valor de kemola que es el valor que se acumulo en el comando anterior. Ejemplo combinado: quest item begin state start begin when 70045.use begin pc.setqf("buenas", pc.getqf("buenas") + 1) if pc.getqf("buenas") == 1 then chat("buenas") elseif pc.getqf("buenas") == 2 then chat("que tal") elseif pc.getqf("buenas") >= 3 then chat("me aburro") end end end end Ejemplo Practico: quest muertes begin state start begin when kill with not npc.is_pc() begin pc.setqf("mobs", pc.getqf("mobs") + 1) chat("LLevas "..pc.getqf("mobs").." matados en tu juego") end end end --------------------------------------------------------------------------------------------------------------------------------------------- horse.unsummon() -----> Nos permite guardar el Caballo horse.summon() -----> Nos permite sacar el caballo horse.set_level(nivel) -----> Asigna un nivel al caballo letter : Relacionado con las letters (explicación en otro capitulo). button : Relacionado con las letters (explicación en otro capitulo). info : Relacionado con las letters (explicación en otro capitulo). nombre.timer : Cuando el timer llamado con nombre llega a 0, empieza el contenido del when. nombre.server_timer : Cuando el server_timer llamado con nombre llega a 0, empieza el contenido del when. ---------------------- Como hago yo para saber que valor tiene en el qf cierto personaje? es decir puedo poner una ques con el mismo nombre del qf para todos los personajes? y si es así como hago yo para saber con otra quest distinta que valor del qf tiene un personaje X ? pc.getf('nombrequest','nombreqf') pc.getqf = get playing character quest flag pc.getf = get playing character flag -----------------------
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3. Me Gusta
    RafaVK got a reaction from ArkaNo96 in Busco esta lanza!   
    Sino estoy mal el guabina la tiene y el guabina no tiene encriptación...
  4. Me Gusta
    RafaVK got a reaction from matrix900 in [Ayuda]Descompilar _protos Cliente 40k   
    Zone Archiver....
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  5. Me Gusta
    RafaVK reacted to Only4Fun in Panel GM simple   
    Hola todos de metin2zone hoy os traigo un panel de gm smple que e encontrado y e dedicado en tiempo en traducirlo.
    dudas y preguntas skype
     
     


     



     
    Buscamos en game.py
    onPressKeyDict[app.DIK_F4]
     
    debajo ponemos-
    onPressKeyDict[app.DIK_F7] = lambda : self.__gmpanel()
     
    abajo del todo ponemos en game.py 
     
            def __gmpanel(self):
                    import gmpanel                 uigmpanel.GMPanel().Show()   luego metemos el contenido de la descarga y ya lo tenemos con solo pulsar F7   Descarga:  Debes iniciar sesión para ver el contenido del enlace en esta publicación.!t_jV5Fl4AmXz22lvr3Vmk98M2jePOiLaYQSQ8vNZI08
  6. Me Gusta
    RafaVK got a reaction from Dragonslayer in [BUSCO]Funcion restaure hp.   
    Te recomiendo 2 estados para la quest debido que al hacer esto:
    if get_time() < pc.getqf("tiempo1") then Sin que tengas el qf antes definido puede darte errores (No graves) pero si te marcaría un error en locale algo de comparación con algo nulo o inexistente.
    pc.setqf("tiempo1",0) pc.setqf("tiempo1",get_time()+4) Es innecesario poner 2 setqf cuando en el segundo estás reemplazando completamente el primero....
     
    Resumiendo.... Yo lo haría así...
    quest pocion20 begin state start begin when login or enter begin pc.setqf("tiempo1",0) set_state(estado2) end end state estado2 begin when 27118.use begin if get_time() < pc.getqf("tiempo1") then syschat("Aun no puedes, tienes que esperar ".. pc.getqf("tiempo1")-get_time() .." segundos") return else pc.setqf("tiempo1",get_time()+4) affect.add_collect(apply.HP_REGEN, 20000, 3) item.remove() end end end end
  7. Me Gusta
    RafaVK got a reaction from Dragonslayer in [BUSCO]Funcion restaure hp.   
    Es fácil con quest...
    affect.add_collect(apply.HP_REGEN, 100000, 5)
  8. Me Gusta
    RafaVK got a reaction from Yori in Metin2 Admin Tool (Android)   
    Esto lo hice yo desde hace rato xD! llevo desde q salió usándola y me anda bien   bueno como siempre tiene errores pero va progresando.
     
    2 cosas Yori.
     
    1. Debes hacerla más genérica no todos usamos las tablas originales del Metin2... En lo personal uso otra base de datos y otras tablas para hacer asignación de coins... Para hacer esto puedes poner que cada persona ingrese el nombre de la base de datos y pueda ingresar una consulta SQL que si está ingresada se use esta y no la genérica. Así que esta sección no la he podido testear.
     
    2. Los jugadores online no me anda aún.... sigue saliendo en 0. Al igual que la lista del staff no muestra si está o no conectado. 
     
    Como sugerencia adicional podrías agregar que la app informe si hay algún error de caida de los Core  que sería algo en lo personal fundamental a pesar de que el servidor tenga la posibilidad de levantar el core por si mismo. 
  9. Me Gusta
    RafaVK got a reaction from Shogun in esta quest funicona en pergamino o en un npc?   
    Ahí te la dejo bien explicada. Solo repliqué la de pepineitor para que entiendas.
    -- Para Pergamino quest balbla begin state start begin when login with pc.is_gm() begin send_letter("Invoca") end when button or info with pc.is_gm() begin local id,x,y say("Id Mob") id=tonumber(input()) -- Aquí se ingresa el vnum del mob o NPC que quieres invocar say("Coor. X") x = tonumber(input()) --Coordenada X donde saldrá say("Coor. Y") y = tonumber(input()) --Coordenada Y donde saldrá mob.spawn(id,x,y,0,0) end end end --para NPC quest balbla begin state start begin when 9003.chat."Invocar NPC o MOB" begin --Cambias el 9003 por el NPC que quieras local id,x,y say("Id Mob") id=tonumber(input()) -- Aquí se ingresa el vnum del mob o NPC que quieres invocar say("Coor. X") x = tonumber(input()) --Coordenada X donde saldrá say("Coor. Y") y = tonumber(input()) --Coordenada Y donde saldrá mob.spawn(id,x,y,0,0) end end end --para ITEM quest balbla begin state start begin when 9003.use begin --Cambias el 9003 por el ITEM que quieras local id,x,y say("Id Mob") id=tonumber(input()) -- Aquí se ingresa el vnum del mob o NPC que quieres invocar say("Coor. X") x = tonumber(input()) --Coordenada X donde saldrá say("Coor. Y") y = tonumber(input()) --Coordenada Y donde saldrá mob.spawn(id,x,y,0,0) end end end
  10. Me Gusta
    RafaVK reacted to ZoneLife in Item_proto y mob_proto converter   
    Espero que te sirva no es nada dificil de usar, lógicamente seguramente habrá mejores pero vamos que va bien.
     
    Adjunto.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  11. Me Gusta
    RafaVK reacted to Jfirewall in Alguien me ayuda con esta quest?   
    quest feo begin state start begin
    when kill begin
    local jefes = {
    [691] = {'Jefe Orco'}, -- vnumn, nombre
    [791] = {'Lider Esoterico'},
    [2492] = {'Comandante_Setaou'},
    [2493] = {'Dragon Azul'},
    [1091] = {'Rey Demonio'},
    [2597] = {'Muerte'},
    [1192] = {'Bruja de Hielo'},
    [1304] = {'Tigre Fantasma'},
    [1901] = {'9 colas'},
    [2091] = {'Reina Araña'}
    }
     
    chat("Has destruido un "..jefes[npc.get_race()][1]
    end
    end
    end
  12. Me Gusta
    RafaVK got a reaction from Shogun in Ayuda con esto please   
    Verifica que no tengas las funciones de la imagen bloqueadas en tu hosting... una forma puede ser...
    <PHP $disabled = explode(',',ini_get('disable_functions')); if(is_array($disabled)){ foreach($disabled as $x){ echo '<p>'.$x.'</p>'; } } else { echo 'No hay funciones deshabilitadas'; } ?> O sino llama a tu hosting y que te habiliten la librería GB (php_gd)
  13. Me Gusta
    RafaVK got a reaction from Frontier in Ayuda con esto please   
    Verifica que no tengas las funciones de la imagen bloqueadas en tu hosting... una forma puede ser...
    <PHP $disabled = explode(',',ini_get('disable_functions')); if(is_array($disabled)){ foreach($disabled as $x){ echo '<p>'.$x.'</p>'; } } else { echo 'No hay funciones deshabilitadas'; } ?> O sino llama a tu hosting y que te habiliten la librería GB (php_gd)
  14. Me Gusta
    RafaVK got a reaction from Frontier in Ayuda con esto please   
    Y eso donde salio... sino explicas bn como ayudamos?
  15. Me Gusta
    RafaVK got a reaction from Yori in Metin2 Admin Tool (Android)   
    Yori te me haz adelantado a la idea xD! pensaba hacer algo similar para mi servidor estas vacaciones (igual lo haré ya que va orientado a uso personal de mis usuarios con interacción con mi web y con el staff) pero es un gran aporte para los ADM. 
    Lo que te falta por agregar son las consultas a la base de datos, es decir, que desde la app se puedan hacer consultas a la misma serviría para agregar coins, banear, desbanear en fin varias cosas interesantes y sencillas de realizar a mano. 
     
    Otra cosa que es importante es garantizar que los datos que se suministren en la app no sean utilizados con otros fines (Recalco esto por que ya todos saben lo que pasaba con algunas personas que hacian hack y terminaron robando información). Si es una App para que usen los Administradores debe ser sin este objetivo (robar información).
     
    Edito: Hay un bug en agregar los ch. El boton de confirmar (palomita) se sobrepone a los demás campos por lo que uno no puede bajar para llenar el puerto sin tener que esconder primero el teclado y luego si seleccionar el input del puerto.
  16. Me Gusta
    RafaVK reacted to Yori in Metin2 Admin Tool (Android)   
    Wenas a todos, os traigo mi recién publicada herramienta para los administradores de servidores Metin2, para que pueden comprobar el estado de su servidor en cualquier momento desde su dispositivo Android.
     
    Podeis ver la aplicación desde Google Play:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Por supuesto si tenéis alguna sugerencia para mejorarla, será bienvenida.
     
    Saludos
     
    Yori
     
    Edit:
     
    V1.1
     
        Idiomas: Español e Inglés.       Log de cambios:           * Añadida función para banear y desbanear cuentas.         * Añadida función para añadir coins.         * Añadida opción de cambiar de idioma la aplicación.         * Estado de los GMs en tiempo real.
  17. Me Gusta
    RafaVK reacted to darksirk in [ERR]Item o Quest   
    efectivamente, le faltaba agregar el pc.give_item2 
  18. Me Gusta
    RafaVK reacted to Shogun in Como preparar FreeBSD para Metin2   
    Dado que el turorial de Serex no funciona en las versiones recientes del S.O., he decidido hacer uno nuevo. Los comandos que tenéis que escribir, están en rojo; el resto son notas. Este tutorial asume que se trata de un FreeBSD recién instalado. Es posible que no funcione correctamente en FreeBSD que ya hayan tenido un uso.
     
    En primer lugar actualizamos el S.O. para que tenga los parches de seguridad más recientes (esto no es estrictamente necesario, pero es buena idea, al igual que debéis mantener vuestro Windows actualizado)
    freebsd-update fetch install    ( ya no creo que nadie usa eso )
    (si aparece una lista de ficheros simplemente pulsad ' y después $, o bien la tecla Avanzar Página hasta que lleguemos al final y ponga "Installing updates")
    Descargaremos los ports (colección de software de FreeBSD):
    portsnap fetch extract
    Ahora instalamos MySQL y Python:
    pkg install mysql56-server
    pkg install python
    Si os pregunta algo le decis que si (y)
    Una vez haya terminado, si nuestro SO es de 64 bits, vamos a instalar las librerías de 32, en este ejemplo se trata de FreeBSD 9.3, simplemente editad el link cambiando ese número por vuestra versión si es diferente:
    cd /tmp fetch Debes iniciar sesión para ver el contenido del enlace en esta publicación. tar jxpvf lib32.txz -C   (si os aparece una serie de errores "cannot unlink..." al hacer esto no os preocupéis, significa que ya están instaladas)   Ahora, para poder usar files antiguos si lo deseamos, instalaremos el paquete de compatibilidad con FreeBSD 7:   cd /usr/ports/misc/compat7x make install clean   ( Actualizado ) Finalmente configuramos mysql para que se inicie con el arranque:   echo mysql_enable="YES" >> /etc/rc.conf   Ahora vamos a iniciar MySQL:   service mysql-server start   Y luego el cliente para comprobar que está funcionando:   mysql   Debería aparecer el prompt mysql>, podemos poner quit para volver al shell de FreeBSD.   Ahora ya podéis subir vuestros files y bases de datos, eso si, recordad hacer esto después de copiar la bd a /var/db/mysql:   mysql_upgrade   (actualiza las bases de datos procedentes de versiones antiguas de MySQL, a la actual)   y   chown -R mysql /var/db/mysql   (damos los permisos correctos)   Si tenéis alguna duda escribidla port aquí y contestare cuando pueda.   Nota: Si alguien le tira errores de libs al encender el server pueden ver esta guia    
  19. Me Gusta
    RafaVK reacted to EzekielitohMercury in Python Script loader v0.1   
    Nose si esta posteado pero se los dejo
     


     
    Creditos
    Pasha37
     
    DESCARGA

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
  20. Me Gusta
    RafaVK got a reaction from LovePlay in [Double Ask] Titulo descriptivo.   
    Te resuelvo la duda 2
    --Quest Elaborada por [ADM]Vagoo de metin2Inferis Contacto: r-rangel1993quest control_mapa begin state start begin when login with pc.get_map_index()== 1 begin --Aqui colocas el index del mapa pc.setqf("limite", 120 ) --cantidad de minutos limite loop_timer("tiempo_restante", 60*30) -- 60*30 es el tiempo en segundos que quieres que se muestre el mensaje end when tiempo_restante.timer begin if pc.getqf("limite") == 0 then chat("El tiempo se te ha agotado... Seras transportado a la ciudad") warp_to_village() else chat("Te quedan "..pc.getqf("limite").." Minutos en el mapa") pc.setqf("limite", pc.getqf("limite") - 30 ) end end endend Trate de ser lo mas explicado que pude en los 5 minutos que le dedique a resolver tu duda. No he probado la quest pero debería funcionar... 
  21. Me Gusta
    RafaVK reacted to PACI in Capitulo VII - El uso del pc.setqf y pc.getqf   
    pc.getf('nombrequest','nombreqf')pc.getqf = get playing character quest flagpc.getf = get playing character flagTodas las funciones cuya inicial sea pc se refiere a los pj. En el caso de los flags, cualquier pj que ejecute una quest donde se le es atribuido un flag.
×
×
  • Crear nuevo...