Jump to content

KeKo

Miembro
  • Contador contenido

    518
  • Ingreso

  • Última visita

  • Días ganados

    74

Todo lo publicado por KeKo

  1. Pues veamos, cada qf debe tener un nombre que es lo que se pone en el pc.setqf("nombre") y ademas debe tener un valor, que es lo que se pone despues del nombre. Hay dos casos: cuando el valor es fijo y cuando el valor va cambiando cada vez que se activa el qf. 1 - Si es fijo: when 70045.use begin pc.setqf("hola", 5) -- cada vez que usemos el item el qf hola sera igual a 5 end 2 - Si va cambiando: when 70045.use begin pc.setqf("hola", pc.getqf("hola") + 1) -- cada vez que usemos el item el qf hola aumentara en 1 end Espero que te resuelva la duda
  2. Ya puse algunas y principalmente lo destacable de los pcs son las habs modificadas ya que todos los links de ellas estan caidos y las 3 negras cambiadas de color que tmbn tienen mucho tiempo.
  3. 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: Cliente Metin2Extasis 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). https://mega.co.nz/#...a3DrdQUbGdA3Nis https://mega.co.nz/#...NKoh8ZUWCcN9hVQ 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
  4. jajaja no problem chicos, ya sabeis que siempre es un placer ayudaros en lo posible a todos
  5. Pos mira te explico como hacer un canje y así ya te puedes hacer tu la quest a tu gusto: 1 - Lo más importante es saber qué es lo que vamos a canjear? En tu caso la respuesta a esta pregunta es: pc.setqf("conta_kills", pc.getqf("conta_kills")+1) La quest te suma uno al qf llamado conta_kills cada vez que matas a un pj, así que lo que utilizaremos para canjear es el pc.getqf("conta_kills"). 2 - Cómo lo canjeamos? Bien para esto creamos nuestra tienda de canjes, en un item por ejemplo: quest canjes begin state start begin when iditem.use begin say_title("Tienda de Canjes") say("") say("Aqui cambiaras muertes por items") say("") end end end Y le metemos las opciones de las cosas que queremos que te dea: quest canjes begin state start begin when iditem.use begin say_title("Tienda de Canjes") say("") say("Aqui cambiaras muertes por items") say("que quieres conseguir?") say("") local canjes = select ("Item1", "Item2", "Item3", "Cerrar") end end end Vale, ahora vamos a hacer los cambios en si, empiezo con el primero para que veais: quest canjes begin state start begin when iditem.use begin say_title("Tienda de Canjes") say("") say("Aqui cambiaras muertes por items") say("que quieres conseguir?") say("") local canjes = select ("Item1", "Item2", "Item3", "Cerrar") if canjes == 1 then say_title("Tienda de Canjes") say("") say("Este es el item que quieres?") say_item_vnum("iditem1") say("") say("Su coste es de X puntos") say("") local seguir = select ("Lo quiero" , Paso") end end end end Ahora vamos a hacer que la quest te de el item y a cambio de quite X muertes, hago solo el primero para que veais, quest canjes begin state start begin when iditem.use begin say_title("Tienda de Canjes") say("") say("Aqui cambiaras muertes por items") say("que quieres conseguir?") say("") local canjes = select ("Item1", "Item2", "Item3", "Cerrar") if canjes == 1 then say_title("Tienda de Canjes") say("") say("Este es el item que quieres?") say_item_vnum("iditem1") say("") say("Su coste es de X puntos") say("") local seguir = select ("Lo quiero" , Paso") if seguir == 1 then if pc.getqf("conta_kills") < X then chat("Lo siento no tienes suficientes puntos para comprar este objeto") return end pc.give_item2("iditem", cantidad) -- aqui damos el item pc.setqf("conta_kills", pc.getqfI("conta_kills") - X) -- aqui quitamos los puntos que valga el item end end end end end Y esa seria la dinamica de una tienda de canjes, recordad que donde pone X ira la cantidad de puntos que pedira para hacer el canje y donde pone iditem pos ira la id del item que daremos a cambio de los puntos. Y eso es todo, espero que os sirva esto mas que simplemente haber hecho esa quest concreta
  6. Tal y como esta la quest no funcionaria, ya que parece que no te has leido el capitulo de las condiciones xd: quest examen begin state start begin when 9001.chat begin -- Falta el nombre del chat para que no te salga la ventana sin nada (9001.chat."Examen Curso Quest") if pc.count_item("27001") == 1 begin -- error fatal, la estructura siempre es if+condicion+then y no begin say_title("Examen del concurso Quest ") say("Este es el primer ejercicio que hago. ") say("Algo debe quedar claro: ") say_reward("¡Keko y Raul son los mejores! ") say("") say("xD") end if pc.count_item("27001") == 0 begin -- de nuevo te has equivocado con el then local s = select ("Ejercicio num1" , "Cerrar") if s == 1 then say_title("Examen del Curso Quest") say("") say_reward("¿Quien es mas feo?") local feo = select ("Keko (haz clic aqui)" , "Raul(no des clic aqui)") if feo == 1 then return elseif feo == 2 then return end elseif s == 2 then return end end end end end El resto estaria bien, pero dos fallos de if+cond+then son mu graves, fijate en eso o no te iran las quests xd
  7. Claro, sin problemas te lo hago. Solo hay un inconveniente: si usas la quest de diferentes cantidades segun el nivel no puedo ponerte cuantos quedan, solo cuantos llevas. Si usas la que siempre es la misma si que puede ser, te pongo las dos: quest muertes begin state start begin when kill with npc.is_pc() and pc.get_level() != lvlmaximo begin pc.setqf("muertes", pc.getqf("muertes") + 1) chat("Llevas "..pc.getqf("muertes").." muertes") if pc.getqf("muertes") == cantidadmuertes and pc.get_level() == 80 then local canti = pc.get_next_exp() pc.give_exp2(canti) chat("Has subido de nivel, enhorabuena") pc.setqf("muertes", 0) end if pc.getqf("muertes")== cantidad2 and pc.get_level() == 120 then local canti = pc.get_next_exp() pc.give_exp2(canti) pc.setqf("muertes", 0) chat("Has subido de nivel, enhorabuena") end if pc.getqf("muertes") == cantidad3 and pc.get_level() == nivelquequeras then local canti = pc.get_next_exp() pc.give_exp2(canti) chat("Has subido de nivel, enhorabuena") pc.setqf("muertes", 0) end end end end quest muertes begin state start begin when kill with npc.is_pc() and pc.get_level() != lvlmaximo begin pc.setqf("muertes", pc.getqf("muertes") + 1) chat("Llevas "..pc.getqf("muertes").." muertes, te quedan todavia "..cantidad-pc.getqf("muertes").." para subir de nivel") if pc.getqf("muertes") == cantidadmuertes then local canti = pc.get_next_exp() pc.give_exp2(canti) chat("Has subido de nivel, enhorabuena") pc.setqf("muertes", 0) end end end end En la segunda tienes que ponerle donde dice: "..cantidad-pc.getqf("muertes").." El numero de muertes que pide pa subir de nivel donde dice cantidad
  8. Sep, se que hay varias formas de hacerlo, simplemente te decia en las otras respuestas que se me hace raro usar un cambio de state ahi porque yo particularmente no lo veo necesario pero ni de lejos estoi criticando que lo uses
  9. No pero si queres hacer la quest puedes postearla aqui y la corrigo
  10. Eso lo hace el comando pc.get_next_level() como supongo que te habras dado cuenta xd Si quieres que pida determinadas muertes tendras que meter diferentes condiciones dentro del kill de este modo: quest muertes begin state start begin when kill with npc.is_pc() and pc.get_level() != lvlmaximo begin pc.setqf("muertes", pc.getqf("muertes") + 1) if pc.getqf("muertes") == cantidadmuertes and pc.get_level() == 80 then local canti = pc.get_next_exp() pc.give_exp2(canti) pc.setqf("muertes", 0) end if pc.getqf("muertes")== cantidad2 and pc.get_level() == 120 then local canti = pc.get_next_exp() pc.give_exp2(canti) pc.setqf("muertes", 0) end if pc.getqf("muertes") == cantidad3 and pc.get_level() == nivelquequeras then local canti = pc.get_next_exp() pc.give_exp2(canti) pc.setqf("muertes", 0) end end end end Asi deberia irte sin problemas Por mucho que vaya en orden descendiente sigo viendo totalmente innecesario un cambio de state , aparte que asignas el pc.setqf("muertes", 20) nada mas abrir la quest, no hay ninguna condicion que lo haga activarse Y vigila esto: if pc.get_level() < maximo begin
  11. Sinceramente Dextrok no le ni pies ni cabeza a tu quest, ya que no tiene sentido hacer un cambio de state en esa quest y aun x encima usas el comando pc.set_level que no existe Yo haria asi la quest: quest muertes begin state start begin when kill with npc.is_pc() and pc.get_level() != lvlmaximo begin pc.setqf("muertes", pc.getqf("muertes") + 1) if pc.getqf("muertes") == cantidadmuertes then local canti = pc.get_next_exp() pc.give_exp2(canti) pc.setqf("muertes", 0) end end end end Donde lvlmaximo seria el lvl maximo del servidor para que puedan seguir matando pjs aunque sean ya el level tope y cantidadmuertes seria el numero de muertes que pida para subir de nivel.
  12. Claro que no lo aplica, solo he respondido a como hacer que salga el efecto xd No borras la pota. Y si con ese triple use metes un pc.remove_item() te borrara todas las potas aunque tengas 200 y solo queres que quite 1. quest potionuse begin state start begin when 27113.use begin cmdchat("efecto_poti") affect.add_collect(apply.HP_REGEN, 100000, 1) pc.remove_item("27113", 1) end when 27114.use begin cmdchat("efecto_poti") affect.add_collect(apply.HP_REGEN, 100000, 2) pc.remove_item("27114", 1) end when 27115.use begin cmdchat("efecto_poti") affect.add_collect(apply.HP_REGEN, 100000, 3) pc.remove_item("27115", 1) end end end Y ya seria cuestion de ver cuanto tiempo ponerle a cada regeneracion pa diferenciar unas potas de otras.
  13. Pos una cosilla solo: 1 - Ponle .use en vez de .click 2 - Ten en cuenta que para que un item pueda ser afectado por un .use tienes que ponerle type = 18 en la query.
  14. Obviamente no tene los files del .es, las hizo el desde 0 a imitacion de la quest del .es
  15. Es cosa de editarle el antiflag en la query http://www.inforge.net/community/metin2-howto-addon-server-privati/252384-release-calcolatore-di-antiflag.html -- calculador de antiflag http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1888405-release-paar-ymir-enums.html -- correspondencias de antiflag (y mas cosas)
  16. Claro, pa que no cuente cuando mates a uno de tu mismo reino, pero eso no quita que tu quest deberia ser así: when kill with npc.is_pc() and pc.get_empire() != npc.get_empire() and pc.get_map_index() == 103 and game.get_event_flag("reinos_war")== 1 begin game.set_event_flag("reino"..pc.get_empire(),game.get_event_flag("reino"..pc.get_empire())+1) notice_all("Rojo: "..game.get_event_flag("reino1").." Amarillo: "..game.get_event_flag("reino2").." Azul: "..game.get_event_flag("reino3")) end Para que asi cuando alguien mate a alguien que no es de su reino el reino del que acaba de matar al otro gane un punto, y no el reino del que murio.
  17. Um de ese modo coje el imperio del pj al que matas y le suma un flag a su reino, así que la puntuacion seria pal otro reino no pal tuyo.
  18. Pues na mas tiene un fallito que en el notice_all muestra un game.set en vez de un game.get, por lo que es normal que no vaya. Ademas, es mejor utilizar un notice_in_map para que solo se vea en el mapa de la guerra: when kill with npc.is_pc() and pc.get_empire() != npc.get_empire() and pc.get_map_index() == 103 and game.get_event_flag("reinos_war")== 1 begin if pc.get_empire()== 1 then game.set_event_flag("Jinno", game.get_event_flag("Jinno")+1) notice_in_map("Jinno: "..game.get_event_flag("Jinno").." Shinso: "..game.get_event_flag("Shinso").." Chunjo: "..game.get_event_flag("Chunjo").." ") elseif pc.get_empire()== 2 then game.set_event_flag("Shinso", game.get_event_flag("Shinso")+1) notice_in_map("Jinno: "..game.get_event_flag("Jinno").." Shinso: "..game.get_event_flag("Shinso").." Chunjo: "..game.get_event_flag("Chunjo").." ") elseif pc.get_empire()== 3 then game.set_event_flag("Chunjo", game.get_event_flag("Chunjo")+1) notice_in_map("Jinno: "..game.get_event_flag("Jinno").." Shinso: "..game.get_event_flag("Shinso").." Chunjo: "..game.get_event_flag("Chunjo").." ") end Quedaria así, si al hacer qc se queja del notice_in_map agregalo al quest functions.
  19. Pues así te quedaria quest banco_portatil begin state start begin when login begin set_state(banco_porta) end end state banco_porta begin when letter begin send_letter("Banco Portatil") end when button or info begin say_title ( "By Speed" ) say_title ( "Banco Metin2" ) say ( "Hola, este es el banco de Metin2" ) ; say ( "Que desea?" ) ; say ( " " ) ; say ( " " ) ; local item =select ("Retirar","Depositar","Info","Cancelar") if item == 1 then say_title ( "Banco Metin2" ) say ( "Hola, este es el banco de Metin2" ) ; say ( "Aquí usted puede retirar el dinero que había depositado.." ) ; say ( "Prima di ritirare ricorda di avere con te " ) say ( "gli assegni." ) say ( "Quiere retirar algo de dinero?" ) local confirm =select ( "Si" , "No" ) if confirm == 1 then say_reward ( "Elige la cantida que deseas sacar:" ) local ritiro = select ("100kk","250kk","500kk","Anulla") if ritiro == 1 then if pc . count_item ( 9491 ) >= 1 then pc . remove_item ( 9491 , 1 ) say ( "La retirada acabo con exito!" ) ; pc . changegold ( 100000000 ) else say ( "No tiene el derecho de Verificacion" ) ; say ( "Que pase un buen dia. " ) return end elseif ritiro == 2 then if pc . count_item ( 9492 ) >= 1 then pc . remove_item ( 9492 , 1 ) say ( "La retirada acabo con exito!" ) ; pc . changegold ( 250000000 ) else say ( "No tiene el derecho de Verificacion" ) ; say ( "Que pase un buen dia. " ) return end elseif ritiro == 3 then if pc . count_item ( 9493 ) >= 1 then pc . remove_item ( 9493 , 1 ) say ( "La retirada acabo con exito!" ) ; pc . changegold ( 500000000 ) else say ( "No tiene el derecho de Verificacion" ) ; say ( "Que pase un buen dia. " ) return end elseif ritiro == 4 then end elseif confirm == 2 then end elseif item == 2 then say_title ( "Banco Metin2" ) say ( "Hola, este es el Banco Metin2" ) ; say ( "Aquí usted puede depositar su dinero. " ) ; say ( "Gracias por confiar en nuestro banco " ) say ( "esperemos serle de ayuda" ) say ( "Quiere Depositar algo?" ) local confirm =select ( "Si" , "No" ) if confirm == 1 then say_title ( "Banco Metin2" ) local deposito = select ("100kk","250kk","1kkk","Anulla") if deposito == 1 then if pc . gold >= 100000000 then pc . changegold ( - 100000000 ) pc . give_item2 ( "9491" , 1 ) say ( "el deposito acabo con exito!" ) ; say ( "usted recibe un cheque por valor de 100kk" ) else say ( "no tiene suficiente yang" ) ; say ( "vuelve cuando tenga suficiente yang." ) return end elseif deposito == 2 then if pc . gold >= 250000000 then pc . changegold ( - 250000000 ) pc . give_item2 ( "9492" , 1 ) say ( "el deposito acabo con exito!" ) ; say ( "usted recibe un cheque por valor de 250kk" ) else say ( "no tiene suficiente yang" ) ; say ( "vuelva cuando tenga suficiente yang." ) return end elseif deposito == 3 then if pc . gold >= 500000000 then pc . changegold ( - 500000000 ) pc . give_item2 ( "9493" , 1 ) say ( "el deposito acabo con exito!" ) ; say ( "usted recibe un cheque por valor de 500kk" ) else say ( "no tiene suficiente yang" ) ; say ( "vuelva cuando tenga suficiente yang" ) return end elseif deposito == 4 then return end elseif confirm == 2 then end elseif item == 3 then say_title ( "Banco Metin2" ) if pc . gold >= 1 then pc . changegold ( - 1 ) say ( "-Hola, este es el Banco Metin2.." ) ; say ( "Estoy aquí para darle alguna información .." ) say ( "En mi banco, usted deposita su dinero" ) ; say ( "a cambio nosotros le damos un cheque.." ) say ( "-cuando este cansado de mis servicios" ) ; say ( "usted podra venir a recoger su dinero.." ) say ( "-esto es util para los negocios" ) ; say ( "asi no hace falta preocuparse mas por cifras altas.." ) say ( "de esta forma puedes aumentar " ) ; say ( "tu capital" ) ; else say ( "no hay suficiente yang" ) ; say ( "mi informacion tiene un precioo!! xD" ) return end elseif item == 4 then return end end end
  20. Como tengo dicho en muchos posts, nunca pongo querys de armas/armors/acces para que cada uno las pueda hacer con los values que quiera.
  21. Pues la diferencia entre ambos es muy sencilla: d.new_jump_all(index,cordesx,cordesy) Se utiliza cuando empiezas la mazmorra, es decir la primera vez que usas el comando. d.jump_all(cordesx,cordesy) Se utliza el resto de veces que hagas un salto en una mazmorra. Tu problema es que estas poniendo: d.new_jump_all(index,cordesx00,cordesy00) Cuando ni el d.new_jump ni el d.jump llevan los 00 al final de las cordes. Se ponen igual que pondrias en un pc.warp pero sin los 00 P.D: Veo un poco arriesgado hacer un jump en un mapa de city 1 teniendo en cuenta que se llevara a cualquier que se encuentre en el mapa.
  22. Tenes que buscar SHOWMETHEMONEY, te ha faltado el ME
  23. Pues es muy sencillo: when mob.kill or mob.kill or mob.kill begin Ahi pones las ids de los mobs que queres que dropeen. local drop = {item1,item2,item3,item4} Ahi pones las ids de los items que queres que puedan dropear. local suerte = math.random(1,2) Esto indica el numero de items que pueden dropear. Como hay un maximo de 2 en el random significa que pueden dropearse dos items (los que has puesto antes en el otro local. Si metes mas drop en el otro array tendras que aumentar el maximo del random. if suerte == 1 then game.drop_item(drop[1], 1) elseif suerte == 2 then game.drop_item(drop[2],1) En este caso como el math.random es 1,2 hay dos posibilidades, que dropee. if suerte == 1 then game.drop_item(drop[1], 1) elseif suerte == 2 then game.drop_item(drop[2],1) Y por ultimo asignas a cada posible resultado del random un item, si tenes mas de dos pos metes: elseif suerte == 3 then game.drop_item(drop[3],1) Y asi con los demas posibles drops Espero que asi lo entiendas
×
×
  • Crear nuevo...