diff options
Diffstat (limited to 'world')
91 files changed, 665 insertions, 224 deletions
diff --git a/world/map/db/const-aegis.txt b/world/map/db/const-aegis.txt index c5c19c0f..bdd40fde 100644 --- a/world/map/db/const-aegis.txt +++ b/world/map/db/const-aegis.txt @@ -76,7 +76,7 @@ AmethystRing 4013 SimpleRing 4014 HeartNecklace 677 GuardianWings 5252 -MageRing 5253 +MagicRing 5253 ManaPearl 5270 AssassinRing 5268 AssassinAmulet 5269 diff --git a/world/map/db/item_db.conf b/world/map/db/item_db.conf index 56d61dd2..fca1e95e 100644 --- a/world/map/db/item_db.conf +++ b/world/map/db/item_db.conf @@ -821,20 +821,28 @@ item_db: ( AegisName: "LongSword" Name: "LongSword" Type: "IT_WEAPON" - Buy: 1000 - Sell: 500 + Buy: 20000 + Sell: 10000 Weight: 1300 - Atk: 150 + Atk: 149 Range: 1 Slots: 1 Loc: "EQP_HAND_R" - WeaponLv: 1 + WeaponLv: 2 EquipLv: 1 Refine: false ViewSprite: 1 Subtype: "W_1HSWORD" + OnEquipScript: <" + callfunc "RequireStat", bStr, 31, EQI_HAND_R; + callfunc "RequireStat", bVit, 67, EQI_HAND_R; + callfunc "RequireStat", bDex, 59, EQI_HAND_R; + callfunc "RequireStat", bLuk, 61, EQI_HAND_R; + "> Script: <" - callfunc "UnreleasedItem", EQI_HAND_R; + bonus bBaseWeaponDelayAdjust, -11; // @TMWA + bonus bPerfectHitRate, 11; + bonus bPerfectHitAddRate, 7; "> }, { @@ -1018,6 +1026,7 @@ item_db: ( Subtype: "W_1HSWORD" Script: <" bonus bLuk, 1; + bonus bCriticalDef, 5; "> }, { @@ -1111,7 +1120,7 @@ item_db: ( Buy: 10000 Sell: 5000 Weight: 350 - Atk: 1 + Atk: 50 Range: 3 Slots: 1 Loc: ["EQP_HAND_L", "EQP_HAND_R"] @@ -1128,7 +1137,7 @@ item_db: ( Buy: 10000 Sell: 5000 Weight: 350 - Atk: 1 + Atk: 50 Range: 3 Slots: 1 Loc: ["EQP_HAND_L", "EQP_HAND_R"] @@ -1802,8 +1811,8 @@ item_db: ( }, { Id: 5253 - AegisName: "MageRing" - Name: "MageRing" + AegisName: "MagicRing" + Name: "MagicRing" Type: "IT_ARMOR" Buy: 0 Sell: 0 @@ -1811,9 +1820,14 @@ item_db: ( Def: 0 Slots: 0 Loc: "EQP_ACC_R" + EquipLv: 80 Refine: false ViewSprite: 5253 + OnEquipScript: <" + callfunc "RequireStat", bInt, 80, EQI_ACC_R; + "> Script: <" + callfunc "MagicRingItem", EQI_ACC_R; bonus bInt, 1; "> }, @@ -1822,9 +1836,9 @@ item_db: ( AegisName: "ManaPearl" Name: "Mana Pearl" Type: "IT_ARMOR" - Buy: 1000 - Sell: 1 - Weight: 3 + Buy: 0 + Sell: 0 + Weight: 0 Matk: 22 Def: 0 Slots: 0 @@ -1832,6 +1846,7 @@ item_db: ( Refine: false ViewSprite: 5272 Script: <" + callfunc "ManaPearlItem", EQI_ARMOR; bonus bInt, 1; bonus bMatkRate, 22; // @EVOL2 bonus bMaxSP, 55; @@ -11365,14 +11380,14 @@ item_db: ( Buy: 20000 Sell: 1500 Weight: 800 - Matk: -20 - Def: 10 + Matk: -30 + Def: 15 Slots: 0 Loc: "EQP_HEAD_TOP" Refine: false ViewSprite: 801 Script: <" - bonus bMatkRate, -20; // @EVOL2 + bonus bMatkRate, -30; // @EVOL2 bonus bLuk, 1; "> }, @@ -18070,6 +18085,7 @@ item_db: ( Refine: false ViewSprite: 585 Script: <" + bonus bInt, 1; bonus bMatkRate, 5; // @EVOL2 "> }, diff --git a/world/map/db/item_db_head.txt b/world/map/db/item_db_head.txt index 08a7b5c1..af98ead6 100644 --- a/world/map/db/item_db_head.txt +++ b/world/map/db/item_db_head.txt @@ -54,7 +54,7 @@ 781, WitchDoctorsMask, 5, 20000, 100, 20, 0, 3, 0, 0, 0, 2, 256, 0, 0, 0, 0, {}, {} 795, BromenalHelmet, 5, 15000, 1500, 400, 0, 16, 0, -30, 0, 2, 256, 0, 0, 0, 0, {}, {} 800, BowlerHatBrown, 5, 2500, 1250, 30, 0, 10, 0, 2, 0, 2, 256, 0, 0, 0, 0, {}, {} -801, PinkieHelmet, 5, 20000, 1500, 800, 0, 10, 0, -20, 0, 2, 256, 0, 0, 0, 0, {}, {bonus bLuk, 1;} +801, PinkieHelmet, 5, 20000, 1500, 800, 0, 15, 0, -30, 0, 2, 256, 0, 0, 0, 0, {}, {bonus bLuk, 1;} 848, Earmuffs, 5, 1000, 500, 20, 0, 2, 0, -1, 0, 2, 256, 0, 0, 0, 0, {}, {} 854, ElfNightcap, 5, 1000, 500, 50, 0, 3, 0, 5, 0, 2, 256, 0, 0, 0, 0, {}, {} 855, Sunglasses, 5, 1000, 500, 10, 0, 2, 0, 6, 0, 2, 256, 0, 0, 0, 0, {}, {} diff --git a/world/map/db/item_db_offhand.txt b/world/map/db/item_db_offhand.txt index 39d5d4a4..36aee645 100644 --- a/world/map/db/item_db_offhand.txt +++ b/world/map/db/item_db_offhand.txt @@ -2,7 +2,7 @@ //DO NOT EDIT IT DIRECTLY //Edit item_db.conf instead! //ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} -585, ScarabArmlet, 5, 8000, 4000, 200, 0, 0, 0, 5, 0, 2, 32, 0, 1, 0, 0, {}, {} +585, ScarabArmlet, 5, 8000, 4000, 200, 0, 0, 0, 5, 0, 2, 32, 0, 1, 0, 0, {}, {bonus bInt, 1;} 601, SteelShield, 5, 40000, 3000, 2500, 0, 20, 0, -200, 0, 2, 32, 0, 0, 0, 0, {}, {} 602, WoodenShield, 5, 10000, 2000, 1500, 0, 14, 0, -70, 0, 2, 32, 0, 0, 0, 0, {}, {} 603, LeatherShield, 5, 2000, 1000, 1300, 0, 7, 0, -35, 0, 2, 32, 0, 0, 0, 0, {}, {} diff --git a/world/map/db/item_db_trinket.txt b/world/map/db/item_db_trinket.txt index 30d84c04..5d94dc8a 100644 --- a/world/map/db/item_db_trinket.txt +++ b/world/map/db/item_db_trinket.txt @@ -24,7 +24,7 @@ 4014, SimpleRing, 5, 100000, 2500, 5, 0, 0, 0, 0, 0, 2, 128, 0, 0, 0, 0, {}, {} //ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} 5252, GuardianWings, 5, 0, 0, 1, 0, 0, 0, 0, 0, 2, 16, 0, 0, 0, 0, {}, {} -5253, MageRing, 5, 0, 0, 3, 0, 0, 0, 0, 0, 2, 128, 0, 0, 0, 0, {}, {bonus bInt, 1;} +5253, MagicRing, 5, 0, 0, 3, 0, 0, 0, 0, 0, 2, 128, 0, 80, 0, 0, {}, {set @bStat, Int; set @minbStatVal, 80; callfunc "RequireStat"; callfunc "MagicRingItem"; bonus bInt, 1;} //5268, AssassinRing, 5, 1000, 1, 5, 0, 0, 0, 0, 0, 2, 128, 0, 0, 0, 0, {}, {callfunc "BrawlingItem"; bonus bAgi, 1; bonus bCritical, 5; bonus bAspdRate, 5;} //5269, AssassinAmulet, 5, 1000, 1, 10, 0, 0, 0, 0, 0, 2, 16, 0, 0, 0, 0, {}, {callfunc "BrawlingItem"; bonus bAgi, 1; bonus bDoubleAddRate, 5; bonus bHit, 25;} -5270, ManaPearl, 5, 1000, 1, 3, 0, 0, 0, 22, 0, 2, 16, 0, 0, 0, 0, {}, {bonus bInt, 1; bonus bMaxSP, 55; bonus bMdef, 22; bonus bSPrecovRate, 33;} +5270, ManaPearl, 5, 0, 0, 0, 0, 0, 0, 22, 0, 2, 16, 0, 0, 0, 0, {}, {callfunc "ManaPearlItem"; bonus bInt, 1; bonus bMaxSP, 55; bonus bMdef, 22; bonus bSPrecovRate, 33;} diff --git a/world/map/db/item_db_weapon.txt b/world/map/db/item_db_weapon.txt index 1c22799d..ddfae1a4 100644 --- a/world/map/db/item_db_weapon.txt +++ b/world/map/db/item_db_weapon.txt @@ -32,20 +32,20 @@ 587, Sword, 4, 1000, 500, 1500, 140, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} 588, BastardSword, 4, 1000, 500, 1500, 150, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} 590, DragonSword, 4, 8000, 4000, 1050, 171, 0, 1, 0, 0, 2, 2, 2, 99, 2, 0, {}, {set @bStat, Str; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Agi; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Vit; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Dex; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Luk; set @minbStatVal, 50; callfunc "RequireStat"; bonus bStr, 5; bonus bAspdRate, 2; bonus bHit, 5; bonus bBaseWeaponDelayAdjust, -25;} -591, LongSword, 4, 1000, 500, 1300, 150, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} +591, LongSword, 4, 20000, 10000, 1300, 149, 0, 1, 0, 0, 2, 2, 2, 1, 2, 0, {}, {bonus bBaseWeaponDelayAdjust, -11; bonus bPerfectHitRate, 11; bonus bPerfectHitAddRate, 7;} 594, Spear, 4, 1000, 500, 200, 110, 0, 1, 0, 0, 2, 2, 1, 1, 4, 0, {}, {callfunc "UnreleasedItem";} 596, Pike, 4, 20, 10, 3000, 170, 8, 2, 0, 0, 2, 34, 2, 0, 5, 0, {}, {callfunc "UnreleasedItem";} 609, ImperialBow, 4, 101000, 40000, 900, 110, 0, 6, -9, 0, 2, 34, 1, 90, 11, 0, {}, {set @bStat, Dex; set @minbStatVal, 80; callfunc "RequireStat"; bonus2 bHPDrainRate, 100, 4; bonus bCriticalDef, 10; bonus bFlee, 10; bonus bAspdRate, 10; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} 623, Scythe, 4, 100, 50, 1200, 120, 5, 2, 0, 0, 2, 34, 2, 1, 23, 0, {}, {} 758, WoodenStaff, 4, 4000, 2000, 800, 50, 3, 2, 10, 0, 2, 34, 1, 1, 23, 0, {}, {set @bStat, Int; set @minbStatVal, 60; callfunc "RequireStat";} 762, TerraniteArrow, 10, 80, 20, 1, 50, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {bonus bCritical, 20; set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} -867, IceGladius, 4, 2000, 1000, 1000, 130, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {bonus bLuk, 1;} +867, IceGladius, 4, 2000, 1000, 1000, 130, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {bonus bLuk, 1; bonus bCriticalDef, 5;} 878, BansheeBow, 4, 101000, 40000, 900, 140, 0, 6, -9, 0, 2, 34, 1, 90, 11, 0, {}, {set @bStat, Dex; set @minbStatVal, 80; callfunc "RequireStat"; bonus2 bHPDrainRate, 100, -2; bonus bAspdRate, 20; bonus bMaxHP, -150; bonus bSpeedAddRate, 10; bonus bDefRate, -40; bonus bDef2Rate, -35; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} 903, SlingShot, 4, 500, 50, 50, 5, 0, 4, 0, 0, 2, 34, 1, 1, 11, 0, {}, {set @LauncherType, AMMO_SLING; callfunc "CheckLauncher";} 904, SlingBullet, 10, 1, 0, 1, 3, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {set @AmmoType, AMMO_SLING; callfunc "CheckAmmo";} //ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} -906, KidBook, 4, 10000, 5000, 350, 1, 0, 3, 0, 0, 2, 34, 1, 1, 15, 0, {}, {} -907, FloydBook, 4, 10000, 5000, 350, 1, 0, 3, 0, 0, 2, 34, 1, 135, 15, 7, {}, {} +906, KidBook, 4, 10000, 5000, 350, 50, 0, 3, 0, 0, 2, 34, 1, 1, 15, 0, {}, {} +907, FloydBook, 4, 10000, 5000, 350, 50, 0, 3, 0, 0, 2, 34, 1, 135, 15, 7, {}, {} 910, Rainerang, 4, 10000, 5000, 115, 60, 0, 4, 0, 0, 2, 2, 1, 0, 11, 32, {}, {set @LauncherType, AMMO_DONT_USE; callfunc "CheckLauncher";} 1170, SweetTooth, 4, 4000, 2000, 1000, 50, 0, 2, 15, 0, 2, 34, 1, 1, 23, 0, {}, {set @bStat, Int; set @minbStatVal, 60; callfunc "RequireStat";} 1171, Wand, 4, 400, 200, 100, 1, 0, 1, 5, 0, 2, 2, 1, 1, 10, 0, {}, {set @bStat, Int; set @minbStatVal, 5; callfunc "RequireStat";} diff --git a/world/map/db/mob_db.conf b/world/map/db/mob_db.conf index d33b30c4..9ca96eee 100644 --- a/world/map/db/mob_db.conf +++ b/world/map/db/mob_db.conf @@ -427,7 +427,7 @@ mob_db: ( MutationCount: 3 MutationStrength: 50 Drops: { - CaveSnakeLamp: 1000 + CaveSnakeLamp: 1500 JeansShorts: (40, "ODG_BASICSTAT") CaveSnakeTongue: 500 CaveSnakeEgg: 400 @@ -3930,7 +3930,7 @@ mob_db: ( RottenRags: 70 Soul: 50 BlackRose: 30 - MageRing: 4 + MagicRing: 4 BlinkingHocus: 1 } }, @@ -7990,6 +7990,7 @@ mob_db: ( Boots: 5000 LeatherGloves: 200 CrazyRum: 500 + LongSword: (1, "ODG_BASICSTAT") } }, { diff --git a/world/map/db/mob_db_20_39.txt b/world/map/db/mob_db_20_39.txt index 1cc401e8..cc7cc1ca 100644 --- a/world/map/db/mob_db_20_39.txt +++ b/world/map/db/mob_db_20_39.txt @@ -7,7 +7,7 @@ 1018, Pinkie, Pinkie, 30, 300, 0, 60, 7, 2, 15, 20, 0, 5, 0, 1, 1, 1, 0, 20, 25, 2, 10, 1, 3, 10, 129, 800, 1872, 672, 480, 614, 1000, 751, 40, 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, 3, 50 1019, SpikyMushroom, SpikyMushroom, 30, 300, 0, 54, 5, 1, 10, 13, 0, 5, 0, 1, 1, 1, 0, 10, 10, 9, 10, 1, 3, 10, 129, 800, 1872, 672, 480, 567, 800, 501, 150, 518, 50, 613, 400, 5334, 30, 5360, 100, 630, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40 1020, Fluffy, Fluffy, 30, 500, 0, 100, 7, 1, 6, 10, 1, 5, 0, 1, 2, 1, 0, 20, 25, 9, 10, 1, 3, 10, 129, 800, 1600, 672, 480, 611, 800, 527, 150, 535, 400, 752, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40 -1021, CaveSnake, CaveSnake, 30, 800, 0, 157, 13, 1, 20, 15, 1, 5, 0, 10, 1, 1, 0, 5, 20, 9, 10, 1, 3, 10, 129, 800, 1872, 672, 480, 612, 1000, 610, 40, 713, 500, 717, 400, 717, 400, 641, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50 +1021, CaveSnake, CaveSnake, 30, 800, 0, 157, 13, 1, 20, 15, 1, 5, 0, 10, 1, 1, 0, 5, 20, 9, 10, 1, 3, 10, 129, 800, 1872, 672, 480, 612, 1500, 610, 40, 713, 500, 717, 400, 717, 400, 641, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50 1025, LogHead, LogHead, 30, 500, 0, 150, 5, 1, 10, 20, 50, 5, 0, 1, 1, 1, 0, 20, 25, 9, 10, 1, 3, 12, 129, 800, 1872, 672, 480, 569, 2000, 740, 2500, 743, 3000, 569, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 50 1027, EasterFluffy, EasterFluffy, 30, 500, 0, 100, 7, 1, 10, 12, 0, 5, 0, 1, 1, 1, 0, 20, 25, 9, 10, 1, 3, 10, 129, 800, 1872, 672, 480, 1208, 2000, 1209, 2000, 1210, 2000, 1211, 1000, 1212, 1000, 1213, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40 1035, Silkworm, Silkworm, 20, 1, 0, 1, 1, 1, 0, 0, 2, 10, 0, 20, 11, 10, 10, 40, 10, 9, 10, 1, 0, 10, 129, 1300, 1100, 672, 480, 718, 5000, 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, 2, 40 diff --git a/world/map/db/mob_db_over_100.txt b/world/map/db/mob_db_over_100.txt index b65e3800..83fcf351 100644 --- a/world/map/db/mob_db_over_100.txt +++ b/world/map/db/mob_db_over_100.txt @@ -47,7 +47,7 @@ 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, 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 +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, 591, 1, 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 diff --git a/world/map/langs/lang_de.txt b/world/map/langs/lang_de.txt index 91937e13..76a577ce 100644 --- a/world/map/langs/lang_de.txt +++ b/world/map/langs/lang_de.txt @@ -647,7 +647,7 @@ Auldsbel places the logs next to his hut. Auldsbel the Wizard -Auldsbel#_M +Auldsbel Aureole @@ -2198,7 +2198,7 @@ Elanore smiles. Elanore the Healer -Elanore#_M +Elanore ElfNightcap @@ -2453,7 +2453,7 @@ For unfocusing you need to bring a potion; a special potion. That potion is not For your deeds, I shall bestow upon you %d %s. Use them wisely, they are the results of your hard effort. -Forest Mana Seed#_M +Forest Mana Seed ForestArmor @@ -4139,7 +4139,7 @@ Luvia? MTJarofOwnBlood -MageRing +MagicRing MagentaHint @@ -4379,7 +4379,7 @@ Muuuuuuuuuuuuuuuuuuuh! MopoxCurePotion -Morgan#_M +Morgan MorganDebug @@ -4706,7 +4706,7 @@ Old Chest#crastur Old Man -Old Wizard#_W +Old Wizard Old Woman @@ -5240,7 +5240,7 @@ Poppet Pot -Potions#_M +Potions Practice! There are no secrets to becoming a warrior. @@ -5816,7 +5816,7 @@ Sabine Sabre -Sagatha#_M +Sagatha Said to have the key to stop Zax De'Kagen's ambitions. @@ -7613,7 +7613,7 @@ Wyara is the Hurnscald town witch. She was also the town healer before the Docto Wyara the Witch -Wyara#_M +Wyara Xakelbael diff --git a/world/map/langs/lang_en.txt b/world/map/langs/lang_en.txt index c3723151..f55161d5 100644 --- a/world/map/langs/lang_en.txt +++ b/world/map/langs/lang_en.txt @@ -647,8 +647,8 @@ Auldsbel places the logs next to his hut. Auldsbel the Wizard Auldsbel the Wizard -Auldsbel#_M -Auldsbel#_M +Auldsbel +Auldsbel Aureole Aureole @@ -2198,8 +2198,8 @@ Elanore smiles. Elanore the Healer Elanore the Healer -Elanore#_M -Elanore#_M +Elanore +Elanore ElfNightcap ElfNightcap @@ -2453,8 +2453,8 @@ For unfocusing you need to bring a potion; a special potion. That potion is not For your deeds, I shall bestow upon you %d %s. Use them wisely, they are the results of your hard effort. For your deeds, I shall bestow upon you %d %s. Use them wisely, they are the results of your hard effort. -Forest Mana Seed#_M -Forest Mana Seed#_M +Forest Mana Seed +Forest Mana Seed ForestArmor ForestArmor @@ -4139,8 +4139,8 @@ Luvia? MTJarofOwnBlood MTJarofOwnBlood -MageRing -MageRing +MagicRing +MagicRing MagentaHint MagentaHint @@ -4379,8 +4379,8 @@ Moooooooooooo! MopoxCurePotion MopoxCurePotion -Morgan#_M -Morgan#_M +Morgan +Morgan MorganDebug MorganDebug @@ -4706,8 +4706,8 @@ Old Chest#crastur Old Man Old Man -Old Wizard#_W -Old Wizard#_W +Old Wizard +Old Wizard Old Woman Old Woman @@ -5240,8 +5240,8 @@ Poppet Pot Pot -Potions#_M -Potions#_M +Potions +Potions Practice! There are no secrets to becoming a warrior. Practice! There are no secrets to becoming a warrior. @@ -5816,8 +5816,8 @@ Sabine Sabre Sabre -Sagatha#_M -Sagatha#_M +Sagatha +Sagatha Said to have the key to stop Zax De'Kagen's ambitions. Said to have the key to stop Zax De'Kagen's ambitions. @@ -7613,8 +7613,8 @@ Wyara is the Hurnscald town witch. She was also the town healer before the Docto Wyara the Witch Wyara the Witch -Wyara#_M -Wyara#_M +Wyara +Wyara Xakelbael Xakelbael diff --git a/world/map/langs/lang_es.txt b/world/map/langs/lang_es.txt index 08bcedf5..e94773c3 100644 --- a/world/map/langs/lang_es.txt +++ b/world/map/langs/lang_es.txt @@ -647,7 +647,7 @@ Auldsbel places the logs next to his hut. Auldsbel the Wizard -Auldsbel#_M +Auldsbel Aureole @@ -2198,7 +2198,7 @@ Elanore smiles. Elanore the Healer -Elanore#_M +Elanore ElfNightcap @@ -2453,7 +2453,7 @@ For unfocusing you need to bring a potion; a special potion. That potion is not For your deeds, I shall bestow upon you %d %s. Use them wisely, they are the results of your hard effort. -Forest Mana Seed#_M +Forest Mana Seed ForestArmor @@ -4139,7 +4139,7 @@ Luvia? MTJarofOwnBlood -MageRing +MagicRing MagentaHint @@ -4379,7 +4379,7 @@ Moooooooooooo! MopoxCurePotion -Morgan#_M +Morgan MorganDebug @@ -4706,7 +4706,7 @@ Old Chest#crastur Old Man Viejo -Old Wizard#_W +Old Wizard Old Woman @@ -5240,7 +5240,7 @@ Poppet Pot -Potions#_M +Potions Practice! There are no secrets to becoming a warrior. @@ -5816,7 +5816,7 @@ Sabine Sabre -Sagatha#_M +Sagatha Said to have the key to stop Zax De'Kagen's ambitions. @@ -7613,7 +7613,7 @@ Wyara is the Hurnscald town witch. She was also the town healer before the Docto Wyara the Witch -Wyara#_M +Wyara Xakelbael diff --git a/world/map/langs/lang_fr.txt b/world/map/langs/lang_fr.txt index 9b3702ea..a488256c 100644 --- a/world/map/langs/lang_fr.txt +++ b/world/map/langs/lang_fr.txt @@ -647,7 +647,7 @@ Auldsbel places the logs next to his hut. Auldsbel the Wizard -Auldsbel#_M +Auldsbel Aureole @@ -2197,7 +2197,7 @@ Elanore smiles. Elanore the Healer -Elanore#_M +Elanore ElfNightcap @@ -2452,7 +2452,7 @@ For unfocusing you need to bring a potion; a special potion. That potion is not For your deeds, I shall bestow upon you %d %s. Use them wisely, they are the results of your hard effort. -Forest Mana Seed#_M +Forest Mana Seed ForestArmor @@ -4138,7 +4138,7 @@ Luvia? MTJarofOwnBlood -MageRing +MagicRing MagentaHint @@ -4378,7 +4378,7 @@ Moooooooooooo! MopoxCurePotion -Morgan#_M +Morgan MorganDebug @@ -4705,7 +4705,7 @@ Old Chest#crastur Old Man -Old Wizard#_W +Old Wizard Old Woman @@ -5239,7 +5239,7 @@ Poppet Pot -Potions#_M +Potions Practice! There are no secrets to becoming a warrior. @@ -5815,7 +5815,7 @@ Sabine Sabre -Sagatha#_M +Sagatha Said to have the key to stop Zax De'Kagen's ambitions. @@ -7612,7 +7612,7 @@ Wyara is the Hurnscald town witch. She was also the town healer before the Docto Wyara the Witch -Wyara#_M +Wyara Xakelbael diff --git a/world/map/langs/lang_pt_BR.txt b/world/map/langs/lang_pt_BR.txt index e05f2e19..b3b3f68b 100644 --- a/world/map/langs/lang_pt_BR.txt +++ b/world/map/langs/lang_pt_BR.txt @@ -647,7 +647,7 @@ Auldsbel places the logs next to his hut. Auldsbel the Wizard -Auldsbel#_M +Auldsbel Aureole @@ -2198,7 +2198,7 @@ Elanore smiles. Elanore the Healer -Elanore#_M +Elanore ElfNightcap @@ -2453,7 +2453,7 @@ For unfocusing you need to bring a potion; a special potion. That potion is not For your deeds, I shall bestow upon you %d %s. Use them wisely, they are the results of your hard effort. -Forest Mana Seed#_M +Forest Mana Seed ForestArmor @@ -4139,7 +4139,7 @@ Luvia? MTJarofOwnBlood -MageRing +MagicRing MagentaHint @@ -4379,7 +4379,7 @@ Moooooooooooo! MopoxCurePotion -Morgan#_M +Morgan MorganDebug @@ -4706,7 +4706,7 @@ Old Chest#crastur Old Man -Old Wizard#_W +Old Wizard Old Woman @@ -5240,7 +5240,7 @@ Poppet Pot -Potions#_M +Potions Practice! There are no secrets to becoming a warrior. @@ -5816,7 +5816,7 @@ Sabine Sabre -Sagatha#_M +Sagatha Said to have the key to stop Zax De'Kagen's ambitions. @@ -7613,7 +7613,7 @@ Wyara is the Hurnscald town witch. She was also the town healer before the Docto Wyara the Witch -Wyara#_M +Wyara Xakelbael diff --git a/world/map/npc/001-1/stat_reset.txt b/world/map/npc/001-1/stat_reset.txt index e8c61ca3..78835d1a 100644 --- a/world/map/npc/001-1/stat_reset.txt +++ b/world/map/npc/001-1/stat_reset.txt @@ -5,4 +5,8 @@ set @npcname$, "Malivox"; callfunc "StatReset"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/001-2/pauline.txt b/world/map/npc/001-2/pauline.txt index 497116f6..8c67e00d 100644 --- a/world/map/npc/001-2/pauline.txt +++ b/world/map/npc/001-2/pauline.txt @@ -283,6 +283,10 @@ L_Close: S_Update_Mask: set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Pauline_MASK)) | (@pauline_state << @Pauline_SHIFT); return; + +OnInit: + set .IS_MAGIC, 1; + end; } 001-2,79,74,0|script|PaulineDebug|208 diff --git a/world/map/npc/001-2/tondar.txt b/world/map/npc/001-2/tondar.txt index cb3a1070..e36cb66a 100644 --- a/world/map/npc/001-2/tondar.txt +++ b/world/map/npc/001-2/tondar.txt @@ -55,4 +55,8 @@ L_nopay: L_end: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/001-2/wizards.txt b/world/map/npc/001-2/wizards.txt index e51e7a66..aedeaa7b 100644 --- a/world/map/npc/001-2/wizards.txt +++ b/world/map/npc/001-2/wizards.txt @@ -11,7 +11,7 @@ close; OnInit: - if (puppet("001-2", 104, 19, "Desert Mana Seed#_M", 166) < 1) mapexit; + if (puppet("001-2", 104, 19, "Desert Mana Seed", 166) < 1) mapexit; if (puppet("001-2", 99, 22, "Wizard#1", 355) < 1) mapexit; if (puppet("001-2", 92, 24, "Wizard#2", 356) < 1) mapexit; if (puppet("001-2", 92, 30, "Wizard#3", 357) < 1) mapexit; @@ -21,5 +21,16 @@ OnInit: if (puppet("001-2", 117, 30, "Wizard#7", 361) < 1) mapexit; if (puppet("001-2", 110, 32, "Wizard#8", 362) < 1) mapexit; if (puppet("001-2", 104, 27, "Arch-Wizard#9", 354) < 1) mapexit; + set .IS_MAGIC, 1, getnpcid("Desert Mana Seed"); + set .IS_MAGIC, 1, getnpcid("Wizard#1"); + set .IS_MAGIC, 1, getnpcid("Wizard#2"); + set .IS_MAGIC, 1, getnpcid("Wizard#3"); + set .IS_MAGIC, 1, getnpcid("Wizard#4"); + set .IS_MAGIC, 1, getnpcid("Wizard#5"); + set .IS_MAGIC, 1, getnpcid("Wizard#6"); + set .IS_MAGIC, 1, getnpcid("Wizard#7"); + set .IS_MAGIC, 1, getnpcid("Wizard#8"); + set .IS_MAGIC, 1, getnpcid("Arch-Wizard#9"); end; + } diff --git a/world/map/npc/002-1/elanore.txt b/world/map/npc/002-1/elanore.txt index 15e8439e..3d398454 100644 --- a/world/map/npc/002-1/elanore.txt +++ b/world/map/npc/002-1/elanore.txt @@ -36,7 +36,7 @@ L_Return: return; } -002-1,75,62,0|script|Elanore#_M|108 +002-1,75,62,0|script|Elanore|108 { set @has_magic, getskilllv(SKILL_MAGIC); @@ -619,4 +619,8 @@ L_Close: S_update_var: set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/002-1/soul-menhir.txt b/world/map/npc/002-1/soul-menhir.txt index fa2a4508..06387baf 100644 --- a/world/map/npc/002-1/soul-menhir.txt +++ b/world/map/npc/002-1/soul-menhir.txt @@ -14,4 +14,8 @@ set @x, 0; set @y, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/002-1/traveler.txt b/world/map/npc/002-1/traveler.txt index 975786ae..dadbeff0 100644 --- a/world/map/npc/002-1/traveler.txt +++ b/world/map/npc/002-1/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@tulimshar_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/002-3/traveler.txt b/world/map/npc/002-3/traveler.txt index 48175be8..ebaf07da 100644 --- a/world/map/npc/002-3/traveler.txt +++ b/world/map/npc/002-3/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@tul_mine_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/003-4/time-traveler.txt b/world/map/npc/003-4/time-traveler.txt index 00a875f5..148ab95e 100644 --- a/world/map/npc/003-4/time-traveler.txt +++ b/world/map/npc/003-4/time-traveler.txt @@ -11,6 +11,10 @@ L_Warp: close2; warp "003-4", 171, 76; close; + +OnInit: + set .IS_MAGIC, 1; + end; } 003-4,165,73,0|script|Time Traveler#34|184 @@ -30,4 +34,8 @@ L_What: L_Leave: mes "Walk East from here to escape the time dilation bubble."; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/006-1/spirit.txt b/world/map/npc/006-1/spirit.txt index 4796121a..3c464383 100644 --- a/world/map/npc/006-1/spirit.txt +++ b/world/map/npc/006-1/spirit.txt @@ -282,14 +282,22 @@ S_update_var: return; } -006-1,67,68,0|script|#EarthImp0#_M|400 +006-1,67,68,0|script|#EarthImp0|400 { callfunc "EarthImpTouch"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } -006-1,68,68,0|script|#EarthImp1#_M|400 +006-1,68,68,0|script|#EarthImp1|400 { callfunc "EarthImpTouch"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/006-1/traveler.txt b/world/map/npc/006-1/traveler.txt index 7c84e040..a2f02b24 100644 --- a/world/map/npc/006-1/traveler.txt +++ b/world/map/npc/006-1/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@pachua_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/006-1/tree.txt b/world/map/npc/006-1/tree.txt index 57209d24..ef5fb113 100644 --- a/world/map/npc/006-1/tree.txt +++ b/world/map/npc/006-1/tree.txt @@ -155,8 +155,12 @@ L_Close: } -006-1,82,59,0|script|#DruidTree0#_M|400 +006-1,82,59,0|script|#DruidTree0|400 { callfunc "QuestTreeTouch"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/008-1/diryn.txt b/world/map/npc/008-1/diryn.txt index 6570f1d8..7e27e4e0 100644 --- a/world/map/npc/008-1/diryn.txt +++ b/world/map/npc/008-1/diryn.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@hurnscald_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/009-1/soul-menhir.txt b/world/map/npc/009-1/soul-menhir.txt index 3b8c5cee..da8a1224 100644 --- a/world/map/npc/009-1/soul-menhir.txt +++ b/world/map/npc/009-1/soul-menhir.txt @@ -1,5 +1,4 @@ // - 009-1,53,40,0|script|Soul Menhir#hurnscald|344 { set @map$, "009-1"; @@ -14,4 +13,8 @@ set @x, 0; set @y, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/009-2/trader.txt b/world/map/npc/009-2/trader.txt index 46ccafac..a872117c 100644 --- a/world/map/npc/009-2/trader.txt +++ b/world/map/npc/009-2/trader.txt @@ -62,6 +62,7 @@ L_Trademenu: "Do you have Iron Powder?", L_Iron, "How about Sulphur Powder?", L_Sulphur, "I need Medium Healing Potions.", L_Healpots, + "I'd like to acquire an Enchanter's Amulet.", L_Eamulet, "I think I have everything I need, thanks.", L_Close; L_Iron: @@ -85,6 +86,13 @@ L_Healpots: "Alright.", L_Pots, "Whoa, that's way too much.", L_Close; +L_Eamulet: + mes "[Trader]"; + mes "\"These amulets are quite rare. Three times as rare as a Magic Ring, they say. I do have one though and would trade it off for three Magic Rings and thirteen Blood Stones. I've had a hard time finding those stones.\""; + menu + "Alright.", L_GetEamuletConfirm, + "I'd better check the shops out first.", L_Close; + L_Ipowder: if (countitem("IronOre") < 1) goto L_Missing; if (Zeny < @Ironprice) goto L_NotEnoughMoney; @@ -127,6 +135,26 @@ L_Pots: "Yes.", L_Trademenu, "No.", L_No; +L_GetEamuletConfirm: + mes "[Trader]"; + mes "\"Are you sure you wish to trade for the Enchanter's Amulet? All trades are final.\""; + menu + "No, I'd better think this over a bit more.", L_No, + "No thanks. I've changed my mind. What else do you trade, again?", L_Trademenu, + "Yes, I'm positive.", L_GetEamulet; + +L_GetEamulet: + if (countitem("MagicRing") < 3) goto L_Missing; + if (countitem("Bloodstone") < 13) goto L_Missing; + delitem "MagicRing", 3; + delitem "Bloodstone", 13; + getitem "EnchantersAmulet", 1; + mes "[Trader]"; + mes "\"Make good use of your new amulet. Would you like to trade anything else?\""; + menu + "Yes.", L_Trademenu, + "No.", L_No; + L_Full: mes "[Trader]"; mes "\"You must have been making a lot of trades...your bag is completely full! Come back after you've made some room.\""; diff --git a/world/map/npc/009-2/wyara.txt b/world/map/npc/009-2/wyara.txt index 1b912019..51e2ada6 100644 --- a/world/map/npc/009-2/wyara.txt +++ b/world/map/npc/009-2/wyara.txt @@ -1,7 +1,7 @@ // ---------------------------------------- // Wyara the Hurnscald witch // ---------------------------------------- -009-2,121,26,0|script|Wyara#_M|103 +009-2,121,26,0|script|Wyara|103 { set @Q_MASK, NIBBLE_2_MASK; set @Q_SHIFT, NIBBLE_2_SHIFT; @@ -554,4 +554,8 @@ L_Close: S_update_var: set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/009-3/sword.txt b/world/map/npc/009-3/sword.txt index 1a427731..9649d730 100644 --- a/world/map/npc/009-3/sword.txt +++ b/world/map/npc/009-3/sword.txt @@ -1,4 +1,4 @@ -009-3,26,100,0|script|#MysticSword#_M|400 +009-3,26,100,0|script|#MysticSword|400 { if (getskilllv(SKILL_MAGIC)) goto L_message; @@ -173,4 +173,8 @@ L_farewell: S_update_var: set QUEST_MAGIC, (QUEST_MAGIC & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/009-4/orum.txt b/world/map/npc/009-4/orum.txt index df9ac2d9..f7fea706 100644 --- a/world/map/npc/009-4/orum.txt +++ b/world/map/npc/009-4/orum.txt @@ -591,6 +591,10 @@ L_Close: set @Torch, 0; set @TorchColor, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } function|script|SetUpOrumQuest { @@ -626,4 +630,8 @@ function|script|SetUpOrumQuest callfunc "SetTorchColor"; callfunc "SetTorchIntensity"; return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/009-4/waric.txt b/world/map/npc/009-4/waric.txt index aa366318..075c340c 100644 --- a/world/map/npc/009-4/waric.txt +++ b/world/map/npc/009-4/waric.txt @@ -19,6 +19,10 @@ next; mes "\"Your fate is up to Waric now... don't expect me to do anything else for you.\""; close; + +OnInit: + set .IS_MAGIC, 1; + end; } 009-4,118,42,0|script|Waric#trap|153 @@ -94,4 +98,8 @@ L_Explain: L_Close: set @EXP_LEARNED_ALOT, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/011-1/auldsbel.txt b/world/map/npc/011-1/auldsbel.txt index 8f8fe66c..a289f86a 100644 --- a/world/map/npc/011-1/auldsbel.txt +++ b/world/map/npc/011-1/auldsbel.txt @@ -1,7 +1,7 @@ // Auldsbel the Wizard // Transmutation Magic expert -011-1,50,68,0|script|Auldsbel#_M|168 +011-1,50,68,0|script|Auldsbel|168 { set @mexp, MAGIC_EXPERIENCE & 65535; @@ -943,7 +943,7 @@ L_Next8: mes "\"I suggest that you run.\""; next; misceffect sfx_magic_transmute; - monster "this", 50, 68, "", 1034, 4, "Auldsbel#_M::OnSnakeDeath"; + monster "this", 50, 68, "", 1034, 4, "Auldsbel::OnSnakeDeath"; close; OnSnakeDeath: @@ -1287,4 +1287,8 @@ S_update_var: (QUEST_MAGIC & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/012-1/flowerpentagram2.txt b/world/map/npc/012-1/flowerpentagram2.txt index 3ce479e9..715b2611 100644 --- a/world/map/npc/012-1/flowerpentagram2.txt +++ b/world/map/npc/012-1/flowerpentagram2.txt @@ -94,4 +94,8 @@ L_PlacedFifthFlower: L_Close: set @localMonsterCount, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/012-3/mana-seed.txt b/world/map/npc/012-3/mana-seed.txt index 057665e0..73e1828f 100644 --- a/world/map/npc/012-3/mana-seed.txt +++ b/world/map/npc/012-3/mana-seed.txt @@ -1,4 +1,4 @@ -012-3,62,130,0|script|Forest Mana Seed#_M|166 +012-3,62,130,0|script|Forest Mana Seed|166 { setarray @magic_exp_needed, 0, // level 0 @@ -279,4 +279,8 @@ L_magic_destroy: L_end: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/012-3/traveler.txt b/world/map/npc/012-3/traveler.txt index b3c158ea..9f497dab 100644 --- a/world/map/npc/012-3/traveler.txt +++ b/world/map/npc/012-3/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@terranite_cave_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/013-1/flowerpentagram.txt b/world/map/npc/013-1/flowerpentagram.txt index 001b7e0a..5c5ec79b 100644 --- a/world/map/npc/013-1/flowerpentagram.txt +++ b/world/map/npc/013-1/flowerpentagram.txt @@ -86,6 +86,10 @@ S_CleanUp: killmonster "013-1", "#FlowerPentagram::OnAScorpionDeath"; killmonster "013-1", "#FlowerPentagram::OnBScorpionDeath"; return; + +OnInit: + set .IS_MAGIC, 1; + end; } function|script|FlowerPentagramCount diff --git a/world/map/npc/013-1/sagatha.txt b/world/map/npc/013-1/sagatha.txt index fe2a4e6f..07348181 100644 --- a/world/map/npc/013-1/sagatha.txt +++ b/world/map/npc/013-1/sagatha.txt @@ -72,7 +72,7 @@ L_next: } //---------------------------------------- -013-1,131,24,0|script|Sagatha#_M|167 +013-1,131,24,0|script|Sagatha|167 { callfunc "SagathaStatus"; @@ -444,4 +444,8 @@ S_update_var: (QUEST_MAGIC & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/013-1/traveler.txt b/world/map/npc/013-1/traveler.txt index 7439b8d8..acbe4d29 100644 --- a/world/map/npc/013-1/traveler.txt +++ b/world/map/npc/013-1/traveler.txt @@ -4,4 +4,8 @@ set @NpcTravelBit, $@magic_house_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/013-2/notes.txt b/world/map/npc/013-2/notes.txt index 3a0215b9..f412668b 100644 --- a/world/map/npc/013-2/notes.txt +++ b/world/map/npc/013-2/notes.txt @@ -39,6 +39,10 @@ L_Close: set @fixedMirror, 1; callfunc "useMirror"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Warp to wood clearings @@ -72,6 +76,10 @@ L_PlaceThree: L_Close: set @dest, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Warp to desert @@ -104,6 +112,10 @@ L_PlaceThree: L_Close: set @dest, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Warp to snow area @@ -135,6 +147,10 @@ L_Cave: L_Close: set @dest, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Warp to Inns @@ -166,6 +182,10 @@ L_PlaceThree: L_Close: set @dest, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Warp to mines @@ -197,6 +217,10 @@ L_PlaceThree: L_Close: set @dest, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Death @@ -208,6 +232,10 @@ L_Close: next; heal -Hp, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // Naked @@ -219,4 +247,8 @@ L_Close: next; nude; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/013-2/wizard.txt b/world/map/npc/013-2/wizard.txt index 13f3fc9c..7a3fd822 100644 --- a/world/map/npc/013-2/wizard.txt +++ b/world/map/npc/013-2/wizard.txt @@ -1,4 +1,4 @@ -013-2,66,39,0|script|Old Wizard#_W|116 +013-2,66,39,0|script|Old Wizard|116 { set @has_magic, getskilllv(SKILL_MAGIC); set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_OLD_WIZARD; @@ -155,4 +155,8 @@ L_Agree: L_Close: set @has_magic, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/013-3/barrier.txt b/world/map/npc/013-3/barrier.txt index d7875009..680bb0a4 100644 --- a/world/map/npc/013-3/barrier.txt +++ b/world/map/npc/013-3/barrier.txt @@ -1,6 +1,6 @@ // -013-3,71,21,0|script|#DemonMineBarrier1#_M|32767,1,0 +013-3,71,21,0|script|#DemonMineBarrier1|32767,1,0 { set @state, ((QUEST_Hurnscald & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT); @@ -26,4 +26,8 @@ L_End: S_Update_Mask: set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_2_MASK)) | (@state << NIBBLE_2_SHIFT); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt index be23e23a..bbf60b72 100644 --- a/world/map/npc/015-1/sword.txt +++ b/world/map/npc/015-1/sword.txt @@ -1,4 +1,4 @@ -015-1,97,97,0|script|#MagicSword#_M|400 +015-1,97,97,0|script|#MagicSword|400 { if (getskilllv(SKILL_MAGIC)) goto L_message; @@ -321,4 +321,8 @@ S_update_var: (QUEST_MAGIC & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/017-1/flowerpentagram1.txt b/world/map/npc/017-1/flowerpentagram1.txt index 64128b4b..5480ad60 100644 --- a/world/map/npc/017-1/flowerpentagram1.txt +++ b/world/map/npc/017-1/flowerpentagram1.txt @@ -79,4 +79,8 @@ L_PlacedFifthFlower: L_Close: set @localMonsterCount, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/017-1/flowerpentagram5.txt b/world/map/npc/017-1/flowerpentagram5.txt index f8947dbd..628a9433 100644 --- a/world/map/npc/017-1/flowerpentagram5.txt +++ b/world/map/npc/017-1/flowerpentagram5.txt @@ -137,4 +137,8 @@ L_PlacedFifthFlower: L_Close: set @localMonsterCount, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/017-4/guardingspirit.txt b/world/map/npc/017-4/guardingspirit.txt index 8fef95ed..06dc0a6b 100644 --- a/world/map/npc/017-4/guardingspirit.txt +++ b/world/map/npc/017-4/guardingspirit.txt @@ -1,6 +1,6 @@ // Author: Jenalya -017-4,173,47,0|script|#Guarding Spirit#_M|204,0,0 +017-4,173,47,0|script|#Guarding Spirit|204,0,0 { goto L_Talk; @@ -94,4 +94,8 @@ OnTouch: goto L_Block; warp "017-4", 201, 26; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/017-4/orum.txt b/world/map/npc/017-4/orum.txt index 213f14af..58c605a4 100644 --- a/world/map/npc/017-4/orum.txt +++ b/world/map/npc/017-4/orum.txt @@ -840,4 +840,8 @@ L_Close: set @REWARD_MONEY, 0; set @REWARD_EXP, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/017-4/waric.txt b/world/map/npc/017-4/waric.txt index 1fc489f3..55b794c8 100644 --- a/world/map/npc/017-4/waric.txt +++ b/world/map/npc/017-4/waric.txt @@ -383,6 +383,10 @@ L_Close: set @SUP_lvl, 0; set @SUP_xp, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } 017-1,74,32,0|script|DebugFlowerP|153 diff --git a/world/map/npc/018-1/flowerpentagram3.txt b/world/map/npc/018-1/flowerpentagram3.txt index 857c412d..7f90965e 100644 --- a/world/map/npc/018-1/flowerpentagram3.txt +++ b/world/map/npc/018-1/flowerpentagram3.txt @@ -108,4 +108,8 @@ L_PlacedFifthFlower: L_Close: set @localMonsterCount, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/018-1/sword.txt b/world/map/npc/018-1/sword.txt index 8d5dc827..885c9532 100644 --- a/world/map/npc/018-1/sword.txt +++ b/world/map/npc/018-1/sword.txt @@ -1,4 +1,4 @@ -018-1,110,43,0|script|#IceSword#_M|400 +018-1,110,43,0|script|#IceSword|400 { if (getskilllv(SKILL_MAGIC)) goto L_message; @@ -8,4 +8,8 @@ L_message: mes "[Sword in Pond]"; mes "\"Zzzzzz.....\""; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/018-3/evil-obelisk.txt b/world/map/npc/018-3/evil-obelisk.txt index 4ecc00b3..1d4cea7d 100644 --- a/world/map/npc/018-3/evil-obelisk.txt +++ b/world/map/npc/018-3/evil-obelisk.txt @@ -15,4 +15,8 @@ set @x1, 0; set @y1, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/018-3/sword.txt b/world/map/npc/018-3/sword.txt index 83e9c6f2..5dfbedbf 100644 --- a/world/map/npc/018-3/sword.txt +++ b/world/map/npc/018-3/sword.txt @@ -1,4 +1,4 @@ -018-3,71,127,0|script|#DemonSword#_M|400 +018-3,71,127,0|script|#DemonSword|400 { if (getskilllv(SKILL_MAGIC)) goto L_message; @@ -8,4 +8,8 @@ L_message: mes "[Sword in Rock]"; mes "\"Ouch... my head...\""; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/020-1/soul-menhir.txt b/world/map/npc/020-1/soul-menhir.txt index c8f7740a..d9471f2b 100644 --- a/world/map/npc/020-1/soul-menhir.txt +++ b/world/map/npc/020-1/soul-menhir.txt @@ -14,4 +14,8 @@ set @x, 0; set @y, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/020-1/traveler.txt b/world/map/npc/020-1/traveler.txt index 421ed0e7..a5a5b9cf 100644 --- a/world/map/npc/020-1/traveler.txt +++ b/world/map/npc/020-1/traveler.txt @@ -4,4 +4,8 @@ set @NpcTravelBit, $@nivalis_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/025-4/battlecaves.txt b/world/map/npc/025-4/battlecaves.txt index 8acebf2a..8c281a35 100644 --- a/world/map/npc/025-4/battlecaves.txt +++ b/world/map/npc/025-4/battlecaves.txt @@ -75,6 +75,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 1 Checker ---------------------------- @@ -167,6 +170,10 @@ L_Close: L_no_root: mes "I don't have any roots in my inventory!"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 2 Checker ---------------------------- @@ -258,6 +265,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 3 Checker ---------------------------- @@ -351,6 +361,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 4 Checker ---------------------------- @@ -445,6 +458,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 5 Checker ---------------------------- @@ -539,6 +555,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 6 Checker ---------------------------- @@ -635,6 +654,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 7 Checker ---------------------------- @@ -731,6 +753,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 8 Checker ---------------------------- @@ -827,6 +852,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Cave 9 Checker ---------------------------- @@ -945,6 +973,9 @@ L_no_root: mes "I don't have any roots in my inventory!"; close; +OnInit: + set .IS_MAGIC, 1; + end; } // --------------------- Boss Cave Checker ---------------------------- @@ -1015,4 +1046,3 @@ L_Save: message strcharinfo(0), "You can't leave Julia here, all alone!"; end; } - diff --git a/world/map/npc/026-1/headless_man.txt b/world/map/npc/026-1/headless_man.txt index f922406d..96c8cd49 100644 --- a/world/map/npc/026-1/headless_man.txt +++ b/world/map/npc/026-1/headless_man.txt @@ -59,18 +59,21 @@ L_Quest_ask: L_Quest_start: mes "[Thurstan]"; mes "\"Great! I will need the following things.\""; - mes "\"" + @Wisp_Powder + " Wisp Powder,\""; - mes "\"" + @Polt_Powder + " Poltergeist Powder,\""; - mes "\"" + @Spec_Powder + " Spectre Powder,\""; - mes "\"" + @Iron_Pot + " Iron Potion,\""; - mes "\"" + @Conc_Pot + " Concentration Potion,\""; - mes "\"" + @Red_Dye + " vials of Red Dye,\""; - mes "\"" + @Yellow_Dye + " vials of Yellow Dye,\""; + mes "\"" + @Wisp_Powder + " [@@"+WispPowder+"|@@],\""; + mes "\"" + @Polt_Powder + " [@@"+PoltergeistPowder+"|@@],\""; + mes "\"" + @Spec_Powder + " [@@"+SpectrePowder+"|@@],\""; + mes "\"" + @Iron_Pot + " [@@"+IronPotion+"|@@],\""; + mes "\"" + @Conc_Pot + " [@@"+ConcentrationPotion+"|@@],\""; + mes "\"" + @Red_Dye + " vials of [@@"+RedDye+"|@@],\""; + mes "\"" + @Yellow_Dye + " vials of [@@"+YellowDye+"|@@],\""; mes "\"and...\""; - mes "\"" + @LB_Dye + " vials of Light Blue Dye,\""; + mes "\"" + @LB_Dye + " vials of [@@"+LightBlueDye+"|@@],\""; next; mes "[Thurstan]"; - mes "\"My friend also said that I should use a metal bowl instead of a wooden one. I don't have one and I think a cauldron from the kitchen would be too big. Perhaps we could use an Infantry Helmet to serve that task.\""; + mes "\"My friend also said that I should use a metal bowl instead of a wooden one. I don't have one and I think a cauldron from the kitchen would be too big. Perhaps we could use an [@@"+InfantryHelmet+"|@@] to serve that task.\""; + next; + mes "[Thurstan]"; + mes "\"He also said that a [@@"+PinkieHat+"|@@] is a perfect whisk for stirring this recipe since the glue does not stick to it.\""; next; mes "[Thurstan]"; mes "\"I know it probably doesn't seem like that much to you, but it is a really big deal for me. I will try to find something to compensate you for your efforts.\""; @@ -100,6 +103,7 @@ L_Quest_check: || countitem("RedDye") < @Red_Dye || countitem("YellowDye") < @Yellow_Dye || countitem("LightBlueDye") < @LB_Dye + || countitem("PinkieHat") < 1 || countitem("InfantryHelmet") < 1) goto L_Quest_notenough; @@ -111,6 +115,7 @@ L_Quest_check: delitem "RedDye", @Red_Dye; delitem "YellowDye", @Yellow_Dye; delitem "LightBlueDye", @LB_Dye; + delitem "PinkieHat", 1; delitem "InfantryHelmet", 1; getexp @Glue_Exp, 0; mes "[Thurstan]"; @@ -146,15 +151,15 @@ L_Quest_notenough: L_Quest_items: mes "[Thurstan]"; - mes "\"" + @Wisp_Powder + " Wisp Powder,\""; - mes "\"" + @Polt_Powder + " Poltergeist Powder,\""; - mes "\"" + @Spec_Powder + " Spectre Powder,\""; - mes "\"" + @Iron_Pot + " Iron Potion,\""; - mes "\"" + @Conc_Pot + " Concentration Potion,\""; - mes "\"" + @Red_Dye + " vials of Red Dye,\""; - mes "\"" + @Yellow_Dye + " vials of Yellow Dye,\""; - mes "\"" + @LB_Dye + " vials of Light Blue Dye,\""; - mes "\"We'll also need 1 Infantry Helmet to use as a bowl for mixing everything together.\""; + mes "\"" + @Wisp_Powder + " [@@"+WispPowder+"|@@],\""; + mes "\"" + @Polt_Powder + " [@@"+PoltergeistPowder+"|@@],\""; + mes "\"" + @Spec_Powder + " [@@"+SpectrePowder+"|@@],\""; + mes "\"" + @Iron_Pot + " [@@"+IronPotion+"|@@],\""; + mes "\"" + @Conc_Pot + " [@@"+ConcentrationPotion+"|@@],\""; + mes "\"" + @Red_Dye + " vials of [@@"+RedDye+"|@@],\""; + mes "\"" + @Yellow_Dye + " vials of [@@"+YellowDye+"|@@],\""; + mes "\"" + @LB_Dye + " vials of [@@"+LightBlueDye+"|@@],\""; + mes "\"We'll also need 1 [@@"+InfantryHelmet+"|@@] to use as a bowl for mixing everything together and 1 [@@"+PinkieHat+"|@@] as whisk for stirring since the glue does not stick to it.\""; goto L_Close; L_Quest_finished: diff --git a/world/map/npc/026-1/traveler.txt b/world/map/npc/026-1/traveler.txt index de743c14..ab905120 100644 --- a/world/map/npc/026-1/traveler.txt +++ b/world/map/npc/026-1/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@graveyard_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/029-1/soul-menhir.txt b/world/map/npc/029-1/soul-menhir.txt index 8113d9c5..702356bf 100644 --- a/world/map/npc/029-1/soul-menhir.txt +++ b/world/map/npc/029-1/soul-menhir.txt @@ -14,4 +14,8 @@ set @x, 0; set @y, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/029-1/traveler.txt b/world/map/npc/029-1/traveler.txt index befa8eef..0add5765 100644 --- a/world/map/npc/029-1/traveler.txt +++ b/world/map/npc/029-1/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@candor_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/029-2/morgan.txt b/world/map/npc/029-2/morgan.txt index c6dfa306..c5d48b43 100644 --- a/world/map/npc/029-2/morgan.txt +++ b/world/map/npc/029-2/morgan.txt @@ -23,7 +23,7 @@ OnInit: disablenpc "MorganDebug"; end; } -029-2,101,57,0|script|Morgan#_M|355 +029-2,101,57,0|script|Morgan|355 { callfunc "PCtoNPCRange"; if(@npc_check) end; @@ -137,6 +137,10 @@ L_LearningDone: L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } 029-2,113,59,0|shop|Zitoni|103,CactusDrink:*1,CactusPotion:*1,TinyManaElixir:*5,SmallManaElixir:*5,EnlighteningElixir:*1,ManaDust:*1 diff --git a/world/map/npc/029-2/stat_reset.txt b/world/map/npc/029-2/stat_reset.txt index d66cd2f9..17be61b9 100644 --- a/world/map/npc/029-2/stat_reset.txt +++ b/world/map/npc/029-2/stat_reset.txt @@ -48,4 +48,8 @@ L_Sorry: L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/029-4/time-traveler.txt b/world/map/npc/029-4/time-traveler.txt index 1242e7c4..1407e949 100644 --- a/world/map/npc/029-4/time-traveler.txt +++ b/world/map/npc/029-4/time-traveler.txt @@ -11,6 +11,10 @@ L_Warp: close2; warp "029-4", 24, 38; close; + +OnInit: + set .IS_MAGIC, 1; + end; } 029-4,26,36,0|script|Time Traveler#294|184 @@ -28,4 +32,8 @@ L_What: L_Leave: mes "Walk West from here to escape the time dilation bubble."; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/030-1/time-traveler.txt b/world/map/npc/030-1/time-traveler.txt index a79b812d..7c6aba65 100644 --- a/world/map/npc/030-1/time-traveler.txt +++ b/world/map/npc/030-1/time-traveler.txt @@ -11,6 +11,10 @@ L_Warp: close2; warp "030-1", 61, 29; close; + +OnInit: + set .IS_MAGIC, 1; + end; } 030-1,64,33,0|script|Time Traveler#30|184 @@ -31,4 +35,8 @@ L_What: L_Leave: mes "Walk North from here to exit the time dilation bubble."; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/030-2/avalia.txt b/world/map/npc/030-2/avalia.txt index 818fabae..9c5034d4 100644 --- a/world/map/npc/030-2/avalia.txt +++ b/world/map/npc/030-2/avalia.txt @@ -187,6 +187,10 @@ L_ThankYou: L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } 030-2,190,64,0|script|Milis|330 diff --git a/world/map/npc/030-3/orum_homunculus.txt b/world/map/npc/030-3/orum_homunculus.txt index 503374ff..0208d331 100644 --- a/world/map/npc/030-3/orum_homunculus.txt +++ b/world/map/npc/030-3/orum_homunculus.txt @@ -473,4 +473,8 @@ L_ThankYou: L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/033-1/traveler.txt b/world/map/npc/033-1/traveler.txt index 462e2586..11f93bcf 100644 --- a/world/map/npc/033-1/traveler.txt +++ b/world/map/npc/033-1/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@barbarians_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/048-2/sageNikolai.txt b/world/map/npc/048-2/sageNikolai.txt index fdc6e76d..fb121552 100644 --- a/world/map/npc/048-2/sageNikolai.txt +++ b/world/map/npc/048-2/sageNikolai.txt @@ -283,4 +283,8 @@ L_Close: set @bookpages, 0; set @slimes, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/048-2/traveler.txt b/world/map/npc/048-2/traveler.txt index 7b654d85..9f323eac 100644 --- a/world/map/npc/048-2/traveler.txt +++ b/world/map/npc/048-2/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@blue_sage_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/055-1/flowerpentagram4.txt b/world/map/npc/055-1/flowerpentagram4.txt index 1fdd64cf..cc2d5191 100644 --- a/world/map/npc/055-1/flowerpentagram4.txt +++ b/world/map/npc/055-1/flowerpentagram4.txt @@ -122,4 +122,8 @@ L_PlacedFifthFlower: L_Close: set @localMonsterCount, 0; close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/055-1/traveler.txt b/world/map/npc/055-1/traveler.txt index 1f36de77..233671bf 100644 --- a/world/map/npc/055-1/traveler.txt +++ b/world/map/npc/055-1/traveler.txt @@ -8,4 +8,8 @@ set @NpcTravelBit, $@hurns_farms_bit; callfunc "Traveler"; end; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/056-2/barrier.txt b/world/map/npc/056-2/barrier.txt index 956dc630..9552623f 100644 --- a/world/map/npc/056-2/barrier.txt +++ b/world/map/npc/056-2/barrier.txt @@ -14,5 +14,4 @@ L_Block: L_Weak: message strcharinfo(0), "I can't enter because this magic field is too strong. Maybe I should train some more...."; end; - } diff --git a/world/map/npc/056-2/mirak.txt b/world/map/npc/056-2/mirak.txt index e1a37347..8719e4b4 100644 --- a/world/map/npc/056-2/mirak.txt +++ b/world/map/npc/056-2/mirak.txt @@ -149,4 +149,8 @@ S_Update_Mask: (QUEST_Mirak & ~(@Mirak_MASK)) | (@talk << @Mirak_SHIFT); return; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/058-1/griffen.txt b/world/map/npc/058-1/griffen.txt index 4b81e9a6..8f794c55 100644 --- a/world/map/npc/058-1/griffen.txt +++ b/world/map/npc/058-1/griffen.txt @@ -42,4 +42,8 @@ L_Quest: L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/058-2/griffen.txt b/world/map/npc/058-2/griffen.txt index c6bce716..d2824dc8 100644 --- a/world/map/npc/058-2/griffen.txt +++ b/world/map/npc/058-2/griffen.txt @@ -40,4 +40,8 @@ L_Quest: L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/069-2/wizard.txt b/world/map/npc/069-2/wizard.txt index c94258ec..f3b71df4 100644 --- a/world/map/npc/069-2/wizard.txt +++ b/world/map/npc/069-2/wizard.txt @@ -131,6 +131,11 @@ L_Task: L_Doomsday: mes "[Rodium]"; + mes "\"No sorry the universe is too unstable at the moment. I can't warp you back in time in this state you must wait until it has calmed down.\""; + goto L_Menu2; + +/* + mes "[Rodium]"; mes "\"Yes. The Doomsday is how the third rewrite happened and the fourth timeline began. You can get a [@@"+SaviorArmor+"|@@] if you can watch until the very end, but I must warn you...\""; next; mes "[Rodium]"; @@ -169,7 +174,12 @@ OnWarp: mes "\"Please make your decision.\""; menu "I don't know what you're talking about, old man!", L_Close, "Yeah, they're my friend, please warp me!", L_Warp; +*/ L_Close: close; + +OnInit: + set .IS_MAGIC, 1; + end; } diff --git a/world/map/npc/099-1/main.txt b/world/map/npc/099-1/main.txt index cbe03c7c..75881ba5 100644 --- a/world/map/npc/099-1/main.txt +++ b/world/map/npc/099-1/main.txt @@ -12,7 +12,7 @@ callfunc "PCtoNPCRange"; if(@npc_check) end; - mes ".:: Keshlam's Adventurer Guild ::."; + mes ".:: Keshlam's Adventurer Guild ::."; mes ""; mes "Welcome to the Adventurers Guild!"; mes "Sorry I could not wait for you. It's your fault for being late."; @@ -43,7 +43,7 @@ next; mes "Signed,"; mes "Xakelbael the Dark"; - close; + close; } @@ -53,10 +53,10 @@ callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "Walk here to go to the ##BFinal Showdown##b."; + mes "Walk here to go to the ##BFinal Showdown##b."; mes ""; mes "##1##BWARNING:##b##0 Come prepared!"; - close; + close; L_Busy: mes "This warp cannot be used while players are on the other side!"; @@ -69,7 +69,7 @@ L_Menu: if ($@DD5_STATUS > 1) goto L_Busy; - mes "##BGo to the final showdown?##b"; + mes "##BGo to the final showdown?##b"; mes "You cannot return from there!"; mes ""; mes "##1Warning: Warp will be unavailable during fights!"; @@ -86,5 +86,8 @@ L_Yes: if (!$@DD5_STATUS) donpcevent "#TMWFinalExam::OnWarn0"; close; -} +OnInit: + set .IS_MAGIC, 1; + end; +} diff --git a/world/map/npc/099-2/logic.txt b/world/map/npc/099-2/logic.txt index 29d7e96d..6b4667cd 100644 --- a/world/map/npc/099-2/logic.txt +++ b/world/map/npc/099-2/logic.txt @@ -111,12 +111,12 @@ OnJanitor: if(@npc_check) end; mes ".:: V0id Flower ::."; - mes "This orange flower is dangerous!"; + mes "This orange flower is dangerous!"; mes "Do not disturb them - they have great range and damage!"; mes ""; mes "Whoever designed this artifical flower must have been crazy!"; mes "Killing it is not fast enough, avoid its nectar at all costs!"; - close; + close; } 099-2,123,128,0|script|???#099-2_123_128|400 @@ -126,10 +126,10 @@ OnJanitor: if(@npc_check) end; mes ".:: V0id Slime ::."; - mes "A crazy combat unit made in a crazy laboratory."; + mes "A crazy combat unit made in a crazy laboratory."; mes "If you can, just avoid it. It is slow enough."; mes "It can be slain, but have a decent defense, so use magic."; - close; + close; } 099-2,95,122,0|script|???#099-2_95_122|400 @@ -139,9 +139,9 @@ OnJanitor: if(@npc_check) end; mes ".:: V0id Snake ::."; - mes "If I find who designed these monsters ... Grr..."; + mes "If I find who designed these monsters ... Grr..."; mes "They are fast. And powerful. Goes down quickly, though."; - close; + close; } 099-2,28,122,0|script|???#099-2_28_122|400 @@ -150,13 +150,13 @@ OnJanitor: callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "Last night, we were attacked by Xakelbael the Dark."; + mes "Last night, we were attacked by Xakelbael the Dark."; mes "Our attacks could barely do him any harm, and then..."; mes "He cast \"Fourth Fall\". All our buffed soldiers fell down the same instant."; mes ""; mes "I am gravely injured, but I'm leaving this note here."; mes "Comrades, please avenge me!"; - close; + close; } 099-2,91,92,0|script|???#099-2_91_92|400 @@ -166,11 +166,11 @@ OnJanitor: if(@npc_check) end; mes ".:: Sasquatch ::."; - mes "Developed for protection of the Earth Crystal."; + mes "Developed for protection of the Earth Crystal."; mes "They are extreme power houses capable to smash intruders."; mes "They have very meh defense, though."; mes "Also, even then could not harm Xakelbael the Dark."; - close; + close; } 099-2,62,43,0|script|???#099-6_62_43|400 @@ -179,7 +179,7 @@ OnJanitor: callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "Zax De'Kagen trademark skill, the Bliss of Oblivion."; + mes "Zax De'Kagen trademark skill, the Bliss of Oblivion."; mes "A powerful skill which dispels mana around himself."; mes "Monsters will perish the very moment he cast it, and anyone too close"; mes "will have their mana drained as well, and might die from it."; @@ -187,7 +187,7 @@ OnJanitor: mes "Not only that, but he may become immune to certain sources of damage."; mes "It is a killer move which also allows him to assemble an army right after."; mes "I do believe there is a weakness, though. Something about excessive fur growth?"; - close; + close; } 099-6,57,17,0|script|???#099-6_57_17|400 @@ -197,11 +197,11 @@ OnJanitor: if(@npc_check) end; mes ".:: V0id Soldier ::."; - mes "These units can endure a lot of pain and use bows."; - mes "They are not dangerous, but do not let they become fodder."; - mes "A lot of soldiers can be very difficult to kill later on."; + mes "These units can endure a lot of pain and use bows."; + mes "They are not dangerous, but do not let they become fodder."; + mes "A lot of soldiers can be very difficult to kill later on."; mes "Random trivia: They are afraid of bone arrows and knifes."; - close; + close; } 099-6,123,128,0|script|???#099-6_123_128|400 @@ -211,10 +211,10 @@ OnJanitor: if(@npc_check) end; mes ".:: V0id Mouboo ::."; - mes "A solid all rounder unit, it has decent health and damage."; + mes "A solid all rounder unit, it has decent health and damage."; mes "But it proved useless as a security biopart."; mes "Figures out, we could not subvert its peaceful nature."; - close; + close; } 099-6,95,122,0|script|???#099-6_95_122|400 @@ -224,10 +224,10 @@ OnJanitor: if(@npc_check) end; mes ".:: Tengu ::."; - mes "Developed for protection of the Earth Crystal."; + mes "Developed for protection of the Earth Crystal."; mes "There shouldn't be any here, but they have a high defense."; mes "They turned out vulnerable to magic, unfortunately."; - close; + close; } 099-6,28,122,0|script|???#099-6_28_122|400 @@ -237,12 +237,12 @@ OnJanitor: if(@npc_check) end; mes ".:: V0id Bat ::."; - mes "They fly very fast and can quickly swarm you."; + mes "They fly very fast and can quickly swarm you."; mes "Their damage and health is not important."; mes "But if not careful, they will overwhelm you."; mes "Also, did you hear about lay on hands on overlapping dimensions?"; mes "This have nothing to do with bats but is a cool fact!"; - close; + close; } 099-6,91,92,0|script|???#099-6_91_92|400 @@ -252,10 +252,10 @@ OnJanitor: if(@npc_check) end; mes ".:: Mana Slayer ::."; - mes "An anti-magic unit, made to run and slay mages."; + mes "An anti-magic unit, made to run and slay mages."; mes "They look so much like us, that we are afraid of them all time."; mes "Not strong against physical damage, but can resist magic pretty well."; - close; + close; } 099-6,62,43,0|script|???#099-6_92_43|400 @@ -264,7 +264,7 @@ OnJanitor: callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "Do not neglect the potions which you deemed useless until now."; + mes "Do not neglect the potions which you deemed useless until now."; mes "Our foe is formidable. Our knowledge is being tested, here."; mes "The same techniques which worked for years simply do not apply."; mes ""; @@ -272,7 +272,7 @@ OnJanitor: mes "I think what should sense magic, might sense mana devoid-ness as well."; mes "In this case, such would be the only way to know how far of killing we are."; mes "But I'm not sure if such trick would work except on support role."; - close; + close; } @@ -287,7 +287,7 @@ OnJanitor: mes "Reading this is as hard as finding a needle in a haystack."; if (debug) goto L_Close; if (countitem(FlawedLens) < 1) goto L_Tools; - mes "Although the painting also has no artistic value on its own..."; + mes "Although the painting also has no artistic value on its own..."; mes "Something tells you there is something ominous with it."; next; mes "##9 Use [Flawed Lens] on the painting? ##0"; @@ -318,10 +318,14 @@ L_UseLens: mes "Rest in Peace. Damnatio memoriae. Effective immediately."; // ;-- TRANSLATORS: Damnatio memoriae - "condemnation of memory", indicating that a person is to be excluded from official accounts. History rewrite if required. next; - //mes "The lens break! They were not only poorly effective but also of bad quality."; + //mes "The lens breaks! It was not only poorly effective, but also of bad quality."; mes "If only we could make the real Lens, we would have been able to find out"; - mes "what is up with this ominous, eerie feeling this picture gives."; + mes "What is up with this ominous, eerie feeling this picture gives?"; close; + +OnInit: + set .IS_MAGIC, 1; + end; } 099-1,35,22,0|script|Fireplace#099-1|400 @@ -330,13 +334,13 @@ L_UseLens: callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "##9 There is something interesting on this fireplace. ##0"; - mes "##9 It doesn't seems to fit this building. ##0"; - mes "##9 As if it have been taken from another world and put here. ##0"; + mes "##9 There is something interesting on this fireplace. ##0"; + mes "##9 It doesn't seems to fit this building. ##0"; + mes "##9 As if it have been taken from another world and put here. ##0"; next; - mes "##9 After searching it, you found nothing. ##0"; - mes "##9 It is just a common fireplace, after all. ##0"; - close; + mes "##9 After searching it, you found nothing. ##0"; + mes "##9 It is just a common fireplace, after all. ##0"; + close; } /////////////////////////////// @@ -348,14 +352,14 @@ L_UseLens: if(@npc_check) end; mes ".:: V0id Scorpion ::."; - mes "The most basic combat unit in Keshlam."; + mes "The most basic combat unit in Keshlam."; mes "They have decent health, damage, and speed."; mes ""; mes ".:: V0id Mushroom ::."; - mes "The most basic combat unit in Keshlam."; + mes "The most basic combat unit in Keshlam."; mes "They have decent health, damage, and speed, and a higher range."; mes "Unlike the scorpions, they can move faster, but attack is slower."; - close; + close; } 099-1,45,22,0|script|Bookcase#099-1b|400 @@ -365,13 +369,13 @@ L_UseLens: if(@npc_check) end; mes ".:: V0id Maggot ::."; - mes "They are pathetic individually, and slow, a failed experiment."; + mes "They are pathetic individually, and slow, a failed experiment."; mes "But do not let them overwhelm you, togheter they are formidable!"; mes ""; mes ".:: V0id Archant ::."; - mes "An advanced combat unit, without weak points."; + mes "An advanced combat unit, without weak points."; mes "They are slow in movement, but other than that, they are good."; - close; + close; } /////////////////////////////// @@ -382,7 +386,7 @@ L_UseLens: callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "There is a nice score here."; + mes "There is a nice score here."; mes "I assume important info will be sent by SFX only."; next; mes "Also, the time beats of this score are all in 600ms intervals."; @@ -391,7 +395,11 @@ L_UseLens: mes "However, potions will still work, hmm."; mes "There is also a spell here: \"##B#storage##b\"."; mes "I assume it only works at specific times."; - close; + close; + +OnInit: + set .IS_MAGIC, 1; + end; } 099-3,39,46,0|script|Outstanding Book#099-3|400 @@ -400,22 +408,22 @@ L_UseLens: callfunc "PCtoNPCRange"; if(@npc_check) end; - mes "Zax De'Kagen's Diary, entry #27"; + mes "Zax De'Kagen's Diary, entry #27"; mes ""; mes "##9 I am all soaking wet. They found my weak point. ##0"; mes "##9 However it was too late, Fourth Fall brought the end to this. ##0"; mes "##9 I did not even had to cancel my illusion. ##0"; next; - mes "Zax De'Kagen's Diary, entry #34"; + mes "Zax De'Kagen's Diary, entry #34"; mes ""; mes "##9 Today my Rubber Bat flew away. Probably shouldn't have given life to it. ##0"; mes "##9 I'll miss it, my dear friend, I hope one day he returns? ##0"; next; - mes "Zax De'Kagen's Diary, entry #42"; + mes "Zax De'Kagen's Diary, entry #42"; mes ""; mes "##9 What I wouldn't give for some pickled beets right now... ##0"; mes "##9 Meh, whatever. I'm not going to Dimond's Cove ever again! ##0"; - close; + close; } 099-3,64,62,0|script|Pan#099-3|400 @@ -429,20 +437,19 @@ L_UseLens: goto L_Potion; L_Shock: - mes "Some was trying to make Shock Sweets here."; - mes "However, it doesn't seems to have been finished."; + mes "Someone was trying to make Shock Sweets here."; + mes "However, they don't seem to be finished."; next; - mes "There are the initials \"To stop F.F.\" nearby."; + mes "An inscription reads, \"To stop F.F.\", nearby."; mes "One can only wonder who or what F.F. is."; - close; + close; L_Potion: - mes "Some was trying to make a Mana Potion here."; - mes "However, it doesn't seems to have been finished."; + mes "Someone was trying to make a Mana Potion here."; + mes "However, it doesn't seem to have been finished."; next; - mes "There are the initials \"To stop Bob\" nearby."; - mes "Well, I assume it is \"Bob\", text is fainted."; - mes "it could be \"boo\" as well. Maybe from Mouboo?"; - close; + mes "An inscription reads, \"To stop Bob\", nearby."; + mes "Well, I assume it is \"Bob\". The text is faded."; + mes "It could be \"boo\", as well. Maybe from Mouboo?"; + close; } - diff --git a/world/map/npc/099-5/boss.txt b/world/map/npc/099-5/boss.txt index 1ab584fd..1c282d8b 100644 --- a/world/map/npc/099-5/boss.txt +++ b/world/map/npc/099-5/boss.txt @@ -46,9 +46,9 @@ // bool // $@DD5_DEFCON - Defensive mode of Zax De'Kagen // 0 - Defenseless (#------- TRANSPARENT) -// 1 - Invencible (except to shearing) (#CC79A7 PURPLE) +// 1 - Invincible (except to shearing) (#CC79A7 PURPLE) // 2 - All damage is halved (#E69F00 ORANGE) -// 3 - Immune to potion'ed attackers (#D55E00 BROWN) +// 3 - Immune to potioned attackers (#D55E00 BROWN) // 4 - Vulnerable only when wet (#56B4E9 CYAN) // 5 - Vulnerable only to melee (#999999 GRAY) // 6 - Vulnerable to Bone Knife/Bone Arrow (#FFFFFF WHITE) @@ -89,12 +89,7 @@ 099-4|mapflag|resave|009-1,52,40 // Additional mapflags -099-3|mapflag|nosave|099-7,75,36 -099-3|mapflag|resave|099-7,75,36 -099-2|mapflag|nosave|099-7,75,36 -099-2|mapflag|resave|099-7,75,36 -099-1|mapflag|nosave|099-7,75,36 -099-1|mapflag|resave|099-7,75,36 +// 099-1/2/3/6 no flags set means: after relog you respawn at the same spot you logged off, on death you respawn at the last soul menhir 099-5,0,0,0|script|#TMWFinalExam|32767 { @@ -1302,6 +1297,7 @@ L_Return: end; OnInit: disablenpc strnpcinfo(0); + set .IS_MAGIC, 1; end; } @@ -1312,6 +1308,7 @@ OnInit: end; OnInit: disablenpc strnpcinfo(0); + set .IS_MAGIC, 1; end; } @@ -1322,6 +1319,7 @@ OnInit: end; OnInit: disablenpc strnpcinfo(0); + set .IS_MAGIC, 1; end; } @@ -1332,6 +1330,7 @@ OnInit: end; OnInit: disablenpc strnpcinfo(0); + set .IS_MAGIC, 1; end; } @@ -1525,6 +1524,7 @@ L_TooEarly: OnInit: disablenpc "Gema III"; + set .IS_MAGIC, 1; end; } ///////////////////////////////////////////////////// @@ -1535,6 +1535,7 @@ OnInit: end; OnInit: disablenpc "Xakelbael the Dark#0"; + set .IS_MAGIC, 1; end; OnTimer50000: @@ -1562,6 +1563,7 @@ OnDisable: end; OnInit: disablenpc "Zax De'Kagen#0"; + set .IS_MAGIC, 1; end; OnTimer18000: diff --git a/world/map/npc/099-7/boss.txt b/world/map/npc/099-7/boss.txt index 7d68bca8..b572c7cc 100644 --- a/world/map/npc/099-7/boss.txt +++ b/world/map/npc/099-7/boss.txt @@ -532,8 +532,8 @@ L_Off: if (!#CRYPT_PASSWORD) end; mes "There's an inscription on the gate."; next; - mes "\"The candle shall lit you, but if you mess up, a different light will show."; - mes "Alas did you knew, that Razha came before Krukan?\""; + mes "\"The candle should be lit, but if you mess up a different light will show."; + mes "Alas, did you know that Razha came before Krukan?\""; close; } @@ -552,7 +552,7 @@ L_Off: mes "There's an inscription on the gate."; next; mes "\"The master's candlesticks are like the fingers of his hand."; - mes "And if it is not to kill, they will never move.\""; + mes "And if they are not to kill, they will never move.\""; close; } @@ -563,9 +563,9 @@ L_Off: next; mes "\"##B"+get(.invocation$, "reapercry")+"##b\""; next; - mes "##9You hear the sounds of battle. Candle lights shines in distance."; + mes "##9You hear the sounds of battle. Candle light shines in the distance."; next; - mes "##9However, when you turn towards the source - both the light as the sound have already stopped."; + mes "##9However, when you turn towards the source, the light, as the sound, have already stopped."; next; mes "##9Is this a clue of some sort?"; close; @@ -581,7 +581,7 @@ L_Off: mes "Thanks to the lens on your inventory, you can read this:"; mes ""; mes "\"Nu'rem perished here, after the fight with Jande, Tal and Di'Tal."; - mes "For this very reason, this land is plagued forever. We shall give Nu'Rem a proper burrial.\""; + mes "For this very reason, this land is plagued forever. We shall give Nu'Rem a proper burial.\""; next; mes "-- The Sparron"; close; @@ -590,7 +590,7 @@ L_Tools: mes "It is too faint to read without some good lens, but you can make the following words out of the engraving:"; next; mes "\"Nu'rem .... here .... fight .... Jande ...."; - mes ".... land .... plagued forever. .... Nu'Rem .... proper burrial.\""; + mes ".... land .... plagued forever. .... Nu'Rem .... proper burial.\""; next; mes "-- The ...."; close; @@ -694,8 +694,8 @@ L_FlawedLens: L_Rare: getexp 15000000, 0; set KESHLAM_STATE, KESHLAM_STATE | FLAG_KESHLAM_RAREDROP; - if (rand(4) == 1) goto L_Amulet; // 25% chance - goto L_Ring; // 75% chance + if (rand(3) == 1) goto L_Amulet; // 33.33% chance + goto L_Ring; // 66.66% chance L_Amulet: getitem "EnchantersAmulet", 1; @@ -704,9 +704,9 @@ L_Amulet: close; L_Ring: - getitem "MageRing", 1; + getitem "MagicRing", 1; mes "[Chest]"; - mes "You opened it and found...! A Mage Ring! Lucky!"; + mes "You opened it and found...! A Magic Ring! Lucky!"; close; L_Not_Enough: @@ -786,4 +786,3 @@ L_No: warp "099-7", 92, 36; end; } - diff --git a/world/map/npc/099-7/chronos.txt b/world/map/npc/099-7/chronos.txt index 5150a34b..1a93fd6e 100644 --- a/world/map/npc/099-7/chronos.txt +++ b/world/map/npc/099-7/chronos.txt @@ -287,14 +287,14 @@ OnInit: "Candy-Caned Anti-Grinch-Rifle 2020"; setarray $@chronos_2_medal$, "Eyepatch", "TopHat", "FunkyHat", "MushHat", "ShroomHat", "ChristmasElfHat", "FaceMask", "CaptainsHat", "TamOShanter", "BunnyEars", "PanHat", "PilotHat", - "CarbonGasMask", "GroovyHat", "JazzyHat", "AnniversaryHat", "ChicSantaHat", "ReadingGlasses", "EggshellHat", "Pipe", "ScarabArmlet", + "CarbonGasMask", "GroovyHat", "JazzyHat", "AnniversaryHat", "ChicSantaHat", "ReadingGlasses", "EggshellHat", "Pipe", "ScarabArmlet", "Scissors", "LeprechaunHead", "BlinkingEvil", "BlinkingEvilRed", "BlinkingEvilBlue", "BlinkingEvilPink", "BlinkingEvilYellow", "BlinkingHocus", "GoldenPlatemail", "Earmuffs"; setarray $@chronos_2_medal_n$, "Eyepatch", "Top Hat", "Funky Hat", "Mush Hat", "Shroom Hat", "Christmas Elf Hat", "Face Mask", "Captain's Hat", "Tam O' Shanter", "Bunny Ears", "Pan Hat", "Pilot Hat", - "Carbon Gas Mask", "Groovy Hat", "Jazzy Hat", "Anniversary Hat", "Chic Santa Hat", "Reading Glasses", "Eggshell Hat", "Smoking Pipe", "Scarab Armlet", + "Carbon Gas Mask", "Groovy Hat", "Jazzy Hat", "Anniversary Hat", "Chic Santa Hat", "Reading Glasses", "Eggshell Hat", "Smoking Pipe", "Scarab Armlet", "Scissors", "Leprechaun Head", "Mask of Blinking Evil (Green)", "Mask of Blinking Evil (Red)", "Mask of Blinking Evil (Blue)", "Mask of Blinking Evil (Pink)", "Mask of Blinking Evil (Yellow)", "Mask of Blinking Hocus", "Golden Platemail", "Earmuffs"; - setarray $@chronos_3_medal$, "BlinkingEvilHalloween", "MoonshroomHat", "WhiteEvokersRobeBlue", "BlackEvokersRobeBlue", "ApprenticeRobe", "GoldenWarlordPlate", "MageRing"; - setarray $@chronos_3_medal_n$, "Mask of Blinking Evil (Orange)", "Moonshroom Hat", "White Evoker's Robe (Blue)", "Black Evoker's Robe (Blue)", "Apprentice Robe", "Golden Warlord Plate", "Magic Ring"; + setarray $@chronos_3_medal$, "BlinkingEvilHalloween", "MoonshroomHat", "WhiteEvokersRobeBlue", "BlackEvokersRobeBlue", "ApprenticeRobe", "GoldenWarlordPlate", "MagicRing", "Rainerang"; + setarray $@chronos_3_medal_n$, "Mask of Blinking Evil (Orange)", "Moonshroom Hat", "White Evoker's Robe (Blue)", "Black Evoker's Robe (Blue)", "Apprentice Robe", "Golden Warlord Plate", "Magic Ring", "Rainerang"; setarray $@chronos_4_medal$, "OverlordsHelmet", "DarkTalisman", "Aureole", "PaladinsHelmet", "EnchantersAmulet", "DragonShield", "HeartOfIsis", "BansheeBow", "BullHelmet", "AssassinShirt", "LazuriteRobe", "DarkHelm", "UnderworldMask", "Phylactery"; diff --git a/world/map/npc/099-8/mobs.txt b/world/map/npc/099-8/mobs.txt index b46efc08..c7c998a3 100644 --- a/world/map/npc/099-8/mobs.txt +++ b/world/map/npc/099-8/mobs.txt @@ -163,7 +163,7 @@ OnBoss: next; mes "##9The controls seems to have been destroyed!"; mes "##9The panel says the situtation is critical."; - mes "##9Why the final defensive measures didn't engage?"; + mes "##9Why didn't the final defensive measures engage?"; next; mes "What's happening?"; close; @@ -211,7 +211,7 @@ OnBoss: mes "##9The controls seems to have been destroyed!"; mes "##9I wonder where these three rooms are."; mes "##9What sort of research was being conducted?"; - mes "##9What is a Crystal Room? I don't saw any passage."; + mes "##9What is a Crystal Room? I didn't see any passage."; next; mes "What's happening?"; close; @@ -234,4 +234,3 @@ OnBoss: mes "What's happening?"; close; } - diff --git a/world/map/npc/annuals/2022.txt b/world/map/npc/annuals/2022.txt index 4752b137..d5595d48 100644 --- a/world/map/npc/annuals/2022.txt +++ b/world/map/npc/annuals/2022.txt @@ -88,6 +88,3 @@ OnInit: registercmd "#crcend", strnpcinfo(0)+"::OnEndEv"; end; } - - - diff --git a/world/map/npc/annuals/xmas/2020.txt b/world/map/npc/annuals/xmas/2020.txt index 0490d1a7..dc7a66d8 100644 --- a/world/map/npc/annuals/xmas/2020.txt +++ b/world/map/npc/annuals/xmas/2020.txt @@ -402,6 +402,10 @@ OnClock2124: OnClock0024: goto OnClock2359; */ + +OnInit: + set .IS_MAGIC, 1; + end; } @@ -832,4 +836,3 @@ OnNearbyNpc: set @nearby, @nearby + 1; end; } - diff --git a/world/map/npc/commands/destroynpc.txt b/world/map/npc/commands/destroynpc.txt index 1ebede9e..552f9693 100644 --- a/world/map/npc/commands/destroynpc.txt +++ b/world/map/npc/commands/destroynpc.txt @@ -22,7 +22,7 @@ L_Confirm: end; L_Failed: - message strcharinfo(0), "destroynpc : Impossible to find the target npc. Did you try putting the name in \"quotation marks\"? Some npcs also have an invisible postfix in their name, ie `#_M`."; + message strcharinfo(0), "destroynpc : Impossible to find the target npc. Did you try putting the name in \"quotation marks\"? Some npcs also have an invisible postfix in their name, ie `#barrier`."; end; L_GM: diff --git a/world/map/npc/commands/hug.txt b/world/map/npc/commands/hug.txt index f97c81e4..af8bd6e1 100644 --- a/world/map/npc/commands/hug.txt +++ b/world/map/npc/commands/hug.txt @@ -18,8 +18,9 @@ close; OnInit: - set .tree_id, getnpcid("#DruidTree0#_M"); + set .tree_id, getnpcid("#DruidTree0"); registercmd "*hugs", strnpcinfo(0); // eq: /me hugs (target) registercmd "*hugs*", strnpcinfo(0); // eq: /me hugs + set .IS_MAGIC, 1; end; } diff --git a/world/map/npc/functions/doomsday.txt b/world/map/npc/functions/doomsday.txt index bba08e75..2be517c3 100644 --- a/world/map/npc/functions/doomsday.txt +++ b/world/map/npc/functions/doomsday.txt @@ -979,7 +979,3 @@ OnDeathAct4: end; } - - - - diff --git a/world/map/npc/items/magicring_item.txt b/world/map/npc/items/magicring_item.txt new file mode 100644 index 00000000..eeb1aee6 --- /dev/null +++ b/world/map/npc/items/magicring_item.txt @@ -0,0 +1,27 @@ +// Variables passed to this script: +// @slotId The slot in which the item would have been equipped in. This is passed automagically when called in an equip script. + +function|script|MagicRingItem +{ + + set @debug_mask, 65535; + set @debug_shift, 0; + set @mexp, ((MAGIC_EXPERIENCE & @debug_mask) >> @debug_shift); + + set @magicring_mexp_needed, 5404; + + if ( @mexp >= @magicring_mexp_needed ) + goto L_Return; + + message strcharinfo(0), "You are not experienced enough to use the Magic Ring."; + + // This is for debug + if (debug) + goto L_Return; + + callfunc "UnequipLater"; + goto L_Return; + +L_Return: + return; +} diff --git a/world/map/npc/items/manapearl_item.txt b/world/map/npc/items/manapearl_item.txt index 9c1f1c04..2d7ce428 100644 --- a/world/map/npc/items/manapearl_item.txt +++ b/world/map/npc/items/manapearl_item.txt @@ -15,7 +15,7 @@ function|script|ManaPearlItem if ( @mexp >= @manapearl_mexp_needed ) goto L_Return; - message strcharinfo(0), "You are not expirienced enough to keep up the mana flow that is needed to stay in resonance with the Mana Pearl."; + message strcharinfo(0), "You are not experienced enough to keep up the mana flow that is needed to stay in resonance with the Mana Pearl."; // This is for debug if (debug) diff --git a/world/map/npc/magic/level1-detect-magic.txt b/world/map/npc/magic/level1-detect-magic.txt index 33597d02..420b457c 100644 --- a/world/map/npc/magic/level1-detect-magic.txt +++ b/world/map/npc/magic/level1-detect-magic.txt @@ -12,6 +12,9 @@ if (CASTS < 0) set CASTS, 1; // overflow misceffect FX_MAGIC_DETECT_CAST, strcharinfo(0); set .@range, (@spellpower/50)+1; + set .caster, getcharid(3); + foreach 0, getmap(), POS_X - .@range, POS_Y - .@range, POS_X + .@range, POS_Y + .@range, + strnpcinfo(0) + "::OnNearbyPlayer"; foreach 1, getmap(), POS_X - .@range, POS_Y - .@range, POS_X + .@range, POS_Y + .@range, strnpcinfo(0) + "::OnNearbyNpc"; if (getmap() == "099-4") @@ -21,9 +24,17 @@ callfunc "magic_exp"; end; +OnNearbyPlayer: + if (@target_id == BL_ID) end; // Dont do lookups on caster. + if (sc_check(SC_HIDE, @target_id)) end; // Also skip hidden (anwiltyp) players. + if (attachrid(@target_id) < 1) end; // Switch context -> found player (to look up focused skills) + if (call("is_magician")) misceffect FX_MAGIC_DETECT_HIT, BL_ID; // BL_ID because now attached to target + if (attachrid(.caster) < 1) end; // Try to reattach back -> caster (is it needed?) + end; + OnNearbyNpc: set .@e$, strnpcinfo(2,@target_id); - if(.@e$ == "#_M" || .@e$ == "#MAGIC" || get(.IS_MAGIC, @target_id)) + if(.@e$ == "#_M" || .@e$ == "#MAGIC" || get(.IS_MAGIC, @target_id)) //#_M and #MAGIC can be used for problematic situations, like shops misceffect FX_MAGIC_DETECT_HIT, @target_id; end; @@ -35,3 +46,23 @@ OnInit: set .exp_gain, 0; end; } + +// This function tests if current RID is a magician (Astral soul skill Lv 9). +function|script|is_magician +{ + getactivatedpoolskilllist; + if (@skilllist_count != 0) goto L_iterate_focused; // Had some focused skills -> look further + goto L_focus_notfound; // No focused skills at all -> bail out. + +L_iterate_focused: + set @skilllist_count, @skilllist_count-1; + if ((@skilllist_id[@skilllist_count] == SKILL_ASTRAL_SOUL) && (getskilllv(SKILL_ASTRAL_SOUL) >= 2)) goto L_focus_found; + if (@skilllist_count == 0) goto L_focus_notfound; + goto L_iterate_focused; // iterate via array of focused skills. + +L_focus_found: + return 1; + +L_focus_notfound: + return 0; +} diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf index b0a5f0c2..448e0947 100644 --- a/world/map/npc/scripts.conf +++ b/world/map/npc/scripts.conf @@ -59,6 +59,7 @@ npc: npc/items/drugs.txt npc: npc/items/max_stat.txt npc: npc/items/nobow_item.txt npc: npc/items/love_potion.txt +npc: npc/items/magicring_item.txt npc: npc/items/manapearl_item.txt npc: npc/items/underworld_troll.txt npc: npc/items/silver_bell.txt |