diff options
26 files changed, 373 insertions, 93 deletions
diff --git a/client-data b/client-data -Subproject df06f82c1496dea5e99177c931a1a805abb0e94 +Subproject 4f960436f919a40638eb6a9be3a808a2ca2f967 diff --git a/world/map/db/const-aegis.txt b/world/map/db/const-aegis.txt index 3676decc..c5c19c0f 100644 --- a/world/map/db/const-aegis.txt +++ b/world/map/db/const-aegis.txt @@ -387,6 +387,10 @@ JunglefowlFeather 5375 KingChonkyBirbFeather 5376 Honeycomb 5377 Beeswax 5378 +Stone 5380 +Brick 5381 +MountainCrystal 5384 +BlackQuartz 5385 LeatherShirt 523 DesertShirt 546 Turtleneck 564 @@ -1003,6 +1007,8 @@ ButterButterfly 5364 JunglefowlEgg 5373 KingChonkyBirbEgg 5374 Sauerkraut 5379 +AnchorStone 5382 +AnchoredAnchorStone 5383 CottonShorts 586 JeansShorts 610 CottonSkirt 632 @@ -1297,3 +1303,5 @@ SmallRubyBif 1221 SmallSapphireBif 1222 SmallTopazBif 1223 CoalGolem 1224 +StoneSlime 1225 +StoneGolem 1226 diff --git a/world/map/db/item_db.conf b/world/map/db/item_db.conf index 277b033e..5b72b8d7 100644 --- a/world/map/db/item_db.conf +++ b/world/map/db/item_db.conf @@ -5860,6 +5860,50 @@ item_db: ( Refine: false ViewSprite: 5378 }, +{ + Id: 5380 + AegisName: "Stone" + Name: "Stone" + Type: "IT_ETC" + Buy: 1000 + Sell: 500 + Weight: 60 + Refine: false + ViewSprite: 5380 +}, +{ + Id: 5381 + AegisName: "Brick" + Name: "Brick" + Type: "IT_ETC" + Buy: 2000 + Sell: 1000 + Weight: 40 + Refine: false + ViewSprite: 5381 +}, +{ + Id: 5384 + AegisName: "MountainCrystal" + Name: "MountainCrystal" + Type: "IT_ETC" + Buy: 20000 + Sell: 5000 + Weight: 20 + Refine: false + ViewSprite: 5384 +}, +{ + Id: 5385 + AegisName: "BlackQuartz" + Name: "BlackQuartz" + Type: "IT_ETC" + Buy: 20000 + Sell: 5000 + Weight: 20 + Refine: false + ViewSprite: 5385 +}, /* Chest Armor */ { Id: 523 @@ -16670,6 +16714,56 @@ item_db: ( callfunc "itheal", 500, 0; "> }, +{ + Id: 5382 + AegisName: "AnchorStone" + Name: "AnchorStone" + Type: "IT_USABLE" + Buy: 90000 + Sell: 45000 + Weight: 40 + Refine: false + ViewSprite: 5382 + KeepAfterUse: true + Trade: { + notrade: true + nodrop: true + nocart: true + nomail: true + noauction: true + noselltonpc: true + Script: <" + set @StoneName$, "AnchorStone"; + callfunc "useAnchorStone"; + "> + } +}, +{ + Id: 5383 + AegisName: "AnchoredAnchorStone" + Name: "AnchoredAnchorStone" + Type: "IT_USABLE" + Buy: 0 + Sell: 0 + Weight: 40 + Refine: false + ViewSprite: 5383 + KeepAfterUse: true + Trade: { + notrade: true + nodrop: true + nocart: true + nomail: true + noauction: true + noselltonpc: true + nostorage: true + nogstorage: true + Script: <" + set @StoneName$, "AnchoredAnchorStone"; + callfunc "useAnchorStone"; + "> + } +}, /* Legs Armor */ { Id: 586 diff --git a/world/map/db/item_db_generic.txt b/world/map/db/item_db_generic.txt index e7802111..ff127182 100644 --- a/world/map/db/item_db_generic.txt +++ b/world/map/db/item_db_generic.txt @@ -304,3 +304,7 @@ 5376, KingChonkyBirbFeather, 3, 6000, 3000, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} 5377, Honeycomb, 3, 200, 100, 11, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} 5378, Beeswax, 3, 2000, 1000, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} +5380, Stone, 3, 1000, 500, 60, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} +5381, Brick, 3, 2000, 1000, 40, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} +5384, MountainCrystal, 3, 20000, 5000, 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} +5385, BlackQuartz, 3, 20000, 5000, 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {}, {} diff --git a/world/map/db/item_db_use.txt b/world/map/db/item_db_use.txt index e4783e41..2e7c33ca 100644 --- a/world/map/db/item_db_use.txt +++ b/world/map/db/item_db_use.txt @@ -147,3 +147,6 @@ 5373, JunglefowlEgg, 0, 400, 200, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {heal 300, 0, 1;}, {} 5374, KingChonkyBirbEgg, 0, 1500, 750, 22, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {heal 800, 0, 1;}, {} 5379, Sauerkraut, 0, 250, 125, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, {heal 500, 0, 1;}, {} +5382, AnchorStone, 0, 90000, 45000, 40, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 23, {set @StoneName$, "AnchorStone"; callfunc "useAnchorStone";}, {} +//ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} +5383, AnchoredAnchorStone, 0, 0, 0, 40, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 31, {set @StoneName$, "AnchoredAnchorStone"; callfunc "useAnchorStone";}, {} diff --git a/world/map/db/mob_db.conf b/world/map/db/mob_db.conf index ae92f099..d33b30c4 100644 --- a/world/map/db/mob_db.conf +++ b/world/map/db/mob_db.conf @@ -7789,7 +7789,7 @@ mob_db: ( MutationStrength: 40 Drops: { TreasureKey: 500 - RedApple: 100 + MountainCrystal: 100 InfantryHelmet: 20 CoinBag: 200 Diamond: 20 @@ -7829,7 +7829,6 @@ mob_db: ( Element: (6, 4) Mode: { CanMove: true - Looter: true Assist: true Boss: true CanAttack: true @@ -7843,6 +7842,9 @@ mob_db: ( MutationCount: 0 MutationStrength: 0 Drops: { + MountainCrystal: 400 + MountainCrystal: 200 + MountainCrystal: 100 Diamond: 50 Ruby: 50 Emerald: 50 @@ -7880,7 +7882,7 @@ mob_db: ( Element: (6, 4) Mode: { CanMove: true - Aggressive: true + Assist: true Boss: true CanAttack: true ChangeTargetMelee: true @@ -7893,7 +7895,15 @@ mob_db: ( MutationCount: 0 MutationStrength: 0 Drops: { - DarkCrystal: 10000 + BlackQuartz: 400 + BlackQuartz: 200 + BlackQuartz: 100 + Diamond: 50 + Ruby: 50 + Emerald: 50 + Sapphire: 50 + Topaz: 50 + Amethyst: 50 } }, { @@ -8216,7 +8226,7 @@ mob_db: ( MutationStrength: 30 Drops: { TreasureKey: 800 - RedApple: 200 + MountainCrystal: 400 InfantryHelmet: 35 CoinBag: 400 Diamond: 35 @@ -9166,9 +9176,9 @@ mob_db: ( Coal: 200 IronOre: 200 CopperOre: 40 - SilverOre: 300 - SilverOre: 150 - BromenalOre: 20 + BromenalOre: 30 + SilverOre: 200 + SilverOre: 100 GoldOre: 10 } }, @@ -9219,9 +9229,9 @@ mob_db: ( Coal: 200 IronOre: 200 CopperOre: 40 - SilverOre: 30 - BromenalOre: 200 - BromenalOre: 100 + BromenalOre: 300 + BromenalOre: 150 + SilverOre: 20 GoldOre: 10 } }, @@ -9270,8 +9280,8 @@ mob_db: ( Coal: 200 IronOre: 200 CopperOre: 40 - SilverOre: 30 - BromenalOre: 20 + BromenalOre: 30 + SilverOre: 20 GoldOre: 100 GoldOre: 50 } @@ -9324,8 +9334,8 @@ mob_db: ( IronOre: 2000 IronOre: 1000 CopperOre: 40 - SilverOre: 30 - BromenalOre: 20 + BromenalOre: 30 + SilverOre: 20 GoldOre: 10 } }, @@ -9377,8 +9387,8 @@ mob_db: ( Coal: 1000 IronOre: 200 CopperOre: 40 - SilverOre: 30 - BromenalOre: 20 + BromenalOre: 30 + SilverOre: 20 GoldOre: 10 } }, @@ -9418,8 +9428,8 @@ mob_db: ( IronOre: 800 Coal: 1000 CopperOre: 200 - SilverOre: 150 - BromenalOre: 100 + BromenalOre: 150 + SilverOre: 100 GoldOre: 50 } }, @@ -9459,8 +9469,8 @@ mob_db: ( IronOre: 1600 Coal: 2000 CopperOre: 400 - SilverOre: 300 - BromenalOre: 200 + BromenalOre: 300 + SilverOre: 200 GoldOre: 100 } }, @@ -9500,8 +9510,8 @@ mob_db: ( IronOre: 400 Coal: 500 CopperOre: 100 - SilverOre: 75 - BromenalOre: 50 + BromenalOre: 75 + SilverOre: 50 GoldOre: 25 } }, @@ -10308,7 +10318,6 @@ mob_db: ( Element: (6, 4) Mode: { CanMove: true - Looter: true Assist: true Boss: true CanAttack: true @@ -10322,12 +10331,116 @@ mob_db: ( MutationCount: 0 MutationStrength: 0 Drops: { + Charcoal: 2000 Charcoal: 1000 Charcoal: 500 - Charcoal: 250 - Coal: 5000 - Coal: 2500 - Coal: 1250 + Coal: 4000 + Coal: 2000 + Coal: 1000 + IronOre: 500 + IronPowder: 1200 + } +}, +{ + Id: 1225 + SpriteName: "StoneSlime" + Name: "Stone Slime" + Lv: 40 + Hp: 600 + Sp: 0 + Exp: 200 + JExp: 18 + AttackRange: 1 + Attack: [60, 90] + Def: 20 + Mdef: 30 + CriticalDef: 0 + Stats: { + Str: 20 + Agi: 30 + Vit: 10 + Int: 10 + Dex: 30 + Luk: 30 + } + ViewRange: 9 + ChaseRange: 10 + Size: 1 + Race: 0 + Element: (1, 1) + Mode: { + CanMove: true + Looter: true + CanAttack: true + ChangeTargetMelee: true + ChangeTargetChase: true + } + MoveSpeed: 1200 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + MutationCount: 1 + MutationStrength: 20 + Drops: { + Stone: 1000 + Stone: 500 + Stone: 250 + Brick: 100 + Coal: 200 + IronOre: 200 + CopperOre: 40 + BromenalOre: 30 + SilverOre: 20 + GoldOre: 10 + } +}, +{ + Id: 1226 + SpriteName: "StoneGolem" + Name: "Stone Golem" + Lv: 180 + Hp: 30000 + Sp: 280 + Exp: 70000 + JExp: 2400 + AttackRange: 3 + Attack: [170, 190] + Def: 75 + Mdef: 40 + CriticalDef: 0 + Stats: { + Str: 35 + Agi: 26 + Vit: 99 + Int: 127 + Dex: 255 + Luk: 105 + } + ViewRange: 31 + ChaseRange: 30 + Size: 1 + Race: 0 + Element: (6, 4) + Mode: { + CanMove: true + Assist: true + Boss: true + CanAttack: true + ChangeTargetMelee: true + ChangeTargetChase: true + } + MoveSpeed: 320 + AttackDelay: 1000 + AttackMotion: 672 + DamageMotion: 50 + MutationCount: 0 + MutationStrength: 0 + Drops: { + Stone: 2000 + Stone: 1000 + Stone: 500 + Brick: 200 + Coal: 500 IronOre: 500 IronPowder: 1200 } diff --git a/world/map/db/mob_db_0_19.txt b/world/map/db/mob_db_0_19.txt index c47a2a99..831426b9 100644 --- a/world/map/db/mob_db_0_19.txt +++ b/world/map/db/mob_db_0_19.txt @@ -24,7 +24,7 @@ 1162, Grinchboo, Grinchboo, 5, 50, 0, 6, 1, 1, 5, 10, 0, 5, 0, 1, 1, 1, 0, 6, 5, 9, 10, 1, 3, 11, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 527, 50, 527, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 //ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, CRITDEF,STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop0id,Drop0%, Drop1id,Drop1%, Drop2id,Drop2%, Drop3id,Drop3%, Drop4id,Drop4%, Drop5id,Drop5%, Drop6id,Drop6%, Drop7id,Drop7%, Drop8id,Drop8%, Drop9id,Drop9%, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount,mutationstrength 1165, ChristmasGift, ChristmasGift, 1, 1, 0, 1, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 742, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1172, Bif, Bif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 704, 1200, 640, 800, 4001, 1000, 5327, 200, 5292, 150, 5316, 100, 5314, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1172, Bif, Bif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 704, 1200, 640, 800, 4001, 1000, 5327, 200, 5316, 150, 5292, 100, 5314, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1181, SmallFrog, SmallFrog, 9, 100, 0, 100, 10, 1, 10, 20, 19, 3, 0, 10, 25, 25, 1, 15, 20, 5, 10, 0, 2, 12, 129, 600, 1976, 672, 480, 505, 600, 518, 200, 5215, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30 1182, BigFrog, BigFrog, 10, 200, 0, 150, 15, 1, 20, 30, 24, 3, 0, 20, 15, 35, 1, 15, 20, 5, 10, 0, 2, 12, 129, 500, 1976, 672, 480, 505, 700, 518, 300, 5215, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30 1186, MananaTree, MananaTree, 5, 2500, 0, 2, 0, 1, 10, 10, 25, 1, 0, 1, 1, 10, 1, 1, 1, 1, 12, 1, 3, 12, 0, 1000, 800, 672, 480, 5341, 1000, 5341, 500, 5341, 250, 569, 1000, 569, 2000, 806, 500, 740, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80 @@ -32,8 +32,8 @@ 1191, Tortuga, Tortuga, 19, 535, 0, 350, 38, 1, 33, 44, 30, 50, 0, 18, 12, 1, 8, 80, 25, 1, 12, 1, 2, 11, 129, 700, 1872, 672, 480, 5355, 400, 5356, 100, 5215, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1192, Ratto, Ratto, 15, 250, 0, 200, 30, 1, 25, 35, 13, 6, 0, 5, 10, 13, 1, 11, 6, 3, 12, 1, 2, 10, 131, 120, 1572, 672, 480, 5357, 500, 5358, 400, 5333, 200, 5335, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1193, Croc, Croc, 17, 350, 0, 300, 35, 1, 124, 129, 54, 6, 0, 6, 10, 13, 1, 11, 6, 1, 12, 1, 2, 11, 129, 600, 1872, 672, 200, 5366, 350, 5338, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1204, BigBif, BigBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 704, 2400, 640, 1600, 4001, 2000, 5327, 400, 5292, 300, 5316, 200, 5314, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1205, SmallBif, SmallBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 704, 600, 640, 400, 4001, 500, 5327, 100, 5292, 75, 5316, 50, 5314, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1204, BigBif, BigBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 704, 2400, 640, 1600, 4001, 2000, 5327, 400, 5316, 300, 5292, 200, 5314, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1205, SmallBif, SmallBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 704, 600, 640, 400, 4001, 500, 5327, 100, 5316, 75, 5292, 50, 5314, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1206, AmethystBif, AmethystBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 4007, 20, 824, 1200, 824, 1200, 819, 600, 821, 600, 820, 600, 822, 600, 823, 600, 4001, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1207, DiamondBif, DiamondBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 4002, 20, 824, 600, 819, 1200, 819, 1200, 821, 600, 820, 600, 822, 600, 823, 600, 4001, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1208, EmeraldBif, EmeraldBif, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 1, 3, 12, 0, 800, 800, 672, 480, 4004, 20, 824, 600, 819, 600, 821, 1200, 821, 1200, 820, 600, 822, 600, 823, 600, 4001, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/world/map/db/mob_db_40_59.txt b/world/map/db/mob_db_40_59.txt index 0cf3e83f..63dc0223 100644 --- a/world/map/db/mob_db_40_59.txt +++ b/world/map/db/mob_db_40_59.txt @@ -17,9 +17,10 @@ 1164, ChristmasTree, ChristmasTree, 40, 12000, 0, 3647, 392, 2, 40, 40, 20, 40, 0, 30, 30, 30, 30, 30, 30, 9, 10, 1, 0, 10, 128, 190, 1500, 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1168, Floyd, Floyd, 40, 1500, 0, 555, 150, 3, 25, 50, 60, 5, 30, 10, 23, 30, 20, 40, 50, 9, 10, 1, 3, 12, 129, 800, 1975, 672, 480, 1245, 10, 521, 70, 1257, 5, 529, 150, 529, 800, 4015, 20, 704, 500, 704, 1000, 5290, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40 1180, MisterPrickel, MisterPrickel, 40, 4822, 0, 672, 111, 1, 250, 275, 23, 33, 0, 20, 40, 55, 1, 20, 30, 1, 12, 1, 3, 20, 129, 400, 1000, 452, 0, 501, 300, 502, 200, 613, 800, 613, 400, 569, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40 -1199, SilverSlime, SilverSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 5290, 1000, 5290, 1000, 1226, 1, 4001, 200, 640, 200, 5327, 40, 5292, 300, 5292, 150, 5316, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 -1200, BromenalSlime, BromenalSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 792, 10, 794, 10, 796, 10, 4001, 200, 640, 200, 5327, 40, 5292, 30, 5316, 200, 5316, 100, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 -1201, GoldSlime, GoldSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 1253, 11, 4001, 200, 640, 200, 5327, 40, 5292, 30, 5316, 20, 5314, 100, 5314, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 -1202, IronSlime, IronSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 529, 5000, 529, 2500, 5329, 1, 4001, 200, 640, 2000, 640, 1000, 5327, 40, 5292, 30, 5316, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 -1203, CoalSlime, CoalSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 5332, 1000, 5332, 500, 5332, 250, 4001, 2000, 4001, 1000, 640, 200, 5327, 40, 5292, 30, 5316, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 +1199, SilverSlime, SilverSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 5290, 1000, 5290, 1000, 1226, 1, 4001, 200, 640, 200, 5327, 40, 5316, 30, 5292, 200, 5292, 100, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 +1200, BromenalSlime, BromenalSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 792, 10, 794, 10, 796, 10, 4001, 200, 640, 200, 5327, 40, 5316, 300, 5316, 150, 5292, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 +1201, GoldSlime, GoldSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 1253, 11, 4001, 200, 640, 200, 5327, 40, 5316, 30, 5292, 20, 5314, 100, 5314, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 +1202, IronSlime, IronSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 529, 5000, 529, 2500, 5329, 1, 4001, 200, 640, 2000, 640, 1000, 5327, 40, 5316, 30, 5292, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 +1203, CoalSlime, CoalSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 5332, 1000, 5332, 500, 5332, 250, 4001, 2000, 4001, 1000, 640, 200, 5327, 40, 5316, 30, 5292, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 //ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, CRITDEF,STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop0id,Drop0%, Drop1id,Drop1%, Drop2id,Drop2%, Drop3id,Drop3%, Drop4id,Drop4%, Drop5id,Drop5%, Drop6id,Drop6%, Drop7id,Drop7%, Drop8id,Drop8%, Drop9id,Drop9%, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount,mutationstrength +1225, StoneSlime, StoneSlime, 40, 600, 0, 200, 18, 1, 60, 90, 20, 30, 0, 20, 30, 10, 10, 30, 30, 9, 10, 1, 0, 11, 131, 1200, 1872, 672, 480, 5380, 1000, 5380, 500, 5380, 250, 5381, 100, 4001, 200, 640, 200, 5327, 40, 5316, 30, 5292, 20, 5314, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20 diff --git a/world/map/db/mob_db_over_100.txt b/world/map/db/mob_db_over_100.txt index 8e7c1ff0..b65e3800 100644 --- a/world/map/db/mob_db_over_100.txt +++ b/world/map/db/mob_db_over_100.txt @@ -45,14 +45,14 @@ 1166, Snowman, Snowman, 100, 4200, 0, 2897, 689, 1, 60, 80, 5, 20, 0, 15, 25, 40, 15, 75, 30, 8, 10, 1, 3, 10, 133, 800, 1872, 672, 480, 567, 800, 5310, 800, 568, 800, 4002, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 //ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, CRITDEF,STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop0id,Drop0%, Drop1id,Drop1%, Drop2id,Drop2%, Drop3id,Drop3%, Drop4id,Drop4%, Drop5id,Drop5%, Drop6id,Drop6%, Drop7id,Drop7%, Drop8id,Drop8%, Drop9id,Drop9%, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount,mutationstrength 1167, SnowmanBoss, SnowmanBoss, 100, 35000, 0, 88970, 2689, 4, 220, 240, 77, 50, 0, 45, 20, 110, 150, 255, 110, 14, 16, 1, 3, 10, 165, 700, 1672, 672, 480, 567, 1600, 5310, 1600, 568, 1600, 4002, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1169, CrystalSpider, CrystalSpider, 140, 1000, 0, 800, 200, 1, 80, 95, 8, 12, 0, 20, 15, 20, 11, 45, 30, 1, 1, 1, 0, 22, 139, 1000, 1500, 672, 480, 537, 500, 535, 100, 638, 20, 526, 200, 4002, 20, 4003, 20, 4004, 20, 4005, 20, 4006, 20, 4007, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40 +1169, CrystalSpider, CrystalSpider, 140, 1000, 0, 800, 200, 1, 80, 95, 8, 12, 0, 20, 15, 20, 11, 45, 30, 1, 1, 1, 0, 22, 139, 1000, 1500, 672, 480, 537, 500, 5384, 100, 638, 20, 526, 200, 4002, 20, 4003, 20, 4004, 20, 4005, 20, 4006, 20, 4007, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40 1173, MontBlanc, MontBlanc, 110, 30000, 0, 100300, 500, 12, 777, 1000, 70, 90, 90, 30, 1, 100, 1, 120, 120, 12, 12, 1, 3, 12, 164, 0, 4000, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1174, Emo, Emo, 129, 50150, 80, 150000, 1000, 2, 250, 450, 30, 60, 60, 80, 60, 100, 60, 110, 110, 40, 30, 1, 1, 21, 183, 250, 450, 672, 50, 528, 5000, 532, 200, 5294, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1175, MegaManaBug, MegaManaBug, 111, 675, 0, 275, 40, 1, 60, 85, 3, 8, 0, 16, 14, 15, 20, 30, 30, 9, 10, 1, 4, 12, 137, 800, 1800, 672, 480, 505, 1000, 518, 800, 533, 400, 540, 10, 526, 400, 5309, 1000, 5309, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60 1176, Rotter, Rotter, 130, 6000, 0, 5533, 733, 4, 333, 555, 20, 25, 50, 30, 15, 30, 1, 130, 130, 7, 11, 1, 1, 17, 141, 1200, 2222, 672, 900, 631, 1000, 777, 800, 778, 200, 779, 500, 1198, 500, 5297, 10, 3004, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30 1177, Rot, Rot, 100, 13, 0, 11, 1, 1, 111, 333, 0, 0, 0, 0, 0, 0, 0, 255, 33, 1, 1, 1, 0, 11, 132, 0, 500, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1178, SpiderQueen, SpiderQueen, 145, 7000, 0, 1200, 400, 3, 250, 300, 60, 60, 0, 40, 30, 50, 15, 65, 40, 8, 15, 0, 2, 12, 165, 210, 1200, 550, 450, 518, 2500, 505, 2000, 640, 600, 4001, 800, 5292, 100, 537, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 30 -1179, CrystalSpiderQueen, CrystalSpiderQueen, 150, 9000, 0, 1600, 450, 3, 250, 300, 70, 80, 0, 45, 35, 60, 30, 70, 50, 8, 15, 0, 2, 12, 171, 1000, 1500, 750, 550, 537, 800, 535, 200, 638, 35, 526, 400, 4002, 35, 4003, 35, 4004, 35, 4005, 35, 4006, 35, 4007, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 30 +1179, CrystalSpiderQueen, CrystalSpiderQueen, 150, 9000, 0, 1600, 450, 3, 250, 300, 70, 80, 0, 45, 35, 60, 30, 70, 50, 8, 15, 0, 2, 12, 171, 1000, 1500, 750, 550, 537, 800, 5384, 400, 638, 35, 526, 400, 4002, 35, 4003, 35, 4004, 35, 4005, 35, 4006, 35, 4007, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 30 1184, BoneQuadceratops, BoneQuadceratops, 120, 22000, 0, 12120, 1888, 1, 100, 200, 66, 55, 0, 60, 20, 60, 1, 43, 70, 9, 10, 1, 1, 17, 169, 750, 800, 692, 720, 4023, 10000, 4023, 5000, 4023, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 30 1185, EntAbomination, EntAbomination, 130, 45000, 280, 58000, 1600, 2, 200, 250, 80, 60, 0, 40, 12, 120, 127, 60, 88, 31, 30, 1, 3, 12, 169, 1500, 900, 772, 740, 569, 2000, 569, 2000, 806, 250, 806, 500, 740, 500, 740, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20 1188, Junglefowl, Junglefowl, 125, 25500, 0, 15000, 2125, 1, 175, 250, 45, 47, 0, 70, 99, 80, 22, 99, 70, 7, 11, 1, 2, 12, 169, 400, 1000, 672, 200, 5373, 1000, 5375, 1100, 562, 1000, 562, 500, 4023, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/world/map/db/mob_db_over_150.txt b/world/map/db/mob_db_over_150.txt index 1c3675c9..7c7d9c0e 100644 --- a/world/map/db/mob_db_over_150.txt +++ b/world/map/db/mob_db_over_150.txt @@ -27,7 +27,8 @@ 1149, Enchanter, Enchanter, 181, 19000, 280, 55000, 2000, 8, 140, 180, 30, 60, 0, 31, 22, 90, 127, 255, 105, 31, 10, 1, 1, 37, 181, 240, 800, 672, 50, 537, 800, 779, 90, 780, 80, 777, 70, 1198, 50, 666, 30, 1227, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10 1150, ManaTyrant, ManaTyrant, 180, 24000, 280, 27000, 5000, 2, 300, 325, 42, 67, 0, 31, 22, 90, 127, 255, 95, 31, 10, 1, 1, 37, 181, 180, 1050, 672, 50, 759, 1, 5237, 20, 1253, 5, 720, 100, 825, 500, 868, 20, 1172, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1161, Xakelbael, Xakelbael, 200, 29999, 280, 999999, 99999, 9, 90, 124, 74, 100, 0, 199, 2, 199, 197, 255, 175, 31, 10, 1, 1, 37, 181, 210, 672, 672, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1170, CrystalGolem, CrystalGolem, 180, 25000, 280, 68000, 2200, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 171, 320, 1000, 672, 50, 4002, 50, 4003, 50, 4004, 50, 4005, 50, 4006, 50, 4007, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1171, BlackCrystalGolem, BlackCrystalGolem, 180, 25000, 280, 68000, 2200, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 165, 320, 1000, 672, 50, 631, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1170, CrystalGolem, CrystalGolem, 180, 25000, 280, 68000, 2200, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 169, 320, 1000, 672, 50, 5384, 400, 5384, 200, 5384, 100, 4002, 50, 4003, 50, 4004, 50, 4005, 50, 4006, 50, 4007, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1171, BlackCrystalGolem, BlackCrystalGolem, 180, 25000, 280, 68000, 2200, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 169, 320, 1000, 672, 50, 5385, 400, 5385, 200, 5385, 100, 4002, 50, 4003, 50, 4004, 50, 4005, 50, 4006, 50, 4007, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1183, MobMoubootaur, MobMoubootaur, 220, 99999, 9999, 999999, 99999, 1, 400, 500, 99, 99, 0, 99, 60, 99, 30, 255, 255, 18, 18, 1, 6, 47, 165, 240, 872, 272, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1224, CoalGolem, CoalGolem, 180, 25000, 280, 68000, 2200, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 171, 320, 1000, 672, 50, 5332, 1000, 5332, 500, 5332, 250, 4001, 5000, 4001, 2500, 4001, 1250, 640, 500, 704, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1224, CoalGolem, CoalGolem, 180, 25000, 280, 68000, 2200, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 169, 320, 1000, 672, 50, 5332, 2000, 5332, 1000, 5332, 500, 4001, 4000, 4001, 2000, 4001, 1000, 640, 500, 704, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1226, StoneGolem, StoneGolem, 180, 30000, 280, 70000, 2400, 3, 170, 190, 75, 40, 0, 35, 26, 99, 127, 255, 105, 31, 30, 1, 0, 46, 169, 320, 1000, 672, 50, 5380, 2000, 5380, 1000, 5380, 500, 5381, 200, 4001, 500, 640, 500, 704, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/world/map/db/params.txt b/world/map/db/params.txt index d600b4ad..512d0ac8 100644 --- a/world/map/db/params.txt +++ b/world/map/db/params.txt @@ -28,6 +28,7 @@ NEXTBASEEXP 22 1 NEXTJOBEXP 23 1 Weight 24 1 MaxWeight 25 1 +MaxWeightOverride 27 1 ATK1 41 1 ATK2 42 1 MATK1 43 1 @@ -74,34 +75,36 @@ MUTE_PARTY 1084 1 //MUTE_GUILD 1085 1 AUTOMOD 1086 1 -bMaxHP 6 // MaxHP + n -bMaxSP 8 // MaxSP + n -bStr 13 // STR + n -bAgi 14 // AGI + n -bVit 15 // VIT + n -bInt 16 // INT + n -bDex 17 // DEX + n -bLuk 18 // LUK + n -bAtk 41 // ATK + n (Minimum attack power) -bAtk2 42 // ATK2 + n (Maximum attack power) -bMatk1 43 // MATK1 + n (Maximum magical attack power) -bMatk2 44 // MATK2 + n (Minimum magical attack power) +bMaxHP 6 // MaxHP + n +bMaxSP 8 // MaxSP + n +bStr 13 // STR + n +bAgi 14 // AGI + n +bVit 15 // VIT + n +bInt 16 // INT + n +bDex 17 // DEX + n +bLuk 18 // LUK + n +bMaxWeight 25 // Sets the maximum possible weight to carry to n (bMaxWeight,n;). Note: As a failsafe 1000 is added to n, final weight is n + 1000. +bMaxWeightAdd 26 // Adds n to the maximum possible weight to carry (bMaxWeightAdd,n;). Note: As a failsafe 1000 is added to n, final weight is MaxWeight + n + 1000. +bAtk 41 // ATK + n (Minimum attack power) +bAtk2 42 // ATK2 + n (Maximum attack power) +bMatk1 43 // MATK1 + n (Maximum magical attack power) +bMatk2 44 // MATK2 + n (Minimum magical attack power) // Greatest of MATK1 and MATK2 is taken and becomes MATK1 and MATK2 is set to 0. // So using MATK2 bonus at the moment has no real benefit you only need greater values to reach same as MATK1. // MATK1 += INT + (INT / 5) * (INT / 5); // MATK2 += INT + (INT / 7) * (INT / 7); // The whole magic system is currently handled in serverdata which only uses MATK1 but the magic attack functions // do already exist in servercode only skills must be added there. -bDef 45 // Equipment DEF + n -bDef2 46 // VIT based DEF + n -bMdef 47 // Equipment MDEF + n -bMdef2 48 // INT based MDEF + n -bHit 49 // Hit + n -bFlee 50 // Flee + n -bFlee2 51 // Perfect Dodge + n -bCritical 52 // Critical + n -bAspd 53 // Attack speed + n -bDeaf 70 +bDef 45 // Equipment DEF + n +bDef2 46 // VIT based DEF + n +bMdef 47 // Equipment MDEF + n +bMdef2 48 // INT based MDEF + n +bHit 49 // Hit + n +bFlee 50 // Flee + n +bFlee2 51 // Perfect Dodge + n +bCritical 52 // Critical + n +bAspd 53 // Attack speed + n +bDeaf 70 // Those which can be used with the arrow are only bCritical, bAtkEle, bHit, bAddEle, bAddRace, bAddSize and bAddEff. The other bonuses are ignored. // For more information, have a look here: http://code.google.com/p/eathena/source/browse/trunk/doc/item_bonus.txt diff --git a/world/map/npc/functions/global_event_handler.txt b/world/map/npc/functions/global_event_handler.txt index d169f3c7..b1c5917e 100644 --- a/world/map/npc/functions/global_event_handler.txt +++ b/world/map/npc/functions/global_event_handler.txt @@ -19,6 +19,7 @@ OnPCLoginEvent: callfunc "ConvertChristmas21"; // Christmas 2021 callfunc "VaultLogin"; // Mirror Lake Protocol biddings callfunc "VaultLogout"; // Clean some stuff, to be safe + if (WEIGHT_LIMIT) set MaxWeightOverride, WEIGHT_LIMIT; // If this char var set, override max weight (tradebots, etc) // add more here set @login_event, 2; end; @@ -45,7 +46,7 @@ OnPCDieEvent: end; OnPCLogoutEvent: -// if (getnpcid("#Upmarmu#" + getcharid(3)) >= 1) addnpctimer 0, "#Upmarmu#" + getcharid(3) + "::OnDestroy"; // @upmarmu_spell_npc_name$ is already lost at this point so it must be done like this + if (getnpcid("#Upmarmu#" + getcharid(3)) >= 1) addnpctimer 0, "#Upmarmu#" + getcharid(3) + "::OnDestroy"; // @upmarmu_spell_npc_name$ is already lost at this point so it must be done like this callfunc "VaultLogout"; end; diff --git a/world/map/npc/items/anchor_stone.txt b/world/map/npc/items/anchor_stone.txt new file mode 100644 index 00000000..c1ea722b --- /dev/null +++ b/world/map/npc/items/anchor_stone.txt @@ -0,0 +1,56 @@ +function|script|useAnchorStone +{ + addtimer 0, "AS_Core::OnUse"; + return; +} + +-|script|AS_Core|32767 +{ + end; + +OnUse: + if ( @StoneName$ == "AnchorStone" ) goto L_AnchorStone; + if ( @StoneName$ == "AnchoredAnchorStone" ) goto L_AnchoredAnchorStone; + goto L_Close; + +L_AnchorStone: + mes "\"You really want to bind the [@@" + AnchorStone + "|@@] to this place?\""; + menu + "No", L_Close, + "Yes", L_AS_Yes; + +L_AS_Yes: + set AnchorStoneDest, getmaphash(getmap()); // since a hash could be negative I take a separate variable for that since shifting would destroy the sign bit and create a different hash + set AnchorStoneDestCoord, gety() << AS_Y_SHIFT | getx() << AS_X_SHIFT; + + delitem AnchorStone, 1; + getitem AnchoredAnchorStone, 1; + close; + +L_AnchoredAnchorStone: + if ((AnchorStoneDest < 1) && (AnchorStoneDest > -1)) goto L_AAS_Error; + mes "\"You want to recall to the place the [@@" + AnchoredAnchorStone + "|@@] is bound to?\""; + menu + "No", L_Close, + "Yes", L_AAS_Yes; + +L_AAS_Yes: + warp getmapnamefromhash(AnchorStoneDest), (AnchorStoneDestCoord & AS_X_MASK >> AS_X_SHIFT), (AnchorStoneDestCoord & AS_Y_MASK >> AS_Y_SHIFT); + + goto L_AAStoAS; + +L_AAS_Error: + mes "\"Something went wrong the [@@" + AnchoredAnchorStone + "|@@] lost its destination and turns back to normal.\""; + goto L_AAStoAS; + +L_AAStoAS: + set AnchorStoneDest, 0; + set AnchorStoneDestCoord, 0; + + delitem AnchoredAnchorStone, 1; + getitem AnchorStone, 1; + close; + +L_Close: + close; +} diff --git a/world/map/npc/magic/event-summon-managuardian.txt b/world/map/npc/magic/event-summon-managuardian.txt index e66c3eb7..1aa172ad 100644 --- a/world/map/npc/magic/event-summon-managuardian.txt +++ b/world/map/npc/magic/event-summon-managuardian.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; // FIXME: Incomplete check, should still work during sieges - if (getmapflag(getmap(), MF_TOWN)) end; if (Sp < 100) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (countitem("TinyManaElixir") < 1) end; diff --git a/world/map/npc/magic/event-summon-manatyrant.txt b/world/map/npc/magic/event-summon-manatyrant.txt index bf2634c5..ff082930 100644 --- a/world/map/npc/magic/event-summon-manatyrant.txt +++ b/world/map/npc/magic/event-summon-manatyrant.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if ($DOOMSDAY_SUMMON < 2) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (Sp < 100) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (countitem("LargeManaElixir") < 1) end; diff --git a/world/map/npc/magic/level1-summon-maggots.txt b/world/map/npc/magic/level1-summon-maggots.txt index 05cadbc8..ce95422c 100644 --- a/world/map/npc/magic/level1-summon-maggots.txt +++ b/world/map/npc/magic/level1-summon-maggots.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 21) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (countitem("InsectSlime") < 1 || countitem("Root") < 1) end; if (getmap() == "033-1") goto L_SpecialRules6; diff --git a/world/map/npc/magic/level2-magic-knuckles.txt b/world/map/npc/magic/level2-magic-knuckles.txt index a67941cf..92ee07a5 100644 --- a/world/map/npc/magic/level2-magic-knuckles.txt +++ b/world/map/npc/magic/level2-magic-knuckles.txt @@ -1,7 +1,7 @@ -|script|magic-knuckles|32767 { if @_U_BLOCK >= 1 goto L_Still_Exhausted; -/* + set @upmarmu_spell_npc_name$, "#Upmarmu#" + getcharid(3); // make a unique puppet name for every player set .upmarmu_spell_npc, getnpcid(@upmarmu_spell_npc_name$); if ( .upmarmu_spell_npc >= 1 ) goto L_NPC_Exists; // if this npc already exist reuse it so that idle recovery timer does not get destroyed @@ -12,7 +12,6 @@ goto L_NPC_Exists; L_NPC_Exists: -*/ if (call("magic_checks")) end; if (Sp < 20) end; if (getskilllv(SKILL_MAGIC) < .level) end; @@ -49,35 +48,29 @@ OnAttack: if (target(BL_ID, @target_id, 22) != 22) goto L_FreeRecast; // 0x10 | 0x02 | 0x04 void call("elt_damage", @upmarmuspell[0], (@upmarmuspell[3] + @upmarmuspell[4]), ELT_WATER, ELT_FIRE, FX_NONE); -// addtimer 0, @upmarmu_spell_npc_name$ + "::OnResetTimer"; + addtimer 0, @upmarmu_spell_npc_name$ + "::OnResetTimer"; set @upmarmuspell[1], @upmarmuspell[1] - 1; + + if @num_upmarmu_hits >= UPMARMU_HITS_TILL_EXHAUST goto L_FreeRecast; set @num_upmarmu_hits, @num_upmarmu_hits + 1; + if @num_upmarmu_hits >= UPMARMU_HITS_TILL_EXHAUST set .exhausted, 1, .upmarmu_spell_npc; - if @num_upmarmu_hits >= UPMARMU_HITS_TILL_EXHAUST goto L_Exhausted; goto L_FreeRecast; L_FreeRecast: if (@upmarmuspell[1] > 0) addtimer 0, strnpcinfo(0) + "::OnSetRecast"; + else + addtimer 0, @upmarmu_spell_npc_name$ + "::OnExhausted"; end; -L_Exhausted: - set @_U_BLOCK, 1; - set @upmarmuspell[1], 0; - misceffect FX_MAGIC_DISCHARGE, strcharinfo(0); - overrideattack; - addtimer UPMARMU_EXHAUST_DURATION, "Upmarmu Exhaust Timer::OnClear"; // set the exhaustion time - sc_start SC_COOLDOWN_UPMARMU, UPMARMU_EXHAUST_DURATION, 0, BL_ID; - smsg SMSG_FAILURE, "Magic: You are too exhausted to use this spell for a while!"; - goto L_StopTimer; - L_Still_Exhausted: smsg SMSG_FAILURE, "Magic: You are still too exhausted to use this spell for a while!"; end; L_StopTimer: -// addtimer 0, @upmarmu_spell_npc_name$ + "::OnStopTimer"; + addtimer 0, @upmarmu_spell_npc_name$ + "::OnStopTimer"; end; OnDischarge: @@ -91,7 +84,6 @@ OnSetRecast: overrideattack (@upmarmuspell[2] * @upmarmuspell[2]), 1, ATTACK_ICON_GENERIC, OVERRIDE_KNUCKLES, strnpcinfo(0)+"::OnAttack", @upmarmuspell[1]; // delay needs to be squared end; -/* OnResetTimer: // This timer is if you stopped somewhere below max hits then after 25sec you recover fully and start at 0 hits again stopnpctimer; @@ -117,9 +109,20 @@ OnTimer25000: setnpctimer 0; end; +OnExhausted: + if (.exhausted < 1) end; + + set @_U_BLOCK, 1; + set @upmarmuspell[1], 0; + set @num_upmarmu_hits, 0; + set .exhausted, 0; + addtimer UPMARMU_EXHAUST_DURATION, "Upmarmu Exhaust Timer::OnClear"; // set the exhaustion time + sc_start SC_COOLDOWN_UPMARMU, UPMARMU_EXHAUST_DURATION, 0, BL_ID; + smsg SMSG_FAILURE, "Magic: You are too exhausted to use this spell for a while!"; + goto L_StopTimer; + OnDestroy: destroy; -*/ OnInit: set .school, SKILL_MAGIC_WAR; @@ -136,6 +139,5 @@ OnInit: OnClear: set @_U_BLOCK, 0; - set @num_upmarmu_hits, 0; end; } diff --git a/world/map/npc/magic/level2-summon-fluffies.txt b/world/map/npc/magic/level2-summon-fluffies.txt index f10a86b5..fef40a17 100644 --- a/world/map/npc/magic/level2-summon-fluffies.txt +++ b/world/map/npc/magic/level2-summon-fluffies.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 39) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("WhiteFur") < 1 || countitem("Root") < 1) end; diff --git a/world/map/npc/magic/level2-summon-mouboo.txt b/world/map/npc/magic/level2-summon-mouboo.txt index c692e9cf..8a8603c6 100644 --- a/world/map/npc/magic/level2-summon-mouboo.txt +++ b/world/map/npc/magic/level2-summon-mouboo.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 35) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("MoubooFigurine") < 1 || countitem("Root") < 1) end; diff --git a/world/map/npc/magic/level2-summon-pinkie.txt b/world/map/npc/magic/level2-summon-pinkie.txt index 61af9eed..b4774584 100644 --- a/world/map/npc/magic/level2-summon-pinkie.txt +++ b/world/map/npc/magic/level2-summon-pinkie.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 35) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("PinkAntenna") < 1 || countitem("Root") < 1) end; diff --git a/world/map/npc/magic/level2-summon-snakes.txt b/world/map/npc/magic/level2-summon-snakes.txt index 0723961b..5815cef5 100644 --- a/world/map/npc/magic/level2-summon-snakes.txt +++ b/world/map/npc/magic/level2-summon-snakes.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 40) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("DarkCrystal") < 1 || countitem("SnakeEgg") < 1) end; diff --git a/world/map/npc/magic/level2-summon-spiky-mushroom.txt b/world/map/npc/magic/level2-summon-spiky-mushroom.txt index 701648d5..0f884185 100644 --- a/world/map/npc/magic/level2-summon-spiky-mushroom.txt +++ b/world/map/npc/magic/level2-summon-spiky-mushroom.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 33) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("HardSpike") < 1 || countitem("Root") < 1) end; diff --git a/world/map/npc/magic/level2-summon-wickedmushroom.txt b/world/map/npc/magic/level2-summon-wickedmushroom.txt index 014a5d80..7d0e93c1 100644 --- a/world/map/npc/magic/level2-summon-wickedmushroom.txt +++ b/world/map/npc/magic/level2-summon-wickedmushroom.txt @@ -5,7 +5,6 @@ OnCast: if(call("magic_checks")) end; if (Sp < 42) end; - if (getmapflag(getmap(), MF_TOWN)) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("DarkCrystal") < 1 || countitem("SmallMushroom") < 1) end; diff --git a/world/map/npc/mobs/miner_mania.txt b/world/map/npc/mobs/miner_mania.txt index 445c82e0..a496697d 100644 --- a/world/map/npc/mobs/miner_mania.txt +++ b/world/map/npc/mobs/miner_mania.txt @@ -53,7 +53,7 @@ Note: setarray $@slime_mine_maps_y0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1; setarray $@slime_mine_maps_x1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, -1; setarray $@slime_mine_maps_y1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 170, -1; - setarray $@slimes, CopperSlime, SilverSlime, BromenalSlime, GoldSlime, IronSlime, CoalSlime; + setarray $@slimes, CopperSlime, SilverSlime, BromenalSlime, GoldSlime, IronSlime, CoalSlime, StoneSlime; // Bifs ----------------------------- diff --git a/world/map/npc/mobs/mob_points.txt b/world/map/npc/mobs/mob_points.txt index d0ede2f1..2589f1eb 100644 --- a/world/map/npc/mobs/mob_points.txt +++ b/world/map/npc/mobs/mob_points.txt @@ -232,7 +232,9 @@ function|script|MobPoints 1, // 1221 SmallRubyBif 1, // 1222 SmallSapphireBif 1, // 1223 SmallTopazBif - 200 // 1224 CoalGolem + 200, // 1224 CoalGolem + 25, // 1225 StoneSlime + 200 // 1226 StoneGolem ; // END // the following mobs where replaced by other mobs: diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf index 17045566..b0a5f0c2 100644 --- a/world/map/npc/scripts.conf +++ b/world/map/npc/scripts.conf @@ -64,6 +64,7 @@ npc: npc/items/underworld_troll.txt npc: npc/items/silver_bell.txt npc: npc/items/shovel.txt npc: npc/items/maps.txt +npc: npc/items/anchor_stone.txt // Mob Functions npc: npc/mobs/miner_mania.txt |