Voila
quest horse_summon begin
state start begin
function get_horse_summon_prob_pct()
local prob = {10,15,20,30,40,50,60,70,80,90,100}
local skill_level = pc.get_skill_level(131) + 1
return prob[skill_level]
end
-----*****
-----***** Richiami cavalli persi
-----*****
-----***** Cavallo Principiante
when 20349.chat."Nouveau dessin de cheval" with horse.get_grade()==1 and pc.countitem("50051")<1 begin
--- l
say_title("Le palefrenier:")
say("Vous avez perdu le dessin de cheval! Je peux vous")
say("en donner un nouveau pour 100.000 yangs.")
local b=select("D'accord", "Refuser")
if 1==b then
if pc.money>=100000 then
pc.changemoney(-100000)
--- l
say_title("Le palefrenier:")
say("Voici votre nouveau dessin de cheval!")
pc.give_item2("50051", 1)
else
--- l
say_title("Le palefrenier:")
say("Vous n'avez pas assez de yangs.")
end
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
-----***** Cavallo Medio
when 20349.chat."Nouveau livre cheval de combat" with horse.get_grade()==2 and pc.countitem("50052")<1 begin
--- l
say_title("Le palefrenier:")
say("Vous avez perdu le livre cheval de combat! Je peux")
say("vous en donner un nouveau pour 500.000 yangs.")
local b=select("D'accord", "Refuser")
if 1==b then
if pc.money>=500000 then
pc.changemoney(-500000)
--- l
say_title("Le palefrenier:")
say("Voici votre nouveau livre cheval de combat.")
pc.give_item2("50052", 1)
else
--- l
say_title("Le palefrenier:")
say("Vous n'avez pas assez de yangs.")
end
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
-----***** Cavallo Esperto
when 20349.chat."Nouveau livre équit. militaire" with horse.get_grade()==3 and pc.countitem("50053")<1 begin
--- l
say_title("Le palefrenier:")
say("Vous avez perdu le livre équit. militaire! Je peux")
say("vous en donner un nouveau pour 1.000.000 yangs.")
local b=select("D'accord", "Refuser")
if 1==b then
if pc.money>=1000000 then
pc.changemoney(-1000000)
--- l
say_title("Le palefrenier:")
say("Voici votre nouveau livre équit. militaire.")
pc.give_item2("50053", 1)
else
--- l
say_title("Le palefrenier:")
say("Vous n'avez pas assez de yangs.")
end
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
-----*****
-----***** Uso richiami cavalli sbagliato
-----*****
when 50051.use or 50052.use or 50053.use with horse.get_grade() == 0 begin
say_title("Le palefrenier:")
say("Vous devez posseder un cheval pour utiliser ceci.[ENTER]")
end
when 50051.use with horse.get_grade() == 2 or horse.get_grade() == 3 begin
say_title("Le palefrenier:")
say("Vous n'utilisez pas l'appel cheval adapté.[ENTER]")
end
when 50052.use with horse.get_grade() == 1 or horse.get_grade() == 3 begin
say_title("Le palefrenier:")
say("Vous n'utilisez pas l'appel cheval adapté.[ENTER]")
end
when 50053.use with horse.get_level() != 21 begin
say_title("Le palefrenier:")
say("Vous n'utilisez pas l'appel cheval adapté.[ENTER]")
end
-----*****
-----***** Uso richiami cavalli corretto
-----*****
-----***** Cavallo Principiante
when 50051.use with horse.get_grade() == 1 begin
say_title("Le palefrenier:")
if PetSystem.IsPetLevel(horse.get_level()) then
say("Vous avez fait n'importe quoi avec les")
say("commande GM. Mettez le niveau du cheval")
say("puis essayez à nouveau.[ENTER]")
return
end
if pc.getsp() >= 100 then
if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
say_reward("Le cheval pour débutant a été appelé.")
horse.summon()
else
say_reward("Malheuresement vous n'avez pas réussi à ")
say_reward("appeler le cheval pour débutants. Vous pouvez")
say_reward("améliorer votre compétence d'appel d'une")
say_reward("monture en vous entrainant.")
end
pc.change_sp(-100)
else
say_reward("Votre Force mentale ne suffit pas. Pour pouvoir")
say_reward("appeler le cheval pour débutants, il vous faut")
say_reward("une Force mentale d'au moins 100.")
end
end
-----***** Cavallo Medio
when 50052.use with horse.get_grade() == 2 begin
say_title("Le palefrenier:")
if PetSystem.IsPetLevel(horse.get_level()) then
say("Vous avez fait n'importe quoi avec les")
say("commande GM. Mettez le niveau du cheval")
say("puis essayez à nouveau.[ENTER]")
return
end
if pc.getsp() >= 200 then
if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
say_reward("Un cheval de niveau avancé a été appelé.")
horse.summon()
else
say_reward("Vous n'avez pas réussi à appeler un cheval de")
say_reward("niveau avancé. Vous pouvez accroitre vos chances")
say_reward("de succès en améliorant votre compétence d'appel")
say_reward("de chevaux.")
end
pc.change_sp(-200)
else
say_reward("Votre force mentale n'est pas assez élevée. Vous")
say_reward("devez avoir une force mentale de 200 pour appeler")
say_reward("un cheval de niveau avancé.")
end
end
-----***** Cavallo Esperto
when 50053.use with horse.get_level() == 21 begin
say_title("Le palefrenier:")
if PetSystem.IsPetLevel(horse.get_level()) then
say("Vous avez fait n'importe quoi avec les")
say("commande GM. Mettez le niveau du cheval")
say("puis essayez à nouveau.[ENTER]")
return
end
if pc.getsp() >= 300 then
if number(1, 100) <= horse_summon.get_horse_summon_prob_pct() then
say("Un cheval de niveau expert a été appelé.[ENTER]")
horse.summon()
else
say_reward("Vous n'avez pas réussi à appeler un cheval de")
say_reward("niveau avancé. Vous pouvez accroitre vos chances")
say_reward("de succès en améliorant votre compétence d'appel")
say_reward("de chevaux.")
end
pc.change_sp(-300)
else
say_reward("Malheuresement vous n'avez pas réussi à ")
say_reward("appeler le cheval militaire. Vous pouvez")
say_reward("améliorer votre compétence d'appel d'une")
say_reward("monture en vous entrainant.")
end
end
-----***** Richiamo Pet
when 53001.use or 53002.use or 53003.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use begin
if not PetSystem.IsActive() then
local PetNumber = {[53001]=1,[53002]=2,[53003]=3,[53005]=4,[53006]=5,[53007]=6,[53008]=7,[53009]=8}
local petIndex = PetNumber[item.get_vnum()]
if horse.is_dead() then
say_title("Information Familier:")
say("Vous ne pouvez pas appeler l'animal avec le cheval mort.")
say("Avant ressuscite le cheval.[ENTER]")
return
end
local horse_lev = horse.get_level()
local horse_name = horse.get_name()
PetSystem.SetActivePet(petIndex)
PetSystem.AddBonus(petIndex)
PetSystem.SetHorseData(PetSystem[petIndex].Level, "Lv"..PetSystem.GetLevel(petIndex).." "..PetSystem[petIndex].Name)
pet.summon()
PetSystem.SetHorseData(horse_lev, horse_name)
cleartimer("give_exp")
loop_timer("give_exp", PetSystem.UpdateFrequency)
chat(""..PetSystem[petIndex].Name.." a été appelé.")
else
PetSystem.PetBack()
end
end
-----*****
-----***** Roba varia per Pet
-----*****
when 30130.use begin
if not PetSystem.IsActive() then
chat("Vous devez appeler votre familier pour lui donner de l'expérence.")
return
end
local PetHasGotExp = PetSystem.GiveExp(PetSystem.GetActivePet(), PetSystem.ItemExp)
if not PetHasGotExp then
chat("Votre familier est au level maximum.")
else
chat("Votre familier à reçu "..PetSystem.ItemExp.." points d'expériences.")
pc.remove_item(item.get_vnum(), 1)
end
end
when login begin
if PetSystem.IsActive() then
if pc.count_item(PetSystem[PetSystem.GetActivePet()].Item) != 0 and not horse.is_dead() then
local horse_lev = horse.get_level()
local horse_name = horse.get_name()
local PetIndex = PetSystem.GetActivePet()
PetSystem.SetHorseData(PetSystem[PetIndex].Level, "Lv"..PetSystem.GetLevel(PetIndex).." "..PetSystem[PetIndex].Name)
pet.summon()
PetSystem.SetHorseData(horse_lev, horse_name)
loop_timer("give_exp", PetSystem.UpdateFrequency)
else
PetSystem.SetInactive()
timer("remove_bonus", 2)
end
end
pc.setqf("current_exp", pc.get_exp())
end
when remove_bonus.timer begin
PetSystem.RemoveBonus()
end
when give_exp.timer begin
if PetSystem.IsActive() and not PetSystem.IsExpBlocked() then
local gained_exp = pc.get_exp()-pc.getqf("current_exp")
if gained_exp < 0 then
pc.setqf("current_exp", pc.get_exp())
return
end
local pet_exp = math.floor(gained_exp*3/100)
if pet_exp != 0 then
local PetHasGotExp = PetSystem.GiveExp(PetSystem.GetActivePet(), pet_exp)
if PetHasGotExp then
pc.give_exp2(-pet_exp)
pc.setqf("current_exp", pc.get_exp())
end
end
end
end
when button or info begin
say_title("Nouvelle Habilité")
say("Votre familier a débloquer une")
say("nouvelle compétence pour en savoir")
say("plus allez dans le menu 'Gestion Habilité'.[ENTER]")
q.done()
end
-----***** Menu Pet
when 20120.click begin PetSystem.ShowMenu(1) end
when 20121.click begin PetSystem.ShowMenu(1) end
when 20122.click begin PetSystem.ShowMenu(1) end
when 20123.click begin PetSystem.ShowMenu(2) end
when 20124.click begin PetSystem.ShowMenu(2) end
when 20125.click begin PetSystem.ShowMenu(2) end
when 20126.click begin PetSystem.ShowMenu(3) end
when 20127.click begin PetSystem.ShowMenu(3) end
when 20128.click begin PetSystem.ShowMenu(3) end
when 20129.click begin PetSystem.ShowMenu(4) end
when 20130.click begin PetSystem.ShowMenu(4) end
when 20131.click begin PetSystem.ShowMenu(4) end
when 20132.click begin PetSystem.ShowMenu(5) end
when 20133.click begin PetSystem.ShowMenu(5) end
when 20134.click begin PetSystem.ShowMenu(5) end
when 20135.click begin PetSystem.ShowMenu(6) end
when 20136.click begin PetSystem.ShowMenu(6) end
when 20137.click begin PetSystem.ShowMenu(6) end
when 20138.click begin PetSystem.ShowMenu(7) end
when 20139.click begin PetSystem.ShowMenu(7) end
when 20140.click begin PetSystem.ShowMenu(7) end
when 20141.click begin PetSystem.ShowMenu(8) end
when 20142.click begin PetSystem.ShowMenu(8) end
when 20143.click begin PetSystem.ShowMenu(8) end
end
end