Jump to content

skill_group.quest "La Educación"


iluvatar

Recommended Posts

La misión que entrega las habilidades a nivel 5, con el mismo texto que el oficial, integrado en la quest para que trabaje independiente del locale.lua. Le agregue algunos comentarios para que los que entiendan más de quest sepan que le agregue y como se hacen funcionar, así podran practicarlo ellos mismos.

 

 

quest skill_group begin
	state start begin
  when login or levelup with pc.level>=5 and pc.skillgroup == 0 begin
	  set_state(run)
  end
	end
	state run begin
  when login with pc.get_skill_group()!=0 begin
	  restart_quest()
  end
  when letter with pc.get_skill_group()==0 begin
	  send_letter("El entrenamiento")
   local job=pc.get_job()
	  if job==0 then
	local v=pc_find_skill_teacher_vid(1)
	if 0!=v then target.vid("teacher1", v, "corporal") end
	local v=pc_find_skill_teacher_vid(2)
	if 0!=v then target.vid("teacher2", v, "mental") end
	  elseif job==1 then
	local v=pc_find_skill_teacher_vid(1)
	if 0!=v then target.vid("teacher3", v, "dagas") end
	local v=pc_find_skill_teacher_vid(2)
	if 0!=v then target.vid("teacher4", v, "arquero") end
	  elseif job==2 then
	local v=pc_find_skill_teacher_vid(1)
	if 0!=v then target.vid("teacher5", v, "armas") end
	local v=pc_find_skill_teacher_vid(2)
	if 0!=v then target.vid("teacher6", v, "magia_negra") end
	  elseif job==3 then
	local v=pc_find_skill_teacher_vid(1)
	if 0!=v then target.vid("teacher7", v, "dragón") end
	local v=pc_find_skill_teacher_vid(2)
	if 0!=v then target.vid("teacher8", v, "curación") end
	  end
  end
  when leave begin
	  target.delete("teacher1")
	  target.delete("teacher2")
	  target.delete("teacher3")
	  target.delete("teacher4")
	  target.delete("teacher5")
	  target.delete("teacher6")
	  target.delete("teacher7")
	  target.delete("teacher8")
  end
  when button or info begin
  -- se crea el arreglo intro, que contiene las cadenas de texto segun el tipo de personaje
  local intro = {
   "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento de Guerrero:[/COLOR][ENTER]Si admiras a los guerreros por su velocidad y [ENTER]reiterados ataques, recomiendo el maestro de[ENTER]fuerza corporal. Si quieres derrotar a grupos[ENTER]enteros de monstruos con un Sólo ataque, [ENTER]recomiendo el maestro de lucha mental. Te[ENTER]estamos esperando cerca de la plaza de la aldea.[ENTER]",
   "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento de Ninja:[/COLOR][ENTER]Si quieres llamarte a ti mismo un excepcional [ENTER]arquero, entonces aprende sobre el tiro con arco. [ENTER]Si estás preparado para llevar a cabo [ENTER]varias misiones en las sombras como un [ENTER]ninja, entonces la lucha con hoja es lo tuyo. [ENTER]Estamos esperándote cerca de la plaza de la [ENTER]aldea. [ENTER]",
   "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento del Sura:[/COLOR][ENTER]¿Quieres convertirte en un verdadero maestro de [ENTER]magia negra y en guerrero demoníaco? Entonces [ENTER]recomiendo el arte de armamento mágico. [ENTER]Sin embargo, si deseas ser temido [ENTER]como un brujo de la oscuridad y de las [ENTER]maldiciones, entonces te recomiendo el arte de[ENTER]magia negra. Te esperamos cerca de la[ENTER] plaza de la aldea.[ENTER]",
   "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento de Chamán:[/COLOR][ENTER]Si quieres convertirte en un chamán que controla [ENTER]la magia y las bendiciones, entonces elige el [ENTER]entrenamiento de la Fuerza Dragón. Sin embargo, [ENTER]si quieres mitigar el dolor y sufrimiento de [ENTER]otros, te recomeindo el entrenamiento de Fuerza[ENTER]Curación. Te estamos esperandocerca de la plaza[ENTER]de la aldea.[ENTER]"
   }
   -- acá se llama a la cadena que corresponda, ejemplo con un guerrero (tipo 0): intro[0+1] = intro[1] = la primera linea de nuestro arreglo anterior.
   say(intro[pc.job+1])
   --setleftimage("")
   --setmapcenterposition(-200, 0)
   select("Confirmar")
   setskin(NOWINDOW)
  end
function join(job, group, title, text, error_title, error_msg)
-- se crea la función para las variables y el texto que se mostrará luego al dar click al npc que da las habilidades.
-- le agregué error_title, para poder mostrarla abajo como un "say_title"
	 local pc_job=pc.get_job()
	 if pc_job!=job then
	say_title(error_title)
	   say(error_msg)
	   if pc_job==0 then
	 say_reward("Un guerrero puede elegir entre un entrenamiento ")
	 say_reward("de lucha corporal o lucha mental.")
	elseif pc_job==1 then
	 say_reward("Un ninja puede elegir entre un entrenamiento de ")
	 say_reward("lucha con hoja o tiro con arco.")
	   elseif pc_job==2 then
	 say_reward("Un sura puede elegir entre un entrenamiento de ")
	 say_reward("armamento o magia negra.")
	   elseif pc_job==3 then
	 say_reward("Un chamán puede elegir entre un entrenamiento de ")
	 say_reward("fuerza dragón o fuerza curación. ")
	  end
	  say("")
  else
	  say_title(title)
	  say(text)
	  local s=select("Emepezár", "Más tarde")
	  if 1==s then
   if pc.get_job()==job and pc.get_skill_group()==0 then
	   set_state("start")
	   pc.set_skill_group(group)
	pc.clear_skill()
	char_log(0, "CLEAR_SKILL", "Clear Skill By Skill Teacher")
	return true
   else
	   test_chat("npc_is_same_job:"..bool_to_str(npc_is_same_job()))
	   test_chat("pc.get_skill_group:"..pc.get_skill_group())
	   test_chat("pc_job:"..pc.get_job())
   end
	  end
  end
  return false
end
when teacher1.target.click or
  skill_group1_1.chat."Entrenamiento de la Fuerza Corporal" or
  skill_group2_1.chat."Entrenamiento de la Fuerza Corporal" or
  skill_group3_1.chat."Entrenamiento de la Fuerza Corporal"
  begin
  target.delete("teacher1")
  -- a continuación se asignan los valores y las cadenas de texto a la función join creada arriba.
  -- recordar: join(job, group, title, text, error_title, error_msg)
  if skill_group.join(0, 1, "Entrenamiento de la Fuerza Corporal",
  "El entrenamiento de la fuerza corporal es útil [ENTER]para un combate rápido y enseña un método de [ENTER]combate cara a cara con ataques básicos [ENTER]mejorados. [ENTER]",
  "Entrenamiento equivocado.", "Sólo los guerreros pueden elegir el [ENTER]entrenamiento de fuerza corporal. [ENTER]") then
   say_title("Has elegido el entrenamiento de la fuerza corporal.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher2.target.click or
  skill_group1_2.chat."Entrenamiento de la Lucha Mental" or
  skill_group2_2.chat."Entrenamiento de la Lucha Mental" or
  skill_group3_2.chat."Entrenamiento de la Lucha Mental"
  begin
	 target.delete("teacher2")
  if skill_group.join(0, 2, "Entrenamiento de la Lucha Mental",
  "El entrenamiento de la lucha mental enseña a [ENTER]atacar al enemigo con fuertes ataques de chi y [ENTER]cómo defenderte de sus ataques.[ENTER]",
  "Entrenamiento incorrecto.", "Sólo los guerreros pueden elegir el [ENTER]entrenamiento de fuerza mental. [ENTER]") then
   say_title("Has elegido el entrenamiento de lucha mental.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher3.target.click or
  skill_group1_3.chat."Entrenamiento de lucha con hoja" or
  skill_group2_3.chat."Entrenamiento de lucha con hoja" or
  skill_group3_3.chat."Entrenamiento de lucha con hoja"
  begin
	 target.delete("teacher3")
  if skill_group.join(1, 1, "Entrenamiento de lucha con hoja",
   "En el entrenamiento de la lucha con hoja, un [ENTER]ninja aprende cómo golpear el punto débil de su[ENTER]oponente con golpes rápidos y mortales.[ENTER]",
   "Entrenamiento equivocado.", "Sólo los ninjas pueden elegir el [ENTER]entrenamiento de lucha con hoja. [ENTER]") then
   say_title("Has elegido el entrenamiento de lucha con hoja.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher4.target.click or
  skill_group1_4.chat."Entrenamiento arquero" or
  skill_group2_4.chat."Entrenamiento arquero" or
  skill_group3_4.chat."Entrenamiento arquero"
  begin
	 target.delete("teacher4")
  if skill_group.join(1, 2, "Entrenamiento arquero",
   "En el entrenamiento arquero, un ninja aprende a[ENTER]manejar su arco y a luchar contra el enemigo con[ENTER]precisión en la distancia.[ENTER]",
   "Entrenamiento incorrecto.", "Sólo los ninjas pueden elegir el [ENTER]entrenamiento arquero. [ENTER]") then
   say_title("Has elegido el entrenamiento arquero.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher5.target.click or
  skill_group1_5.chat."Entrenamiento de armamento" or
  skill_group2_5.chat."Entrenamiento de armamento" or
  skill_group3_5.chat."Entrenamiento de armamento"
  begin
	 target.delete("teacher5")
  if skill_group.join(2, 1,
   "Entrenamiento de armamento",
   "En el entrenamiento de armas mágicas, practicas[ENTER]en el arte de los golpes poderosos contra enemigos[ENTER]debilitados, usando espadas malditas.[ENTER]",
   "Entrenamiento equivocado.", "Sólo los suras pueden elegir el [ENTER]entrenamiento de armas mágicas. [ENTER]") then
   say_title("Has elegido el entrenamiento de armamento.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher6.target.click or
  skill_group1_6.chat."Entrenamiento de magia negra" or
  skill_group2_6.chat."Entrenamiento de magia negra" or
  skill_group3_6.chat."Entrenamiento de magia negra"
  begin
	 target.delete("teacher6")
  if skill_group.join(2, 2,
   "Entrenamiento de magia negra",
   "En el entrenamiento de magia negra, aprendes el [ENTER]arte de debilitar a tus enemigos con magia negra [ENTER]a distancia.[ENTER]",
   "Entrenamiento erroneo.", "Sólo los suras pueden elegir el [ENTER]entrenamiento de magia negra. [ENTER]") then
   say_title("Has elegido el entrenamiento de magia negra.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher7.target.click or
  skill_group1_7.chat."Entrenamiento de la Fuerza Dragón" or
  skill_group2_7.chat."Entrenamiento de la Fuerza Dragón" or
  skill_group3_7.chat."Entrenamiento de la Fuerza Dragón"
  begin
	 target.delete("teacher7")
  if skill_group.join(3, 1,
   "Entrenamiento de la Fuerza Dragón",
   "El entrenamiento de la fuerza dragón usa los [ENTER]fuertes ataques de fuego del Dios Dragón al igual[ENTER]que magia de apoyo que puede dar al grupo la[ENTER]protección del Dios Dragón.[ENTER]",
   "Entrenamiento incorrecto.", "Lo siento. Sólo los chamanes pueden escoger el[ENTER]entrenamiento de la Fuerza Dragón.") then
   say_title("Has seleccionado el entrenamiento de la ")
   say_title("fuerza dragón.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
when teacher8.target.click or
  skill_group1_8.chat."Entrenamiento de la Fuerza Curación" or
  skill_group2_8.chat."Entrenamiento de la Fuerza Curación" or
  skill_group3_8.chat."Entrenamiento de la Fuerza Curación"
  begin
	 target.delete("teacher8")
  if skill_group.join(3, 2,
   "Entrenamiento de la Fuerza Curación",
   "Con el entrenamiento de la Fuerza Curación, [ENTER]aprendes a aturdir al enemigo con descargas[ENTER]eléctricas. También puedes aprender a curar a [ENTER]miembros del grupo y darles fuerza adicional.[ENTER]",
   "Entrenamiento incorrecto.", "Lo siento. Sólo los chamanes pueden escoger el[ENTER]entrenamiento de la Fuerza Curación.") then
   say_title("Has elegido el entrenamiento de curación.")
   say("¡Bienvenido!")
   if not pc.is_clear_skill_group() then
	local point = pc.level -1
	say("Debido a tu decisión de tomar clases, consigues"..point.."")
	say("puntos de habilidad. Puedes usarlos para la ")
	say("habilidad que quieras. ")
	say("")
	say_reward("Has recibido "..point.." puntos de habilidad. ")
	say("")
   else
	return
   end
   clear_letter()
  end
end
	end
end

Cualquier error comunicarlo.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...