diff options
author | Jesusaves <cpntb1@ymail.com> | 2020-04-04 23:31:28 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2020-04-04 23:31:28 -0300 |
commit | 4606c3a0fe0196fcb54277577b8b869a828c24a9 (patch) | |
tree | 014258295ea99a70232ce915e8d6b8ed8bc33c72 | |
parent | 3d3710863ab694839d7dcb8f1af47fdbc571647a (diff) | |
parent | 08b256657e21adff546d4c366335d0cd8f216249 (diff) | |
download | serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.tar.gz serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.tar.bz2 serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.tar.xz serverdata-4606c3a0fe0196fcb54277577b8b869a828c24a9.zip |
Merge branch 'master' into jesusalva/serena
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 Binary files differindex 5a8705a2..704869a3 100644 --- a/maps/re/008-1-1.mcache +++ b/maps/re/008-1-1.mcache diff --git a/maps/re/008-1-2.mcache b/maps/re/008-1-2.mcache Binary files differnew file mode 100644 index 00000000..7c9d08f7 --- /dev/null +++ b/maps/re/008-1-2.mcache diff --git a/maps/re/008-1.mcache b/maps/re/008-1.mcache Binary files differindex a819d56d..38c10582 100644 --- a/maps/re/008-1.mcache +++ b/maps/re/008-1.mcache diff --git a/maps/re/008-3-0.mcache b/maps/re/008-3-0.mcache Binary files differindex 5a291c6f..7e80234e 100644 --- a/maps/re/008-3-0.mcache +++ b/maps/re/008-3-0.mcache diff --git a/maps/re/008-3-1.mcache b/maps/re/008-3-1.mcache Binary files differindex e34f7676..849c3f33 100644 --- a/maps/re/008-3-1.mcache +++ b/maps/re/008-3-1.mcache 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", |