summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-04-04 23:31:28 -0300
committerJesusaves <cpntb1@ymail.com>2020-04-04 23:31:28 -0300
commit4606c3a0fe0196fcb54277577b8b869a828c24a9 (patch)
tree014258295ea99a70232ce915e8d6b8ed8bc33c72
parent3d3710863ab694839d7dcb8f1af47fdbc571647a (diff)
parent08b256657e21adff546d4c366335d0cd8f216249 (diff)
downloadserverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.tar.gz
serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.tar.bz2
serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.tar.xz
serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.zip
Merge branch 'master' into jesusalva/serena
-rw-r--r--conf/atcommand.conf2
-rw-r--r--conf/map/maps.conf1
-rw-r--r--db/constants.conf2
-rw-r--r--db/map_index.txt79
-rw-r--r--db/re/item_db.conf1215
-rw-r--r--db/re/job_db.conf10
-rw-r--r--db/re/mob_db.conf213
-rw-r--r--db/re/mob_skill_db.conf24
-rw-r--r--db/re/skill_db.conf10
-rw-r--r--db/re/skill_tree.conf5
-rw-r--r--maps/re/008-1-1.mcachebin2015 -> 2022 bytes
-rw-r--r--maps/re/008-1-2.mcachebin0 -> 5336 bytes
-rw-r--r--maps/re/008-1.mcachebin6901 -> 6901 bytes
-rw-r--r--maps/re/008-3-0.mcachebin2603 -> 2815 bytes
-rw-r--r--maps/re/008-3-1.mcachebin192 -> 216 bytes
-rw-r--r--npc/000-2-1/peter.txt1
-rw-r--r--npc/000-2-2/ratto.txt7
-rw-r--r--npc/001-2-22/peter.txt1
-rw-r--r--npc/001-2-23/ratto.txt5
-rw-r--r--npc/001-2-32/_import.txt2
-rw-r--r--npc/001-2-32/_warps.txt2
-rw-r--r--npc/001-2-34/_import.txt2
-rw-r--r--npc/001-2-34/_warps.txt2
-rw-r--r--npc/001-2-35/_import.txt2
-rw-r--r--npc/001-2-35/_warps.txt2
-rw-r--r--npc/001-2-36/_import.txt2
-rw-r--r--npc/001-2-36/_warps.txt2
-rw-r--r--npc/001-2-37/_import.txt2
-rw-r--r--npc/001-2-37/_savepoints.txt2
-rw-r--r--npc/001-2-37/_warps.txt2
-rw-r--r--npc/001-2-38/_import.txt2
-rw-r--r--npc/001-2-38/_savepoints.txt2
-rw-r--r--npc/001-2-38/_warps.txt2
-rw-r--r--npc/001-2-39/_import.txt2
-rw-r--r--npc/001-2-39/_warps.txt2
-rw-r--r--npc/008-1-1/_import.txt2
-rw-r--r--npc/008-1-1/_mobs.txt10
-rw-r--r--npc/008-1-1/_warps.txt1
-rw-r--r--npc/008-1-1/morcant.txt20
-rw-r--r--npc/008-1-1/sign.txt24
-rw-r--r--npc/008-1-2/_import.txt4
-rw-r--r--npc/008-1-2/_warps.txt4
-rw-r--r--npc/008-1-2/sign.txt34
-rw-r--r--npc/008-1/_import.txt1
-rw-r--r--npc/008-1/_warps.txt1
-rw-r--r--npc/008-1/milly.txt11
-rw-r--r--npc/008-1/sign.txt50
-rw-r--r--npc/008-2-32/_import.txt1
-rw-r--r--npc/008-2-32/thamas.txt20
-rw-r--r--npc/008-3-0/_mobs.txt4
-rw-r--r--npc/_anchors.txt1
-rw-r--r--npc/_import.txt1
-rw-r--r--npc/commands/mobinfo.txt29
-rw-r--r--npc/functions/global_event_handler.txt2
-rw-r--r--npc/scripts.conf1
55 files changed, 1615 insertions, 213 deletions
diff --git a/conf/atcommand.conf b/conf/atcommand.conf
index eede6399..cceabb34 100644
--- a/conf/atcommand.conf
+++ b/conf/atcommand.conf
@@ -20,7 +20,7 @@ Format is
*/
aliases: {
- mobinfo: ["monsterinfo", "mi"]
+ mobinfo: ["mi"]
iteminfo: ["ii"]
time: ["date", "serverdate", "servertime"]
tonpc: ["npc"]
diff --git a/conf/map/maps.conf b/conf/map/maps.conf
index a8e041a0..feae4da0 100644
--- a/conf/map/maps.conf
+++ b/conf/map/maps.conf
@@ -58,6 +58,7 @@ map_list: (
"001-3-1",
"001-3-2",
"008-1-1",
+ "008-1-2",
"008-1",
"008-2-0",
"008-2-1",
diff --git a/db/constants.conf b/db/constants.conf
index 1dcca8cb..51b1c215 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -4040,6 +4040,8 @@ constants_db: {
NPC_MIKHAIL: 185
NPC_TROUPE_LEADER: 186
NPC_SIMON: 187
+ NPC_MORCANT: 188
+ NPC_THAMAS: 189
NPC_CONFUSED_TREE: 400
NPC_ALIGE: 401
diff --git a/db/map_index.txt b/db/map_index.txt
index 7243548d..3bac58a3 100644
--- a/db/map_index.txt
+++ b/db/map_index.txt
@@ -55,42 +55,43 @@
001-3-1 55
001-3-2 56
008-1-1 57
-008-1 58
-008-2-0 59
-008-2-1 60
-008-2-10 61
-008-2-11 62
-008-2-12 63
-008-2-13 64
-008-2-14 65
-008-2-15 66
-008-2-16 67
-008-2-17 68
-008-2-18 69
-008-2-19 70
-008-2-2 71
-008-2-20 72
-008-2-21 73
-008-2-22 74
-008-2-23 75
-008-2-24 76
-008-2-25 77
-008-2-26 78
-008-2-27 79
-008-2-28 80
-008-2-29 81
-008-2-3 82
-008-2-30 83
-008-2-31 84
-008-2-32 85
-008-2-4 86
-008-2-5 87
-008-2-6 88
-008-2-7 89
-008-2-8 90
-008-2-9 91
-008-3-0 92
-008-3-1 93
-008-4-1 94
-test 95
-testbg 96
+008-1-2 58
+008-1 59
+008-2-0 60
+008-2-1 61
+008-2-10 62
+008-2-11 63
+008-2-12 64
+008-2-13 65
+008-2-14 66
+008-2-15 67
+008-2-16 68
+008-2-17 69
+008-2-18 70
+008-2-19 71
+008-2-2 72
+008-2-20 73
+008-2-21 74
+008-2-22 75
+008-2-23 76
+008-2-24 77
+008-2-25 78
+008-2-26 79
+008-2-27 80
+008-2-28 81
+008-2-29 82
+008-2-3 83
+008-2-30 84
+008-2-31 85
+008-2-32 86
+008-2-4 87
+008-2-5 88
+008-2-6 89
+008-2-7 90
+008-2-8 91
+008-2-9 92
+008-3-0 93
+008-3-1 94
+008-4-1 95
+test 96
+testbg 97
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 0fd984c4..858b4d25 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -34,97 +34,97 @@ item_db: (
************* Entry structure ************************************************
******************************************************************************
{
- // =================== Mandatory fields ===============================
- Id: ID (int)
- AegisName: "Aegis_Name" (string)
- Name: "Item Name" (string)
- // =================== Optional fields ================================
- Type: Item Type (string, defaults to "IT_ETC")
- Buy: Buy Price (int, defaults to Sell * 2)
- Sell: Sell Price (int, defaults to Buy / 2)
- Weight: Item Weight (int, defaults to 0)
- Atk: Attack (int, defaults to 0)
- Matk: Magical Attack (int, defaults to 0, ignored in pre-re)
- Def: Defense (int, defaults to 0)
- Range: Attack Range (int, defaults to 0)
- MinRange: Minimal Attack Range (int, defaults to 0)
- Slots: Slots (int, defaults to 0)
- Job: Job mask (int, defaults to all jobs = 0xFFFFFFFF)
- Upper: Upper mask (bitmask array, string or int, defaults to "ITEMUPPER_ALL")
- Gender: Gender (string, defaults to "SEX_ANY")
- Loc: Equip location (bitmask array, string or int, required value for equipment)
- WeaponLv: Weapon Level (int, defaults to 0)
- EquipLv: Equip required level (int, defaults to 0)
- EquipLv: [min, max] (alternative syntax with min / max level)
- Refine: Refineable (boolean, defaults to true)
- DisableOptions: true/false (boolean, defaults to false !!for equipments only!!) [Smokexyz]
- Subtype: Item Subtype (int, defaults to 0)
- ViewSprite: Sprite view ID (int, defaults to 0)
- BindOnEquip: true/false (boolean, defaults to false)
- ForceSerial: true/false (boolean, defaults to false)
- BuyingStore: true/false (boolean, defaults to false)
- Delay: Delay to use item (int, defaults to 0)
- FloorLifeTime: Delay to remove item from ground (int, default flooritem_lifetime)
- KeepAfterUse: true/false (boolean, defaults to false)
- DropAnnounce: true/false (boolean, defaults to false)
- ShowDropEffect: true/false (boolean, defaults to false)
- DropEffectMode: Effect Type (int, default to 0)
- AllowPickup: true/false (boolean, defaults to true)
- Charm: true/false (boolean, defaults to false)
- MaxFloorOffset: [x, y] (int, defaults to 8)
- MaxFloorOffset: offset (int, defaults to 8)
- Identified: true/false (boolean, default to true)
- RequiredStr: required strength (int, default to 0)
- RequiredAgi: required agility (int, default to 0)
- RequiredVit: required vitality (int, default to 0)
- RequiredInt: required intellect (int, default to 0)
- RequiredDex: required dexterity (int, default to 0)
- RequiredLuk: required luck (int, default to 0)
- RequiredMaxHp: required max hp (int, default to 0)
- RequiredMaxSp: required max sp (int, default to 0)
- RequiredAtk: required attack (int, default to 0)
- RequiredMAtkMin: required minimal magic attack (int, default to 0)
- RequiredMAtkMax: required maximum magic attack (int, default to 0)
- RequiredDef: required defence (int, default to 0)
- RequiredMDef: required magic defence (int, default to 0)
- RequiredSkill: required skill (int, default to 0)
- UseEffect: effect if use/equip item success (int, default to -1)
- UseFailEffect: effect if use/equip item failed (int, default to -1)
- UnequipEffect: effect if unequip item success (int, default to -1)
- UnequipFailEffect: effect if unequip item failed (int, default to -1)
- Trade: { (defaults to no restrictions)
- override: GroupID (int, defaults to 100)
- nodrop: true/false (boolean, defaults to false)
- notrade: true/false (boolean, defaults to false)
- partneroverride: true/false (boolean, defaults to false)
- noselltonpc: true/false (boolean, defaults to false)
- nocart: true/false (boolean, defaults to false)
- nostorage: true/false (boolean, defaults to false)
- nogstorage: true/false (boolean, defaults to false)
- nomail: true/false (boolean, defaults to false)
- noauction: true/false (boolean, defaults to false)
- }
- Nouse: { (defaults to no restrictions)
- override: GroupID (int, defaults to 100)
- sitting: true/false (boolean, defaults to false)
- }
- Stack: [amount, type] (int, defaults to 0)
- Sprite: SpriteID (int, defaults to 0)
- Script: <"
- Script
- (it can be multi-line)
- ">
- OnEquipScript: <" OnEquip Script (can also be multi-line) ">
- OnUnequipScript: <" OnUnequip Script (can also be multi-line) ">
- OnDropScript: <" OnDrop Script (can also be multi-line) ">
- OnTakeScript: <" OnTake Script (can also be multi-line) ">
- OnInsertCardScript: <" OnInsert card Script (can also be multi-line) ">
- AllowCards: {
- idNUM: amount (NUM is id number, amount is amount)
- }
- AllowAmmo: {
- idNUM: something (NUM is id number)
- }
+ // =================== Mandatory fields ===============================
+ Id: ID (int)
+ AegisName: "Aegis_Name" (string)
+ Name: "Item Name" (string)
+ // =================== Optional fields ================================
+ Type: Item Type (string, defaults to "IT_ETC")
+ Buy: Buy Price (int, defaults to Sell * 2)
+ Sell: Sell Price (int, defaults to Buy / 2)
+ Weight: Item Weight (int, defaults to 0)
+ Atk: Attack (int, defaults to 0)
+ Matk: Magical Attack (int, defaults to 0, ignored in pre-re)
+ Def: Defense (int, defaults to 0)
+ Range: Attack Range (int, defaults to 0)
+ MinRange: Minimal Attack Range (int, defaults to 0)
+ Slots: Slots (int, defaults to 0)
+ Job: Job mask (int, defaults to all jobs = 0xFFFFFFFF)
+ Upper: Upper mask (bitmask array, string or int, defaults to "ITEMUPPER_ALL")
+ Gender: Gender (string, defaults to "SEX_ANY")
+ Loc: Equip location (bitmask array, string or int, required value for equipment)
+ WeaponLv: Weapon Level (int, defaults to 0)
+ EquipLv: Equip required level (int, defaults to 0)
+ EquipLv: [min, max] (alternative syntax with min / max level)
+ Refine: Refineable (boolean, defaults to true)
+ DisableOptions: true/false (boolean, defaults to false !!for equipments only!!) [Smokexyz]
+ Subtype: Item Subtype (int, defaults to 0)
+ ViewSprite: Sprite view ID (int, defaults to 0)
+ BindOnEquip: true/false (boolean, defaults to false)
+ ForceSerial: true/false (boolean, defaults to false)
+ BuyingStore: true/false (boolean, defaults to false)
+ Delay: Delay to use item (int, defaults to 0)
+ FloorLifeTime: Delay to remove item from ground (int, default flooritem_lifetime)
+ KeepAfterUse: true/false (boolean, defaults to false)
+ DropAnnounce: true/false (boolean, defaults to false)
+ ShowDropEffect: true/false (boolean, defaults to false)
+ DropEffectMode: Effect Type (int, default to 0)
+ AllowPickup: true/false (boolean, defaults to true)
+ Charm: true/false (boolean, defaults to false)
+ MaxFloorOffset: [x, y] (int, defaults to 8)
+ MaxFloorOffset: offset (int, defaults to 8)
+ Identified: true/false (boolean, default to true)
+ RequiredStr: required strength (int, default to 0)
+ RequiredAgi: required agility (int, default to 0)
+ RequiredVit: required vitality (int, default to 0)
+ RequiredInt: required intellect (int, default to 0)
+ RequiredDex: required dexterity (int, default to 0)
+ RequiredLuk: required luck (int, default to 0)
+ RequiredMaxHp: required max hp (int, default to 0)
+ RequiredMaxSp: required max sp (int, default to 0)
+ RequiredAtk: required attack (int, default to 0)
+ RequiredMAtkMin: required minimal magic attack (int, default to 0)
+ RequiredMAtkMax: required maximum magic attack (int, default to 0)
+ RequiredDef: required defence (int, default to 0)
+ RequiredMDef: required magic defence (int, default to 0)
+ RequiredSkill: required skill (int, default to 0)
+ UseEffect: effect if use/equip item success (int, default to -1)
+ UseFailEffect: effect if use/equip item failed (int, default to -1)
+ UnequipEffect: effect if unequip item success (int, default to -1)
+ UnequipFailEffect: effect if unequip item failed (int, default to -1)
+ Trade: { (defaults to no restrictions)
+ override: GroupID (int, defaults to 100)
+ nodrop: true/false (boolean, defaults to false)
+ notrade: true/false (boolean, defaults to false)
+ partneroverride: true/false (boolean, defaults to false)
+ noselltonpc: true/false (boolean, defaults to false)
+ nocart: true/false (boolean, defaults to false)
+ nostorage: true/false (boolean, defaults to false)
+ nogstorage: true/false (boolean, defaults to false)
+ nomail: true/false (boolean, defaults to false)
+ noauction: true/false (boolean, defaults to false)
+ }
+ Nouse: { (defaults to no restrictions)
+ override: GroupID (int, defaults to 100)
+ sitting: true/false (boolean, defaults to false)
+ }
+ Stack: [amount, type] (int, defaults to 0)
+ Sprite: SpriteID (int, defaults to 0)
+ Script: <"
+ Script
+ (it can be multi-line)
+ ">
+ OnEquipScript: <" OnEquip Script (can also be multi-line) ">
+ OnUnequipScript: <" OnUnequip Script (can also be multi-line) ">
+ OnDropScript: <" OnDrop Script (can also be multi-line) ">
+ OnTakeScript: <" OnTake Script (can also be multi-line) ">
+ OnInsertCardScript: <" OnInsert card Script (can also be multi-line) ">
+ AllowCards: {
+ idNUM: amount (NUM is id number, amount is amount)
+ }
+ AllowAmmo: {
+ idNUM: something (NUM is id number)
+ }
},
******************************************************************************/
@@ -429,7 +429,7 @@ item_db: (
nogstorage: true
nomail: true
}
- OnEquipScript: <"
+ OnEquipScript: <"
if (gettimetick(2) < COOKIE_COOLDOWN) {
unequip(EQI_HEAD_MID);
//dispbottom l("You need to wait @@ more before equipping this again.", FuzzyTime(COOKIE_COOLDOWN));
@@ -786,14 +786,14 @@ item_db: (
Sell: 0
Weight: 20
KeepAfterUse: true
- Trade: {
- notrade: true
- nodrop: true
- noselltonpc: true
- nogstorage: true
- nomail: true
- noauction: true
- }
+ Trade: {
+ notrade: true
+ nodrop: true
+ noselltonpc: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
Script: <"
doevent "#MasterBook::OnUse";
">
@@ -942,8 +942,8 @@ item_db: (
@type = 1;
if (rand(100) < 50) {
getmapxy(.@m$, .@x, .@y, 0);
- .@mobGID = monster(.@m$, .@x, .@y, "Maggot", Maggot, 1);
- unitattack(.@mobGID, getcharid(3));
+ .@mobGID = monster(.@m$, .@x, .@y, "Maggot", Maggot, 1);
+ unitattack(.@mobGID, getcharid(3));
}
doevent "rand_sc_heal::OnUse";
">
@@ -1124,35 +1124,35 @@ item_db: (
">
},
{
- Id: 611
- AegisName: "GrassSeeds"
- Name: "Grass Seeds"
- Type: "IT_USABLE"
- Buy: 200
- Sell: 35
- Weight: 3
- Delay: 500
- Script: <"
- if (!getmapxy(.@map$, .@x, .@y, 0)) {
- monster(.@map$, .@x, .@y, strmobinfo(1, CloverPatch), CloverPatch, 1);
- }
- ">
-},
-{
- Id: 612
- AegisName: "FlowerSeeds"
- Name: "Flower Seeds"
- Type: "IT_USABLE"
- Buy: 500
- Sell: 150
- Weight: 4
- Delay: 500
- Script: <"
- if (!getmapxy(.@map$, .@x, .@y, 0)) {
- .@mob=callfunc("any", YellowRose, BlueRose, RedRose);
- monster(.@map$, .@x, .@y, strmobinfo(1, .@mob), .@mob, 1);
- }
- ">
+ Id: 611
+ AegisName: "GrassSeeds"
+ Name: "Grass Seeds"
+ Type: "IT_USABLE"
+ Buy: 200
+ Sell: 35
+ Weight: 3
+ Delay: 500
+ Script: <"
+ if (!getmapxy(.@map$, .@x, .@y, 0)) {
+ monster(.@map$, .@x, .@y, strmobinfo(1, CloverPatch), CloverPatch, 1);
+ }
+ ">
+},
+{
+ Id: 612
+ AegisName: "FlowerSeeds"
+ Name: "Flower Seeds"
+ Type: "IT_USABLE"
+ Buy: 500
+ Sell: 150
+ Weight: 4
+ Delay: 500
+ Script: <"
+ if (!getmapxy(.@map$, .@x, .@y, 0)) {
+ .@mob=callfunc("any", YellowRose, BlueRose, RedRose);
+ monster(.@map$, .@x, .@y, strmobinfo(1, .@mob), .@mob, 1);
+ }
+ ">
},
{
Id: 613
@@ -1170,6 +1170,20 @@ item_db: (
dispbottom l("Yuck! I won't drink this!");
">
},
+{
+ Id: 614
+ AegisName: "SailorStew"
+ Name: "Sailor's Stew"
+ Type: "IT_USABLE"
+ Buy: 50000
+ Sell: 10
+ Weight: 650
+ Delay: 1000
+ Script: <"
+ sc_start SC_ATTHASTE_POTION1, 80000, 300; // These are totally placeholders. We want STR + 10 and VIT + 5 and max. HP + 2000 for three minutes.
+ sc_start SC_INCHITRATE, 80000, 300;
+ ">
+},
// Generic
{
@@ -1781,6 +1795,16 @@ item_db: (
Weight: 10
Slots: 0
},
+{
+ Id: 806
+ AegisName: "EmptyBowl"
+ Name: "Empty Bowl"
+ Type: "IT_ETC"
+ Buy: 50000
+ Sell: 5000
+ Weight: 150
+ Slots: 0
+},
// Necklaces
{
Id: 1000
@@ -2056,6 +2080,32 @@ item_db: (
ViewSprite: 1310
BindOnEquip: false
},
+{
+ Id: 1311
+ AegisName: "GoldenWarlordPlate"
+ Name: "Golden Warlord Plate"
+ Type: "IT_ARMOR"
+ Buy: 150000
+ Sell: 45000
+ Weight: 3500
+ Def: 65
+ Slots: 0
+ Loc: "EQP_HEAD_MID"
+ WeaponLv: 0
+ EquipLv: 50
+ Refine: false
+ ViewSprite: 1311
+ BindOnEquip: false
+ BuyingStore: true
+ Script: <"
+ bonus bStr, 4;
+ bonus bVit, 2;
+ ">
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
// Boots
{
Id: 1800
@@ -2735,6 +2785,10 @@ item_db: (
Refine: false
ViewSprite: 2912
BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
},
{
Id: 2913
@@ -2806,6 +2860,202 @@ item_db: (
ViewSprite: 2916
BindOnEquip: false
},
+{
+ Id: 2917
+ AegisName: "BrownBowlerHat"
+ Name: "Brown Bowler Hat"
+ Type: "IT_ARMOR"
+ Buy: 17355
+ Sell: 4300
+ Weight: 30
+ Def: 3
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 15
+ Refine: false
+ ViewSprite: 2917
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
+{
+ Id: 2918
+ AegisName: "CatEars"
+ Name: "Cat Ears"
+ Type: "IT_ARMOR"
+ Buy: 37500
+ Sell: 12500
+ Weight: 10
+ Def: 3
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 35
+ Refine: false
+ ViewSprite: 2918
+ BindOnEquip: false
+ Script: <"
+ bonus bAgi, 3;
+ ">
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
+{
+ Id: 2919
+ AegisName: "SantaHat"
+ Name: "Santa Hat"
+ Type: "IT_ARMOR"
+ Buy: 950
+ Sell: 220
+ Weight: 28
+ Def: 1
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 5
+ Refine: false
+ ViewSprite: 2919
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
+{
+ Id: 2920
+ AegisName: "MoonshroomHat"
+ Name: "Moonshroom Hat"
+ Type: "IT_ARMOR"
+ Buy: 950
+ Sell: 220
+ Weight: 50
+ Def: 7
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 5
+ Refine: false
+ ViewSprite: 2920
+ BindOnEquip: false
+ Script: <"
+ bonus bInt, 3;
+ bonus bStr, -1;
+ ">
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
+{
+ Id: 2921
+ AegisName: "SantaBeardHat"
+ Name: "Santa Beard Hat"
+ Type: "IT_ARMOR"
+ Buy: 950
+ Sell: 220
+ Weight: 32
+ Def: 1
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 5
+ Refine: false
+ ViewSprite: 2921
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
+{
+ Id: 2922
+ AegisName: "FunkyHat"
+ Name: "Funky Hat"
+ Type: "IT_ARMOR"
+ Buy: 950
+ Sell: 220
+ Weight: 50
+ Def: 2
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 5
+ Refine: false
+ ViewSprite: 2922
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+ AllowCards: {
+ id5003: 1
+ id5004: 1
+ id5005: 1
+ id5006: 1
+ id5007: 1
+ id5008: 1
+ id5009: 1
+ id5010: 1
+ id5011: 1
+ id5012: 1
+ id5013: 1
+ id5014: 1
+ id5015: 1
+ id5016: 1
+ id5017: 1
+ id5018: 1
+ id5019: 1
+ id5020: 1
+ id5021: 1
+ }
+},
+{
+ Id: 2923
+ AegisName: "CashierShade"
+ Name: "Cashier Shade"
+ Type: "IT_ARMOR"
+ Buy: 950
+ Sell: 220
+ Weight: 28
+ Def: 1
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 5
+ Refine: false
+ ViewSprite: 2923
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
+{
+ Id: 2924
+ AegisName: "BeanieCopter"
+ Name: "Beanie Copter"
+ Type: "IT_ARMOR"
+ Buy: 950
+ Sell: 220
+ Weight: 20
+ Def: 4
+ Slots: 0
+ Loc: "EQP_HEAD_TOP"
+ WeaponLv: 0
+ EquipLv: 3
+ Refine: false
+ ViewSprite: 2924
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
// Scarfs
{
Id: 3200
@@ -2837,6 +3087,25 @@ item_db: (
ViewSprite: 3201
BindOnEquip: false
},
+{
+ Id: 3202
+ AegisName: "Eyepatch"
+ Name: "Eyepatch"
+ Type: "IT_ARMOR"
+ Buy: 1000
+ Sell: 250
+ Weight: 8
+ Def: 1
+ Loc: "EQP_ACC_R"
+ EquipLv: 16
+ Refine: false
+ ViewSprite: 3202
+ BindOnEquip: false
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
+},
// Weapons
{
Id: 3500
@@ -3156,6 +3425,25 @@ item_db: (
Subtype: "W_2HAXE"
BindOnEquip: false
},
+{
+ Id: 3515
+ AegisName: "SharpKnife"
+ Name: "Sharp Knife"
+ Type: "IT_WEAPON"
+ Buy: 180
+ Sell: 50
+ Weight: 15
+ Atk: 120
+ Matk: 0
+ Range: 0
+ Slots: 0
+ Loc: "EQP_HAND_R"
+ WeaponLv: 1
+ EquipLv: 1
+ Refine: false
+ Subtype: "W_DAGGER"
+ BindOnEquip: false
+},
// Pet Eggs
{
Id: 4000
@@ -3579,12 +3867,663 @@ item_db: (
},
// Misc.
{
- Id: 7420
- AegisName: "AdventurerSoul"
- Name: "Adventurer's Soul"
- Type: "IT_ETC"
- Buy: 1
- Sell: 0
- Weight: 0
+ Id: 7420
+ AegisName: "AdventurerSoul"
+ Name: "Adventurer's Soul"
+ Type: "IT_ETC"
+ Buy: 1
+ Sell: 0
+ Weight: 0
+},
+// LEGACY merge items, generic or usable
+{
+ Id: 8000
+ AegisName: "BlackPearl"
+ Name: "Black Pearl"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8001
+ AegisName: "Bloodstone"
+ Name: "Bloodstone"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8002
+ AegisName: "BottleOfSand"
+ Name: "Bottle of Sand"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 200
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8003
+ AegisName: "Brainstem"
+ Name: "Brainstem"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8004
+ AegisName: "ClosedChristmasBox"
+ Name: "Closed Christmas Box"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8005
+ AegisName: "OpenChristmasBox"
+ Name: "Open Christmas Box"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8006
+ AegisName: "RedChristmasOrnament"
+ Name: "Red Christmas Ornament"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8007
+ AegisName: "YellowChristmasOrnament"
+ Name: "Yellow Christmas Ornament"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8008
+ AegisName: "GreenChristmasOrnament"
+ Name: "Green Christmas Ornament"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8009
+ AegisName: "AquaChristmasOrnament"
+ Name: "Aqua Christmas Ornament"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8010
+ AegisName: "BlueChristmasOrnament"
+ Name: "Blue Christmas Ornament"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8011
+ AegisName: "PurpleChristmasOrnament"
+ Name: "Purple Christmas Ornament"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 20
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8012
+ AegisName: "Doll"
+ Name: "Doll"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 75
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8013
+ AegisName: "EasterBasket"
+ Name: "Easter Basket"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 2000
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8014
+ AegisName: "LegendaryEasterEgg"
+ Name: "Legendary Easter Egg"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8015
+ AegisName: "FakePlasticFangs"
+ Name: "Fake Plastic Fangs"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 25
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8016
+ AegisName: "FlawedLens"
+ Name: "Flawed Lens"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8017
+ AegisName: "DarkPetal"
+ Name: "Dark Petal"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 250
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8018
+ AegisName: "FlightTalisman"
+ Name: "Flight Talisman"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 500
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8019
+ AegisName: "Jellybeans"
+ Name: "Jellybeans"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 150
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8020
+ AegisName: "Leatherball"
+ Name: "Leatherball"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 750
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8021
+ AegisName: "BooberryBlueLollipop"
+ Name: "Booberry Blue Lollipop"
+ Type: "IT_USABLE"
+ Buy: 100
+ Sell: 5
+ Weight: 150
+ Script: <"
+ @min = 1500;
+ @max = 2500;
+ @delay = 3;
+ @type = 1;
+ doevent "rand_sc_heal::OnUse";
+ ">
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8022
+ AegisName: "GhastlyGreenLollipop"
+ Name: "Ghastly Green Lollipop"
+ Type: "IT_USABLE"
+ Buy: 100
+ Sell: 5
+ Weight: 150
+ Script: <"
+ @min = 1500;
+ @max = 2500;
+ @delay = 3;
+ @type = 1;
+ doevent "rand_sc_heal::OnUse";
+ ">
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8023
+ AegisName: "BloodRedLollipop"
+ Name: "Blood Red Lollipop"
+ Type: "IT_USABLE"
+ Buy: 100
+ Sell: 5
+ Weight: 150
+ Script: <"
+ @min = 1500;
+ @max = 2500;
+ @delay = 3;
+ @type = 1;
+ doevent "rand_sc_heal::OnUse";
+ ">
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8024
+ AegisName: "PlushMouboo"
+ Name: "Plush Mouboo"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 250
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8025
+ AegisName: "RedStocking"
+ Name: "Red Stocking"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8026
+ AegisName: "StickReinboo"
+ Name: "Stick Reinboo"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8027
+ AegisName: "RubberBat" // add squeak sound with approx. 3 ~ 5s delay.
+ Name: "Rubber Bat"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 30
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8028
+ AegisName: "SantaCookie"
+ Name: "Santa Cookie"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 25
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8029
+ AegisName: "SantaGlobe"
+ Name: "Santa Globe"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 500
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8030
+ AegisName: "Scissors"
+ Name: "Scissors"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 150
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8031
+ AegisName: "SilverBell"
+ Name: "Silver Bell"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 250
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8032
+ AegisName: "SnowmanGlobe"
+ Name: "Snowman Globe"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 500
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8033
+ AegisName: "StrangeCoin"
+ Name: "Strange Coin"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 10
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8034
+ AegisName: "Tongue"
+ Name: "Tongue"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8035
+ AegisName: "WrappingPaperDotted"
+ Name: "Dotted Wrapping Paper"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
+},
+{
+ Id: 8036
+ AegisName: "WrappingPaperStriped"
+ Name: "Striped Wrapping Paper"
+ Type: "IT_ETC"
+ Buy: 100
+ Sell: 5
+ Weight: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ noauction: true
+ nomail: true
+ nogstorage: true
+ }
},
)
diff --git a/db/re/job_db.conf b/db/re/job_db.conf
index a513cd99..02b4e16a 100644
--- a/db/re/job_db.conf
+++ b/db/re/job_db.conf
@@ -61,12 +61,14 @@ Human: {
Dagger: 55
Sword: 57
Axe: 50
+ TwoHandAxe: 100
Mace: 50
TwoHandMace: 55
Rod: 65
TwoHandRod: 65
Shield: 10
Bow: 80
+ Katar: 65
}
HPTable:[ 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, // 1 - 10
900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, // 11 - 20
@@ -112,12 +114,14 @@ DarkUkar: {
Dagger: 55
Sword: 57
Axe: 50
+ TwoHandAxe: 100
Mace: 50
TwoHandMace: 55
Rod: 65
TwoHandRod: 65
Shield: 10
Bow: 80
+ Katar: 65
}
HPTable:[ 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, // 1 - 10
900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, // 11 - 20
@@ -162,12 +166,14 @@ FireKralog: {
Dagger: 55
Sword: 57
Axe: 50
+ TwoHandAxe: 100
Mace: 50
TwoHandMace: 55
Rod: 65
TwoHandRod: 65
Shield: 10
Bow: 80
+ Katar: 65
}
HPTable:[ 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, // 1 - 10
900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, // 11 - 20
@@ -213,12 +219,14 @@ LightRaijin: {
Dagger: 55
Sword: 57
Axe: 50
+ TwoHandAxe: 100
Mace: 50
TwoHandMace: 55
Rod: 65
TwoHandRod: 65
Shield: 10
Bow: 80
+ Katar: 65
}
HPTable:[ 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, // 1 - 10
900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, // 11 - 20
@@ -264,12 +272,14 @@ BlueTritan: {
Dagger: 55
Sword: 57
Axe: 50
+ TwoHandAxe: 100
Mace: 50
TwoHandMace: 55
Rod: 65
TwoHandRod: 65
Shield: 10
Bow: 80
+ Katar: 65
}
HPTable:[ 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, // 1 - 10
900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, // 11 - 20
diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf
index 26d6cf1a..486fe045 100644
--- a/db/re/mob_db.conf
+++ b/db/re/mob_db.conf
@@ -1908,6 +1908,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -1949,6 +1955,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -1990,6 +2002,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2031,6 +2049,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2154,6 +2178,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2196,6 +2226,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2238,6 +2274,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2280,6 +2322,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2322,6 +2370,12 @@ mob_db: (
}
WeaponAttacks: {
All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
Katars: 10000
}
},
@@ -2802,6 +2856,165 @@ mob_db: (
DamageMotion: 420
},
{
+ Id: 1069
+ SpriteName: "GemVeinbloc"
+ Name: "Gem Veinbloc"
+ Lv: 1
+ Hp: 20
+ Sp: 0
+ Exp: 1
+ JExp: 0
+ AttackRange: 0
+ Attack: [0, 0]
+ Def: 1
+ Mdef: 1
+ Stats: {
+ Str: 1
+ Agi: 1
+ Vit: 1
+ Int: 1
+ Dex: 1
+ Luk: 1
+ }
+ ViewRange: 1
+ ChaseRange: 1
+ Size: 1
+ Race: 3
+ Element: (2, 1)
+ Mode: {
+ Plant: true
+ }
+ MoveSpeed: 1
+ AttackDelay: 1
+ AttackMotion: 1
+ DamageMotion: 1
+ Drops: {
+
+ CrudeDiamond: 45
+ CrudeAmethyst: 23
+ CrudeSapphire: 15
+ CrudeRuby: 98
+ CrudeTopaz: 68
+ CrudeEmerald: 40
+ Coal: 1500
+ IronOre: 500
+ GoldNuggets: 100
+ }
+ WeaponAttacks: {
+ All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
+ Katars: 10000
+ }
+},
+{
+ Id: 1070
+ SpriteName: "GoldVeinbloc"
+ Name: "Gold Veinbloc"
+ Lv: 1
+ Hp: 15
+ Sp: 0
+ Exp: 1
+ JExp: 0
+ AttackRange: 0
+ Attack: [0, 0]
+ Def: 1
+ Mdef: 1
+ Stats: {
+ Str: 1
+ Agi: 1
+ Vit: 1
+ Int: 1
+ Dex: 1
+ Luk: 1
+ }
+ ViewRange: 1
+ ChaseRange: 1
+ Size: 1
+ Race: 3
+ Element: (2, 1)
+ Mode: {
+ Plant: true
+ }
+ MoveSpeed: 1
+ AttackDelay: 1
+ AttackMotion: 1
+ DamageMotion: 1
+ Drops: {
+ GoldNuggets: 500
+ Coal: 2500
+ IronOre: 1250
+ DiamondShard: 150
+ AmethystShard: 75
+ SapphireShard: 50
+ }
+ WeaponAttacks: {
+ All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
+ Katars: 10000
+ }
+},
+{
+ Id: 1071
+ SpriteName: "CoalVeinbloc"
+ Name: "Coal Veinbloc"
+ Lv: 1
+ Hp: 7
+ Sp: 0
+ Exp: 1
+ JExp: 0
+ AttackRange: 0
+ Attack: [0, 0]
+ Def: 1
+ Mdef: 1
+ Stats: {
+ Str: 1
+ Agi: 1
+ Vit: 1
+ Int: 1
+ Dex: 1
+ Luk: 1
+ }
+ ViewRange: 1
+ ChaseRange: 1
+ Size: 1
+ Race: 3
+ Element: (2, 1)
+ Mode: {
+ Plant: true
+ }
+ MoveSpeed: 1
+ AttackDelay: 1
+ AttackMotion: 1
+ DamageMotion: 1
+ Drops: {
+ Coal: 3500
+ IronOre: 1000
+ RubyShard: 350
+ TopazShard: 250
+ EmeraldShard: 200
+ }
+ WeaponAttacks: {
+ All: 0
+ Daggers: 2500
+ 1HSwords: 3300
+ 1HAxes: 5000
+ 2HSwords: 5000
+ 2HAxes: 6600
+ 2HMaces: 7500
+ Katars: 10000
+ }
+},
+{
Id: 1100
SpriteName: "PoisonSkull"
Name: "Poison Skull"
diff --git a/db/re/mob_skill_db.conf b/db/re/mob_skill_db.conf
index ca94be3d..0f45087c 100644
--- a/db/re/mob_skill_db.conf
+++ b/db/re/mob_skill_db.conf
@@ -347,8 +347,8 @@ SKILL_COND2 = {
/**********************************************************************/
Beehive: {
- NPC_SUMMONSLAVE: {
- SkillState: "MSS_ANY"
+ NPC_SUMMONMONSTER: {
+ SkillState: "MSS_ANYTARGET"
SkillLevel: 1
Rate: 10000
CastTime: 100
@@ -359,8 +359,8 @@ SKILL_COND2 = {
ConditionData: 90
val0: 1058
}
- NPC_SUMMONSLAVE: {
- SkillState: "MSS_ANY"
+ NPC_SUMMONMONSTER: {
+ SkillState: "MSS_ANYTARGET"
SkillLevel: 2
Rate: 10000
CastTime: 100
@@ -371,8 +371,8 @@ SKILL_COND2 = {
ConditionData: 50
val0: 1058
}
- NPC_SUMMONSLAVE: {
- SkillState: "MSS_ANY"
+ NPC_SUMMONMONSTER: {
+ SkillState: "MSS_ANYTARGET"
SkillLevel: 3
Rate: 10000
CastTime: 100
@@ -505,7 +505,7 @@ SKILL_COND2 = {
PinkFlower: {
NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
- SkillLevel: 2
+ SkillLevel: 1
Rate: 10000
CastTime: 1000
Delay: 20000
@@ -517,7 +517,7 @@ SKILL_COND2 = {
}
/**********************************************************************/
YellowTulip: {
- NPC_SUMMONMONSTER: {
+ NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
@@ -531,7 +531,7 @@ SKILL_COND2 = {
}
/**********************************************************************/
YellowRose: {
- NPC_SUMMONMONSTER: {
+ NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
@@ -545,7 +545,7 @@ SKILL_COND2 = {
}
/**********************************************************************/
BlueRose: {
- NPC_SUMMONMONSTER: {
+ NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 2
Rate: 10000
@@ -553,13 +553,13 @@ SKILL_COND2 = {
Delay: 3000
SkillTarget: "MST_SELF"
CastCondition: "MSC_SLAVELE"
- ConditionData: 3
+ ConditionData: 2
val0: 1029
}
}
/**********************************************************************/
RedRose: {
- NPC_SUMMONMONSTER: {
+ NPC_SUMMONSLAVE: {
SkillState: "MSS_ANY"
SkillLevel: 1
Rate: 10000
diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf
index 6c190ed2..6d11918d 100644
--- a/db/re/skill_db.conf
+++ b/db/re/skill_db.conf
@@ -38642,4 +38642,14 @@ skill_db: (
Self: true
}
},
+{
+ Id: 20003
+ Name: "EVOL_MONSTER_IDENTIFY"
+ Description: "Monster Identify"
+ MaxLevel: 1
+ SkillType: {
+ Self: true
+ }
+ CoolDown: 3000
+},
)
diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf
index 4927fb3e..f604479d 100644
--- a/db/re/skill_tree.conf
+++ b/db/re/skill_tree.conf
@@ -85,6 +85,7 @@ Human: {
MG_COLDBOLT: 0
EVOL_MASS_PROVOKE: 0
EVOL_PHYSICAL_SHIELD: 0
+ EVOL_MONSTER_IDENTIFY: 0
}
}
@@ -148,6 +149,7 @@ DarkUkar: {
MG_COLDBOLT: 0
EVOL_MASS_PROVOKE: 0
EVOL_PHYSICAL_SHIELD: 0
+ EVOL_MONSTER_IDENTIFY: 0
}
}
@@ -211,6 +213,7 @@ FireKralog: {
MG_COLDBOLT: 0
EVOL_MASS_PROVOKE: 0
EVOL_PHYSICAL_SHIELD: 0
+ EVOL_MONSTER_IDENTIFY: 0
}
}
@@ -274,6 +277,7 @@ LightRaijin: {
MG_COLDBOLT: 0
EVOL_MASS_PROVOKE: 0
EVOL_PHYSICAL_SHIELD: 0
+ EVOL_MONSTER_IDENTIFY: 0
}
}
@@ -337,6 +341,7 @@ BlueTritan: {
MG_COLDBOLT: 0
EVOL_MASS_PROVOKE: 0
EVOL_PHYSICAL_SHIELD: 0
+ EVOL_MONSTER_IDENTIFY: 0
}
}
diff --git a/maps/re/008-1-1.mcache b/maps/re/008-1-1.mcache
index 5a8705a2..704869a3 100644
--- a/maps/re/008-1-1.mcache
+++ b/maps/re/008-1-1.mcache
Binary files differ
diff --git a/maps/re/008-1-2.mcache b/maps/re/008-1-2.mcache
new file mode 100644
index 00000000..7c9d08f7
--- /dev/null
+++ b/maps/re/008-1-2.mcache
Binary files differ
diff --git a/maps/re/008-1.mcache b/maps/re/008-1.mcache
index a819d56d..38c10582 100644
--- a/maps/re/008-1.mcache
+++ b/maps/re/008-1.mcache
Binary files differ
diff --git a/maps/re/008-3-0.mcache b/maps/re/008-3-0.mcache
index 5a291c6f..7e80234e 100644
--- a/maps/re/008-3-0.mcache
+++ b/maps/re/008-3-0.mcache
Binary files differ
diff --git a/maps/re/008-3-1.mcache b/maps/re/008-3-1.mcache
index e34f7676..849c3f33 100644
--- a/maps/re/008-3-1.mcache
+++ b/maps/re/008-3-1.mcache
Binary files differ
diff --git a/npc/000-2-1/peter.txt b/npc/000-2-1/peter.txt
index 060fa660..06825f0c 100644
--- a/npc/000-2-1/peter.txt
+++ b/npc/000-2-1/peter.txt
@@ -256,6 +256,7 @@ OnTimeout:
// It's not _buggy_, it is just reckless. I would like a setting to restrict it
// to destroy only instances owned by the char, or to destroy by name :p
OnDone:
+ warp "000-2-1", 72, 36;
.@q3 = getq3(ShipQuests_Peter);
//instance_destroy(.@q3);
if (@peter)
diff --git a/npc/000-2-2/ratto.txt b/npc/000-2-2/ratto.txt
index 14f98201..d30ccd17 100644
--- a/npc/000-2-2/ratto.txt
+++ b/npc/000-2-2/ratto.txt
@@ -86,12 +86,13 @@ OnRatto4Death:
// This label is reached when all rattos are dead. We clear the respawn timers
// (as we are going to delete the instance map anyway), warp you outside, and
// from there onwards, Peter handles properly rewarding you.
-L_Victor:
- warp "000-2-1", 72, 36;
+OnVictor:
deltimer("RattosControl::OnRatto1Respawn");
deltimer("RattosControl::OnRatto2Respawn");
deltimer("RattosControl::OnRatto3Respawn");
deltimer("RattosControl::OnRatto4Respawn");
- doevent("Peter::OnDone");
+ addtimercount("Peter::OnTimeout", 5000);
+ addtimer(5000, "Peter::OnDone");
+ dispbottom l("It looks like all monsters were killed.");
end;
}
diff --git a/npc/001-2-22/peter.txt b/npc/001-2-22/peter.txt
index 85d80bbb..9c4402a2 100644
--- a/npc/001-2-22/peter.txt
+++ b/npc/001-2-22/peter.txt
@@ -256,6 +256,7 @@ OnTimeout:
// It's not _buggy_, it is just reckless. I would like a setting to restrict it
// to destroy only instances owned by the char, or to destroy by name :p
OnDone:
+ warp "001-2-22", 72, 36;
.@q3 = getq3(ShipQuests_Peter);
//instance_destroy(.@q3);
if (@peter)
diff --git a/npc/001-2-23/ratto.txt b/npc/001-2-23/ratto.txt
index 9b4130f6..24bb1e1a 100644
--- a/npc/001-2-23/ratto.txt
+++ b/npc/001-2-23/ratto.txt
@@ -87,11 +87,12 @@ OnRatto4Death:
// (as we are going to delete the instance map anyway), warp you outside, and
// from there onwards, Peter handles properly rewarding you.
L_Victor:
- warp "001-2-22", 72, 36;
deltimer("RattosControl#Artis::OnRatto1Respawn");
deltimer("RattosControl#Artis::OnRatto2Respawn");
deltimer("RattosControl#Artis::OnRatto3Respawn");
deltimer("RattosControl#Artis::OnRatto4Respawn");
- doevent("Peter#Artis::OnDone");
+ addtimercount("Peter#Artis::OnTimeout", 5000);
+ addtimer(5000, "Peter#Artis::OnDone");
+ dispbottom l("It looks like all monsters were killed.");
end;
}
diff --git a/npc/001-2-32/_import.txt b/npc/001-2-32/_import.txt
index 9043352d..b59046e0 100644
--- a/npc/001-2-32/_import.txt
+++ b/npc/001-2-32/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-32: unnamed
+// Map 001-2-32: Training Arena Lobby
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-32/_warps.txt",
"npc/001-2-32/doors.txt",
diff --git a/npc/001-2-32/_warps.txt b/npc/001-2-32/_warps.txt
index 306493cb..4db4b354 100644
--- a/npc/001-2-32/_warps.txt
+++ b/npc/001-2-32/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-32: unnamed warps
+// Map 001-2-32: Training Arena Lobby warps
001-2-32,27,33,0 warp #001-2-32_27_33 0,0,001-2-33,39,33
diff --git a/npc/001-2-34/_import.txt b/npc/001-2-34/_import.txt
index 326973e6..9ec74d40 100644
--- a/npc/001-2-34/_import.txt
+++ b/npc/001-2-34/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-34: unnamed
+// Map 001-2-34: Training Room Lobby
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-34/_warps.txt",
"npc/001-2-34/doors.txt",
diff --git a/npc/001-2-34/_warps.txt b/npc/001-2-34/_warps.txt
index 1311f071..06f74a95 100644
--- a/npc/001-2-34/_warps.txt
+++ b/npc/001-2-34/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-34: unnamed warps
+// Map 001-2-34: Training Room Lobby warps
001-2-34,29,33,0 warp #001-2-34_29_33 0,0,001-2-33,29,33
diff --git a/npc/001-2-35/_import.txt b/npc/001-2-35/_import.txt
index 969d9e1c..a4496ab4 100644
--- a/npc/001-2-35/_import.txt
+++ b/npc/001-2-35/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-35: unnamed
+// Map 001-2-35: Training Arena
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-35/_warps.txt",
"npc/001-2-35/mapflags.txt",
diff --git a/npc/001-2-35/_warps.txt b/npc/001-2-35/_warps.txt
index d5939222..9ee7b9ba 100644
--- a/npc/001-2-35/_warps.txt
+++ b/npc/001-2-35/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-35: unnamed warps
+// Map 001-2-35: Training Arena warps
001-2-35,23,29,0 warp #001-2-35_23_29 0,0,001-2-32,32,29
diff --git a/npc/001-2-36/_import.txt b/npc/001-2-36/_import.txt
index 57397efd..403b0b12 100644
--- a/npc/001-2-36/_import.txt
+++ b/npc/001-2-36/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-36: unnamed
+// Map 001-2-36: Training Room
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-36/_warps.txt",
"npc/001-2-36/hector.txt",
diff --git a/npc/001-2-36/_warps.txt b/npc/001-2-36/_warps.txt
index 530050a7..bcb74de9 100644
--- a/npc/001-2-36/_warps.txt
+++ b/npc/001-2-36/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-36: unnamed warps
+// Map 001-2-36: Training Room warps
001-2-36,37,30,0 warp #001-2-36_37_30 0,0,001-2-34,24,29
diff --git a/npc/001-2-37/_import.txt b/npc/001-2-37/_import.txt
index 05315d64..03162e19 100644
--- a/npc/001-2-37/_import.txt
+++ b/npc/001-2-37/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-37: unnamed
+// Map 001-2-37: Legion West Wing
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-37/_savepoints.txt",
"npc/001-2-37/_warps.txt",
diff --git a/npc/001-2-37/_savepoints.txt b/npc/001-2-37/_savepoints.txt
index cd68fab2..30d7a797 100644
--- a/npc/001-2-37/_savepoints.txt
+++ b/npc/001-2-37/_savepoints.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-37: unnamed saves
+// Map 001-2-37: Legion West Wing saves
001-2-37,25,41,0 script #save_001-2-37_25_41 NPC_SAVE_POINT,0,0,{
savepointparticle .map$, .x, .y, NO_INN;
close;
diff --git a/npc/001-2-37/_warps.txt b/npc/001-2-37/_warps.txt
index f6997b5f..dabc5285 100644
--- a/npc/001-2-37/_warps.txt
+++ b/npc/001-2-37/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-37: unnamed warps
+// Map 001-2-37: Legion West Wing warps
001-2-37,37,28,0 warp #001-2-37_37_28 0,0,001-2-33,24,30
001-2-37,37,33,0 warp #001-2-37_37_33 0,0,001-2-39,24,33
diff --git a/npc/001-2-38/_import.txt b/npc/001-2-38/_import.txt
index e60aa3f9..63d2a402 100644
--- a/npc/001-2-38/_import.txt
+++ b/npc/001-2-38/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-38: unnamed
+// Map 001-2-38: Legion East Wing
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-38/_savepoints.txt",
"npc/001-2-38/_warps.txt",
diff --git a/npc/001-2-38/_savepoints.txt b/npc/001-2-38/_savepoints.txt
index d4e4db2c..59be0f59 100644
--- a/npc/001-2-38/_savepoints.txt
+++ b/npc/001-2-38/_savepoints.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-38: unnamed saves
+// Map 001-2-38: Legion East Wing saves
001-2-38,25,41,0 script #save_001-2-38_25_41 NPC_SAVE_POINT,0,0,{
savepointparticle .map$, .x, .y, NO_INN;
close;
diff --git a/npc/001-2-38/_warps.txt b/npc/001-2-38/_warps.txt
index 9139345a..53e119b5 100644
--- a/npc/001-2-38/_warps.txt
+++ b/npc/001-2-38/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-38: unnamed warps
+// Map 001-2-38: Legion East Wing warps
001-2-38,23,28,0 warp #001-2-38_23_28 0,0,001-2-33,44,30
001-2-38,23,33,0 warp #001-2-38_23_33 0,0,001-2-39,44,33
diff --git a/npc/001-2-39/_import.txt b/npc/001-2-39/_import.txt
index 8ceee767..f3a2043a 100644
--- a/npc/001-2-39/_import.txt
+++ b/npc/001-2-39/_import.txt
@@ -1,4 +1,4 @@
-// Map 001-2-39: unnamed
+// Map 001-2-39: Legion Command Room
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/001-2-39/_warps.txt",
"npc/001-2-39/mapflags.txt",
diff --git a/npc/001-2-39/_warps.txt b/npc/001-2-39/_warps.txt
index 527acae5..1a25cfd3 100644
--- a/npc/001-2-39/_warps.txt
+++ b/npc/001-2-39/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Map 001-2-39: unnamed warps
+// Map 001-2-39: Legion Command Room warps
001-2-39,45,33,0 warp #001-2-39_45_33 0,0,001-2-38,24,33
001-2-39,23,33,0 warp #001-2-39_23_33 0,0,001-2-37,36,33
diff --git a/npc/008-1-1/_import.txt b/npc/008-1-1/_import.txt
index be748cf8..4788f56c 100644
--- a/npc/008-1-1/_import.txt
+++ b/npc/008-1-1/_import.txt
@@ -4,3 +4,5 @@
"npc/008-1-1/_warps.txt",
"npc/008-1-1/galimatia.txt",
"npc/008-1-1/koga.txt",
+"npc/008-1-1/morcant.txt",
+"npc/008-1-1/sign.txt",
diff --git a/npc/008-1-1/_mobs.txt b/npc/008-1-1/_mobs.txt
index 35a0bc0f..e836fe97 100644
--- a/npc/008-1-1/_mobs.txt
+++ b/npc/008-1-1/_mobs.txt
@@ -2,7 +2,7 @@
// Map 008-1-1: Woodland mobs
008-1-1,173,86,25,5 monster Forest Maggot 1028,12,500,2500
008-1-1,132,56,7,5 monster Forest Maggot 1028,5,500,2500
-008-1-1,144,91,11,16 monster Butterfly 1032,8,10000,10000
+008-1-1,74,59,9,16 monster Butterfly 1032,4,20000,10000
008-1-1,63,73,11,5 monster Maggot 1026,7,500,10000
008-1-1,206,87,6,4 monster Mouboo 1023,3,30000,60000
008-1-1,131,45,0,0 monster Beehive 1056,1,30000,100000
@@ -17,9 +17,15 @@
008-1-1,112,75,2,2 monster Pink Flower 1034,1,100,10000
008-1-1,110,46,3,2 monster Mauve Plant 1036,3,1000,2000
008-1-1,159,93,9,7 monster Silkworm 1040,4,3000,6000
-008-1-1,68,29,7,7 monster Mouboo 1023,3,30000,60000
+008-1-1,62,36,7,7 monster Mouboo 1023,3,30000,60000
008-1-1,126,45,0,0 monster Beehive 1056,1,30000,100000
008-1-1,121,45,0,0 monster Beehive 1056,1,30000,100000
008-1-1,163,178,2,1 monster Red Rose 1062,1,50000,10000
008-1-1,158,191,3,1 monster Yellow Rose 1060,1,20000,5000
008-1-1,166,184,1,1 monster Blue Rose 1061,1,100000,20000
+008-1-1,137,88,11,16 monster Butterfly 1032,8,10000,10000
+008-1-1,75,41,14,4 monster Silkworm 1040,3,9000,6000
+008-1-1,122,75,8,4 monster Forest Maggot 1028,3,50000,2500
+008-1-1,96,45,1,0 monster Red Rose 1062,1,50000,10000
+008-1-1,97,47,2,0 monster Yellow Rose 1060,1,20000,5000
+008-1-1,99,45,0,0 monster Blue Rose 1061,1,100000,20000
diff --git a/npc/008-1-1/_warps.txt b/npc/008-1-1/_warps.txt
index 11a32b86..db9189dc 100644
--- a/npc/008-1-1/_warps.txt
+++ b/npc/008-1-1/_warps.txt
@@ -3,3 +3,4 @@
008-1-1,247,85,0 warp #008-1-1_247_85 0,1,008-1,21,85
008-1-1,202,47,0 warp #008-1-1_202_47 0,0,008-3-0,129,112
008-1-1,51,57,0 warp #008-1-1_51_57 0,0,008-2-32,40,37
+008-1-1,181,198,0 warp #008-1-1_181_198 1,0,008-1-2,180,32
diff --git a/npc/008-1-1/morcant.txt b/npc/008-1-1/morcant.txt
new file mode 100644
index 00000000..0167353f
--- /dev/null
+++ b/npc/008-1-1/morcant.txt
@@ -0,0 +1,20 @@
+// Evol scripts.
+// Author:
+// Micksha
+// Description:
+// Galmatia the beekeeper.
+// THIS IS A PLACEHOLDER!
+
+008-1-1,58,57,0 script Morcant NPC_MORCANT,{
+ speech
+ l("Hello."),
+ l("My name is Morcant. I am a Captain, a bit bored since this harbor is not frequented much."),
+ l("I would like to offer you food and tell you stories, but.. have you ever heard of WildX? I won't need to say more, do I?");
+
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 2;
+ end;
+}
diff --git a/npc/008-1-1/sign.txt b/npc/008-1-1/sign.txt
new file mode 100644
index 00000000..df554c2d
--- /dev/null
+++ b/npc/008-1-1/sign.txt
@@ -0,0 +1,24 @@
+// Evol scripts.
+// Authors:
+// Micksha
+// Description:
+// Sign pillars in West Woodland.
+
+008-1-1,53,58,0 script Sign#008-1-1-merchant NPC_NO_SPRITE,{
+ npctalkonce l("Merchant House");
+ close;
+
+OnInit:
+ .distance = 1;
+ .sex = G_OTHER;
+ end;
+}
+008-1-1,157,87,0 script Sign#008-1-1-central NPC_NO_SPRITE,{
+ npctalkonce l("Right: Hurnscald | Down: Swamp");
+ close;
+
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
diff --git a/npc/008-1-2/_import.txt b/npc/008-1-2/_import.txt
new file mode 100644
index 00000000..f49fc06e
--- /dev/null
+++ b/npc/008-1-2/_import.txt
@@ -0,0 +1,4 @@
+// Map 008-1-2: Swamp
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/008-1-2/_warps.txt",
+"npc/008-1-2/sign.txt",
diff --git a/npc/008-1-2/_warps.txt b/npc/008-1-2/_warps.txt
new file mode 100644
index 00000000..c7ee0e45
--- /dev/null
+++ b/npc/008-1-2/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-1-2: Swamp warps
+008-1-2,181,31,0 warp #008-1-2_181_31 1,0,008-1-1,180,197
+008-1-2,249,48,0 warp #008-1-2_249_48 0,0,008-1,23,216
diff --git a/npc/008-1-2/sign.txt b/npc/008-1-2/sign.txt
new file mode 100644
index 00000000..73b011e3
--- /dev/null
+++ b/npc/008-1-2/sign.txt
@@ -0,0 +1,34 @@
+// Evol scripts.
+// Authors:
+// Micksha
+// Description:
+// Sign pillars in West Woodland.
+
+008-1-2,218,80,0 script Sign#008-1-2-northeast NPC_NO_SPRITE,{
+ npctalkonce l("Up: West Woodland | Right: Dimond's Cove | Left: Sorentown");
+ close;
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
+
+008-1-2,145,80,0 script Sign#008-1-2-sorentown NPC_NO_SPRITE,{
+ npctalkonce l("Left: Asphodel Moor | Right: All directions");
+ close;
+
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
+
+008-1-2,39,192,0 script Sign#008-1-2-asphodel NPC_NO_SPRITE,{
+ npctalkonce l("Down: Graveyard (under construction) | Up: All directions");
+ close;
+
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
diff --git a/npc/008-1/_import.txt b/npc/008-1/_import.txt
index 018577b5..812a33fa 100644
--- a/npc/008-1/_import.txt
+++ b/npc/008-1/_import.txt
@@ -17,6 +17,7 @@
"npc/008-1/oscar.txt",
"npc/008-1/sabine.txt",
"npc/008-1/shop.txt",
+"npc/008-1/sign.txt",
"npc/008-1/snarfles.txt",
"npc/008-1/soul-menhir.txt",
"npc/008-1/voltain.txt",
diff --git a/npc/008-1/_warps.txt b/npc/008-1/_warps.txt
index d0d93314..3464da48 100644
--- a/npc/008-1/_warps.txt
+++ b/npc/008-1/_warps.txt
@@ -27,3 +27,4 @@
008-1,20,85,0 warp #008-1_20_85 0,1,008-1-1,246,85
008-1,165,171,0 warp #008-1_165_171 0,0,008-4-1,175,19
008-1,289,125,0 warp #008-1_289_125 0,0,008-2-31,29,25
+008-1,22,216,0 warp #008-1_22_216 0,0,008-1-2,248,48
diff --git a/npc/008-1/milly.txt b/npc/008-1/milly.txt
index 0ea17a1c..1ca72cee 100644
--- a/npc/008-1/milly.txt
+++ b/npc/008-1/milly.txt
@@ -25,6 +25,17 @@
// Description:
// robberies in hurnscald
+// Give player a Beanie Copter after 1,000,000 kills (server-wide)
+function script GetBeanieCopter {
+ // Double-check against possible malpractices
+ if ($MONSTERS_KILLED % 1000000 == 0) {
+ announce(sprintf("Congratulations, \"%s\", on killing the %sth monster!.", strcharinfo(0), format_number($MONSTERS_KILLED)), bc_all);
+ getitem BeanieCopter, 1;
+ dispbottom l("How strange, this monster dropped a very rare hat!");
+ }
+ return;
+}
+
008-1,282,114,0 script Milly NPC_GIRL_MILLY,{
// TODO: make the actual beanie copter quest after those are finished:
diff --git a/npc/008-1/sign.txt b/npc/008-1/sign.txt
new file mode 100644
index 00000000..17099ba4
--- /dev/null
+++ b/npc/008-1/sign.txt
@@ -0,0 +1,50 @@
+// Evol scripts.
+// Authors:
+// Micksha
+// Description:
+// Sign pillars in Hurnscald.
+
+008-1,142,105,0 script Sign#008-1-central NPC_NO_SPRITE,{
+ npctalkonce l("Right: Hurnscald | Down: Dimond's Cove | Left: West Woodland | Up: Nivalis (under construction)");
+ close;
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
+
+008-1,126,160,0 script Sign#008-1-south NPC_NO_SPRITE,{
+ npctalkonce l("Down: Dimond's Cove | Left: Swamp");
+ close;
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
+
+008-1,246,177,0 script Sign#008-1-southeast NPC_NO_SPRITE,{
+ npctalkonce l("Left: Dimond's Cove | Up: Hurnscald | Right: Forsaken Inn");
+ close;
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
+
+008-1,251,104,0 script Sign#008-1-hurns NPC_NO_SPRITE,{
+ npctalkonce l("Left: West Woodland | Up: North Mine | Right: Harbor | Down: other directions");
+ close;
+OnInit:
+ .distance = 2;
+ .sex = G_OTHER;
+ end;
+}
+
+008-1,247,105,0 script Sign#008-1-4144 NPC_NO_SPRITE,{
+ npctalkonce l("This place is dedicated to 4144, the alltime Hero.");
+ close;
+OnInit:
+ .distance = 1;
+ .sex = G_OTHER;
+ end;
+}
diff --git a/npc/008-2-32/_import.txt b/npc/008-2-32/_import.txt
index c9137dc7..ba8aa591 100644
--- a/npc/008-2-32/_import.txt
+++ b/npc/008-2-32/_import.txt
@@ -1,3 +1,4 @@
// Map 008-2-32: Merchant House
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/008-2-32/_warps.txt",
+"npc/008-2-32/thamas.txt",
diff --git a/npc/008-2-32/thamas.txt b/npc/008-2-32/thamas.txt
new file mode 100644
index 00000000..88b48968
--- /dev/null
+++ b/npc/008-2-32/thamas.txt
@@ -0,0 +1,20 @@
+// Evol scripts.
+// Author:
+// Micksha
+// Description:
+// Thamas the soldier.
+// THIS IS A PLACEHOLDER!
+
+008-2-32,36,31,0 script Thamas NPC_THAMAS,{
+ speech
+ l("Hi there."),
+ l("I am a legion soldier who never talks much, until Jesusalva or WildX puts words in my mouth."),
+ lg("Until then, let me be quiet. Talk to you later.");
+
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 2;
+ end;
+}
diff --git a/npc/008-3-0/_mobs.txt b/npc/008-3-0/_mobs.txt
index f7062926..93710b2b 100644
--- a/npc/008-3-0/_mobs.txt
+++ b/npc/008-3-0/_mobs.txt
@@ -20,3 +20,7 @@
008-3-0,100,180,0,0 monster Topaz Vein 1054,1,600000,60000
008-3-0,97,176,0,0 monster Sapphire Vein 1053,1,600000,60000
008-3-0,94,180,0,0 monster Amethyst Vein 1055,1,600000,60000
+008-3-0,108,107,0,0 monster Gem Veinbloc 1069,1,600000,60000
+008-3-0,118,96,0,0 monster Gem Veinbloc 1069,1,600000,60000
+008-3-0,131,93,0,0 monster Gem Veinbloc 1069,1,600000,60000
+008-3-0,119,101,0,0 monster Gold Veinbloc 1070,1,600000,60000
diff --git a/npc/_anchors.txt b/npc/_anchors.txt
index 1ca080cb..d46e49f2 100644
--- a/npc/_anchors.txt
+++ b/npc/_anchors.txt
@@ -38,4 +38,5 @@ OnInit:
htput(.ht, "^START|^BEGIN", "000-0 22 24");
htput(.ht, "^VEIN", "008-3-0 85 172");
htput(.ht, "^WARE", "001-2-18 37 31");
+ htput(.ht, "^WEST|PORT", "008-1-1 52 60");
}
diff --git a/npc/_import.txt b/npc/_import.txt
index 4427e76b..e523471a 100644
--- a/npc/_import.txt
+++ b/npc/_import.txt
@@ -57,6 +57,7 @@
@include "npc/001-3-1/_import.txt"
@include "npc/001-3-2/_import.txt"
@include "npc/008-1-1/_import.txt"
+@include "npc/008-1-2/_import.txt"
@include "npc/008-1/_import.txt"
@include "npc/008-2-0/_import.txt"
@include "npc/008-2-1/_import.txt"
diff --git a/npc/commands/mobinfo.txt b/npc/commands/mobinfo.txt
new file mode 100644
index 00000000..691bfb68
--- /dev/null
+++ b/npc/commands/mobinfo.txt
@@ -0,0 +1,29 @@
+// The Mana World Script
+//
+// @monsterinfo <monsterAegis>
+// Sends @mobinfo with a delay (moved from atcommand.conf)
+// Requires EVOL_MONSTER_IDENTIFY
+//
+- script @monsterinfo 32767,{
+ end;
+
+OnCall:
+ // Check for skill level
+ if (!getskilllv(EVOL_MONSTER_IDENTIFY))
+ end;
+
+ // ...
+ if (@rsync_delay > gettimetick(2)) {
+ dispbottom l("Not doing that to prevent flood.");
+ end;
+ }
+
+ // Send @mobinfo and set a cooldown of 3 seconds.
+ atcommand("@mobinfo " + implode(.@atcmd_parameters$, " "));
+ @rsync_delay=gettimetick(2)+3;
+ end;
+
+OnInit:
+ bindatcmd "monsterinfo", "@monsterinfo::OnCall", 0, 60, 0;
+ end;
+}
diff --git a/npc/functions/global_event_handler.txt b/npc/functions/global_event_handler.txt
index 35f53cfc..c66637ef 100644
--- a/npc/functions/global_event_handler.txt
+++ b/npc/functions/global_event_handler.txt
@@ -48,6 +48,8 @@ OnNPCKillEvent:
$MONSTERS_KILLED+=1;
MONSTERS_KILLED+=1;
callfunc("EnoraKills");
+ if ($MONSTERS_KILLED % 1000000 == 0)
+ callfunc("GetBeanieCopter");
end;
OnPCKillEvent:
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 16619850..cce40899 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -115,6 +115,7 @@
"npc/commands/zeny.txt",
"npc/commands/motd-debug-text.txt",
"npc/commands/motd.txt",
+"npc/commands/mobinfo.txt",
"npc/commands/scheduled-broadcasts.txt",
"npc/commands/rate-management.txt",
"npc/commands/event.txt",