Jump to content

Predator77

Miembro
  • Contador contenido

    33
  • Ingreso

  • Última visita

  • Días ganados

    3

Actividad de reputación

  1. Me Gusta
    Predator77 reacted to Warlock in Itemshop   
    Esta itemshop no recuerdo a quien pertenece pero la edite y la puse en español ( parte web) la parte SQL hay que traducirla pero es refacil ( en navicat) no lo hice por que me dio flojera , el que quiera usarla se la dejo completa con los archivos SQL, funciona perfectamente ya que la tenia en mi servidor, aca les dejo algunas imágenes :
     
    PD: las categorías y descripcion están en alemán por que pertenecen a la base de datos  original que no edite y las imágenes solo son de referencia  las puse para enseñar nada mas.
     



     
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    Saludos.
  2. Me Gusta
    Predator77 reacted to jhumany in JhumaPhotoDesign Return: Metin2Elements FB Portada   
    Bueno pues aqui os dejo el último trabajito que he hecho para los de el Metin2Elements.
     

  3. Me Gusta
    Predator77 reacted to Riochu™ no es in Armaduras Feliz Navidad.   
    Feliz navidad chicos aqui os dejo estas armaduras espero que os gusten
     
    Y que lo paseisi bien estos dias xd
     
    Mas tarde pondre una guia de poner brillos diferentes
     




     
    Descarga
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  4. Me Gusta
    Predator77 reacted to WorldArd in !!!Protección Del Cliente Script+++py!!!   
    Exacto esa proteccion ya estaba posteada en epvp y en otros foros 
     
     
    Saludos!!
  5. Me Gusta
    Predator77 reacted to SeMa™ in !!!Protección Del Cliente Script+++py!!!   
    llleva en epvp mas de 3 meses xd
  6. Me Gusta
    Predator77 reacted to Stiven. in [Recopilacion] Mis quests en Metin2Zone   
    Keko , por favor pon El sistema de Mascotas corregido aqui en zone
  7. Me Gusta
    Predator77 reacted to KeKo in Ice Run [resubido]   
    Buenas gente, como me ha pedido el fein de akroma si le pasaba el mapa del ice run con cliente y server pos ya de paso os lo pongo pa quien lo quiera usar:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Saludos
  8. Me Gusta
    Predator77 reacted to Thanato in [TIP]Acabar con el error full pathname   
    Error: Enter full pathname of shell or return for /bin/sh
     
    Para acabar con este error nos vamos a winscp o filezilla y nos vamos a la carpeta etc,
    en la carpeta etc buscamos un archivo llamado rc.conf y lo abrimos,
    y justo al final añadimos estas dos lineas:
     
     
    fsck_y_enable="YES"
    background_fsck="NO"
     
    Guardamos el archivo y hacemos reboot para que carge la nueva configuracion.
    Poniendo esto ya hara automaticamente el fsck y ya no os saldra mas dicho error.
  9. Me Gusta
    Predator77 reacted to D4nT3 in [TIP]Acabar con el error full pathname   
    Si no puedes entrar al firezilla az esto
     
    Primero de nada cuando te sale eso le das a enter
    despues que te salga este simbolo # escribes esto
    # fsck -y
    Te hara preguntas, y todas las preguntas te diran que respondas Y, y te chequeara el sistema
     
    A continuación, regrese a su nombre y el signo #, vea el paso 3 la función de comando. (Escribes otra vez fsck -y) dejas que termine y reboot, y ya esta como nuevo = )
     
    Ahora es el reinicio, y el error se corrige verlusst sin ningún dato.
     
    Espero que sea comprensible su publicación, por favor no dude en preguntar más. pm / mensajero o ser invitado aquí en el hilo.
     
     
    greetz
    raiden
     
    Edit:
    Weitrere preguntas / problemas a los errores freebsd también pueden ser publicados aquí, también me ayuda por desweiterem pm msn / icq.
     
    Creditos:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  10. Me Gusta
    Predator77 reacted to KeKo in Pc y Pc2 cliente Metin2Extasis   
    Sep, no me habia olvidado pero entre los examenes, que andaba sin tiempo, que subia muy lento, etc no daba encontrado hueco y dije: ahora que esta mega y parece que el internet en la resi va decente pos se lo subo
  11. Me Gusta
    Predator77 reacted to KeKo in Pc y Pc2 cliente Metin2Extasis   
    Buenas zoneros y zoneras,
     
    Como muchos sabreis los admins del foro tuvimos un servidor llamado Metin2Extasis, del cual subimos el cliente para que cualquier lo pueda usar para su servidor:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Sin embargo, me entere hace tiempo que el pc y pc2 que contiene el cliente que se subio no eran los originales que tenía el cliente que se bajaba la gente para jugar.
     
    Por lo tanto me iba a poner a subiroslo pero me encontre con el inconveniente de que me mudé para estudiar y no tenia los archivos así que me tuve que esperar a volver a mi casa en navidades y cojerlos y x fin aprovechando que mega sube genial por fin los he podido subir de una vez (como le prometi al user alfredo que acabaria haciendo xd).
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Si usais esos pc y pc2 que son los originales:
     
    - Podreis ver las habs modificadas que traia el cliente del extasis
    - Podreis ver las armors que no os funcionaban sin esos pc y pc2 como son las negras de colores que traia el cliente
     
    Algunas imagenes:
     

     

     

     

     
    Y bueno, eso es todo saludos
  12. Me Gusta
    Predator77 got a reaction from ChoiveSeike in [Release]Cliente Metin2 Extasis + Descompilador   
    La contraseña de los .rar es: www.Metin2Zone.net
  13. Me Gusta
    Predator77 reacted to PACI in Imagen en Quest   
    Lo siento se me fue la internet.
     
    Bueno:
     
     
    Hola, he visto un post aqui que no se que de una imagen en quest o yo que se, y decidi postar, como se hace.
    Por ejemplo, con la quest: give_basic_weapon:
     

    quest give_basic_weapon begin state start begin when login begin if pc.getqf("basic_weapon") == 0 then pc.setqf("basic_weapon", 1) if pc.job == 0 then pc.give_item2(27002,200 ) pc.give_item2(27002,200 ) pc.give_item2(27005,200 ) pc.give_item2(16) pc.give_item2(11206) pc.give_item2(12206) pc.give_item2(13006) pc.give_item2(14006) pc.give_item2(15006) pc.give_item2(16006) pc.give_item2(17006) pc.give_item2(72702) pc.give_item2(71044, 20) pc.give_item2(71045, 20) pc.give_item2(70021) pc.give_item2(10001) horse . set_level ( 21 ) horse . ride ( ) pc . give_item2 ( 50053 ) pc . set_skill_level ( 131 , 59 ) pc . set_skill_level ( 137 , 59 ) pc . set_skill_level ( 138 , 59 ) pc . set_skill_level ( 139 , 59 ) pc . set_skill_level ( 140 , 59 ) nation = { "Shinsoo" , "Chunjo" , "Jinno" } notice_all ( "O player " .. pc . name .. " do reino " .. nation [ pc . getempire ( ) ] .. " acaba de logar pela primeira vez, seja bem vindo !!!" ) addimage(60, 12, "800.tga") say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "Bem vindo ao server" ) say ( "Diverte-te!" ) Bueno, donde dice:

    addimage(60, 12, "800.tga") 60 - X -> Posición12 - Y -> Posición
    "800.tga" - Nombre de imagen.
     
    Solo hay que adicionar eso: addimage(x, y, "XXX.tga")
     
    Que adicionar al cliente?
     
    Descopilar el ETC y ir a:

    /ymir work/ui/game/questboard y adicionar ahi la imagen que quieren que aparezca. Tiene que estar en formato .TGA 
     
    Fácil no? xDD
     
    Saludos!
     
    PD: Si no me equivoco, creo que fue Izaviona quien pregunto esto....
    Creditos que se me olvidavan:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    ATENCIóN!!! LA QUEST DE ARRIBA ES APENAS UN EJEMPLO DE COMO SE HACE!!!!!!!!
     
    Imagen:
     

  14. Me Gusta
    Predator77 reacted to SeMa™ in Zones Sacadas del OfLegends   
    Puede que esta sea las anteriores pero...
    Yo le veo la diferencia xd
  15. Me Gusta
    Predator77 reacted to Teklis in peticion de una quest   
    bueno necesito 1 quest que envez de acer evoluciones atrabes de la db se agan con quest ? me seguis xd ejemplo poner el item que quieres que evolucione a que item quieres que evolucione i los objetos necesarios
  16. Me Gusta
    Predator77 reacted to KeKo in Quest que te de un item diario   
    Pos la verdad esque esta bastante mejor que la mía xd, no se me habia ocurrido el os.date
  17. Me Gusta
    Predator77 reacted to KeKo in Drop de monstruos mediante quest (Objetos i dinero)   
    Hombre akro no está mal pero así:
     

    game.drop_item(drops[1], 2) pc.change_money(dinero[1]) Por mucho aleatorio que hayas puesto antes siempre te dara el mismo item.
     
    Además, la sintaxis del array esta mal hecha:
     

    { 87260 }, El ultimo elemento del array no lleva NUNCA coma
     
    La sintaxis correcta sería asi:
     

    local dinero = { --drops_monstruos_dinero-- { { 3000 }, --1-- { 5000 }, --2-- { 8000 }, --3-- { 10000 }, --4-- { 20000 }, --5-- { 30000 }, --6-- { 40000 }, --7-- { 50000 }, --8-- { 100000 } --9-- } Le habias puesto un }, que sobraba ademas de que el ultimo elemento tuviera coma
  18. Me Gusta
    Predator77 reacted to  Pantsu  in [GUIA] Adaptación de armas a Metin2.   
    Existen programas llamados Models Viewer que son los mas conocidos, luego ahí otros programas como Machinima Dev. Algunos necesitan hacerles un extractor de archivos, ya me paso y eso puedes tardar tiempo en conseguir que se desencripte correctamente, pero si te interesa de los errores se aprende. Yo tarde 30 y pico intentos para hacer un descompilador que descompilase el modelo... la textura mas de lo mismo.. Es cosa de mirar en internet y el resto es dedicación y tiempo.
     
    Luego no todos los juegos posicionan sus armas de la misma manera, muchas saldrán giradas 85º o 180º o 90º depende del juego que sea. Algunos por desgracia te los exporta con el personaje sosteniéndola como es el caso del Last Chaos, ahí es algo mas difícil cogerla ya que ahí que girar demasiado a ojo y sueles tardar mas tiempo de lo necesario en acabarla.
     
    Creo que no me dejo nada. Resumiendo si tienes internet/google, dedicación, ganas y tiempo. Cualquier juego u/o MMORPG es descompilable.
  19. Me Gusta
    Predator77 reacted to KeKo in Npc Habilidades a Perfect   
    Si ni siquiera hace falta este post habiendo uno mio de un item que te da las habs, solo es cambiar el when y ponerle un when idnpc.chat."Habs a P" begin
  20. Me Gusta
    Predator77 reacted to Tryndamere in [GUIA] Editar Gramaticalmente tu cliente (locale_game)   
    Hola amigos de Metin2zone, espero que estén bien. En el día de hoy, les traigo otro guía.
    La guía estará basada principalmente en el archivo locale_game.
     
    ¿De qué va la guía?
    Ahora les pregunto yo....¿Alguna vez te has preguntado de donde sale todas esas descripciones que aparecen en el servidor?
    Muy bien, pues eso sale de unos archivos cuando decompilamos nuestro Locale_xx.eix y epk.
     
    ¿Qué o cuales archivos son esos de los que hablas?
    Fácil, una vez hemos decompilado nuestro Locale, y vamos a la ruta [ Locale/xx (el que tengan ustedes)] hasta ahí.
    Si nos fijamos, nos deben aparecer una serie de carpetas y otros archivos de texto mas abajo.
    Esos archivos de texto serán nuestra zona de trabajo para esta guía.
     
    ¿Y cual cojo?
    Bueno comenzaremos de momento por uno de los mas importantes, el cual es:
    locale_game ---> En esta ocasion la guia esta basada para este.
     
    Vale, lo abrimos con el bloc de notas (en esa ocasión a mi me viene mejor a la hora de trabajar)
     
    Ojo !!!! No se asusten con todas esas palabras que salen, veras que si le pones algo de cabeza tu mismo dirás...
    ¡buah esto es una chorrada!.
     
    Bien, adentremosno un poquito y vayamos empapándonos con esto.
     
    Mmmm pensemos... que nos gustaría hacer primero, así que sea facilito... ¡Ahh! ya se, ¿Por que no ponemos o cambiamos la frase cuando
    nos estamos logeando hacia la ventana de selección de pj?
    Para que me entiendan, pongo foto de lo que quiero decir:
     

     
    Pues bien, vayamos al archivo [locale_game], lo abrimos y buscamos la siguiente linea ( si estamos con bloc de notas Ctrl+b )
    Linea a buscar: LOGIN_PROCESSING ( mm vale tiene sentido esa linea ¿No?. Bueno pues ahí es donde cambiaremos lo que queremos que diga
    cuando ya nos estamos logeando hacia la siguiente ventana.
    Hagamos un ejemplo, que no esa demás:
     
    LOGIN_PROCESSING Has entrado al servidor Metin2zone (por ejemplo)
    *Importante*: Respeten los margenes que os vienen por defecto ahí.
     
    ¿Qué mas cositas interesantes podemos sacar de ahí?
    La verdad es que hay infinidad de cosas que podemos traducir o poner nuestro servidor mas atractivo (gramaticalmente).
    Bien, que tal si.... ¿Ponemos que cuando falle un ítem (al subirlo), diga algo distinto?
    Para ello, buscamos la siguiente linea:
     
    REFINE_FAILURE (mm... tiene sentido ¿no?
    Vale, el ejemplo quedaria asi:
    REFINE_FAILURE Has fallado. (normalmente pone eso)
    REFINE_FAILURE ¡Uh!No te subió el ítem. (Por ejemplo)
     
    Ahora, ¿que tal si buscamos para modificar el rank?
    Buscamos las siguientes lineas:
     
    PVP_LEVEL0 Chivalric
    PVP_LEVEL1 Noble
    PVP_LEVEL2 Bueno
    PVP_LEVEL3 Amigable
    PVP_LEVEL4 Neutral---> Este no sale, asi que no se molesten en editarlo, ya que cuando estamos normal solo sale nuestro nombre.
    PVP_LEVEL5 Agresivo
    PVP_LEVEL6 Fraudulento
    PVP_LEVEL7 Malvado
    PVP_LEVEL8 Cruel
     
    Pues nada amigos, como siempre, hagamos un ejemplo:
     
     
    PVP_LEVEL0 Metin2Zone
     
    Pues ese seria nuestro rank cuando estuviéramos normalmente, Chivalric.
     

     
    Bueno hagamos una ultima cosita, la cual puede ser bastante interesante.
    ¿Que tal si... editamos el nombre de los bonus del servidor?
    Buscamos las siguientes lineas:
     
     
    TOOLTIP_RESIST_BOW Resistencia de Flechas %d%% SA
    TOOLTIP_RESIST_ELEC Resistencia de Relámpago %d%% SA
    TOOLTIP_RESIST_FIRE Resistencia de Fuego %d%% SA
    TOOLTIP_RESIST_MAGIC Resistencia de Magia %d%% SA
    TOOLTIP_SKILL_AFFECT_ATT_GRADE Valor de Ataque: +
    TOOLTIP_SKILL_AFFECT_ATT_POWER Valor de Ataque:
    TOOLTIP_SKILL_AFFECT_ATT_SPEED Velocidad de Ataque: +
    TOOLTIP_SKILL_AFFECT_DEF_GRADE Defensa:
    TOOLTIP_SKILL_AFFECT_DODGE Valor de Ataque del Oponente: -
    TOOLTIP_SKILL_AFFECT_HEAL Restaurar HP:
    TOOLTIP_SKILL_AFFECT_MOV_SPEED Velocidad de Movimiento: +
    TOOLTIP_SKILL_AFFECT_REFLECT_MELEE Probabilidad de reflejar ataques de cuerpo a cuerpo:
    TOOLTIP_SKILL_AFFECT_RESIST_NORMAL Resistencia contra Daños Corporales:
    TOOLTIP_SKILL_COOL_TIME Tiempo de carga:
    TOOLTIP_SKILL_DAMAGE_BONUS Daño de Habilidad %d%% SA
    TOOLTIP_SKILL_DEFEND_BONUS Resistencia contra Daño de Habilidad %d%% SA
     
    No pongo toda la lista, pero una vez aprendido como se trabaja aquí no tendrás problemas para encontrar y editar lo que quieras.
     
    Hagamos un ejemplo para que quede mas claro aun:
     
    TOOLTIP_RESIST_BOW Resis. Vs Flechas %d%% SA       (por ejemplo xd)
     
     
    Y bueno amigos, esto es todo. Hace falta un poco de paciencia y saber un poquito de ingles para tener o poder tratar con todo
    esto un poco mejor, pero sobre todo intentando echarle razonamiento y leyendo con calma.
    Cualquier cosa que queráis traducir alguna cosa y no la encontréis, avísenme e intentare echarles una mano.
     
    No hago una guía totalmente con todo lo que hay, por que no acabaría.
    Espero que les haya sido de utilidad y si queréis agradecerla por mi encantado.
    Hasta otra amigos/as.
  21. Me Gusta
    Predator77 reacted to Akroma in [DESENCRIPTACION FINAL] desencriptar clientes de metin2 en minutos   
    Bueno MZ, como vais, yo bien :trollface: , despues de trollearme a casi toda españa, y a italia entera, he decidido postear el metodo de desencriptacion que uso yo i algunas personas que tambien han desencriptado clientes, grandes.
    Bueno vamos al tema
     
    1- Descargar Cheat Engine
     
    2- Descargar el cliente a desencriptar
     
    3- Iniciar el cliente
     
    4- Iniciar Cheat Engine
     
    5- Pulsar aca:

     
    Seleccionais el proceso de el metin a desencriptar, yo en este caso seleccionare el legend of metin.
     

     
    Una vez echo eso le damos al boton memory view, y buscamos las keys, y demas, lo cambiamos a 1 m2.exe y fin del cliente :trolldad:
     
    Creditos: Sema por recordarme mis inicios :trollface:
  22. Me Gusta
    Predator77 reacted to Elite™ in Quest de la medalla heroe   
    Buenas!!!
     
    Soy novato en hacer quest y me e puesto a hacer la quest yu-hwan de la medalla héroe y la he hecho lo mejor que e podido espero que os sirva.
     
    No la he provado asi que no se si ira espero que si hay algun error algun experto en quests pueda corregirla
     

    ---------------------------------- -- Medalla del Héroe -- Misión Especial -- Hecha por Elite™ ---------------------------------- quest Yu-Hwan begin state start begin when login and game.get_event_flag("olimpiada") ==1 begin set_state("informacion") end end state informacion begin when letter begin send_letter("Medalla del Héroe") local v=find_npc_by_vnum(20017) if 0==v else target.vid("__TARGET__", v, "Medalla del Héroe") end end when button or info begin say("Yu-Hwan necesita tu ayuda. ¡Ve a verlo!") say("Lo encontrarás en el segundo poblado.") end when __TARGET__.target.click or 20017.chat."Medalla del Héroe" begin target.delete("__TARGET__") say_title("Yu-Hwan") say("¡Ayuda!") say("Miserable hatajo de ladrones...") say("¡Ayer por la noche me entrarron en casa!") say("Se llevaron la Medalla del Héroe. Un antepasado") say("mío la recibió en su momento tras correr") say("42195 quilómetros desde el campo de batalla") say("hasta donde estaba su monarca para comunicarle") say("la victoria.") say("¡Y ahora ha desaparecido!") wait() say_title("Yu-Hwan") say("Diantres... para mi familia es de un") say("valor incalculable. ¿Qué hago ahora?") say("¿Me ayudarás?") local s=select("Sí","No" ) if 2==s then say("¿De verdad quieres rechazar este encargo?") say("Si ahora escoges ´Sí´ no podrás volver a") say("tomarlo.") local a=select("Sí","No") if 2==a then say_title("Yu-Hwan") say("Entiendo que ahora no tengas tiempo.") say("Vuelve cuando tengas bien. ¡Pero") say("no me hagas esperar mucho!") return end say_title("Yu-Hwan") say("Me temo que has venido demasiado tarde") say("y ya no puedes ayudarme. ¡Te deseo") say("todo lo mejor para tu camino!") set_state(__GIVEUP__) return end say_title("Yu-Hwan") say("¡De caza a los monstruos que me robaron! Pero") say("ten cuidado: eram muy fuerte, como mínimo de") say("nivel 30. ¡Si me traes de vuelta la Medalla del") say("Héroe te recompensaré como es debido!") set_state(Medalla_Héroe) end end state Medalla_Héroe begin when letter begin if pc.count_item("30265")>=1 and pc.count_item("30266")>=1 and pc.count_item("30267")>=1 and pc.count_item("30268")>=1 and pc.count_item("30269")>=1 then send_letter("Medalla del Héroe") local v=find_npc_by_vnum(20017) if 0!= v then target.vid("__TARGET__",v,"Regresa con Yu-Hwan") end return end send_letter("Medalla del Héroe") end when info or button begin if pc.count_item("30265")>=1 and pc.count_item("30266")>=1 and pc.count_item("30267")>=1 and pc.count_item("30268")>=1 and pc.count_item("30269")>=1 then say("Encuentra la Medalla del Héroe y llévasela a") say("Yu-Hwan.") return end say("Encuentra la Medalla del Héroe y llévasela a") say("Yu-Hwan.") end when kill begin local m_ind = pc.get_map_index() else if m_ind == 1 or m_ind == 3 or m_ind == 21 or m_ind == 23 or m_ind == 41 or m_ind == 43 and pc.get_level() <= 30 then if game.get_event_flag("olimpiadas") == 1 then local s = number(1, 100) if s <= 5 and pc.count_item("30265")==0 then pc.give_item2(30265, 1)-- Fragmento de Medalla (1) return end local s = number(1, 100) if s <= 5 and pc.count_item("30266")==0 then pc.give_item2(30266, 1) -- Fragmento de Medalla (2) return end local s = number(1, 100) if s <= 5 and pc.count_item("30267")==0 then pc.give_item2(30267, 1) -- Fragmento de Medalla (3) return end local s = number(1, 100) if s <= 5 and pc.count_item("30268")==0 then pc.give_item2(30268, 1) -- Fragmento de Medalla (4) return end elseif m_ind == 63 or m_ind == 64 and pc.get_level() <= 40 then if game.get_event_flag("olimpiadas") == 1 then local s = number(1, 100) if s <= 5 and pc.count_item("30265")==0 then pc.give_item2(30265, 1)-- Fragmento de Medalla (1) return end local s = number(1, 100) if s <= 5 and pc.count_item("30266")==0 then pc.give_item2(30266, 1) -- Fragmento de Medalla (2) return end local s = number(1, 100) if s <= 5 and pc.count_item("30267")==0 then pc.give_item2(30267, 1) -- Fragmento de Medalla (3) return end local s = number(1, 100) if s <= 5 and pc.count_item("30268")==0 then pc.give_item2(30268, 1) -- Fragmento de Medalla (4) return end elseif m_ind == 65 or m_ind == 61 or m_ind == 104 and pc.get_level() <= 60 then if game.get_event_flag("olimpiadas") == 1 then local s = number(1, 100) if s <= 5 and pc.count_item("30265")==0 then pc.give_item2(30265, 1)-- Fragmento de Medalla (1) return end local s = number(1, 100) if s <= 5 and pc.count_item("30266")==0 then pc.give_item2(30266, 1) -- Fragmento de Medalla (2) return end local s = number(1, 100) if s <= 5 and pc.count_item("30267")==0 then pc.give_item2(30267, 1) -- Fragmento de Medalla (3) return end local s = number(1, 100) if s <= 5 and pc.count_item("30268")==0 then pc.give_item2(30268, 1) -- Fragmento de Medalla (4) return end elseif m_ind == 62 or m_ind == 71 or m_ind == 67 and pc.get_level() <= 70 then if game.get_event_flag("olimpiadas") == 1 then local s = number(1, 100) if s <= 5 and pc.count_item("30265")==0 then pc.give_item2(30265, 1)-- Fragmento de Medalla (1) return end local s = number(1, 100) if s <= 5 and pc.count_item("30266")==0 then pc.give_item2(30266, 1) -- Fragmento de Medalla (2) return end local s = number(1, 100) if s <= 5 and pc.count_item("30267")==0 then pc.give_item2(30267, 1) -- Fragmento de Medalla (3) return end local s = number(1, 100) if s <= 5 and pc.count_item("30268")==0 then pc.give_item2(30268, 1) -- Fragmento de Medalla (4) return end elseif m_ind == 68 or m_ind == 72 or m_ind == 73 or m_ind == 66 and pc.get_level() <= 90 then if game.get_event_flag("olimpiadas") == 1 then local s = number(1, 100) if s <= 5 and pc.count_item("30265")==0 then pc.give_item2(30265, 1)-- Fragmento de Medalla (1) return end local s = number(1, 100) if s <= 5 and pc.count_item("30266")==0 then pc.give_item2(30266, 1) -- Fragmento de Medalla (2) return end local s = number(1, 100) if s <= 5 and pc.count_item("30267")==0 then pc.give_item2(30267, 1) -- Fragmento de Medalla (3) return end local s = number(1, 100) if s <= 5 and pc.count_item("30268")==0 then pc.give_item2(30268, 1) -- Fragmento de Medalla (4) return end end end when __TARGET__.target.click or 20017.chat."Medalla del Héroe" begin target.delete("__TARGET__") say_title("Yu-Hwan") say("¡Por fin! ¡Has vuelto!") say("¿Has encontrado la Medalla del Héroe?") if pc.count_item(30265)>=1 and pc.count_item(30266)>=1 and pc.count_item(30267) >= 1 and pc.count_item(30268) say_title("Yu-Hwan") say("¡Estos malditos ladrones han destrozado mi") say("valiosa herencia!") say("Muchas gracias por haber encontrado todos") say("los fragmentos. Ahora puedo volver") say("a unirlos todos.") wait() say_title("Yu-Hwan") say("¡Mil gracias! Has restablecido el") say("honor de mi familia.") say("Tu esfuerzos no habrán sido en") say("vano. ¡Aquí tienes tu merecida") say("recompensa!") say_item_vnum("71158") say_item_vnum("71159") pc.remove_item(30265,1) pc.remove_item(30266,1) pc.remove_item(30267,1) pc.remove_item(30268,1) pc.give_item2(71158) pc.give_item2(71159) clear_letter() set_state(__COMPLETE__) end else say_title("Yu-Hwan") say("¡Has encontrado mi Medalla!") say("Pero espera... esto es solo un pedazo. ¡Qué") say("infamia, la han partido en cinco!") say("¡Por favor, tráeme todos los fragmentos! Quizás") say("pueda recomponerla!") return end end end state __GIVEUP__ begin end stat __COMPLETE__ begin end end Descargar:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  23. Me Gusta
    Predator77 reacted to Elite™ in Buscar al Soldado Experimentado(Metin2.es)   
    ----------------------------------------------
    --Buscar al Soldado Experimentado
    --Texto de la misión igual que el del metin2.es
    --Traducida por Eliteâ„¢
    ----------------------------------------------
    quest find_senior_soldier begin
    state start begin
    when 20300.chat."Buscando un soldado experimentado" or 20301.chat."Buscando un soldado experimentado" or 20302.chat."Buscando un soldado experimentado" or 20303.chat."Buscando un soldado experimentado" or 20304.chat."Buscando un soldado experimentado" or 20305.chat."Buscando un soldado experimentado" or 20306.chat."Buscando un soldado experimentado" or 20307.chat."Search for a experienced soldier" or 20320.chat."Buscando un soldado experimentado" or 20321.chat."Buscando un soldado experimentado" or 20322.chat."Buscando un soldado experimentado" or 20323.chat."Buscando un soldado experimentado" or 20324.chat."Buscando un soldado experimentado" or 20325.chat."Buscando un soldado experimentado" or 20326.chat."Buscando un soldado experimentado" or 20327.chat."Buscando un soldado experimentado" or 20340.chat."Buscando un soldado experimentado" or 20341.chat."Buscando un soldado experimentado" or 20342.chat."Buscando un soldado experimentado" or 20343.chat."Buscando un soldado experimentado" or 20344.chat."Buscando un soldado experimentado" or 20345.chat."Buscando un soldado experimentado" or 20346.chat."Buscando un soldado experimentado" or 20347.chat."Buscando un soldado experimentado" with pc_is_novice() and npc_is_same_empire() and npc_is_same_job() and pc.get_level()<=10 begin
    if not next_time_is_now() then
    say_title("Instructor:")
    ----"12345678901234567890123456789012345678901234567890"|
    say("Solo puedes encontrar un soldado experimentado")
    say("una vez cada hora. Nos disculpamos por el")
    say("retraso.")
    else
    ----"12345678901234567890123456789012345678901234567890"|
    say("Me gustaría saber más sobre las habilidades antes")
    say("de elegir.")
    say("El intructor se queda pensativo por un momento y")
    say("responde:")
    wait()
    say_title("Instructor:")
    say("Es más efectivo ver cómo funcionan las")
    say("habilidades que escuchar mis descripciones. La")
    say("gente tiene mas tendencia a creer las cosas que ven")
    say("con sus propios ojos.")
    say("Voy a darte una carta que contiene la localización")
    say("de un soldado experimentado.")
    find_senior_soldier.save_target_cond()
    next_time_set(time_hour_to_sec(1), 10)
    set_state(find)
    end
    end
    end
    state failure begin
    when letter begin
    send_letter("Ningún soldado experimentado")
    end
    when button or info begin
    ----------"12345678901234567890123456789012345678901234567890"|
    say_title("Información:")
    say("Lo siento. No hay soldados experimentados")
    say("disponibles en este momento. Por favor, inténtalo")
    say("más tarde.")
    say_reward("Tu intento de encontrar un soldado experimentado")
    say_reward("no ha tenido éxito.")
    restart_quest()
    end
    end
    state find begin
    when letter begin
    local v=find_senior_soldier.find_target()
    test_chat("investigar_objetivo"..v)
    if v==0 then
    set_state(failure)
    else
    target.vid("__TARGET__", v, "Buscando un soldado experimentado")
    send_letter("Buscando un soldado experimentado")
    end
    end
    when button or info begin
    -----------"12345678901234567890123456789012345678901234567890"|
    say_title("Información:")
    say_reward("Ve a la localización del soldado experimentado")
    say_reward("marcada en tu mini mapa.")
    end
    when __TARGET__.target.die begin
    ----------"12345678901234567890123456789012345678901234567890"|
    say_title("He encontrado al soldado experimentado.")
    say_reward("De repente, la carta se prende de fuego y se")
    say_reward("convierte en ceniza oscura. Entonces")
    say_reward("un sentimiento cálido recorre tu cuerpo.")
    restart_quest()
    end
    when __TARGET__.target.click begin
    ----------"12345678901234567890123456789012345678901234567890"|
    say_title("He encontrado al soldado experimentado.")
    say_reward("De repente, la carta se prende de fuego y se")
    say_reward("convierte en ceniza oscura. Entonces")
    say_reward("un sentimiento cálido recorre tu cuerpo.")
    target.delete("__TARGET__")
    find_senior_soldier.clear_target_cond()
    set_state(reward)
    end
    end
    state reward begin
    when letter begin
    send_letter("¡El soldado experimentado te bendice!")
    end
    when button begin
    ----------"12345678901234567890123456789012345678901234567890"|
    say_title("¡El soldado experimentado te bendice!")
    say("La carta que contiene la información sobre la")
    say("localización del soldado experimentado puede")
    say("bendecir a un nuevo aventurero si éste es capaz")
    say("de encontrar al soldado experimentado.")
    say("")
     
    local funcList={
    function() find_senior_soldier.apply_affect("Has recibido +100 puntos en su puntos de vida máxima.", apply.MAX_HP, 100) end,
    function() find_senior_soldier.apply_affect("Has recibido +50 puntos en sus puntos de vida máxima.", apply.HP_REGEN, 50) end,
    function() find_senior_soldier.apply_affect("Has recibido +5 puntos de fuerza.", apply.STR, 5) end,
    function() find_senior_soldier.apply_affect("Has recibido +5 puntos de aguante.", apply.CON, 5) end,
    function() find_senior_soldier.apply_affect("Has recibido +10 puntos en la probabilidad de golpe crítico.", apply.CRITICAL_PCT, 10) end,
    function() find_senior_soldier.apply_affect("Has recibido +10 puntos en velocidad de ataque.", apply.ATT_SPEED, 10) end,
    function() find_senior_soldier.apply_affect("Has recibido +10 puntos de bonus contra animales.", apply.ATTBONUS_ANIMAL, 10) end,
    }
    table_get_random_item(funcList)()
    restart_quest()
    end
    end
    state __FUNC__ begin
    function clear_target_cond()
    pc.setqf("objetivo_Bedecir", 0)
    end
    function save_target_cond()
    test_chat("npc.job="..npc_get_job())
    pc.setqf("objetivo_Bedecir", npc_get_job())
    end
    function find_target()
    return find_pc_cond(5, 100, pc.getqf("objetivo_Bedecir"))
    end
    function apply_affect(name, type, value)
    say_title("Información:")
    say_reward(name)
    say_reward("El efecto dura 5 minutos.")
    affect.add(type, value, 5*60)
    end
     
    end
    end
  24. Me Gusta
    Predator77 reacted to KeKo in Capitulo I - Introducción al curso de quest   
    Buen comienzo para el curso de creacion de quests, me gustaron estas frases xd:
     
    Mañana es mi turno para el capi 2
  25. Me Gusta
    Predator77 reacted to ElRaulxX in Capitulo I - Introducción al curso de quest   
    ¡Buenas zone!
     
    Como ya os han dicho, nos dedicaremos keko y yo un tiempo a hacer juntos este graaaaan curso de quests (ya veréis como se os hará corto ). Keko me ha concedido el honor de ser el que abra el curso, así que eso haré jeje
    Los que me conozcan ya sabrán que lo que se me da mejor en cuanto a servidores de metin2 son las quests. Así que aquí estoy... dando un curso a unos cuantos ineptos de lenguaje quest (espero que la palabra inepto la dejemos de lado cuando acabéis este curso, mientras tanto, para mi seréis ineptos xd) para ver si alguien más aprende este lenguaje y dejáis tranquilo al pobre keko xdd
     
    A mi parecer, este lenguaje os empezará siendo bastante sencillo. Aún así, esta sencillez puede ir complicándose hasta llegar al punto de que sino entendéis realmente el funcionamiento básico de las quests no entenderéis nada. Aunque, por mucha complicación de una quest, si la analizas detalladamente y entiendes su funcionamiento, cualquier quest puede sernos fácil.
    Como para eso aún falta mucho, empezaremos por el principio.
     
    Algo importante que tenéis que tener en cuenta es que esto no se aprende en un día. Tenemos que recordar que estamos escribiendo en el lenguaje que habla nuestro servidor. El servidor hará lo que nosotros le digamos que haga. Es por eso que es importante que aprendáis a hablar y pensar en lenguaje informático. Ejemplo:
     
    1 - Pienso en levantarme.
    2 - ¿Estoy levantado? Si es así, se cancela la acción. Sino, paso al siguiente punto.
    3 - Si tengo ganas de andar, pasaré al siguiente punto. Sino, no haré nada.
    4 - Acción de levantarse: ¿se ha ejecutado correctamente? Si es así, voy al siguiente punto. Sino, vuelvo al primer punto.
    5 - Andar = mover las piernas
    6 - Cuando muevo las piernas me desplazo, doy una vuelta y vuelvo a sentarme.
    7 - Vuelvo al primer punto.
    8 - No sé si entenderéis eso, cuando os vayáis familiarizando entenderéis porqué pongo eso y que utilidad tiene.
     
    Creo que lo más lógico antes de aprender algo, es decir que es ese algo. Por eso empezaré definiéndoos lo que es una quest.
     
     
    Qué es una quest?
     
    Podríamos decir que una quest es cualquier archivo que utilice el lenguaje quest. Digo "podríamos" ya que no es un lenguaje de programación propiamente dicho. El lenguaje quest es una derivación de LUA (que sí que es un lenguaje informático) con muchas modificaciones con la intención de adaptarlo a Metin2. Es por eso, que si nos fijamos, el servidor utiliza archivos lua.
    A mi parecer, no es el lenguaje más importante del servidor. Aún así, con este podemos realizar cientos de cosas muy variadas y interesantes.
    Lo más común de una quest son las típicas tipo trama (ves a tal sitio, haz esto, haz lo otro...) pero las quests dan muchísimas más opciones a parte de eso, me atrevería a decir que eso es lo menos usado. Con las quests podemos crear dungeons (como la Torre de demonios), podemos corregir bugs (como el bug de hp negativo), podemos informar a la gente (por ejemplo, anuncios automáticos),... podría decir muchísimas más cosas pero tengo una guía que acabar
     
     
    Funciones
     
    Lo más importante de una quests son las funciones, pues las quests trabajan con ellas, pero ¿qué es una función?
    Una función es un carácter o grupo de carácter que corresponden a una acción del servidor o sustituyen un código determinado.
    La función "caminar" (del anterior ejemplo) equivale a mover las piernas con la intención de cambiar de lugar. Si en una quest tuviéramos que desplazarnos (caso hipotético), deberíamos utilizar la función "caminar" para movernos.
    Pero si tengo que definir una función dentro de nuestro lenguaje quest, lo dividiría en dos partes (sería lo mismo, pero uno más visual que el otro):
     
    ·Funciones definidas por el servidor. Serían aquellas funciones que, al ponerlas en nuestra quest, haría una acción. Un ejemplo real, un tipo de estas funciones sería la función "pc.give_item2(19,1)". Al utilizar esta función en una quest, el usuario (al que llamaremos pronto como pc) obtendrá una unidad del objeto con la id 19. Esta función sustituye la acción interna del servidor de dar un objeto al usuario.
     
    ·Funciones no definidas por el servidor. Son aquellas funciones que hemos definido a parte, en un archivo que más adelante del curso diremos, o en la propia quest. Estas funciones sustituye a varias acciones del servidor o de lua. Por ejemplo, si tenemos que escribir varias veces en la quest que se muestre en pantalla un mensaje de error, podemos poner estas funciones para ahorrarnos código.
     
    En concepto, podríamos pensar que son muy distintas, pero vienen a ser lo mismo.
     
     
    Object - Quest ¿Lo mismo?
     
    Lo que es una quest creo que ya lo hemos definido, pero ¿object?
    El object es lo que lee el servidor. El servidor no reconoce nuestra quest, sino que lee fragmentos de nuestra quest (en lenguaje lua).
    Existe un compilador que nos transforma nuestras quests y las deposita en la carpeta object para que las lea el servidor. El compilador crea un directorio con unas ids determinadas que corresponden al item, mob, timer... y al interior nos la separa en states y en la acción que se realiza. De esta manera, el servidor puede hacer uso de las quests.
    Este compilador se llama qc (quest compilator) y se encuentra en el directorio quest de nuestro servidor.
    Por lo tanto, para implementar las questa tendremos que hacer uso de él.
    Aquí os dejo un TIP que os ayudará:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
     
    Este capitulo ha sido el más teórico de todos y quizá tenga que añadir más información. Los siguientes capítulos serán más prácticos.
    Poco a poco empezareis a descifrar todos los secretos de las quests.
×
×
  • Crear nuevo...