Predator77
-
Contador contenido
33 -
Ingreso
-
Última visita
-
Días ganados
3
Actividad de reputación
-
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.
-
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.
-
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. -
Predator77 reacted to WorldArd in !!!Protección Del Cliente Script+++py!!!
Exacto esa proteccion ya estaba posteada en epvp y en otros foros
Saludos!!
-
Predator77 reacted to SeMa™ in !!!Protección Del Cliente Script+++py!!!
llleva en epvp mas de 3 meses xd
-
Predator77 reacted to Stiven. in [Recopilacion] Mis quests en Metin2Zone
Keko , por favor pon El sistema de Mascotas corregido aqui en zone
-
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
-
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.
-
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. -
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
-
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
-
Predator77 got a reaction from ChoiveSeike in [Release]Cliente Metin2 Extasis + Descompilador
La contraseña de los .rar es: www.Metin2Zone.net -
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:
-
Predator77 reacted to SeMa™ in Zones Sacadas del OfLegends
Puede que esta sea las anteriores pero...
Yo le veo la diferencia xd
-
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
-
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
-
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
-
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.
-
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
-
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.
-
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:
-
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. -
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
-
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
-
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.