forked from metin2/server
Restructured gamefiles, locale data loading refactoring, docker build fixes
This commit is contained in:
66
gamefiles/data/quest/mystery_key.quest
Normal file
66
gamefiles/data/quest/mystery_key.quest
Normal file
@ -0,0 +1,66 @@
|
||||
quest mystery_key begin
|
||||
state start begin
|
||||
|
||||
function get_master_key()
|
||||
return 50156
|
||||
end
|
||||
|
||||
function get_key_for_chest(chest_vnum)
|
||||
local chest_table = {
|
||||
[50132] = 50150,
|
||||
[50133] = 50151,
|
||||
[50134] = 50152,
|
||||
[50135] = 50153,
|
||||
[50136] = 50154,
|
||||
[50137] = 50155,
|
||||
}
|
||||
return chest_table[chest_vnum]
|
||||
end
|
||||
|
||||
function get_reward_for_chest(chest_vnum)
|
||||
local reward_table = {
|
||||
[50132] = {
|
||||
{71126, 1, 20},
|
||||
{71094, 1},
|
||||
{71085, 2},
|
||||
{70039, 2},
|
||||
{71032, 3},
|
||||
{70024, 3},
|
||||
{25040, 5},
|
||||
{71044, 7},
|
||||
{71083, 8},
|
||||
{71030, 10},
|
||||
{71027, 10},
|
||||
{71012, 12}
|
||||
|
||||
}
|
||||
}
|
||||
return get_random_vnum_from_table(reward_table[chest_vnum])
|
||||
end
|
||||
|
||||
function open_chest(chest_vnum, key_vnum)
|
||||
say(gameforge.mystery_key._010_say)
|
||||
local s= select(gameforge.mystery_key._020_select, gameforge.mystery_key._030_select)
|
||||
if s==2 then
|
||||
return
|
||||
end
|
||||
local reward = mystery_key.get_reward_for_chest(chest_vnum)
|
||||
item.remove()
|
||||
pc.remove_item(key_vnum, 1)
|
||||
pc.give_item2(reward)
|
||||
end
|
||||
|
||||
when 50132.use begin
|
||||
local key_vnum = mystery_key.get_key_for_chest(item.vnum)
|
||||
local master_key_vnum = mystery_key.get_master_key()
|
||||
say_title(item_name(item.vnum) .. ": ")
|
||||
if pc.count_item(key_vnum) >= 1 then
|
||||
mystery_key.open_chest(item.vnum, key_vnum)
|
||||
elseif pc.count_item(master_key_vnum) >= 1 then
|
||||
mystery_key.open_chest(item.vnum, master_key_vnum)
|
||||
else
|
||||
say(gameforge.mystery_key._040_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user