forked from metin2/server
315 lines
15 KiB
Plaintext
315 lines
15 KiB
Plaintext
|
quest map_warp begin
|
||
|
state start begin
|
||
|
when 9012.chat.gameforge.map_warp._10_npcChat begin
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._30_say)
|
||
|
|
||
|
local main_set = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
|
||
|
if main_set == 2 then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if pc.get_level() <= 10 then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._40_say)
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local map = pc.get_map_index()
|
||
|
local empire = pc.get_empire()
|
||
|
local level = pc.get_level()
|
||
|
local cost = math.floor(level / 5) * 1000
|
||
|
|
||
|
if cost < 1000 then
|
||
|
cost = 1000
|
||
|
end
|
||
|
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._50_say)
|
||
|
say_reward(string.format(gameforge.map_warp._60_sayReward, cost))
|
||
|
|
||
|
if map == 1 or map == 3 or map == 21 or map == 23 or map == 41 or map == 43 then
|
||
|
|
||
|
local guild_map_names = {
|
||
|
gameforge.map_warp._11_array,
|
||
|
gameforge.map_warp._12_array,
|
||
|
gameforge.map_warp._13_array,
|
||
|
}
|
||
|
|
||
|
guild_map_name = guild_map_names[empire]
|
||
|
local added_guild_map = {
|
||
|
gameforge.map_warp._17_array,
|
||
|
gameforge.map_warp._18_array,
|
||
|
gameforge.map_warp._19_array,
|
||
|
}
|
||
|
|
||
|
added_guild_map = added_guild_map[empire]
|
||
|
local empire_castle={
|
||
|
gameforge.map_warp._14_array,
|
||
|
gameforge.map_warp._15_array,
|
||
|
gameforge.map_warp._16_array,
|
||
|
}
|
||
|
empire_castle =empire_castle[empire]
|
||
|
local sub_set = 0
|
||
|
if level < 60 then -- weniger als 60 : die Privatkarte von Gild, das Drache, die Wuste Youngbi, Der Eisberg im Westen
|
||
|
if pc.count_item(30180) == 0 then
|
||
|
sub_set = select(guild_map_name, gameforge.locale.map_name_4, gameforge.locale.map_name_3, gameforge.locale.map_name_1,added_guild_map, gameforge.arena_manager._200_tableInsert)
|
||
|
if sub_set == 6 then -- Schliessen
|
||
|
return
|
||
|
end
|
||
|
else
|
||
|
sub_set = select(guild_map_name, gameforge.locale.map_name_4, gameforge.locale.map_name_3, gameforge.locale.map_name_1, added_guild_map, gameforge.map_warp._97_select, gameforge.arena_manager._200_tableInsert)
|
||
|
if sub_set == 7 then -- Schliessen
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
else -- mehr als 61 :die Wuste Youngbi, der Eisberg im Westen, das Schlangengeistturm, die Pfirsischblumendorf
|
||
|
if pc.count_item(30180) == 0 then
|
||
|
sub_set = select(guild_map_name, gameforge.locale.map_name_4, gameforge.locale.map_name_3, gameforge.locale.map_name_1,added_guild_map, gameforge.locale.levelup.prev_quest_go)
|
||
|
else
|
||
|
sub_set = select(guild_map_name, gameforge.locale.map_name_4, gameforge.locale.map_name_3, gameforge.locale.map_name_1,added_guild_map, gameforge.map_warp._97_select,gameforge.locale.levelup.prev_quest_go)
|
||
|
end
|
||
|
if sub_set == 6 and pc.count_item(30180) == 0 then
|
||
|
sub_set = sub_set +1
|
||
|
end
|
||
|
if sub_set == 7 then -- weiter
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._70_say)
|
||
|
say_reward(string.format(gameforge.map_warp._80_sayReward, cost))
|
||
|
sub_set = select(gameforge.locale.map_name_2, gameforge.map_warp._90_select, gameforge.map_warp._94_select,gameforge.map_warp._95_select, gameforge.map_warp._96_select, gameforge.arena_manager._200_tableInsert) + 6
|
||
|
if sub_set == 12 then
|
||
|
return
|
||
|
end
|
||
|
if sub_set == 11 then -- vorher
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._100_say)
|
||
|
--- l
|
||
|
say_reward(string.format(gameforge.map_warp._110_sayReward, cost))
|
||
|
say(gameforge.map_warp._120_sayReward)
|
||
|
if pc.count_item(30180) == 0 then
|
||
|
sub_set = select(guild_map_name, gameforge.locale.map_name_4, gameforge.locale.map_name_3, gameforge.locale.map_name_1,added_guild_map, gameforge.locale.levelup.prev_quest_go)
|
||
|
else
|
||
|
sub_set = select(guild_map_name, gameforge.locale.map_name_4, gameforge.locale.map_name_3, gameforge.locale.map_name_1, added_guild_map, gameforge.map_warp._97_select,gameforge.locale.levelup.prev_quest_go)
|
||
|
end
|
||
|
|
||
|
if sub_set == 6 and pc.count_item(30180) == 0 then
|
||
|
sub_set = sub_set +1
|
||
|
end
|
||
|
if sub_set == 7 then -- weiter
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._130_say)
|
||
|
say_reward(string.format(gameforge.map_warp._140_sayReward, cost))
|
||
|
sub_set = select(gameforge.locale.map_name_2, gameforge.map_warp._90_select, gameforge.map_warp._94_select, gameforge.map_warp._95_select, gameforge.arena_manager._200_tableInsert) + 6
|
||
|
if sub_set == 11 then
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if pc.gold < cost then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._150_say)
|
||
|
say_reward(string.format(gameforge.map_warp._160_sayReward, cost))
|
||
|
return
|
||
|
end
|
||
|
|
||
|
pc.changegold(-cost)
|
||
|
|
||
|
local warp = {
|
||
|
-- <<1>> guild_map
|
||
|
{
|
||
|
{ 135600, 4300 },
|
||
|
{ 179500, 1000 },
|
||
|
{ 271800, 13000 },
|
||
|
},
|
||
|
-- <<2>> 64 Seungryong
|
||
|
{
|
||
|
{ 402100, 673900 },
|
||
|
{ 270400, 739900 },
|
||
|
{ 321300, 808000 },
|
||
|
},
|
||
|
-- <<3>> 63 Yonbi-Desert
|
||
|
{
|
||
|
{ 217800, 627200 },
|
||
|
{ 221900, 502700 },
|
||
|
{ 344000, 502500 },
|
||
|
},
|
||
|
-- <<4>> 61 Sohan Mountain
|
||
|
{
|
||
|
{ 434200, 290600 },
|
||
|
{ 375200, 174900 },
|
||
|
{ 491800, 173600 },
|
||
|
},
|
||
|
{--added_guild_map
|
||
|
{204800, 204800},
|
||
|
{614400, 384000},
|
||
|
{256000, 819200},
|
||
|
|
||
|
} ,
|
||
|
-- <<5>> 64 Seungryong - Heavens Cave entrance
|
||
|
{
|
||
|
{ 287800, 799700 },
|
||
|
{ 275500, 800000 },
|
||
|
{ 277000, 788000 },
|
||
|
},
|
||
|
-- {--empire_castle
|
||
|
-- {975200, 133000},
|
||
|
-- {977200, 185000},
|
||
|
-- {923900, 183600},
|
||
|
-- } ,
|
||
|
-- <<6>> 62 metin2_map_n_flame_01
|
||
|
{
|
||
|
{ 599400, 756300 },
|
||
|
{ 597800, 622200 },
|
||
|
{ 730700, 689800 },
|
||
|
},
|
||
|
-- <<7>> devil_tower
|
||
|
{
|
||
|
{ 590500, 110500 },
|
||
|
{ 590500, 110500 },
|
||
|
{ 590500, 110500 },
|
||
|
},
|
||
|
|
||
|
-- <<8>> wood
|
||
|
{
|
||
|
{ 290000, 5600 },
|
||
|
{ 290000, 5600 },
|
||
|
{ 290000, 5600 },
|
||
|
},
|
||
|
-- <<9>> red wood
|
||
|
{
|
||
|
{ 1119500, 70200 },
|
||
|
{ 1119500, 70200 },
|
||
|
{ 1119500, 70200 },
|
||
|
},
|
||
|
}
|
||
|
test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2])
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._170_say)
|
||
|
|
||
|
|
||
|
wait()
|
||
|
if pc.is_dead() == false then
|
||
|
pc.warp(warp[sub_set][empire][1], warp[sub_set][empire][2])
|
||
|
else
|
||
|
return
|
||
|
end
|
||
|
|
||
|
|
||
|
else -- Falls jedes Dorf nicht 1,2 Dorf ist,ist es moglich zum 1,2 Dorf im Reich zuruckzukehren
|
||
|
local sub_set2 = 4
|
||
|
if pc.count_item(30180) == 0 then
|
||
|
if empire==1 then
|
||
|
sub_set2 = select(gameforge.map_warp._180_select, gameforge.map_warp._190_select, gameforge.arena_manager._200_tableInsert)
|
||
|
elseif empire ==2 then
|
||
|
sub_set2 = select(gameforge.map_warp._200_select, gameforge.map_warp._210_select, gameforge.arena_manager._200_tableInsert)
|
||
|
elseif empire ==3 then
|
||
|
sub_set2 = select(gameforge.map_warp._220_select, gameforge.map_warp._230_select, gameforge.arena_manager._200_tableInsert)
|
||
|
end
|
||
|
if sub_set2 == 3 then
|
||
|
return
|
||
|
end
|
||
|
else
|
||
|
if empire==1 then
|
||
|
sub_set2 = select(gameforge.map_warp._180_select, gameforge.map_warp._190_select, gameforge.map_warp._97_select, gameforge.arena_manager._200_tableInsert)
|
||
|
elseif empire ==2 then
|
||
|
sub_set2 = select(gameforge.map_warp._200_select, gameforge.map_warp._210_select, gameforge.map_warp._97_select, gameforge.arena_manager._200_tableInsert)
|
||
|
elseif empire ==3 then
|
||
|
sub_set2 = select(gameforge.map_warp._220_select, gameforge.map_warp._230_select, gameforge.map_warp._97_select, gameforge.arena_manager._200_tableInsert)
|
||
|
end
|
||
|
if sub_set2 == 4 then
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
if sub_set2 != 4 then
|
||
|
if pc.gold < cost then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._150_say)
|
||
|
say_reward(string.format(gameforge.map_warp._160_sayReward, cost))
|
||
|
else
|
||
|
if sub_set2 == 1 then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._240_say)
|
||
|
wait()
|
||
|
if pc.is_dead() == false then
|
||
|
if empire == 1 then
|
||
|
pc.warp(474300,954800)
|
||
|
elseif empire == 2 then
|
||
|
pc.warp(63800,166400)
|
||
|
elseif empire == 3 then
|
||
|
pc.warp(959900,269200)
|
||
|
end
|
||
|
else
|
||
|
return
|
||
|
end
|
||
|
elseif sub_set2 == 2 then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._250_say)
|
||
|
wait()
|
||
|
if pc.is_dead() == false then
|
||
|
if empire == 1 then
|
||
|
pc.warp(353100,882900)
|
||
|
elseif empire == 2 then
|
||
|
pc.warp(145500,240000)
|
||
|
elseif empire == 3 then
|
||
|
pc.warp(863900,246000)
|
||
|
end
|
||
|
else
|
||
|
return
|
||
|
end
|
||
|
elseif sub_set2 == 3 then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._250_say)
|
||
|
wait()
|
||
|
if pc.is_dead() == false then
|
||
|
if empire == 1 then
|
||
|
pc.warp(287800, 799700)
|
||
|
elseif empire == 2 then
|
||
|
pc.warp(275500, 800000)
|
||
|
elseif empire == 3 then
|
||
|
pc.warp(277000, 788000)
|
||
|
end
|
||
|
else
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
pc.changegold(-cost)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end -- end_of_chat
|
||
|
when 9012.chat.gameforge.map_warp._260_npcChat with pc.level >= 90 and pc.get_map_index()!= 301 begin
|
||
|
say(mob_name(9012))
|
||
|
say(gameforge.map_warp._270_say)
|
||
|
local select1 = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
|
||
|
if select1 == 1 then
|
||
|
say(mob_name(9012))
|
||
|
say(gameforge.map_warp._280_say)
|
||
|
local cost = 50000
|
||
|
if pc.level >= 90 then
|
||
|
cost = cost + ((pc.level - 90) * 10000)
|
||
|
end
|
||
|
say_reward(string.format(gameforge.map_warp._280_sayReward, cost))
|
||
|
local select2 = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
|
||
|
if select2 == 1 and pc.level >= 90 and pc.gold >= cost then
|
||
|
pc.changegold(-cost)
|
||
|
pc.warp(1104300,1788500)
|
||
|
else
|
||
|
if pc.gold < cost then
|
||
|
say_title(gameforge.map_warp._20_sayTitle)
|
||
|
say(gameforge.map_warp._150_say)
|
||
|
say_reward(string.format(gameforge.map_warp._160_sayReward, cost))
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
else
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
end -- end_of_state
|
||
|
end -- end_of_quest
|