Initial release of nif_dun quests (#7349)

* Added mobs db, mobs spawn and quests related to nif_dun01 and nif_dun02
* Some data after rebalance is missing but the base is there

Thanks to @aleos89 @Lemongrass3110 @Pokye @OptimusM @Tokeiburu for the reviews !
This commit is contained in:
Atemo 2023-03-16 13:24:32 +01:00 committed by GitHub
parent 067c21b647
commit 19bbd82c55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1475 additions and 19 deletions

View File

@ -97145,25 +97145,447 @@ Body:
- Item: R001_Bestia_Card
Rate: 1
StealProtected: true
# - Id: 20935
# AegisName: GAN_CEANN
# - Id: 20936
# AegisName: DISGUISER
# - Id: 20937
# AegisName: BRUTAL_MURDERER
# - Id: 20938
# AegisName: GHOST_CUBE
# - Id: 20939
# AegisName: LUDE_GAL
# - Id: 20940
# AegisName: BLUEMOON_LOLI_RURI
# - Id: 20941
# AegisName: GROTE
# - Id: 20942
# AegisName: PIERROTZOIST
# - Id: 20943
# AegisName: DEATH_WITCH
# DamageTaken: 10
- Id: 20935
AegisName: GAN_CEANN
Name: Gan Ceann
Level: 215
Hp: 11785610
BaseExp: 267854
JobExp: 188128
Attack: 7951
Attack2: 922
Defense: 380
MagicDefense: 99
MagicResistance: 130
Resistance: 130
Str: 278
Agi: 166
Vit: 121
Int: 121
Dex: 178
Luk: 123
AttackRange: 2
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Neutral
ElementLevel: 1
WalkSpeed: 155
AttackDelay: 238
AttackMotion: 576
DamageMotion: 360
Ai: 04
Drops:
- Item: Broken_Armor_Piece
Rate: 2400
- Item: Broken_Steel_Piece
Rate: 1600
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Shadowdecon
Rate: 12
- Item: Zelunium
Rate: 12
- Item: Gan_Ceann_Card
Rate: 1
StealProtected: true
- Id: 20936
AegisName: DISGUISER
Name: Disguiser
Level: 254
Hp: 42303800
BaseExp: 335956
JobExp: 235169
Attack: 9874
Attack2: 1230
Defense: 542
MagicDefense: 168
MagicResistance: 171
Resistance: 187
Str: 314
Agi: 203
Vit: 147
Int: 135
Dex: 201
Luk: 198
AttackRange: 2
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demon
Element: Undead
ElementLevel: 2
WalkSpeed: 150
AttackDelay: 384
AttackMotion: 768
DamageMotion: 384
Ai: 04
Drops:
- Item: Red_Scarf
Rate: 2500
- Item: Tangled_Chain
Rate: 1800
- Item: White_Powder
Rate: 50
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Zelunium
Rate: 25
- Item: Shadowdecon
Rate: 25
- Item: Disguiser_Card
Rate: 1
StealProtected: true
- Id: 20937
AegisName: BRUTAL_MURDERER
Name: Brutal Murderer
Level: 214
Hp: 13909270
BaseExp: 269952
JobExp: 188966
Attack: 8135
Attack2: 998
Defense: 470
MagicDefense: 80
MagicResistance: 143
Resistance: 187
Str: 277
Agi: 174
Vit: 175
Int: 134
Dex: 131
Luk: 130
AttackRange: 2
SkillRange: 10
ChaseRange: 12
Size: Large
Race: Demihuman
Element: Neutral
ElementLevel: 2
WalkSpeed: 175
AttackDelay: 336
AttackMotion: 672
DamageMotion: 288
Ai: 04
Drops:
- Item: Old_Manteau
Rate: 2400
- Item: Rusty_Cleaver
Rate: 1600
- Item: Mr_Scream
Rate: 20
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Shadowdecon
Rate: 12
- Item: Zelunium
Rate: 12
- Item: Brutal_Murderer_Card
Rate: 1
StealProtected: true
- Id: 20938
AegisName: GHOST_CUBE
Name: Ghost Cube
Level: 213
Hp: 12735150
BaseExp: 261542
JobExp: 183079
Attack: 8114
Attack2: 1032
Defense: 482
MagicDefense: 114
MagicResistance: 171
Resistance: 171
Str: 274
Agi: 185
Vit: 161
Int: 161
Dex: 177
Luk: 169
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Small
Race: Undead
Element: Undead
ElementLevel: 1
WalkSpeed: 150
AttackDelay: 624
AttackMotion: 1248
DamageMotion: 576
Ai: 04
Drops:
- Item: Piece_Of_Black_Cloth
Rate: 2400
- Item: Ectoplasm
Rate: 2000
- Item: Black_Powder
Rate: 250
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Shadowdecon
Rate: 12
- Item: Zelunium
Rate: 12
- Item: Ghost_Cube_Card
Rate: 1
StealProtected: true
- Id: 20939
AegisName: LUDE_GAL
Name: Lude Gal
Level: 213
Hp: 12840680
BaseExp: 259877
JobExp: 181914
Attack: 7925
Attack2: 1001
Defense: 410
MagicDefense: 105
MagicResistance: 151
Resistance: 179
Str: 274
Agi: 171
Vit: 168
Int: 142
Dex: 168
Luk: 134
AttackRange: 2
SkillRange: 10
ChaseRange: 12
Size: Small
Race: Undead
Element: Undead
ElementLevel: 2
WalkSpeed: 150
AttackDelay: 480
AttackMotion: 960
DamageMotion: 480
Ai: 04
Drops:
- Item: Pumpkin_Bucket
Rate: 2500
- Item: Ectoplasm
Rate: 2000
- Item: Transparent_Cloth
Rate: 500
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Shadowdecon
Rate: 12
- Item: Zelunium
Rate: 12
- Item: Lude_Gal_Card
Rate: 1
StealProtected: true
- Id: 20940
AegisName: BLUEMOON_LOLI_RURI
Name: Blue Moon Loli Ruri
Level: 255
Hp: 46338500
BaseExp: 339785
JobExp: 237850
Attack: 9325
Attack2: 1345
Defense: 457
MagicDefense: 191
MagicResistance: 260
Resistance: 238
Str: 301
Agi: 205
Vit: 187
Int: 204
Dex: 192
Luk: 205
AttackRange: 2
SkillRange: 10
ChaseRange: 12
Size: Large
Race: Demon
Element: Water
ElementLevel: 3
WalkSpeed: 125
AttackDelay: 510
AttackMotion: 1020
DamageMotion: 576
Ai: 04
Drops:
- Item: Black_Kitty_Doll
Rate: 500
- Item: Striped_Socks
Rate: 2400
- Item: Bat_Cage
Rate: 2000
- Item: Loki's_Whispers
Rate: 2
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Shadowdecon
Rate: 25
- Item: Bluemoon_Loli_Ruri_Card
Rate: 1
StealProtected: true
- Id: 20941
AegisName: GROTE
Name: Grote
Level: 253
Hp: 47842600
BaseExp: 346622
JobExp: 242635
Attack: 9354
Attack2: 1320
Defense: 456
MagicDefense: 117
MagicResistance: 153
Resistance: 237
Str: 311
Agi: 207
Vit: 187
Int: 121
Dex: 199
Luk: 207
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Large
Race: Demon
Element: Earth
ElementLevel: 2
WalkSpeed: 180
AttackDelay: 792
AttackMotion: 1584
DamageMotion: 576
Ai: 04
Drops:
- Item: Hanging_Doll
Rate: 1000
- Item: Rotten_Rope
Rate: 2500
- Item: Tree_Knot
Rate: 2000
- Item: Branch_Of_Dead_Tree
Rate: 5
- Item: Bloody_Dead_Branch
Rate: 2
- Item: Shadowdecon
Rate: 25
- Item: Zelunium
Rate: 25
- Item: Grote_Card
Rate: 1
StealProtected: true
- Id: 20942
AegisName: PIERROTZOIST
Name: Pierrotzoist
Level: 255
Hp: 38506310
BaseExp: 339451
JobExp: 237616
Attack: 9356
Attack2: 1247
Defense: 541
MagicDefense: 134
MagicResistance: 226
Resistance: 212
Str: 311
Agi: 177
Vit: 166
Int: 177
Dex: 201
Luk: 169
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demon
Element: Dark
ElementLevel: 2
WalkSpeed: 155
AttackDelay: 768
AttackMotion: 1536
DamageMotion: 480
Ai: 04
Drops:
- Item: Broken_Needle
Rate: 2400
- Item: Needle_Pouch
Rate: 2000
- Item: Stuffed_Doll
Rate: 40
- Item: Ectoplasm
Rate: 150
- Item: Shadowdecon_Ore
Rate: 150
- Item: Zelunium_Ore
Rate: 150
- Item: Zelunium
Rate: 25
- Item: Pierrotzoist_Card
Rate: 1
StealProtected: true
- Id: 20943
AegisName: DEATH_WITCH
Name: Death Witch
Level: 255
Hp: 398856250
BaseExp: 9051055
JobExp: 6335739
Attack: 14658
Attack2: 2687
Defense: 687
MagicDefense: 210
MagicResistance: 539
Resistance: 273
Str: 424
Agi: 236
Vit: 214
Int: 423
Dex: 241
Luk: 174
AttackRange: 3
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demihuman
Element: Dark
ElementLevel: 2
WalkSpeed: 150
AttackDelay: 517
AttackMotion: 1134
DamageMotion: 480
DamageTaken: 10
Ai: 21
Class: Boss
Modes:
Mvp: true
Drops:
- Item: Ectoplasm
Rate: 200
- Item: Yggdrasilberry
Rate: 1500
- Item: Seed_Of_Yggdrasil
Rate: 1500
- Item: Leaf_Of_Yggdrasil
Rate: 1500
- Item: Shadowdecon
Rate: 1000
- Item: Zelunium
Rate: 1000
- Item: Death_Witch_Card
Rate: 1
StealProtected: true
# - Id: 20944
# AegisName: JP_E_MONSTER_151
# - Id: 20945

View File

@ -13239,6 +13239,108 @@
20934,R001_BESTIA@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,no,self,always,0,,,,,,,
// 20934,R001_BESTIA@NPC_DAMAGE_HEAL,attack,753,1,3000,1500,40000,no,target,myhpltmaxrate,20,,,,,,,
// nif_dun
20935,GAN_CEANN@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
20935,GAN_CEANN@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
20935,GAN_CEANN@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,0,,,,,,,
20935,GAN_CEANN@NPC_DARKNESSATTACK,attack,190,3,1000,500,5000,no,target,always,0,,,,,,6,
20935,GAN_CEANN@NPC_BLEEDING2,attack,764,5,2000,0,60000,yes,target,always,0,,,,,,,
20935,GAN_CEANN@NPC_BLEEDING,attack,660,5,2000,0,60000,yes,target,always,0,,,,,,,
20935,GAN_CEANN@NPC_DARKCROSS,attack,338,3,300,0,5000,yes,target,always,0,,,,,,,
20936,DISGUISER@NPC_COMBOATTACK,attack,171,2,1000,700,5000,no,target,always,0,,,,,,19,
20936,DISGUISER@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,0,,,,,,,
20936,DISGUISER@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,0,,,,,,,
20936,DISGUISER@NPC_GUIDEDATTACK,attack,172,3,8000,500,600000,no,target,always,0,,,,,,,
20936,DISGUISER@NPC_COMBOATTACK,attack,171,3,1000,500,15000,no,target,always,0,,,,,,,
20936,DISGUISER@NPC_CHANGEWIND,attack,165,1,10000,500,100000,no,self,always,0,,,,,,,
20936,DISGUISER@NPC_CHANGEFIRE,attack,164,1,10000,500,100000,no,self,always,0,,,,,,,
20936,DISGUISER@NPC_CHANGEWATER,attack,162,1,10000,500,100000,no,self,always,0,,,,,,,
20936,DISGUISER@NPC_CHANGEGROUND,attack,163,1,10000,500,100000,no,self,always,0,,,,,,,
20937,BRUTAL_MURDERER@AS_SONICBLOW,attack,136,7,500,800,5000,no,target,always,0,,,,,,29,
20937,BRUTAL_MURDERER@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,29,
20937,BRUTAL_MURDERER@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,always,0,,,,,,,
20937,BRUTAL_MURDERER@NPC_IGNITIONBREAK,attack,740,2,1000,300,30000,no,self,always,0,,,,,,,
20937,BRUTAL_MURDERER@NPC_CRITICALWOUND,attack,673,1,8000,300,5000,no,target,always,0,,,,,,,
20938,GHOST_CUBE@MG_STONECURSE,attack,16,10,500,1500,5000,no,target,always,0,,,,,,6,
20938,GHOST_CUBE@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,0,,,,,,29,
20938,GHOST_CUBE@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,0,,,,,,,
20938,GHOST_CUBE@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
20938,GHOST_CUBE@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
20938,GHOST_CUBE@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,0,,,,,,,
20939,LUDE_GAL@NPC_CHEAL,idle,729,3,2500,500,5000,no,self,always,0,,,,,,5,
20939,LUDE_GAL@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
20939,LUDE_GAL@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
20939,LUDE_GAL@AL_HEAL,chase,28,9,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,18,
20939,LUDE_GAL@AL_HEAL,attack,28,9,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,18,
20939,LUDE_GAL@PR_LEXAETERNA,chase,78,1,1000,1000,5000,no,target,always,0,,,,,,6,
20939,LUDE_GAL@PR_LEXAETERNA,attack,78,1,1000,1000,5000,no,target,always,0,,,,,,6,
20939,LUDE_GAL@NPC_CHEAL,chase,729,3,2500,500,5000,no,self,always,0,,,,,,5,
20939,LUDE_GAL@AM_POTIONPITCHER,attack,231,4,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,5,
20939,LUDE_GAL@AM_POTIONPITCHER,attack,231,4,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,5,
20939,LUDE_GAL@NPC_GROUNDATTACK,attack,185,5,2000,500,5000,no,target,always,0,,,,,,6,
20939,LUDE_GAL@NPC_STUNATTACK,attack,179,5,2000,0,0,yes,target,always,0,,,,,,,
20940,BLUEMOON_LOLI_RURI@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20940,BLUEMOON_LOLI_RURI@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20940,BLUEMOON_LOLI_RURI@NPC_DARKSTRIKE,attack,340,5,500,700,5000,no,target,myhpltmaxrate,50,,,,,,6,
20940,BLUEMOON_LOLI_RURI@NPC_DARKSTRIKE,chase,340,5,500,700,5000,no,target,always,0,,,,,,6,
20940,BLUEMOON_LOLI_RURI@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,,,,,,3,
20940,BLUEMOON_LOLI_RURI@PR_LEXDIVINA,chase,76,10,500,1000,5000,no,target,always,0,,,,,,2,
20940,BLUEMOON_LOLI_RURI@PR_LEXDIVINA,attack,76,10,500,1000,5000,no,target,always,0,,,,,,2,
20940,BLUEMOON_LOLI_RURI@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
20940,BLUEMOON_LOLI_RURI@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
20941,GROTE@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
20941,GROTE@NPC_CURSEATTACK,attack,181,3,1000,800,5000,no,target,always,0,,,,,,6,
20941,GROTE@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,0,,,,,,6,
20941,GROTE@NPC_CHEAL,chase,729,3,2500,500,5000,no,self,always,0,,,,,,5,
20941,GROTE@NPC_COMBOATTACK,attack,171,5,1500,0,5000,yes,target,always,0,,,,,,,
20941,GROTE@NPC_WIDEBLEEDING2,attack,756,4,10000,0,15000,yes,self,always,0,,,,,,,
20941,GROTE@NPC_WIDEBLEEDING,attack,665,4,10000,0,15000,yes,self,always,0,,,,,,,
20941,GROTE@NPC_GROUNDATTACK,attack,185,5,2000,500,5000,no,target,always,0,,,,,,6,
20941,GROTE@NPC_STUNATTACK,attack,179,5,2000,0,0,yes,target,always,0,,,,,,,
20942,PIERROTZOIST@AL_DECAGI,attack,30,1,500,1000,5000,no,target,always,0,,,,,,29,
20942,PIERROTZOIST@NPC_HALLUCINATION,chase,207,1,500,500,5000,no,target,always,0,,,,,,9,
20942,PIERROTZOIST@NPC_HALLUCINATION,attack,207,1,500,500,5000,no,target,always,0,,,,,,9,
20942,PIERROTZOIST@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
20942,PIERROTZOIST@KN_SPEARSTAB,chase,58,5,2500,0,5000,yes,target,groundattacked,0,,,,,,9,
20942,PIERROTZOIST@KN_SPEARSTAB,chase,58,5,5000,0,5000,yes,target,longrangeattacked,0,,,,,,,
20942,PIERROTZOIST@SM_MAGNUM,attack,7,4,500,500,5000,no,self,always,0,,,,,,,
20942,PIERROTZOIST@KN_TWOHANDQUICKEN,attack,60,5,2000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
20942,PIERROTZOIST@KN_BRANDISHSPEAR,attack,57,5,2000,0,10000,yes,target,always,0,,,,,,6,
20942,PIERROTZOIST@NPC_DARKNESSATTACK,attack,190,4,1000,0,5000,yes,target,always,0,,,,,,,
20943,DEATH_WITCH@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
20943,DEATH_WITCH@NPC_WIDESILENCE,chase,663,1,2000,1000,20000,no,self,always,0,,,,,,32,
20943,DEATH_WITCH@NPC_WIDESILENCE,attack,663,1,2000,700,25000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_WIDEFREEZE,chase,664,1,2000,1000,20000,no,self,always,0,,,,,,36,
20943,DEATH_WITCH@NPC_WIDEFREEZE,attack,664,1,2000,1000,20000,no,self,always,0,,,,,,36,
20943,DEATH_WITCH@NPC_WIDESLEEP,chase,668,1,2000,700,25000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_WIDESLEEP,attack,668,1,2000,700,25000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_DARKTHUNDER,chase,341,3,500,1500,15000,no,target,always,0,,,,,,,
20943,DEATH_WITCH@NPC_DARKTHUNDER,attack,341,3,500,1500,15000,no,target,always,0,,,,,,,
20943,DEATH_WITCH@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,0,,,,,,42,
20943,DEATH_WITCH@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,0,,,,,,42,
20943,DEATH_WITCH@WZ_WATERBALL,attack,86,10,3000,500,25000,no,target,always,0,,,,,,0,
20943,DEATH_WITCH@WZ_WATERBALL,chase,86,10,3000,500,25000,no,target,always,0,,,,,,0,
20943,DEATH_WITCH@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,,,,,,,
20943,DEATH_WITCH@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,,,,,,,
20943,DEATH_WITCH@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_WIDESTUN,chase,678,1,2000,1300,180000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_WIDESTUN,attack,678,1,2000,1300,180000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_DARKNESSATTACK,attack,190,5,2000,0,5000,yes,target,always,0,,,,,,29,
20943,DEATH_WITCH@NPC_DARKNESSATTACK,chase,190,5,2000,0,5000,yes,target,always,0,,,,,,29,
20943,DEATH_WITCH@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32,
20943,DEATH_WITCH@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,0,,,,,,,
// 20943,DEATH_WITCH@NPC_EARTHQUAKE_K,attack,750,5,10000,1500,25000,no,target,myhpltmaxrate,20,,,,,,,
20943,DEATH_WITCH@NPC_EARTHQUAKE,attack,653,5,10000,1500,25000,no,target,myhpltmaxrate,20,,,,,,,
20943,DEATH_WITCH@NPC_HELLJUDGEMENT,chase,662,2,2000,500,5000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_HELLJUDGEMENT,attack,662,2,2000,500,5000,no,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_CLOUD_KILL,attack,739,5,2000,500,16000,no,target,always,0,,,,,,,
// 20943,DEATH_WITCH@NPC_DAMAGE_HEAL,attack,753,1,10000,1000,60000,no,target,myhpltmaxrate,10,,,,,,,
20943,DEATH_WITCH@NPC_CALLSLAVE,idle,352,1,5000,0,30000,yes,self,always,0,,,,,,,
20943,DEATH_WITCH@NPC_CALLSLAVE,attack,352,1,5000,0,30000,yes,self,always,0,,,,,,,
// Training Ground outside Prontera
21064,S_DUMMY_100_SMALL@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21064,S_DUMMY_100_SMALL@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,

View File

@ -5704,24 +5704,75 @@ Body:
- Id: 8595
Title: Playing with Pitaya - Standby
TimeLimit: 4h
- Id: 8639
Title: Great banquet hall in the depths of the underworld
- Id: 8640
Title: Both the dead and the living are in high spirits
- Id: 8641
Title: He looks cute
Targets:
- Mob: GHOST_CUBE
Count: 15
- Mob: LUDE_GAL
Count: 15
- Id: 8642
Title: He looks cute - Standby
TimeLimit: 4h
- Id: 8644
Title: That's not an instrument
Targets:
- Mob: BRUTAL_MURDERER
Count: 10
- Mob: GAN_CEANN
Count: 10
- Id: 8645
Title: That's not an instrument - Standby
TimeLimit: 4h
- Id: 8647
Title: Playing the piano
- Id: 8648
Title: Playing the piano - Standby
TimeLimit: 4h
- Id: 8649
Title: It was a great performance
- Id: 8650
Title: Guys with messy hair
Targets:
- Mob: DISGUISER
Count: 15
- Mob: BLUEMOON_LOLI_RURI
Count: 15
- Id: 8651
Title: Guys with messy hair - Standby
TimeLimit: 4h
- Id: 8652
Title: Guys with messy hair
Targets:
- Mob: DISGUISER
Count: 15
- Mob: BLUEMOON_LOLI_RURI
Count: 15
- Id: 8653
Title: The ones with dolls
Targets:
- Mob: GROTE
Count: 10
- Mob: PIERROTZOIST
Count: 10
- Id: 8654
Title: The ones with dolls - Standby
TimeLimit: 4h
- Id: 8655
Title: The ones with dolls
- Id: 8656
Title: Wake them up
- Id: 8657
Title: Wake them up - Standby
TimeLimit: 4h
- Id: 8658
Title: Sorry for being sleepy (1)
- Id: 8659
Title: Sorry for being sleepy (2)
- Id: 8661
Title: "[Standby] Subjugation-Audumra Chowon-3"
TimeLimit: 4h

View File

@ -0,0 +1,18 @@
//===== rAthena Script =======================================
//= Niflheim dungeon Monsters Spawn Script
//===== Description: =========================================
//= Spawns monsters in nif_dun.
//===== Additional Comments: =================================
//= 1.0 First version. [Capuche]
//============================================================
nif_dun01 monster Gan Ceann GAN_CEANN,60
nif_dun01 monster Brutal Murderer BRUTAL_MURDERER,60
nif_dun01 monster Ghost Cube GHOST_CUBE,60
nif_dun01 monster Lude Gal LUDE_GAL,60
nif_dun02 monster Disguiser DISGUISER,80
nif_dun02 monster Grote GROTE,80
nif_dun02 monster Pierrotzoist PIERROTZOIST,80
nif_dun02 monster Blue Moon Loli Ruri BLUEMOON_LOLI_RURI,80
nif_dun02 boss_monster Death Witch DEATH_WITCH,1,21600000,600000,0

View File

@ -4,6 +4,7 @@
//= [Walkthrough Conversion]
//===== Changelog: ===========================================
//= 1.0 Added sp_rudus4 quests. [Capuche]
//= 1.1 Added nif_dun01 and nif_dun02 quests. [Capuche]
//============================================================
// sp_rudus4
@ -478,3 +479,829 @@ OnInit:
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(16528) == 1" );
end;
}
// nif_dun
moc_para01,14,19,7 script Old scholar#lv200 2_M_SAGE_OLD,{
if (BaseLevel < 200) {
mes "[Old scholar]";
mes "I would like to do more research, but if my life is really in danger...";
next;
mes "[Old scholar]";
mes "I have no choice but to hire a strong and sincere adventurer. Hmm...";
next;
mes "[Old scholar]";
mes "I think level 200 would be enough... It's easy to say, but that is not the type of person who can be easily found.";
close;
}
switch( isbegin_quest(8640) ) {
case 0:
if (isbegin_quest(8639) == 0) {
mes "[Old scholar]";
mes "Oh, oh my, my gosh. The strong and sincere adventurer I've been looking for has appeared here.";
mes "Would you like to help me with my research?";
next;
.@s = select( "Listen to the request", "Suspicious..." );
mes "[Old scholar]";
mes "Even if I look at you with my eyes I recognize your skills at a glance, please do something...!";
if (.@s == 2)
close;
mes "...?";
mes "What? Will you help me?";
next;
mes "[Old scholar]";
mes "No, that's it... Everyone refused, so the hanging words got stuck in my mouth.";
mes "Thank you for your cooperation.";
next;
select( "You're still cooperating..." );
mes "[Old scholar]";
mes "Come on, that's it. Of course someone as talented as you can go to Niflheim.";
mes "Of course I don't have many days left and it's not the right time for me to go and I can't come back in time.";
next;
mes "[Old scholar]";
mes "According to recent sources... Deep in the darkness of Niflheim, the dead hold a banquet,";
mes "in a form we cannot imagine.";
mes "But there is nowhere to hear more about it.";
next;
mes "[Old scholar]";
mes "You'll find out soon anyway, but I'm curious now.";
mes "Can you take a look? I'll give you plenty of examples.";
next;
if (select( "That's enough. Can I come back?", "What if I can't come back?" ) == 2) {
mes "[Old scholar]";
mes "You wouldn't even think that you wouldn't be able to come back at your level...";
mes "If you're still that careful, okay. Come back when you're ready.";
close;
}
setquest 8639;
mes "[Garim Springfield]";
mes "Thank you. Turns out I forgot to introduce myself.";
mes "My name is Garim Springfield.";
mes "I worked at Sage Castle for a long time... Now that I'm retired, I want to spend some leisure time here and also put in requests...";
next;
mes "[" + strcharinfo(0) + "]";
mes "Relax...";
next;
mes "[Garim Springfield]";
mes "Okay. It's worth it.";
mes "Grant an idle old man a wish.";
mes "Then I'll wait for the good news.";
close;
}
mes "[Garim Springfield]";
mes "What are you doing? Go fast.";
close;
case 1:
mes "[Garim Springfield]";
mes "Huh? Did you really visit the banquet hall deep in Niflheim?";
mes "You came back alive?";
mes "Okay then, tell me your story.";
next;
mes "[Garim Springfield]";
mes "Hmm hmm... I see!";
mes "I am prepared like this, so I won't be afraid if I go later!";
next;
mes "[Garim Springfield]";
mes "The research will last forever...!";
completequest 8640;
close;
case 2:
mes "[Garim Springfield]";
mes "I felt like I could do research even after dying, so I felt better.";
close;
}
end;
OnInit:
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "BaseLevel >= 200 && isbegin_quest(8639) == 0 && isbegin_quest(8640) == 0" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(8640) == 1" );
end;
}
niflheim,164,102,3 script Tired looking dead#lv20 4_F_NFDEADMGCIAN,{
switch( isbegin_quest(8640) ) {
case 0:
switch( isbegin_quest(8639) ) {
case 0:
mes "[Tired looking dead]";
mes "Ha-am...";
mes "I can't sleep";
mes "What's the fuss that you can't sleep even after you're dead?";
mes "Let's get some sleep...";
mes "I'm going to die because of the noise.";
close;
case 1:
mes "[Tired looking dead]";
mes "Ha-am...";
mes "Huh? What? I don't deal with peddlers.";
next;
if (select( "You have a bad complexion", "Go back quietly" ) == 2) {
mes "[Tired looking dead]";
mes "Oh, I did mean to ask you if you had sleeping pills... But I'm dead... You won't hear me... Hmm.";
close;
}
mes "[Tired looking dead]";
mes "Uh, how did you know?";
mes "My complexion must look real bad...";
mes "Do you have a sleeping pill?";
next;
select("I'm not a junkie" );
mes "[Tired looking dead]";
mes "Ah... I'm sorry. I misunderstood. All the people who have come this far were weird kids or people who sold drugs, so I kicked them out.";
next;
mes "[Tired looking dead]";
mes "By the way... how did you know that I am tired? Does my complexion look that bad?";
next;
mes "[Tired looking dead]";
mes "Actually, I've been dead for a while, but I've only recently come to Niflheim. So I decided to sleep here in this house...";
mes "I can't sleep at night because it's so noisy next door.";
next;
mes "[Tired looking dead]";
mes "No, it's the pain of not being able to sleep because the next door is noisy even though I'm already dead..";
mes "Oh, not next door. They all ran away.";
mes "There's a reason why it is so cheap...";
next;
mes "[Tired looking dead]";
mes "Yes, <NAVI>[there]<INFO>niflheim,148,124,0,101,0</INFO></NAVI>";
mes "The crazy villagers over there... they have a banquet every day.";
next;
mes "[Tired looking dead]";
mes "I'm in there every day, every day!!";
next;
mes "[Tired looking dead]";
mes "Ha... I know, even if it's every day, there's a set time.";
mes "By the way... If you were a drinker, who would have gone home on time, while you were alive, would you do that even in death?";
next;
mes "[Tired looking dead]";
mes "I'm... dead, so I just want to sleep peacefully...";
mes "I hope they return to their senses after the banquet is over.";
next;
select( "Banquet is..." );
mes "[Tired looking dead]";
mes "Yeah... you look pretty strong and there's alcohol... they are dead, so it's magic.";
mes "If you can silence those who are drunk with magical powers all night long, I will reward you.";
mes "Yes, of course every day.";
next;
mes "[Milla]";
mes "I am Milla. I am now a resident of Niflheim.";
mes "Please help me sleep, my dear.";
erasequest 8639;
setquest 8640;
close;
case 2:
end;
}
end;
case 1:
case 2:
mes "[Milla]";
mes "Yes, thank you for coming back.";
mes "Ha-am...";
mes "For me and my neighbors... for a good night's sleep.";
next;
if (select( "Listen to the request.", "Reject." ) == 2) {
mes "[Milla]";
mes "You can't do this if you're busy...";
mes "Ah, after all, the living do not hear that sound. This is my agony only known to the dead...";
npctalk "Another Dead: Noisy! Get some sleep!", "#lv200althema", bc_self;
npctalk "Another Dead: He really can't sleep!", "#lv200althema2", bc_self;
close;
}
mes "[Milla]";
mes "Beloved living, thank you for your mercy.";
mes "It's a luxurious facility with a banquet hall and an Opera House, but each one is a little different.";
mes "I'll ask for that kind of skill based on your kindness...";
next;
switch( select( "He looks cute", "That's not an instrument", "Playing the piano", "Guys with messy hair", "The ones with dolls", "Wake them up", "Stop" ) ) {
case 1:
switch( checkquest(8642,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Milla]";
mes "I think they've had enough today.";
mes "I hope you can help me tomorrow if you have time.";
close;
case 2:
erasequest 8642;
break;
}
switch( checkquest(8641,HUNTING) ) {
case -1:
mes "[Milla]";
mes "They look cute... but they're terribly noisy.";
mes "^0000FF" + getmonsterinfo("GHOST_CUBE", MOB_NAME) + "^000000,";
mes "^0000FF" + getmonsterinfo("LUDE_GAL", MOB_NAME) + "^000000";
next;
mes "[Milla]";
mes "I wish you could beat 15 " + getmonsterinfo("GHOST_CUBE", MOB_NAME) + "";
mes "and 15 of their mate " + getmonsterinfo("LUDE_GAL", MOB_NAME) + ", who haunted the banquet hall of the dead,";
mes "and make them holy for a day.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8641;
close;
case 0:
case 1:
mes "[Milla]";
mes "I wish you could beat 15 " + getmonsterinfo("GHOST_CUBE", MOB_NAME) + "";
mes "and 15 of their mate " + getmonsterinfo("LUDE_GAL", MOB_NAME) + ", who haunted the banquet hall of the dead,";
mes "and make them holy for a day.";
close;
case 2:
mes "[Milla]";
mes "Kya, did you hear them scream all the way here?";
mes "I think I can sleep a little deeper today thanks to you...";
mes "I have to make it through this commotion again tomorrow.";
mes "Thank you.";
erasequest 8641;
setquest 8642;
// getexp 15642570,10949790; // pre-rebalance
getexp 20300909,14210636; // rebalance (unknown jexp, 70% of baseexp)
close;
}
end;
case 2:
switch( checkquest(8645,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Milla]";
mes "I think they've had enough today.";
mes "I hope you can help me tomorrow if you have time.";
close;
case 2:
erasequest 8645;
break;
}
switch( checkquest(8644,HUNTING) ) {
case -1:
mes "[Milla]";
mes "It's called ^0000FF" + getmonsterinfo("BRUTAL_MURDERER", MOB_NAME) + "^000000.";
mes "They have knives in their hands... ";
mes "It's too loud to knock anywhere!";
next;
mes "[Milla]";
mes "I wish you could beat 10 " + getmonsterinfo("BRUTAL_MURDERER", MOB_NAME) + "";
mes "and 10 of their mate " + getmonsterinfo("GAN_CEANN", MOB_NAME) + ", who haunted the banquet hall of the dead,";
mes "and make them holy for a day.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead.";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8644;
close;
case 0:
case 1:
mes "[Milla]";
mes "I wish you could beat 10 " + getmonsterinfo("BRUTAL_MURDERER", MOB_NAME) + "";
mes "and 10 of their mate " + getmonsterinfo("GAN_CEANN", MOB_NAME) + ", who haunted the banquet hall of the dead,";
mes "and make them holy for a day.";
close;
case 2:
mes "[Milla]";
mes "Kya, did you hear the sound of their cleavers and their helmets flying all the way up to here?";
mes "I think I can sleep a little deeper today thanks to you...";
mes "Thank you.";
erasequest 8644;
setquest 8645;
// getexp 10756120,7541880; // pre-rebalance
getexp 14106860,9874802; // rebalance (unknown jexp, 70% of baseexp)
close;
}
end;
case 3:
switch( checkquest(8648,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Milla]";
mes "I think they've had enough today.";
mes "I hope you can help me tomorrow if you have time.";
close;
case 2:
erasequest 8648;
break;
}
switch( isbegin_quest(8647) ) {
case 0:
mes "[Milla]";
mes "If you go into the banquet hall of the dead there, there will be a piano.";
mes "It actually screams when a living person knocks on it.";
mes "Would it be fun?";
next;
mes "[Milla]";
mes "Play the <NAVI>[piano]<INFO>nif_dun01,140,202,0,101,0</INFO></NAVI>";
mes "of the banquet hall of the dead.";
mes "There is no such thing as a song request.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8647;
close;
case 1:
mes "[Milla]";
mes "Play the <NAVI>[piano]<INFO>nif_dun01,140,202,0,101,0</INFO></NAVI>";
mes "of the banquet hall of the dead.";
mes "There is no such thing as a song request.";
close;
case 2:
mes "[Milla]";
mes "Hahaha, did you hear that? It's like alcohol... No, it's like that if you drink magic and act like a hawk.";
mes "I think I can sleep a little deeper today thanks to you...";
mes "Thank you.";
erasequest 8647;
erasequest 8649;
setquest 8648;
getexp 10000000,7500000;
close;
}
end;
case 4:
if (BaseLevel < 240) {
mes "[Milla]";
mes "Hmm... no.";
mes "It's still too early to leave it to you...";
mes "I'll wait until you reach level 240.";
mes "I have time.";
close;
}
switch( checkquest(8651,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Milla]";
mes "I think they've had enough today.";
mes "I hope you can help me tomorrow if you have time.";
close;
case 2:
erasequest 8651;
break;
}
switch( isbegin_quest(8650) ) {
case 0:
case 1:
switch( checkquest(8650,HUNTING) ) {
case -1:
mes "[Milla]";
mes "I mean, there are kids called ^0000FF" + getmonsterinfo("DISGUISER", MOB_NAME) + "^000000. ";
mes "They've got their hair as if a bomb hit, and they look so excited.";
mes "^0000FF" + getmonsterinfo("BLUEMOON_LOLI_RURI", MOB_NAME) + "^000000, it can't be that loud when you get together with guys with broom hair.";
next;
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 15 ^0000FF" + getmonsterinfo("DISGUISER", MOB_NAME) + "^000000 and the 15 ^0000FF" + getmonsterinfo("BLUEMOON_LOLI_RURI", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8650;
close;
case 0:
case 1:
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 15 ^0000FF" + getmonsterinfo("DISGUISER", MOB_NAME) + "^000000 and the 15 ^0000FF" + getmonsterinfo("BLUEMOON_LOLI_RURI", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
close;
case 2:
mes "[Milla]";
mes "Huh, huh, I can hear the bomb head dusting all the way up to here.";
mes "Thanks to you, I will sleep well today.";
mes "Thank you. See you again tomorrow.";
completequest 8650;
setquest 8651;
getexp 44984725,31489308; // rebalance (unknown jexp, 70% of baseexp)
close;
}
end;
case 2:
switch( checkquest(8652,HUNTING) ) {
case -1:
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 15 ^0000FF" + getmonsterinfo("DISGUISER", MOB_NAME) + "^000000 and the 15 ^0000FF" + getmonsterinfo("BLUEMOON_LOLI_RURI", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8652;
close;
case 0:
case 1:
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 15 ^0000FF" + getmonsterinfo("DISGUISER", MOB_NAME) + "^000000 and the 15 ^0000FF" + getmonsterinfo("BLUEMOON_LOLI_RURI", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
close;
case 2:
mes "[Milla]";
mes "Huh, huh, I can hear the bomb head dusting all the way up to here.";
mes "Thanks to you, I will sleep well today.";
mes "Thank you. See you again tomorrow.";
erasequest 8652;
setquest 8651;
getexp 44984725,31489308; // rebalance (unknown jexp, 70% of baseexp)
close;
}
end;
}
end;
case 5:
if (BaseLevel < 240) {
mes "[Milla]";
mes "Hmm... no.";
mes "It's still too early to leave it to you...";
mes "I'll wait until you reach level 240.";
mes "I have time.";
close;
}
switch( checkquest(8654,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Milla]";
mes "I think they've had enough today.";
mes "I hope you can help me tomorrow if you have time.";
close;
case 2:
erasequest 8654;
break;
}
switch( isbegin_quest(8653) ) {
case 0:
case 1:
switch( checkquest(8653,HUNTING) ) {
case -1:
mes "[Milla]";
mes "If you look at the collapsed Opera House there,";
mes "you'll see the ones with dolls. There's " + getmonsterinfo("GROTE", MOB_NAME) + " and " + getmonsterinfo("PIERROTZOIST", MOB_NAME) + "^000000...";
mes "All the ones with dolls are so noisy.";
next;
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 10 ^0000FF" + getmonsterinfo("GROTE", MOB_NAME) + "^000000 and the 10 ^0000FF" + getmonsterinfo("PIERROTZOIST", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8653;
close;
case 0:
case 1:
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 10 ^0000FF" + getmonsterinfo("GROTE", MOB_NAME) + "^000000 and the 10 ^0000FF" + getmonsterinfo("PIERROTZOIST", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
close;
case 2:
mes "[Milla]";
mes "Kyak-kyak-kyak-kyak-kyak-kyak-kyak, what did you really do?";
mes "A while ago, " + getmonsterinfo("GROTE", MOB_NAME) + " and " + getmonsterinfo("PIERROTZOIST", MOB_NAME) + " went home saying they wouldn't make a noise again.";
mes "Of course not. They will come again tomorrow.";
mes "Thank you. See you tomorrow.";
completequest 8653;
setquest 8654;
getexp 29944101,20960871; // rebalance (unknown jexp, 70% of baseexp)
close;
}
end;
case 2:
switch( checkquest(8655,HUNTING) ) {
case -1:
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 10 ^0000FF" + getmonsterinfo("GROTE", MOB_NAME) + "^000000 and the 10 ^0000FF" + getmonsterinfo("PIERROTZOIST", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8655;
close;
case 0:
case 1:
mes "[Milla]";
mes "I hope you show the hot taste to";
mes "the 10 ^0000FF" + getmonsterinfo("GROTE", MOB_NAME) + "^000000 and the 10 ^0000FF" + getmonsterinfo("PIERROTZOIST", MOB_NAME) + "^000000";
mes "that haunt the collapsed Opera House.";
close;
case 2:
mes "[Milla]";
mes "Kyak-kyak-kyak-kyak-kyak-kyak-kyak, what did you really do?";
mes "A while ago, " + getmonsterinfo("GROTE", MOB_NAME) + " and " + getmonsterinfo("PIERROTZOIST", MOB_NAME) + " went home saying they wouldn't make a noise again.";
mes "Of course not. They will come again tomorrow.";
mes "Thank you. See you tomorrow.";
erasequest 8655;
setquest 8654;
getexp 29944101,20960871; // rebalance (unknown jexp, 70% of baseexp)
close;
}
end;
}
end;
case 6:
if (BaseLevel < 240) {
mes "[Milla]";
mes "Hmm... no.";
mes "It's still too early to leave it to you...";
mes "I'll wait until you reach level 240.";
mes "I have time.";
close;
}
switch( checkquest(8657,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Milla]";
mes "I think they've had enough today.";
mes "I hope you can help me tomorrow if you have time.";
close;
case 2:
erasequest 8657;
break;
}
switch( isbegin_quest(8656) ) {
case 0:
mes "[Milla]";
mes "The smashed... no, don't say that.";
mes "If you go to the collapsed Opera House, you will find ghosts in the frames.";
mes "But they don't even have a body...";
mes "Snoring, my dear.";
next;
mes "[Milla]";
mes "A <NAVI>[ghost talking]<INFO>nif_dun02,37,221,0,101,0</INFO></NAVI>";
mes "and <NAVI>[snoring]<INFO>nif_dun02,249,221,0,101,0</INFO></NAVI>";
mes "inside the banquet hall of the dead, twist your nose.";
mes "You need to calm them down.";
next;
if (select( "I accept", "I'm busy today" ) == 2) {
mes "[Milla]";
mes "Ummm...";
mes "Yeah... Well, I won't die just because I can't sleep...";
mes "I'm already dead";
close;
}
mes "[Milla]";
mes "Thank you for your kind heart.";
mes "Blessed be the mercy of the living!";
setquest 8656;
close;
case 1:
if (isbegin_quest(8658) == 0 || isbegin_quest(8659) == 0) {
mes "[Milla]";
mes "A <NAVI>[ghost talking]<INFO>nif_dun02,37,221,0,101,0</INFO></NAVI>";
mes "and <NAVI>[snoring]<INFO>nif_dun02,249,221,0,101,0</INFO></NAVI>";
mes "inside the banquet hall of the dead, twist your nose.";
mes "You need to calm them down.";
close;
}
mes "[Milla]";
mes "...I can't eat any more...";
mes "...hick.";
mes "Oh, have you been there? I fell asleep without realizing it.";
mes "It's really annoying to hear that snoring all the way...";
next;
mes "[Milla]";
mes "It seems that the living do not hear well.";
mes "Anyway, thank you for today.";
mes "Sleep is precious...";
mes "Sleep enough while you're alive.";
erasequest 8656;
erasequest 8658;
erasequest 8659;
setquest 8657;
getexp 13000000,9100000; // rebalance (unknown jexp, 70% of baseexp)
close;
case 2:
end;
}
end;
case 7:
mes "[Milla]";
mes "You can't do this if you're busy...";
mes "Ah, after all, the living do not hear that sound. This is my agony only known to the dead...";
npctalk "Another Dead: Noisy! Get some sleep!", "#lv200althema", bc_self;
npctalk "Another Dead: He really can't sleep!", "#lv200althema2", bc_self;
close;
}
end;
}
end;
OnInit:
// prerequisite
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(8639) == 1" );
// daily
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(8641,HUNTING) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(8644,HUNTING) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(8647) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(8650,HUNTING) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(8652,HUNTING) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(8653,HUNTING) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(8655,HUNTING) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(8656) == 1 && isbegin_quest(8658) == 1 && isbegin_quest(8659) == 1" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(8642,PLAYTIME) == 2" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(8645,PLAYTIME) == 2" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(8648,PLAYTIME) == 2" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(8651,PLAYTIME) == 2" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(8654,PLAYTIME) == 2" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(8657,PLAYTIME) == 2" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 200 && (checkquest(8641,HUNTING) == -1 && checkquest(8642,PLAYTIME) == -1)" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 200 && (checkquest(8644,HUNTING) == -1 && checkquest(8645,PLAYTIME) == -1)" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 200 && (isbegin_quest(8647) == 0 && checkquest(8648,PLAYTIME) == -1)" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 240 && (checkquest(8650,HUNTING) == -1 && checkquest(8651,PLAYTIME) == -1)" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 240 && isbegin_quest(8650) == 2 && checkquest(8652,HUNTING) == -1 && checkquest(8651,PLAYTIME) == -1" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 240 && (checkquest(8653,HUNTING) == -1 && checkquest(8654,PLAYTIME) == -1)" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 240 && isbegin_quest(8653) == 2 && checkquest(8655,HUNTING) == -1 && checkquest(8654,PLAYTIME) == -1" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 240 && (isbegin_quest(8656) == 0 && checkquest(8657,PLAYTIME) == -1)" );
end;
}
niflheim,160,106,3 duplicate(dummy_npc) #lv200althema CLEAR_NPC
niflheim,165,105,3 duplicate(dummy_npc) #lv200althema2 CLEAR_NPC
niflheim,143,125,6 script Funny Gatekeeper's Friend#lv20 LUDE_GAL,{
npctalk "Funny Gatekeeper's Friend: Sing~ All night~ or forever~", "", bc_self;
end;
}
niflheim,145,126,6 script Angry Gatekeeper#lv200 GHOST_CUBE,{
npctalk "Angry Gatekeeper: Kye-Look! Living! Play! No need to go!", "", bc_self;
npctalk "Funny Gatekeeper's Friend: No need to leave! Play with us!", "Funny Gatekeeper's Friend#lv20", bc_self;
end;
}
nif_dun01,140,202,3 script Piano#lv200 CLEAR_NPC,{
if (isbegin_quest(8647) == 1) {
mes "I couldn't hear anything, but the dead around me seem to be in an uproar.";
mes "Let's report to Milla.";
completequest 8647;
setquest 8649;
npctalk "Clink clink... Crackle!", "Piano#lv200", bc_self;
npctalk "Sleep alive! Kyaaak!", "Exciting Cello#lv200", bc_self;
npctalk "The living man plays the piano!", "Dancing Cello#lv200", bc_self;
npctalk "Oh my God, he can't really play...", "Quiet Cello#lv200", bc_self;
npctalk "How could that be...", "Stranger Cello#lv200", bc_self;
npctalk "You ruined the atmosphere!", "Happy Cello#lv200", bc_self;
npctalk "Piano Ooo!!!", "Serious Contrabass#lv2", bc_self;
npctalk "The piano is stunned...", "Sleek Harp#lv200", bc_self;
close;
}
// note: no text
end;
OnInit:
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(8647) == 1" );
end;
}
nif_dun01,133,198,3 duplicate(dummy_npc) Exciting Cello#lv200 CLEAR_NPC
nif_dun01,138,195,3 duplicate(dummy_npc) Dancing Cello#lv200 CLEAR_NPC
nif_dun01,153,195,3 duplicate(dummy_npc) Quiet Cello#lv200 CLEAR_NPC
nif_dun01,152,198,3 duplicate(dummy_npc) Stranger Cello#lv200 CLEAR_NPC
nif_dun01,157,198,3 duplicate(dummy_npc) Happy Cello#lv200 CLEAR_NPC
nif_dun01,156,202,3 duplicate(dummy_npc) Serious Contrabass#lv2 CLEAR_NPC
nif_dun01,133,201,3 duplicate(dummy_npc) Sleek Harp#lv200 CLEAR_NPC
nif_dun01,148,43,3 script Helpful Gatekeeper#240 DISGUISER,{
if (BaseLevel < 240) {
npctalk "Helpful Gatekeeper: Uh-huh-huh. You don't have enough grooming to get through here.", "", bc_self;
npctalk "Silent Gatekeeper: ...means you are under-leveled.", "Silent Gatekeeper#240", bc_self;
end;
}
npctalk "Helpful Gatekeeper: Uh-huh-huh. Mountain, go up. Can't come down.", "", bc_self;
npctalk "Silent Gatekeeper: ...means welcome.", "Silent Gatekeeper#240", bc_self;
end;
}
nif_dun01,143,43,7 script Silent Gatekeeper#240 GROTE,{
npctalk "Silent Gatekeeper: ...", "", bc_self;
end;
}
nif_dun02,37,221,3 script Sleep Talking Ghost#lv240 CLEAR_NPC,3,3,{
if (isbegin_quest(8656) == 1) {
switch( isbegin_quest(8659) ) {
case 0:
setquest 8659;
mes "I twisted the nose of the ghost in the frame.";
mes "There was no touch, but the ghost stopped talking.";
npctalk "????????!", "", bc_self;
if (isbegin_quest(8658) == 1)
mes "Let's go report to Milla.";
close;
case 1:
mes "The ghost that was talking about is not seen, and another ghost is sleeping.";
close;
default:
end;
}
}
end;
OnTouch:
if (isbegin_quest(8659) == 0) {
npctalk "I want to eat it too... it looks delicious...", "", bc_self;
end;
}
end;
OnInit:
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(8656) == 1 && isbegin_quest(8659) == 0" );
end;
}
nif_dun02,249,221,3 script Snoring Ghost#lv240 CLEAR_NPC,3,3,{
if (isbegin_quest(8656) == 1) {
switch( isbegin_quest(8658) ) {
case 0:
setquest 8658;
mes "I twisted the nose of the ghost in the frame.";
mes "There was no touch, but the ghost stopped snoring.";
npctalk "Nang!", "", bc_self;
if (isbegin_quest(8659) == 1)
mes "Let's go report to Milla.";
close;
case 1:
mes "The snoring ghost is nowhere to be seen, and another ghost is sleeping.";
close;
default:
end;
}
}
end;
OnTouch:
if (isbegin_quest(8658) == 0)
npctalk "Dorolong Dorolong...", "", bc_self;
end;
OnInit:
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(8656) == 1 && isbegin_quest(8658) == 0" );
end;
}

View File

@ -46,6 +46,7 @@ npc: npc/re/mobs/dungeons/mjo_dun.txt
npc: npc/re/mobs/dungeons/moc_pryd.txt
npc: npc/re/mobs/dungeons/moro_vol.txt
npc: npc/re/mobs/dungeons/mosk_dun.txt
npc: npc/re/mobs/dungeons/nif_dun.txt
npc: npc/re/mobs/dungeons/nyd_dun.txt
npc: npc/re/mobs/dungeons/odin.txt
npc: npc/re/mobs/dungeons/orcsdun.txt

View File

@ -26,6 +26,7 @@ npc: npc/re/warps/dungeons/ecl_dun.txt
npc: npc/re/warps/dungeons/harboro2.txt
npc: npc/re/warps/dungeons/iz_dun.txt
npc: npc/re/warps/dungeons/moc_pryd.txt
npc: npc/re/warps/dungeons/nif_dun.txt
npc: npc/re/warps/dungeons/rockmi1.txt
npc: npc/re/warps/dungeons/sp_rudus.txt
npc: npc/re/warps/dungeons/slabw01.txt

View File

@ -0,0 +1,34 @@
//===== rAthena Script =======================================
//= Niflheim dungeon warps script
//===== Changelogs: ==========================================
//= 1.0 First version. [Capuche]
//============================================================
niflheim,149,124,0 script nifla_nifdun01a WARPNPC,1,1,{
end;
OnTouch:
if (isbegin_quest(8640) == 0) {
npctalk "Angry Gatekeeper: How are you adventurer? Go in? Do you want to go in? Kick!", "Angry Gatekeeper#lv200", bc_self;
npctalk "Funny Gatekeeper's Friend: Awesome!", "Funny Gatekeeper's Friend#lv20", bc_self;
end;
}
warp "nif_dun01",145,85;
end;
}
nif_dun01,145,82,0 warp2 nifdun01a_nifla 1,1,niflheim,146,122
nif_dun01,146,36,0 script nifdun01a_nifdun02a WARPNPC,1,1,{
end;
OnTouch:
if (BaseLevel < 240) {
npctalk "Helpful Gatekeeper: Hey, look at how you look! How can you come all the way here!", "Helpful Gatekeeper#240", bc_self;
npctalk "Silent Gatekeeper: ...means lack of training.", "Silent Gatekeeper#240", bc_self;
end;
}
warp "nif_dun02",149,23;
end;
}
nif_dun02,162,15,0 warp2 nifdun02a_nifdun01a 1,1,nif_dun01,146,39
nif_dun02,137,15,0 warp2 nifdun02a_nifdun01a_ 1,1,nif_dun01,146,39