Jump to content

Yori

Miembro
  • Contador contenido

    288
  • Ingreso

  • Última visita

  • Días ganados

    12

Mensajes publicados por Yori

  1. Creo que así:

    quest jefes begin
    state start begin
    when kill with not npc.is_pc() begin
    local jefes = {
    [2191] = {"Tortuga Gigante"},
    [2191] = {"Tortuga Gigante Negra"}
    }
    notice_all(..pc.get_name().." ha matado la "..jefes[npc.get_race()][1].."")
    end
    end
    end
    

    En mi opinion esta mejor que use esta, ya que como dices no podra usar el mob para ninguna mision mas, incluido el killcount, que me he fijado que no cuenta los mobs que estan usados en misiones.

     

    Saludos

  2. local a,b = math.modf(25/10)
    

    Eso está mal, debería ser de esta manera:

     

    local a,b = math.modf(25, 10)
    

    Porque lo que estás invocando es un método, el cuál recibe 2 parámetros, igual con el math.mod(dividendo, divisor)

     

    gracias, por lo menos ya me funciona el math.mod, tenias razon y funciona con 2 parametros, pero en las nuevas versiones de LUA el math.mod ahora es math.fmod

     

    La función math.mod ha sido renombrada a

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Weno, he estado mirando y al parecer la funcion math.modf es solo a partir de LUA 5.1

     

    en resumen:

     

    Lo que funciona es math.mod(x,x)

    y con ayuda de la funcion math.floor(x) puedo conseguir el resultado que da la funcion math.modf

     

    Gracias por tu ayuda

     

    Saludos

  3. saludos

     

    Tengo un problema, no soy capaz de hacer funcionar la maldita funcion de lua math.modf

    Se supone que devuelve 2 valores, la parte entera y la parte decimal es decir

     

    local a,b = math.modf(25/10)

     

    usando el scite que posteo Noa me funciona perfectamente, pero en la mierda del server no va la funcion.

    Alguien sabria decirme porque? el server usa la version LUA 5.0.3 quiza esa funcion se implemento despues?

    hay alguna forma de consegur el mismo resultado? e intentado sacar el modulo con % que se supone que es como se hace en lua, pero no va y math.mod tampoco.

     

    Estoy mu perdio, ya no se me ocurre nada

     

    Saludos, Yori

  4. Saludos!!

     

    Tengo unas cuantas dudas, y espero que alguien pueda ayudarme un pokito.

     

    quiero hacer una quest y para ello necesito completar esta tabla, pero algunos bonus no los he encontrado o no se a que se refieren, podríais ayudarme a completarle?? gracias

     

    {1,"Max HP"},

    {2,"Max SP"},

    {3,"Vitalidad"},

    {4,"Inteligencia"},

    {5,"Fuerza"},

    {6,"Destreza"},

    {7,"% Ataque"},

    {8,"% Movimiento"},

    {9,"% Hechizo"},

    {10,"Reg HP ??"},

    {11,"Reg SP ??"},

    {12,"Envenenar"},

    {13,"Nose 1 ??"},

    {14,"% Apagon"},

    {15,"Criticos"},

    {16,"Penetracion"},

    {17,"F. Medio humanos"},

    {18,"F. Animales"},

    {19,"F. Orcos"},

    {20,"F. Esotericos"},

    {21,"F. No muertos"},

    {22,"F. Demonios"},

    {23,"Absorcion HP ??"},

    {24,"Absorcion SP ??"},

    {25,"Robar SP ??"},

    {26,"Robar HP ??"},

    {27,"Bloqueo"},

    {28,"Esquivar flechas"},

    {29,"Def. Espada"},

    {30,"Def. 2 Manos"},

    {31,"Def. Daga"},

    {32,"Def. Campana"},

    {33,"algo de def"},

    {34,"Resist. Flechas"},

    {35,"Resist. Fuego"},

    {36,"Resist. Luz"},

    {37,"Def. Magia"},

    {38,"Resist. Viento"},

    {39,"Reflejar"},

    {40,"devolver maldicion??"},

    {41,"Resist. Veneno"},

    {42,"Recuperar SP??"},

    {43,"Bonus Exp"},

    {44,"Doble Yang"},

    {45,"Doble Drop"},

    {46,"nose 3 ??"},

    {47,"nose 4 ??"},

    {48,"Inmune 1 ??"},

    {49,"Inmune 2 ??"},

    {50,"Inmune 3 ??"},

    {51,"No existe 1 ??"},

    {52,"algo del arco ??"},

    {53,"puntuacion de ataq??"},

    {54,"Defensa"},

    {55,"Valor de ataque magico"},

    {56,"Defensa magica"},

    {57,"No existe 2 ??"},

    {58,"Max aguante ??"},

    {59,"F. Vs. Guerrero ??"},

    {60,"F. Vs. Ninja"},

    {61,"F. Vs. Sura"},

    {62,"F. Vs. Chaman"},

    {63,"F. Vs. Mounstruos"},

    {64,"Puntuacion de ataque"},

    {65,"Defensa 2 ??"},

    {66,"EXP"},

    {67,"nose 5"},

    {68,"nose 6"},

    {69,"nose 7"},

    {70,"nose 8"},

    {71,"Habilidad"},

    {72,"Media"},

    {73,"Resist Habilidad?"},

    {74,"Resist al daño fisico ??"},

    {75,"nose 9"},

    {76,"nose 10"},

    {77,"nose 11"},

    {78,"Def. Vs. Guerrero"},

    {79,"Def. Vs. Ninja"},

    {80,"Def. Vs. Sura"},

    {81,"Def. Vs. Chaman"}

     

    Los que tienen "??" es que no estoi seguro y los que pone nose, es que no tengo ni idea xD

     

    Saludos

  5. Wenas!!

     

    Primero de todo decir que yo soy de los vagos xDD

     

    Vengo a ofrecer otra posibilidad a tener que escribir tres lineas de codigo para meter una quest. con este pequeño tip, podras hacer un make.sh con una pequeña palabra, mucho mas comodo no?

     

    comencemos:

     

    lo primero de todo, debeis crear un archivo con un editor de texto sin formato, como el bloc de notas o el notepad++.

    escribimos el siguiente codigo en ese archivo de texto:

     

    #!/bin/sh
    cd /usr/home/game/share/locale/germany/quest
    chmod 777 make.sh
    sh make.sh
    

    Fijaros que tengo escrita la ruta de donde estan las quest, es posible que vosotros tengais otra, asique lo mejor que podeis hacer es comprobarlo usando el filezilla o en mi caso el winSCP de esta manera:

     

    Imagen enviada

     

    Una vez que tengais el archivo modificado y ajustado a vuestro server, debeis guardarlo con el formato .sh (aunque tambien puede quedar sin formato que funcionara igual).

     

    Cuando ya tengais el archivo debeis colocarlo en el directorio /root.

     

    Quedando de esta manera:(yo le he llamado "mis" a secas)

     

    Imagen enviada

     

    Una vez que ya tenemos el archivo colocado, vamos a nuestra maquina virtual y escribimos el siguiente comando para darle permisos al archivo que acabamos de meter al server.

     

    chmod 777 mis
    

    Fijaros que yo he puesto "mis", porque es como se llama mi archivo.

     

    Una vez que le damos permisos a este archivo ya podemos usarlo para implementar quest, solo tendremos que añadir nuestras quest al locale_list, honkong_list o quest_list o lo que tengais y escribir en la maquina "./mis" y montara todas las quest de la lista.

    Imagen enviada

     

    Nota: es recomendable usar lo de la lista de misiones porque asi cuando quieras borrar una mision, solo tendras que borrarla de la lista y cargar todas las misiones con el make.sh o con el ./mis que acabamos de crear(que es un acceso directo al make.sh) xD

     

    Si teneis alguna duda ya sabeis, preguntad y si tengo algun error decirlo. xD

     

    Saludos, Yori

  6. no se si te refieres a cambiar el color de todas las letras de las quest, pero siempre puedes usarlas funciones de color que ya estan posteadas por el foro, y otra manera de cambiar el color de la fuente seria mediante la modificacion del cliente, seguramente desde el archivo uiquest.py del root o alguno parecido.

    mirate este link, a lo mejor te ayuda.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

     

    Saludos

  7. lo mas raro que veo asi a simple vista es una variable de un event_flag que tiene un nombre distinto de todos los demas pero solo afecta a cuendo quieres detener el evento y que las coordenadas me parecen muy cortas, pero ayudaria que digeses en que punto te falla la quest...

    cuando la activas con el GM salen los mensajes de aviso por el chat?

    dejo als quest tabuladas por si alguien las quiere mirar, yo ahora me voy de party xD

     

    quest coliseo_evento begin
    state start begin
    
    	when 20019.chat with pc.is_gm() and pc.get_map_index() == 200 begin
    		if game.get_event_flag("coliseosparda") == 0 then
    			say_title("Torneo PvP")
    			say("Quieres iniciar un torneo de duelos?")
    			local war = select("Si","No")
    			if war == 1 then
    				say_title("Torneo PvP")
    				say("¡El torneo ha comenzado!")
    				notice_all("El evento de Torneo de Duelos acaba de empezar.")
    				notice_all("Debes ser nivel 200 o mas para poder ir al Coliseo.")
    				game.set_event_flag("coliseosparda", 1)
    			end
    		elseif game.get_event_flag("coliseoelemental") == 1 then
    			say_title("Torneo de Duelos")
    			say("Quieres acabar el torneo de Duelos?")
    			local guerra = select("Si","No")
    			if guerra == 1 then
    				notice_all("El evento Torneo de Duelos ha acabado.")
    				notice_all("Todo el mundo sera teletransportado a su ciudad.")
    				game.set_event_flag("coliseosparda", 0)
    				warp_all_to_village()
    			end
    		end
    	end
    end
    end
    
    quest coliseo_duelos begin
    state start begin
    	when levelup or login with pc.get_level() >= 200 begin
    		set_state(coliseo)
    
    	end
    end
    state coliseo begin
    	when letter begin
    		send_letter("Torneo de Duelos")
    	end
    
    
    	when button or info begin
    		say_title("Torneo de duelos")
    		say("")
    		say("Hola joven guerrero, veo que ya eres")
    		say("un jugador de cierto nivel")
    		say("asi que te voi a hablar del Torneo de Duelos")
    		say("")
    		say("Si eres lo suficientemente valiente.")
    		say("te llevara un Coliseo en el que")
    		say("te enfrentaras a otros jugadores hasta la muerte")
    		say("")
    		say("Aquellos que sobrevivan tendran")
    		say("grandes recompensas por su esfuerzo")
    		say("")
    		say_reward("Te atreves a ir al Coliseo sparda?")
    
    		local s = select ("Por supuesto" , "Me da miedo")
    		if s == 1 then
    			if game.get_event_flag("coliseosparda") == 0 then
    				say_title("Coliseo sparda")
    				say("")
    				say("Lo siento de verdad")
    				say("pero ahora el evento")
    				say("no esta activo para que entres")
    				say("")
    				say("Vuelve a intentarlo cuando")
    				say("el staff avise de que esta activo")
    				say("")
    				return
    			end
    			pc.warp(66800 , 26100)
    		elseif s == 2 then
    			say_title("Coliseo sparda")
    			say("")
    			say("Vaya veo que no tienes el coraje")
    			say("necesario para entrar al Coliseo")
    			say("")
    			say("Vuelve cuando te creas capaz")
    			say("de defender tu orgullo de guerrero")
    			say("")
    			return
    		end
    	end
    end
    end
    
    

     

  8. otra forma mas sin tener que crear otra tabla xDD

    quest mapas begin
    state start begin
    	when 20011.chat."Ir a mapas" begin
    		--Aca van todas las coordenadas de todos los mapas.
    		local coord_map = {
    			{coord1x, coord1y, nivel1},
    			{coord2x, coord2y, nivel2},
    			{coord3x, coord3y, nivel3},
    			{coord4x, coord4y, nivel4},
    			{coord5x, coord5y, nivel5}
    			}
    
    		say_title("Viajero:")
    		say("Selecciona el mapa al que quieres ir")
    		local result = select("map1", "map2", "map3", "map4", "map5", "Cancelar")
    		if result != 6 then
    			if pc.get_level() < coord_map[result][3] then
    				chat("Lo siento, no tienes el nivel necesario para entrar a este mapa")
    			else
    				pc.warp(coord_map[result][1],coord_map[result][2])
    			end
    		end
    	end
    end
    end

  9. Eso es super hiper sencillo:

    when login with pc.get_map_index() == indexmapa begin
    notice_all("El grupo de "..pc.get_name().." se va a enfrentar al jefe")
    end
    when idjefe.kill begin
    notice_all("El grupo de "..pc.get_name().." ha acabado con el jefe")
    end
    
    pero con eso no saldra el mensaje cada vez que entre un miembro del grupo a ese mapa?

     

    mejor asi:

    when login with pc.get_map_index() == indexmapa and party.is_leader() begin

     

    pero cuando maten al mob, el noombre que saldra será el que de el ultimo golpe

  10. si tienes el

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    implementado en tu server, con esta funcion cambias el level, pero ya te digo que si el pj no esta off y pasa un tiempo hasta que se vuelva a conectar no creo que sirva. pero siempre puedes intentarlo.

     

    mysql_query("Update player.player set level = 1 where name = '"..pc.get_name().."';")
    

    Saludos, Yori

     

    Suerte

  11. no existe la funcion pc.set_level() tendrias que crearla usando mysql, pero para que fuese viable el jugador tendria que estar un tiempo off, como cuando se desbuguea un pj desde la web, que si se conecta rapido no se desbuguea.

     

    tambien tienes un un par de errores, te falto un end al final y pc.get.level() tienes que poner asi pc.get_level(). a simple vista no veo mas fallos

     

    Saludos, Yori

×
×
  • Crear nuevo...