Problema quest Catacombe

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
MGeorge
Nivel 3

Nivel 3
Mesaje: 317
Membru din: 28 Dec 2013, 12:43
Server: -
Regat: Chunjo
Aprecieri: 367  
Mulţumiri: 8  
Medalii

Salutare! Am si eu quest-ul asta pentru catacombe...ideea e ca la nivelul 6, cand trebuie omorat Charon imi da mesajul ca l-am omorat din prima si nu se intampla nimic....a mai intalnit cineva problema asta?
quest devilcatacomb_zone begin
state start begin

function is_closed()
return (game.get_event_flag("dc_closed") > 0) --close dialog
end

function setting()
return
{

["base"]={["x"] = 3072 , ["y"]= 12032 ,},
["floor1_s"] = { ["x"] = 20, ["y"] = 20, },
["floor1_e"] = { ["x"] = 500, ["y"] = 470,},
["floor2_s"] = { ["x"] = 510, ["y"] = 18, },
["floor2_e"] = { ["x"] = 978, ["y"] = 470,},
["floor1_entry"] = {["x"] = 73, ["y"] = 63,},
["floor2_entry"] = {["x"] = 550, ["y"] = 45,},
["floor3_entry"] = {["x"] = 1378, ["y"] = 249,},
["floor4_entry"] = {["x"] = 70, ["y"] = 592,},
["floor5_entry"] = {["x"] = 846, ["y"] = 898},
["floor6_entry"] = {["x"] = 1362, ["y"] = 666},
["floor7_entry"] = {["x"] = 73, ["y"] = 1156},

["map_idx"] = 216,
["rag"] = 30311,

["devil_king"] = 2591,

["reapers_credit1"] = 30319,
["reapers_credit2"] = 30320,
["reapers_credit3"] = 76002,

["floor3_stone"] = 8038,
["floor3_stone_pos"] = {
{1366, 150},
{1366, 351},
{1234, 365},
{1234, 140},
{1150, 135},
{1130, 365},
{1135, 253}
},

["mob_regen_file_path"] = "data/dungeon/devilcatacomb/",
["floor4_regen_file"] = {"devilcatacomb_floor4_regen1.txt",
"devilcatacomb_floor4_regen2.txt",
"devilcatacomb_floor4_regen3.txt",
"devilcatacomb_floor4_regen4.txt",
"devilcatacomb_floor4_regen5.txt"} ,

["credit_stone"] = 30101,
["credit_stone_pos"] = {307,323},
["floor2_stone"] = 30103,
["floor2_stone_pos"] = {741,217},
["floor2_merchant_npc"] = 20368,
["floor2_merchant_npc_pos"] = {734,214},

["floor4_npc"] = 30104,
["floor4_npc_pos"] = {500, 717},

["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}},

["unlock_stone"] = 30312,
["floor5_stone"] = 30102,
["floor5_stone_pos"] = {848, 735},

["devil_great_king"] = 2597 ,
["devil_great_king_pos"] = {1303,704},
["devil_emperor"] = 2598,
["devil_emperor_pos"] = {74,1103},

["dc2_door_set_size"] = {4,2,3,2},
["dc2_door_set1"] = {
{{30111, 566, 117, 5},{30112, 562, 311, 5,},{30118, 663, 434, 7},{30119, 881, 434, 7}},
{{30116, 743, 390, 3},{30119, 612, 251, 1,}},
{{30113, 654, 211, 5},{30111, 707, 338, 7,},{30112, 775, 336, 7}},
{{30117, 733, 294, 3},{30113, 694, 271, 1,}}
},
["dc2_door_set2"] = {
{{30115, 942, 141, 5},{30116, 942, 245, 5},{30117, 942, 321, 5},{30115, 763, 64, 7}},
{{30118, 643, 116, 3},{30114, 900, 167, 1}},
{{30114, 850, 293, 5},{30113, 715, 164, 7},{30114, 817, 162, 7}},
{{30111, 802, 277, 1},{30112, 800, 241, 1}}
},
}
end
when login begin
local setting = devilcatacomb_zone.setting()
local idx = pc.get_map_index()
if idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then
-- pc.set_warp_location(65, 5914, 992) -----------아귀동굴 좌표로
local level = d.getf("level")
-- warp location이 0,0 이면 시스템 상으로, 종료 시, 종료 위치를 시작 위치로 저장한다.
d.set_warp_location (0, 0, 0)

if level == 2 then
say(gameforge.devilcatacomb_zone._10_say)
say(string.format(gameforge.devilcatacomb_zone._20_say, 60))
elseif level == pc.getqf ("level") then
-- say ("낙오되지 않기 위해 동료들과 합류하십시오.")
say(gameforge.devilcatacomb_zone._30_say)
else
say(gameforge.devilcatacomb_zone._40_say)
-- say ("당신은 낙오되었습니다. 용신의 힘을 빌어 잠시 뒤 동굴 밖으로 이동합니다.")
timer ("devilcatacomb_ban_timer", 5)
end
end
if idx == setting.map_idx then
pc.setf("devilcatacomb_zone","last_exit_time", get_global_time())
-- 2층이상이면, 쫓겨나
if pc.get_x() < setting.floor1_s.x + setting.base.x
or pc.get_y() < setting.floor1_s.y + setting.base.y
or pc.get_x() > setting.floor1_e.x + setting.base.x
or pc.get_y() > setting.floor1_e.y + setting.base.y
then
-- 아귀동굴 입구로
-- if not is_test_server() then
say(gameforge.devilcatacomb_zone._40_say)
timer ("devilcatacomb_ban_timer", 5)
-- end
else
-- 아귀동굴 입구로
-- pc.set_warp_location(65, 5914, 992)
say(gameforge.devilcatacomb_zone._50_say)
end
end
end

when logout begin
local idx = pc.get_map_index()
local setting = devilcatacomb_zone.setting()
if idx == setting.map_idx or idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then
pc.setf("devilcatacomb_zone","last_exit_time", get_global_time())
end
end

when devilcatacomb_ban_timer.timer begin
pc.warp((5914)*100, (992)*100, 65)
end

when warp_timer.timer begin
local level = d.getf("level")
local level_switch = {
[3] = gameforge.devilcatacomb_zone._60_say,
[4] = gameforge.devilcatacomb_zone._70_say,
[5] = gameforge.devilcatacomb_zone._80_say,
[6] = gameforge.devilcatacomb_zone._90_say,
}
local t = 3600 -(get_global_time() - d.getf("enter_time"))
local t_r = math.mod (t, 60)
local t_m = (t - t_r) / 60
d.notice ( level_switch[level] )
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, t_m))
d.set_warp_location (0, 0, 0)
end

when devilcatacomb_man.chat.gameforge.devilcatacomb_zone._100_npcChat with not devilcatacomb_zone.is_closed() begin
local setting = devilcatacomb_zone.setting()
if pc.get_level() < 75 then
say(gameforge.devilcatacomb_zone._110_say)
elseif pc.getf("deviltower_zone","9_done") == 0 then
say(gameforge.devilcatacomb_zone._120_say)
elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then
say(gameforge.devilcatacomb_zone._130_say)
else
say(gameforge.devilcatacomb_zone._140_say)
local s = select(gameforge.devilcatacomb_zone._150_select, gameforge.devilcatacomb_zone._160_select)
if s == 1 then
pc.warp ((setting.floor1_entry.x + setting.base.x )* 100, (setting.floor1_entry.y + setting.base.y) * 100)
end
end
end

-- 몬스터가 죽으면 발생하는 이벤트.
when kill begin
local setting = devilcatacomb_zone.setting()
-- 아귀동굴 1층이면 1% 확률로 금시건을 드랍한다.
if pc.get_x() > setting.floor1_s.x + setting.base.x
and pc.get_y() > setting.floor1_s.y + setting.base.y
and pc.get_x() < setting.floor1_e.x + setting.base.x
and pc.get_y() < setting.floor1_e.y + setting.base.y then
local j = number(1, 4)
if j == 1 then
pc.give_item2 (setting.rag)
end
end
end

function spawn_doors ()
local setting = devilcatacomb_zone.setting()
for i = 1, 4 do
local mob_set = setting.dc2_door_set1
local set_size = setting.dc2_door_set_size
for j = 1, set_size do
d.set_unique (i.."_1_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4]))
end
mob_set = setting.dc2_door_set2
for j = 1, set_size do
d.set_unique (i.."_2_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4]))
end
end
end
-- 금시건을 나찰인증석에 드래그하면 2층으로 보낸다. 2층부터는 던전이다.
when devilcatacomb_credit_stone. take begin
local setting = devilcatacomb_zone.setting()

if item.vnum == setting.rag then
if not party.is_party() then
say(gameforge.devilcatacomb_zone._170_say)
return
elseif party.is_in_dungeon() then
say(gameforge.devilcatacomb_zone._180_say)
return
end

item.remove()
say(gameforge.devilcatacomb_zone._190_say)
wait()
say(gameforge.devilcatacomb_zone._200_say)
wait()
d.new_jump_party (setting.map_idx, setting.floor2_entry.x + setting.base.x , setting.floor2_entry.y + setting.base.y )
d.setqf2("devilcatacomb_zone","level", 2)
d.setf ("level",2)
d.regen_file (setting.mob_regen_file_path.."dc_2f_regen.txt")

d.spawn_mob (setting.floor2_merchant_npc, setting.floor2_merchant_npc_pos[1], setting.floor2_merchant_npc_pos[2])
d.spawn_mob (setting.floor2_stone, setting.floor2_stone_pos[1], setting.floor2_stone_pos[2])

devilcatacomb_zone.spawn_doors ()
server_timer('devilcatacomb_45m_left_timer',60 * 15, d.get_map_index())
d.setf("enter_time", get_global_time())
end
end

when devilcatacomb_45m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 45))
server_timer('devilcatacomb_30m_left_timer', 60 * 15, get_server_timer_arg())
end
end

when devilcatacomb_30m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 30))
server_timer('devilcatacomb_15m_left_timer', 60 * 15, get_server_timer_arg())
end
end

when devilcatacomb_15m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 15))
server_timer('devilcatacomb_5m_left_timer', 60 * 10, get_server_timer_arg())
end
end

when devilcatacomb_5m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 5))
server_timer('devilcatacomb_1m_left_timer', 60 * 4, get_server_timer_arg())
end
end

when devilcatacomb_1m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 1))
server_timer ("devilcatacomb_0m_left_timer", 60 * 1, get_server_timer_arg())
end
end

when devilcatacomb_0m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice (gameforge.devilcatacomb_zone._210_dNotice)
d.set_warp_location (65, 5914, 992)
server_timer('devilcatacomb_exit_timer', 7, get_server_timer_arg())
end
end

function is_dc2_doors_clear ()
local setting = devilcatacomb_zone.setting()
local clear = true
for i = 1, 4 do
local set_clear = true
local mob_set = setting.dc2_door_set1
local set_size = setting.dc2_door_set_size
for j = 1, set_size do
set_clear = set_clear and d.is_unique_dead (i.."_1_"..j)
end
if not set_clear then
set_clear = true
mob_set = setting.dc2_door_set2
for j = 1, set_size do
set_clear = set_clear and d.is_unique_dead (i.."_2_"..j)
end
end
clear = clear and set_clear
end

return clear
end

-- 현황석을 클릭하면 3층 진입 여부를 선택할 수 있고
-- 진입시 사신의증표를 검사한다.
-- 사신의 증표가 없다면 밖으로 워프된다.
when devilcatacomb_floor2_stone.click begin
local setting = devilcatacomb_zone.setting()

if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
if not devilcatacomb_zone.is_dc2_doors_clear () then
say(gameforge.devilcatacomb_zone._220_say)
wait ()
return
end
say(gameforge.devilcatacomb_zone._230_say)
wait()
say(gameforge.devilcatacomb_zone._240_say)
wait()
local s = select(gameforge.devilcatacomb_zone._150_select, gameforge.devilcatacomb_zone._160_select)
if s == 1 then
if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
d.setf("devilcatacomb_floor2_stone_clicked", 1)
d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time())
d.set_item_group ("reapers_credit", 3, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1)
d.say_diff_by_item_group("reapers_credit", gameforge.devilcatacomb_zone._250_say, gameforge.devilcatacomb_zone._260_say)
timer ("devilcatacomb_floor3_enter_timer", 7)
end
end
else
say(gameforge.devilcatacomb_zone._270_say)
end
end

when devilcatacomb_floor3_enter_timer.timer begin
local setting = devilcatacomb_zone.setting()
d.set_warp_location (65, 5914, 992)
d.exit_all_by_item_group ("reapers_credit")
d.delete_item_in_item_group_from_all ("reapers_credit")
d.purge ()
d.jump_all (setting.floor3_entry.x + setting.base.x , setting.floor3_entry.y + setting.base.y)
d.setf("level",3)
d.setqf2("devilcatacomb_zone","level", 3)
d.regen_file (setting.mob_regen_file_path.."dc_3f_regen.txt")
timer("warp_timer",3)

local position = setting.floor3_stone_pos

local n = number(1,7)
for i = 1, 7 do
if (i != n)
then
d.set_unique("fake"..i, d.spawn_mob( setting.floor3_stone, position[1], position[2]))
end
end

local vid = d.spawn_mob( setting.floor3_stone, position[n][1], position[n][2])
d.set_unique ("real",vid)
if (is_test_server()) then
-- real stone pos
chat (position[n][1],position[n][2])
end

end

when kill begin
if npc.get_race() == 8038 then
local setting = devilcatacomb_zone.setting()
-- 돌이 파괴되면 진짜가 죽었는지 확인해본다.
-- 진짜가 죽었으면 4층으로 이동한다.
if d.is_unique_dead("real") then
d.notice(gameforge.devilcatacomb_zone._280_dNotice)

d.setf ("level",4)
d.setqf2("devilcatacomb_zone","level", 4)
timer ("devilcatacomb_floor4_enter_timer", 3)
else
d.notice(gameforge.devilcatacomb_zone._290_dNotice)
end
end
end

when devilcatacomb_floor4_enter_timer.timer begin
local setting = devilcatacomb_zone.setting()
local i = number (1, 5)
timer("warp_timer",3)
d.purge ()
d.jump_all (setting.floor4_entry.x + setting.base.x , setting.floor4_entry.y + setting.base.y)
d.regen_file (setting.mob_regen_file_path.."dc_4f_regen.txt")
d.regen_file (setting.mob_regen_file_path..setting.floor4_regen_file)
if (is_test_server()) then
d.notice (setting.floor4_regen_file)
end
d.spawn_mob (setting.floor4_npc, setting.floor4_npc_pos[1], setting.floor4_npc_pos[2])
end

-- devilcatacomb_floor4_stone는 클릭 시 4층에서 5층으로 이동시키는 npc이다.
when devilcatacomb_floor4_stone.click begin
local setting = devilcatacomb_zone.setting()
local n = number (1,5)
say(gameforge.devilcatacomb_zone._300_say)
wait()
if (is_test_server()) then
-- devil_king pos
chat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
end
d.purge ()
d.jump_all (setting.floor5_entry.x + setting.base.x, setting.floor5_entry.y + setting.base.y )
d.setf ("level",5)
d.setqf2("devilcatacomb_zone","level", 5)
timer("warp_timer",3)
d.regen_file (setting.mob_regen_file_path.."dc_5f_regen.txt")
d.spawn_mob (setting.devil_king, setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
d.spawn_mob (setting.floor5_stone, setting.floor5_stone_pos[1], setting.floor5_stone_pos[2])
end

-- 아귀왕(2591)이 죽으면 봉인해체석 드랍
when kill begin
if npc.get_race() == 2591 then
local setting = devilcatacomb_zone.setting()
game.drop_item (setting.unlock_stone, 1)
end
end

-- 사신금제비(30102)에 금제해체석봉을 드래그하면 모든 몬스터를 죽이고
-- 6층으로 이동하는 타이머를 동작시킨다.
when devilcatacomb_floor5_stone.take begin
local setting = devilcatacomb_zone.setting()
if item.vnum == setting.unlock_stone then
item.remove ()
d.notice(gameforge.devilcatacomb_zone._310_dNotice)
-- 6층으로 이동
d.clear_regen()
d.purge()
timer("devilcatacomb_floor6_timer",2)
end
end

when devilcatacomb_floor6_timer.timer begin
local setting = devilcatacomb_zone.setting()
d.setf("level",6)
d.setqf2("devilcatacomb_zone","level", 6)
d.jump_all (setting.floor6_entry.x + setting.base.x, setting.floor6_entry.y + setting.base.y )
d.regen_file (setting.mob_regen_file_path.."dc_6f_regen.txt")
d.spawn_mob (setting.devil_great_king, setting.devil_great_king_pos[1], setting.devil_great_king_pos[2])
timer("warp_timer",3)
end

-- 아걸(2597)이 죽으면, 6층의 타이머1이 동작한다.
when kill begin
if npc.get_race() == 2597 then
server_timer ("floor6_eli_check_timer_1", 5,d.get_map_index())
end
end

-- 6층의 타이머1은 던전의 모든 몬스터 숫자를 보고,
-- 0이면 7층으로 워프하는 타이머를 동작한다.
-- 바로 7층으로 가지 않는 이유는, 유저에게 준비할 시간을 주기 위해서이다.
-- 1이면 타이머2를 동작시킨다.
-- 타이머1을 recursive하게 동작시키지 않은 것은,
-- 그럴 경우 reset한 타이머1이 동작하지 않았기 때문이다.
when floor6_eli_check_timer_1.server_timer begin
if d.select(get_server_timer_arg()) then
if d.count_monster() == 0 then
say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._320_say)
server_timer ("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
else
server_timer ("floor6_eli_check_timer_2", 5, get_server_timer_arg())
end
end
end

when floor6_eli_check_timer_2.server_timer begin
if d.select(get_server_timer_arg()) then
if d.count_monster() == 0 then
say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._320_say)
server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
else
server_timer ("floor6_eli_check_timer_1", 5, get_server_timer_arg())
end
end
end

when devilcatacomb_floor7_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = devilcatacomb_zone.setting()

d.setf("level",7)
d.setqf2("devilcatacomb_zone","level", 7)
d.jump_all (setting.floor7_entry.x + setting.base.x, setting.floor7_entry.y + setting.base.y )
d.regen_file (setting.mob_regen_file_path.."dc_7f_regen.txt")
d.spawn_mob (setting.devil_emperor, setting.devil_emperor_pos[1], setting.devil_emperor_pos[2])
server_timer ("devilcatacomb_floor7_say_timer", 2, get_server_timer_arg())
end
end

when devilcatacomb_floor7_say_timer.server_timer begin
if d.select(get_server_timer_arg()) then

local t = 3600 -(get_global_time() - d.getf("enter_time"))
local t_r = math.mod (t, 60)
local t_m = (t - t_r) / 60
d.notice(gameforge.devilcatacomb_zone._330_dNotice)
d.notice(string.format(gameforge.devilcatacomb_zone._20_say, t_m))
d.set_warp_location (0, 0, 0)
end
end

-- 6층과 마찬가지로 사마휘(2598)이 죽으면
-- 7층의 타이머가 작동한다.
when kill begin
if npc.get_race() == 2598 then
server_timer ("floor7_eli_check_timer_1", 5, d.get_map_index())
end
end

-- 7층의 타이머는 6층 타이머와 비슷하며,
-- 몬스터 숫자가 0이면 exit 타이머를 발생시킨다.
-- 바로 exit하지 않는 이유는, 유저들에게 준비할 시간을 주기 위해서이다.
when floor7_eli_check_timer_1.server_timer begin
if d.select(get_server_timer_arg()) then
if d.count_monster() == 0 then
d.set_warp_location (65, 5914, 992)
d.setqf2("devilcatacomb_zone","done", 1)
say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._340_say)
clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())
else
server_timer ("floor7_eli_check_timer_2", 5, get_server_timer_arg())
end
end
end

when floor7_eli_check_timer_2.server_timer begin
if d.select(get_server_timer_arg()) then
if d.count_monster() == 0 then
d.set_warp_location (65, 5914, 992)
d.setqf2("devilcatacomb_zone","done", 1)
say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._340_say)
clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())
else
server_timer ("floor7_eli_check_timer_1", 5, get_server_timer_arg())
end
end
end

when devilcatacomb_exit_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.setqf2("devilcatacomb_zone","level", 0)
d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time())
clear_server_timer("devilcatacomb_5m_left_timer", get_server_timer_arg())
clear_server_timer("devilcatacomb_1m_left_timer", get_server_timer_arg())
clear_server_timer("devilcatacomb_0m_left_timer", get_server_timer_arg())
clear_server_timer("floor6_eli_check_timer_1", get_server_timer_arg())
clear_server_timer("floor6_eli_check_timer_2", get_server_timer_arg())
clear_server_timer("floor7_eli_check_timer_1", get_server_timer_arg())
clear_server_timer("floor7_eli_check_timer_2", get_server_timer_arg())
clear_server_timer("devilcatacomb_floor7_say_timer", get_server_timer_arg())
clear_server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
d.clear_regen()
d.exit_all()
end
end
end --state
end --quest


Avatar utilizator
sanducatalin1
Mister Just4Metin

Mister Just4Metin
Mesaje: 619
Membru din: 28 Iun 2015, 16:07
Server: Draco
Regat: Shinsoo
Aprecieri: 127  
Mulţumiri: 168  
 Contact:
Medalii

Hrănește-te!
https://www.dosyaupload.com/m2oo
Spor la tradus. SPQR

[ Postat de pe iPhone ] Imagine
Avatar utilizator
MGeorge
Nivel 3

Nivel 3
Mesaje: 317
Membru din: 28 Dec 2013, 12:43
Server: -
Regat: Chunjo
Aprecieri: 367  
Mulţumiri: 8  
Medalii

sanducatalin1 scrie: ↑03 Ian 2020, 00:51 Hrănește-te!
https://www.dosyaupload.com/m2oo
Spor la tradus. SPQR

[ Postat de pe iPhone ] Imagine
E acelasi quest....
Avatar utilizator
sanducatalin1
Mister Just4Metin

Mister Just4Metin
Mesaje: 619
Membru din: 28 Iun 2015, 16:07
Server: Draco
Regat: Shinsoo
Aprecieri: 127  
Mulţumiri: 168  
 Contact:
Medalii

ai fișierul translate la el și in questlib ai definit bine d.notice, notice_multiline sau notice? Și mai uitate bine dacă nu ai vreo ghirimea lipsa pe undeva in translate. Sau vre un item lipsa pe undeva.

Aa, încă ceva, uitate sa ai spațiu între ultima litera și ultima ghirimea dacă ai o diacritică și nu ai spațiu nu-ti merge.
Trebuie sa ai așa “Continuă “ nu “Continuă”
Ultima oară modificat 03 Ian 2020, 01:06 de către sanducatalin1, modificat de 2 ori în total.
Avatar utilizator
MGeorge
Nivel 3

Nivel 3
Mesaje: 317
Membru din: 28 Dec 2013, 12:43
Server: -
Regat: Chunjo
Aprecieri: 367  
Mulţumiri: 8  
Medalii

ce se intampla...ma teleporteaza la nivelul 6, unde trebuie sa il omor pe Charon, zice ca trebuie sa il omor pe charon bla bla bla si imediat imi zice "L-ai infrant pe Charon"...fara sa fac nimic...am totul pus bine....
Avatar utilizator
sanducatalin1
Mister Just4Metin

Mister Just4Metin
Mesaje: 619
Membru din: 28 Iun 2015, 16:07
Server: Draco
Regat: Shinsoo
Aprecieri: 127  
Mulţumiri: 168  
 Contact:
Medalii

cuceritorul28 scrie: ↑03 Ian 2020, 01:05 ce se intampla...ma teleporteaza la nivelul 6, unde trebuie sa il omor pe Charon, zice ca trebuie sa il omor pe charon bla bla bla si imediat imi zice "L-ai infrant pe Charon"...fara sa fac nimic...am totul pus bine....
Da după ce îl omori se mai întâmpla ceva?

[ Postat de pe iPhone ] Imagine
Avatar utilizator
MGeorge
Nivel 3

Nivel 3
Mesaje: 317
Membru din: 28 Dec 2013, 12:43
Server: -
Regat: Chunjo
Aprecieri: 367  
Mulţumiri: 8  
Medalii

sanducatalin1 scrie: ↑03 Ian 2020, 01:10
cuceritorul28 scrie: ↑03 Ian 2020, 01:05 ce se intampla...ma teleporteaza la nivelul 6, unde trebuie sa il omor pe Charon, zice ca trebuie sa il omor pe charon bla bla bla si imediat imi zice "L-ai infrant pe Charon"...fara sa fac nimic...am totul pus bine....
Da după ce îl omori se mai întâmpla ceva?

[ Postat de pe iPhone ] Imagine
nu, nu se mai intampla nimic....
Avatar utilizator
sanducatalin1
Mister Just4Metin

Mister Just4Metin
Mesaje: 619
Membru din: 28 Iun 2015, 16:07
Server: Draco
Regat: Shinsoo
Aprecieri: 127  
Mulţumiri: 168  
 Contact:
Medalii

Ia șterge tot ce tine de ala și bagă-l pasta

quest devilscatacomb begin
state start begin

when logout begin
pc.remove_item(30311, pc.count_item(30311))
pc.remove_item(30312, pc.count_item(30312))
pc.remove_item(30313, pc.count_item(30313))
end


when login begin
if pc.get_map_index() == 90 then
if devilscatacomb.getLevelByCord() > 1 or not next_time_is_now() then

pc.warp((5913)*100, (993)*100, 65) -- 5913x993 591374x

end

pc.set_warp_location(65, 5913, 993)

say("Du musst den Seelenkristall-Schlüssel droppen")
say("und dann auf die Statue des Kud ziehen, um in")
say("die 2. Ebene zu gelangen...")
say("")
say_item_vnum(30311)
say("")

elseif pc.get_map_index() >= (90 * 10000) then
pc.set_warp_location(65, 5913, 993)
end
end


when 20367.chat."The Devil's Catacomb" begin --Enter the Devil Catacomb
if pc.get_level() < 75 then
say_title(mob_name(npc.get_race()) ..":")
say("Du möchtest in die Katakomben des Teufels?")
say("")
say("So einfach geht das nicht, denn du hast")
say("nicht die nötige Erfahrung dazu.")
say("Komme am Besten wieder, wenn du Level 75")
say("erreicht hast... ")
else
say_title(mob_name(npc.get_race()) ..":")
say("Du möchtest in die Katakomben des Teufels?")
say("")
say("Ich kann dich gerne teleportieren, doch")
say("ich möchte dich warnen: Es sind schon viele")
say("eingetreten aber nicht mehr zurück gekommen!")
say("")
say("Soll ich dich ernsthaft teleportieren?")
say("")
local s = select("Ja","Nein")
if s == 2 then
return
elseif s == 1 then
pc.warp(315300, 1209200)
end
end
end


when kill with pc.get_map_index() == 90 and pc.countitem(30311) < 1 begin
local rnd = number(1,100)
if rnd == 6 then
game.drop_item_with_ownership(30311, 1)
end
end


when 30101.take with item.vnum == 30311 begin --Teleport to 2nd Stage with the passenger ticket

if party.is_party() then

if party.is_leader() then
say("Das Eingangsportal wurde geöffnet.")
say("Geh schnell hindurch!")
wait()
say("Hier beginnt das wahre Abenteuer! Du hast")
say("jedoch nur eine Stunde Zeit, um die Devil's")
say("Catacomb zu erforschen.")
item.remove()
sys_log(0, "DC create try by "..pc.get_name())
d.join(90)
else
say("Nur der Leiter der Gruppe darf bestimmen.")
end

else
say("Ohne Gruppe kommst du nicht weiter.")
end

end


when login with devilscatacomb.isInCatacomb() begin
say("Zerstöre das Siegel dieses Tores, um die 3. Ebene")
say("zu erreichen!")
say("Du hast noch 60 Minute(n) Zeit.")
d.spawn_mob(30103, 740, 227)
loop_timer("item_check", 10)
if party.is_leader() then
d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
d.regen_file("data/dungeon/dc/dc_doors.txt")
d.setf("level", 2)
server_timer("runtime", 6, pc.get_map_index())
elseif pc.is_gm() and not party.is_party() then
d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
d.regen_file("data/dungeon/dc/dc_doors.txt")
d.setf("level", 2)
server_timer("runtime", 6, pc.get_map_index())
end
end


when item_check.timer with d.getf("level") == 3 begin
if pc.countitem(30319) >= 1 then
say("Du hast den Schrumpfkopf und wirst nun auf die")
say("3. Ebene teleportiert.")
pc.remove_item(30319, 1)
timer("item_check_end", 2)
else
d.exit_all()
end
end


when item_check_end.timer begin
cleartimer("item_check")
end


when runtime.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("time", get_time()+60*60*1)
devilscatacomb.getTimeLeft()
server_timer("runtime_end", 60*60, get_server_timer_arg())
end
end


when runtime_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist um.")
d.exit_all()
end
end


when 30103.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 2 and npc.lock() begin
say("Während du den Stein genauer untersuchst, kannst")
say("du eine Gravur erkennen.")
wait()
say("Lediglich der Besitzer des Schrumpfkopfes")
say("darf eintreten, nachdem die Siegel dreier Türen")
say("aufgebrochen wurden.")
say("Wenn du dieses Relikt nicht bei dir trägst,")
say("wirst du aus der Devil's Catacomb teleportiert.")
say("")
wait()
local s = select("Ja, lass mich eintreten!", "Nein, ich möchte nicht eintreten.")
if s == 2 then
return
elseif s == 1 then
if pc.count_item(30319) >= 1 then
npc.purge()
d.setf("level", 3)
d.purge()
d.clear_regen()
timer("dc_jump_3", 6)
else
say("Du hast keinen Schrumpfkopf und wirst nun")
say("aus der Höhle teleportiert ...")
pc.warp(591374, 99325, 65)
end
end
end


when dc_jump_3.timer begin
d.set_regen_file("data/dungeon/dc/dc_regen2.txt")
d.notice("Suche den richtigen Metinstein und zerstöre ihn!")
devilscatacomb.getTimeLeft()
d.jump_all(4451, 12282)
local positions = devilscatacomb.get3FloorStonePositions()
for i = 1, 6 do
d.set_unique("fake" .. i , d.spawn_mob(8037, positions[1], positions[2]))
end
d.set_unique("real", d.spawn_mob(8037, positions[7][1], positions[7][2]))
server_loop_timer('dc_stone3_update', 10, pc.get_map_index())

end


when dc_stone3_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 30 then
if not d.is_unique_dead("fake" .. i) then
d.purge_unique("fake" .. i)
end
d.setf("fakedead" .. i, 1)
d.notice("Du hast den falschen Metinstein zerstört. Finde den richtigen!");
end
end
end
else
server_timer("dc_stone_end3", 5, get_server_timer_arg())
d.notice("Der richtige Metinstein wurde zerstört. Du darfst nun die 4. Ebene betreten.")
end
else
server_timer('dc_stone3_stop_timer', 1, get_server_timer_arg())
end
end


when dc_stone3_stop_timer.server_timer begin
clear_server_timer('dc_stone3_update', get_server_timer_arg())
end


when dc_stone_end3.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer('dc_stone3_update', get_server_timer_arg())
d.setf("level", 4)
d.jump_all(3347, 12810)
d.clear_regen()
d.set_regen_file("data/dungeon/dc/dc_regen3.txt")
d.regen_file("data/dungeon/dc/dc_warps.txt")
d.spawn_mob(30104, 500, 716)
end
end


when 30104.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 4 and npc.lock() begin
npc.purge()
say_in_map(pc.get_map_index(),"Du hast es geschafft! Hier ist der Ausgang des[ENTER]Labyrinths. Steige nun in die 5. Ebene hinab.")
server_timer("dc4_enter", 6, pc.get_map_index())
end


when dc4_enter.server_timer begin
if d.select(get_server_timer_arg()) then
d.jump_all(3918, 12939)

d.set_regen_file("data/dungeon/dc/dc_regen4.txt")
d.spawn_mob(30102, 848, 739)

local mob_pos = { {1006, 649}, {979, 829}, {691, 822}, {714, 653}, {848, 593} }
local rnd = number(1, 5)
d.spawn_mob(2591, mob_pos[rnd][1], mob_pos[rnd][2])

server_timer("dc4_message", 3, get_server_timer_arg())
end
end


when dc4_message.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Besiege die Dämonenwachen, um das Fratzen-Totem zu erhalten. Es dient dir als Schlüssel zur 6. Ebene.")
devilscatacomb.getTimeLeft()
end
end


when 30102.take with item.vnum == 30312 begin
say("Du hast das Fratze-Totem.")
say("Nun kannst du in die nächste Ebene!")
say("")
wait()
say("Viel Glück!")
item.remove()
npc.purge()
d.clear_regen()
timer("dc_level_5", 6)
end


when dc_level_5.timer begin
d.jump_all(4312, 12799)
timer("dc_level_5_start", 5)
end


when dc_level_5_start.timer begin
d.setf("level", 5)
d.notice("Besiege Charon und seine Schergen!")
devilscatacomb.getTimeLeft()
d.regen_file("data/dungeon/dc/dc_regen5.txt")
d.spawn_mob(2597, 1301, 699)
end


when kill begin
if devilscatacomb.isInCatacomb() then
if npc.race == 2597 then
if d.count_monster() < 1000 then
d.setf("level", 6)
d.clear_regen()
timer("dc_level_5_end", 12)
else
if d.getf("charon_spawns") < 4 then
d.spawn_mob(2597, 1301, 699)
d.setf("charon_spawns", d.getf("charon_spawns") + 1)
else
d.notice("Du hast versagt Charon hat dich mit seinen Schergen")
d.notice("überlistet. Du verlässt nun die Höhle")
local nextTime=get_time()+time_min_to_sec(1)
d.setqf("__NEXT_TIME__", nextTime)
d.exit_all()
end
end
end

if npc.race == 2598 and d.getf("level") == 6 then
clear_server_timer("runtime", pc.get_map_index())
clear_server_timer("runtime_end", pc.get_map_index())
notice_all(pc.get_name().." und "..tonumber(party.get_near_count()-1).." weitere Gruppenmitglieder haben Azrael besiegt!")
timer("glory_message", 6)
end

if npc.race == 2591 then
game.drop_item_with_ownership(30312, 1)
end
end
end


when dc_level_5_end.timer begin
say_in_map(pc.get_map_index(),"Du hast Charon besiegt! Nun wirst du[ENTER]zur letzten Ebene der Devil's Catacomb[ENTER]teleportiert.")
timer("dc_level_6", 3)
end


when dc_level_6.timer begin
d.jump_all(3145, 13187)
timer("dc_level_6_into", 3)
end

when dc_level_6_into.timer begin
d.regen_file("data/dungeon/dc/dc_regen6.txt")
d.spawn_mob(2598, 74, 1103)
d.notice("Besiege Azrael!")
end

when glory_message.timer begin
local text = "Azrael wurde besiegt. Endlich herrscht[ENTER]Frieden in der Devil's Catacomb. Du wirst nun[ENTER]an die Oberfläche teleportiert."
say_in_map(pc.get_map_index(), text)
timer("dc_end", 20)
end


when dc_end.timer begin
local nextTime=get_time()+time_min_to_sec(1)
d.setqf("__NEXT_TIME__", nextTime)
d.exit_all()
end

end

state _FUNC_ begin

function getLevelByCord()

if pc.get_local_x() > 30 and pc.get_local_y() > 45 and pc.get_local_x() < 450 and pc.get_local_y() < 450 then
return 1

elseif pc.get_local_x() > 540 and pc.get_local_y() > 39 and pc.get_local_x() < 1000 and pc.get_local_y() < 462 then
return 2

elseif pc.get_local_x() > 1048 and pc.get_local_y() > 35 and pc.get_local_x() < 1455 and pc.get_local_y() < 458 then
return 3

elseif pc.get_local_x() > 31 and pc.get_local_y() > 541 and pc.get_local_x() < 564 and pc.get_local_y() < 1058 then
return 4

elseif pc.get_local_x() > 650 and pc.get_local_y() > 540 and pc.get_local_x() < 1050 and pc.get_local_y() < 955 then
return 5

elseif pc.get_local_x() > 1175 and pc.get_local_y() > 576 and pc.get_local_x() < 1420 and pc.get_local_y() < 810 then
return 6

else
return 0
end

end

function isInCatacomb()

if pc.get_map_index() >= (90 * 10000) and pc.in_dungeon() then
return true
else
return false
end

end

function get3FloorStonePositions()

local positions =
{
{1365, 352}, {1349, 150}, {1133, 167}, {1151, 364},
{1234, 136}, {1255, 371}, {1132, 245},
}

for i = 1, 6 do

local j = number(i, 7)

if i != j then

local t = positions;
positions = positions[j];
positions[j] = t;

end

end

return positions

end

function getTimeLeft()

local secondsLeft = (d.getf("time") - get_time())
local minutesLeft = math.ceil(secondsLeft / 60)

d.notice("Du hast noch "..minutesLeft.." Minute(n) Zeit.")

end

end
end

[ Postat de pe iPhone ] Imagine
Avatar utilizator
MGeorge
Nivel 3

Nivel 3
Mesaje: 317
Membru din: 28 Dec 2013, 12:43
Server: -
Regat: Chunjo
Aprecieri: 367  
Mulţumiri: 8  
Medalii

sanducatalin1 scrie: ↑03 Ian 2020, 01:14 Ia șterge tot ce tine de ala și bagă-l pasta

quest devilscatacomb begin
state start begin

when logout begin
pc.remove_item(30311, pc.count_item(30311))
pc.remove_item(30312, pc.count_item(30312))
pc.remove_item(30313, pc.count_item(30313))
end


when login begin
if pc.get_map_index() == 90 then
if devilscatacomb.getLevelByCord() > 1 or not next_time_is_now() then

pc.warp((5913)*100, (993)*100, 65) -- 5913x993 591374x

end

pc.set_warp_location(65, 5913, 993)

say("Du musst den Seelenkristall-Schlüssel droppen")
say("und dann auf die Statue des Kud ziehen, um in")
say("die 2. Ebene zu gelangen...")
say("")
say_item_vnum(30311)
say("")

elseif pc.get_map_index() >= (90 * 10000) then
pc.set_warp_location(65, 5913, 993)
end
end


when 20367.chat."The Devil's Catacomb" begin --Enter the Devil Catacomb
if pc.get_level() < 75 then
say_title(mob_name(npc.get_race()) ..":")
say("Du möchtest in die Katakomben des Teufels?")
say("")
say("So einfach geht das nicht, denn du hast")
say("nicht die nötige Erfahrung dazu.")
say("Komme am Besten wieder, wenn du Level 75")
say("erreicht hast... ")
else
say_title(mob_name(npc.get_race()) ..":")
say("Du möchtest in die Katakomben des Teufels?")
say("")
say("Ich kann dich gerne teleportieren, doch")
say("ich möchte dich warnen: Es sind schon viele")
say("eingetreten aber nicht mehr zurück gekommen!")
say("")
say("Soll ich dich ernsthaft teleportieren?")
say("")
local s = select("Ja","Nein")
if s == 2 then
return
elseif s == 1 then
pc.warp(315300, 1209200)
end
end
end


when kill with pc.get_map_index() == 90 and pc.countitem(30311) < 1 begin
local rnd = number(1,100)
if rnd == 6 then
game.drop_item_with_ownership(30311, 1)
end
end


when 30101.take with item.vnum == 30311 begin --Teleport to 2nd Stage with the passenger ticket

if party.is_party() then

if party.is_leader() then
say("Das Eingangsportal wurde geöffnet.")
say("Geh schnell hindurch!")
wait()
say("Hier beginnt das wahre Abenteuer! Du hast")
say("jedoch nur eine Stunde Zeit, um die Devil's")
say("Catacomb zu erforschen.")
item.remove()
sys_log(0, "DC create try by "..pc.get_name())
d.join(90)
else
say("Nur der Leiter der Gruppe darf bestimmen.")
end

else
say("Ohne Gruppe kommst du nicht weiter.")
end

end


when login with devilscatacomb.isInCatacomb() begin
say("Zerstöre das Siegel dieses Tores, um die 3. Ebene")
say("zu erreichen!")
say("Du hast noch 60 Minute(n) Zeit.")
d.spawn_mob(30103, 740, 227)
loop_timer("item_check", 10)
if party.is_leader() then
d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
d.regen_file("data/dungeon/dc/dc_doors.txt")
d.setf("level", 2)
server_timer("runtime", 6, pc.get_map_index())
elseif pc.is_gm() and not party.is_party() then
d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
d.regen_file("data/dungeon/dc/dc_doors.txt")
d.setf("level", 2)
server_timer("runtime", 6, pc.get_map_index())
end
end


when item_check.timer with d.getf("level") == 3 begin
if pc.countitem(30319) >= 1 then
say("Du hast den Schrumpfkopf und wirst nun auf die")
say("3. Ebene teleportiert.")
pc.remove_item(30319, 1)
timer("item_check_end", 2)
else
d.exit_all()
end
end


when item_check_end.timer begin
cleartimer("item_check")
end


when runtime.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("time", get_time()+60*60*1)
devilscatacomb.getTimeLeft()
server_timer("runtime_end", 60*60, get_server_timer_arg())
end
end


when runtime_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist um.")
d.exit_all()
end
end


when 30103.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 2 and npc.lock() begin
say("Während du den Stein genauer untersuchst, kannst")
say("du eine Gravur erkennen.")
wait()
say("Lediglich der Besitzer des Schrumpfkopfes")
say("darf eintreten, nachdem die Siegel dreier Türen")
say("aufgebrochen wurden.")
say("Wenn du dieses Relikt nicht bei dir trägst,")
say("wirst du aus der Devil's Catacomb teleportiert.")
say("")
wait()
local s = select("Ja, lass mich eintreten!", "Nein, ich möchte nicht eintreten.")
if s == 2 then
return
elseif s == 1 then
if pc.count_item(30319) >= 1 then
npc.purge()
d.setf("level", 3)
d.purge()
d.clear_regen()
timer("dc_jump_3", 6)
else
say("Du hast keinen Schrumpfkopf und wirst nun")
say("aus der Höhle teleportiert ...")
pc.warp(591374, 99325, 65)
end
end
end


when dc_jump_3.timer begin
d.set_regen_file("data/dungeon/dc/dc_regen2.txt")
d.notice("Suche den richtigen Metinstein und zerstöre ihn!")
devilscatacomb.getTimeLeft()
d.jump_all(4451, 12282)
local positions = devilscatacomb.get3FloorStonePositions()
for i = 1, 6 do
d.set_unique("fake" .. i , d.spawn_mob(8037, positions[1], positions[2]))
end
d.set_unique("real", d.spawn_mob(8037, positions[7][1], positions[7][2]))
server_loop_timer('dc_stone3_update', 10, pc.get_map_index())

end


when dc_stone3_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 30 then
if not d.is_unique_dead("fake" .. i) then
d.purge_unique("fake" .. i)
end
d.setf("fakedead" .. i, 1)
d.notice("Du hast den falschen Metinstein zerstört. Finde den richtigen!");
end
end
end
else
server_timer("dc_stone_end3", 5, get_server_timer_arg())
d.notice("Der richtige Metinstein wurde zerstört. Du darfst nun die 4. Ebene betreten.")
end
else
server_timer('dc_stone3_stop_timer', 1, get_server_timer_arg())
end
end


when dc_stone3_stop_timer.server_timer begin
clear_server_timer('dc_stone3_update', get_server_timer_arg())
end


when dc_stone_end3.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer('dc_stone3_update', get_server_timer_arg())
d.setf("level", 4)
d.jump_all(3347, 12810)
d.clear_regen()
d.set_regen_file("data/dungeon/dc/dc_regen3.txt")
d.regen_file("data/dungeon/dc/dc_warps.txt")
d.spawn_mob(30104, 500, 716)
end
end


when 30104.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 4 and npc.lock() begin
npc.purge()
say_in_map(pc.get_map_index(),"Du hast es geschafft! Hier ist der Ausgang des[ENTER]Labyrinths. Steige nun in die 5. Ebene hinab.")
server_timer("dc4_enter", 6, pc.get_map_index())
end


when dc4_enter.server_timer begin
if d.select(get_server_timer_arg()) then
d.jump_all(3918, 12939)

d.set_regen_file("data/dungeon/dc/dc_regen4.txt")
d.spawn_mob(30102, 848, 739)

local mob_pos = { {1006, 649}, {979, 829}, {691, 822}, {714, 653}, {848, 593} }
local rnd = number(1, 5)
d.spawn_mob(2591, mob_pos[rnd][1], mob_pos[rnd][2])

server_timer("dc4_message", 3, get_server_timer_arg())
end
end


when dc4_message.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Besiege die Dämonenwachen, um das Fratzen-Totem zu erhalten. Es dient dir als Schlüssel zur 6. Ebene.")
devilscatacomb.getTimeLeft()
end
end


when 30102.take with item.vnum == 30312 begin
say("Du hast das Fratze-Totem.")
say("Nun kannst du in die nächste Ebene!")
say("")
wait()
say("Viel Glück!")
item.remove()
npc.purge()
d.clear_regen()
timer("dc_level_5", 6)
end


when dc_level_5.timer begin
d.jump_all(4312, 12799)
timer("dc_level_5_start", 5)
end


when dc_level_5_start.timer begin
d.setf("level", 5)
d.notice("Besiege Charon und seine Schergen!")
devilscatacomb.getTimeLeft()
d.regen_file("data/dungeon/dc/dc_regen5.txt")
d.spawn_mob(2597, 1301, 699)
end


when kill begin
if devilscatacomb.isInCatacomb() then
if npc.race == 2597 then
if d.count_monster() < 1000 then
d.setf("level", 6)
d.clear_regen()
timer("dc_level_5_end", 12)
else
if d.getf("charon_spawns") < 4 then
d.spawn_mob(2597, 1301, 699)
d.setf("charon_spawns", d.getf("charon_spawns") + 1)
else
d.notice("Du hast versagt Charon hat dich mit seinen Schergen")
d.notice("überlistet. Du verlässt nun die Höhle")
local nextTime=get_time()+time_min_to_sec(1)
d.setqf("__NEXT_TIME__", nextTime)
d.exit_all()
end
end
end

if npc.race == 2598 and d.getf("level") == 6 then
clear_server_timer("runtime", pc.get_map_index())
clear_server_timer("runtime_end", pc.get_map_index())
notice_all(pc.get_name().." und "..tonumber(party.get_near_count()-1).." weitere Gruppenmitglieder haben Azrael besiegt!")
timer("glory_message", 6)
end

if npc.race == 2591 then
game.drop_item_with_ownership(30312, 1)
end
end
end


when dc_level_5_end.timer begin
say_in_map(pc.get_map_index(),"Du hast Charon besiegt! Nun wirst du[ENTER]zur letzten Ebene der Devil's Catacomb[ENTER]teleportiert.")
timer("dc_level_6", 3)
end


when dc_level_6.timer begin
d.jump_all(3145, 13187)
timer("dc_level_6_into", 3)
end

when dc_level_6_into.timer begin
d.regen_file("data/dungeon/dc/dc_regen6.txt")
d.spawn_mob(2598, 74, 1103)
d.notice("Besiege Azrael!")
end

when glory_message.timer begin
local text = "Azrael wurde besiegt. Endlich herrscht[ENTER]Frieden in der Devil's Catacomb. Du wirst nun[ENTER]an die Oberfläche teleportiert."
say_in_map(pc.get_map_index(), text)
timer("dc_end", 20)
end


when dc_end.timer begin
local nextTime=get_time()+time_min_to_sec(1)
d.setqf("__NEXT_TIME__", nextTime)
d.exit_all()
end

end

state _FUNC_ begin

function getLevelByCord()

if pc.get_local_x() > 30 and pc.get_local_y() > 45 and pc.get_local_x() < 450 and pc.get_local_y() < 450 then
return 1

elseif pc.get_local_x() > 540 and pc.get_local_y() > 39 and pc.get_local_x() < 1000 and pc.get_local_y() < 462 then
return 2

elseif pc.get_local_x() > 1048 and pc.get_local_y() > 35 and pc.get_local_x() < 1455 and pc.get_local_y() < 458 then
return 3

elseif pc.get_local_x() > 31 and pc.get_local_y() > 541 and pc.get_local_x() < 564 and pc.get_local_y() < 1058 then
return 4

elseif pc.get_local_x() > 650 and pc.get_local_y() > 540 and pc.get_local_x() < 1050 and pc.get_local_y() < 955 then
return 5

elseif pc.get_local_x() > 1175 and pc.get_local_y() > 576 and pc.get_local_x() < 1420 and pc.get_local_y() < 810 then
return 6

else
return 0
end

end

function isInCatacomb()

if pc.get_map_index() >= (90 * 10000) and pc.in_dungeon() then
return true
else
return false
end

end

function get3FloorStonePositions()

local positions =
{
{1365, 352}, {1349, 150}, {1133, 167}, {1151, 364},
{1234, 136}, {1255, 371}, {1132, 245},
}

for i = 1, 6 do

local j = number(i, 7)

if i != j then

local t = positions;
positions = positions[j];
positions[j] = t;

end

end

return positions

end

function getTimeLeft()

local secondsLeft = (d.getf("time") - get_time())
local minutesLeft = math.ceil(secondsLeft / 60)

d.notice("Du hast noch "..minutesLeft.." Minute(n) Zeit.")

end

end
end

[ Postat de pe iPhone ] Imagine
Il ai si tu intr-un pastebin ceva?
Închis
Răspunsuri
1
Vizualizări
155
Răspunsuri
1
Vizualizări
106
Răspunsuri
3
Vizualizări
374
Răspunsuri
3
Vizualizări
321

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie