Restructured gamefiles, locale data loading refactoring, docker build fixes
This commit is contained in:
369
gamefiles/data/quest/training_mount.quest
Normal file
369
gamefiles/data/quest/training_mount.quest
Normal file
@ -0,0 +1,369 @@
|
||||
quest training_mount begin
|
||||
state start begin
|
||||
function check_list(material, pc_level, horse_level)
|
||||
if pc.count_item(material) <= 0 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._02_say)
|
||||
return 0
|
||||
elseif pc.level < pc_level then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._01_say)
|
||||
return 0
|
||||
elseif horse.get_level()< horse_level then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(string.format(gameforge.training_mount._33_say,horse_level))
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
function extraTime(typ)
|
||||
local n = number (1,100)
|
||||
if typ == 1 then
|
||||
if n <= 50 then
|
||||
return 86400
|
||||
elseif n <= 80 then
|
||||
return 86400*2
|
||||
elseif n <=95 then
|
||||
return 86400*3
|
||||
else
|
||||
return 86400*4
|
||||
end
|
||||
elseif typ == 2 then
|
||||
if n <= 30 then
|
||||
return 0
|
||||
elseif n <= 70 then
|
||||
return 86400
|
||||
elseif n <=90 then
|
||||
return 86400*2
|
||||
else
|
||||
return 86400*3
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20349.chat.gameforge.training_mount._04_say begin
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._05_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._06_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._07_say)
|
||||
say("")
|
||||
set_state(main_point)
|
||||
end
|
||||
end
|
||||
|
||||
state main_point begin
|
||||
when 20349.chat.gameforge.training_mount._08_say begin
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._09_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._10_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._11_say)
|
||||
|
||||
local s=select(gameforge.training_mount._12_say,gameforge.training_mount._13_say)
|
||||
|
||||
if 2==s then
|
||||
return
|
||||
end
|
||||
if pc.count_item(50067) >0 or pc.count_item(50068)>0 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._14_say)
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._02_say)
|
||||
return
|
||||
end
|
||||
|
||||
local s=select(gameforge.training_mount._15_say,gameforge.training_mount._15_2_say,gameforge.training_mount._16_say)
|
||||
if 1==s then
|
||||
if training_mount.check_list(50067,25,11) == 1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._17_say)
|
||||
end
|
||||
elseif 2==s then
|
||||
if training_mount.check_list(50068,45,20) == 1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._18_say)
|
||||
end
|
||||
elseif 3==s then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._19_say)
|
||||
say("")
|
||||
return
|
||||
end
|
||||
end --when
|
||||
|
||||
|
||||
when 20349.take with
|
||||
52001 <= item.vnum and item.vnum <= 52005 or
|
||||
52016 <= item.vnum and item.vnum <= 52020 or
|
||||
52031 <= item.vnum and item.vnum <= 52035 or
|
||||
52046 <= item.vnum and item.vnum <= 52050 or
|
||||
52061 <= item.vnum and item.vnum <= 52065 or
|
||||
52076 <= item.vnum and item.vnum <= 52080 or
|
||||
52091 <= item.vnum and item.vnum <= 52095 begin
|
||||
if pc.is_riding() == true then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._32_say)
|
||||
return
|
||||
end
|
||||
if count_item_range(38100, 38102) >= 1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._34_say)
|
||||
local choice = select(gameforge.training_mount._35_select_1, gameforge.training_mount._35_select_2, locale.cancel)
|
||||
if choice == 3 then
|
||||
return
|
||||
elseif choice == 1 then
|
||||
local option_select = select(gameforge.training_mount._36_select_1, gameforge.training_mount._36_select_2, gameforge.training_mount._36_select_3, locale.cancel)
|
||||
local information = {}
|
||||
if option_select == 4 then
|
||||
return
|
||||
end
|
||||
if option_select == 1 then
|
||||
if pc.count_item(38100) >= 1 then
|
||||
information = {86400*7,38100}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 2 then
|
||||
if pc.count_item(38101) >= 1 then
|
||||
information = {86400*15,38101}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 3 then
|
||||
if pc.count_item(38102) >= 1 then
|
||||
information = {86400*30, 38102}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
end
|
||||
local remain_time =item.get_socket(0)
|
||||
item.set_socket(0,remain_time+information[1])
|
||||
pc.remove_item(information[2],1)
|
||||
return
|
||||
end
|
||||
end
|
||||
if training_mount.check_list(50067,25,11) == 1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._20_say)
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._22_say)
|
||||
local remain_time =item.get_socket(0)
|
||||
local old_vnum =item.get_vnum()
|
||||
local new_vnum =item.get_vnum()+5
|
||||
local extra = training_mount.extraTime(1)
|
||||
pc.give_item2_select(new_vnum,1)
|
||||
item.set_socket(0,remain_time+extra)
|
||||
pc.remove_item(old_vnum,1)
|
||||
pc.remove_item(50067,1)
|
||||
end
|
||||
end
|
||||
|
||||
when 20349.take with 52006 <= item.vnum and item.vnum <= 52010 or
|
||||
52021 <= item.vnum and item.vnum <= 52025 or
|
||||
52036 <= item.vnum and item.vnum <= 52040 or
|
||||
52051 <= item.vnum and item.vnum <= 52055 or
|
||||
52081 <= item.vnum and item.vnum <= 52085 or
|
||||
52066 <= item.vnum and item.vnum <= 52070 or
|
||||
52096 <= item.vnum and item.vnum <= 52100 begin
|
||||
if pc.is_riding() == true then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._32_say)
|
||||
return
|
||||
end
|
||||
|
||||
if count_item_range(38100, 38102) >= 1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._34_say)
|
||||
local choice = select (gameforge.training_mount._35_select_1, gameforge.training_mount._35_select_2, locale.cancel)
|
||||
if choice == 3 then
|
||||
return
|
||||
elseif choice == 1 then
|
||||
local option_select = select(gameforge.training_mount._36_select_1, gameforge.training_mount._36_select_2, gameforge.training_mount._36_select_3, locale.cancel)
|
||||
local information = {}
|
||||
if option_select == 4 then
|
||||
return
|
||||
end
|
||||
if option_select == 1 then
|
||||
if pc.count_item(38100) >= 1 then
|
||||
information = {86400*7,38100}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 2 then
|
||||
if pc.count_item(38101) >= 1 then
|
||||
information = {86400*15,38101}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 3 then
|
||||
if pc.count_item(38102) >= 1 then
|
||||
information = {86400*30, 38102}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local remain_time =item.get_socket(0)
|
||||
item.set_socket(0,remain_time+information[1])
|
||||
pc.remove_item(information[2],1)
|
||||
return
|
||||
end
|
||||
end
|
||||
if training_mount.check_list(50068,45,20) == 1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._21_say)
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._22_say)
|
||||
local remain_time =item.get_socket(0)
|
||||
local old_vnum =item.get_vnum()
|
||||
local new_vnum =item.get_vnum()+5
|
||||
local extra = training_mount.extraTime(1)
|
||||
pc.give_item2_select(new_vnum,1)
|
||||
item.set_socket(0,remain_time+extra)
|
||||
pc.remove_item (old_vnum,1)
|
||||
pc.remove_item (50068,1)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
when 20349.take with 52011 <= item.vnum and item.vnum <= 52015 or
|
||||
52026 <= item.vnum and item.vnum <= 52031 or
|
||||
52041 <= item.vnum and item.vnum <= 52045 or
|
||||
52056 <= item.vnum and item.vnum <= 52061 or
|
||||
52086 <= item.vnum and item.vnum <= 52091 or
|
||||
52071 <= item.vnum and item.vnum <= 52075 or
|
||||
52101 <= item.vnum and item.vnum <= 52105
|
||||
begin
|
||||
if pc.is_riding() == true then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._32_say)
|
||||
return
|
||||
end
|
||||
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._38_say)
|
||||
local choice = select (gameforge.training_mount._35_select_1, locale.cancel)
|
||||
if choice == 2 then
|
||||
return
|
||||
elseif choice == 1 then
|
||||
local option_select = select(gameforge.training_mount._36_select_1, gameforge.training_mount._36_select_2, gameforge.training_mount._36_select_3, gameforge.training_mount._36_select_4, locale.cancel)
|
||||
local information = {}
|
||||
if option_select == 5 then
|
||||
return
|
||||
end
|
||||
if option_select == 1 then
|
||||
if pc.count_item(38100) >= 1 then
|
||||
information = {86400*7,38100}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 2 then
|
||||
if pc.count_item(38101) >= 1 then
|
||||
information = {86400*15,38101}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 3 then
|
||||
if pc.count_item(38102) >= 1 then
|
||||
information = {86400*30, 38102}
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._37_say)
|
||||
return
|
||||
end
|
||||
elseif option_select == 4 then
|
||||
local remain_time = item.get_socket(0)
|
||||
local run_time = remain_time-get_time()
|
||||
if (remain_time-get_time()) > 86400 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._39_say)
|
||||
if is_test_server() then
|
||||
item.set_socket(0, get_time() + 86460)
|
||||
end
|
||||
return
|
||||
end
|
||||
if pc.count_item(50068) >= 1 and pc.get_gold() >= 200000 then
|
||||
information = {training_mount.extraTime(2),50068}
|
||||
pc.changegold(-200000)
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._40_say)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local remain_time = item.get_socket(0)
|
||||
item.set_socket(0,remain_time+information[1])
|
||||
pc.remove_item(information[2],1)
|
||||
return
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
when 20349.chat.gameforge.training_mount._23_say begin
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._24_say)
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._25_say)
|
||||
wait()
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._26_say)
|
||||
local s=select(locale.yes,locale.no)
|
||||
if 2==s then
|
||||
return
|
||||
end
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._27_say)
|
||||
wait()
|
||||
if pc.count_item(50068) >0 then
|
||||
if horse.get_level()>1 then
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._28_say)
|
||||
wait()
|
||||
say(gameforge.training_mount._29_say)
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._30_say)
|
||||
return
|
||||
end
|
||||
else
|
||||
say_title(""..mob_name(20349).."")
|
||||
say(gameforge.training_mount._31_say)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user