Files
2026-06-01 12:46:52 +02:00

266 lines
9.4 KiB
Lua

--- Cubric.lua
--- Edited And delete In ETC_dungeon_prop.lua
--- remove Quest for cubric npc 11691 quest Id = 3600
function on_create_cubric_instance( layer )
-- 큐브릭 인스턴스 던전 ID: 30000
set_instance_dungeon_flag( 30000, layer, 'QuestInProgressCount', 0 ) -- 인던 진행 퀘스트 체크 대상인 3607 퀘스트를 진행 중인 유저 수 체크용
set_instance_dungeon_flag( 30000, layer, 'AdditionalBossRespawned', 0 ) -- 인던 진행 퀘스트로 인해 추가 보스몹들의 리젠 여부 체크용(중첩 리젠 방지용)
set_instance_dungeon_flag( 30000, layer, 'ExitPropRespawned', 0 ) -- 인던 최종 출구 프랍 리젠 여부 체크용(중첩 리젠 방지용)
set_instance_dungeon_flag( 30000, layer, 'MissionRevealed', 0 ) -- 아크샤 두 마리 잡으라는 미션을 유저들에게 보여줬는지 체크용(0:활성화 전, 1:활성화 중, 2:미션 완료)
end
-- 용도: 큐브릭 인스턴스 던전에 유저가 참여할 때마다 호출되는 함수
-- 역할: 방금 참여한 유저가 체크 대상인 퀘스트를 보유하고 있었을 경우 던전 내부 체크용 변수 세팅
function on_join_cubric( layer )
if get_quest_progress( 3607 ) == 1 then
-- 큐브릭 인스턴스 던전 ID: 30000
set_instance_dungeon_flag( 30000, layer, 'QuestInProgressCount', get_instance_dungeon_flag( 30000, layer, 'QuestInProgressCount' ) + 1 )
end
-- 미션 UI가 아직 활성화된 이후에 입장하는 거라면 미션 UI 표시
if get_instance_dungeon_flag( 30000, layer, 'MissionRevealed' ) == 1 then
-- 미션 제목
send_mission_title( '@1234' )
-- 0번 미션 목표(서쪽의 아크샤)
send_mission_objective( 0, 1, '@1235' )
-- 1번 미션 목표(동쪽의 아크샤)
send_mission_objective( 1, 1, '@1236' )
-- 2번 미션 목표(보스방 드가세요)
send_mission_objective( 2, 1, '@1237' )
-- 미션 보상 안내
send_mission_reward( '@1238' )
-- 미션 목표 진행 상태
update_cubric_mission( false, layer )
end
end
function on_leave_cubric( layer )
if get_quest_progress( 3607 ) == 1 then
set_instance_dungeon_flag( 30000, layer, 'QuestInProgressCount', get_instance_dungeon_flag( 30000, layer, 'QuestInProgressCount' ) - 1 )
end
if get_instance_dungeon_flag( 30000, layer, 'MissionRevealed' ) == 1 then
send_mission_title( '' )
end
end
function cubric_check_respawn_group_clear2( respawn_group, x, y, layer )
if respawn_group == 1 or respawn_group == 2 then -- 부 보스 그룹으로 리젠된 몬스터가 죽은 경우
add_field_prop( 60156, 0, x, y, layer, 0 )
update_cubric_mission( true, layer )
elseif respawn_group == 3 then
if get_instance_dungeon_flag( 30000, layer, 'QuestInProgressCount' ) == 0 then
add_field_prop( 60102, 0, 99954, 31302, layer, 0 ) -- 출구 프랍 99954, 31302 로 옮겨주면 좋겠다. 기존 좌표 99954, 31539
set_instance_dungeon_flag( 30000, layer, 'ExitPropRespawned', 1 )
add_field_prop( 9001, 0, 100180, 31767, layer, -3, 0, 0, 0, 1, 1, 1 ) --보스 생성 프랍
broadcast_notice( 1, "@90610144", 30000, layer ) -- 프랍 클릭하면 보스 나온다는 메세지?
end
end
end
function warp_to_cubric_branch_room( side )
local layer = gv( 'layer' )
if side == 1 then
warp( 98858, 30827, layer )
elseif side == 2 then
warp( 99180, 30825, layer )
end
end
function warp_to_cubric_boss_room()
local layer = gv( 'layer' )
warp( 99711, 31535, layer )
end
function cubric_reward_distributer()
--퀘스트 보상 Lv 150, 1% 수준
insert_gold( 300000 )
add_exp_jp( 5131363, 884717 )
cprint( '@1239' )
end
------------ CUBRIC REPOP By FunZone
function cubric_check_respawn_group_clear( respawn_group, x, y, layer )
local cnt = get_alive_instance_respawn_group_monster_count( 30000, layer, respawn_group )
-- Annonce Kill Monster For next wave
monster_group_array = {2+3+3 , 3+2+3 , 2+3+2 , 3+3+2 , 3+3+2 , 2+3+2 , 2+3+3 , 1+3+3 , 2+2+2 , 3+3+2 , 2+2+2 , 3+2+2 , 3+2+2 , 2+3+3 , 3+3+3 , 2+2+2 , 1+3+3 , 1+3+3}
broadcast_mission_objective_progress( 1, 0, monster_group_array[respawn_group] - cnt, 30000, layer )
respawn_array = {}
respawn_array[1] = {30000,30001,30002}
respawn_array[2] = {30003,30004,30005}
respawn_array[3] = {30006,30007,30008}
respawn_array[4] = {30009,30010,30011}
respawn_array[5] = {30012,30013,30014}
respawn_array[6] = {30021,30022,30023}
respawn_array[7] = {30018,30019,30020}
respawn_array[8] = {30015,30016,30017}
respawn_array[9] = {30024,30025,30026}
respawn_array[10] = {30030,30031,30032}
respawn_array[11] = {30033,30034,30035}
respawn_array[12] = {30036,30037,30038}
respawn_array[13] = {30039,30040,30041}
respawn_array[14] = {30042,30043,30044}
respawn_array[15] = {30045,30046,30047}
respawn_array[16] = {30048,30049,30050}
respawn_array[17] = {30051,30052,30053}
respawn_array[18] = {30027,30028,30029} -- Butka
respawn_array[19] = {}
respawn_array[20] = {}
-- add_instance_dungeon_monster( 30018 , 30000, 1 )
if cnt == 0 then
wave = respawn_group + 1
if wave == 19 then -- Final Boss
send_mission_title( '' )
add_field_prop( 60102, 0, 99954, 31302, layer, 0 )
set_instance_dungeon_flag( 30000, layer, 'ExitPropRespawned', 1 )
add_field_prop( 9001, 0, 100180, 31767, layer, -3, 0, 0, 0, 1, 1, 1 )
broadcast_notice( 1, "@90610144", 30000, layer )
end
if table.getn(respawn_array[wave]) > 0 then
for i = 1 , table.getn(respawn_array[wave]) do
add_instance_dungeon_monster( respawn_array[wave][i], 30000, layer )
end
send_mission_title( 'Stage : ' .. wave ) --'@9901'
send_mission_objective( 0, monster_group_array[respawn_group+1], '@1224' )
send_mission_reward("No reward")
end
end
--[[
if monster_group == 1 then
add_instance_dungeon_monster( 50023, 50000, layer )
add_instance_dungeon_monster( 50024, 50000, layer )
add_instance_dungeon_monster( 50025, 50000, layer )
send_mission_title( '@9901' )
send_mission_objective( 0, monster_group_array[monster_group+1], '@1224' )
send_mission_reward("No reward")
elseif monster_group == 2 then
add_instance_dungeon_monster( 50030, 50000, layer)
add_instance_dungeon_monster( 50031, 50000, layer)
add_instance_dungeon_monster( 50032, 50000, layer)
add_instance_dungeon_monster( 50033, 50000, layer)
add_instance_dungeon_monster( 50034, 50000, layer)
add_instance_dungeon_monster( 50035, 50000, layer)
send_mission_title( '@9901' )
send_mission_objective( 0, 13, '@1224' )
send_mission_reward("No reward")
elseif monster_group == 3 then
add_instance_dungeon_monster( 50036, 50000, layer)
add_instance_dungeon_monster( 50037, 50000, layer)
add_instance_dungeon_monster( 50038, 50000, layer)
add_instance_dungeon_monster( 50039, 50000, layer)
add_instance_dungeon_monster( 50040, 50000, layer)
add_instance_dungeon_monster( 50041, 50000, layer)
add_instance_dungeon_monster( 50042, 50000, layer)
add_instance_dungeon_monster( 50043, 50000, layer)
add_instance_dungeon_monster( 50044, 50000, layer)
add_instance_dungeon_monster( 50045, 50000, layer)
add_instance_dungeon_monster( 50046, 50000, layer)
add_instance_dungeon_monster( 50047, 50000, layer)
add_instance_dungeon_monster( 50048, 50000, layer)
send_mission_title( '@9903' )
send_mission_objective( 0, 23, '@1224' )
send_mission_reward("5% Xp [lv < 160]")
elseif monster_group == 4 then
add_instance_dungeon_monster( 50049, 50000, layer)
add_instance_dungeon_monster( 50050, 50000, layer)
add_instance_dungeon_monster( 50051, 50000, layer)
add_instance_dungeon_monster( 50052, 50000, layer)
add_instance_dungeon_monster( 50053, 50000, layer)
add_instance_dungeon_monster( 50054, 50000, layer)
add_instance_dungeon_monster( 50055, 50000, layer)
add_instance_dungeon_monster( 50056, 50000, layer)
add_instance_dungeon_monster( 50057, 50000, layer)
send_mission_title( '@9903' )
send_mission_objective( 0, 23, '@1224' )
send_mission_reward("10% Xp [lv < 160]")
do_each_player_in_instance_dungeon( 50000, layer, 'circus_exp_reward(5)' )
elseif monster_group == 5 then
do_each_player_in_instance_dungeon( 50000, layer, 'circus_exp_reward(10)' )
add_field_prop( 60191, 0, 39552, 136341, layer, 0, 0, 0, 3, 0.3, 0.3, 0.3 )
if get_instance_dungeon_type_id( 50000, layer ) == 0 then -- BOSS REZU
add_field_prop( 9006, 0, 39556, 137014, layer, -3, 0, 0, 0, 1, 1, 1 )
end
broadcast_mission_title( 1, '', 50000, layer )
end
]]--
end
function on_join_cubric( layer )
local cnt_1 = get_alive_instance_respawn_group_monster_count( 50000, layer, 1 )
local cnt_2 = get_alive_instance_respawn_group_monster_count( 50000, layer, 2 )
local cnt_3 = get_alive_instance_respawn_group_monster_count( 50000, layer, 3 )
local cnt_4 = get_alive_instance_respawn_group_monster_count( 50000, layer, 4 )
local cnt_5 = get_alive_instance_respawn_group_monster_count( 50000, layer, 5 )
local monster_group_array = {2+3+3 , 3+2+3 , 2+3+2 , 3+3+2 , 3+3+2 , 2+3+2 , 2+3+3 , 1+3+3 , 2+2+2 , 3+3+2 , 2+2+2 , 3+2+2 , 3+2+2 , 2+3+3 , 3+3+3 , 2+2+2 , 1+3+3 , 1+3+3}
for i = 1 , table.getn(monster_group_array) do
if get_alive_instance_respawn_group_monster_count( 30000, layer, i ) > 0 then
if i >= 19 then
send_mission_title( '' )
else
send_mission_title( 'Stage : ' .. i ) --'@9901'
send_mission_objective( 0, monster_group_array[i], '@1224' )
send_mission_reward("No reward")
end
else
end
end
end