PHP Code:
quest energy_system begin
state start begin
when alchemist.chat.locale.energy_system.title_1 begin
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_1)
wait()
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_2)
wait()
say_title("System:")
say("")
say (locale.energy_system.say_3)
setstate (can_make)
end
end
state can_make begin
function setting ()
return
{
["prob_acc_table"] =
{
["35to50"] = {30,55,70,80,90,95,97,98,99,100},
["51to70"] = {20,40,60,75,85,91,96,98,99,100},
["upto70"] = {10,25,45,65,80,88,94,97,99,100}
},
["item_num_table"] ={0,1,2,3,4,6,8,10,12,15},
["energy_stone"] = 51001,
["charging_stone"] = 51002,
}
end
function getItemNum ( str, r )
local setting = energy_system.setting()
for i = 1, 10 do
if r < setting.prob_acc_table[str][i] then
return setting.item_num_table[i]
end
end
return 0
end
when alchemist.chat.locale.energy_system.title_2 begin
say_title("System:")
say("")
say (locale.energy_system.say_4)
wait()
say_title("System:")
say("")
say (locale.energy_system.say_5)
wait()
if pc.get_level() < 40 then
say_title("System:")
say("")
say (locale.energy_system.say_6)
else
say_title("System:")
say("")
say (locale.energy_system.say_7)
end
end
when alchemist.take begin
if pc.get_level() < 40 then
say_title(mob_name(20001))
say("")
say(locale.energy_system.say_8)
return
end
local item_vnum = item.vnum
local levelLimit = item.get_level_limit(item_vnum)
local setting = energy_system.setting()
if levelLimit == nil then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_9)
wait()
elseif item.get_type() == ITEM_WEAPON and item.get_sub_type() == WEAPON_ARROW then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_9)
wait()
elseif levelLimit < 35 then
-- kind of impossible condition?
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_10)
else
say_title (mob_name(20001))
say("")
say (item_name(item_vnum))
say (locale.energy_system.say_11)
say("")
local s = select (locale.energy_system.say_12,locale.energy_system.say_13)
if s == 1 then
item.remove()
local r = number (1, 100)
local n
if levelLimit >= 40 and levelLimit <= 50 then
n = energy_system.getItemNum ("35to50",r)
elseif levelLimit > 50 and levelLimit <= 70 then
n = energy_system.getItemNum ("51to70",r)
else
n = energy_system.getItemNum ("upto70",r)
end
if (n == 0) then
say_title("System:")
say("")
say (locale.energy_system.say_14)
else
pc.give_item2(setting.energy_stone, n)
say_title("System:")
say("")
say("Enhancement succeded.")
say(""..n.." Vitality Ores were produced.")
say("")
end
end
end
end
when alchemist.chat.locale.energy_system.say_16 begin
local setting = energy_system.setting()
local need = 30
say_title (mob_name(20001))
say("")
say("Hello young hero!")
say("If you give me 30 Vitality Ores I can try")
say("to create a Vitality Stone for you.")
say("")
wait()
if pc.get_level() < 40 then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_6)
return
end
if pc.count_item (setting.energy_stone) < need then
say_title (mob_name(20001))
say("")
say("You don't have enough Vitality Ores.")
say("You need 30 to fuse a Vitality Stone.")
return
else
say_title (mob_name(20001))
say("")
say("I see, so you brought me 30 Vitality Ores.")
say("Wonderful!")
say("Just one moment please...")
wait()
end
local charge = 100000
say_title (mob_name(20001))
say("")
say("Preperations are complete!")
say("So do you want me to try and fuse a Vitality Stone?")
say("It costs 100.000 Yang and the enhancement can fail!")
say("")
local s = select (locale.energy_system.say_21,locale.energy_system.say_22 )
if s == 2 then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_23)
return
end
if pc.get_gold() < charge then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_24)
return
end
pc.change_gold (-charge)
pc.remove_item (setting.energy_stone, need)
if pc.getqf ("hasExperience") == 0 then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_25)
pc.give_item2 (setting.charging_stone, 1)
pc.setqf ("hasExperience", 1);
return
end
local r = number (1, 100)
if r > 30 then
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_26)
return
end
say_title (mob_name(20001))
say("")
say (locale.energy_system.say_27)
pc.give_item2 (setting.charging_stone, 1)
-- setskin(NOWINDOW)
-- command("cube open")
end
end
end






