Jump to content

pepineitor

Miembro
  • Contador contenido

    168
  • Ingreso

  • Última visita

  • Días ganados

    11

Todo lo publicado por pepineitor

  1. Bueno tampoco me había fijado en eso x), pensaba que estaba esa condición superior a la anterior.
  2. Tiene algunos errores de funcionalidad pero esta muy buena if pc.getqf('tries') == 5 then say'Sorry, you have tried too many times.[ENTER]Please, try later.' pc.setqf('tries', get_time()+60*60*2) pc.setqf('is_delayed', 1) return if pc.getqf('tries_to_login') == 5 then say'Sorry, you have tried to log in too many times.[ENTER]Please try later.' pc.setqf('tries_to_login', get_time()+60*60*2) pc.setqf('is_login_delayed', 1) returntries_to_login y tries les estás asignando un tiempo(ej: 97412497412459) nunca podran recuperar pass o la función que tengan si se equibocan. Así por encima no he mirado mucho, pero esta buena
  3. World Editor Buenas tardes, os traigo el creador y editor de mapas definitivo, desarrollado por Ymir, el World Editor. ¿En que se diferencia de los métodos de creación de mapas actuales? Pues la diferencia que podremos encontrar es abismal, con este programa no debereís de hacer todos los procesos que actualmente hay que realizar para desarrollar un mapa, es sencillo, completo, práctico y eficaz. ¿Que ventajas nos ofrece World Editor? [*]No tendreís que volver a usar programas como L3DT, earth esculptor, etc., los cuales eran los utilizados hasta la fecha. Son complejos, con una usabilidad reducida, además de la necesidad de programas anexos para completar los mapas que estubieses desarrollando o editando. [*]No tendreis la necesidad de seguir exportando archivos height, tile, shadow map, y posteirormente editarlo con photoshop, ademas no necesitareis ir carpeta por carpeta para crear o modificar el minimapa. [*]No necesitareis tampoco un editor de ATR ya que con World Editor podreis crear todas las SafeZone, las zonas caminables, las zonas montañosas, rios, puentes y demás. [*]Nos ofrece una interfaz sencilla, intuitiva, con la que podremos desarrollar todo aquello que deseemos de una manera sencilla y eficaz. [*]No se usa unica y exlcusivamente para desarrollar mapas, con el tambien podremos crear efectos tales como un level up, un golpe crítico, y demás. ¿Como se instala y se usa? Su instalación es bastante simple, para ello deberemos de seguir los siguientes pasos: [*]Necesitamos una unidad de disco D, para ello deberemos de crear una partición en nuestro disco local, C o bien tener un disco duro D conectado [*]Una vez hecha la partición, debemos de crear dentro una carpeta llamada ymir work [*]En la carpeta ymir work de nuestro disco D, introduciremos el programa completo y además deberemos de introducir todos las carpetas de nuestro cliente descompiladas, la carpeta lib, etc, debe de quedarnos tal que así [*] [*]Una vez hecho esto, solo nos queda usar World Editor y crear nuestros propios mapas de una manera profesional. A continuación os dejo un par de imagenes para que podais judgar por vosotros mismos. Descargar http://metin2dev.org/board/topic/64-worldeditor/ https://mega.co.nz/#!xtoiXRDZ!NTyJPGn0B6tDEcm3kyXO5k--fm9nWRWyNQ6UdLDmlIE Posteador original: .InyaProcution Fuente: Metin2Dev Un saludo a todos.
  4. quest questinicio begin state start begin when 100052.use begin say_title("Elector de Iniciación") say("") say("Hola jugador, aquí puedes Elegir tu Pack de Inicio") say("y recibirlo en tu inventario, procura tener") say("8 Espacios vacios en tu inventario antes de seleccionar") say("") say_reward("¿Deseas Elegir tu Pack de Iniciación?") local canjear = select ("Seleccionar" , "Ahora no") if canjear == 1 then local s = select ("Packs Iniciación Disponibles","Salir") if s == 1 then local misc = select("Pack Iniciación Guerreros","Pack Iniciación Ninjas","Pack Iniciación Suras","Pack Iniciación Chamanes","Salir") if misc == 1 then say ("Has recibido Pack Iniciacion para Guerreros.") if select("Espada", "Lanza") == 1 then pc . give_item2 ( "14209" , 1 ) --# else pc . give_item2 ( "15209" , 1 ) --# end pc . remove_item(100052, 1) elseif misc == 2 then say ("Has recibido Pack Iniciación para Ninjas.") if select("Daga", "Arco") == 1 then pc . give_item2 ( "14209" , 1 ) --# else pc . give_item2 ( "15209" , 1 ) --# end pc . remove_item(100052, 1) elseif misc == 3 then say ("Has recibido Pack Iniciación para Suras.") pc . give_item2 ( "14209" , 1 ) pc . give_item2 ( "15209" , 1 ) pc . remove_item(100052, 1) elseif misc == 4 then say ("Has recibido Pack Iniciación para Chamanes.") pc . give_item2 ( "14209" , 1 ) pc . give_item2 ( "15209" , 1 ) pc . remove_item(100052, 1) elseif misc == 5 then return end elseif s == 2 then return end end end end endModifica el item que se da en las lineas marcadas con --#
  5. As probado a entrar con una cuenta de otro reino? :facepalm:
  6. when login with pc.get_map_index() == tu mapa beginpc.give_item2(item,cantidad)end
  7. Por si no has leido, la herramienta es para moderadores(supeustamente tienen rango de gm).
  8. quest blablab beginstate start beginwhen xx.use beginsay("Introduce el nombre")local nombre = input()say("Intorudce duracion en minutos")local tiempo = tonumber(input())if select("Continuar", "Cerrar") == 1 thencommand('block_chat "..nombre.." "..tiempo.."')notice_all(nombre.." ha sido bloqueado por chat durante "..tiempo.." segundos.")endendendend
  9. ¿Y durante tanto tiempo has necesitado una función para hacer esto?[...] local pregunta,tipo,da,ruta_quiz = long_input(),{"true","false"},string.char(34),"/ruta/hasta/oxquiz.lua"say("La respuesta es:")local elige = select ("Verdadera-O","Falsa-X")os.execute("echo 'add_ox_quiz(1, "..da..pregunta..da..", "..tipo[elige]..")' >> "..ruta_quiz.."")
  10. Vas a locale -> effect Abres gm.mse Si no me equiboco, ya que esto no lo suelo modificar, buscas esto 0.005714 0.600000eso es la dimensión en X(el ancho), seguidamente encontrarás0.000000 0.800000, eso es la dimensión en Y(el alto) creo que hay que modificar el segundo valor de cada componente, pruebalo y ya nos dices. Si con esos no funciona es modificar los próximos, ya que no lo voy a testear, pero es así.
  11. ¿Porque lo digas tu no? Se puede hacer con todo. @Troll Simplemente tienes que añadir entre end endque encontraras al final, la función setstate(__COMPLETE__)Quedando tal que así. [...]say_reward ( "Has Recibido Set de Chaman!" ) end setstate(__COMPLETE__) end end state __COMPLETE__ begin when enter begin[...]
  12. Bueno, como no hay una sección dedicada a SQL, dejo aquí un par de querys que os seran de utilidad a la hora de banear a alguien sin necesidad de tener que memorizar/copiar ip's, cuentas, etc. Made by Pepineitor. Primera(1º) - Banear una cuenta a través del nombre del jugador UPDATE account.account SET status = 'BLOCK' WHERE account.id = (SELECT account_id FROM player.player WHERE name='##NOMBRE DEL PJ##');Segunda(2º) - Banear todas las cuentas relaccionadas con una IP a través de nombre del jugadorUPDATE account.account SET status = 'BLOCK' WHERE account.id in (SELECT account_id FROM player.player WHERE ip = (SELECT ip FROM player.player WHERE name='##NOMBRE DEL PJ##'));Para los que no sepan como ejecutarlas, abrimos nuestro programa de gestión de bases de datos, en mi caso Navicat, pulsamos F6(en Navicat), y aquí pegamos la query que elijamos, la parte a cambiar es ##NOMBRE DEL PJ##. Un saludo.
  13. ¿Enserio? Adjunta tu la quest de construir en la tierra de gremios, si la encuentras claro.
  14. Bueno, para poder comprobar lo que hemos aprendido en los cursos de quest e elaborado este examen para vosotros, recordad que es para mejorar vuestros fallos y poder aprender así más. El examen constará de cuatro(4) ejercicios valorados a dos puntos y medio(2.5) cada uno. El examen se enviará a través de Mensaje Privado a mi(Pepineitor), en el tema/asunto se deberá poner 'Mi examen - 1st Examen de Quest', los mensajes que no contengan este asunto seran descartados automáticamente. En este examen se veran contemplados los temas tratados en el Curso de Quest desde el Primer(1) capítulo hasta el Sexto(6), de tal modo que no se podran ver incluidos contenidos de capítulos superiores, además podeis usar los manuales de lua, todos los link serán adjuntados al final del articulo, el objetivo del examen es comprender y elaborar los diversos ejercicios propuestos con una sintaxis correcta e intentando que su extensión se la mínima posible. Recomendaciones: para realizar este examen es recomendable hacerlo solo mirando los correspondientes capítulos, es preferible que no copies partes de otras quest o pidais ayuda unos a otros, ya que la finalidad es evaluar tus conocimientos. Los ejercicios seran resueltos via mensaje privado o publicando el solucionario de dicho examen en este post, recuerdo que la sintaxis se puede aplicar de distintas formas, por lo tanto habra más de una solución para cualquier ejercicio, intentare que sea lo más intuitivo posible. Los resultados seran publicados en el este artículo con la correspondiente nota del usuario. ¡Recordad que podemos hacer una recuperación si se estimase necesario! Cualquier duda relaccionada con los ejercicios podeis realizarla en este mensaje. ¡Buena suerte a todos! ¡Comencemos el examen! Nota: Las cadenas de texto AAAA, B, CCC, DDD, EEEE, GG, HHH, IIII, JJJ, KKK, LLL, MMM, NN son variables, en lugar de poner números(si se estimase oportuno) debeis de poner las letras indicadas. Primer ejercicio(1) En este ejercicio deberás de relizar una quest en la cual:1.- Al hacer click sobre el NPC AAAA te diga tu Nombre y separado por un espacio, te diga tu Nivel, seguidamente si tu Nivel es igual o superior a 50 te de la opción de Viajar al Mapa B con cordenadas (CCC, DDD).2.- Al entrar/logearse en dicho mapa deberá de comprobarse si el Nivel es igual o superior a 50, si no es así, se te deberá de llevar a la ciudad, por el contrario, el sistema de dará la bienvenida al mapa a través de un SAY().Segundo Ejercicio(2) En este ejercicio deberás de realizar una quest en la cual:1.- Al usar el item EEEE deberá de aparecer en el chat un mensaje en el cual se deberá incluir los siguientes datos:1.1.- Resultado de un número aleatorio entre FF y GG1.2.- Una palabra(Por ejemplo: Poca suerte, Suerte normal, Buena suerte) que dependa del número aleatorio, esto quiere decir que dependiendo del número que os salga en el apartado 1.1 deberá de salir una palabra u otra.2.- Al usar el item EEEE deberán de eliminarse todos los items EEEE que se posean en el inventario.Tercer Ejercicio(3) En este ejercicio deberás de realizar una quest en la cual:1.- Al matar al Mob HHH aparecera un mensaje felicitandote.2.- Al matar al Mob HHH por segunda vez aparecera un mensaje felicitandote y se te entregara el item IIII.3.- Al matar al Mob HHH por tercera vez y teniendo en el inventario el item IIII, aparecerá una noticia general/anuncio en la cual se incluira el nombre del jugador y la información extra que deseeis.4.- Al matar al Mob HHH por cuarta vez o más no pasará nada excepcional.Cuarto Ejercicio(4) #El más dificil En este ejercicio deberás de realizar una quest en la cual:1.- Al usar el item JJJ o el item KKK y estando montado en un Caballo Basico o Militar deberá de suceder lo siguiente:1.1.- Deberá de aparecer un Mob LLL en la posición del usuario incrementada en 5 puntos en X y 20 puntos en Y.2.- Al derrotar al Mob LLL a través de lo especificado en el apartado uno(1), el Mob LLL deberá de dropear un item MMM con una cantidad igual al resultado redondeado entre la división de Hp y el Sp.3.- Al viajar/logearte en el mapa con id NN, comprobar si dispones una cantidad de Items MMM igual o superior al resultado redondeado de la division de la Id del mapa NN elevada al cuadrado entre el Nivel del usuario.3.1- Si dispones de la cantidad de items especificada en el punto tres(3), eliminar dicha cantidad de items, por el contrario, llevar al usuario a su ciudad.4.- Al logearte en cualquier mapa tras haber gastado los articulos contemplados en el punto 3.1 se te notifique via chat que no disponias de los articulos necesarios y desactivar: el uso articulo mencionado en el punto uno(1), el drop del articulo mencionado en el punto dos(2) y la eliminación de items descrito en el punto tres(3)5.- Si has conseguido realizar todos los ejercicios ¡felicidades! Información adicional:Resultado redondeado, hace alusión al redondeo de números decimales ejemplo: 1,463 -> 1; 94,238 -> 94, etc. Páginas recomendadas para realizar los ejercicios: http://metin2zone.net/index.php/topic/642-capitulo-iv-profundicemos-en-las-condiciones/ http://metin2zone.net/index.php/topic/659-capí­tulo-v-los-states/ http://metin2zone.net/index.php/topic/1143-capitulo-vi-nuestro-colegas-los-locales/ http://metin2zone.net/index.php/topic/639-capa­tulo-iii-profundicemos-en-los-whens/ http://metin2zone.net/index.php/topic/635-capa­tulo-ii-estructura-de-una-quest/ http://www.lua.org/manual/5.1/es/ Funciones de Quest - Original de Noa http://pastebin.com/1itEDYHR Ejemplo de Variable Enunciado: Al matar al Mob ZZZ se debe recibir un total de W items del vnum YYYY. quest ejemplo beginstate start beginwhen ZZZ.kill beginpc.give_item2(YYYY, W)endendend
  15. La quest está bien, hace lo que se le pone, si pones algo que no coincide con lo que tu quieres es cosa tuya.
  16. quest bichos_hielo begin state start begin when login or levelup with pc.get_level() >= 10 begin set_state(info) end end state info begin when letter begin send_letter("Los perros de city") local v = find_npc_by_vnum(20087) if v != 0 then target.vid("__TARGET__", v, "Los perros de city") end end when info or button begin say_title("Los perros de city") say(mob_name(20087) .. " necesita de tu ayuda") say("Buscale y ayudale!") say("") end when __TARGET__.target.click or 20087.chat."Los perros de city" begin target.delete("__TARGET__") say_title(mob_name(20087) .. ":") say("") say("ya que estas entrenando me podrias ayudarme con") say("los perros salvajes, por favor, quiero pedirte otro") say("favor ya que estaras por ahi, yo seria mas") say("tranquila si los perros salvajes, tambien") say("fueran acabados por ti, por favor ayudame a") say("matarlos, ya quiero estar mas tranquila.") say("") wait() say("Entonces dime:") say_reward("Deseas tomar la mision?") local res = select("Si","No") if res == 2 then say("Bueno, estare aqui para cuando decidas volver") clear_letter() set_state(start) else say_title(mob_name(20087) .. ":") say("Perfecto has decidido tomarla ahora") say("Esperare, a que vuelvas") set_state(__MISION__) end end end state __MISION__ begin when letter begin setskin(NOWINDOW) makequestbutton("Los perros de city") q.set_title("Los perros de city") q.start() end when button or info begin say_title("Informacion de la Quest") say("") say("Dirigete hacia las afueras de la city y mata 30") say("perros salvajes, para que banco pueda recuperar") say("un poco mas de tranquilidad.") say("") end when enter begin pc.setqf("kill_count", 30) end when letter begin q.set_counter("perro salvaje", pc.getqf("kill_count")) end when 101.kill begin local count = pc.getqf("kill_count")-1 pc.setqf("kill_count", count) q.set_counter("perro salvaje", count) if count < 1 then set_state(__REWARD__) end end end state __REWARD__ begin when letter begin send_letter("Has completado la mision!") end when info or button begin say_title("Mission Accomplished") say("Ahora ve y entregala") say_reward("vuelve con " .. mob_name(20087)) local k = find_npc_by_vnum(20087) if k != 0 then target.vid("__TARGET__", k, "Los perros de city") end end when __TARGET__.target.click or 20087.chat."Los perros de city" begin target.delete("__TARGET__") say_title(mob_name(20087) .. ":") say("Oh! Has Realizado la Quest Correctamente!") say("Yo te recompensare...") say_reward("Recibes: 1.500 exp") say_reward("Recibes: 1000000000 yang") say_reward("Recibes: Piedra ArcoIris") pc.give_exp2(1500) pc.give_item2(50512) pc.changegold(1000000000) clear_letter() set_state(__COMPLETE__) end end state __COMPLETE__ begin when enter begin q.done() end endend
  17. Perdona ha sido un fallo tonto por la prisas. local items = { item1, cantidad1, item2, cantidad2 }for a=1, table.getn(items) do if pc.count_item(items[a]) < items[a]+1 then say("No tienes los items necesarios") return end a=a+2endfor b=1, table.getn(items) do pc.remove_item(items[b],items[b]+1) b=b+2end
  18. local items = { item1, cantidad1, item2, cantidad2 }for a=1, table.getn(items) do if pc.count_item(a) < a+1 then say("No tienes los items necesarios") return end a=a+2endfor b=1, table.getn(items) do pc.remove_item(b,b+1) b=b+2end
  19. when 20095.chat."Evento Loko" begin say_title(mob_name(npc.get_race())) say("") say("Olá "..pc.get_name().." ,") say("") wait() if game.get_event_flag("evento_loko") == 0 then say("") say("Desculpe mais o evento não está aberto!") say("") elseif game.get_event_flag("evento_loko") == 1 then say("O evento Loko está ativado Se quiser") say("posso te levar para participar decida rápido pois") say("temos apenas 10 min antes das entrada fecharem") local ss = select ("Quero Participar", "Não obrigado") if ss == 1 then if pc.get_empire == 1 then pc.warp(0, 0) elseif pc.get_empire == 2 then pc.warp(0, 0) elseif pc.get_empire == 3 then pc.warp(0, 0) end end end end
  20. Toma anda, modifica solo las cosas con -- en su linea quest viajar beginstate start beginwhen #npc#.chat."Viajar" begin ---Poner Vnum NPC sin #datos= {['X'] = #CORDX#, --Poner la Cord X sin #['Y'] = #CORDY#, --Poner la Cord Y sin #['L'] = #LVL# --Poner el Nivel requerido sin #}say("Pon los dialogos que quieras")if select("Viajar", "Cerrar") == 1 then if pc.get_level() < datos['L'] then say("Nivel requerido "..datos['L']) return end pc.warp(datos['X'], datos['Y']) endendendendend
  21. Pues será tus variables que no funcionan bien, sino mira
  22. Como va a llegar al chat melón... chat("categoria:"..items[1].." y id "..items[2]) será chat("categoria:"..items[i][1].." y id "..items[i][2]) Tienes que poner en todos los items[1], items[2]...--> items[1]... Yo la e probado así y me funciona: quest tatata beginstate start beginwhen 70010.use beginitems = { {1, 1, 149,1, "Espada Batalla +9"}, {1, 2, 19,1, "Espada +9"}} local categoria = 1 local id = 2 local i = 0 while (i != table.getn(items)) do i = i + 1 if categoria == items[i][1] and id == items[i][2] then chat("categoria:"..items[i][1].." y id "..items[i][2]) end end endendend
  23. items = { --ID_categoria, ID_item, vnum, cantidad, precio, itemCostType, attr1, val1, attr2, val2, attr3, val3, attr4, val4, attr5, val5, attr6, val6, attr7, val7, sock1, sock2, sock3, Descripcion {1, 1, 149, 1, 100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Espada Batalla +9"}, {1, 2, 19, 1, 200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Espada +9"} } local categoria = input(cmdchat("GetISBuyID")) --- esto devuelve 1 valor a la quest local id = input(cmdchat("GetISBuyID2")) --- esto devuelve 1 valor a la quest chat("categoria: "..categoria.." id: "..id) local i = 1 while (i <= table.getn(items)) do i = i + 1 if categoria == items[i][1] and id == items[i][2] then chat("categoria:"..items[1].." y id "..items[2]) mysql_query("UPDATE account.account SET coins = coins-"..items[5].." WHERE id = "..pc.get_account_id().." LIMIT 1;") pc.give_item2(items[3], items[4]) break end end
  24. quest blablabla beginstate start beginwhen #.use beginlocal chat = {"está online", "está offline"}local que = select("Estoy online", "estoy offline", "cerrar")if que != 3 thennotice_all(pc.get_name().." "..chat[que])endendendend
×
×
  • Crear nuevo...