Compare commits
11 Commits
refactor/s
...
script/ill
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d043b92e6e | ||
|
|
56cbc252a8 | ||
|
|
3d6ca8d234 | ||
|
|
1d9cfdb17d | ||
|
|
4b32621c61 | ||
|
|
3b1c33c5d9 | ||
|
|
f8c9481673 | ||
|
|
78a2babe4d | ||
|
|
0a977c1fd7 | ||
|
|
29a63820fd | ||
|
|
4f2beac029 |
@@ -12,8 +12,10 @@
|
||||
// The highest value at which an item can be sold via the merchant vend skill. (in zeny)
|
||||
vending_max_value: 1000000000
|
||||
|
||||
// Whether to allow buying from vending chars that are at their max. zeny limit.
|
||||
// If set to yes, the rest of the zeny above the char's capacity will disappear.
|
||||
// Whether to allow placing items on a vending store when the player's zeny plus the total price
|
||||
// of the items exceeds the maximum zeny allowed. (Note 1)
|
||||
// If set to "yes", the items will be placed in the store but other players will not be able to buy them.
|
||||
// Official behavior is "yes", but on some official servers the client doesn't allow this.
|
||||
vending_over_max: yes
|
||||
|
||||
// Tax to apply to all vending transactions (eg: 10000 = 100%, 50 = 0.50%)
|
||||
|
||||
@@ -33,3 +33,24 @@ Header:
|
||||
Type: MOB_SUMMONABLE_DB
|
||||
Version: 1
|
||||
|
||||
#Body:
|
||||
# Pre-re Brasilis
|
||||
#=============================================================
|
||||
# - Group: BLOODY_DEAD_BRANCH
|
||||
# Summon:
|
||||
# - Mob: BOITATA
|
||||
# Rate: 1000000
|
||||
# - Group: Branch_Of_Dead_Tree
|
||||
# Summon:
|
||||
# - Mob: IARA
|
||||
# Rate: 71428
|
||||
# - Mob: PIRANHA
|
||||
# Rate: 71428
|
||||
# - Mob: HEADLESS_MULE
|
||||
# Rate: 71428
|
||||
# - Mob: JAGUAR
|
||||
# Rate: 71428
|
||||
# - Mob: TOUCAN
|
||||
# Rate: 71428
|
||||
# - Mob: CURUPIRA
|
||||
# Rate: 71428
|
||||
|
||||
@@ -866,3 +866,14 @@ Body:
|
||||
bonus2 bSubEle,Ele_Fire,2;
|
||||
bonus2 bAddEle,Ele_Fire,2;
|
||||
}
|
||||
- Mob: E_HYDRA
|
||||
TameItem: Leaf_Cat_Ball
|
||||
EggItem: Mystic_Leaf_Cat_Ball
|
||||
Fullness: 0
|
||||
HungryDelay: 0
|
||||
IntimacyStart: 0
|
||||
IntimacyFed: 0
|
||||
IntimacyOverfed: 0
|
||||
IntimacyOwnerDie: 0
|
||||
CaptureRate: 50
|
||||
SpecialPerformance: false
|
||||
|
||||
@@ -205,3 +205,137 @@ Body:
|
||||
- Index: 7
|
||||
Item: S_Turtle_Is_Box_IL
|
||||
Rate: 150
|
||||
- Map: prt_mz03_i
|
||||
SpecificDrops:
|
||||
- Monster: ILL_BAPHOMET
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Bazerald_IL
|
||||
Rate: 5000
|
||||
RandomOptionGroup: ILL_MAGIC_BOSS
|
||||
- Index: 1
|
||||
Item: Butcher_IL
|
||||
Rate: 5000
|
||||
RandomOptionGroup: ILL_PHYSIC_BOSS
|
||||
- Index: 2
|
||||
Item: Gold_Lux_IL
|
||||
Rate: 5000
|
||||
RandomOptionGroup: ILL_PHYSIC_BOSS
|
||||
- Index: 3
|
||||
Item: Morpheus_Armlet_IL
|
||||
Rate: 5000
|
||||
- Index: 4
|
||||
Item: Morpheus_Hood_IL
|
||||
Rate: 5000
|
||||
- Index: 5
|
||||
Item: Morpheus_Ring_IL
|
||||
Rate: 5000
|
||||
- Index: 6
|
||||
Item: Morpheus_Shawl_IL
|
||||
Rate: 5000
|
||||
- Index: 7
|
||||
Item: IllusionStone
|
||||
Rate: 15000
|
||||
- Index: 8
|
||||
Item: Taegoolyeon_IL
|
||||
Rate: 5000
|
||||
RandomOptionGroup: ILL_PHYSIC_BOSS
|
||||
- Index: 9
|
||||
Item: S_Teddy_Labyrinth_IL
|
||||
Rate: 150
|
||||
- Monster: ILL_BAPHOMET_J
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Gold_Lux_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_PHYSIC_NORMAL
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_SIDE_WINDER
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Bazerald_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_MAGIC_NORMAL
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_HUNTER_FLY
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 1
|
||||
Item: Taegoolyeon_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_PHYSIC_NORMAL
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_MANTIS
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Butcher_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_PHYSIC_NORMAL
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_GHOSTRING
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 1
|
||||
Item: Taegoolyeon_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_PHYSIC_NORMAL
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_KILLER_MANTIS
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Butcher_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_PHYSIC_NORMAL
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_POPORING
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Bazerald_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_MAGIC_NORMAL
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
- Monster: ILL_STEM_WORM
|
||||
Drops:
|
||||
- Index: 0
|
||||
Item: Gold_Lux_IL
|
||||
Rate: 25
|
||||
RandomOptionGroup: ILL_PHYSIC_NORMAL
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Rate: 10
|
||||
- Index: 2
|
||||
Item: Labyrinth_Box_IL
|
||||
Rate: 5
|
||||
|
||||
647
db/re/mob_db.yml
647
db/re/mob_db.yml
@@ -99586,34 +99586,625 @@ Body:
|
||||
# AegisName: E_MD_LUDE
|
||||
# - Id: 20519
|
||||
# AegisName: E_MD_JACK_GAINT
|
||||
# - Id: 20520
|
||||
# AegisName: ILL_BAPHOMET
|
||||
# - Id: 20521
|
||||
# AegisName: ILL_ANDREA
|
||||
# - Id: 20522
|
||||
# AegisName: ILL_ANES
|
||||
# - Id: 20523
|
||||
# AegisName: ILL_SILVANO
|
||||
# - Id: 20524
|
||||
# AegisName: ILL_CECILIA
|
||||
# - Id: 20525
|
||||
# AegisName: ILL_BAPHOMET_J
|
||||
# - Id: 20526
|
||||
# AegisName: ILL_SIDE_WINDER
|
||||
# - Id: 20527
|
||||
# AegisName: ILL_HUNTER_FLY
|
||||
# - Id: 20528
|
||||
# AegisName: ILL_MANTIS
|
||||
# - Id: 20529
|
||||
# AegisName: ILL_GHOSTRING
|
||||
# - Id: 20530
|
||||
# AegisName: ILL_KILLER_MANTIS
|
||||
# - Id: 20531
|
||||
# AegisName: ILL_POPORING
|
||||
# - Id: 20532
|
||||
# AegisName: ILL_STEM_WORM
|
||||
# - Id: 20533
|
||||
# AegisName: G_ILL_BAPHOMET_J
|
||||
- Id: 20520
|
||||
AegisName: ILL_BAPHOMET
|
||||
Name: Chaos Baphomet
|
||||
Level: 178
|
||||
Hp: 21278744
|
||||
BaseExp: 4255749
|
||||
JobExp: 2979024
|
||||
#MvpExp:
|
||||
Attack: 6141
|
||||
Attack2: 3168
|
||||
Defense: 343
|
||||
MagicDefense: 122
|
||||
Str: 276
|
||||
Agi: 188
|
||||
Vit: 55
|
||||
Int: 267
|
||||
Dex: 244
|
||||
Luk: 99
|
||||
AttackRange: 2
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Large
|
||||
Race: Demon
|
||||
Element: Dark
|
||||
ElementLevel: 3
|
||||
WalkSpeed: 100
|
||||
AttackDelay: 768
|
||||
AttackMotion: 576
|
||||
DamageMotion: 768
|
||||
Ai: 21
|
||||
Class: Boss
|
||||
MvpDrops:
|
||||
- Item: Old_Violet_Box
|
||||
Rate: 3000
|
||||
- Item: Old_Card_Album
|
||||
Rate: 4000
|
||||
- Item: Magic_Card_Album
|
||||
Rate: 5000
|
||||
Drops:
|
||||
- Item: Bapho_Doll
|
||||
Rate: 1000
|
||||
- Item: Crescent_Scythe
|
||||
Rate: 150
|
||||
- Item: Essence_Of_Demon
|
||||
Rate: 5000
|
||||
- Item: Tae_Goo_Lyeon
|
||||
Rate: 100
|
||||
- Item: Evil_Horn
|
||||
Rate: 3500
|
||||
- Item: Bazerald
|
||||
Rate: 200
|
||||
- Item: Apple
|
||||
Rate: 1
|
||||
- Item: Chaos_Baphomet_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20521
|
||||
AegisName: ILL_ANDREA
|
||||
Name: Chaotic Andrea
|
||||
Level: 177
|
||||
Hp: 1057547
|
||||
BaseExp: 96141
|
||||
JobExp: 67298
|
||||
Attack: 4248
|
||||
Attack2: 1337
|
||||
Defense: 330
|
||||
MagicDefense: 110
|
||||
Str: 192
|
||||
Agi: 122
|
||||
Vit: 51
|
||||
Int: 175
|
||||
Dex: 188
|
||||
Luk: 68
|
||||
AttackRange: 2
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Demihuman
|
||||
Element: Neutral
|
||||
ElementLevel: 3
|
||||
WalkSpeed: 130
|
||||
AttackDelay: 576
|
||||
AttackMotion: 432
|
||||
DamageMotion: 288
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Brigan
|
||||
Rate: 5000
|
||||
- Item: Fragment_Of_Crystal
|
||||
Rate: 2500
|
||||
- Item: Morpheus's_Ring
|
||||
Rate: 100
|
||||
- Item: Yggdrasilberry
|
||||
Rate: 50
|
||||
- Item: Seed_Of_Yggdrasil
|
||||
Rate: 50
|
||||
- Item: Chaos_Acolyte_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20522
|
||||
AegisName: ILL_ANES
|
||||
Name: Chaotic Anes
|
||||
Level: 177
|
||||
Hp: 1057444
|
||||
BaseExp: 96131
|
||||
JobExp: 67292
|
||||
Attack: 4314
|
||||
Attack2: 1369
|
||||
Defense: 327
|
||||
MagicDefense: 110
|
||||
Str: 195
|
||||
Agi: 122
|
||||
Vit: 50
|
||||
Int: 174
|
||||
Dex: 178
|
||||
Luk: 61
|
||||
AttackRange: 2
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Demihuman
|
||||
Element: Neutral
|
||||
ElementLevel: 3
|
||||
WalkSpeed: 130
|
||||
AttackDelay: 567
|
||||
AttackMotion: 432
|
||||
DamageMotion: 288
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Brigan
|
||||
Rate: 5000
|
||||
- Item: Fragment_Of_Crystal
|
||||
Rate: 3500
|
||||
- Item: Morpheus's_Hood
|
||||
Rate: 100
|
||||
- Item: Seed_Of_Yggdrasil
|
||||
Rate: 50
|
||||
- Item: Yggdrasilberry
|
||||
Rate: 50
|
||||
- Item: Chaos_Acolyte_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20523
|
||||
AegisName: ILL_SILVANO
|
||||
Name: Chaotic Silvano
|
||||
Level: 177
|
||||
Hp: 1057650
|
||||
BaseExp: 96150
|
||||
JobExp: 67305
|
||||
Attack: 4292
|
||||
Attack2: 1385
|
||||
Defense: 333
|
||||
MagicDefense: 111
|
||||
Str: 194
|
||||
Agi: 122
|
||||
Vit: 52
|
||||
Int: 176
|
||||
Dex: 184
|
||||
Luk: 57
|
||||
AttackRange: 2
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Demihuman
|
||||
Element: Neutral
|
||||
ElementLevel: 3
|
||||
WalkSpeed: 130
|
||||
AttackDelay: 576
|
||||
AttackMotion: 432
|
||||
DamageMotion: 288
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Brigan
|
||||
Rate: 5000
|
||||
- Item: Fragment_Of_Crystal
|
||||
Rate: 3500
|
||||
- Item: Yggdrasilberry
|
||||
Rate: 50
|
||||
- Item: Seed_Of_Yggdrasil
|
||||
Rate: 50
|
||||
- Item: Morpheus's_Shawl
|
||||
Rate: 100
|
||||
- Item: Chaos_Acolyte_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20524
|
||||
AegisName: ILL_CECILIA
|
||||
Name: Chaotic Cecilia
|
||||
Level: 177
|
||||
Hp: 1056411
|
||||
BaseExp: 96037
|
||||
JobExp: 67226
|
||||
Attack: 4359
|
||||
Attack2: 1392
|
||||
Defense: 297
|
||||
MagicDefense: 111
|
||||
Str: 197
|
||||
Agi: 122
|
||||
Vit: 40
|
||||
Int: 177
|
||||
Dex: 186
|
||||
Luk: 61
|
||||
AttackRange: 2
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Demihuman
|
||||
Element: Neutral
|
||||
ElementLevel: 3
|
||||
WalkSpeed: 130
|
||||
AttackDelay: 576
|
||||
AttackMotion: 432
|
||||
DamageMotion: 288
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Brigan
|
||||
Rate: 5000
|
||||
- Item: Fragment_Of_Crystal
|
||||
Rate: 3500
|
||||
- Item: Yggdrasilberry
|
||||
Rate: 50
|
||||
- Item: Seed_Of_Yggdrasil
|
||||
Rate: 50
|
||||
- Item: Morpheus's_Armlet
|
||||
Rate: 100
|
||||
- Item: Chaos_Acolyte_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20525
|
||||
AegisName: ILL_BAPHOMET_J
|
||||
Name: Chaos Baphomet Jr.
|
||||
Level: 177
|
||||
Hp: 1057444
|
||||
BaseExp: 173089
|
||||
JobExp: 121125
|
||||
Attack: 4093
|
||||
Attack2: 847
|
||||
Defense: 327
|
||||
MagicDefense: 108
|
||||
Str: 185
|
||||
Agi: 101
|
||||
Vit: 50
|
||||
Int: 158
|
||||
Dex: 178
|
||||
Luk: 77
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Small
|
||||
Race: Formless
|
||||
Element: Dark
|
||||
ElementLevel: 1
|
||||
WalkSpeed: 100
|
||||
AttackDelay: 868
|
||||
AttackMotion: 480
|
||||
DamageMotion: 120
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Brigan
|
||||
Rate: 2500
|
||||
- Item: Evil_Horn
|
||||
Rate: 1750
|
||||
- Item: Yellow_Herb
|
||||
Rate: 1750
|
||||
- Item: Oridecon
|
||||
Rate: 100
|
||||
- Item: Short_Rope
|
||||
Rate: 1250
|
||||
- Item: Gold_Lux
|
||||
Rate: 25
|
||||
- Item: Chaos_Ba_Jr_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20526
|
||||
AegisName: ILL_SIDE_WINDER
|
||||
Name: Chaos Side Winder
|
||||
Level: 176
|
||||
Hp: 1051983
|
||||
BaseExp: 172143
|
||||
JobExp: 120499
|
||||
Attack: 4026
|
||||
Attack2: 832
|
||||
Defense: 341
|
||||
MagicDefense: 108
|
||||
Str: 183
|
||||
Agi: 94
|
||||
Vit: 55
|
||||
Int: 156
|
||||
Dex: 177
|
||||
Luk: 70
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Brute
|
||||
Element: Poison
|
||||
ElementLevel: 1
|
||||
WalkSpeed: 200
|
||||
AttackDelay: 1576
|
||||
AttackMotion: 576
|
||||
DamageMotion: 576
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Scale_Of_Snakes
|
||||
Rate: 2500
|
||||
- Item: Posionous_Canine
|
||||
Rate: 1750
|
||||
- Item: Karvodailnirol
|
||||
Rate: 5
|
||||
- Item: Tsurugi
|
||||
Rate: 25
|
||||
- Item: White_Herb
|
||||
Rate: 700
|
||||
- Item: Snake_Deadly_Poison
|
||||
Rate: 1250
|
||||
- Item: Chaos_S_Winder_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20527
|
||||
AegisName: ILL_HUNTER_FLY
|
||||
Name: Chaos Hunter Fly
|
||||
Level: 175
|
||||
Hp: 1045087
|
||||
BaseExp: 171014
|
||||
JobExp: 119710
|
||||
Attack: 3916
|
||||
Attack2: 817
|
||||
Defense: 313
|
||||
MagicDefense: 107
|
||||
Str: 179
|
||||
Agi: 115
|
||||
Vit: 46
|
||||
Int: 154
|
||||
Dex: 189
|
||||
Luk: 66
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Small
|
||||
Race: Formless
|
||||
Element: Wind
|
||||
ElementLevel: 2
|
||||
WalkSpeed: 150
|
||||
AttackDelay: 676
|
||||
AttackMotion: 576
|
||||
DamageMotion: 480
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Solid_Shell
|
||||
Rate: 2500
|
||||
- Item: Steel
|
||||
Rate: 50
|
||||
- Item: Zargon
|
||||
Rate: 1750
|
||||
- Item: Oridecon_Stone
|
||||
Rate: 70
|
||||
- Item: Delicious_Juice
|
||||
Rate: 1250
|
||||
- Item: Rough_Wind
|
||||
Rate: 20
|
||||
- Item: Chaos_H_Fly_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20528
|
||||
AegisName: ILL_MANTIS
|
||||
Name: Chaos Mantis
|
||||
Level: 174
|
||||
Hp: 1039216
|
||||
BaseExp: 170053
|
||||
JobExp: 119037
|
||||
Attack: 3937
|
||||
Attack2: 817
|
||||
Defense: 315
|
||||
MagicDefense: 71
|
||||
Str: 181
|
||||
Agi: 96
|
||||
Vit: 47
|
||||
Int: 155
|
||||
Dex: 184
|
||||
Luk: 67
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Insect
|
||||
Element: Earth
|
||||
ElementLevel: 1
|
||||
WalkSpeed: 200
|
||||
AttackDelay: 1528
|
||||
AttackMotion: 660
|
||||
DamageMotion: 432
|
||||
Ai: 04
|
||||
Modes:
|
||||
Detector: true
|
||||
Drops:
|
||||
- Item: Limb_Of_Mantis
|
||||
Rate: 2250
|
||||
- Item: Yellow_Live
|
||||
Rate: 60
|
||||
- Item: Solid_Shell
|
||||
Rate: 1000
|
||||
- Item: Mantis_Flower
|
||||
Rate: 1250
|
||||
- Item: Azure_Jewel
|
||||
Rate: 10
|
||||
- Item: Red_Herb
|
||||
Rate: 500
|
||||
- Item: Chaos_Mantis_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20529
|
||||
AegisName: ILL_GHOSTRING
|
||||
Name: Chaos Ghostring
|
||||
Level: 173
|
||||
Hp: 1033446
|
||||
BaseExp: 169110
|
||||
JobExp: 118377
|
||||
Attack: 3979
|
||||
Attack2: 834
|
||||
Defense: 320
|
||||
MagicDefense: 71
|
||||
Str: 184
|
||||
Agi: 87
|
||||
Vit: 49
|
||||
Int: 159
|
||||
Dex: 182
|
||||
Luk: 61
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Demon
|
||||
Element: Ghost
|
||||
ElementLevel: 2
|
||||
WalkSpeed: 300
|
||||
AttackDelay: 1220
|
||||
AttackMotion: 1080
|
||||
DamageMotion: 648
|
||||
Ai: 04
|
||||
Modes:
|
||||
Detector: true
|
||||
Drops:
|
||||
- Item: Transparent_Cloth
|
||||
Rate: 2500
|
||||
- Item: Soft_Silk_Cloth
|
||||
Rate: 1750
|
||||
- Item: Scell
|
||||
Rate: 1000
|
||||
- Item: Fragment_Of_Crystal
|
||||
Rate: 1750
|
||||
- Item: Soft_Scarf
|
||||
Rate: 1250
|
||||
- Item: Chaos_Goring_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20530
|
||||
AegisName: ILL_KILLER_MANTIS
|
||||
Name: Chaos Killer Mantis
|
||||
Level: 177
|
||||
Hp: 1058167
|
||||
BaseExp: 173154
|
||||
JobExp: 121280
|
||||
Attack: 4027
|
||||
Attack2: 842
|
||||
Defense: 348
|
||||
MagicDefense: 72
|
||||
Str: 182
|
||||
Agi: 105
|
||||
Vit: 57
|
||||
Int: 157
|
||||
Dex: 194
|
||||
Luk: 47
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Insect
|
||||
Element: Earth
|
||||
ElementLevel: 1
|
||||
WalkSpeed: 175
|
||||
AttackDelay: 1528
|
||||
AttackMotion: 660
|
||||
DamageMotion: 432
|
||||
Ai: 04
|
||||
Modes:
|
||||
Detector: true
|
||||
Drops:
|
||||
- Item: Limb_Of_Mantis
|
||||
Rate: 2500
|
||||
- Item: Solid_Shell
|
||||
Rate: 1250
|
||||
- Item: Yggdrasilberry
|
||||
Rate: 15
|
||||
- Item: Yellow_Live
|
||||
Rate: 70
|
||||
- Item: Butcher
|
||||
Rate: 25
|
||||
- Item: Purple_Solid_Shell
|
||||
Rate: 1250
|
||||
- Item: Chaos_K_Mantis_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20531
|
||||
AegisName: ILL_POPORING
|
||||
Name: Chaos Poporing
|
||||
Level: 173
|
||||
Hp: 1032638
|
||||
BaseExp: 168976
|
||||
JobExp: 118283
|
||||
Attack: 3828
|
||||
Attack2: 797
|
||||
Defense: 296
|
||||
MagicDefense: 70
|
||||
Str: 177
|
||||
Agi: 85
|
||||
Vit: 41
|
||||
Int: 152
|
||||
Dex: 172
|
||||
Luk: 29
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Plant
|
||||
Element: Poison
|
||||
ElementLevel: 3
|
||||
WalkSpeed: 300
|
||||
AttackDelay: 1672
|
||||
AttackMotion: 672
|
||||
DamageMotion: 480
|
||||
Ai: 02
|
||||
Drops:
|
||||
- Item: Sticky_Mucus
|
||||
Rate: 2500
|
||||
- Item: Green_Herb
|
||||
Rate: 1000
|
||||
- Item: Seed_Of_Yggdrasil
|
||||
Rate: 20
|
||||
- Item: Fragment_Of_Crystal
|
||||
Rate: 1750
|
||||
- Item: Brilliant_Jelly
|
||||
Rate: 1250
|
||||
- Item: Elunium
|
||||
Rate: 50
|
||||
- Item: Chaos_Poporing_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20532
|
||||
AegisName: ILL_STEM_WORM
|
||||
Name: Chaotic Stem Worm
|
||||
Level: 172
|
||||
Hp: 1027071
|
||||
BaseExp: 168066
|
||||
JobExp: 117646
|
||||
Attack: 3917
|
||||
Attack2: 804
|
||||
Defense: 307
|
||||
MagicDefense: 70
|
||||
Str: 180
|
||||
Agi: 95
|
||||
Vit: 45
|
||||
Int: 156
|
||||
Dex: 187
|
||||
Luk: 69
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Medium
|
||||
Race: Plant
|
||||
Element: Wind
|
||||
ElementLevel: 1
|
||||
WalkSpeed: 300
|
||||
AttackDelay: 1956
|
||||
AttackMotion: 756
|
||||
DamageMotion: 528
|
||||
Ai: 04
|
||||
Drops:
|
||||
- Item: Tough_Scalelike_Stem
|
||||
Rate: 2500
|
||||
- Item: White_Herb
|
||||
Rate: 1000
|
||||
- Item: Oridecon
|
||||
Rate: 100
|
||||
- Item: Great_Nature
|
||||
Rate: 20
|
||||
- Item: Suspicious_Sap
|
||||
Rate: 1250
|
||||
- Item: Seed_Of_Yggdrasil
|
||||
Rate: 20
|
||||
- Item: Chaos_Stem_W_Card
|
||||
Rate: 1
|
||||
StealProtected: true
|
||||
- Id: 20533
|
||||
AegisName: G_ILL_BAPHOMET_J
|
||||
Name: Chaos Baphomet Jr.
|
||||
Level: 177
|
||||
Hp: 105744
|
||||
Attack: 4093
|
||||
Attack2: 847
|
||||
Defense: 327
|
||||
MagicDefense: 108
|
||||
Str: 185
|
||||
Agi: 101
|
||||
Vit: 50
|
||||
Int: 158
|
||||
Dex: 178
|
||||
Luk: 77
|
||||
AttackRange: 1
|
||||
SkillRange: 10
|
||||
ChaseRange: 12
|
||||
Size: Small
|
||||
Race: Formless
|
||||
Element: Dark
|
||||
ElementLevel: 1
|
||||
WalkSpeed: 100
|
||||
AttackDelay: 868
|
||||
AttackMotion: 481
|
||||
DamageMotion: 120
|
||||
Ai: 24
|
||||
# - Id: 20534
|
||||
# AegisName: G_REGINLEIF
|
||||
# - Id: 20535
|
||||
|
||||
@@ -14164,6 +14164,165 @@
|
||||
20603,ABYSSMAN@NPC_COMBOATTACK,attack,171,2,2000,500,5000,no,target,always,0,,,,,,,
|
||||
20603,ABYSSMAN@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,29,
|
||||
|
||||
// Illusion of Labyrinth
|
||||
20520,ILL_BAPHOMET@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,0,,,,,,29,
|
||||
20520,ILL_BAPHOMET@NPC_EARTHQUAKE,chase,653,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,6,
|
||||
20520,ILL_BAPHOMET@NPC_EARTHQUAKE,attack,653,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,6,
|
||||
// 20520,ILL_BAPHOMET@NPC_EARTHQUAKE_K,chase,750,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,6,
|
||||
// 20520,ILL_BAPHOMET@NPC_EARTHQUAKE_K,attack,750,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,6,
|
||||
20520,ILL_BAPHOMET@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
|
||||
20520,ILL_BAPHOMET@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_HELLJUDGEMENT2,chase,768,5,10000,800,10000,no,target,always,0,,,,,,6,
|
||||
20520,ILL_BAPHOMET@NPC_HELLJUDGEMENT2,attack,768,5,10000,800,10000,no,target,always,0,,,,,,6,
|
||||
20520,ILL_BAPHOMET@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,0,,,,,,29,
|
||||
20520,ILL_BAPHOMET@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,20533,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,20533,,,,,,
|
||||
20520,ILL_BAPHOMET@WZ_VERMILION,attack,85,21,2000,500,2000,no,target,always,0,,,,,,29,
|
||||
20520,ILL_BAPHOMET@WZ_VERMILION,chase,85,21,5000,500,2000,no,target,skillused,18,,,,,,29,
|
||||
20520,ILL_BAPHOMET@WZ_VERMILION,chase,85,21,2000,500,2000,no,target,always,0,,,,,,29,
|
||||
20520,ILL_BAPHOMET@AL_HEAL,idle,28,11,10000,0,5000,yes,friend,myhpltmaxrate,50,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_CRITICALWOUND,attack,673,3,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_BLEEDING2,attack,764,3,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_GRADUAL_GRAVITY,attack,752,3,3000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
|
||||
20520,ILL_BAPHOMET@NPC_DAMAGE_HEAL,attack,753,1,10000,1500,60000,no,target,myhpltmaxrate,10,,,,,,,
|
||||
20521,ILL_ANDREA@AL_PNEUMA,idle,25,1,5000,0,10000,yes,target,longrangeattacked,0,,,,,,22,
|
||||
20521,ILL_ANDREA@NPC_CHEAL,attack,729,5,5000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20521,ILL_ANDREA@AL_HEAL,attack,28,11,5000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20521,ILL_ANDREA@NPC_CHEAL,idle,729,5,10000,500,5000,yes,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20521,ILL_ANDREA@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20521,ILL_ANDREA@NPC_CHEAL,chase,729,5,10000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20521,ILL_ANDREA@AL_HEAL,chase,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20521,ILL_ANDREA@NPC_HOLYATTACK,attack,189,5,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20521,ILL_ANDREA@NPC_BLINDATTACK,attack,177,5,1000,700,5000,no,target,always,0,,,,,,,
|
||||
20521,ILL_ANDREA@AL_DECAGI,attack,30,48,500,1000,5000,no,target,always,0,,,,,,29,
|
||||
20521,ILL_ANDREA@CR_HOLYCROSS,attack,253,5,1000,0,5000,yes,target,always,0,,,,,,,
|
||||
20521,ILL_ANDREA@AL_DECAGI,chase,30,1,2000,1000,20000,no,target,always,0,,,,,,29,
|
||||
20521,ILL_ANDREA@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20521,ILL_ANDREA@AL_DECAGI,chase,30,48,2000,1000,20000,no,target,always,0,,,,,,29,
|
||||
20521,ILL_ANDREA@SM_BASH,attack,5,10,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20522,ILL_ANES@AL_PNEUMA,idle,25,1,5000,0,10000,yes,target,longrangeattacked,0,,,,,,22,
|
||||
20522,ILL_ANES@NPC_CHEAL,attack,729,5,10000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20522,ILL_ANES@AL_HEAL,attack,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20522,ILL_ANES@NPC_CHEAL,idle,729,5,10000,500,5000,yes,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20522,ILL_ANES@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20522,ILL_ANES@NPC_CHEAL,chase,729,5,10000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20522,ILL_ANES@AL_HEAL,chase,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20522,ILL_ANES@NPC_HOLYATTACK,attack,189,5,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20522,ILL_ANES@NPC_SILENCEATTACK,attack,178,5,1000,700,5000,no,target,always,0,,,,,,,
|
||||
20522,ILL_ANES@AL_DECAGI,attack,30,48,500,1000,5000,no,target,always,0,,,,,,29,
|
||||
20522,ILL_ANES@MG_SAFETYWALL,attack,12,10,500,1000,5000,no,target,always,0,,,,,,29,
|
||||
20522,ILL_ANES@AL_DECAGI,chase,30,48,2000,1000,20000,no,target,always,0,,,,,,29,
|
||||
20522,ILL_ANES@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20522,ILL_ANES@SM_BASH,attack,5,10,500,0,5000,yes,target,always,0,,,,,,29,
|
||||
20523,ILL_SILVANO@AL_PNEUMA,idle,25,1,5000,0,10000,yes,target,longrangeattacked,0,,,,,,22,
|
||||
20523,ILL_SILVANO@NPC_CHEAL,attack,729,5,10000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20523,ILL_SILVANO@AL_HEAL,attack,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20523,ILL_SILVANO@NPC_CHEAL,idle,729,5,10000,500,5000,yes,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20523,ILL_SILVANO@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20523,ILL_SILVANO@NPC_CHEAL,chase,729,5,10000,500,5000,no,self,friendhpltmaxrate,0,,,,,,3,
|
||||
20523,ILL_SILVANO@AL_HEAL,chase,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20523,ILL_SILVANO@NPC_HOLYATTACK,attack,189,5,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20523,ILL_SILVANO@NPC_STUNATTACK,attack,179,5,1000,700,5000,no,target,always,0,,,,,,,
|
||||
20523,ILL_SILVANO@CR_GRANDCROSS,attack,254,5,500,1000,5000,no,self,always,0,,,,,,,
|
||||
20523,ILL_SILVANO@AL_DECAGI,attack,30,48,500,1000,5000,no,target,always,0,,,,,,29,
|
||||
20523,ILL_SILVANO@AL_DECAGI,chase,30,48,2000,1000,20000,no,target,always,0,,,,,,29,
|
||||
20523,ILL_SILVANO@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20523,ILL_SILVANO@SM_BASH,attack,5,10,500,0,5000,yes,target,always,0,,,,,,29,
|
||||
20524,ILL_CECILIA@AL_PNEUMA,idle,25,1,5000,0,10000,yes,target,longrangeattacked,0,,,,,,22,
|
||||
20524,ILL_CECILIA@NPC_CHEAL,attack,729,5,10000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20524,ILL_CECILIA@AL_HEAL,attack,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20524,ILL_CECILIA@NPC_CHEAL,idle,729,5,10000,500,5000,yes,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20524,ILL_CECILIA@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20524,ILL_CECILIA@NPC_CHEAL,chase,729,5,10000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20524,ILL_CECILIA@AL_HEAL,chase,28,11,10000,500,5000,no,friend,myhpltmaxrate,30,,,,,,3,
|
||||
20524,ILL_CECILIA@NPC_HOLYATTACK,attack,189,5,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20524,ILL_CECILIA@NPC_CURSEATTACK,attack,181,5,1000,700,5000,no,target,always,0,,,,,,,
|
||||
20524,ILL_CECILIA@NPC_LEX_AETERNA,attack,727,3,1000,0,5000,yes,target,always,0,,,,,,,
|
||||
20524,ILL_CECILIA@AL_DECAGI,attack,30,48,500,1000,5000,no,target,always,0,,,,,,29,
|
||||
20524,ILL_CECILIA@AL_DECAGI,chase,30,48,2000,1000,20000,no,target,always,0,,,,,,29,
|
||||
20524,ILL_CECILIA@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20524,ILL_CECILIA@SM_BASH,attack,5,10,500,0,5000,yes,target,always,0,,,,,,29,
|
||||
20525,ILL_BAPHOMET_J@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20525,ILL_BAPHOMET_J@NPC_CURSEATTACK,attack,181,3,1000,800,5000,no,target,always,0,,,,,,29,
|
||||
20525,ILL_BAPHOMET_J@NPC_DARKNESSATTACK,attack,190,3,1000,500,5000,no,target,always,0,,,,,,6,
|
||||
20525,ILL_BAPHOMET_J@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,,,,,,2,
|
||||
20525,ILL_BAPHOMET_J@NPC_HALLUCINATION,attack,207,1,300,500,5000,yes,target,always,0,,,,,,29,
|
||||
20525,ILL_BAPHOMET_J@NPC_HALLUCINATION,chase,207,1,300,500,5000,yes,target,always,0,,,,,,29,
|
||||
20525,ILL_BAPHOMET_J@NPC_FIREATTACK,chase,186,3,1000,0,5000,yes,target,always,0,,,,,,19,
|
||||
20525,ILL_BAPHOMET_J@NPC_DARKSTRIKE,chase,340,4,1500,500,5000,no,target,always,0,,,,,,,
|
||||
20525,ILL_BAPHOMET_J@NPC_DARKCROSS,attack,338,3,300,0,5000,yes,target,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@NPC_POISONATTACK,chase,188,5,3000,0,5000,yes,target,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@NPC_COMBOATTACK,attack,171,1,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
|
||||
20526,ILL_SIDE_WINDER@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@MG_LIGHTNINGBOLT,chase,20,9,3000,0,5000,yes,target,always,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
|
||||
20527,ILL_HUNTER_FLY@NPC_COMBOATTACK,attack,171,1,500,0,5000,yes,target,always,0,,,,,,6,
|
||||
20527,ILL_HUNTER_FLY@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@MG_LIGHTNINGBOLT,attack,20,9,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20527,ILL_HUNTER_FLY@NPC_GUIDEDATTACK,attack,172,5,500,0,60000,yes,target,always,0,,,,,,,
|
||||
20528,ILL_MANTIS@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,,
|
||||
20528,ILL_MANTIS@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
|
||||
20528,ILL_MANTIS@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
|
||||
20528,ILL_MANTIS@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,0x0081,,,,,19,
|
||||
20528,ILL_MANTIS@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0x3095,,,,,9,
|
||||
20529,ILL_GHOSTRING@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,28,
|
||||
20529,ILL_GHOSTRING@NPC_CHEAL,idle,729,5,3000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20529,ILL_GHOSTRING@AL_HEAL,idle,28,11,3000,500,5000,no,friend,myhpltmaxrate,60,,,,,,3,
|
||||
20529,ILL_GHOSTRING@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,0,,,,,,,
|
||||
20529,ILL_GHOSTRING@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,0,,,,,,,
|
||||
20529,ILL_GHOSTRING@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,0,,,,,,,
|
||||
20529,ILL_GHOSTRING@MG_SOULSTRIKE,chase,13,4,2000,500,1000,yes,target,always,0,,,,,,,
|
||||
20529,ILL_GHOSTRING@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,0,,,,,,28,
|
||||
20529,ILL_GHOSTRING@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,28,
|
||||
20529,ILL_GHOSTRING@NPC_DARKSTRIKE,chase,340,4,2000,500,1000,yes,target,always,0,,,,,,,
|
||||
20530,ILL_KILLER_MANTIS@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
|
||||
20530,ILL_KILLER_MANTIS@NPC_COMBOATTACK,attack,171,1,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20530,ILL_KILLER_MANTIS@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,6,
|
||||
20530,ILL_KILLER_MANTIS@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,0,,,,,,6,
|
||||
20530,ILL_KILLER_MANTIS@WZ_EARTHSPIKE,attack,90,3,500,500,5000,no,target,always,0,,,,,,,
|
||||
20530,ILL_KILLER_MANTIS@WZ_EARTHSPIKE,chase,90,3,1000,500,5000,no,target,always,0,,,,,,,
|
||||
20530,ILL_KILLER_MANTIS@WZ_HEAVENDRIVE,attack,91,3,500,800,5000,no,target,always,0,,,,,,,
|
||||
20531,ILL_POPORING@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,0,,,,,,2,
|
||||
20531,ILL_POPORING@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,0,,,,,,,
|
||||
20531,ILL_POPORING@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,,
|
||||
20531,ILL_POPORING@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
|
||||
20531,ILL_POPORING@NPC_POISONATTACK,attack,188,3,2000,0,5000,yes,target,always,0,,,,,,,
|
||||
20531,ILL_POPORING@SM_MAGNUM,attack,7,5,500,0,10000,yes,self,always,0,,,,,,,
|
||||
20531,ILL_POPORING@NPC_VENOMIMPRESS,attack,738,2,5000,0,30000,yes,target,always,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,0,,,,,,6,
|
||||
20532,ILL_STEM_WORM@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,0,,,,,,6,
|
||||
20532,ILL_STEM_WORM@KN_TWOHANDQUICKEN,chase,60,30,3000,0,120000,yes,self,always,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@NPC_DEFENDER,chase,205,1,1500,0,300000,yes,self,longrangeattacked,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@AS_SONICBLOW,attack,136,5,500,0,5000,yes,target,always,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@NPC_DEFENDER,attack,205,1,1000,0,300000,yes,self,longrangeattacked,0,,,,,,,
|
||||
20532,ILL_STEM_WORM@NPC_CHEAL,idle,729,5,3000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20532,ILL_STEM_WORM@AL_HEAL,idle,28,11,3000,500,5000,no,friend,myhpltmaxrate,60,,,,,,3,
|
||||
20532,ILL_STEM_WORM@NPC_CHEAL,chase,729,5,3000,500,5000,no,self,friendhpltmaxrate,60,,,,,,3,
|
||||
20532,ILL_STEM_WORM@AL_HEAL,chase,28,11,3000,500,5000,no,friend,myhpltmaxrate,60,,,,,,3,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_CURSEATTACK,attack,181,3,1000,800,5000,no,target,always,0,,,,,,29,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_DARKNESSATTACK,attack,190,3,1000,500,5000,no,target,always,0,,,,,,6,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_HALLUCINATION,attack,207,1,300,500,5000,yes,target,always,0,,,,,,29,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_HALLUCINATION,chase,207,1,300,500,5000,yes,target,always,0,,,,,,29,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_FIREATTACK,chase,186,3,1000,0,5000,yes,target,always,0,,,,,,19,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_DARKSTRIKE,chase,340,4,1500,500,5000,no,target,always,0,,,,,,,
|
||||
20533,G_ILL_BAPHOMET_J@NPC_DARKCROSS,attack,338,3,300,0,5000,yes,target,always,0,,,,,,,
|
||||
|
||||
// Meister ABR's (Automated Battle Robot)
|
||||
20834,ABR_BATTLE_WARIOR@ABR_BATTLE_BUSTER,chase,8601,1,10000,500,5000,yes,target,always,0,,,,,,,
|
||||
20834,ABR_BATTLE_WARIOR@ABR_BATTLE_BUSTER,attack,8601,1,10000,500,5000,yes,target,always,0,,,,,,,
|
||||
|
||||
@@ -1459,21 +1459,21 @@ Body:
|
||||
TimeLimit: 4h
|
||||
- Id: 3464
|
||||
Title: Illusion Investigation Team - Terrian
|
||||
# - Id: 3465
|
||||
# Title: Illusion of Labyrinth 100 Kills
|
||||
# Targets:
|
||||
# - Id: 1
|
||||
# Count: 100
|
||||
# Location: prt_mz03_i
|
||||
# MapMobTargets:
|
||||
# ILL_STEM_WORM: true
|
||||
# ILL_GHOSTRING: true
|
||||
# ILL_POPORING: true
|
||||
# ILL_MANTIS: true
|
||||
# ILL_HUNTER_FLY: true
|
||||
# ILL_SIDE_WINDER: true
|
||||
# ILL_BAPHOMET_J: true
|
||||
# ILL_KILLER_MANTIS: true
|
||||
- Id: 3465
|
||||
Title: Illusion of Labyrinth 100 Kills
|
||||
Targets:
|
||||
- Id: 1
|
||||
Count: 100
|
||||
Location: prt_mz03_i
|
||||
MapMobTargets:
|
||||
ILL_STEM_WORM: true
|
||||
ILL_GHOSTRING: true
|
||||
ILL_POPORING: true
|
||||
ILL_MANTIS: true
|
||||
ILL_HUNTER_FLY: true
|
||||
ILL_SIDE_WINDER: true
|
||||
ILL_BAPHOMET_J: true
|
||||
ILL_KILLER_MANTIS: true
|
||||
- Id: 3466
|
||||
Title: Illusion of Labyrinth 100 Kills - Standby
|
||||
TimeLimit: 4h
|
||||
@@ -9307,9 +9307,90 @@ Body:
|
||||
- Id: 12461
|
||||
Title: The aftereffects of powerful death
|
||||
TimeLimit: 3d 4h
|
||||
- Id: 12470
|
||||
Title: "[Daily] Andrea's Revenge I"
|
||||
Targets:
|
||||
- Mob: ILL_BAPHOMET_J
|
||||
Count: 5
|
||||
- Id: 12471
|
||||
Title: "[Daily] Andrea's Revenge II"
|
||||
Targets:
|
||||
- Mob: ILL_GHOSTRING
|
||||
Count: 2
|
||||
- Id: 12472
|
||||
Title: "[Daily] Anes' Revenge I"
|
||||
Targets:
|
||||
- Mob: ILL_HUNTER_FLY
|
||||
Count: 5
|
||||
- Id: 12473
|
||||
Title: "[Daily] Anes' Revenge II"
|
||||
Targets:
|
||||
- Mob: ILL_KILLER_MANTIS
|
||||
Count: 5
|
||||
- Id: 12474
|
||||
Title: "[Daily] Silvano's Revenge I"
|
||||
Targets:
|
||||
- Mob: ILL_MANTIS
|
||||
Count: 5
|
||||
- Id: 12475
|
||||
Title: "[Daily] Silvano's Revenge II"
|
||||
Targets:
|
||||
- Mob: ILL_POPORING
|
||||
Count: 5
|
||||
- Id: 12476
|
||||
Title: "[Daily] Cecilia's Revenge I"
|
||||
Targets:
|
||||
- Mob: ILL_SIDE_WINDER
|
||||
Count: 5
|
||||
- Id: 12477
|
||||
Title: "[Daily] Cecilia's Revenge II"
|
||||
Targets:
|
||||
- Mob: ILL_STEM_WORM
|
||||
Count: 3
|
||||
- Id: 12478
|
||||
Title: "[Weekly] Soul Purification - Andrea"
|
||||
Targets:
|
||||
- Mob: ILL_ANDREA
|
||||
Count: 1
|
||||
- Id: 12479
|
||||
Title: "[Weekly] Soul Purification - Anes"
|
||||
Targets:
|
||||
- Mob: ILL_ANES
|
||||
Count: 1
|
||||
- Id: 12480
|
||||
Title: "[Weekly] Soul Purification - Silvano"
|
||||
Targets:
|
||||
- Mob: ILL_SILVANO
|
||||
Count: 1
|
||||
- Id: 12481
|
||||
Title: "[Weekly] Soul Purification - Cecilia"
|
||||
Targets:
|
||||
- Mob: ILL_CECILIA
|
||||
Count: 1
|
||||
- Id: 12482
|
||||
Title: Disappearance of a Colleague
|
||||
- Id: 12483
|
||||
Title: Follow Up
|
||||
- Id: 12484
|
||||
Title: Searching for Traces - Andrea
|
||||
- Id: 12485
|
||||
Title: Searching for Traces - Anes
|
||||
- Id: 12486
|
||||
Title: Searching for Traces - Silvano
|
||||
- Id: 12487
|
||||
Title: Searching for Traces - Cecilia
|
||||
- Id: 12488
|
||||
Title: Search Result
|
||||
- Id: 12489
|
||||
Title: Guest Guild Member
|
||||
- Id: 12490
|
||||
Title: Receive today's mission
|
||||
Title: "[Cooldown] Daily Mission"
|
||||
TimeLimit: 4h
|
||||
- Id: 12491
|
||||
Title: "[Cooldown] Weekly Mission"
|
||||
TimeLimit: Monday 4h
|
||||
- Id: 12492
|
||||
Title: Esmeralda
|
||||
- Id: 12493
|
||||
Title: The aftereffect of the challenge
|
||||
TimeLimit: 3d 4h
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
//===== rAthena Script =======================================
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Town
|
||||
//===== By: ==================================================
|
||||
//= L0ne_W0lf
|
||||
//===== Current Version: =====================================
|
||||
//= 1.4
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion]
|
||||
//= Brasilis Town Script
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First version. Transportation and Basic NPCs.
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First version. Transportation and Basic NPCs. [L0ne_W0lf]
|
||||
//= 1.1 Fixed Zeny not being removed for payment. [Kisuka]
|
||||
//= 1.2 Updated dialog, added Ice Cream Maker. [L0ne_W0lf]
|
||||
//= 1.3 Moved Alberta NPC to pre-re/re paths. [Euphy]
|
||||
//= 1.4 Added VIP features. [Euphy]
|
||||
//============================================================
|
||||
//============================================================
|
||||
|
||||
// Brasilis Transportation :: brasilis_trans
|
||||
//============================================================
|
||||
/* Pre-Renewal coordinates: alberta,247,115,3 */
|
||||
alberta,246,82,3 script Crewman#bra2 100,{
|
||||
- script ::Crewman_bra2 -1,{
|
||||
mes "[Crewman]";
|
||||
mes "Hey, have you heard of a place called Brasilis?";
|
||||
mes "It's a tropical city that's hot like the desert but also rainy. It is a very mysterious place.";
|
||||
@@ -110,7 +110,18 @@ function Pick {
|
||||
Go(.@map$,.@x,.@y);
|
||||
}
|
||||
function Restrict {
|
||||
if ((getarg(0) == "RE" && !checkre(0)) || (getarg(0) == "Pre-RE" && checkre(0))) {
|
||||
.@type$ = getarg(0);
|
||||
|
||||
if (.@type$ == "Brasilis") {
|
||||
// If the official warper to Brasilis is enabled, meaning is either
|
||||
// Renewal mode or Pre-renewal Brasilis is enabled, we lift the restriction
|
||||
if (getnpcid(0, "Crewman_bra2"))
|
||||
return;
|
||||
// Otherwise we apply the renewal restriction
|
||||
.@type$ = "RE";
|
||||
}
|
||||
|
||||
if ((.@type$ == "RE" && !checkre(0)) || (.@type$ == "Pre-RE" && checkre(0))) {
|
||||
if (getarg(1,0)) {
|
||||
set @warp_block,0;
|
||||
for (set .@i,1; .@i<getargcount(); set .@i,.@i+1)
|
||||
@@ -141,7 +152,7 @@ T2: Go("alberta",28,234);
|
||||
T3: Go("aldebaran",140,131);
|
||||
T4: Go("amatsu",198,84);
|
||||
T5: Go("ayothaya",208,166);
|
||||
T6: Restrict("RE");
|
||||
T6: Restrict("Brasilis");
|
||||
Go("brasilis",196,217);
|
||||
T7: Go("comodo",209,143);
|
||||
T8: Restrict("RE");
|
||||
@@ -218,7 +229,7 @@ F2: setarray @c[2],173,134,212,150;
|
||||
F3: Restrict("RE");
|
||||
setarray @c[2],193,220,220,187;
|
||||
Disp("Bifrost Field",1,2); Pick("bif_fild");
|
||||
F4: Restrict("RE");
|
||||
F4: Restrict("Brasilis");
|
||||
setarray @c[2],74,32;
|
||||
Disp("Brasilis Field",1,1); Pick("bra_fild");
|
||||
F5: Restrict("Pre-RE",5);
|
||||
@@ -343,7 +354,7 @@ D7: Restrict("RE");
|
||||
D8: Restrict("RE",4,5);
|
||||
setarray @c[2],150,288,150,18,140,134,244,52,100,202;
|
||||
Disp("Bio Lab 1:Bio Lab 2:Bio Lab 3:Bio Lab 4:Tomb of the Fallen"); Pick("","lhz_dun01","lhz_dun02","lhz_dun03","lhz_dun04","lhz_dun_n");
|
||||
D9: Restrict("RE");
|
||||
D9: Restrict("Brasilis");
|
||||
setarray @c[2],87,47,262,262;
|
||||
Disp("Brasilis Dungeon",1,2); Pick("bra_dun");
|
||||
D10: Restrict("RE",6);
|
||||
|
||||
@@ -687,3 +687,12 @@ alb2trea,59,69,5 script Kafra Employee::kaf_alb2trea 117,{
|
||||
savepoint "alb2trea",92,64,1,1;
|
||||
callfunc "F_KafEnd",0,1,"at Sunken Ship";
|
||||
}
|
||||
|
||||
// Brasilis
|
||||
//============================================================
|
||||
brasilis,197,221,4 script Kafra Employee::kaf_bra 4_F_KAFRA1,{
|
||||
cutin "kafra_01",2;
|
||||
callfunc "F_Kafra",0,3,0,80,700;
|
||||
savepoint "brasilis",195,259,1,1;
|
||||
callfunc "F_KafEnd",0,1,"in the city of Brasilis";
|
||||
}
|
||||
|
||||
@@ -298,6 +298,12 @@ man_fild02 mapflag nightenabled
|
||||
splendide mapflag nightenabled
|
||||
spl_fild01 mapflag nightenabled
|
||||
|
||||
//============================================================
|
||||
// Brasilis
|
||||
//============================================================
|
||||
brasilis mapflag nightenabled
|
||||
bra_fild01 mapflag nightenabled
|
||||
|
||||
//============================================================
|
||||
// Events
|
||||
//============================================================
|
||||
|
||||
@@ -371,6 +371,12 @@ splendide mapflag nobranch
|
||||
spl_in01 mapflag nobranch
|
||||
spl_in02 mapflag nobranch
|
||||
|
||||
//============================================================
|
||||
// Brasilis
|
||||
//============================================================
|
||||
brasilis mapflag nobranch
|
||||
bra_in01 mapflag nobranch
|
||||
|
||||
//============================================================
|
||||
// RWC
|
||||
//============================================================
|
||||
|
||||
@@ -731,6 +731,13 @@ spl_fild01 mapflag nomemo
|
||||
spl_in01 mapflag nomemo
|
||||
spl_in02 mapflag nomemo
|
||||
|
||||
//============================================================
|
||||
// Brasilis
|
||||
//============================================================
|
||||
bra_in01 mapflag nomemo
|
||||
bra_dun01 mapflag nomemo
|
||||
bra_dun02 mapflag nomemo
|
||||
|
||||
//evt_zombie mapflag nomemo
|
||||
|
||||
//============================================================
|
||||
|
||||
@@ -25,6 +25,8 @@ ama_in01 mapflag nopenalty
|
||||
ama_in02 mapflag nopenalty
|
||||
ama_test mapflag nopenalty
|
||||
arena_room mapflag nopenalty
|
||||
brasilis mapflag nopenalty
|
||||
bra_in01 mapflag nopenalty
|
||||
comodo mapflag nopenalty
|
||||
cmd_in01 mapflag nopenalty
|
||||
cmd_in02 mapflag nopenalty
|
||||
|
||||
@@ -58,6 +58,8 @@ aldebaran mapflag pvp off
|
||||
ama_in01 mapflag pvp off
|
||||
ama_in02 mapflag pvp off
|
||||
amatsu mapflag pvp off
|
||||
brasilis mapflag pvp off
|
||||
bra_in01 mapflag pvp off
|
||||
cmd_in01 mapflag pvp off
|
||||
cmd_in02 mapflag pvp off
|
||||
comodo mapflag pvp off
|
||||
|
||||
@@ -426,7 +426,7 @@ bat_a01 mapflag noteleport
|
||||
bat_a02 mapflag noteleport
|
||||
|
||||
//============================================================
|
||||
// Episode 13
|
||||
// Episode 13.2
|
||||
//============================================================
|
||||
mid_campin mapflag noteleport
|
||||
moc_fild22b mapflag noteleport
|
||||
@@ -438,6 +438,11 @@ man_in01 mapflag noteleport
|
||||
spl_in01 mapflag noteleport
|
||||
spl_in02 mapflag noteleport
|
||||
|
||||
//============================================================
|
||||
// Brasilis
|
||||
//============================================================
|
||||
bra_in01 mapflag noteleport
|
||||
|
||||
//============================================================
|
||||
// Orc's Memory
|
||||
//============================================================
|
||||
|
||||
@@ -14,6 +14,7 @@ alberta mapflag reset
|
||||
aldebaran mapflag reset
|
||||
amatsu mapflag reset
|
||||
ayothaya mapflag reset
|
||||
brasilis mapflag reset
|
||||
comodo mapflag reset
|
||||
einbroch mapflag reset
|
||||
einbech mapflag reset
|
||||
|
||||
@@ -28,3 +28,4 @@ louyang mapflag town
|
||||
hugel mapflag town
|
||||
rachel mapflag town
|
||||
veins mapflag town
|
||||
brasilis mapflag town
|
||||
|
||||
@@ -203,6 +203,47 @@ ve_in,157,219,5 script Inn Master#Receptionist 709,{
|
||||
}
|
||||
}
|
||||
|
||||
//======================== Brasilis =================================
|
||||
bra_in01,27,24,3 script Hotel Keeper#bra1 478,{
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Welcome to the beautiful Brasilis Hotel.";
|
||||
next;
|
||||
switch(select("Save:Rest -5000 zeny:Cancel")) {
|
||||
case 1:
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Do you want to save here at the Brasilis Hotel?";
|
||||
next;
|
||||
switch(select("No thank you.:Absolutely.")) {
|
||||
case 1:
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Ok then, enjoy your stay.";
|
||||
close;
|
||||
case 2:
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Your respawn has been saved here at the hotel. I hope that you enjoy your stay here in Brasilis.";
|
||||
savepoint "bra_in01",144,69,1,1;
|
||||
close;
|
||||
}
|
||||
end;
|
||||
case 2:
|
||||
if (Zeny > 4999) {
|
||||
mes "[Hotel Keeper]";
|
||||
mes "I will show you a great room.";
|
||||
close2;
|
||||
if (Zeny < 5000)
|
||||
end;
|
||||
Zeny -= 5000;
|
||||
percentheal 100,100;
|
||||
warp "bra_in01",144,69;
|
||||
end;
|
||||
}
|
||||
mes "[Hotel Keeper]";
|
||||
mes "I'm sorry, but the service charge is 5,000 zeny per night.";
|
||||
case 3:
|
||||
close;
|
||||
}
|
||||
}
|
||||
|
||||
//======================= Inn Function ==============================
|
||||
function script F_InnMaid {
|
||||
.@npc_name$ = getarg(0);
|
||||
|
||||
20
npc/pre-re/cities/brasilis.txt
Normal file
20
npc/pre-re/cities/brasilis.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Town Pre-Renewal
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion based on bRO & jRO servers]
|
||||
//= Brasilis town NPCs.
|
||||
//
|
||||
// Note:
|
||||
// - Brasilis was introduced in Pre-Renewal only for bRO and
|
||||
// jRO official servers with differences in monster stats,
|
||||
// spawns and quests.
|
||||
// It was added in Renewal for every other official server.
|
||||
// Since we follow kRO this is disabled by default.
|
||||
// You can enable it on npc/pre-re/scripts_athena.conf
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First Version [Daegaladh]
|
||||
//============================================================
|
||||
|
||||
// Brasilis Transportation :: brasilis_trans
|
||||
//============================================================
|
||||
alberta,247,115,3 duplicate(Crewman_bra2) Crewman#bra2 100
|
||||
77
npc/pre-re/guides/guides_brasilis.txt
Normal file
77
npc/pre-re/guides/guides_brasilis.txt
Normal file
@@ -0,0 +1,77 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Guide
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion based on bRO & jRO servers]
|
||||
//= Guide for the city of Brasilis.
|
||||
//
|
||||
// Note:
|
||||
// - Brasilis was introduced in Pre-Renewal only for bRO and
|
||||
// jRO official servers with differences in monster stats,
|
||||
// spawns and quests.
|
||||
// It was added in Renewal for every other official server.
|
||||
// Since we follow kRO this is disabled by default.
|
||||
// You can enable it on npc/pre-re/scripts_athena.conf
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First Version [Daegaladh]
|
||||
//============================================================
|
||||
|
||||
brasilis,219,97,3 script Brasilis Guide 478,{
|
||||
mes "[Brasilis Guide]";
|
||||
mes "Welcome to ^8B4513Brasilis^000000, a country as passionate as the sun.";
|
||||
mes "If you have any questions, please ask me.";
|
||||
next;
|
||||
switch(select("Ask about locations:Remove Marks from Mini-Map:Cancel")) {
|
||||
case 1:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "Where can I guide you?";
|
||||
next;
|
||||
switch(select("[ Hotel ]:[ Jungle Cable ]:[ Art Museum ]:[ Market ]:[ Verass Monument ]")) {
|
||||
case 1:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "The Brasilis Hotel is located just above, ^FF3355+^000000.";
|
||||
mes "Is there anything else I can do for you?";
|
||||
viewpoint 1,274,151,2,0xFF3355;
|
||||
close;
|
||||
case 2:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "Do you want to go through the rough jungle? You can take a ";
|
||||
mes "Jungle Cable here ^CE6300+^000000.";
|
||||
mes "Is there anything else I can do for you?";
|
||||
viewpoint 1,308,335,3,0xCE6300;
|
||||
close;
|
||||
case 3:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "The pride of Brasilis, the world scale Art Museum is at ^A5BAAD+^000000.";
|
||||
mes "Is there anything else I can do for you?";
|
||||
viewpoint 1,137,167,4,0x00FF00;
|
||||
close;
|
||||
case 4:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "You can buy items for hunting at the Market here ^55FF33+^000000.";
|
||||
mes "Is there anything else I can do for you?";
|
||||
viewpoint 1,254,248,5,0x55FF33;
|
||||
close;
|
||||
case 5:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "The iconic monument of Brasilis, the Verass Monument stands at ^3355FF+^000000.";
|
||||
mes "Is there anything else I can do for you?";
|
||||
viewpoint 1,195,235,6,0x3355FF;
|
||||
close;
|
||||
}
|
||||
end;
|
||||
case 2:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "I'll remove all marks from your mini-map.";
|
||||
mes "Is there anything else I can do for you?";
|
||||
viewpoint 0,274,151,2,0x00FF00;
|
||||
viewpoint 0,308,335,3,0x00FF00;
|
||||
viewpoint 0,137,167,4,0x00FF00;
|
||||
viewpoint 0,254,248,5,0x00FF00;
|
||||
viewpoint 0,195,235,6,0x00FF00;
|
||||
close;
|
||||
case 3:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "Wandering on your own is always the best way to explore. Anyway, take care.";
|
||||
close;
|
||||
}
|
||||
}
|
||||
64
npc/pre-re/mobs/dungeons/bra_dun.txt
Normal file
64
npc/pre-re/mobs/dungeons/bra_dun.txt
Normal file
@@ -0,0 +1,64 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Dungeon Monster Spawn Script
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion based on bRO & jRO servers]
|
||||
//
|
||||
// Note:
|
||||
// - Brasilis was introduced in Pre-Renewal only for bRO and
|
||||
// jRO official servers with differences in monster stats,
|
||||
// spawns and quests.
|
||||
// It was added in Renewal for every other official server.
|
||||
// Since we follow kRO this is disabled by default.
|
||||
// You can enable it on npc/pre-re/scripts_athena.conf
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First Version [Playtester]
|
||||
//============================================================
|
||||
|
||||
//bRO Pre-Renewal spawns
|
||||
|
||||
//==================================================
|
||||
// bra_dun01 - Behind the Waterfall
|
||||
//==================================================
|
||||
bra_dun01 monster Iara 2069,60,5000
|
||||
bra_dun01 monster Piranha 2070,100,5000
|
||||
bra_dun01 monster Hydra 1068,10,5000
|
||||
bra_dun01 monster Plankton 1161,10,5000
|
||||
bra_dun01 monster Marina 1141,10,5000
|
||||
bra_dun01 monster Black Mushroom 1084,10,180000,90000
|
||||
|
||||
//==================================================
|
||||
// bra_dun02 - Behind the Waterfall
|
||||
//==================================================
|
||||
bra_dun02 monster Iara 2069,120,5000
|
||||
bra_dun02 monster Piranha 2070,80,5000
|
||||
bra_dun02 monster Hydra 1068,20,5000
|
||||
bra_dun02 monster Plankton 1161,20,5000
|
||||
bra_dun02 monster Marina 1141,10,5000
|
||||
bra_dun02 monster Black Mushroom 1084,10,180000,90000
|
||||
bra_dun02 boss_monster Boitata 2068,1,7200000,600000,1
|
||||
|
||||
|
||||
//jRO Pre-Renewal spawns
|
||||
|
||||
//==================================================
|
||||
// bra_dun01 - Behind the Waterfall
|
||||
//==================================================
|
||||
//bra_dun01 monster Kukre 1070,40,5000
|
||||
//bra_dun01 monster Hydra 1068,60,5000
|
||||
//bra_dun01 monster Marina 1141,5,5000
|
||||
//bra_dun01 monster Thara Frog 1034,40,5000
|
||||
//bra_dun01 monster Piranha 2070,50,5000
|
||||
//bra_dun01 monster Iara 2069,30,5000
|
||||
//bra_dun01 monster Headless Mule 2071,10,5000
|
||||
//bra_dun01 monster Black Mushroom 1084,5,120000,60000
|
||||
|
||||
//==================================================
|
||||
// bra_dun02 - Behind the Waterfall
|
||||
//==================================================
|
||||
//bra_dun02 monster Hydra 1068,20,5000
|
||||
//bra_dun02 monster Piranha 2070,60,5000
|
||||
//bra_dun02 monster Iara 2069,40,5000
|
||||
//bra_dun02 monster Headless Mule 2071,40,5000
|
||||
//bra_dun02 monster Shining Plant 1083,1,1800000,900000
|
||||
//bra_dun02 monster Red Mushroom 1084,5,120000,60000
|
||||
//bra_dun02 boss_monster Boitata 2068,1,7200000,600000,1
|
||||
48
npc/pre-re/mobs/fields/brasilis.txt
Normal file
48
npc/pre-re/mobs/fields/brasilis.txt
Normal file
@@ -0,0 +1,48 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Fields Monster Spawn Script
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion based on bRO & jRO servers]
|
||||
//
|
||||
// Note:
|
||||
// - Brasilis was introduced in Pre-Renewal only for bRO and
|
||||
// jRO official servers with differences in monster stats,
|
||||
// spawns and quests.
|
||||
// It was added in Renewal for every other official server.
|
||||
// Since we follow kRO this is disabled by default.
|
||||
// You can enable it on npc/pre-re/scripts_athena.conf
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First Version [Playtester]
|
||||
//============================================================
|
||||
|
||||
//==================================================
|
||||
// Brasilis, Strange Hydras
|
||||
//==================================================
|
||||
brasilis,283,88,6,6 monster Strange Hydra 2081,5,30000
|
||||
brasilis,284,104,6,6 monster Strange Hydra 2081,4,30000
|
||||
brasilis,215,80,6,6 monster Strange Hydra 2081,4,30000
|
||||
brasilis,96,50,8,8 monster Strange Hydra 2081,5,30000
|
||||
|
||||
//bRO Pre-Renewal spawns
|
||||
|
||||
//==================================================
|
||||
// bra_fild01 - Brasilis Field
|
||||
//==================================================
|
||||
bra_fild01 monster Headless Mule 2071,40,5000
|
||||
bra_fild01 monster Curupira 2074,80,5000
|
||||
bra_fild01 monster Dokebi 1110,20,5000
|
||||
bra_fild01 monster Jaguar 2072,10,5000
|
||||
bra_fild01 monster Savage 1166,20,5000
|
||||
bra_fild01 monster Toucan 2073,10,5000
|
||||
bra_fild01 monster Red Mushroom 1085,3,360000,180000
|
||||
|
||||
//jRO Pre-Renewal spawns
|
||||
|
||||
//==================================================
|
||||
// bra_fild01
|
||||
//==================================================
|
||||
//bra_fild01 monster Savage 1166,10,5000
|
||||
//bra_fild01 monster Dokebi 1110,20,5000
|
||||
//bra_fild01 monster Curupira 2074,50,5000
|
||||
//bra_fild01 monster Jaguar 2072,35,5000
|
||||
//bra_fild01 monster Toucan 2073,40,5000
|
||||
//bra_fild01 monster Red Mushroom 1085,5,120000,60000
|
||||
@@ -98,3 +98,34 @@ npc: npc/pre-re/quests/quests_nameless.txt
|
||||
npc: npc/pre-re/quests/quests_niflheim.txt
|
||||
npc: npc/pre-re/quests/the_sign_quest.txt
|
||||
npc: npc/pre-re/quests/quests_veins.txt
|
||||
|
||||
// - Disable Brasilis by default --------------------------------
|
||||
// DO NOT COMMENT!!!
|
||||
// Instead, follow the instructions below.
|
||||
// --------------------------------------------------------------
|
||||
delnpc: npc/cities/brasilis.txt
|
||||
delnpc: npc/quests/quests_brasilis.txt
|
||||
delnpc: npc/warps/cities/brasilis.txt
|
||||
delnpc: npc/warps/dungeons/bra_dun.txt
|
||||
delnpc: npc/warps/fields/bra_fild.txt
|
||||
|
||||
// -------------------- Pre-Renewal Brasilis --------------------
|
||||
// Brasilis was introduced in Pre-Renewal only for bRO and
|
||||
// jRO official servers with differences in monster stats,
|
||||
// spawns and quests.
|
||||
// It was added in Renewal for every other official server.
|
||||
// Since we follow kRO this is disabled by default.
|
||||
//
|
||||
// Uncomment the following NPC scripts to enable bRO/jRO's
|
||||
// Pre-Renewal version of Brasilis.
|
||||
// You also need to uncomment the data from file
|
||||
// mob_summon.yml in /db/import/ folder
|
||||
//npc: npc/cities/brasilis.txt
|
||||
//npc: npc/quests/quests_brasilis.txt
|
||||
//npc: npc/warps/cities/brasilis.txt
|
||||
//npc: npc/warps/dungeons/bra_dun.txt
|
||||
//npc: npc/warps/fields/bra_fild.txt
|
||||
//npc: npc/pre-re/cities/brasilis.txt
|
||||
//npc: npc/pre-re/guides/guides_brasilis.txt
|
||||
//npc: npc/pre-re/mobs/dungeons/bra_dun.txt
|
||||
//npc: npc/pre-re/mobs/fields/brasilis.txt
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Quests
|
||||
//===== By ===================================================
|
||||
//= L0ne_W0lf
|
||||
//===== Version ==============================================
|
||||
//= 1.3
|
||||
//===== Compatible With ======================================
|
||||
//= rAthena Project
|
||||
//===== Description ==========================================
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion]
|
||||
//= Lost Puppies (Repeatable, 24 hours.)
|
||||
//= Suspicious Beach (Repeatable, 24 hours. iRO/cRO version.)
|
||||
@@ -14,13 +8,14 @@
|
||||
//= Brasilis Water Lily Quest
|
||||
//= Brasilis Dungeon Access Quest
|
||||
//= Iara (Buff reward. Repeatable, 24 hours.)
|
||||
//===== Comments =============================================
|
||||
//= 1.0 First version.
|
||||
//= 1.1 Hydra Ball (12408)
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First version. [L0ne_W0lf]
|
||||
//= 1.1 Hydra Ball (12408). [og2]
|
||||
//= 1.2 Optimization. [Euphy]
|
||||
//= 1.2a Added 'consumeitem' command. [Euphy]
|
||||
//= 1.3 Added VIP features and fixed some EXP values. [Euphy]
|
||||
//= 1.3a Clean-up. [Capuche]
|
||||
//= 1.4 Added pre-renewal differences [Daegaladh]
|
||||
//============================================================
|
||||
|
||||
// Lost Puppies :: dogdog.sc
|
||||
@@ -59,10 +54,12 @@ brasilis,297,307,5 script Angelo#br 1_M_04,{
|
||||
erasequest 9031;
|
||||
setquest 9032;
|
||||
specialeffect2 EF_ASSUMPTIO;
|
||||
consumeitem 607; //Yggdrasilberry
|
||||
.@rand = rand(1,10);
|
||||
if (.@rand > 4 && .@rand < 9) getitem 504,2; //White_Potion
|
||||
else if (.@rand > 8) getitem 608,1; //Seed_Of_Yggdrasil
|
||||
if (checkre(0)) {
|
||||
consumeitem 607; //Yggdrasilberry
|
||||
.@rand = rand(1,10);
|
||||
if (.@rand > 4 && .@rand < 9) getitem 504,2; //White_Potion
|
||||
else if (.@rand > 8) getitem 608,1; //Seed_Of_Yggdrasil
|
||||
}
|
||||
close;
|
||||
}
|
||||
mes "[Angelo]";
|
||||
@@ -229,11 +226,15 @@ brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
|
||||
//recall_completequest 9029;
|
||||
if (.@nQState2 > -1) erasequest 9029;
|
||||
setquest 9029;
|
||||
consumeitem 607; //Yggdrasilberry
|
||||
if (checkre(0))
|
||||
consumeitem 607; //Yggdrasilberry
|
||||
consumeitem 12070; //Luk_Dish05
|
||||
consumeitem 12055; //Vit_Dish05
|
||||
consumeitem 12065; //Dex_Dish05
|
||||
getitem 11502,3; //Light_Blue_Pot
|
||||
if (checkre(0))
|
||||
getitem 11502,3; //Light_Blue_Pot
|
||||
else
|
||||
getitem 505,5; //Blue_Potion
|
||||
close;
|
||||
}
|
||||
else {
|
||||
@@ -410,10 +411,12 @@ brasilis,187,162,5 script Candy Maker 4_M_BRZ_MAN1,{
|
||||
brazil_gua = 11;
|
||||
completequest 2200;
|
||||
getitem 12414,1; //Guarana_Candy
|
||||
if (VIP_SCRIPT && vip_status(VIP_STATUS_ACTIVE))
|
||||
getexp 105000,15000;
|
||||
else
|
||||
getexp 70000,10000;
|
||||
if (checkre(0)) {
|
||||
if (VIP_SCRIPT && vip_status(VIP_STATUS_ACTIVE))
|
||||
getexp 105000,15000;
|
||||
else
|
||||
getexp 70000,10000;
|
||||
}
|
||||
close;
|
||||
}
|
||||
else if (brazil_gua == 11) {
|
||||
@@ -1030,9 +1033,9 @@ brasilis,203,286,3 script Botanist Karmen#bra 4_F_HUWOMAN,{
|
||||
brazil_regia = 10;
|
||||
completequest 2207;
|
||||
if (VIP_SCRIPT && vip_status(VIP_STATUS_ACTIVE))
|
||||
getexp 75000,15000;
|
||||
getexp 75000, checkre(0)?15000:0;
|
||||
else
|
||||
getexp 50000,10000;
|
||||
getexp 50000, checkre(0)?10000:0;
|
||||
close;
|
||||
}
|
||||
else {
|
||||
@@ -2855,9 +2858,13 @@ bra_dun02,157,74,5 script Iara#nk 4_F_BRZ_WOMAN,2,2,{
|
||||
mes "But... I think that the curse has been with me too long.";
|
||||
mes "Get away from me quickly.";
|
||||
delitem 11517,1; //Puri_Potion
|
||||
percentheal 100,100;
|
||||
sc_start SC_INCFLEE,3600000,20;
|
||||
sc_start SC_INCCRI,3600000,10;
|
||||
if (checkre(0)) {
|
||||
percentheal 100,100;
|
||||
sc_start SC_INCFLEE,3600000,20;
|
||||
sc_start SC_INCCRI,3600000,10;
|
||||
}
|
||||
else
|
||||
sc_start SC_INCCRI,3600000,7;
|
||||
consumeitem 12043; //Str_Dish03
|
||||
consumeitem 12063; //Dex_Dish03
|
||||
consumeitem 12058; //Agi_Dish03
|
||||
@@ -21,6 +21,10 @@ alberta,246,74,3 duplicate(Sea_Captain_amatsu) Sea Captain#ama1 709
|
||||
//============================================================
|
||||
alberta,246,29,3 duplicate(Aibakthing_ayothaya) Aibakthing#ayo 843
|
||||
|
||||
// cities/brasilis.txt
|
||||
//============================================================
|
||||
alberta,246,82,3 duplicate(Crewman_bra2) Crewman#bra2 100
|
||||
|
||||
// cities/gonryun.txt
|
||||
//============================================================
|
||||
alberta,246,62,3 duplicate(Kunlun_Envoy_gonryun) Kunlun Envoy#gon 776
|
||||
|
||||
@@ -1,19 +1,13 @@
|
||||
//===== rAthena Script =======================================
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Guide
|
||||
//===== By: ==================================================
|
||||
//= L0ne_W0lf
|
||||
//===== Current Version: =====================================
|
||||
//= 1.2
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion]
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion based on bRO & jRO servers]
|
||||
//= Guide for the city of Brasilis.
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First Version, Renewal guide.
|
||||
//= 1.1 Added a missing close.
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First Version, Renewal guide. [L0ne_W0lf]
|
||||
//= 1.1 Added a missing close. [L0ne_W0lf]
|
||||
//= 1.2 Navigation system update. [Euphy]
|
||||
//============================================================
|
||||
//============================================================
|
||||
|
||||
brasilis,219,97,3 script Brasilis Guide 478,{
|
||||
mes "[Brasilis Guide]";
|
||||
@@ -59,6 +53,7 @@ brasilis,219,97,3 script Brasilis Guide 478,{
|
||||
viewpoint 1,195,235,6,0x3355FF;
|
||||
close;
|
||||
}
|
||||
end;
|
||||
case 2:
|
||||
mes "[Brasilis Guide]";
|
||||
mes "I'll remove all marks from your mini-map.";
|
||||
|
||||
@@ -29,15 +29,6 @@
|
||||
//= 1.7 Added Rock Ridge Kafra. [Capuche]
|
||||
//============================================================
|
||||
|
||||
// Brasilis
|
||||
//============================================================
|
||||
brasilis,197,221,4 script Kafra Employee::kaf_bra 4_F_KAFRA1,{
|
||||
cutin "kafra_01",2;
|
||||
callfunc "F_Kafra",0,3,0,80,700;
|
||||
savepoint "brasilis",195,259,1,1;
|
||||
callfunc "F_KafEnd",0,1,"in the city of Brasilis";
|
||||
}
|
||||
|
||||
// Dewata
|
||||
//============================================================
|
||||
dewata,202,184,6 script Kafra Employee::kaf_dewata 4_F_KAFRA1,{
|
||||
|
||||
@@ -8,10 +8,8 @@
|
||||
//============================================================
|
||||
|
||||
//============================================================
|
||||
// Episode 13
|
||||
// Episode 13.3
|
||||
//============================================================
|
||||
brasilis mapflag nightenabled
|
||||
bra_fild01 mapflag nightenabled
|
||||
dicastes01 mapflag nightenabled
|
||||
dicastes02 mapflag nightenabled
|
||||
dic_fild01 mapflag nightenabled
|
||||
|
||||
@@ -42,12 +42,6 @@ job3_war01 mapflag nobranch
|
||||
job3_war02 mapflag nobranch
|
||||
jupe_core2 mapflag nobranch
|
||||
|
||||
//============================================================
|
||||
// Brasilis
|
||||
//============================================================
|
||||
brasilis mapflag nobranch
|
||||
bra_in01 mapflag nobranch
|
||||
|
||||
//============================================================
|
||||
// Episode 13.3
|
||||
//============================================================
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
paramk mapflag nomemo
|
||||
|
||||
//============================================================
|
||||
// Episode 13
|
||||
// Episode 13.3
|
||||
//============================================================
|
||||
job3_arch01 mapflag nomemo
|
||||
job3_arch02 mapflag nomemo
|
||||
@@ -37,9 +37,6 @@ job3_gen01 mapflag nomemo
|
||||
job3_sha01 mapflag nomemo
|
||||
jupe_core2 mapflag nomemo
|
||||
s_atelier mapflag nomemo
|
||||
bra_in01 mapflag nomemo
|
||||
bra_dun01 mapflag nomemo
|
||||
bra_dun02 mapflag nomemo
|
||||
dicastes01 mapflag nomemo
|
||||
dicastes02 mapflag nomemo
|
||||
dic_in01 mapflag nomemo
|
||||
|
||||
@@ -16,8 +16,6 @@ paramk mapflag nopenalty
|
||||
//============================================================
|
||||
// Municipality (Cities/Towns/Villages)
|
||||
//============================================================
|
||||
brasilis mapflag nopenalty
|
||||
bra_in01 mapflag nopenalty
|
||||
dicastes01 mapflag nopenalty
|
||||
dicastes02 mapflag nopenalty
|
||||
dic_in01 mapflag nopenalty
|
||||
|
||||
@@ -85,8 +85,6 @@ paramk mapflag pvp off
|
||||
// Municipality (Cities/Towns/Villages)
|
||||
//============================================================
|
||||
moc_para01 mapflag pvp off
|
||||
brasilis mapflag pvp off
|
||||
bra_in01 mapflag pvp off
|
||||
dicastes01 mapflag pvp off
|
||||
dicastes02 mapflag pvp off
|
||||
dic_in01 mapflag pvp off
|
||||
|
||||
@@ -26,10 +26,9 @@ paramk mapflag noteleport
|
||||
moc_para01 mapflag noteleport
|
||||
|
||||
//============================================================
|
||||
// Episode 13
|
||||
// Episode 13.3
|
||||
//============================================================
|
||||
s_atelier mapflag noteleport
|
||||
bra_in01 mapflag noteleport
|
||||
dic_in01 mapflag noteleport
|
||||
job3_gen01 mapflag noteleport
|
||||
job3_sha01 mapflag noteleport
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
//= 1.1 Added Izlude duplicates. [Euphy]
|
||||
//============================================================
|
||||
|
||||
brasilis mapflag reset
|
||||
dewata mapflag reset
|
||||
dicastes01 mapflag reset
|
||||
dicastes02 mapflag reset
|
||||
|
||||
@@ -247,7 +247,6 @@ lhz_d_n2 mapflag restricted 6
|
||||
//============================================================
|
||||
// Municipality (Cities/Towns/Villages)
|
||||
//============================================================
|
||||
brasilis mapflag restricted 7
|
||||
dewata mapflag restricted 7
|
||||
dicastes01 mapflag restricted 7
|
||||
eclage mapflag restricted 7
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
//= 1.1 Added Izlude duplicates. [Euphy]
|
||||
//============================================================
|
||||
|
||||
brasilis mapflag town
|
||||
dewata mapflag town
|
||||
dicastes01 mapflag town
|
||||
eclage mapflag town
|
||||
|
||||
@@ -945,3 +945,117 @@ Body:
|
||||
- Index: 4
|
||||
Item: Clay_Doll
|
||||
Amount: 5
|
||||
- Name: barter_ill_labyrinth
|
||||
Items:
|
||||
- Index: 0
|
||||
Item: Morpheus_Hood_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Morpheus's_Hood
|
||||
Refine: 9
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 100
|
||||
- Index: 2
|
||||
Item: Soft_Scarf
|
||||
Amount: 100
|
||||
- Index: 3
|
||||
Item: Cold_Holy_Water
|
||||
Amount: 50
|
||||
- Index: 1
|
||||
Item: Morpheus_Shawl_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Morpheus's_Shawl
|
||||
Refine: 9
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 100
|
||||
- Index: 2
|
||||
Item: Brilliant_Jelly
|
||||
Amount: 100
|
||||
- Index: 3
|
||||
Item: Medicinal_Stuff
|
||||
Amount: 50
|
||||
- Index: 2
|
||||
Item: Morpheus_Ring_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Morpheus's_Ring
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 100
|
||||
- Index: 2
|
||||
Item: Purple_Solid_Shell
|
||||
Amount: 100
|
||||
- Index: 3
|
||||
Item: Little_Lovely_Candle
|
||||
Amount: 50
|
||||
- Index: 4
|
||||
Item: Essence_Of_Demon
|
||||
Amount: 15
|
||||
- Index: 3
|
||||
Item: Morpheus_Armlet_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Morpheus's_Armlet
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 100
|
||||
- Index: 2
|
||||
Item: Suspicious_Sap
|
||||
Amount: 100
|
||||
- Index: 3
|
||||
Item: Small_Flashlight
|
||||
Amount: 50
|
||||
- Index: 4
|
||||
Item: Essence_Of_Demon
|
||||
Amount: 15
|
||||
- Index: 4
|
||||
Item: Butcher_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Butcher_
|
||||
Refine: 9
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 120
|
||||
- Index: 2
|
||||
Item: Delicious_Juice
|
||||
Amount: 150
|
||||
- Index: 5
|
||||
Item: Taegoolyeon_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Tae_Goo_Lyeon
|
||||
Refine: 9
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 120
|
||||
- Index: 2
|
||||
Item: Short_Rope
|
||||
Amount: 150
|
||||
- Index: 6
|
||||
Item: Gold_Lux_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Gold_Lux
|
||||
Refine: 9
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 120
|
||||
- Index: 2
|
||||
Item: Snake_Deadly_Poison
|
||||
Amount: 150
|
||||
- Index: 7
|
||||
Item: Bazerald_IL
|
||||
RequiredItems:
|
||||
- Index: 0
|
||||
Item: Bazerald
|
||||
Refine: 9
|
||||
- Index: 1
|
||||
Item: IllusionStone
|
||||
Amount: 120
|
||||
- Index: 2
|
||||
Item: Mantis_Flower
|
||||
Amount: 150
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
//= 1.7 Added Illusion of Twins enchanter [Capuche]
|
||||
//= 1.8 Added Illusion Merchant [Haydrich]
|
||||
//= 1.9 Added Illusion of Teddy Bear exchange [Atemo]
|
||||
//= 1.10 Added Illusion of Labyrinth enchanter [Atemo]
|
||||
//============================================================
|
||||
|
||||
//============================================================
|
||||
@@ -935,3 +936,86 @@ ein_d02_i,177,158,3 script Bear Wanting Illusion Stone#ITB 4_NASARIAN,{
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
//============================================================
|
||||
//= Illusion of Labyrinth
|
||||
//============================================================
|
||||
prt_fild01,137,365,0 script #iol005 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (ill_laby == 6) {
|
||||
cloakoffnpcself( "Esmeralda#5" );
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_fild01,141,367,3 script(CLOAKED) Esmeralda#5 4_GEFFEN_09,{
|
||||
if (checkweight(1201,3) == 0) {
|
||||
mes "You seem to have too many types or weights of items. Please clean up your inventory.";
|
||||
close;
|
||||
}
|
||||
if (ill_laby < 6)
|
||||
end;
|
||||
if (isbegin_quest(12492) == 0) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Oh, I thought we parted ways without even saying goodbye, but I guess you decided to work as a guest guild member for us?";
|
||||
next;
|
||||
select( "It happened to be like that", "I don't think it's any harm" );
|
||||
mes "[Esmeralda]";
|
||||
mes "It's a good choice. We will be of great help to each other.";
|
||||
next;
|
||||
select( "Why don't you send other guild members?" );
|
||||
mes "[Esmeralda]";
|
||||
mes "There is a reason for that.";
|
||||
mes "Those guys didn't make a contract with the Guardian Relic. So, there is no insurance whatsoever. If I send other members to perform exorcism, those lost souls will be gone forever.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "I thought it would be safer to stay here for the time being, so I gave instructions to keep myself hidden and only appear to you who helped me.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "First of all, since the guild has very little funds, it will likely take quite some time for them to be fully revived. So, I'm thinking of stopping running the guild for a while and starting a business here.";
|
||||
next;
|
||||
select( "What kind of business are you planning on doing?" );
|
||||
mes "[Esmeralda]";
|
||||
mes "As you know, items called Illusion Stone appear in unknown dungeons all over the continent these days. That... is a very valuable item in this world.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "I heard that there is a guild that started exploring this dungeon first. And I also received information that Illusion Stone was also found.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "I'm thinking of doing something like equipment upgrade service near the entrance. Of course, you will receive Illusion Stone and various materials as payment.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "I think that if I work hard for a few months, I will soon have enough money to revive my guild members.";
|
||||
mes "This is probably the best for now.";
|
||||
next;
|
||||
select( "Is that all it is?" );
|
||||
mes "[Esmeralda]";
|
||||
mes "Well... there are countless other places to put money. I will skip explaining it in detail.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "Anyway, next time I come, will I see you as a customer and vendor? Please continue to take good care of me.";
|
||||
close2;
|
||||
setquest 12492;
|
||||
completequest 12492;
|
||||
end;
|
||||
}
|
||||
mes "[Esmeralda]";
|
||||
mes "If you have the equipment listed below, you can upgrade it with items obtained from the Illusion of Labyrinth.";
|
||||
next;
|
||||
if (select( "Cancel", "View illusion upgrade equipment." ) == 1) {
|
||||
mes "[Esmeralda]";
|
||||
mes "All right. Please stop by again next time.";
|
||||
close;
|
||||
}
|
||||
mes "[Esmeralda]";
|
||||
mes "Please note that if the equipment you wish to upgrade contains the effects of a card or enchantment, it will be ^ff0000destroyed when used as a material^000000.";
|
||||
close2;
|
||||
callshop( "barter_ill_labyrinth" );
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild Leader>" );
|
||||
end;
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Inn Npcs
|
||||
//===== By: ==================================================
|
||||
//= c, L0ne_W0lf
|
||||
//===== Current Version: =====================================
|
||||
//= 1.1
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= Inn Npcs, Save and Heal
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 Added Brasilis inn receptionist. [c]
|
||||
//= 1.1 Updated dialog for Brasilis inn. [L0ne_W0lf]
|
||||
//============================================================
|
||||
|
||||
// Brasilis
|
||||
//============================================================
|
||||
bra_in01,27,24,3 script Hotel Keeper#bra1 478,{
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Welcome to the beautiful Brasilis Hotel.";
|
||||
next;
|
||||
switch(select("Save:Rest -5000 zeny")) {
|
||||
case 1:
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Do you want to save here at the Brasilis Hotel?";
|
||||
next;
|
||||
switch(select("No thank you.:Absolutely.")) {
|
||||
case 1:
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Ok then, enjoy your stay.";
|
||||
close;
|
||||
case 2:
|
||||
mes "[Hotel Keeper]";
|
||||
mes "Your respawn has been saved here at the hotel. I hope that you enjoy your stay here in Brasilis.";
|
||||
savepoint "bra_in01",144,69,1,1;
|
||||
close;
|
||||
}
|
||||
case 2:
|
||||
if (Zeny > 4999) {
|
||||
mes "[Hotel Keeper]";
|
||||
mes "I will show you a great room.";
|
||||
close2;
|
||||
set Zeny, Zeny-5000;
|
||||
percentheal 100,100;
|
||||
warp "bra_in01",144,69;
|
||||
end;
|
||||
}
|
||||
else {
|
||||
mes "[Hotel Keeper]";
|
||||
mes "I'm sorry, but the service charge is 5,000 zeny per night.";
|
||||
close;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,29 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Dungeon Monster Spawn Script
|
||||
//===== By: ==================================================
|
||||
//= Kisuka
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= Official monster spawns in Brasilis Dungeon.
|
||||
//===== Additional Comments: =================================
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 Official spawns from Aegis [Kisuka]
|
||||
//============================================================
|
||||
|
||||
//==================================================
|
||||
// bra_dun01 - Behind the Waterfall
|
||||
//==================================================
|
||||
bra_dun01,0,0 monster Piranha 2070,80,5000
|
||||
bra_dun01,0,0 monster Iara 2069,30,5000
|
||||
bra_dun01,0,0 monster Black Mushroom 1084,5,180000,90000
|
||||
bra_dun01,0,0 monster Marina 1141,20,5000
|
||||
bra_dun01,0,0 monster Kukre 1070,10,5000
|
||||
bra_dun01,0,0 monster Plankton 1161,10,5000
|
||||
bra_dun01,0,0 monster Hydra 1068,15,5000
|
||||
bra_dun01 monster Piranha 2070,80,5000
|
||||
bra_dun01 monster Iara 2069,30,5000
|
||||
bra_dun01 monster Black Mushroom 1084,5,180000,90000
|
||||
bra_dun01 monster Marina 1141,20,5000
|
||||
bra_dun01 monster Kukre 1070,10,5000
|
||||
bra_dun01 monster Plankton 1161,10,5000
|
||||
bra_dun01 monster Hydra 1068,15,5000
|
||||
|
||||
//==================================================
|
||||
// bra_dun02 - Behind the Waterfall
|
||||
//==================================================
|
||||
bra_dun02,0,0 monster Piranha 2070,60,5000
|
||||
bra_dun02,0,0 monster Iara 2069,110,5000
|
||||
bra_dun02,0,0 monster Marina 1141,10,5000
|
||||
bra_dun02,0,0 monster Kukre 1070,10,5000
|
||||
bra_dun02,0,0 monster Plankton 1161,10,5000
|
||||
bra_dun02,0,0 monster Hydra 1068,15,5000
|
||||
bra_dun02,0,0 monster Shining Plant 1083,2,5000
|
||||
bra_dun02,0,0 monster Black Mushroom 1084,5,5000
|
||||
bra_dun02,0,0,0,0 boss_monster Boitata 2068,1,7200000,600000,1
|
||||
bra_dun02 monster Piranha 2070,60,5000
|
||||
bra_dun02 monster Iara 2069,110,5000
|
||||
bra_dun02 monster Marina 1141,10,5000
|
||||
bra_dun02 monster Kukre 1070,10,5000
|
||||
bra_dun02 monster Plankton 1161,10,5000
|
||||
bra_dun02 monster Hydra 1068,15,5000
|
||||
bra_dun02 monster Shining Plant 1083,2,5000
|
||||
bra_dun02 monster Black Mushroom 1084,5,5000
|
||||
bra_dun02 boss_monster Boitata 2068,1,7200000,600000,1
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
//= 1.3 Some small fixes [Playtester]
|
||||
//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
|
||||
//= 1.5 Correct Spawn by Navigation's mob data. [attackjom]
|
||||
//= 1.6 Added Illusion of Labyrinth. [Atemo]
|
||||
//============================================================
|
||||
|
||||
//==================================================
|
||||
@@ -101,3 +102,56 @@ prt_maze03,99,21,10,10 monster Black Mushroom 1084,3,180000,90000
|
||||
prt_maze03,54,15,10,10 monster Black Mushroom 1084,3,180000,90000
|
||||
prt_maze03,171,180,3,3 monster Red Mushroom 1085,2,180000,90000
|
||||
prt_maze03,174,187,3,3 monster Red Mushroom 1085,3,180000,90000
|
||||
|
||||
//==================================================
|
||||
// Added Illusion of Labyrinth
|
||||
//==================================================
|
||||
prt_mz03_i monster Chaos Poporing 20531,10,5000
|
||||
prt_mz03_i monster Chaos Side Winder 20526,10,5000
|
||||
prt_mz03_i monster Chaos Hunter Fly 20527,10,5000
|
||||
prt_mz03_i monster Chaos Ghostring 20529,4,5000
|
||||
prt_mz03_i monster Chaos Killer Mantis 20530,10,5000
|
||||
prt_mz03_i monster Chaos Mantis 20528,10,5000
|
||||
prt_mz03_i monster Chaos Baphomet Jr. 20525,10,5000
|
||||
prt_mz03_i monster Chaotic Stem Worm 20532,6,5000
|
||||
|
||||
prt_mz03_i monster Chaotic Andrea 20521,1,3600000,0,"prt_mz03_i_boss::OnMobDead"
|
||||
prt_mz03_i monster Chaotic Anes 20522,1,3600000,0,"prt_mz03_i_boss::OnMobDead"
|
||||
prt_mz03_i monster Chaotic Silvano 20523,1,3600000,0,"prt_mz03_i_boss::OnMobDead"
|
||||
prt_mz03_i monster Chaotic Cecilia 20524,1,3600000,0,"prt_mz03_i_boss::OnMobDead"
|
||||
|
||||
- script prt_mz03_i_boss -1,{
|
||||
end;
|
||||
OnMobDead:
|
||||
if (playerattached() < 1)
|
||||
end;
|
||||
if (.boss_spawn || .cooldown || .count[killedrid] == 1)
|
||||
end;
|
||||
.count[killedrid] = 1;
|
||||
|
||||
if (.count[20521] == 1 && .count[20522] == 1 && .count[20523] == 1 && .count[20524] == 1) {
|
||||
.boss_spawn = true;
|
||||
.count[20521] = 0;
|
||||
.count[20522] = 0;
|
||||
.count[20523] = 0;
|
||||
.count[20524] = 0;
|
||||
killmonster "prt_mz03_i", "prt_mz03_i_boss::OnBossDeath";
|
||||
mapannounce "prt_mz03_i", "A terrible presence has descended from beyond the chaos of the deep abyss.", bc_map, 0x70dbdb;
|
||||
getunitdata( killedgid, .@data );
|
||||
monster "prt_mz03_i", .@data[UMOB_X], .@data[UMOB_Y], "--ja--", 20520,1, "prt_mz03_i_boss::OnBossDeath"; // ILL_BAPHOMET
|
||||
end;
|
||||
}
|
||||
end;
|
||||
OnBossDeath:
|
||||
mapannounce "prt_mz03_i", "The Invincible state of Chaos Baphomet has been lifted.", bc_map, 0x70dbdb;
|
||||
killmonster "prt_mz03_i", "prt_mz03_i_boss::OnBossDeath";
|
||||
.boss_spawn = false;
|
||||
.cooldown = true;
|
||||
initnpctimer;
|
||||
end;
|
||||
|
||||
OnTimer7200000:
|
||||
.cooldown = false;
|
||||
stopnpctimer;
|
||||
end;
|
||||
}
|
||||
|
||||
@@ -1,22 +1,16 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Fields Monster Spawn Script
|
||||
//===== By: ==================================================
|
||||
//= Kisuka
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Additional Comments: =================================
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 Official spawns from Aegis [Kisuka]
|
||||
//============================================================
|
||||
|
||||
//==================================================
|
||||
// bra_fild01 - Brasilis Field
|
||||
//==================================================
|
||||
bra_fild01,0,0 monster Curupira 2074,50,5000
|
||||
bra_fild01,0,0 monster Dokebi 1110,10,5000
|
||||
bra_fild01,0,0 monster Savage 1166,5,5000
|
||||
bra_fild01,0,0 monster Headless Mule 2071,40,5000
|
||||
bra_fild01,0,0 monster Red Mushroom 1085,5,5000
|
||||
bra_fild01,0,0 monster Jaguar 2072,55,5000
|
||||
bra_fild01,0,0 monster Toucan 2073,60,5000
|
||||
bra_fild01 monster Curupira 2074,50,5000
|
||||
bra_fild01 monster Dokebi 1110,10,5000
|
||||
bra_fild01 monster Savage 1166,5,5000
|
||||
bra_fild01 monster Headless Mule 2071,40,5000
|
||||
bra_fild01 monster Red Mushroom 1085,5,5000
|
||||
bra_fild01 monster Jaguar 2072,55,5000
|
||||
bra_fild01 monster Toucan 2073,60,5000
|
||||
|
||||
@@ -48,21 +48,40 @@ function script F_22507 {// ShabbyOldScroll
|
||||
// 2 : All the quests are completed
|
||||
function script F_queststatus {
|
||||
.@type = getarg(0);
|
||||
.@base = checkquest(getarg(1),.@type);
|
||||
|
||||
.@status = checkquest(getarg(1),.@type);
|
||||
switch( .@status ) {
|
||||
case -1:
|
||||
.@status = 0;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
.@status = 1;
|
||||
break;
|
||||
case 2:
|
||||
.@status = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
.@size = getargcount();
|
||||
|
||||
for ( .@i = 2; .@i < .@size; ++.@i ) {
|
||||
if (checkquest(getarg(.@i),.@type) != .@base)
|
||||
.@next_status = checkquest(getarg(.@i),.@type);
|
||||
switch( .@next_status ) {
|
||||
case -1:
|
||||
.@next_status = 0;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
.@next_status = 1;
|
||||
break;
|
||||
case 2:
|
||||
.@next_status = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (.@next_status != .@status)
|
||||
return -1;
|
||||
}
|
||||
switch( .@base ) {
|
||||
case -1:
|
||||
return 0;
|
||||
case 0:
|
||||
case 1:
|
||||
return 1;
|
||||
case 2:
|
||||
return 2;
|
||||
}
|
||||
end;
|
||||
return .@status;
|
||||
}
|
||||
|
||||
@@ -1226,8 +1226,22 @@ OnInit:
|
||||
end;
|
||||
}
|
||||
|
||||
/*
|
||||
prt_fild01,131,364,5 script Terrian#terian 4W_M_02,{
|
||||
prt_mz03_i,97,31,5 script Terrian#terian 4W_M_02,{
|
||||
mes "[Therian]";
|
||||
mes "Are there any difficulties in carrying out the mission?";
|
||||
mes "If you want to get out of the Twisted Labyrinth, I can guide you.";
|
||||
next;
|
||||
if (select( "Let's continue talking about the investigation.", "I want to go out." ) == 2) {
|
||||
mes "[Therian]";
|
||||
mes "I will guide you to where the entrance to the Twisted Labyrinth was.";
|
||||
close2;
|
||||
warp "prt_maze01",99,29;
|
||||
end;
|
||||
}
|
||||
mes "[Therian]";
|
||||
mes "I understand.";
|
||||
mes "Then let's talk about the investigation.";
|
||||
next;
|
||||
if (BaseLevel < 170) {
|
||||
mes "[Terrian]";
|
||||
mes "It's nice weather.";
|
||||
@@ -1261,9 +1275,9 @@ prt_fild01,131,364,5 script Terrian#terian 4W_M_02,{
|
||||
mes "If you don't mind, please apply for membership with the Commander <NAVI>[Joel]<INFO>prt_in,136,34,</INFO></NAVI> in Prontera.";
|
||||
close;
|
||||
}
|
||||
if (isbegin_quest(3467) == 0) {
|
||||
if (isbegin_quest(3464) == 0) {
|
||||
mes "[Terrian]";
|
||||
mes "The weather is nice";
|
||||
mes "The weather is nice.";
|
||||
next;
|
||||
mes "[Terrian]";
|
||||
mes "I'm a Terrian from the Illusion Investigation Corps.";
|
||||
@@ -1281,7 +1295,7 @@ prt_fild01,131,364,5 script Terrian#terian 4W_M_02,{
|
||||
mes "After the flowers wither in winter, they will bloom again in spring. They always bloom in the place where the flowers withered and fell off.";
|
||||
next;
|
||||
mes "[Terrian]";
|
||||
mes "It's the same with animals, the appearance of each of which varies innumerable, but for hundreds of years it has been discovered that there has always been a completely identical appearance";
|
||||
mes "It's the same with animals, the appearance of each of which varies innumerable, but for hundreds of years it has been discovered that there has always been a completely identical appearance.";
|
||||
next;
|
||||
mes "[Terrian]";
|
||||
mes "This is the core of the theory of reincarnation, and it takes a very long time to observe and investigate it.";
|
||||
@@ -1304,7 +1318,7 @@ prt_fild01,131,364,5 script Terrian#terian 4W_M_02,{
|
||||
close;
|
||||
}
|
||||
mes "[Terrian]";
|
||||
mes "Thank you";
|
||||
mes "Thank you.";
|
||||
next;
|
||||
mes "[Terrian]";
|
||||
mes "In order to determine the individual recovery rate, we need to reduce the number of monsters as quickly as possible.";
|
||||
@@ -1352,7 +1366,7 @@ prt_fild01,131,364,5 script Terrian#terian 4W_M_02,{
|
||||
close;
|
||||
}
|
||||
mes "[Terrian]";
|
||||
mes "Thank you";
|
||||
mes "Thank you.";
|
||||
next;
|
||||
mes "[Terrian]";
|
||||
mes "In order to determine the individual recovery rate, we need to reduce the number of monsters as quickly as possible.";
|
||||
@@ -1389,10 +1403,11 @@ OnInit:
|
||||
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(3465,HUNTING) == 2" );
|
||||
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(3464) == 2 && checkquest(3466,PLAYTIME) == -1 && checkquest(3465,HUNTING) == -1" );
|
||||
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3466,PLAYTIME) == 2" );
|
||||
|
||||
// No questinfo when expired
|
||||
// questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3466,PLAYTIME) == 2" );
|
||||
end;
|
||||
}
|
||||
*/
|
||||
|
||||
iz_d04_i,127,224,5 script Lister#ristar 4_F_01,{
|
||||
if (BaseLevel < 180) {
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
//= 1.6 Added Illusion of Underwater [Capuche]
|
||||
//= 1.7 Added Illusion of Twins [Capuche]
|
||||
//= 1.8 Added Illusion of Teddy Bear [Atemo]
|
||||
//= 1.9 Added Illusion of Labyrinth [Atemo]
|
||||
//============================================================
|
||||
|
||||
//============================================================
|
||||
@@ -12805,3 +12806,738 @@ ein_d02_i,169,244,1 script Sirumsireum Teddy Bear#ITBz02 4_TEDDY_BEAR_B_L,{
|
||||
npctalk "Teddy Bear: What have you done to me...", "", bc_self;
|
||||
end;
|
||||
}
|
||||
|
||||
|
||||
//============================================================
|
||||
//= Illusion of Labyrinth
|
||||
//============================================================
|
||||
prt_maze01,99,27,0 script #iol000 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (BaseLevel < 170)
|
||||
end;
|
||||
.@npc_name$ = "Twisted Crack#1";
|
||||
removespecialeffect EF_GROUNDSAMPLE, AREA, .@npc_name$;
|
||||
removespecialeffect EF_ICEWALL, AREA, .@npc_name$;
|
||||
specialeffect EF_GROUNDSAMPLE, AREA, .@npc_name$;
|
||||
specialeffect EF_ICEWALL, AREA, .@npc_name$;
|
||||
|
||||
cloakoffnpcself( .@npc_name$ );
|
||||
|
||||
if (ill_laby < 2) {
|
||||
cloakoffnpcself( "Irene#1" );
|
||||
end;
|
||||
}
|
||||
if (ill_laby == 2) {
|
||||
cloakoffnpcself( "Irene#1" );
|
||||
cloakoffnpcself( "Esmeralda#1" );
|
||||
end;
|
||||
}
|
||||
if (ill_laby < 5) {
|
||||
cloakoffnpcself( "Esmeralda#1" );
|
||||
end;
|
||||
}
|
||||
cloakoffnpcself( "Andrea#1" );
|
||||
cloakoffnpcself( "Anes#1" );
|
||||
cloakoffnpcself( "Silvano#1" );
|
||||
cloakoffnpcself( "Cecilia#1" );
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,97,21,7 script(CLOAKED) Andrea#1 4_M_ANDREA,{
|
||||
if (ill_laby < 5)
|
||||
end;
|
||||
if (ill_laby == 5) {
|
||||
mes "[Andrea]";
|
||||
mes "I heard the story from the guild leader Esmeralda. You are the one who saved us.";
|
||||
next;
|
||||
select( "It's not like I did anything particularly grand." );
|
||||
mes "[Andrea]";
|
||||
mes "What humble words these are. I almost couldn't come back to life even as a soul. Thank you so much.";
|
||||
next;
|
||||
select( "Where did Esmeralda go?" );
|
||||
mes "[Andrea]";
|
||||
mes "Oh, the guild leader said she had a few things to prepare and end;ed to the guild base for a moment. She said she would end; straight to the entrance of the labyrinth.";
|
||||
next;
|
||||
mes "[Andrea]";
|
||||
mes "Also, she asked me whether " + strcharinfo(0) + " wants to join us as guest member of the guild.";
|
||||
next;
|
||||
mes "[Andrea]";
|
||||
mes "We don't have the manpower to raise funds for the guild revival. So, we are in a situation where even one hand is lacking.";
|
||||
next;
|
||||
mes "[Andrea]";
|
||||
mes "If we can conquer this newly revealed twisted labyrinth, it will be a spark that can revive our guild. The only person around guild who can do that is " + strcharinfo(0) + ".";
|
||||
next;
|
||||
mes "[Andrea]";
|
||||
mes "" + strcharinfo(0) + ", would you be able to work as a guest guild member for our guild?";
|
||||
next;
|
||||
if (select( "I guess that's too much.", "What are the benefits of being one?" ) == 1) {
|
||||
mes "[Andrea]";
|
||||
mes "Ah... right, I think it was a bit of an unreasonable request.";
|
||||
close;
|
||||
}
|
||||
mes "[Andrea]";
|
||||
mes "Even though we are only souls, we have a lot of knowledge gained while wandering through this twisted labyrinth.";
|
||||
next;
|
||||
mes "[Andrea]";
|
||||
mes "We will give you several requests and provide you with appropriate compensation. Would you like to work as a guest guild member?";
|
||||
next;
|
||||
if (select( "I think I'll pass", "Yes for compensation!" ) == 1) {
|
||||
mes "[Andrea]";
|
||||
mes "Ah... right, I think it was a bit of an unreasonable request.";
|
||||
close;
|
||||
}
|
||||
mes "[Andrea]";
|
||||
mes "Thank you. Now, on behalf of the guild, we would like to ask " + strcharinfo(0) + " a request related to this twisted labyrinth.";
|
||||
ill_laby = 6;
|
||||
completequest 12489;
|
||||
close;
|
||||
}
|
||||
switch( checkquest(12490,PLAYTIME) ) {
|
||||
case -1:
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
mes "[Andrea]";
|
||||
mes "It's not time to make a new request yet. For now, please complete the previous request first.";
|
||||
close;
|
||||
case 2:
|
||||
erasequest 12490;
|
||||
break;
|
||||
}
|
||||
mes "[Andrea]";
|
||||
if (F_queststatus(HAVEQUEST,12470,12471,12472,12473,12474,12475,12476,12477) != 0)
|
||||
mes "You still have quests you couldn't complete yesterday. ^ff0000If you accept a new quest now, the quest you couldn't complete yesterday will be continued today.^000000 Do you want to accept all today's quests?";
|
||||
else
|
||||
mes "" + strcharinfo(0) + ", I have a lot of requests for you. Do you want to accept all requests?";
|
||||
next;
|
||||
if (select( "Not now", "Accept all" ) == 1) {
|
||||
mes "[Andrea]";
|
||||
mes "Please come back when you are ready to receive another request.";
|
||||
close;
|
||||
}
|
||||
setquest 12490;
|
||||
for ( .@quest_id = 12470; .@quest_id <= 12477; ++.@quest_id ) {
|
||||
if (isbegin_quest(.@quest_id) == 0)
|
||||
setquest .@quest_id;
|
||||
}
|
||||
mes "[Andrea]";
|
||||
mes "Please work hard today as well.";
|
||||
mes "Thank you always.";
|
||||
close;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild New Member>" );
|
||||
|
||||
// Main quest
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(12489) == 1" );
|
||||
|
||||
// Daily quest
|
||||
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "ill_laby == 6 && checkquest(12490,PLAYTIME) == -1" ); // note: no questinfo when playtime == 2
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,101,25,3 script(CLOAKED) Silvano#1 4_M_SILVANO,{
|
||||
if (checkweight(1201,3) == 0) {
|
||||
mes "You seem to have too many types or weights of items. Please clean up your inventory.";
|
||||
close;
|
||||
}
|
||||
removespecialeffect 1090;
|
||||
|
||||
if (ill_laby < 6) {
|
||||
mes "[Silvano]";
|
||||
mes "Thank you for your help, " + strcharinfo(0) + ". Guild leader left a message through ^0000ffAndrea^000000.";
|
||||
close;
|
||||
}
|
||||
mes "[Silvano]";
|
||||
mes "If you have completed a quest, you can receive a reward. Would you like to receive it now?";
|
||||
next;
|
||||
if (select( "Not now", "Yes, please" ) == 1) {
|
||||
mes "[Silvano]";
|
||||
mes "I'll wait as long as I can.";
|
||||
close;
|
||||
}
|
||||
.@quest_12470 = checkquest(12470,HUNTING);
|
||||
.@quest_12471 = checkquest(12471,HUNTING);
|
||||
.@quest_12472 = checkquest(12472,HUNTING);
|
||||
.@quest_12473 = checkquest(12473,HUNTING);
|
||||
.@quest_12474 = checkquest(12474,HUNTING);
|
||||
.@quest_12475 = checkquest(12475,HUNTING);
|
||||
.@quest_12476 = checkquest(12476,HUNTING);
|
||||
.@quest_12477 = checkquest(12477,HUNTING);
|
||||
.@quest_12478 = checkquest(12478,HUNTING);
|
||||
.@quest_12479 = checkquest(12479,HUNTING);
|
||||
.@quest_12480 = checkquest(12480,HUNTING);
|
||||
.@quest_12481 = checkquest(12481,HUNTING);
|
||||
|
||||
if (.@quest_12470 != 2 && .@quest_12471 != 2 && .@quest_12472 != 2 && .@quest_12473 != 2 && .@quest_12474 != 2 && .@quest_12475 != 2 && .@quest_12476 != 2 && .@quest_12477 != 2 && .@quest_12478 != 2 && .@quest_12479 != 2 && .@quest_12480 != 2 && .@quest_12481 != 2) { // no daily quest done
|
||||
mes "[Silvano]";
|
||||
mes "There are no completed quests. Please come back to me after completing at least one request.";
|
||||
close;
|
||||
}
|
||||
if (.@quest_12470 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25271,1; // IllusionStone
|
||||
erasequest 12470;
|
||||
mes "^0000ff[Daily] Andrea's Revenge I^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12471 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25271,1; // IllusionStone
|
||||
erasequest 12471;
|
||||
mes "^0000ff[Daily] Andrea's Revenge II^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12472 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25271,1; // IllusionStone
|
||||
erasequest 12472;
|
||||
mes "^0000ff[Daily] Anes' Revenge I^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12473 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25271,1; // IllusionStone
|
||||
erasequest 12473;
|
||||
mes "^0000ff[Daily] Anes' Revenge II^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12474 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25781,1; // Little_Lovely_Candle
|
||||
erasequest 12474;
|
||||
mes "^0000ff[Daily] Silvano's Revenge I^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12475 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25782,1; // Medicinal_Stuff
|
||||
erasequest 12475;
|
||||
mes "^0000ff[Daily] Silvano's Revenge II^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12476 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25783,1; // Cold_Holy_Water
|
||||
erasequest 12476;
|
||||
mes "^0000ff[Daily] Cecilia's Revenge I^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12477 == 2) {
|
||||
getexp 1750000,1137500;
|
||||
getitem 25784,1; // Small_Flashlight
|
||||
erasequest 12477;
|
||||
mes "^0000ff[Daily] Cecilia's Revenge II^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12478 == 2) {
|
||||
getexp 2500000,1625000;
|
||||
getitem 25781,3;
|
||||
erasequest 12478;
|
||||
mes "^0000ff[Weekly] Soul Purification - Andrea^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12479 == 2) {
|
||||
getexp 2500000,1625000;
|
||||
getitem 25782,3;
|
||||
erasequest 12479;
|
||||
mes "^0000ff[Weekly] Soul Purification - Anes^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12480 == 2) {
|
||||
getexp 2500000,1625000;
|
||||
getitem 25783,3;
|
||||
erasequest 12480;
|
||||
mes "^0000ff[Weekly] Soul Purification - Silvano^000000 completed";
|
||||
next;
|
||||
}
|
||||
if (.@quest_12481 == 2) {
|
||||
getexp 2500000,1625000;
|
||||
getitem 25784,3; // Small_Flashlight
|
||||
erasequest 12481;
|
||||
mes "^0000ff[Weekly] Soul Purification - Cecilia^000000 completed";
|
||||
next;
|
||||
}
|
||||
mes "[Silvano]";
|
||||
mes "All compensation payments for completed quests have been completed.";
|
||||
close;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild New Member>" );
|
||||
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12470,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12471,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12472,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12473,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12474,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12475,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12476,HUNTING) == 2" );
|
||||
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12477,HUNTING) == 2" );
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,101,21,1 script(CLOAKED) Cecilia#1 4_F_CECILIA,{
|
||||
if (ill_laby < 6) {
|
||||
mes "[Cecilia]";
|
||||
mes "Thank you for your help, " + strcharinfo(0) + ". Guild leader left a message through ^0000ffAndrea^000000.";
|
||||
close;
|
||||
}
|
||||
mes "[Cecilia]";
|
||||
mes "Is there anything I can help you with?";
|
||||
next;
|
||||
if (select( "Nothing", "Can you send me outside?" ) == 1) {
|
||||
mes "[Cecilia]";
|
||||
mes "I'm sorry I couldn't help you.";
|
||||
close;
|
||||
}
|
||||
warp "prt_fild01",136,365;
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild New Member>" );
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,97,25,5 script(CLOAKED) Anes#1 4_F_ANES,{
|
||||
if (checkweight(1201,3) == 0) {
|
||||
mes "You seem to have too many types or weights of items. Please clean up your inventory.";
|
||||
close;
|
||||
}
|
||||
if (ill_laby < 5)
|
||||
end;
|
||||
if (ill_laby == 5) {
|
||||
mes "[Anes]";
|
||||
mes "Thank you for your help, " + strcharinfo(0) + ". Guild leader left a message through ^0000ffAndrea^000000.";
|
||||
close;
|
||||
}
|
||||
.@quest_12478 = checkquest(12478,HUNTING);
|
||||
.@quest_12479 = checkquest(12479,HUNTING);
|
||||
.@quest_12480 = checkquest(12480,HUNTING);
|
||||
.@quest_12481 = checkquest(12481,HUNTING);
|
||||
|
||||
if (.@quest_12478 == -1 && .@quest_12479 == -1 && .@quest_12480 == -1 && .@quest_12481 == -1)
|
||||
.@state = 0;
|
||||
else if (.@quest_12478 == 2 || .@quest_12479 == 2 || .@quest_12480 == 2 || .@quest_12481 == 2)
|
||||
.@state = 2;
|
||||
else
|
||||
.@state = 1;
|
||||
|
||||
switch( checkquest(12491,PLAYTIME) ) {
|
||||
case -1:
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
mes "[Anes]";
|
||||
mes "It's not time to make a new request yet. For now, please complete the previous quest first.";
|
||||
close;
|
||||
case 2:
|
||||
erasequest 12491;
|
||||
break;
|
||||
}
|
||||
|
||||
switch( .@state ) {
|
||||
case 0:
|
||||
mes "[Anes]";
|
||||
mes "" + strcharinfo(0) + ", there is one weekly request that you can receive weekly. Would you like to receive it?";
|
||||
next;
|
||||
if (select( "Not now", "Receive 1 weekly request" ) == 1) {
|
||||
mes "[Anes]";
|
||||
mes "Please come back when you are ready to receive another request.";
|
||||
close;
|
||||
}
|
||||
setquest 12491;
|
||||
setquest rand(12478, 12481);
|
||||
mes "[Anes]";
|
||||
mes "I hope that God's blessings will be with you this week as well.";
|
||||
close;
|
||||
case 1:
|
||||
mes "[Anes]";
|
||||
mes "There are still uncompleted quests. ^ff0000If you accept new quests now, the unfinished quests from last week will be deleted.^000000 Would you like to accept new weekly quests?";
|
||||
next;
|
||||
if (select( "Cancel", "Receive the weekly request" ) == 1) {
|
||||
mes "[Anes]";
|
||||
mes "Come back when you're ready to accept the quest.";
|
||||
close;
|
||||
}
|
||||
if (isbegin_quest(12478) > 0)
|
||||
erasequest 12478;
|
||||
if (isbegin_quest(12479) > 0)
|
||||
erasequest 12479;
|
||||
if (isbegin_quest(12480) > 0)
|
||||
erasequest 12480;
|
||||
if (isbegin_quest(12481) > 0)
|
||||
erasequest 12481;
|
||||
setquest 12491;
|
||||
setquest rand(12478, 12481);
|
||||
mes "[Anes]";
|
||||
mes "May God bless you this week as well.";
|
||||
close;
|
||||
case 2:
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild New Member>" );
|
||||
|
||||
questinfo( QTYPE_EVENT, QMARK_YELLOW, "ill_laby == 6 && checkquest(12491,PLAYTIME) == -1" ); // note: type event is not a mistake
|
||||
|
||||
// no questinfo when playtime 2
|
||||
// questinfo( QTYPE_EVENT, QMARK_YELLOW, "checkquest(12491,PLAYTIME) == 2" );
|
||||
|
||||
// unknown questinfo hunting completed
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,99,23,5 script(CLOAKED) Twisted Crack#1 CLEAR_NPC,{
|
||||
if (BaseLevel < 170)
|
||||
end;
|
||||
if (ill_laby < 2) {
|
||||
mes "Beyond the twisted crack, a familiar yet unfamiliar labyrinth unfolds.";
|
||||
close;
|
||||
}
|
||||
mes "Beyond the twisted crack, a familiar yet unfamiliar labyrinth unfolds.";
|
||||
mes "^ff0000If you step in, you may not be able to get out again.^000000";
|
||||
next;
|
||||
if (select( "Pretend you didn't see it", "Enter through the crack" ) == 1) {
|
||||
mes "^0000ffCuriosity killed the cat. Let's bury it quietly.^000000";
|
||||
close;
|
||||
}
|
||||
warp "prt_mz03_i",99,26;
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
questinfo( QTYPE_CLICKME, QMARK_YELLOW, "isbegin_quest(12484) == 1 || isbegin_quest(12485) == 1 || isbegin_quest(12486) == 1 || isbegin_quest(12487) == 1" );
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,97,26,5 script(CLOAKED) Irene#1 4_F_ERENE,2,2,{
|
||||
if (BaseLevel < 170)
|
||||
end;
|
||||
if (ill_laby == 0) {
|
||||
mes "[Irene]";
|
||||
mes "Ouch! Sorry. I didn't mean to surprise you!";
|
||||
next;
|
||||
select( "Whoua! You surprised me!" );
|
||||
mes "[Irene]";
|
||||
mes "Please don't point your weapon at me and hear me out! Please.";
|
||||
next;
|
||||
select( "Calm down." );
|
||||
mes "[Irene]";
|
||||
mes "Thank you. My name is Irene, member of the Prontera Priests' Guild. Ah.. There is a bit of reason why this is happening right now.";
|
||||
next;
|
||||
select( "Did you die while hunting?" );
|
||||
mes "[Irene]";
|
||||
mes "Yes... I found this suspicious crack during training with 4 other new guild members. They rushed into this place, so I followed them...";
|
||||
next;
|
||||
mes "[Irene]";
|
||||
mes "Please, I would like you to inform our guild leader of the current situation. We are currently recruiting people near the cathedral in Prontera. I will wait for other guild members who might come out of here...";
|
||||
next;
|
||||
if (select( "Sorry, I can't help you.", "Alright, no problem." ) == 1) {
|
||||
mes "[Irene]";
|
||||
mes "Well yeah.. it must have been an unreasonable request... sorry..";
|
||||
close;
|
||||
}
|
||||
mes "[Irene]";
|
||||
mes "Thank you! Here's a note with the guild leader's location! Please!";
|
||||
next;
|
||||
select( "Let's go outside first." );
|
||||
ill_laby = 1;
|
||||
setquest 12482;
|
||||
warp "prt_fild01",136,365;
|
||||
end;
|
||||
}
|
||||
if (ill_laby == 1) {
|
||||
mes "[Irene]";
|
||||
mes "If you look at the note I gave you, the guild leader's location is written down.";
|
||||
close2;
|
||||
warp "prt_fild01",136,365;
|
||||
end;
|
||||
}
|
||||
if (ill_laby == 2) {
|
||||
mes "[Irene]";
|
||||
mes "Ugh, it looks like there's no trace of my remains...";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "Fortunately, your guardian relic is stored in the guild, so resurrection is possible. It might cost some money, though.";
|
||||
next;
|
||||
mes "[Irene]";
|
||||
mes "I'm sorry...";
|
||||
close;
|
||||
}
|
||||
if (ill_laby == 3) {
|
||||
mes "[Irene]";
|
||||
mes "I need to go back to the guild soon. It's quite embarrassing because of the state of my soul.";
|
||||
close2;
|
||||
cloakonnpcself();
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnTouch:
|
||||
if (ill_laby == 0) {
|
||||
npctalk "Ouch! Sorry. I didn't mean to surprise you!", "", bc_self;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild Member>" );
|
||||
|
||||
questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 170 && ill_laby == 0" );
|
||||
end;
|
||||
}
|
||||
|
||||
prt_maze01,101,26,3 script(CLOAKED) Esmeralda#1 4_GEFFEN_09,{
|
||||
if (ill_laby < 2)
|
||||
end;
|
||||
if (ill_laby == 2) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Irene, stop crying and come to your senses.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "Fortunately, your guardian relic is stored in the guild, so resurrection is possible. It might cost some money, though.";
|
||||
next;
|
||||
mes "[Irene]";
|
||||
mes "I'm sorry...";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "We need to resurrect this troublemaker as soon as possible, so I'll send her back to the guild first.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "I have to say thank you, but since you have already helped me, can I ask you one more favor?";
|
||||
next;
|
||||
if (select( "You really have no shame.", "Uh... of course." ) == 1) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Ah, I guess that's it. I really have no shame. We'll take care of the rest.";
|
||||
close;
|
||||
}
|
||||
mes "[Esmeralda]";
|
||||
mes "Irene made a soul contract with the guardian relic a long time ago, so I don't think there will be any problems with her resurrection.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "There are a total of 4 more people missing. These guys don't have a contract with the guardian relic, so they don't appear in spirit form. Ha... really...";
|
||||
next;
|
||||
select( "Is signing a contract with a guardian relic like insurance?" );
|
||||
mes "[Esmeralda]";
|
||||
mes "Yes, since our guild is made up of only priests, fatal accidents are unexpectedly rare, but they are very frequent.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "As soon as you join, you enter into a contract with a guardian relic and undergo a ceremony that completely resurrects your soul and body even after death.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "The problem is that the four new recruits who disappeared today are the ones who didn't even go through that process.";
|
||||
next;
|
||||
select( "Do I have to retrieve the remains and bring them back?" );
|
||||
mes "[Esmeralda]";
|
||||
mes "Ah... well, even the smallest traces of the body are fine. The more intact it is, the cheaper the resurrection price will be, but you have to save it first.";
|
||||
next;
|
||||
select( "(It feels like furniture repair)" );
|
||||
mes "[Esmeralda]";
|
||||
mes "Priests train in various things. During the training process, there are many things that are not quite beautiful.";
|
||||
next;
|
||||
if (select( "Well, it looks dangerous so I...", "Alright, I will do it" ) == 1) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Ah, I guess that's it. We'll take care of the rest.";
|
||||
close;
|
||||
}
|
||||
mes "[Esmeralda]";
|
||||
mes "Thank you. I've collected information about the four guild members, so if you need anything, please check it. Perhaps traces of my members lie beyond this twisted rift.";
|
||||
close2;
|
||||
ill_laby = 3;
|
||||
erasequest 12483;
|
||||
setquest 12484;
|
||||
setquest 12485;
|
||||
setquest 12486;
|
||||
setquest 12487;
|
||||
end;
|
||||
}
|
||||
if (ill_laby == 3) {
|
||||
mes "[Esmeralda]";
|
||||
mes "I've collected information about the four guild members, so if you need anything, please check it. Perhaps traces of my members lie beyond this twisted rift.";
|
||||
close;
|
||||
}
|
||||
if (ill_laby == 4) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Oh, thank you. I almost gave up, but you really saved all of our new recruits.";
|
||||
next;
|
||||
select( "(Can these remains really be called new recruits?)" );
|
||||
mes "[Esmeralda]";
|
||||
mes "Thank you so much. First, we need to summon the souls of our guild members to this area. I think this place will be better than the city until complete revival work is done.";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "Oh, and it's a bit difficult to show our guild's soul summoning process if you're not a member of the guild. Could you please go outside the dungeon for a moment?";
|
||||
next;
|
||||
if (select( "Can't I just watch?", "Of course" ) == 1) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Ah, it would be a bit awkward to show this to someone outside the guild...";
|
||||
close;
|
||||
}
|
||||
mes "[Esmeralda]";
|
||||
mes "Thank you for your consideration. Then I'll send you outside for a while.";
|
||||
close2;
|
||||
ill_laby = 5;
|
||||
erasequest 12488;
|
||||
setquest 12489;
|
||||
warp "prt_fild01",136,365;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild Leader>" );
|
||||
|
||||
questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12483) == 1" );
|
||||
questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12488) == 1" );
|
||||
end;
|
||||
}
|
||||
|
||||
prontera,212,320,0 script #iol002 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (ill_laby == 1) {
|
||||
cloakoffnpcself( "Esmeralda#2" );
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prontera,212,320,3 script(CLOAKED) Esmeralda#2 4_GEFFEN_09,2,3,{
|
||||
if (ill_laby == 1) {
|
||||
mes "[Esmeralda]";
|
||||
mes "Huh? What's going on? Did something happen to our guild members?";
|
||||
next;
|
||||
select( "(Inform her terrible thing that happened to the priests' guild)" );
|
||||
mes "[Esmeralda]";
|
||||
mes "Our new recruits are missing?";
|
||||
mes "Sigh... Is it a guild tradition? It always like this every year...";
|
||||
next;
|
||||
mes "[Esmeralda]";
|
||||
mes "Thanks for telling me. I guess I'll have to go take care of these guys. God's blessings be with you, adventurer...";
|
||||
close2;
|
||||
ill_laby = 2;
|
||||
erasequest 12482;
|
||||
setquest 12483;
|
||||
cloakonnpcself();
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnTouch:
|
||||
if (ill_laby == 1) {
|
||||
npctalk "Guided by the light, the Prontera Priests Guild is recruiting new guild members", "", bc_self;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
setunittitle( getnpcid(0), "<Priest Guild Leader>" );
|
||||
|
||||
questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12482) == 1" );
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,107,104,0 script #iold01 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (ill_laby == 3 && isbegin_quest(12484) == 1) {
|
||||
cloakoffnpcself( "Trace of Andrea#D" );
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,10,18,0 script #iold02 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (ill_laby == 3 && isbegin_quest(12485) == 1) {
|
||||
cloakoffnpcself( "Trace of Anes#D" );
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,135,68,0 script #iold03 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (ill_laby == 3 && isbegin_quest(12486) == 1) {
|
||||
cloakoffnpcself( "Trace of Silvano#D" );
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,183,26,0 script #iold04 HIDDEN_WARP_NPC,4,4,{
|
||||
end;
|
||||
OnTouch:
|
||||
if (ill_laby == 3 && isbegin_quest(12487) == 1) {
|
||||
cloakoffnpcself( "Trace of Cecilia#D" );
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,107,104,3 script(CLOAKED) Trace of Andrea#D 4_M_ANDREA_D,{
|
||||
getmapxy .@map$,.@x,.@y, BL_NPC;
|
||||
|
||||
switch( .@x ) {
|
||||
case 107: // Trace of Andrea#D
|
||||
.@quest_id = 12484;
|
||||
break;
|
||||
case 10: // Trace of Anes#D
|
||||
.@quest_id = 12485;
|
||||
break;
|
||||
case 135: // Trace of Silvano#D
|
||||
.@quest_id = 12486;
|
||||
break;
|
||||
case 183: // Trace of Cecilia#D
|
||||
.@quest_id = 12487;
|
||||
break;
|
||||
}
|
||||
if (ill_laby == 3 && isbegin_quest(.@quest_id) == 1) {
|
||||
mes "^0000ffYou found the " + strnpcinfo(1) + ". Would you like to take care of it?^000000";
|
||||
next;
|
||||
if (select( "Cancel", "Take care of it" ) == 1) {
|
||||
mes "^0000ffCancelled the process.^000000";
|
||||
close;
|
||||
}
|
||||
progressbar "FFFF00",5;
|
||||
specialeffect EF_HO_UP;
|
||||
erasequest .@quest_id;
|
||||
cloakonnpcself();
|
||||
if (F_queststatus(HAVEQUEST,12484,12485,12486,12487) == 0) {
|
||||
ill_laby = 4;
|
||||
setquest 12488;
|
||||
mes "^0000ffYou found traces of guild members. Let's go find Esmeralda inside the labyrinth.^000000";
|
||||
close2;
|
||||
warp "prt_fild01",136,365;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
OnInit:
|
||||
getmapxy .@map$,.@x,.@y, BL_NPC;
|
||||
|
||||
switch( .@x ) {
|
||||
case 107: // Trace of Andrea#D
|
||||
.@quest_id = 12484;
|
||||
break;
|
||||
case 10: // Trace of Anes#D
|
||||
.@quest_id = 12485;
|
||||
break;
|
||||
case 135: // Trace of Silvano#D
|
||||
.@quest_id = 12486;
|
||||
break;
|
||||
case 183: // Trace of Cecilia#D
|
||||
.@quest_id = 12487;
|
||||
break;
|
||||
}
|
||||
questinfo( QTYPE_CLICKME, QMARK_YELLOW, "isbegin_quest(" + .@quest_id + ") == 1" );
|
||||
end;
|
||||
}
|
||||
prt_mz03_i,10,18,3 duplicate(Trace of Andrea#D) Trace of Anes#D 4_F_ANES_D
|
||||
prt_mz03_i,135,68,3 duplicate(Trace of Andrea#D) Trace of Silvano#D 4_M_SILVANO_D
|
||||
prt_mz03_i,183,26,3 duplicate(Trace of Andrea#D) Trace of Cecilia#D 4_F_CECILIA_D
|
||||
|
||||
@@ -14,7 +14,6 @@ npc: npc/re/battleground/bg_common.txt
|
||||
|
||||
// --------------------------- Cities ---------------------------
|
||||
npc: npc/re/cities/alberta.txt
|
||||
npc: npc/re/cities/brasilis.txt
|
||||
npc: npc/re/cities/comodo.txt
|
||||
npc: npc/re/cities/dewata.txt
|
||||
npc: npc/re/cities/dicastes.txt
|
||||
@@ -154,7 +153,6 @@ npc: npc/re/merchants/guild_warehouse.txt
|
||||
npc: npc/re/merchants/hd_refiner.txt
|
||||
npc: npc/re/merchants/HorrorToyFactory_merchants.txt
|
||||
npc: npc/re/merchants/InfiniteSpace_merchants.txt
|
||||
npc: npc/re/merchants/inn.txt
|
||||
npc: npc/re/merchants/malangdo_costume.txt
|
||||
npc: npc/re/merchants/moro_cav_exchange.txt
|
||||
npc: npc/re/merchants/mysterious_cookie_shop.txt
|
||||
@@ -246,7 +244,6 @@ npc: npc/re/quests/quests_17_1.txt
|
||||
npc: npc/re/quests/quests_17_2.txt
|
||||
npc: npc/re/quests/quests_18_1.txt
|
||||
npc: npc/re/quests/quests_aldebaran.txt
|
||||
npc: npc/re/quests/quests_brasilis.txt
|
||||
npc: npc/re/quests/quests_dewata.txt
|
||||
npc: npc/re/quests/quests_dicastes.txt
|
||||
npc: npc/re/quests/quests_dungeons_200.txt
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
// --------------------------- Cities ---------------------------
|
||||
npc: npc/re/warps/cities/alberta.txt
|
||||
npc: npc/re/warps/cities/brasilis.txt
|
||||
npc: npc/re/warps/cities/dewata.txt
|
||||
npc: npc/re/warps/cities/dicastes.txt
|
||||
npc: npc/re/warps/cities/eclage.txt
|
||||
@@ -22,7 +21,6 @@ npc: npc/re/warps/cities/yggdrasil.txt
|
||||
|
||||
// -------------------------- Dungeons --------------------------
|
||||
npc: npc/re/warps/dungeons/amicitia.txt
|
||||
npc: npc/re/warps/dungeons/bra_dun.txt
|
||||
npc: npc/re/warps/dungeons/dic_dun.txt
|
||||
npc: npc/re/warps/dungeons/ecl_dun.txt
|
||||
npc: npc/re/warps/dungeons/ein_dun.txt
|
||||
@@ -32,6 +30,7 @@ npc: npc/re/warps/dungeons/mag_dun.txt
|
||||
npc: npc/re/warps/dungeons/moc_pryd.txt
|
||||
npc: npc/re/warps/dungeons/nif_dun.txt
|
||||
npc: npc/re/warps/dungeons/oz_dun.txt
|
||||
npc: npc/re/warps/dungeons/prt_mz03_i.txt
|
||||
npc: npc/re/warps/dungeons/rockmi1.txt
|
||||
npc: npc/re/warps/dungeons/sp_rudus.txt
|
||||
npc: npc/re/warps/dungeons/slabw01.txt
|
||||
@@ -39,7 +38,6 @@ npc: npc/re/warps/dungeons/thor_v.txt
|
||||
|
||||
// --------------------------- Fields ---------------------------
|
||||
npc: npc/re/warps/fields/bif_fild.txt
|
||||
npc: npc/re/warps/fields/bra_fild.txt
|
||||
npc: npc/re/warps/fields/com_fild.txt
|
||||
npc: npc/re/warps/fields/dic_fild.txt
|
||||
npc: npc/re/warps/fields/geffen_fild.txt
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Dungeon Warp
|
||||
//===== By: ==================================================
|
||||
//= L0ne_W0lf
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion]
|
||||
//= Brasilis Dungeon warp script
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First version.
|
||||
//============================================================
|
||||
|
||||
bra_dun01,199,35,0 warp brad1tobrad2 1,1,bra_dun02,261,263
|
||||
bra_dun02,261,265,0 warp brad2tobrad1 1,1,bra_dun01,199,37
|
||||
144
npc/re/warps/dungeons/prt_mz03_i.txt
Normal file
144
npc/re/warps/dungeons/prt_mz03_i.txt
Normal file
@@ -0,0 +1,144 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Illusion of Labyrinth Warp Script
|
||||
//===== Changelogs: ==========================================
|
||||
//= 1.0 First version. [Atemo]
|
||||
//============================================================
|
||||
|
||||
prt_mz03_i,5,186,0 warp2 3maze1a1_3maze2d2 1,1,prt_mz03_i,151,134
|
||||
prt_mz03_i,22,194,0 warp2 3maze1a2_3maze4e1 1,1,prt_mz03_i,175,48
|
||||
prt_mz03_i,85,174,0 warp2 3maze1c1_3maze4a3 1,1,prt_mz03_i,14,48
|
||||
prt_mz03_i,102,165,0 warp2 3maze1c2_3maze4d2 1,1,prt_mz03_i,137,71
|
||||
prt_mz03_i,125,171,0 warp2 3maze1d1_3maze3c2 1,1,prt_mz03_i,105,111
|
||||
prt_mz03_i,154,181,0 warp2 3maze1d2_3maze4d1 1,1,prt_mz03_i,139,48
|
||||
prt_mz03_i,175,165,0 warp2 3maze1e1_3maze5b3 1,1,prt_mz03_i,71,12
|
||||
prt_mz03_i,194,175,0 warp2 3maze1e2_3maze2e2 1,1,prt_mz03_i,191,139
|
||||
prt_mz03_i,5,140,0 warp2 3maze2a1_3maze4c4 1,1,prt_mz03_i,111,56
|
||||
prt_mz03_i,18,154,0 warp2 3maze2a2_3maze5b1 1,1,prt_mz03_i,48,21
|
||||
prt_mz03_i,23,125,0 warp2 3maze2a3_3maze4e2 1,1,prt_mz03_i,177,71
|
||||
prt_mz03_i,54,154,0 warp2 3maze2b1_3maze3d2 1,1,prt_mz03_i,142,111
|
||||
prt_mz03_i,63,125,0 warp2 3maze2b2_3maze3c1 1,1,prt_mz03_i,88,97
|
||||
prt_mz03_i,85,146,0 warp2 3maze2c1_3maze3a2 1,1,prt_mz03_i,22,88
|
||||
prt_mz03_i,98,154,0 warp2 3maze2c2_3maze5c2 1,1,prt_mz03_i,99,31
|
||||
prt_mz03_i,114,145,0 warp2 3maze2c3_3maze5e1 1,1,prt_mz03_i,168,22
|
||||
prt_mz03_i,137,125,0 warp2 3maze2d1_3maze4b2 1,1,prt_mz03_i,71,71
|
||||
prt_mz03_i,154,134,0 warp2 3maze2d2_3maze1a1 1,1,prt_mz03_i,8,186
|
||||
prt_mz03_i,166,139,0 warp2 3maze2e1_3maze3b4 1,1,prt_mz03_i,63,88
|
||||
prt_mz03_i,194,139,0 warp2 3maze2e2_3maze1e2 1,1,prt_mz03_i,191,175
|
||||
prt_mz03_i,17,114,0 warp2 3maze3a1_3maze3d1 1,1,prt_mz03_i,129,102
|
||||
prt_mz03_i,22,85,0 warp2 3maze3a2_3maze2c1 1,1,prt_mz03_i,88,146
|
||||
prt_mz03_i,45,104,0 warp2 3maze3b1_3maze4c3 1,1,prt_mz03_i,96,48
|
||||
prt_mz03_i,63,114,0 warp2 3maze3b2_3maze4a2 1,1,prt_mz03_i,14,71
|
||||
prt_mz03_i,74,97,0 warp2 3maze3b3_3maze5b2 1,1,prt_mz03_i,56,8
|
||||
prt_mz03_i,63,85,0 warp2 3maze3b4_3maze2e1 1,1,prt_mz03_i,169,139
|
||||
prt_mz03_i,85,97,0 warp2 3maze3c1_3maze2b2 1,1,prt_mz03_i,63,128
|
||||
prt_mz03_i,105,114,0 warp2 3maze3c2_3maze1d1 1,1,prt_mz03_i,128,174
|
||||
prt_mz03_i,114,95,0 warp2 3maze3c3_3maze5e2 1,1,prt_mz03_i,176,8
|
||||
prt_mz03_i,125,105,0 warp2 3maze3d1_3maze1b1 1,1,prt_mz03_i,58,191
|
||||
prt_mz03_i,142,114,0 warp2 3maze3d2_3maze2b1 1,1,prt_mz03_i,54,151
|
||||
prt_mz03_i,168,94,0 warp2 3maze3e1_3maze4e3 1,1,prt_mz03_i,191,54
|
||||
prt_mz03_i,182,85,0 warp2 3maze3e2_23maze3 1,1,prt_maze02,100,179
|
||||
prt_mz03_i,194,94,0 warp2 3maze3e3_3maze5d1 1,1,prt_mz03_i,151,22
|
||||
prt_mz03_i,5,58,0 warp2 3maze4a1_3maze5e4 1,1,prt_mz03_i,191,15
|
||||
prt_mz03_i,14,74,0 warp2 3maze4a2_3maze3b2 1,1,prt_mz03_i,63,111
|
||||
prt_mz03_i,14,45,0 warp2 3maze4a3_3maze1c1 1,1,prt_mz03_i,88,174
|
||||
prt_mz03_i,52,45,0 warp2 3maze4b1_3maze5a2 1,1,prt_mz03_i,16,31
|
||||
prt_mz03_i,85,56,0 warp2 3maze4c1_3maze5e3 1,1,prt_mz03_i,176,31
|
||||
prt_mz03_i,104,74,0 warp2 3maze4c2_3maze5c3 1,1,prt_mz03_i,111,22
|
||||
prt_mz03_i,96,45,0 warp2 3maze4c3_3maze3b1 1,1,prt_mz03_i,48,104
|
||||
prt_mz03_i,114,56,0 warp2 3maze4c4_3maze2a1 1,1,prt_mz03_i,8,140
|
||||
prt_mz03_i,137,74,0 warp2 3maze4d2_3maze1c2 1,1,prt_mz03_i,102,168
|
||||
prt_mz03_i,175,45,0 warp2 3maze4e1_3maze1a2 1,1,prt_mz03_i,22,191
|
||||
prt_mz03_i,177,74,0 warp2 3maze4e2_3maze2a3 1,1,prt_mz03_i,23,128
|
||||
prt_mz03_i,194,54,0 warp2 3maze4e3_3maze3e1 1,1,prt_mz03_i,171,94
|
||||
prt_mz03_i,23,5,0 warp2 3maze5a1_3maze5c1 1,1,prt_mz03_i,88,13
|
||||
prt_mz03_i,16,34,0 warp2 3maze5a2_3maze4b1 1,1,prt_mz03_i,52,48
|
||||
prt_mz03_i,45,21,0 warp2 3maze5b1_3maze2a2 1,1,prt_mz03_i,18,151
|
||||
prt_mz03_i,54,5,0 warp2 3maze5b2_3maze3b3 1,1,prt_mz03_i,71,97
|
||||
prt_mz03_i,74,12,0 warp2 3maze5b3_3maze1e1 1,1,prt_mz03_i,175,168
|
||||
prt_mz03_i,85,13,0 warp2 3maze5c1_3maze5a1 1,1,prt_mz03_i,23,8
|
||||
prt_mz03_i,99,34,0 warp2 3maze5c2_3maze2c2 1,1,prt_mz03_i,98,151
|
||||
prt_mz03_i,114,22,0 warp2 3maze5c3_3maze4c2 1,1,prt_mz03_i,104,71
|
||||
prt_mz03_i,165,22,0 warp2 3maze5e1_3maze2c3 1,1,prt_mz03_i,111,146
|
||||
prt_mz03_i,176,5,0 warp2 3maze5e2_3maze3c3 1,1,prt_mz03_i,111,95
|
||||
prt_mz03_i,176,34,0 warp2 3maze5e3_3maze4c1 1,1,prt_mz03_i,88,56
|
||||
prt_mz03_i,194,15,0 warp2 3maze5e4_3maze4a1 1,1,prt_mz03_i,8,58
|
||||
|
||||
prt_mz03_i,58,194,0 script 3maze1b1_Random1 WARPNPC,1,1,{
|
||||
end;
|
||||
OnTouch:
|
||||
switch( rand(1,4) ) {
|
||||
case 1:
|
||||
warp "prt_mz03_i",88,146;
|
||||
end;
|
||||
case 2:
|
||||
warp "prt_mz03_i",8,58;
|
||||
end;
|
||||
case 3:
|
||||
warp "prt_mz03_i",137,128;
|
||||
end;
|
||||
case 4:
|
||||
warp "prt_mz03_i",48,21;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,74,74,0 script 3maze4b2_Random2 WARPNPC,1,1,{
|
||||
end;
|
||||
OnTouch:
|
||||
switch( rand(1,4) ) {
|
||||
case 1:
|
||||
warp "prt_mz03_i",88,146;
|
||||
end;
|
||||
case 2:
|
||||
warp "prt_mz03_i",8,58;
|
||||
end;
|
||||
case 3:
|
||||
warp "prt_mz03_i",137,128;
|
||||
end;
|
||||
case 4:
|
||||
warp "prt_mz03_i",48,21;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,139,45,0 script 3maze4d1_Random3 WARPNPC,1,1,{
|
||||
end;
|
||||
OnTouch:
|
||||
switch( rand(1,4) ) {
|
||||
case 1:
|
||||
warp "prt_mz03_i",88,146;
|
||||
end;
|
||||
case 2:
|
||||
warp "prt_mz03_i",8,58;
|
||||
end;
|
||||
case 3:
|
||||
warp "prt_mz03_i",137,128;
|
||||
end;
|
||||
case 4:
|
||||
warp "prt_mz03_i",48,21;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
prt_mz03_i,154,22,0 script 3maze5d1_Random4 WARPNPC,1,1,{
|
||||
end;
|
||||
OnTouch:
|
||||
switch( rand(1,4) ) {
|
||||
case 1:
|
||||
warp "prt_mz03_i",88,146;
|
||||
end;
|
||||
case 2:
|
||||
warp "prt_mz03_i",8,58;
|
||||
end;
|
||||
case 3:
|
||||
warp "prt_mz03_i",137,128;
|
||||
end;
|
||||
case 4:
|
||||
warp "prt_mz03_i",48,21;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Fild Warps Script
|
||||
//===== By: ==================================================
|
||||
//= Protimus
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion]
|
||||
//= Warp Points for Brasilis
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First version.
|
||||
//============================================================
|
||||
|
||||
bra_fild01,72,34,0 warp bra_fild01_brasilis 1,1,brasilis,309,334
|
||||
brasilis,308,336,0 warp brasilis_bra_fild01 1,1,bra_fild01,74,34
|
||||
@@ -34,6 +34,7 @@ npc: npc/cities/alberta.txt
|
||||
npc: npc/cities/aldebaran.txt
|
||||
npc: npc/cities/amatsu.txt
|
||||
npc: npc/cities/ayothaya.txt
|
||||
npc: npc/cities/brasilis.txt
|
||||
npc: npc/cities/comodo.txt
|
||||
npc: npc/cities/einbech.txt
|
||||
npc: npc/cities/einbroch.txt
|
||||
@@ -250,6 +251,7 @@ npc: npc/quests/quests_alberta.txt
|
||||
npc: npc/quests/quests_aldebaran.txt
|
||||
npc: npc/quests/quests_amatsu.txt
|
||||
npc: npc/quests/quests_ayothaya.txt
|
||||
npc: npc/quests/quests_brasilis.txt
|
||||
npc: npc/quests/quests_comodo.txt
|
||||
npc: npc/quests/quests_ein.txt
|
||||
npc: npc/quests/quests_geffen.txt
|
||||
|
||||
@@ -7,6 +7,7 @@ npc: npc/warps/cities/alberta.txt
|
||||
npc: npc/warps/cities/aldebaran.txt
|
||||
npc: npc/warps/cities/amatsu.txt
|
||||
npc: npc/warps/cities/ayothaya.txt
|
||||
npc: npc/warps/cities/brasilis.txt
|
||||
npc: npc/warps/cities/comodo.txt
|
||||
npc: npc/warps/cities/einbech.txt
|
||||
npc: npc/warps/cities/einbroch.txt
|
||||
@@ -37,6 +38,7 @@ npc: npc/warps/dungeons/ama_dun.txt
|
||||
npc: npc/warps/dungeons/anthell.txt
|
||||
npc: npc/warps/dungeons/ayo_dun.txt
|
||||
npc: npc/warps/dungeons/beach_dun.txt
|
||||
npc: npc/warps/dungeons/bra_dun.txt
|
||||
npc: npc/warps/dungeons/c_tower.txt
|
||||
npc: npc/warps/dungeons/ein_dun.txt
|
||||
npc: npc/warps/dungeons/gef_dun.txt
|
||||
@@ -67,6 +69,7 @@ npc: npc/warps/dungeons/xmas_dun.txt
|
||||
// --------------------------- Fields ---------------------------
|
||||
npc: npc/warps/fields/abyss_warper.txt
|
||||
npc: npc/warps/fields/amatsu_fild.txt
|
||||
npc: npc/warps/fields/bra_fild.txt
|
||||
npc: npc/warps/fields/ein_fild.txt
|
||||
npc: npc/warps/fields/gefenia.txt
|
||||
npc: npc/warps/fields/glastheim.txt
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Town Warps Script
|
||||
//===== By: ==================================================
|
||||
//= L0ne_W0lf
|
||||
//===== Current Version: =====================================
|
||||
//= 1.2
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project; RO Episode 13.1+
|
||||
//===== Description: =========================================
|
||||
//= [Official Conversion]
|
||||
//= Warp Points for Brasilis
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First version.
|
||||
//= Brasilis Town Warps
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First version. [L0ne_W0lf]
|
||||
//= 1.1 Fixed warps according to official. [Protimus]
|
||||
//= 1.1a Added Field warp according to official. [Jguy]
|
||||
//= 1.2 Added missing warps & removed duplicated one. [Daegaladh]
|
||||
8
npc/warps/dungeons/bra_dun.txt
Normal file
8
npc/warps/dungeons/bra_dun.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Dungeon Warps
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First version. [L0ne_W0lf]
|
||||
//============================================================
|
||||
|
||||
bra_dun01,199,35,0 warp brad1tobrad2 1,1,bra_dun02,261,263
|
||||
bra_dun02,261,265,0 warp brad2tobrad1 1,1,bra_dun01,199,37
|
||||
8
npc/warps/fields/bra_fild.txt
Normal file
8
npc/warps/fields/bra_fild.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Brasilis Field Warps
|
||||
//===== Changelog: ===========================================
|
||||
//= 1.0 First version. [Protimus]
|
||||
//============================================================
|
||||
|
||||
bra_fild01,72,34,0 warp bra_fild01_brasilis 1,1,brasilis,309,334
|
||||
brasilis,308,336,0 warp brasilis_bra_fild01 1,1,bra_fild01,74,34
|
||||
@@ -2837,6 +2837,7 @@ void char_config_split_startpoint( char* w1_value, char* w2_value, struct s_poin
|
||||
size_t fields_length = 3 + 1;
|
||||
|
||||
(*count) = 0; // Reset to begin reading
|
||||
memset(start_point, 0, sizeof(struct s_point_str) * MAX_STARTPOINT);
|
||||
|
||||
fields = (char **)aMalloc(fields_length * sizeof(char *));
|
||||
if (fields == nullptr)
|
||||
@@ -2876,6 +2877,8 @@ void char_config_split_startitem(char *w1_value, char *w2_value, struct startite
|
||||
int i = 0;
|
||||
size_t fields_length = 3 + 1;
|
||||
|
||||
memset(start_items, 0, sizeof(struct startitem) * MAX_STARTITEM);
|
||||
|
||||
fields = (char **)aMalloc(fields_length * sizeof(char *));
|
||||
if (fields == nullptr)
|
||||
return; // Failed to allocate memory.
|
||||
|
||||
@@ -180,7 +180,7 @@ static inline void WBUFPOS(uint8* p, unsigned short pos, short x, short y, unsig
|
||||
|
||||
|
||||
// client-side: x0+=sx0*0.0625-0.5 and y0+=sy0*0.0625-0.5
|
||||
static inline void WBUFPOS2(uint8* p, unsigned short pos, short x0, short y0, short x1, short y1, unsigned char sx0, unsigned char sy0) {
|
||||
static inline void WBUFPOS2(uint8* p, unsigned short pos, short x0, short y0, short x1, short y1, uint8 sx0, uint8 sy0) {
|
||||
p += pos;
|
||||
p[0] = (uint8)(x0>>2);
|
||||
p[1] = (uint8)((x0<<6) | ((y0>>4)&0x3f));
|
||||
@@ -1436,7 +1436,7 @@ static void clif_set_unit_walking( struct block_list& bl, map_session_data* tsd,
|
||||
p.virtue = (sc) ? sc->opt3 : 0;
|
||||
p.isPKModeON = (sd && sd->status.karma) ? 1 : 0;
|
||||
p.sex = vd->sex;
|
||||
WBUFPOS2( &p.MoveData[0], 0, bl.x, bl.y, ud.to_x, ud.to_y, 8, 8 );
|
||||
WBUFPOS2(&p.MoveData[0], 0, bl.x, bl.y, ud.to_x, ud.to_y, ud.sx, ud.sy);
|
||||
p.xSize = p.ySize = (sd) ? 5 : 0;
|
||||
p.clevel = clif_setlevel( &bl );
|
||||
#if PACKETVER >= 20080102
|
||||
@@ -7674,15 +7674,12 @@ void clif_buyvending( map_session_data& sd, uint16 index, uint16 amount, e_pc_pu
|
||||
|
||||
/// Show's vending player its list of items for sale.
|
||||
/// 0a28 <result>.B (ZC_ACK_OPENSTORE2)
|
||||
/// result:
|
||||
/// 0 = Success
|
||||
/// 1 = Failed
|
||||
void clif_openvending_ack( map_session_data& sd, bool failure ){
|
||||
void clif_openvending_ack( map_session_data& sd, e_ack_openstore2 result ){
|
||||
#if PACKETVER >= 20141022
|
||||
PACKET_ZC_ACK_OPENSTORE2 packet{};
|
||||
|
||||
packet.packetType = HEADER_ZC_ACK_OPENSTORE2;
|
||||
packet.result = failure;
|
||||
packet.result = static_cast<decltype(packet.result)>(result);
|
||||
|
||||
clif_send( &packet, sizeof( packet ), &sd.bl, SELF );
|
||||
#endif
|
||||
@@ -7722,7 +7719,7 @@ void clif_openvending( map_session_data& sd ){
|
||||
|
||||
clif_send( p, p->packetLength, &sd.bl, SELF );
|
||||
|
||||
clif_openvending_ack( sd, false );
|
||||
clif_openvending_ack( sd, OPENSTORE2_SUCCESS );
|
||||
}
|
||||
|
||||
|
||||
@@ -19148,6 +19145,9 @@ void clif_buyingstore_trade_failed_seller( map_session_data* sd, short result, t
|
||||
/// amount of card slots. If the client does not know about the item it
|
||||
/// cannot be searched.
|
||||
static void clif_parse_SearchStoreInfo( int fd, map_session_data *sd ){
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
const PACKET_CZ_SEARCH_STORE_INFO* p = reinterpret_cast<PACKET_CZ_SEARCH_STORE_INFO*>( RFIFOP( fd, 0 ) );
|
||||
|
||||
// minimum packet length
|
||||
@@ -19200,6 +19200,9 @@ static void clif_parse_SearchStoreInfo( int fd, map_session_data *sd ){
|
||||
/// 1 = "next" label to retrieve more results
|
||||
void clif_search_store_info_ack( map_session_data& sd ){
|
||||
#if PACKETVER_MAIN_NUM >= 20100817 || PACKETVER_RE_NUM >= 20100706 || defined(PACKETVER_ZERO)
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
uint32 start = sd.searchstore.pages * SEARCHSTORE_RESULTS_PER_PAGE ;
|
||||
uint32 end = umin( static_cast<uint32>( sd.searchstore.items.size() ), start + SEARCHSTORE_RESULTS_PER_PAGE );
|
||||
|
||||
@@ -19260,6 +19263,9 @@ void clif_search_store_info_ack( map_session_data& sd ){
|
||||
/// 0837 <reason>.B (ZC_SEARCH_STORE_INFO_FAILED)
|
||||
void clif_search_store_info_failed(map_session_data& sd, e_searchstore_failure reason){
|
||||
#if PACKETVER_MAIN_NUM >= 20100601 || PACKETVER_RE_NUM >= 20100601 || defined(PACKETVER_ZERO)
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
PACKET_ZC_SEARCH_STORE_INFO_FAILED packet{};
|
||||
|
||||
packet.packetType = HEADER_ZC_SEARCH_STORE_INFO_FAILED;
|
||||
@@ -19272,8 +19278,10 @@ void clif_search_store_info_failed(map_session_data& sd, e_searchstore_failure r
|
||||
|
||||
/// Request to display next page of results.
|
||||
/// 0838 (CZ_SEARCH_STORE_INFO_NEXT_PAGE)
|
||||
static void clif_parse_SearchStoreInfoNextPage(int fd, map_session_data* sd)
|
||||
{
|
||||
static void clif_parse_SearchStoreInfoNextPage(int fd, map_session_data* sd){
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
searchstore_next(*sd);
|
||||
}
|
||||
|
||||
@@ -19282,6 +19290,9 @@ static void clif_parse_SearchStoreInfoNextPage(int fd, map_session_data* sd)
|
||||
/// 083a <effect>.W <remaining uses>.B (ZC_OPEN_SEARCH_STORE_INFO)
|
||||
void clif_open_search_store_info(map_session_data& sd){
|
||||
#if PACKETVER_MAIN_NUM >= 20100701 || PACKETVER_RE_NUM >= 20100701 || defined(PACKETVER_ZERO)
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
PACKET_ZC_OPEN_SEARCH_STORE_INFO packet{};
|
||||
|
||||
packet.packetType = HEADER_ZC_OPEN_SEARCH_STORE_INFO;
|
||||
@@ -19297,8 +19308,10 @@ void clif_open_search_store_info(map_session_data& sd){
|
||||
|
||||
/// Request to close the store search window.
|
||||
/// 083b (CZ_CLOSE_SEARCH_STORE_INFO)
|
||||
static void clif_parse_CloseSearchStoreInfo(int fd, map_session_data* sd)
|
||||
{
|
||||
static void clif_parse_CloseSearchStoreInfo(int fd, map_session_data* sd){
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
searchstore_close(*sd);
|
||||
}
|
||||
|
||||
@@ -19306,6 +19319,9 @@ static void clif_parse_CloseSearchStoreInfo(int fd, map_session_data* sd)
|
||||
/// Request to invoke catalog effect on a store from search results.
|
||||
/// 083c <account id>.L <store id>.L <nameid>.W (CZ_SSILIST_ITEM_CLICK)
|
||||
static void clif_parse_SearchStoreInfoListItemClick( int fd, map_session_data* sd ){
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
const PACKET_CZ_SSILIST_ITEM_CLICK* p = reinterpret_cast<PACKET_CZ_SSILIST_ITEM_CLICK*>( RFIFOP( fd, 0 ) );
|
||||
|
||||
searchstore_click( *sd, p->AID, p->storeId, p->itemId );
|
||||
@@ -19316,6 +19332,9 @@ static void clif_parse_SearchStoreInfoListItemClick( int fd, map_session_data* s
|
||||
/// 083d <xPos>.W <yPos>.W (ZC_SSILIST_ITEM_CLICK_ACK)
|
||||
void clif_search_store_info_click_ack(map_session_data& sd, int16 x, int16 y){
|
||||
#if PACKETVER_MAIN_NUM >= 20100608 || PACKETVER_RE_NUM >= 20100608 || defined(PACKETVER_ZERO)
|
||||
if (!battle_config.feature_search_stores)
|
||||
return;
|
||||
|
||||
PACKET_ZC_SSILIST_ITEM_CLICK_ACK packet{};
|
||||
|
||||
packet.packetType = HEADER_ZC_SSILIST_ITEM_CLICK_ACK;
|
||||
|
||||
@@ -639,6 +639,9 @@ enum clif_messages : uint16_t {
|
||||
// Currently there is no attendance check event.
|
||||
MSI_CHECK_ATTENDANCE_NOT_EVENT = 3474,
|
||||
|
||||
// The total amount of items to sell exceeds the amount of Zeny you can have. \nPlease modify the quantity and price.
|
||||
MSI_MERCHANTSHOP_TOTA_LOVER_ZENY_ERR = 3826,
|
||||
|
||||
// It weighs more than 70%. Decrease the Weight and try again.
|
||||
MSI_ENCHANT_FAILED_OVER_WEIGHT = 3837,
|
||||
|
||||
@@ -784,6 +787,21 @@ enum e_pc_purchase_result_frommc : uint8 {
|
||||
PURCHASEMC_NO_SALES_INFO = 7,
|
||||
};
|
||||
|
||||
enum e_ack_openstore2 : uint8 {
|
||||
// Success
|
||||
OPENSTORE2_SUCCESS = 0,
|
||||
|
||||
// (Pop-up) Failed to open stalls. (MSI_MERCHANTSHOP_MAKING_FAIL / 2639)
|
||||
OPENSTORE2_FAILED = 1,
|
||||
|
||||
// 2 is unused
|
||||
|
||||
#if PACKETVER >= 20170419
|
||||
// Unable to open a shop at the current location. (MSI_MERCHANTSHOP_FAIL_POSITION / 3229)
|
||||
OPENSTORE2_NOVENDING = 3,
|
||||
#endif
|
||||
};
|
||||
|
||||
enum e_ack_whisper : uint8 {
|
||||
ACKWHISPER_SUCCESS = 0,
|
||||
ACKWHISPER_TARGET_OFFLINE = 1,
|
||||
@@ -998,6 +1016,7 @@ void clif_closevendingboard(struct block_list* bl, int fd);
|
||||
void clif_vendinglist( map_session_data& sd, map_session_data& vsd );
|
||||
void clif_buyvending( map_session_data& sd, uint16 index, uint16 amount, e_pc_purchase_result_frommc result );
|
||||
void clif_openvending( map_session_data& sd );
|
||||
void clif_openvending_ack(map_session_data& sd, e_ack_openstore2 result);
|
||||
void clif_vendingreport( map_session_data& sd, uint16 index, uint16 amount, uint32 char_id, int32 zeny );
|
||||
|
||||
void clif_movetoattack( map_session_data& sd, block_list& bl );
|
||||
|
||||
@@ -1566,7 +1566,7 @@ int mob_unlocktarget(struct mob_data *md, t_tick tick)
|
||||
break;
|
||||
default:
|
||||
mob_stop_attack(md);
|
||||
mob_stop_walking(md,1); //Stop chasing.
|
||||
unit_stop_walking_soon(md->bl); //Stop chasing.
|
||||
if (status_has_mode(&md->status,MD_ANGRY) && !md->state.aggressive)
|
||||
md->state.aggressive = 1; //Restore angry state when switching to idle
|
||||
md->state.skillstate = MSS_IDLE;
|
||||
@@ -1908,6 +1908,8 @@ static bool mob_ai_sub_hard(struct mob_data *md, t_tick tick)
|
||||
md->state.skillstate = MSS_LOOT;
|
||||
if (!unit_walktobl(&md->bl, tbl, 0, 0))
|
||||
mob_unlocktarget(md, tick); //Can't loot...
|
||||
else
|
||||
unit_set_target(&md->ud, tbl->id); //Remember current loot target
|
||||
return true;
|
||||
}
|
||||
//Within looting range.
|
||||
|
||||
@@ -4028,7 +4028,7 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const
|
||||
break;
|
||||
}
|
||||
case NPCTYPE_POINTSHOP: {
|
||||
if (sscanf(p, ",%32[^,:]:%11d,",point_str,&is_discount) < 1) {
|
||||
if (sscanf(p, ",%31[^,:]:%11d,",point_str,&is_discount) < 1) {
|
||||
ShowError("npc_parse_shop: Invalid item cost definition in file '%s', line '%d'. Ignoring the rest of the line...\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,start-buffer), w1, w2, w3, w4);
|
||||
return strchr(start,'\n'); // skip and continue
|
||||
}
|
||||
@@ -4056,7 +4056,7 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
if( sscanf( p, ",%32[^,:]:%11d,", point_str, &is_discount ) == 2 ){
|
||||
if( sscanf( p, ",%31[^,:]:%11d,", point_str, &is_discount ) == 2 ){
|
||||
is_discount = 1;
|
||||
}else{
|
||||
if( !strcasecmp( point_str, "yes" ) ){
|
||||
|
||||
@@ -22427,6 +22427,11 @@ BUILDIN_FUNC(buyingstore)
|
||||
/// searchstores <uses>,<effect>{,<map name>};
|
||||
BUILDIN_FUNC(searchstores)
|
||||
{
|
||||
if (!battle_config.feature_search_stores) {
|
||||
ShowError("buildin_searchstores: Search stores feature is disabled.\n");
|
||||
return SCRIPT_CMD_FAILURE;
|
||||
}
|
||||
|
||||
map_session_data* sd;
|
||||
|
||||
if( !script_rid2sd(sd) )
|
||||
|
||||
@@ -87,7 +87,7 @@ static int searchstore_getstoreid(map_session_data& sd, e_searchstore_searchtype
|
||||
*/
|
||||
bool searchstore_open(map_session_data& sd, uint16 uses, e_searchstore_effecttype effect, int16 mapid)
|
||||
{
|
||||
if( !battle_config.feature_search_stores || sd.searchstore.open )
|
||||
if( sd.searchstore.open )
|
||||
return false;
|
||||
|
||||
|
||||
@@ -121,9 +121,6 @@ void searchstore_query(map_session_data& sd, e_searchstore_searchtype type, unsi
|
||||
searchstore_searchall_t store_searchall;
|
||||
time_t querytime;
|
||||
|
||||
if( !battle_config.feature_search_stores )
|
||||
return;
|
||||
|
||||
if( !sd.searchstore.open )
|
||||
return;
|
||||
|
||||
@@ -144,11 +141,22 @@ void searchstore_query(map_session_data& sd, e_searchstore_searchtype type, unsi
|
||||
return;
|
||||
}
|
||||
|
||||
// uses counter must be updated before validating the next search
|
||||
sd.searchstore.uses--;
|
||||
sd.searchstore.type = type;
|
||||
sd.searchstore.nextquerytime = querytime + battle_config.searchstore_querydelay;
|
||||
|
||||
// drop previous results
|
||||
searchstore_clear(sd);
|
||||
|
||||
// validate lists
|
||||
for( i = 0; i < item_count; i++ ) {
|
||||
if( !item_db.exists(itemlist[i].itemId) ) {
|
||||
ShowWarning("searchstore_query: Client resolved item %u is not known.\n", itemlist[i].itemId);
|
||||
clif_search_store_info_failed(sd, SSI_FAILED_NOTHING_SEARCH_ITEM);
|
||||
|
||||
// update uses
|
||||
clif_search_store_info_ack(sd);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -156,6 +164,9 @@ void searchstore_query(map_session_data& sd, e_searchstore_searchtype type, unsi
|
||||
if( !item_db.exists(cardlist[i].itemId) ) {
|
||||
ShowWarning("searchstore_query: Client resolved card %u is not known.\n", cardlist[i].itemId);
|
||||
clif_search_store_info_failed(sd, SSI_FAILED_NOTHING_SEARCH_ITEM);
|
||||
|
||||
// update uses
|
||||
clif_search_store_info_ack(sd);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -163,13 +174,6 @@ void searchstore_query(map_session_data& sd, e_searchstore_searchtype type, unsi
|
||||
if( max_price < min_price )
|
||||
std::swap(min_price, max_price);
|
||||
|
||||
sd.searchstore.uses--;
|
||||
sd.searchstore.type = type;
|
||||
sd.searchstore.nextquerytime = querytime+battle_config.searchstore_querydelay;
|
||||
|
||||
// drop previous results
|
||||
searchstore_clear(sd);
|
||||
|
||||
// search
|
||||
s.search_sd = &sd;
|
||||
s.itemlist = itemlist;
|
||||
@@ -207,11 +211,11 @@ void searchstore_query(map_session_data& sd, e_searchstore_searchtype type, unsi
|
||||
// cleanup
|
||||
searchstore_clear(sd);
|
||||
|
||||
// notify of failure (must go before updating uses)
|
||||
clif_search_store_info_failed(sd, SSI_FAILED_NOTHING_SEARCH_ITEM);
|
||||
|
||||
// update uses
|
||||
clif_search_store_info_ack( sd );
|
||||
|
||||
// notify of failure
|
||||
clif_search_store_info_failed(sd, SSI_FAILED_NOTHING_SEARCH_ITEM);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,7 +238,7 @@ bool searchstore_querynext(map_session_data& sd)
|
||||
*/
|
||||
void searchstore_next(map_session_data& sd)
|
||||
{
|
||||
if( !battle_config.feature_search_stores || !sd.searchstore.open || sd.searchstore.items.size() <= sd.searchstore.pages*SEARCHSTORE_RESULTS_PER_PAGE ) // nothing (more) to display
|
||||
if( !sd.searchstore.open || sd.searchstore.items.size() <= sd.searchstore.pages*SEARCHSTORE_RESULTS_PER_PAGE ) // nothing (more) to display
|
||||
return;
|
||||
|
||||
// present results
|
||||
@@ -283,7 +287,7 @@ void searchstore_click(map_session_data& sd, uint32 account_id, int store_id, t_
|
||||
map_session_data* pl_sd;
|
||||
searchstore_search_t store_search;
|
||||
|
||||
if( !battle_config.feature_search_stores || !sd.searchstore.open || sd.searchstore.items.empty() )
|
||||
if( !sd.searchstore.open || sd.searchstore.items.empty() )
|
||||
return;
|
||||
|
||||
searchstore_clearremote(sd);
|
||||
|
||||
@@ -11708,12 +11708,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
if( !status_isdead(bl) )
|
||||
break;
|
||||
|
||||
status_zap(bl, 0, tstatus->sp * 10 * skill_lv / 100);
|
||||
|
||||
int heal = tstatus->sp;
|
||||
|
||||
if( heal <= 0 )
|
||||
heal = 1;
|
||||
tstatus->hp = heal;
|
||||
tstatus->sp -= tstatus->sp * ( 60 - 10 * skill_lv ) / 100;
|
||||
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
||||
pc_revive((TBL_PC*)bl,heal,0);
|
||||
clif_resurrection( *bl );
|
||||
|
||||
@@ -397,6 +397,9 @@ static TIMER_FUNC(unit_walktoxy_timer)
|
||||
}
|
||||
|
||||
ud->walktimer = INVALID_TIMER;
|
||||
// As movement to next cell finished, set sub-cell position to center
|
||||
ud->sx = 8;
|
||||
ud->sy = 8;
|
||||
|
||||
if (bl->prev == nullptr)
|
||||
return 0; // Stop moved because it is missing from the block_list
|
||||
@@ -1404,6 +1407,78 @@ int unit_warp(struct block_list *bl,short m,short x,short y,clr_type type)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the walkpath of a unit to end after 0.5-1.5 cells moved
|
||||
* Sends required packet for proper display on the client using subcoordinates
|
||||
* @param bl: Object to stop walking
|
||||
*/
|
||||
void unit_stop_walking_soon(struct block_list& bl)
|
||||
{
|
||||
struct unit_data* ud = unit_bl2ud(&bl);
|
||||
|
||||
if (ud == nullptr)
|
||||
return;
|
||||
|
||||
if (ud->walktimer == INVALID_TIMER)
|
||||
return;
|
||||
|
||||
if (ud->walkpath.path_pos + 1 >= ud->walkpath.path_len)
|
||||
return;
|
||||
|
||||
const struct TimerData* td = get_timer(ud->walktimer);
|
||||
|
||||
if (td == nullptr)
|
||||
return;
|
||||
|
||||
// Get how much percent we traversed on the timer
|
||||
double cell_percent = 1.0 - ((double)DIFF_TICK(td->tick, gettick()) / (double)td->data);
|
||||
|
||||
short ox = bl.x, oy = bl.y; // Remember original x and y coordinates
|
||||
short path_remain = 1; // Remaining path to walk
|
||||
|
||||
if (cell_percent > 0.0 && cell_percent < 1.0) {
|
||||
// Set subcell coordinates according to timer
|
||||
// This gives a value between 8 and 39
|
||||
ud->sx = static_cast<decltype(ud->sx)>(24.0 + dirx[ud->walkpath.path[ud->walkpath.path_pos]] * 16.0 * cell_percent);
|
||||
ud->sy = static_cast<decltype(ud->sy)>(24.0 + diry[ud->walkpath.path[ud->walkpath.path_pos]] * 16.0 * cell_percent);
|
||||
// 16-31 reflect sub position 0-15 on the current cell
|
||||
// 8-15 reflect sub position 8-15 at -1 main coordinate
|
||||
// 32-39 reflect sub position 0-7 at +1 main coordinate
|
||||
if (ud->sx < 16 || ud->sy < 16 || ud->sx > 31 || ud->sy > 31) {
|
||||
path_remain = 2;
|
||||
if (ud->sx < 16) bl.x--;
|
||||
if (ud->sy < 16) bl.y--;
|
||||
if (ud->sx > 31) bl.x++;
|
||||
if (ud->sy > 31) bl.y++;
|
||||
}
|
||||
ud->sx %= 16;
|
||||
ud->sy %= 16;
|
||||
}
|
||||
else if (cell_percent >= 1.0) {
|
||||
// Assume exactly one cell moved
|
||||
bl.x += dirx[ud->walkpath.path[ud->walkpath.path_pos]];
|
||||
bl.y += diry[ud->walkpath.path[ud->walkpath.path_pos]];
|
||||
path_remain = 2;
|
||||
}
|
||||
// Shorten walkpath
|
||||
if (ud->walkpath.path_pos + path_remain < ud->walkpath.path_len) {
|
||||
ud->walkpath.path_len = ud->walkpath.path_pos + path_remain;
|
||||
ud->to_x = ox;
|
||||
ud->to_y = oy;
|
||||
for (int i = 0; i < path_remain; i++) {
|
||||
ud->to_x += dirx[ud->walkpath.path[ud->walkpath.path_pos + i]];
|
||||
ud->to_y += diry[ud->walkpath.path[ud->walkpath.path_pos + i]];
|
||||
}
|
||||
// Send movement packet with calculated coordinates and subcoordinates
|
||||
clif_move(*ud);
|
||||
}
|
||||
// Reset coordinates
|
||||
bl.x = ox;
|
||||
bl.y = oy;
|
||||
ud->sx = 8;
|
||||
ud->sy = 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stops a unit from walking
|
||||
* @param bl: Object to stop walking
|
||||
@@ -1446,8 +1521,12 @@ int unit_stop_walking(struct block_list *bl,int type)
|
||||
unit_walktoxy_timer(INVALID_TIMER, tick, bl->id, ud->walkpath.path_pos);
|
||||
}
|
||||
|
||||
if(type&USW_FIXPOS)
|
||||
clif_fixpos( *bl );
|
||||
if (type&USW_FIXPOS) {
|
||||
// Stop on cell center
|
||||
ud->sx = 8;
|
||||
ud->sy = 8;
|
||||
clif_fixpos(*bl);
|
||||
}
|
||||
|
||||
ud->walkpath.path_len = 0;
|
||||
ud->walkpath.path_pos = 0;
|
||||
@@ -3014,6 +3093,8 @@ void unit_dataset(struct block_list *bl)
|
||||
ud->attackabletime =
|
||||
ud->canact_tick =
|
||||
ud->canmove_tick = gettick();
|
||||
ud->sx = 8;
|
||||
ud->sy = 8;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -27,6 +27,7 @@ struct unit_data {
|
||||
struct skill_unit_group_tickset skillunittick[MAX_SKILLUNITGROUPTICKSET];
|
||||
short attacktarget_lv;
|
||||
short to_x, to_y;
|
||||
uint8 sx, sy; // Subtile position (0-15, with 8 being center of cell)
|
||||
short skillx, skilly;
|
||||
uint16 skill_id, skill_lv;
|
||||
int skilltarget;
|
||||
@@ -114,6 +115,7 @@ int unit_calc_pos(struct block_list *bl, int tx, int ty, uint8 dir);
|
||||
TIMER_FUNC(unit_delay_walktoxy_timer);
|
||||
TIMER_FUNC(unit_delay_walktobl_timer);
|
||||
|
||||
void unit_stop_walking_soon(struct block_list& bl);
|
||||
// Causes the target object to stop moving.
|
||||
int unit_stop_walking(struct block_list *bl,int type);
|
||||
bool unit_can_move(struct block_list *bl);
|
||||
|
||||
@@ -175,7 +175,7 @@ void vending_purchasereq(map_session_data* sd, int aid, int uid, const uint8* da
|
||||
clif_buyvending( *sd, idx, amount, PURCHASEMC_NO_ZENY ); // you don't have enough zeny
|
||||
return;
|
||||
}
|
||||
if( z + (double)vsd->status.zeny > (double)MAX_ZENY && !battle_config.vending_over_max ) {
|
||||
if( z + (double)vsd->status.zeny > (double)MAX_ZENY ) {
|
||||
clif_buyvending( *sd, idx, vsd->vending[j].amount, PURCHASEMC_OUT_OF_STOCK ); // too much zeny = overflow
|
||||
return;
|
||||
|
||||
@@ -310,12 +310,18 @@ int8 vending_openvending( map_session_data& sd, const char* message, const uint8
|
||||
// skill level and cart check
|
||||
if( !vending_skill_lvl || !pc_iscarton(&sd) ) {
|
||||
clif_skill_fail( sd, MC_VENDING );
|
||||
sd.state.prevend = 0;
|
||||
sd.state.workinprogress = WIP_DISABLE_NONE;
|
||||
clif_openvending_ack( sd, OPENSTORE2_FAILED );
|
||||
return 2;
|
||||
}
|
||||
|
||||
// check number of items in shop
|
||||
if( count < 1 || count > MAX_VENDING || count > 2 + vending_skill_lvl ) { // invalid item count
|
||||
clif_skill_fail( sd, MC_VENDING );
|
||||
sd.state.prevend = 0;
|
||||
sd.state.workinprogress = WIP_DISABLE_NONE;
|
||||
clif_openvending_ack( sd, OPENSTORE2_FAILED );
|
||||
return 3;
|
||||
}
|
||||
|
||||
@@ -324,6 +330,7 @@ int8 vending_openvending( map_session_data& sd, const char* message, const uint8
|
||||
|
||||
// filter out invalid items
|
||||
i = 0;
|
||||
int64 total = 0;
|
||||
for( j = 0; j < count; j++ ) {
|
||||
short index = *(uint16*)(data + 8*j + 0);
|
||||
short amount = *(uint16*)(data + 8*j + 2);
|
||||
@@ -344,17 +351,36 @@ int8 vending_openvending( map_session_data& sd, const char* message, const uint8
|
||||
sd.vending[i].index = index;
|
||||
sd.vending[i].amount = amount;
|
||||
sd.vending[i].value = min(value, (unsigned int)battle_config.vending_max_value);
|
||||
total += static_cast<int64>(sd.vending[i].value) * amount;
|
||||
i++; // item successfully added
|
||||
}
|
||||
|
||||
// check if the total value of the items plus the current zeny is over the limit
|
||||
if ( !battle_config.vending_over_max && (static_cast<int64>(sd.status.zeny) + total) > MAX_ZENY ) {
|
||||
#if PACKETVER >= 20200819
|
||||
clif_msg_color( &sd, MSI_MERCHANTSHOP_TOTA_LOVER_ZENY_ERR, color_table[COLOR_RED] );
|
||||
#endif
|
||||
clif_skill_fail( sd, MC_VENDING );
|
||||
sd.state.prevend = 0;
|
||||
sd.state.workinprogress = WIP_DISABLE_NONE;
|
||||
clif_openvending_ack( sd, OPENSTORE2_FAILED );
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (i != j) {
|
||||
clif_displaymessage(sd.fd, msg_txt(&sd, 266)); //"Some of your items cannot be vended and were removed from the shop."
|
||||
clif_skill_fail( sd, MC_VENDING ); // custom reply packet
|
||||
sd.state.prevend = 0;
|
||||
sd.state.workinprogress = WIP_DISABLE_NONE;
|
||||
clif_openvending_ack( sd, OPENSTORE2_FAILED );
|
||||
return 5;
|
||||
}
|
||||
|
||||
if( i == 0 ) { // no valid item found
|
||||
clif_skill_fail( sd, MC_VENDING ); // custom reply packet
|
||||
sd.state.prevend = 0;
|
||||
sd.state.workinprogress = WIP_DISABLE_NONE;
|
||||
clif_openvending_ack( sd, OPENSTORE2_FAILED );
|
||||
return 5;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user