266 lines
9.4 KiB
Lua
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
|