Jump to content

Dextrok

Miembro
  • Contador contenido

    111
  • Ingreso

  • Última visita

  • Días ganados

    5

Mensajes publicados por Dextrok

  1. Ah, el problema está en la query, prueba con esta otra:

     

    quest prueba begin
    state start begin
      when 20094.chat."Prueba" begin
       say_size(350,365)
       say_title("Prueba")
       local prueba = mysql_query("SELECT account.real_name, player.name FROM account.account, player.player WHERE player.name='"..pc.get_name().."';")
       say("")
       say("Bienvenido "..pc.get_name().."")
       say("")
       say_light_blue("En la casilla real_name tienes puesto: "..prueba.real_name..".")
      end
    end
    end
    

    No estoy 100% seguro porque no he probado, pero es más probable que te funcione.

  2. Testeala así.

     

    quest prueba begin
    state start begin
      when 20094.chat."Prueba" begin
       say_size(350,365)
       say_title("Prueba")
       local prueba = mysql_query("SELECT account.real_name FROM account.account WHERE name='"..pc.get_name().."';")
       say("")
       say("Bienvenido "..pc.get_name().."")
       say("")
       say_light_blue("En la casilla real_name tienes puesto: "..prueba.real_name..".")
      end
    end
    end
    
  3. He dejado el archivo regen en blanco, y de momento me olvido de problemas con caídas del server, me viene mejor ademas, para eventos de metines, mapa vacío, ¿no habrá problemas por haberlo dejado sin mobs no?

     

    Ese es un típico problema, si quieres conservarlo has lo que te han dicho los chicos arriba, y si lo deseas dejar vacío no tendrás ningun problema con ello tampoco.

  4. Es prácticamente lo mismo que hizo

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

    pero como al parecer tuvo un problemita, acá te lo dejo más claro.

     

    quest polimorfo begin
    state start begin
      when 70016.use with pc.level >= 5 begin
       pc.set_skill_level(129, 59)
      end
    end
    end
    
  5. Pruebala así

     

    quest mision_tanaca begin
    state start begin
      when login or levelup with pc.get_level() >= 60 begin
       set_state(information)
      end
    end
    state information begin
      when letter begin
       send_letter("Piratas Tanakas")
       q.set_counter("Pirata Tanaka", 100 - pc.getqf("piratas"))
      end
      when enter begin
       pc.setqf("piratas", 0)
      end
      when button or info begin
       say_title("Piratas Tanakas")
       say("Hola Metinero")
       say("Creo que estas listo para hacerme un trabajo sucio.")
       say("los Piratas Tanakas esta me esta deviendo Mucho Oro.")
       say("Quiero que mates 100 de ellos para Asustarlos y que me Pagen..")
       say("Los puedes encontrar en los eventos de lideres o en las citys")
       say("como recompensa te dare 500kk por hacer este trabajo estas listo")
       say_reward("Mata 100 Luchadores Piratas Tanakas")
       say("")
      end
      when 5001.kill begin
       pc.setqf("piratas", pc.getqf("piratas")+1)
       q.set_counter("Pirata Tanaka", 100 - pc.getqf("piratas"))
       if pc.getqf("piratas") == 100 then
        say_title("Piratas Tanakas")
        say("Has logrado Asustarlos me han pagado mi oro. recibiras el 50%!")
        say("Usted recibirá:")
        say_reward("500kk Yang")
        pc.change_money(500000000)
        clear_letter()
        set_state(__COMPLETE__)
       end
      end
    end
    state __COMPLETE__ begin
    end
    end
    
  6. Cierto, como dice

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    si es posible, pero recuerda que debes de tener en cuenta que lo que se haga del state último al state primero seguirá teniendo su efecto, por ejemplo:

     

    quest test begin
    state start begin
      set_state(inicial)
    end
    state inicial begin
      when login begin
       if pc.getqf("edad") == 0 then
        pc.setqf("edad", 1)
        set_state(final)
       end
      end
    end
    
    state final begin
      when login begin
       pc.setqf("edad", 5)
       set_state(inicial)
      end
    end
    end
    

    Esta quest establecerá una edad inicial de 1, y luego la establecerá en 5, pero cuando regrese al estado inicial no volverá a establecer la edad en 1, porque el qf ("edad") tendrá el valor de 5, esa valor no se reinicia sino que prevalece.

  7. Pues los 3 los tienen fíjate al final:

     

    state __COMPLETE__ begin
    end
    end
    

    Ahora me explico mejor: Así tiens tu quest sin contenido:

     

    quest entrada_server begin
    		  state start begin
    			    when login begin
                    end 
              end
    end
    
    state __COMPLETE__ begin
    end
    end
    

    Si te puedes fijar hay 2 end al final, en tontal 5, para un total de 4 begins.

     

    En cambio, en la que te mostré.

     

    quest entrada_server begin
      state start begin
         when login begin
         end
      end
      state __COMPLETE__ begin
      end
    end
    

    El último end que crees que falta se encuentra al final de todo.

  8. 
    

    quest go_to_map begin

    state start begin

    when login or levelup with pc.get_level() >= 75 begin

    set_state(_PERGAMINO_)

    end

    end

    state __PERGAMINO_ begin

    when letter begin

    send_letter("Gruta del Exhilio")

    end

    when info or button begin

    local x, y = xxxx, yyyy --Aca se le asigna las coordenadas del mapa

    say("Deseas ir a la gruta del exhilio?")

    local k = select("Si", "No")

    if k == 1 then

    pc.warp(x, y)

    end

    end

    end

    end

  9. quest grandmaster_skills begin
    state start begin
    when 9006.chat."GrandMaster Skills" begin
    	 say_title("Großmeister")
      local seelicount = pc.count_item(50513)
    	 if pc.get_skill_group() == 0 then
      say("Du hast keine Fertigkeiten "..pc.get_skill_group())
      return
    	 end
    	 if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
      if pc.is_skill_book_no_delay() then
    	  say("Du hast eine Exo-Rolle Gelesen!")
    	  say("Nun kannst du einen weiteren")
    	  say("Seelenstein lesen!")
    				  say("")
    	  wait()
    	  say_title("Großmeister")
      else
    	  say("Du hast heute Bereits einen Seelenstein gelesen!")
    	  return
      end
    	 end
    	 local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
    	 local vnum_list = result[1]
    	 local name_list = result[2]
    	 if table.getn(vnum_list) == 0 then
      say("Du hast keine Fertigkeiten")
      return
    	 end
    	 say("Fertigkeit Auswählen")
    	 say("")
    	 local menu_list = {}
    	 table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
    	 table.insert(menu_list, "Abbrechen")
    	 local s=select_table(menu_list)
    	 if table.getn(menu_list) == s then
      return
    	 end
    	 local skill_name=name_list[s]
    	 local skill_vnum=vnum_list[s]
    	 local skill_level = pc.get_skill_level(skill_vnum)
    	 local cur_alignment = pc.get_real_alignment()
    	 local need_alignment = 1000+500*(skill_level-30)
    	 test_chat("Momentaner Rang: "..cur_alignment)
    	 test_chat("Benötigter Rang: "..need_alignment)
    	 local title=string.format("%s auf Großmeister  %d lesen", skill_name, skill_level-30+1)
      if pc.count_item(50513) != seelicount then
      say("Stfu Buguser!")
      return
      end
      item.remove()
    	 say_title(title)
    	 say("Das lesen eines Seelensteines")
    	 say("kostet Rangpunke.")
    	 say("")
    	 if cur_alignment<-19000+need_alignment then
      say_reward("Du hast zu wenig Rang!")
      return
    	 end
    	 if cur_alignment<0 then
      say_reward(string.format("Benötigter Rang: %d -> %d", need_alignment, need_alignment*2))
      say_reward("Beim klappen des Seelensteins wird dir")
    			  say_reward("das doppelte an Rangpunkten abgezoegn!")
      need_alignment=need_alignment*2
    	 elseif cur_alignment<need_alignment then
      say_reward(string.format("Benötigter Rang: %d", need_alignment))
      say_reward("Beim klappen des Seelensteins wird dir")
    			  say_reward("das doppelte an Rangpunkten abgezoegn!")
    	 else
      say_reward(string.format("Benötigter Rang: %d", need_alignment))
    	 end
    	 say("")
    	 local s=select("Lesen", "Abbrechen")
    	 if s==2 then
      return
    	 end
    
    	 if cur_alignment>=0 and cur_alignment<need_alignment then
      say_title(string.format("%s -Bestätigen", title))
      say("Das Lesen eines Seelensteines kostet Rang,")
      say("wenn du diesen Seelenstein ließt,")
      say("kommst du in -Rang")
      say("Bitte Bestätige das du diesen Seelenstein")
    say("wirklich lesen möchtest!")
      say("")
      say_reward("Bestätigen")
      say("")
      say("Bitte gebe 'Trainieren' ein!")
      local s=input()
      if s!="Trainieren" then
    	  return
      end
    	 end
    	 if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
      if pc.is_skill_book_no_delay() then
    	  pc.remove_skill_book_no_delay()
      else
    	  say("Seelitest1")
    	  return
      end
    	 end
    	 pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
    	 if need_alignment>0 then
      if pc.learn_grand_master_skill(skill_vnum) then
    	  pc.change_alignment(-need_alignment)
    
    	  say_title(string.format("%s -Erfolgreich", title))
    	  if 40 == pc.get_skill_level(skill_vnum) then
       say(string.format("%s Seelitest2.", skill_name))
    	  else
       say(string.format("Dein Seelenstein war Erfolgreich!", skill_name, skill_level-30+1+1))
    	  end
    	  say("")
    	  say_reward("Erfolgreich!")
    	  say_reward(string.format("Kosten an Rang: %d ", need_alignment))
    	  say("")
      else
    	  say_title(string.format("%s -Fehlgeschlagen", title))
    	  say("Dein Seelenstein hat nicht geklappt.")
    	  say("")
    	  say_reward("Fehlgeschlagen!")
    	  say("")
    	  pc.change_alignment(-number(need_alignment/3, need_alignment/2))
      end
    	 end
    end
    function BuildGrandMasterSkillList(job, group)
    	 GRAND_MASTER_SKILL_LEVEL = 30
    	 PERFECT_MASTER_SKILL_LEVEL = 40
    	 local skill_list = special.active_skill_list[job+1][group]
    	 local ret_vnum_list = {}
    	 local ret_name_list = {}
    	 -- test_chat(string.format("job=%d, group=%d", job, group))
    	 table.foreach(skill_list,
    	 function(i, skill_vnum)
      local skill_level = pc.get_skill_level(skill_vnum)
      -- test_chat(string.format("[%d]=%d", skill_vnum, skill_level))
      if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
    	  table.insert(ret_vnum_list, skill_vnum)
    	  local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
    	  if name == nil then name=skill_vnum end
    	  table.insert(ret_name_list, name)
      end
    	 end)
    	 return {ret_vnum_list, ret_name_list}
      end
    end
    end
    

    Sería esto, no me dió tiempo probarla, pero si tiene errores y cuando regrese nadie te ha podido ayudar, pues te ayudo =)

  10. 
    

    quest skill_reset2 begin

    state start begin

    when oldwoman.chat."Restablecer habilidades" begin

    local cost = 200000 + pc.level * 40

    local s = 0

    local STAT_RESET_SAY1=

    say_title ("Anciana: ")

    say ("Hola, has venido al sitio correcto.Tus ojos" )

    say ("muestran mucho dolor.Permito a las personas" )

    say ("olvidar sus habilidades para que puedan empezar" )

    say ("de nuevo.!Quieres olvidar tus habilidades y" )

    say ("empezar de nuevo? Cuesta " .. cost .. "Yang.[ENTER]" )

    local STAT_RESET_SAY2=

    say ("Desea restablecer sus Habilidades?" )

    say(STAT_RESET_SAY2)

    s = select ( "Resetear Habilidades" , "No restaurar" )

    if s==1 then

     

    say(STAT_RESET_DETAIL_SAY2)

    say ("Despues de resetear tus habilidades" )

    say ("Debes desloguear tu cuenta y entrar de nuevo" )

    say ("para poder pedir tus habilidades")

    s = select ( "Resetear Habilidades" , "No restaurar" ) + 1

    end

    if s == 2 then

    if pc.get_level() < 30 then

    if pc.money < cost then

    say(locale.oldwoman.not_enough_money)

    else

    pc.changegold(-cost)

    pc.set_skill_group(0)

    end

    else

    say_title("Lo siento")

    say("Solo puedo cambiarte tus habilidades")

    say("Si eres menor del nivel 30")

    say("La única opcion que tienes es utilizar")

    say("El reajuste de estado")

    say_title("Buena Suerte")

    end

    end

    end

    end

    end

  11. Pues asi me imagino que te serviria:

     

    quest sube_niveles begin
    	state start begin
    		when login with pc.get_level() == 100 begin
    			while pc.get_level() < 250 do
    				local explvlup = pc.get_next_exp()
    				pc.give_exp2(explvlup)
    				chat("Has sido subido al nivel 250")
    			end
    		end
    	end
    end

    Exacto, pero creo que sería mejor

     

    when levelup with pc.get_level() == 100 begin
    

    para que de esta manera, no haya que desconectarse y volverse a conectar para que se active la quest.

     

    quest sube_niveles begin
        state start begin
    	    when levelup with pc.get_level() == 100 begin
    		    while pc.get_level() < 250 do
    			    pc.give_exp2(pc.get_next_exp())
    			    chat("Has sido subido al nivel 250")
    		    end
    	    end
        end
    end
    
  12. prueba así entonces:

     

    quest yang_missao_I begin
    state start begin
      when login or levelup with pc.get_level() >= 5 begin
       set_state(missaolv5)
      end
    end
    state missaolv5 begin
      when letter begin
       send_letter("Missão de Caça I")
      end
      when enter begin
          pc.setqf("contagem", 0)
      end
      when button or info begin
       say_title("Missão de Caça I")
       say("")
       say("Objetivo:")
       say_reward("Matar 10 Lobo Alfa Azul Feroz.")
       say("")
       say("Recompensa:")
       say_reward("100.000 Yangs.")
      end
      when 175.kill begin
       pc.setqf("contagem", pc.getqf("contagem") +1)
       q.set_counter("Lobo Alfa Azul Feroz", 10 - pc.getqf("contagem"))
       if pc.getqf("contagem") >= 10 then
    		set_state(missaolv5acabada)
       end
      end
    end
    state missaolv5acabada begin
      when letter begin
       send_letter("Missão de Caça I - Finalizada")
      end
      when button or info begin
       say_title("Missão de Caça I - Finalizada")
       say("")
       say("Parabéns por completares a missão!")
       say("")
       say_reward("Recebeste 100.000 Yangs.")
       pc.change_gold(100000)
       clear_letter()
       set_state(acabou)
       set_quest_state("yang_missao_II", "missaolv10")
      end
    end
    state acabou begin
    end
    end
    
  13. 
    

    quest matanza begin

    state start begin

    when kill with npc.is_pc() and pc.get_empire() ~= npc.get_empire() begin

    pc.setqf("asesinatos", pc.getqf("asesinatos")+1)

    chat("Has matado " .. pc.getqf("asesinatos") .. " enemigos")

    chat("Te falta acabar con " .. 100 - pc.getqf("asesinatos") .. " para recibir el premio"

    if pc.getqf("asesinatos") == 100 then

    pc.give_item2(vnum) --Aca se le coloca el vnum del item

    pc.setqf("asesinatos", 0)

    end

    end

    end

    end

  14. 
    

    quest yang_missao_I begin

    state start begin

    when login or levelup with pc.get_level() >= 5 begin

    set_state(missaolv5)

    end

    end

    state missaolv5 begin

    when letter begin

    send_letter("Missão de Caça I")

    end

    when button or info begin

    say_title("Missão de Caça I")

    say("")

    say("Objetivo:")

    say_reward("Matar 10 Lobo Alfa Azul Feroz.")

    say("")

    say("Recompensa:")

    say_reward("100.000 Yangs.")

    end

    when 175.kill begin

    pc.setqf("contagem", pc.getqf("contagem") +1)

    q.set_counter("Lobo Alfa Azul Feroz", 10 - pc.getqf("contagem"))

    if pc.getqf("contagem") >= 10 then

    set_state(missaolv5acabada)

    end

    end

    end

    state missaolv5acabada begin

    when letter begin

    send_letter("Missão de Caça I - Finalizada")

    end

    when button or info begin

    say_title("Missão de Caça I - Finalizada")

    say("")

    say("Parabéns por completares a missão!")

    say("")

    say_reward("Recebeste 100.000 Yangs.")

    pc.change_gold(100000)

    clear_letter()

    set_state(acabou)

    set_quest_state("yang_missao_II", "missaolv10")

    end

    end

    state acabou begin

    end

    end

  15. Recuerda que tienes que buscar:

     

    QUEST_SCROLL_TYPE_KILL_ANOTHER_EMPIRE = 2
    

    y justo debajo agregar esto:

     

    bonus={}
    bonus.trans= {
    [1]="Maximo HP",
    [2]="Maximo SP",
    [3]="Vitalidad",
    [4]="Inteligencia",
    [5]="Fuerza",
    [6]="Dextresa",
    [7]="Velocidad de Ataque",
    [8]="Velocidad de Movimento",
    [9]="Velocidad de hechizo",
    [10]="Regeneracion HP",
    [11]="Regeneracion SP",
    [12]="Inmune a Apagon",
    [13]="Posibilidad de Envenenar",
    [14]="Posibilidad de Retardo",
    [15]="Fuerza Ataque Critico",
    [16]="Fuerza de penetracion",
    [17]="Fuerza contra Medio Humano",
    [18]="Fuerza contra animales",
    [19]="Fuerza contra Orcos",
    [20]="Fuerza contra Misticos",
    [21]="Fuerza contra NoMuerto",
    [22]="Fuerza contra Demonios",
    [23]="Daño absorbido por HP",
    [24]="Daño absorbido por SP",
    [25]="Posibilidad de robar el HP del enemigo",
    [26]="Posibilidad de robar el SP del enemigo",
    [27]="Bloquear Ataque directo al Cuerpo",
    [28]="Posibilidad para esquivar las flechas",
    [29]="Defensa Espada",
    [30]="Defensa dos manos",
    [31]="Defensa Daga",
    [32]="Defensa Campana",
    [33]="Defensa Fan",
    [34]="Defensa Flecha",
    [35]="Resistencia Fuego",
    [36]="Defensa Rayo",
    [37]="Defencia Magia",
    [38]="Resistencia Viento",
    [39]="Probabilidad para reflejar ataque al cuerpo ",
    [40]="Reflectar Maldicion",
    [41]="Resistencia Veneno",
    [42]="Posibilidad de restaurar SP",
    [43]="Posibilidad de bonus de EXP",
    [44]="Posibilidad de drop de Yang",
    [45]="Posibilidad de doble drop de objetos",
    [46]="Trank effekt zuwachs",
    [47]="Posibilidad de restaurar HP",
    [48]="Inmune contra Apagon",
    [49]="Inmune a retardo",
    [50]="Inmune a caida",
    [51]="Kill",
    [52]="Aumentar la puntería del arco",
    [53]="Aumento de valore de ataque",
    [54]="Aumento de defensa",
    [55]="Aumento de valore de ataque magico",
    [56]="Aumento de defensa mágica",
    [57]="Posibilidad de maldecir",
    [58]="Max resistencia",
    [59]="Fuerza contra Guerrero",
    [60]="Fuerza contra Ninja",
    [61]="Fuerza contra Sura",
    [62]="Fuerza contra Shamane",
    [63]="Fuerza contra Moustro",
    }
    

    Debes de colocar todo como está ahí, revisa que lo hayas puesto así.

     

    **Es necesario un reinicio del servidor, para que el servidor reconozca esta parte.

  16. Alguna vez has tenido la necesidad de querer probar como estan los bonus de tu servidor, sin la necesidad de tener que estar dopando continuamente los objetos para que te salgan los bonos indicados?

     

    Pues este es el post que buscabas, TestingAttacks, es una quest que te permite obtener una bonificación para tu personaje temporalmente, sin llevar ningún tipo de item puesto, y fue diseñada especialmente para realizar pruebas en los servidores.

     

    1-Esta quest tiene un pre-requisito, y es el sistema que creo Noa, hace poco. Si desean implementar la quest, deberán haber realizado lo de este post antes:

     

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

     

    *Es necesario un reinicio del servidor, para que el servidor reconozca la parte del questlib.

     

    2-Luego solo queda implementarla, como cualquier otra quest.

     

    quest testing_attacks begin
    state start begin
      when 71056.use begin
       say_title("Hola, selecciona el atributo que deseas ponerte")
       local i = 1
       local k = 0
      
       repeat
    	if i == 61 then
    	 k = select(bonus.trans[i], bonus.trans[i+1], bonus.trans[i+2], "Salir") --última Linea
    	else
    	 k = select(bonus.trans[i], bonus.trans[i+1], bonus.trans[i+2], bonus.trans[i+3], "Mas", "Salir") --Las demás lineas
    	end
    	i = i + 4
       until (k != 5)
      
       if (k == 6 or (i == 65 and k == 4)) then
    	return
       else
    	say("Digite la Cantidad de " .. bonus.trans[i - 4 + (k - 1)])
    	cantidad = tonumber(input())
    	say("Digite los miutos, que durara con ese efecto")
    	tiempo = tonumber(input())
    	affect.add_collect(i - 4 + (k - 1), cantidad, tiempo*60) --60¦~
       end
      end
    end
    end
    
×
×
  • Crear nuevo...