You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

441 lines
13 KiB

; 전직필드
open [main]
var InterruptBlock ""
InterruptArg ""
PlayerHandle ""
ShadowHandle ""
Door1 "" ; 첫째방 출구
Door2 "" ; 둘째방 입구
Door3 "" ; 둘째방 출구
Door4 "" ; 셋째방 입구
ChiefA "" ChiefD "" ; 치프몹들
ChiefAA "" ChiefDD "" ; 치프몹들
ShadowKebingA "" ShadowKebingB "" ShadowKebingC ""
ShadowKebingDead ""
; 아래는 이펙트
Status0 "" Status1 "" Status2 "" Status3 "" Status4 "" Status5 "" Status6 "" ; 석상들
Gem ""
; index
ShadowMobIndex ""
LoginWait ""
Temp "".
; 리젠/문닫기
doorbuild Door1 "KQ_Gate4" 1018 1560 0 1000 "Normal".
doorclose Door1 "Door01".
doorbuild Door2 "KQ_Gate4" 2098 3291 270 1000 "Normal".
doorclose Door2 "Door02".
doorbuild Door3 "KQ_Gate4" 3845 3266 90 1000 "Normal".
doorclose Door3 "Door03".
doorbuild Door4 "KQ_Gate4" 5162 4629 0 1000 "Normal".
dooropen Door4 "Door04".
scriptfile "JobChange1".
waitlogin LoginWait. ; 플레이어의 로긴 기다림
if LoginWait == 0
then open
call "QuestFail".
close
findhandle PlayerHandle "Player" 0. ; 플레이어의 핸들을 찾음(처음 하나만)
ShadowMobIndex = "Job1_" % @CharClass(PlayerHandle) % "-m".
call "FirstContact".
call "FightSkeletons".
call "RoadToLastRoom".
call "LastBattle".
close
open [QuestSuccess]
effectobj Temp PlayerHandle "Job1_Dn_ShadowEnd" 4000 1000.
npcchat ShadowHandle "ShadowDead0".
npcchat ShadowHandle "ShadowDead1".
questresult Suc. ; 성공패킷 날림
itemcreate PlayerHandle "JOB_GradeSymbol".
broadcast all "KQReturn30".
pause sec 10.
broadcast all "KQReturn20".
pause sec 10.
broadcast all "KQReturn10".
pause sec 5.
broadcast all "KQReturn5".
pause sec 5.
linkto all "RouVal01" "RouVal01" 12842 6467.
break "main".
close
open [QuestFail]
questresult Fail. ; 실패패킷 날림
broadcast all "KQReturn30".
pause sec 10.
broadcast all "KQReturn20".
pause sec 10.
broadcast all "KQReturn10".
pause sec 5.
broadcast all "KQReturn5".
pause sec 5.
linkto all "RouVal01" "RouVal01" 12842 6467.
break "main".
close
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
open [FirstContact]
abstateset PlayerHandle "StaQuestEntangle" 1 4200000000. ; 플레이어 멈춤
effectloc Temp "Job1_Dn_ShadowStart" 1028 575 0 4000 1000. ; 4초간
pause sec 2.
mobregen ShadowHandle ShadowMobIndex 1033 704 180 1000 "Shadow" PlayerHandle. ; 만들어짐
npcchat ShadowHandle "StartDear0".
pause sec 2.
npcchat ShadowHandle "StartDear1".
pause sec 2.
npcchat ShadowHandle "StartDear2".
abstatereset PlayerHandle "StaQuestEntangle". ; 플레이어
change2mob ShadowHandle ShadowMobIndex. ; 몹도
mobregen ShadowKebingA "Job1_Kebing" 1677 3140 0 1000 "Normal".
abstateset ShadowKebingA "StaQuestEntangle" 1 4200000000. ; 깨빙 만들고 일단 묶어놓음
mobregen ShadowKebingB "Job1_Kebing" 1677 3140 0 1000 "Normal".
abstateset ShadowKebingB "StaQuestEntangle" 1 4200000000. ; 깨빙 만들고 일단 묶어놓음
ShadowKebingDead = 0.
timelimit Min 20. ; 제한시간 20분
interruptclear all.
interruptset PlayerEliminate "" 1 "QuestFail".
interruptset TimeOut "" 1 "QuestFail".
interruptset HPLow "" 1 ShadowHandle 750 "First_ShadowFlie". ; 체력이 닳았을때 달아남
interruptset AreaEntry "" 1 "Zone_Mob01" "FirstKebing".
interruptset DeadIndex "" 1 "Job1_Kebing" "FirstKebingDead".
infinite
open
waitinterrupt InterruptBlock "InterruptArg".
call InterruptBlock.
close
close
open [First_ShadowFlie]
abstateset PlayerHandle "StaQuestEntangle" 1 10000. ; 플레이어 멈춤(10초간)
npcchat ShadowHandle "ShadowFlie".
change2npc ShadowHandle ShadowMobIndex.
dooropen Door1 "Door01".
run ShadowHandle 1120 2978.
run ShadowHandle 1383 3257.
run ShadowHandle 3785 3275.
run ShadowHandle 3780 3275.
close
open [FirstKebing]
abstatereset ShadowKebingA "StaQuestEntangle". ; 풀어놓음
abstatereset ShadowKebingB "StaQuestEntangle". ; 풀어놓음
doorclose Door2 "Door02".
close
open [FirstKebingDead]
ShadowKebingDead = ShadowKebingDead + 1.
if ShadowKebingDead < 2
then open
interruptset DeadIndex "" 1 "Job1_Kebing" "FirstKebingDead".
break "FirstKebingDead".
close
dooropen Door2 "Door02".
break "FirstContact".
close
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
open [FightSkeletons]
interruptclear all.
interruptset PlayerEliminate "" 1 "QuestFail".
interruptset TimeOut "" 1 "QuestFail".
interruptset AreaEntry "" 1 "Zone_Mob02" "SkelRegen".
infinite
open
waitinterrupt InterruptBlock "InterruptArg".
call InterruptBlock.
close
close
open [SkelRegen]
doorclose Door2 "Door02".
doorclose Door3 "Door03".
npcchat ShadowHandle "SkellBreed0".
pause Sec 2.
npcchat ShadowHandle "SkellBreed2".
mobregen Temp "Job1_Skeleton" 2773 3306 0 1000 "Normal".
mobregen Temp "Job1_Skeleton" 3619 3786 0 1000 "Normal".
mobregen Temp "Job1_Skeleton" 2340 2868 0 1000 "Normal".
mobregen Temp "Job1_SkelArcher" 2446 3302 0 1000 "Normal".
mobregen Temp "Job1_SkelArcher" 3582 2803 0 1000 "Normal".
mobregen Temp "Job1_SkelArcher" 2476 3774 0 1000 "Normal".
vanish ShadowHandle.
interruptset MobEliminate "" 1 "SkelBreak".
close
open [SkelBreak]
break "FightSkeletons".
close
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
open [RoadToLastRoom]
mobregen ShadowKebingA "Job1_Kebing" 5004 4056 0 1000 "Normal".
abstateset ShadowKebingA "StaQuestEntangle" 1 4200000000. ; 깨빙 만들고 일단 묶어놓음
mobregen ShadowKebingB "Job1_Kebing" 5004 4056 0 1000 "Normal".
abstateset ShadowKebingB "StaQuestEntangle" 1 4200000000. ; 깨빙 만들고 일단 묶어놓음
mobregen ShadowKebingC "Job1_Kebing" 5004 4056 0 1000 "Normal".
abstateset ShadowKebingC "StaQuestEntangle" 1 4200000000. ; 깨빙 만들고 일단 묶어놓음
dooropen Door3 "Door03".
interruptclear all.
interruptset PlayerEliminate "" 1 "QuestFail".
interruptset TimeOut "" 1 "QuestFail".
interruptset AreaEntry "" 1 "Zone_Mob03" "AnotherKebing".
interruptset AreaEntry "" 1 "Zone_Mob04" "LightOff".
infinite
open
waitinterrupt InterruptBlock "InterruptArg".
call InterruptBlock.
close
close
open [AnotherKebing]
abstatereset ShadowKebingA "StaQuestEntangle". ; 깨빙 풀어줌
abstatereset ShadowKebingB "StaQuestEntangle". ; 깨빙 풀어줌
abstatereset ShadowKebingC "StaQuestEntangle". ; 깨빙 풀어줌
close
open [LightOff]
doorclose Door4 "Door04".
maplight 0 0 0.
effectloc Status0 "Job1_Dn_Gob01" 109 4832 180 3600000 1000.
effectloc Status1 "Job1_Dn_Gob02" 106 4161 180 3600000 1000.
effectloc Status2 "Job1_Dn_Gob03" 578 3690 180 3600000 1000.
effectloc Status3 "Job1_Dn_Gob04" 1245 3689 180 3600000 1000.
effectloc Status4 "Job1_Dn_Gob05" 1719 4157 180 3600000 1000.
effectloc Status5 "Job1_Dn_Gob06" 1720 4826 180 3600000 1000.
effectloc Status6 "Job1_Dn_Gob07" 1250 5300 180 3600000 1000.
; 치프몹들 만듦
mobregen ChiefA "Job1_MarloneFighter" 5867 6072 0 1000 "Normal".
mobregen ChiefD "Job1_MarloneArcher" 4700 6049 0 1000 "Normal".
break "RoadToLastRoom".
close
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
open [LastBattle]
interruptclear all.
interruptset PlayerEliminate "" 1 "QuestFail".
interruptset TimeOut "" 1 "QuestFail".
interruptset AreaEntry "" 1 "Zone_Mob05" "LightOn".
interruptset DeadHandle "" 1 ChiefA "ChiefADead".
interruptset DeadHandle "" 1 ChiefD "ChiefDDead".
infinite
open
waitinterrupt InterruptBlock "InterruptArg".
call InterruptBlock.
close
close
open [ChiefADead]
ChiefA = 0.
close
open [ChiefDDead]
ChiefD = 0.
close
open [LightOn]
effectloc Temp "Job1_Dn_Red" 129 4491 180 3600000 1000.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 122 4827 273 3600000 1000.
maplight 36 36 36.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 119 4169 227 3600000 1000.
maplight 72 72 72.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 585 3704 182 3600000 1000.
maplight 108 108 108.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 1240 3700 137 3600000 1000.
maplight 144 144 144.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 1707 4162 91 3600000 1000.
maplight 180 180 180.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 1711 4819 48 3600000 1000.
maplight 216 216 216.
pause MilliSec 500.
effectloc Temp "Job1_Dn_GoblinFire" 1249 5288 3 3600000 1000.
maplight 255 255 255.
abstateset PlayerHandle "StaQuestEntangle" 1 4200000000. ; 플레이어 멈춤
mobregen ShadowHandle ShadowMobIndex 1380 4500 90 1000 "Normal" PlayerHandle. ; 만들어짐
npcchat ShadowHandle "Last0".
pause Sec 2.
npcchat ShadowHandle "Last1".
pause Sec 2.
npcchat ShadowHandle "Last2".
abstatereset PlayerHandle "StaQuestEntangle".
change2mob ShadowHandle ShadowMobIndex. ; 몹도
; 죽이지 않고 지나온 치프몹 소환
if ChiefA =!= 0
then open
vanish ChiefA.
ChiefA = 0.
mobregen ChiefAA "Job1_MarloneFighter" 1380 4500 0 1000 "Normal".
close
else open
ChiefAA = 0.
close
if ChiefD =!= 0
then open
vanish ChiefD.
ChiefD = 0.
mobregen ChiefDD "Job1_MarloneArcher" 1380 4500 0 1000 "Normal".
close
else open
ChiefDD = 0.
close
call "AggroPlus".
interruptset Sec "" 99999 5 "AggroPlus". ; 수동몹의 어그로는 일정시간마다 풀리므로 계속 더해주어야
interruptset DeadHandle "" 1 ShadowHandle "QuestSuccess".
; 여기서부터는 석상이 깨질 간격을 계산하는 부분
; 작동이 너무 느리면 다음과 같은 문장으로 바꿀것
;interruptset Sec "" 7 @CalcInterval(@RestSec() 8 60) "Step_Room4_StatusBreak".
var Interval "".
Interval = @RestSec() / 6.
if Interval < 5
then open
Interval = 5.
close
if Interval > 60
then open
Interval = 60.
close
call "StatusBreak".
interruptset Sec "" 7 Interval "StatusBreak".
close
open [AggroPlus]
aggro ChiefAA PlayerHandle 1.
aggro ChiefDD PlayerHandle 1.
close
open [StatusBreak]
if Status0 != 0
then open
mobregen Temp "Job1_Goblin" 109 4832 273 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 109 4832 93 3600000 1000.
vanish Status0.
Status0 = 0.
break "StatusBreak".
close
if Status1 != 0
then open
mobregen Temp "Job1_Goblin" 106 4161 227 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 106 4161 47 3600000 1000.
vanish Status1.
Status1 = 0.
break "StatusBreak".
close
if Status2 != 0
then open
mobregen Temp "Job1_Goblin" 578 3690 182 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 578 3690 2 3600000 1000.
vanish Status2.
Status2 = 0.
break "StatusBreak".
close
if Status3 != 0
then open
mobregen Temp "Job1_Goblin" 1245 3689 137 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 1245 3689 317 3600000 1000.
vanish Status3.
Status3 = 0.
break "StatusBreak".
close
if Status4 != 0
then open
mobregen Temp "Job1_Goblin" 1719 4157 91 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 1719 4157 271 3600000 1000.
vanish Status4.
Status4 = 0.
break "StatusBreak".
close
if Status5 != 0
then open
mobregen Temp "Job1_Goblin" 1720 4826 48 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 1720 4826 228 3600000 1000.
vanish Status5.
Status5 = 0.
break "StatusBreak".
close
if Status6 != 0
then open
mobregen Temp "Job1_Goblin" 1250 5300 3 1000 "Normal".
effectloc Temp "Job1_Dn_Goblinskin" 1250 5300 183 3600000 1000.
vanish Status6.
Status6 = 0.
break "StatusBreak".
close
close