浏览代码

Einbech dungeon 3 (#7209)

* Implemented dungeons, merchants and quests related to einbech 3

Thanks to @Pokye !
Atemo 2 年之前
父节点
当前提交
d7840cd265

+ 338 - 0
db/re/item_randomopt_group.yml

@@ -14651,3 +14651,341 @@ Body:
             MinValue: 1
             MaxValue: 5
             Chance: 5000
+  - Id: 163
+    Group: EIN_DDBOX
+    Slots:
+      - Slot: 1
+        Options:
+          - Option: VAR_ATTPOWER
+            MinValue: 5
+            MaxValue: 45
+            Chance: 5000
+          - Option: VAR_ATKPERCENT
+            MinValue: 1
+            MaxValue: 10
+            Chance: 5000
+      - Slot: 2
+        Options:
+          - Option: VAR_HITSUCCESSVALUE
+            MinValue: 5
+            MaxValue: 35
+            Chance: 5000
+          - Option: VAR_AVOIDSUCCESSVALUE
+            MinValue: 7
+            MaxValue: 35
+            Chance: 5000
+          - Option: VAR_PLUSASPD
+            MinValue: 1
+            MaxValue: 2
+            Chance: 5000
+          - Option: VAR_CRITICALSUCCESSVALUE
+            MinValue: 2
+            MaxValue: 10
+            Chance: 5000
+          - Option: DAMAGE_CRI_TARGET
+            MinValue: 5
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_NOTHING_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_WATER_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_FIRE_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_GROUND_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_WIND_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_POISON_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_SAINT_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_DARKNESS_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_UNDEAD_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DAMAGE_PROPERTY_TELEKINESIS_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: VAR_PLUSASPDPERCENT
+            MinValue: 5
+            MaxValue: 10
+            Chance: 5000
+    MaxRandom: 3
+    Random:
+      - Option: RACE_DAMAGE_NOTHING
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_UNDEAD
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_ANIMAL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_PLANT
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_INSECT
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_FISHS
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_HUMAN
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_ANGEL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_DEVIL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_DAMAGE_DRAGON
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: CLASS_DAMAGE_NORMAL_TARGET
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: CLASS_DAMAGE_BOSS_TARGET
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_NOTHING
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_UNDEAD
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_ANIMAL
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_PLANT
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_INSECT
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_FISHS
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_DEVIL
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_HUMAN
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_ANGEL
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_DEF_PERCENT_DRAGON
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: CLASS_IGNORE_DEF_PERCENT_NORMAL
+        MinValue: 3
+        MaxValue: 18
+        Chance: 5000
+  - Id: 164
+    Group: EIN_DDBOX2
+    Slots:
+      - Slot: 1
+        Options:
+          - Option: VAR_ATTMPOWER
+            MinValue: 5
+            MaxValue: 45
+            Chance: 5000
+          - Option: VAR_MAGICATKPERCENT
+            MinValue: 1
+            MaxValue: 10
+            Chance: 5000
+      - Slot: 2
+        Options:
+          - Option: VAR_AVOIDSUCCESSVALUE
+            MinValue: 7
+            MaxValue: 35
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_NOTHING_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_WATER_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_FIRE_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_GROUND_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_WIND_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_POISON_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_SAINT_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_DARKNESS_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_UNDEAD_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: MDAMAGE_PROPERTY_TELEKINESIS_TARGET
+            MinValue: 3
+            MaxValue: 20
+            Chance: 5000
+          - Option: DEC_SPELL_CAST_TIME
+            MinValue: 5
+            MaxValue: 10
+            Chance: 5000
+    MaxRandom: 3
+    Random:
+      - Option: HEAL_VALUE
+        MinValue: 7
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_MDAMAGE_NOTHING
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_UNDEAD
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_ANIMAL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_PLANT
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_INSECT
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_FISHS
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_HUMAN
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_ANGEL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_DEVIL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_MDAMAGE_DRAGON
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: CLASS_MDAMAGE_NORMAL
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: CLASS_MDAMAGE_BOSS
+        MinValue: 3
+        MaxValue: 20
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_NOTHING
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_UNDEAD
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_ANIMAL
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_PLANT
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_INSECT
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_FISHS
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_DEVIL
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_HUMAN
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_ANGEL
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: RACE_IGNORE_MDEF_PERCENT_DRAGON
+        MinValue: 3
+        MaxValue: 25
+        Chance: 5000
+      - Option: CLASS_IGNORE_MDEF_PERCENT_NORMAL
+        MinValue: 3
+        MaxValue: 18
+        Chance: 5000
+      - Option: DEC_SPELL_CAST_TIME
+        MinValue: 5
+        MaxValue: 10
+        Chance: 5000

+ 42 - 40
db/re/laphine_upgrade.yml

@@ -40,26 +40,27 @@ Header:
   Version: 1
 
 Body:
-#  - Item: Ein_Ddbox
-#    TargetItems:
-#      - Item: Ein_BHSWORD
-#      - Item: Detecting_Staff
-#      - Item: Ein_BHHuuma
-#      - Item: Ein_BHKATAR
-#      - Item: Ein_BHAXE
-#      - Item: Ein_BHBOW
-#      - Item: Ein_1HKNUCK
-#      - Item: Ein_1HHAMMER
-#      - Item: Ein_1HWAND
-#      - Item: Ein_1HWHIP
-#      - Item: Ein_1HBOOK
-#      - Item: Ein_1HDAGGER
-#      - Item: Ein_1HMAGGER
-#      - Item: Ein_1HSPEAR
-#      - Item: Ein_1HLUTE
-#      - Item: Ein_1HSWORD
-#      - Item: Ein_1HGUN
-#      - Item: Ein_1H_Foxtail
+  - Item: Ein_Ddbox
+    RandomOptionGroup: EIN_DDBOX
+    TargetItems:
+      - Item: Ein_BHSWORD
+      - Item: Ein_BHSTAFF
+      - Item: Ein_BHHuuma
+      - Item: Ein_BHKATAR
+      - Item: Ein_BHAXE
+      - Item: Ein_BHBOW
+      - Item: Ein_1HKNUCK
+      - Item: Ein_1HHAMMER
+      - Item: Ein_1HWAND
+      - Item: Ein_1HWHIP
+      - Item: Ein_1HBOOK
+      - Item: Ein_1HDAGGER
+      - Item: Ein_1HMAGGER
+      - Item: Ein_1HSPEAR
+      - Item: Ein_1HLUTE
+      - Item: Ein_1HSWORD
+      - Item: Ein_1HGUN
+      - Item: Ein_1H_Foxtail
   - Item: Metal_Rifine_Ticket
     ResultRefine: 7
     CardsAllowed: true
@@ -76,26 +77,27 @@ Body:
       - Item: Metal_Revolver
       - Item: Metal_Huuma_Shuriken
       - Item: Metal_Foxtail
-#  - Item: Ein_Ddbox2
-#    TargetItems:
-#      - Item: Ein_BHSWORD
-#      - Item: Detecting_Staff
-#      - Item: Ein_BHHuuma
-#      - Item: Ein_BHKATAR
-#      - Item: Ein_BHAXE
-#      - Item: Ein_BHBOW
-#      - Item: Ein_1HKNUCK
-#      - Item: Ein_1HHAMMER
-#      - Item: Ein_1HWAND
-#      - Item: Ein_1HWHIP
-#      - Item: Ein_1HBOOK
-#      - Item: Ein_1HDAGGER
-#      - Item: Ein_1HMAGGER
-#      - Item: Ein_1HSPEAR
-#      - Item: Ein_1HLUTE
-#      - Item: Ein_1HSWORD
-#      - Item: Ein_1HGUN
-#      - Item: Ein_1H_Foxtail
+  - Item: Ein_Ddbox2
+    RandomOptionGroup: EIN_DDBOX2
+    TargetItems:
+      - Item: Ein_BHSWORD
+      - Item: Ein_BHSTAFF
+      - Item: Ein_BHHuuma
+      - Item: Ein_BHKATAR
+      - Item: Ein_BHAXE
+      - Item: Ein_BHBOW
+      - Item: Ein_1HKNUCK
+      - Item: Ein_1HHAMMER
+      - Item: Ein_1HWAND
+      - Item: Ein_1HWHIP
+      - Item: Ein_1HBOOK
+      - Item: Ein_1HDAGGER
+      - Item: Ein_1HMAGGER
+      - Item: Ein_1HSPEAR
+      - Item: Ein_1HLUTE
+      - Item: Ein_1HSWORD
+      - Item: Ein_1HGUN
+      - Item: Ein_1H_Foxtail
   - Item: Gemstone_Of_Time
     RandomOptionGroup: GEMSTONE_OF_TIME
     TargetItems:

+ 576 - 26
db/re/mob_db.yml

@@ -96908,8 +96908,33 @@ Body:
 #    AegisName: G_MINERAL_R
 #  - Id: 20559
 #    AegisName: G_MINERAL_P
-#  - Id: 20560
-#    AegisName: G_MINERAL_G
+  - Id: 20560
+    AegisName: G_MINERAL_G
+    Name: Green Mineral
+    Level: 190
+    Hp: 2435702
+    Attack: 3729
+    Attack2: 671
+    Defense: 287
+    MagicDefense: 68
+    Str: 157
+    Agi: 134
+    Vit: 96
+    Int: 53
+    Dex: 138
+    Luk: 75
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Formless
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 648
+    AttackMotion: 480
+    DamageMotion: 360
+    Ai: 17
 #  - Id: 20561
 #    AegisName: G_MINERAL_W
 #  - Id: 20562
@@ -96972,30 +96997,555 @@ Body:
 #    AegisName: RU_E_ECLIPS
 #  - Id: 20591
 #    AegisName: PAPARE
-#  - Id: 20592
-#    AegisName: POISONOUS
-#  - Id: 20593
-#    AegisName: TOXIOUS
-#  - Id: 20594
-#    AegisName: MINERAL_G
-#  - Id: 20595
-#    AegisName: MINERAL_R
-#  - Id: 20596
-#    AegisName: MINERAL_W
-#  - Id: 20597
-#    AegisName: MINERAL_P
-#  - Id: 20598
-#    AegisName: JEWELIANT
-#  - Id: 20599
-#    AegisName: G_JEWELIANT
-#  - Id: 20600
-#    AegisName: JEWEL
-#  - Id: 20601
-#    AegisName: JUNGOLIANT
-#  - Id: 20602
-#    AegisName: PORCELLIO_W
-#  - Id: 20603
-#    AegisName: ABYSSMAN
+  - Id: 20592
+    AegisName: POISONOUS
+    Name: Poisonous
+    Level: 188
+    Hp: 2407086
+    BaseExp: 171935
+    JobExp: 120354
+    Attack: 3408
+    Attack2: 840
+    Defense: 248
+    MagicDefense: 68
+    Str: 145
+    Agi: 141
+    Vit: 77
+    Int: 67
+    Dex: 175
+    Luk: 11
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Medium
+    Race: Formless
+    Element: Ghost
+    ElementLevel: 4
+    WalkSpeed: 350
+    AttackDelay: 768
+    AttackMotion: 1440
+    DamageMotion: 672
+    Ai: 04
+    Drops:
+      - Item: Ein_SOLIDDUST
+        Rate: 200
+      - Item: Mould_Powder
+        Rate: 1500
+      - Item: Air_Pollutant
+        Rate: 1500
+      - Item: Anodyne
+        Rate: 25
+      - Item: Spawns
+        Rate: 1500
+      - Item: Shadowdecon_Ore
+        Rate: 150
+      - Item: Old_Violet_Box
+        Rate: 1
+      - Item: Poisonous_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20593
+    AegisName: TOXIOUS
+    Name: Toxious
+    Level: 188
+    Hp: 2407556
+    BaseExp: 171968
+    JobExp: 120378
+    Attack: 3384
+    Attack2: 815
+    Defense: 254
+    MagicDefense: 68
+    Str: 144
+    Agi: 143
+    Vit: 80
+    Int: 65
+    Dex: 168
+    Luk: 47
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Medium
+    Race: Formless
+    Element: Poison
+    ElementLevel: 4
+    WalkSpeed: 350
+    AttackDelay: 768
+    AttackMotion: 1440
+    DamageMotion: 672
+    Ai: 04
+    Drops:
+      - Item: Jubilee
+        Rate: 2500
+      - Item: Ein_SOLIDDUST
+        Rate: 200
+      - Item: Insect_Feeler
+        Rate: 500
+      - Item: Single_Cell
+        Rate: 1500
+      - Item: Fluorescent_Liquid
+        Rate: 15
+      - Item: Shadowdecon_Ore
+        Rate: 150
+      - Item: Poison_Powder
+        Rate: 50
+      - Item: Toxious_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20594
+    AegisName: MINERAL_G
+    Name: Green Mineral
+    Level: 190
+    Hp: 2435702
+    BaseExp: 173979
+    JobExp: 121785
+    Attack: 3634
+    Attack2: 684
+    Defense: 287
+    MagicDefense: 68
+    Str: 153
+    Agi: 141
+    Vit: 96
+    Int: 54
+    Dex: 143
+    Luk: 68
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Formless
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 648
+    AttackMotion: 480
+    DamageMotion: 360
+    Ai: 04
+    Drops:
+      - Item: Fragment_Of_Crystal
+        Rate: 1500
+      - Item: Ein_RINDIUM
+        Rate: 100
+      - Item: Ein_EYEROCK
+        Rate: 150
+      - Item: Zelunium_Ore
+        Rate: 150
+      - Item: Oridecon
+        Rate: 40
+      - Item: Emveretarcon
+        Rate: 400
+      - Item: Gold
+        Rate: 1
+      - Item: Neo_Mineral_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20595
+    AegisName: MINERAL_R
+    Name: Red Mineral
+    Level: 190
+    Hp: 2435702
+    BaseExp: 173979
+    JobExp: 121785
+    Attack: 3729
+    Attack2: 671
+    Defense: 287
+    MagicDefense: 68
+    Str: 157
+    Agi: 134
+    Vit: 96
+    Int: 53
+    Dex: 138
+    Luk: 75
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Formless
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 648
+    AttackMotion: 480
+    DamageMotion: 360
+    Ai: 04
+    Drops:
+      - Item: Fragment_Of_Crystal
+        Rate: 1500
+      - Item: Ein_REDIUM
+        Rate: 100
+      - Item: Ein_EYEROCK
+        Rate: 150
+      - Item: Zelunium_Ore
+        Rate: 150
+      - Item: Oridecon
+        Rate: 40
+      - Item: Emveretarcon
+        Rate: 400
+      - Item: Gold
+        Rate: 1
+      - Item: Neo_Mineral_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20596
+    AegisName: MINERAL_W
+    Name: White Mineral
+    Level: 190
+    Hp: 2436177
+    BaseExp: 174013
+    JobExp: 121809
+    Attack: 3705
+    Attack2: 722
+    Defense: 293
+    MagicDefense: 68
+    Str: 156
+    Agi: 138
+    Vit: 99
+    Int: 57
+    Dex: 139
+    Luk: 77
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Formless
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 648
+    AttackMotion: 480
+    DamageMotion: 360
+    Ai: 04
+    Drops:
+      - Item: Fragment_Of_Crystal
+        Rate: 1500
+      - Item: Ein_WHIDIUM
+        Rate: 100
+      - Item: Ein_EYEROCK
+        Rate: 150
+      - Item: Zelunium_Ore
+        Rate: 150
+      - Item: Oridecon
+        Rate: 40
+      - Item: Emveretarcon
+        Rate: 400
+      - Item: Gold
+        Rate: 1
+      - Item: Neo_Mineral_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20597
+    AegisName: MINERAL_P
+    Name: Purple Mineral
+    Level: 190
+    Hp: 2435543
+    BaseExp: 173967
+    JobExp: 121777
+    Attack: 3681
+    Attack2: 697
+    Defense: 285
+    MagicDefense: 68
+    Str: 155
+    Agi: 122
+    Vit: 95
+    Int: 55
+    Dex: 141
+    Luk: 71
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Formless
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 648
+    AttackMotion: 480
+    DamageMotion: 360
+    Ai: 04
+    Drops:
+      - Item: Fragment_Of_Crystal
+        Rate: 1500
+      - Item: Ein_PURDIUM
+        Rate: 100
+      - Item: Ein_EYEROCK
+        Rate: 150
+      - Item: Zelunium_Ore
+        Rate: 150
+      - Item: Oridecon
+        Rate: 40
+      - Item: Emveretarcon
+        Rate: 400
+      - Item: Gold
+        Rate: 1
+      - Item: Neo_Mineral_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20598
+    AegisName: JEWELIANT
+    Name: Jewelry Ant
+    Level: 191
+    Hp: 2445656
+    BaseExp: 174690
+    JobExp: 122283
+    Attack: 3748
+    Attack2: 1108
+    Defense: 252
+    MagicDefense: 71
+    Str: 157
+    Agi: 144
+    Vit: 778
+    Int: 87
+    Dex: 166
+    Luk: 79
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Medium
+    Race: Insect
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 360
+    AttackMotion: 360
+    DamageMotion: 600
+    Ai: 21
+    Drops:
+      - Item: Long_Limb
+        Rate: 2250
+      - Item: Jaws_Of_Ant
+        Rate: 1750
+      - Item: Colorful_Shell
+        Rate: 500
+      - Item: Olivine
+        Rate: 750
+      - Item: Fluorescent_Liquid
+        Rate: 1250
+      - Item: Shadowdecon_Ore
+        Rate: 150
+      - Item: Ein_UNDIUM
+        Rate: 300
+      - Item: Jeweliant_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20599
+    AegisName: G_JEWELIANT
+    Name: Jewelry Ant
+    Level: 191
+    Hp: 2445656
+    Attack: 3748
+    Attack2: 1108
+    Defense: 252
+    MagicDefense: 71
+    Str: 157
+    Agi: 144
+    Vit: 78
+    Int: 87
+    Dex: 166
+    Luk: 79
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Medium
+    Race: Insect
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 250
+    AttackDelay: 360
+    AttackMotion: 360
+    DamageMotion: 600
+    Ai: 21
+    Drops:
+      - Item: Jeweliant_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20600
+    AegisName: JEWEL
+    Name: Jewel
+    Level: 192
+    Hp: 100
+    Attack: 1
+    Attack2: 1
+    Defense: 504
+    MagicDefense: 71
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Formless
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 200
+    AttackDelay: 1008
+    AttackMotion: 1200
+    DamageMotion: 540
+    Ai: 21
+    Class: Boss
+    Modes:
+      IgnoreMagic: true
+      IgnoreMelee: true
+      IgnoreMisc: true
+      IgnoreRanged: true
+    Drops:
+      - Item: Ein_DYNITE
+        Rate: 100
+      - Item: Shadowdecon_Ore
+        Rate: 150
+      - Item: Ein_REDIUM
+        Rate: 300
+      - Item: Ein_RINDIUM
+        Rate: 300
+      - Item: Ein_ODIUM
+        Rate: 300
+      - Item: Ein_PURDIUM
+        Rate: 300
+      - Item: Ein_WHIDIUM
+        Rate: 300
+      - Item: Ein_UNDIUM
+        Rate: 250
+        StealProtected: true
+  - Id: 20601
+    AegisName: JUNGOLIANT
+    Name: Jewel Ungoliant
+    Level: 197
+    Hp: 37847096
+    BaseExp: 2703364
+    JobExp: 1892355
+    Attack: 7264
+    Attack2: 3782
+    Defense: 345
+    MagicDefense: 90
+    Str: 295
+    Agi: 165
+    Vit: 123
+    Int: 288
+    Dex: 190
+    Luk: 64
+    AttackRange: 3
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Insect
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 350
+    AttackDelay: 420
+    AttackMotion: 576
+    DamageMotion: 420
+    Ai: 21
+    Class: Boss
+    Modes:
+      Mvp: true
+    Drops:
+      - Item: Long_Limb
+        Rate: 2250
+      - Item: Jaws_Of_Ant
+        Rate: 1750
+      - Item: Shadowdecon
+        Rate: 50
+      - Item: Zelunium
+        Rate: 50
+      - Item: Ein_UNDIUM
+        Rate: 7500
+      - Item: Ein_UNDIUM
+        Rate: 2500
+      - Item: Ein_DYNITE
+        Rate: 8000
+      - Item: Jungoliant_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20602
+    AegisName: PORCELLIO_W
+    Name: White Porcellio
+    Level: 188
+    Hp: 2403326
+    BaseExp: 171666
+    JobExp: 120166
+    Attack: 3314
+    Attack2: 940
+    Defense: 200
+    MagicDefense: 69
+    Str: 141
+    Agi: 158
+    Vit: 53
+    Int: 75
+    Dex: 186
+    Luk: 75
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Small
+    Race: Insect
+    Element: Earth
+    ElementLevel: 4
+    WalkSpeed: 150
+    AttackDelay: 720
+    AttackMotion: 360
+    DamageMotion: 360
+    Ai: 02
+    Drops:
+      - Item: Jubilee
+        Rate: 2500
+      - Item: Insect_Feeler
+        Rate: 500
+      - Item: Single_Cell
+        Rate: 1500
+      - Item: Fluorescent_Liquid
+        Rate: 15
+      - Item: Zelunium_Ore
+        Rate: 150
+      - Item: Ein_ODIUM
+        Rate: 150
+      - Item: Solid_Shell
+        Rate: 1000
+      - Item: Porcellio_W_Card
+        Rate: 1
+        StealProtected: true
+  - Id: 20603
+    AegisName: ABYSSMAN
+    Name: Abyssman
+    Level: 190
+    Hp: 2428577
+    BaseExp: 173470
+    JobExp: 121429
+    Attack: 3824
+    Attack2: 570
+    Defense: 197
+    MagicDefense: 67
+    Str: 161
+    Agi: 129
+    Vit: 51
+    Int: 45
+    Dex: 177
+    Luk: 53
+    AttackRange: 1
+    SkillRange: 10
+    ChaseRange: 12
+    Size: Large
+    Race: Brute
+    Element: Neutral
+    ElementLevel: 4
+    WalkSpeed: 180
+    AttackDelay: 960
+    AttackMotion: 336
+    DamageMotion: 300
+    Ai: 04
+    Drops:
+      - Item: Old_Pick
+        Rate: 1500
+      - Item: Shadowdecon_Ore
+        Rate: 150
+      - Item: Ein_RUSTHELM
+        Rate: 150
+      - Item: Ein_ODIUM
+        Rate: 150
+      - Item: Coal
+        Rate: 50
+      - Item: Lantern
+        Rate: 500
+      - Item: Headlamp
+        Rate: 40
+      - Item: Abyss_Man_Card
+        Rate: 1
+        StealProtected: true
 #  - Id: 20604
 #    AegisName: ANGELGOLT
 #  - Id: 20605

+ 85 - 0
db/re/mob_skill_db.txt

@@ -13996,6 +13996,91 @@
 20700,G_BETA_SCISSORE_NG@NPC_CRITICALSLASH,attack,170,1,500,300,30000,yes,target,always,0,,,,,,9,
 20700,G_BETA_SCISSORE_NG@MG_FIREBOLT,attack,19,1,1000,300,5000,yes,target,always,0,,,,,,9,
 
+// ein_dun03
+20560,G_MINERAL_G@NPC_WINDATTACK,attack,187,1,10000,0,3000,yes,target,always,0,,,,,,0,
+20560,G_MINERAL_G@AL_HEAL,idle,28,5,3000,0,2000,yes,friend,myhpltmaxrate,90,,,,,,,
+20560,G_MINERAL_G@AL_HEAL,attack,28,5,3000,0,2000,yes,friend,myhpltmaxrate,90,,,,,,,
+20560,G_MINERAL_G@NPC_STONESKIN,attack,675,4,3000,0,30000,yes,self,myhpltmaxrate,50,,,,,,,
+20560,G_MINERAL_G@NPC_PIERCINGATT,attack,158,5,1000,300,5000,yes,target,always,0,,,,,,6,
+20592,POISONOUS@NPC_EMOTION,idle,197,1,1000,0,30000,yes,self,always,0,,,,,,1,
+20592,POISONOUS@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20592,POISONOUS@NPC_TELEKINESISATTACK,attack,191,4,3000,0,5000,yes,target,always,0,,,,,,,
+20592,POISONOUS@NPC_DEFENDER,attack,205,1,1500,0,300000,yes,self,longrangeattacked,0,,,,,,,
+20592,POISONOUS@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,31,
+20593,TOXIOUS@NPC_EMOTION,idle,197,1,1000,0,30000,yes,self,always,0,,,,,,1,
+20593,TOXIOUS@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20593,TOXIOUS@NPC_POISONATTACK,attack,188,4,3000,0,5000,yes,target,always,0,,,,,,,
+20593,TOXIOUS@NPC_DEFENDER,attack,205,1,1500,0,300000,yes,self,longrangeattacked,0,,,,,,,
+20593,TOXIOUS@NPC_MENTALBREAKER,attack,159,2,500,0,5000,yes,target,always,0,,,,,,,
+20594,MINERAL_G@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20594,MINERAL_G@NPC_WINDATTACK,attack,187,1,10000,300,3000,yes,target,always,0,,,,,,0,
+20594,MINERAL_G@AL_HEAL,attack,28,5,2000,0,3000,yes,friend,myhpltmaxrate,90,,,,,,,
+20594,MINERAL_G@NPC_STONESKIN,attack,675,4,3000,0,30000,yes,self,myhpltmaxrate,50,,,,,,,
+20594,MINERAL_G@NPC_KEEPING,attack,201,1,500,0,5000,no,self,myhpltmaxrate,10,,,,,,23,
+20594,MINERAL_G@MG_COLDBOLT,attack,14,5,1000,500,5000,yes,target,always,0,,,,,,21,
+20595,MINERAL_R@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20595,MINERAL_R@NPC_FIREATTACK,attack,186,1,10000,300,3000,yes,target,always,0,,,,,,0,
+20595,MINERAL_R@AL_HEAL,attack,28,5,2000,0,3000,yes,friend,myhpltmaxrate,90,,,,,,,
+20595,MINERAL_R@NPC_STONESKIN,attack,675,4,3000,0,30000,yes,self,myhpltmaxrate,50,,,,,,,
+20595,MINERAL_R@NPC_KEEPING,attack,201,1,500,0,5000,no,self,myhpltmaxrate,10,,,,,,23,
+20595,MINERAL_R@MG_FIREBOLT,attack,19,5,1000,500,5000,yes,target,always,0,,,,,,21,
+20596,MINERAL_W@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20596,MINERAL_W@NPC_HOLYATTACK,attack,189,1,10000,300,3000,yes,target,always,0,,,,,,0,
+20596,MINERAL_W@AL_HEAL,attack,28,5,2000,0,3000,yes,friend,myhpltmaxrate,90,,,,,,,
+20596,MINERAL_W@NPC_STONESKIN,attack,675,4,3000,0,30000,yes,self,myhpltmaxrate,50,,,,,,,
+20596,MINERAL_W@NPC_KEEPING,attack,201,1,500,0,5000,no,self,myhpltmaxrate,10,,,,,,23,
+20596,MINERAL_W@MG_LIGHTNINGBOLT,attack,20,5,1000,500,5000,yes,target,always,0,,,,,,21,
+20597,MINERAL_P@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20597,MINERAL_P@NPC_DARKNESSATTACK,attack,190,1,10000,300,3000,yes,target,always,0,,,,,,0,
+20597,MINERAL_P@AL_HEAL,attack,28,5,2000,0,3000,yes,friend,myhpltmaxrate,90,,,,,,,
+20597,MINERAL_P@NPC_STONESKIN,attack,675,4,3000,0,30000,yes,self,myhpltmaxrate,50,,,,,,,
+20597,MINERAL_P@NPC_KEEPING,attack,201,1,500,0,5000,no,self,myhpltmaxrate,10,,,,,,23,
+20597,MINERAL_P@NPC_DARKSTRIKE,attack,340,5,1000,500,5000,yes,target,always,0,,,,,,21,
+20598,JEWELIANT@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20598,JEWELIANT@NPC_STONESKIN,attack,675,4,3000,0,30000,yes,self,myhpltmaxrate,40,,,,,,,
+20598,JEWELIANT@MO_BODYRELOCATION,attack,264,1,100,0,300000,no,target,always,0,,,,,,,
+20598,JEWELIANT@NPC_CURSEATTACK,attack,181,2,500,0,5000,no,target,always,0,,,,,,,
+20600,JEWEL@NPC_SUMMONSLAVE,attack,196,1,10000,2000,5000,no,self,slavele,1,20560,20560,,,,,
+20600,JEWEL@NPC_SUMMONSLAVE,idle,196,1,10000,2000,5000,no,self,slavele,1,20560,20560,,,,,
+20600,JEWEL@NPC_SUMMONSLAVE,chase,196,1,10000,2000,5000,no,self,slavele,1,20560,20560,,,,,
+20600,JEWEL@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+20600,JEWEL@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+20600,JEWEL@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+20600,JEWEL@AL_TELEPORT,idle,26,1,1000,1000,10000,yes,self,always,0,,,,,,,
+20600,JEWEL@AL_TELEPORT,chase,26,1,1000,1000,10000,yes,self,always,0,,,,,,,
+20600,JEWEL@AL_TELEPORT,attack,26,1,1000,1000,10000,yes,self,always,0,,,,,,,
+20600,JEWEL@AL_HEAL,idle,28,9,10000,1000,10000,yes,friend,always,0,,,,,,,
+20600,JEWEL@AL_HEAL,chase,28,9,10000,1000,10000,yes,friend,always,0,,,,,,,
+20600,JEWEL@AL_HEAL,attack,28,9,10000,1000,10000,yes,friend,always,0,,,,,,,
+20600,JEWEL@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,0,,,,,,,
+20600,JEWEL@CR_AUTOGUARD,attack,249,5,2000,0,300000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_SUMMONSLAVE,attack,196,1,10000,2000,5000,no,self,slavele,1,20599,20599,20599,,,,
+20601,JUNGOLIANT@NPC_SUMMONSLAVE,idle,196,1,10000,2000,5000,no,self,slavele,1,20599,20599,20599,,,,
+20601,JUNGOLIANT@NPC_SUMMONSLAVE,chase,196,1,10000,2000,5000,no,self,slavele,1,20599,20599,20599,,,,
+20601,JUNGOLIANT@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,0,,,,,,,
+20601,JUNGOLIANT@NPC_POWERUP,chase,349,4,4000,0,30000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_HELMBRAKE,attack,345,9,2000,300,120000,no,target,always,0,,,,,,6,
+20601,JUNGOLIANT@NPC_ACIDBREATH,chase,657,5,3000,500,60000,no,target,always,0,,,,,,11,
+20601,JUNGOLIANT@NPC_POISONATTACK,chase,188,1,1000,500,90000,no,target,always,0,,,,,,44,
+20601,JUNGOLIANT@NPC_AGIUP,attack,350,5,4000,0,30000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_AGIUP,chase,350,5,2000,0,30000,yes,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_CRITICALWOUND,attack,673,4,2000,0,3000,no,target,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_WIDECURSE,attack,677,3,2000,0,20000,no,self,always,0,,,,,,,
+20601,JUNGOLIANT@NPC_EARTHQUAKE,attack,653,10,2000,2000,30000,no,self,always,0,,,,,,53,
+20601,JUNGOLIANT@NPC_DEFENDER,attack,205,1,10000,0,20000,yes,self,myhpltmaxrate,40,,,,,,,
+20602,PORCELLIO_W@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,casttargeted,0,,,,,,0,
+20602,PORCELLIO_W@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20602,PORCELLIO_W@TF_HIDING,idle,51,1,2000,400,5000,no,self,always,0,,,,,,,
+20602,PORCELLIO_W@NPC_GROUNDATTACK,attack,185,4,3000,0,5000,yes,target,always,0,,,,,,,
+20602,PORCELLIO_W@NPC_WIDESOULDRAIN,attack,680,4,500,0,5000,no,self,always,0,,,,,,42,
+20603,ABYSSMAN@AL_TELEPORT,chase,26,5,7000,0,10000,yes,self,mobnearbygt,19,,,,,,,
+20603,ABYSSMAN@MG_SIGHT,idle,10,1,2000,0,10000,yes,self,always,0,,,,,,,
+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,
+
 // 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,,,,,,,

+ 37 - 4
db/re/quest_db.yml

@@ -5141,20 +5141,53 @@ Body:
   - Id: 7868
     Title: Mercenary vs Mercenary - Waiting
     TimeLimit: 4h
+  - Id: 7879
+    Title: New Poison Research
+    Targets:
+      - Mob: POISONOUS
+        Count: 20
+      - Mob: TOXIOUS
+        Count: 20
   - Id: 7880
-    Title: New toxic gas research - Standby
+    Title: New Poison Research - Standby
     TimeLimit: 4h
+  - Id: 7881
+    Title: Special Mineral Research 1
+    Targets:
+      - Mob: MINERAL_G
+        Count: 20
+      - Mob: MINERAL_R
+        Count: 20
   - Id: 7882
-    Title: Special mineral research 1 - Waiting
+    Title: Special Mineral Research 1 - Standby
     TimeLimit: 4h
+  - Id: 7883
+    Title: Special Mineral Research 2
+    Targets:
+      - Mob: MINERAL_W
+        Count: 20
+      - Mob: MINERAL_P
+        Count: 20
   - Id: 7884
-    Title: Special mineral research 2 - Waiting
+    Title: Special Mineral Research 2 - Standby
     TimeLimit: 4h
+  - Id: 7885
+    Title: Abyssman Research
+    Targets:
+      - Mob: ABYSSMAN
+        Count: 10
   - Id: 7886
     Title: Abyssman Research - Waiting
     TimeLimit: 4h
+  - Id: 7887
+    Title: Mineworm Research
+    Targets:
+      - Mob: JEWELIANT
+        Count: 10
+      - Mob: PORCELLIO_W
+        Count: 10
   - Id: 7888
-    Title: Gwangin bug research - Waiting
+    Title: Mineworm Research - Standby
     TimeLimit: 4h
   - Id: 7890
     Title: X century XX gold-waiting

+ 1 - 0
npc/re/merchants/barters.yml

@@ -58,3 +58,4 @@ Footer:
   - Path: npc/re/merchants/barters/cashmall.yml
   - Path: npc/re/merchants/barters/rgsr_in.yml
   - Path: npc/re/merchants/barters/enchan_illusion_16_2.yml
+  - Path: npc/re/merchants/barters/quests_exp_175.yml

+ 86 - 0
npc/re/merchants/barters/quests_exp_175.yml

@@ -0,0 +1,86 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2022 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Barter Database
+###########################################################################
+#
+# Barter Settings
+#
+###########################################################################
+#  - Name               NPC name.
+#    Map                Map name. (Default: not on a map)
+#    X                  Map x coordinate. (Default: 0)
+#    Y                  Map y coordinate. (Default: 0)
+#    Direction          Direction the NPC is looking. (Default: North)
+#    Sprite             Sprite name of the NPC. (Default: FakeNpc)
+#    Items:             List of sold items.
+#      - Index          Index of the item inside the shop. (0-...)
+#                       Maximum index depends on client.
+#        Item           Aegis name of the item.
+#        Stock          Amount of item in stock. 0 means unlimited. (Default: 0)
+#        Zeny           Cost of them item in Zeny. (Default: 0)
+#        RequiredItems: List of required items (Optional)
+#          - Index      Index of the required item. (0-4)
+#            Item       Aegis name of required item.
+#            Amount     Amount of required item. (Default: 1)
+#            Refine     Refine level of required item. (Default: 0)
+###########################################################################
+
+Header:
+  Type: BARTER_DB
+  Version: 1
+
+Body:
+  - Name: barter_ein_dun03
+    Items:
+      - Index: 0
+        Item: Ein_SAFETY_PENDR
+        RequiredItems:
+          - Index: 0
+            Item: Ein_DYNITE
+            Amount: 75
+      - Index: 1
+        Item: Ein_SAFETY_PENDL
+        RequiredItems:
+          - Index: 0
+            Item: Ein_DYNITE
+            Amount: 75
+      - Index: 2
+        Item: Ein_SAFETY_EPAULR
+        RequiredItems:
+          - Index: 0
+            Item: Ein_DYNITE
+            Amount: 75
+      - Index: 3
+        Item: Ein_SAFETY_EPAULL
+        RequiredItems:
+          - Index: 0
+            Item: Ein_DYNITE
+            Amount: 75
+      - Index: 4
+        Item: Ein_Ddbox2
+        RequiredItems:
+          - Index: 0
+            Item: Ein_DYNITE
+            Amount: 30
+      - Index: 5
+        Item: Ein_Ddbox
+        RequiredItems:
+          - Index: 0
+            Item: Ein_DYNITE
+            Amount: 30

+ 89 - 0
npc/re/merchants/quests_exp_175.txt

@@ -0,0 +1,89 @@
+//===== rAthena Script =======================================
+//= Merchants from new dungeons for Level 175
+//===== Description: =========================================
+//= [Walkthrough Conversion]
+//--- Merchants related to new dungeons.
+//===== Changelog: ===========================================
+//= 1.0 Initial release of Einbech Dungeon 3 merchants. [Capuche]
+//============================================================
+
+einbech,149,257,4	script	Site manager Elmen#extdq0	4_TOWER_16,{
+	if (checkweight(25814,100) == 0 || checkweight(1201,1) == 0 || (MaxWeight - Weight) < 10000) {
+		mes "- You cannot proceed because you have too many items. -";
+		close;
+	}
+	mes "[Elmen]";
+	mes "Hello. Adventurer.";
+	mes "If you're here to purchase Dynite mining equipment or refine ore into Dynite, you've come to the right place.";
+	next;
+	switch( select( "Dynite Refinement", "Dynite Shop", "Dynite Equipment Exchange" ) ) {
+	case 1:
+		npctalk "Elmen: You can refine up to 100 Dynite at a time. The machine is small.", "", bc_self;
+		mes "[Elmen]";
+		mes "" + mesitemlink(25814) + " Refined Ore.";
+		mes "" + mesitemlink(25809) + " ^777777(currently " + countitem(25809) + ")^000000";
+		mes "" + mesitemlink(25810) + " ^777777(currently " + countitem(25810) + ")^000000";
+		mes "" + mesitemlink(25811) + " ^777777(currently " + countitem(25811) + ")^000000";
+		mes "" + mesitemlink(25812) + " ^777777(currently " + countitem(25812) + ")^000000";
+		mes "" + mesitemlink(25813) + " ^777777(currently " + countitem(25813) + ")^000000";
+		mes "You need one each of the five types of ore.";
+		next;
+		input .@val;
+		if (.@val > 100) {
+			mes "[Elmen]";
+			mes "I'm sorry. Adventurer.";
+			mes "Dynite Refinement can only be refined up to 100 at a time? The machine is small, so there is no help. Please understand.";
+			close;
+		}
+		if (.@val == 0) {
+			mes "[Elmen]";
+			mes "Cancel?";
+			mes "If you need refinement of the Dynite, please find it anytime. There is no one who can do it without me.";
+			close;
+		}
+		if (countitem(25809) < .@val || countitem(25810) < .@val || countitem(25811) < .@val || countitem(25812) < .@val || countitem(25813) < .@val) {
+			mes "[Elmen]";
+			mes "Hey! This makes it difficult for each other, don't you run out of materials needed for refining? The materials!";
+			close;
+		}
+		specialeffect EF_REPAIRWEAPON;
+		progressbar_npc "FFFF00",1;
+		delitem 25809,.@val;	// Ein_REDIUM
+		delitem 25810,.@val;	// Ein_RINDIUM
+		delitem 25811,.@val;	// Ein_ODIUM
+		delitem 25812,.@val;	// Ein_PURDIUM
+		delitem 25813,.@val;	// Ein_WHIDIUM
+		getitem 25814,.@val;	// Ein_DYNITE
+		mes "[Elmen]";
+		mes "" + .@val + " Dynite have been refined. It's perfect today!";
+		close;
+	case 2:
+		mes "[Elmen]";
+		mes "There are various accessories and modification permits. Look carefully at what you want before buying.";
+		close2;
+		callshop "barter_ein_dun03";
+		end;
+	case 3:
+		mes "[Elmen]";
+		mes "I can exchange the equipment with the Dynite, but it's already in a tightly sealed box.";
+		mes "Give me 50 ^4d4dffDynites^000000 and I will open a ^4d4dffweapon box^000000 for you.";
+		next;
+		mes "[Elmen]";
+		mes "I don't know what will come out, but the quality is good. Would you like to open it?";
+		next;
+		if (select( "Close your eyes and exchange.", "Do not exchange." ) == 2) {
+			mes "[Elmen]";
+			mes "Kee, this is a waste, it was a good deal.";
+			close;
+		}
+		if (countitem(25814) < 50) {
+			mes "[Elmen]";
+			mes "You don't have enough Dynite friends.";
+			mes "I don't know what's going to come out, so it's hard to go anywhere and get this kind of equipment at this price.";
+			close;
+		}
+		// unknown text
+		getgroupitem(IG_EIN_1HITEMBOX);
+		end;
+	}
+}

+ 15 - 0
npc/re/mobs/dungeons/ein_dun.txt

@@ -34,3 +34,18 @@ ein_dun02,0,0	monster	Obsidian	1615,40,5000
 ein_dun02,0,0	monster	Old Stove	1617,30,5000
 ein_dun02,0,0	monster	Teddy Bear	1622,30,5000
 ein_dun02,0,0,0,0	boss_monster	RSX-0806	1623,1,7500000,600000,0
+
+//==================================================
+// ein_dun03 - Mine Dungeon
+//==================================================
+ein_dun03	monster	Poisonous	20592,35
+ein_dun03	monster	Toxious	20593,35
+ein_dun03	monster	Green Mineral	20594,40
+ein_dun03	monster	Red Mineral	20595,40
+ein_dun03	monster	White Mineral	20596,40
+ein_dun03	monster	Purple Mineral	20597,40
+ein_dun03	monster	Abyssman	20603,20
+ein_dun03	monster	White Porcellio	20602,22
+ein_dun03	monster	Jeweliant	20598,20
+ein_dun03	monster	Jewel	20600,3
+ein_dun03	boss_monster	Jungoliant	20601,1,7200000,600000,0

+ 317 - 0
npc/re/quests/quests_exp_175.txt

@@ -7,6 +7,7 @@
 //= 1.0 Initial release of Glast Heim Abyss quests. [OptimusM]
 //= 1.1 Corrections here and there. [Capuche]
 //= 1.2 Initial release of Magma Dungeon 3 quests. [Capuche]
+//= 1.3 Initial release of Einbech Dungeon 3 quests. [Capuche]
 //============================================================
 
 glast_01,191,273,3	script	Magician Nillem#glabyss01	4_M_JOB_WIZARD,{
@@ -601,3 +602,319 @@ OnInit:
 	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8559) == 2 && isbegin_quest(8561) == 0 && checkquest(8560,PLAYTIME) == -1" );
 	end;
 }
+
+
+// ein_dun03
+einbech,143,244,3	script	Apprentice Researcher Sally#extdq01	4_F_LGTGIRL,{
+	if (BaseLevel < 180) {
+		mes "[Sally]";
+		mes "Hello, adventurer!";
+		mes "Please introduce me to a talented adventurer!";
+		mes "A very, very important matter on which my job is at stake..!";
+		next;
+		mes "^4d4dffThere are quests over 180 Lv.^000000";
+		close;
+	}
+	if (checkquest(7879,HUNTING) == 2) {
+		mes "[Sally]";
+		mes "We were able to collect enough data for " + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + "!";
+		erasequest 7879;
+		setquest 7880;
+		getexp 27512240,19258560;
+		next;
+	}
+	if (checkquest(7881,HUNTING) == 2) {
+		mes "[Sally]";
+		mes "I have collected enough data for " + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + "!";
+		erasequest 7881;
+		setquest 7882;
+		getexp 27836640,19485600;
+		next;
+	}
+	if (checkquest(7883,HUNTING) == 2) {
+		mes "[Sally]";
+		mes "The data for " + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + " are as follows. It was very helpful.";
+		erasequest 7883;
+		setquest 7884;
+		getexp 27838400,19486880;
+		next;
+	}
+	if (checkquest(7885,HUNTING) == 2) {
+		mes "[Sally]";
+		mes "" + getmonsterinfo("ABYSSMAN", MOB_NAME) + "'s data is always amazing.";
+		erasequest 7885;
+		setquest 7886;
+		getexp 6938800,4857160;
+		next;
+	}
+	if (checkquest(7887,HUNTING) == 2) {
+		mes "[Sally]";
+		mes "You have successfully obtained " + getmonsterinfo("JEWELIANT", MOB_NAME) + " and " + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " data!";
+		erasequest 7887;
+		setquest 7888;
+		getexp 13854240,9697960;
+		next;
+	}
+	mes "[Sally]";
+	mes "When will this poor apprenticeship end?";
+	next;
+	mes "[Sally]";
+	mes "I am desperately looking for help from a talented adventurer.";
+	mes "Just like you!";
+	mes "Would you like to help protect this poor trainee researcher's job?";
+	next;
+	switch( select( "New Poison Research", "Special Mineral Research 1", "Special Mineral Research 2", "Abyssman Research", "Mineworm Research", "Why are you doing this?" ) ) {
+	case 1:
+		switch( checkquest(7880,PLAYTIME) ) {
+		case -1:
+			break;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "Um, don't overdo it.";
+			mes "Opportunities always come.";
+			close;
+		case 2:
+			erasequest 7880;
+			break;
+		}
+		switch( checkquest(7879,HUNTING) ) {
+		case -1:
+			mes "[Sally]";
+			mes "I need data to research the poison gas monster newly discovered in the Einbech Mine Dungeon.";
+			mes "It is difficult to deal with the monsters occupying the mines with the manpower here, so we have to deal with both.";
+			next;
+			mes "[Sally]";
+			mes "I'm collecting data while the adventurer is fighting ^4d4dff" + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + "^000000.";
+			mes "Isn't it a good deal?";
+			next;
+			if (select( "Received a request", "Rejected" ) == 2) {
+				mes "[Sally]";
+				mes "It's ok.";
+				mes "The world is wide and there are many adventurers.";
+				close;
+			}
+			mes "[Sally]";
+			mes "Then please take care of the ^4d4dff" + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + "^000000 that appear on the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
+			setquest 7879;
+			close;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "" + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + " are here on the 3rd floor of the Einbech Mine Dungeon.";
+			mes "They're hard for ordinary people like me to deal with, so I'll have to hide and watch you do the work then collect data.";
+			close;
+		case 2:
+			end;
+		}
+		end;
+	case 2:
+		switch( checkquest(7882,PLAYTIME) ) {
+		case -1:
+			break;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "Um, don't overdo it.";
+			mes "Opportunities always come.";
+			close;
+		case 2:
+			erasequest 7882;
+			break;
+		}
+		switch( checkquest(7881,HUNTING) ) {
+		case -1:
+			mes "[Sally]";
+			mes "There are several types of Minerals. The Minerals we want to investigate this time are ^4d4dff" + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + "^000000.";
+			mes "Let's collect the data needed for research while controlling the number of individuals!";
+			next;
+			if (select( "Received a request", "Rejected" ) == 2) {
+				mes "[Sally]";
+				mes "It's ok.";
+				mes "The world is wide and there are many adventurers.";
+				close;
+			}
+			mes "[Sally]";
+			mes "Then please take care of the ^4d4dff" + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + "^000000 that appear on the ^4d4dff3rd floor of the Einbech mine dungeon^000000!";
+			setquest 7881;
+			close;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "" + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + " are found here on the 3rd floor of the Einbech Mine Dungeon.";
+			mes "Be careful, they are dangerous.";
+			close;
+		case 2:
+			end;
+		}
+		end;
+	case 3:
+		switch( checkquest(7884,PLAYTIME) ) {
+		case -1:
+			break;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "Um, don't overdo it.";
+			mes "Opportunities always come.";
+			close;
+		case 2:
+			erasequest 7884;
+			break;
+		}
+		switch( checkquest(7883,HUNTING) ) {
+		case -1:
+			mes "[Sally]";
+			mes "There are several types of Minerals. The Minerals we want to investigate this time are ^4d4dff" + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + "s^000000.";
+			mes "Let's collect the data needed for research while controlling the number of individuals!";
+			next;
+			if (select( "Received a request", "Rejected" ) == 2) {
+				mes "[Sally]";
+				mes "It's ok.";
+				mes "The world is wide and there are many adventurers.";
+				close;
+			}
+			mes "[Sally]";
+			mes "Then please take care of the ^4d4dff" + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + "^000000 that appear on the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
+			setquest 7883;
+			close;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "" + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + " are found here on the 3rd floor of the Einbech Mine Dungeon.";
+			mes "Be careful, they are dangerous.";
+			close;
+		case 2:
+			end;
+		}
+		end;
+	case 4:
+		switch( checkquest(7886,PLAYTIME) ) {
+		case -1:
+			break;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "Um, don't overdo it.";
+			mes "Opportunities always come.";
+			close;
+		case 2:
+			erasequest 7886;
+			break;
+		}
+		switch( checkquest(7885,HUNTING) ) {
+		case -1:
+			mes "[Sally]";
+			mes "If you look into an abyss, it is said that the abyss is eaten, not meowed.";
+			mes "I think the popular name " + getmonsterinfo("ABYSSMAN", MOB_NAME) + " is also like that.";
+			mes "So we need data from ^4d4dff" + getmonsterinfo("ABYSSMAN", MOB_NAME) + "^000000.";
+			next;
+			if (select( "Received a request", "Rejected" ) == 2) {
+				mes "[Sally]";
+				mes "It's ok.";
+				mes "The world is wide and there are many adventurers.";
+				close;
+			}
+			mes "[Sally]";
+			mes "Then, please take care of the ^4d4dff" + getmonsterinfo("ABYSSMAN", MOB_NAME) + "^000000 who appear in the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
+			setquest 7885;
+			close;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "The " + getmonsterinfo("ABYSSMAN", MOB_NAME) + " are here on the 3rd floor of the Einbech Mine Dungeon.";
+			mes "Be careful, they are dangerous.";
+			close;
+		case 2:
+			end;
+		}
+		end;
+	case 5:
+		switch( checkquest(7888,PLAYTIME) ) {
+		case -1:
+			break;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "Um, don't overdo it.";
+			mes "Opportunities always come.";
+			close;
+		case 2:
+			erasequest 7888;
+			break;
+		}
+		switch( checkquest(7887,HUNTING) ) {
+		case -1:
+			mes "[Sally]";
+			mes "Specialized insects live in dark places like dungeons.";
+			mes "The data to be collected this time are ^4d4dff" + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " and " + getmonsterinfo("JEWELIANT", MOB_NAME) + "^000000, also known as Mineworms.";
+			mes "Is it very different from the normal Porcellio?";
+			next;
+			if (select( "Received a request", "Rejected" ) == 2) {
+				mes "[Sally]";
+				mes "It's ok.";
+				mes "The world is wide and there are many adventurers.";
+				close;
+			}
+			mes "[Sally]";
+			mes "Then, please take care of the ^4d4dff" + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " and " + getmonsterinfo("JEWELIANT", MOB_NAME) + "^000000 who appear in the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
+			setquest 7887;
+			close;
+		case 0:
+		case 1:
+			mes "[Sally]";
+			mes "" + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " and " + getmonsterinfo("JEWELIANT", MOB_NAME) + " are here on the 3rd floor of the Einbech Mine Dungeon.";
+			mes "Be careful, they are dangerous.";
+			close;
+		case 2:
+			end;
+		}
+		end;
+	case 6:
+		mes "[Sally]";
+		mes "Um? That's to be a full-time employee!";
+		mes "Not long ago, I joined Regenschrum as a trainee researcher, but this is what I was appointed for.";
+		mes "It's about collecting data on mining monsters, so my evaluation depends on that.";
+		next;
+		mes "[Sally]";
+		mes "And there were constant complaints from the headquarters asking what to do with the mine monsters.";
+		mes "While collecting data, it also regulates the number of individuals. This evaluation is a win-win, a win-win!";
+		close;
+	}
+	end;
+
+OnInit:
+	// completed
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7879,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7881,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7883,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7885,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7887,HUNTING) == 2" );
+
+	// timeout
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7880,PLAYTIME) == 2" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7882,PLAYTIME) == 2" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7884,PLAYTIME) == 2" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7886,PLAYTIME) == 2" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7888,PLAYTIME) == 2" );
+
+	// not started
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7879) == 0 && checkquest(7880,PLAYTIME) == -1" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7881) == 0 && checkquest(7882,PLAYTIME) == -1" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7883) == 0 && checkquest(7884,PLAYTIME) == -1" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7885) == 0 && checkquest(7886,PLAYTIME) == -1" );
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7887) == 0 && checkquest(7888,PLAYTIME) == -1" );
+	end;
+}
+
+einbech,156,243,3	script	Need help#exsk	1_M_SMITH,{
+	mes "[Olive]";
+	mes "The orders keep pouring in, and everyone who works there is running away... It's a big deal, a big deal.";
+	close;
+}
+
+einbech,154,244,5	script	Need help#exsk_	4_F_JOB_BLACKSMITH,{
+	mes "[Atri]";
+	mes "After all, it would be faster for me to learn the sword! I've only been picking a pickaxe for 10 years, so I'll learn it soon.";
+	close;
+}

+ 1 - 0
npc/re/scripts_athena.conf

@@ -157,6 +157,7 @@ npc: npc/re/merchants/nightmare_biolab.txt
 npc: npc/re/merchants/novice_vending_machine.txt
 npc: npc/re/merchants/OldGlastHeim_merchants.txt
 npc: npc/re/merchants/pet_trader.txt
+npc: npc/re/merchants/quests_exp_175.txt
 npc: npc/re/merchants/quivers.txt
 npc: npc/re/merchants/refine.txt
 npc: npc/re/merchants/renters.txt

+ 1 - 0
npc/re/scripts_warps.conf

@@ -24,6 +24,7 @@ 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
 npc: npc/re/warps/dungeons/harboro2.txt
 npc: npc/re/warps/dungeons/iz_dun.txt
 npc: npc/re/warps/dungeons/mag_dun.txt

+ 17 - 0
npc/re/warps/dungeons/ein_dun.txt

@@ -0,0 +1,17 @@
+//===== rAthena Script =======================================
+//= Einbroch Warp Script
+//===== Changelogs: ==========================================
+//= 1.0 First version. [Capuche]
+//============================================================
+
+ein_dun02,16,250,0	script	enter_ein_dun03	WARPNPC,1,1,{
+	end;
+OnTouch:
+	if (BaseLevel < 180) {
+		unittalk getcharid(3), "" + strcharinfo(0) + " : I think the next area needs a bit more training...", bc_self;
+		end;
+	}
+	warp "ein_dun03",268,279;
+	end;
+}
+ein_dun03,268,283,0	warp2	out_to_dun02	1,1,ein_dun02,24,250