diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | conf/atcommand_local.conf.example | 43 | ||||
-rw-r--r-- | db/const.txt | 3 | ||||
-rw-r--r-- | db/item_db.txt | 69 | ||||
-rw-r--r-- | db/mob_db.txt | 10 | ||||
-rw-r--r-- | news.txt | 12 | ||||
-rw-r--r-- | npc/008-1_Hurnscald_outskirts/_import.txt | 2 | ||||
-rw-r--r-- | npc/008-1_Hurnscald_outskirts/dock.txt | 6 | ||||
-rw-r--r-- | npc/008-1_Hurnscald_outskirts/dock_worker.txt | 7 | ||||
-rw-r--r-- | npc/021-2_Tulimshar/bakery.txt | 2 | ||||
-rw-r--r-- | npc/022-1_Tulimshar/_import.txt | 3 | ||||
-rw-r--r-- | npc/022-1_Tulimshar/dock.txt | 6 | ||||
-rw-r--r-- | npc/022-1_Tulimshar/elanore.txt | 3 | ||||
-rw-r--r-- | npc/022-1_Tulimshar/ferry_master.txt | 16 | ||||
-rw-r--r-- | npc/functions/ferry.txt | 42 | ||||
-rw-r--r-- | npc/scripts.conf | 1 | ||||
-rw-r--r-- | tools/retab.sml | 15 |
17 files changed, 197 insertions, 46 deletions
@@ -17,6 +17,9 @@ char-server login-server map-server +# Tools executables +tools/retab + # Server files log/ gm.log.* diff --git a/conf/atcommand_local.conf.example b/conf/atcommand_local.conf.example index db127c60..b28b84fe 100644 --- a/conf/atcommand_local.conf.example +++ b/conf/atcommand_local.conf.example @@ -140,18 +140,6 @@ kamib: 60 // Shows Stats Of All Characters Online charstatsall: 60 -// Turns PVP (Person v. Person) off on a map. -pvpoff: 60 - -// Enables PVP on a map. -pvpon: 60 - -// Sets the speed you can walk/attack at. Default is 150. -speed: 60 - -// Kill all monsters in map (with drops) -killmonster: 60 - // Kill all monsters in map (without drops) killmonster2: 60 @@ -170,18 +158,12 @@ dropall: 60 // store all your items storeall: 60 -// allow other players to hit you out of pvp -killable: 60 - // look up a skill by name skillid: 60 // use a skill by id useskill: 60 -// make another player killable -charkillable: 60 - // Spawns a monster, and a certain amount spawn: 60 @@ -234,9 +216,6 @@ charsave: 60 // Kill another character without hitting them. kill: 60 -// Enable hitting a player even when not in pvp -killer: 60 - // Creates weapon of desired element. produce: 60 @@ -308,6 +287,28 @@ visible: 60 //---------------------- // 80: "eA Dev" + +// Turns PVP (Person v. Person) off on a map. +pvpoff: 80 + +// Enables PVP on a map. +pvpon: 80 + +// Sets the speed you can walk/attack at. Default is 150. +speed: 80 + +// Kill all monsters in map (with drops) +killmonster: 80 + +// make another player killable +charkillable: 80 + +// Enable hitting a player even when not in pvp +killer: 80 + +// allow other players to hit you out of pvp +killable: 80 + // set magic properties on a char setmagic: 80 diff --git a/db/const.txt b/db/const.txt index b51e3aa1..99f14f38 100644 --- a/db/const.txt +++ b/db/const.txt @@ -225,3 +225,6 @@ MFLAG_KNOWS_IMP 4096 // Knows about the imprisoned forest spirit MFLAG_KNOWS_OLD_WIZARD 8192 // Knows Bjorn's old wizard MFLAG_MADE_CONC_POTION 16384 // Made a concentration potion with T15 and/or T16 MFLAG_ELANORE_OMAR 32768 // Told Omar about Elanore's involvement + +DOCK_tulimshar 1 +DOCK_hurnscald 2 diff --git a/db/item_db.txt b/db/item_db.txt index 88c1f51c..fb9e1510 100644 --- a/db/item_db.txt +++ b/db/item_db.txt @@ -86,11 +86,29 @@ 584, Jackal, Jackal, 4, 8000, 4000, 100, 100, , 1, , 0, 2, 2, 1, 1, 1, {}, {} 585, ScarabArmlet, Scarab Armlet, 5, 8000, 4000, 100, , 0, , 5, 0, 2, 32, , 1, 1, {}, {} 586, CottonShorts, Cotton Shorts, 5, 1000, 500, 10, , 2, , -4, 0, 2, 1, , 1, 0, {}, {} -//, , A bunch of unfinished weapons -//, , The brit shield +//587, RESERVED, Sword, , , , , , , , , , , , , , , {}, {} +//588, RESERVED, Bastard Sword, , , , , , , , , , , , , , , {}, {} +//589, RESERVED, Broad Sword, , , , , , , , , , , , , , , {}, {} +//590, RESERVED, Baselard, , , , , , , , , , , , , , , {}, {} +//591, RESERVED, Long Sword, , , , , , , , , , , , , , , {}, {} +//592, RESERVED, Stiletto, , , , , , , , , , , , , , , {}, {} +//593, RESERVED, Rapier, , , , , , , , , , , , , , , {}, {} +//594, RESERVED, Spear, , , , , , , , , , , , , , , {}, {} +//595, RESERVED, Heavy Spear, , , , , , , , , , , , , , , {}, {} +//596, RESERVED, Pike, , , , , , , , , , , , , , , {}, {} +//597, RESERVED, Heavy Pike, , , , , , , , , , , , , , , {}, {} +//598, RESERVED, Dual Spear, , , , , , , , , , , , , , , {}, {} +//599, RESERVED, Fire Sword, , , , , , , , , , , , , , , {}, {} +//600, RESERVED, Brit Shield, , , , , , , , , , , , , , , {}, {} 601, SteelShield, Steel Shield, 5, 40000, 3000, 180, , 20, , -200, 0, 2, 32, , , 0, {}, {} 602, WoodenShield, Wooden Shield, 5, 10000, 2000, 100, , 14, , -70, 0, 2, 32, , , 0, {}, {} 603, LeatherShield, Leather Shield, 5, 2000, 1000, 60, , 7, , -35, 0, 2, 32, , , 0, {}, {} +//604, RESERVED, Knight Shield, , , , , , , , , , , , , , , {}, {} +//605, RESERVED, Meat Cleaver, , , , , , , , , , , , , , , {}, {} +//606, RESERVED, Hatchet, , , , , , , , , , , , , , , {}, {} +//607, RESERVED, Trident, , , , , , , , , , , , , , , {}, {} +//608, RESERVED, Blade Shield, , , , , , , , , , , , , , , {}, {} +//609, RESERVED, Club, , , , , , , , , , , , , , , {}, {} 610, JeansShorts, Jeans Shorts, 5, 2000, 1000, 10, , 4, , -8, 0, 2, 1, , 0, 0, {}, {} 611, WhiteFur, White Fur, 3, 8, 4, 10, , , , , , , , , , , {}, {} 612, CaveSnakeLamp, Cave Snake Lamp, 3, 80, 40, 10, , , , , , , , , , , {}, {} @@ -129,12 +147,12 @@ 645, GoldenPlatemail, Golden Platemail, 5, 9999000,3000, 240, , 25, , -100, 0, 2, 512, , 0, 0, {}, {} 646, Crown, Crown, 5, 5000, 1000, 50, , 4, , 0, 0, 2, 256, , 0, 0, {}, {} 647, DevelopersCap, Developer's Cap, 5, 2000, 500, 10, , 5, , 5, 0, 2, 256, , 0, 0, {}, {} -//648, Stat ring -//649, Stat ring -//650, Stat ring -//651, Stat ring -//652, Stat ring -//653, Stat ring +//648, RESERVED, Rough Strength Ring, , , , , , , , , , , , , , , {}, {} +//649, RESERVED, Rough Agility Ring, , , , , , , , , , , , , , , {}, {} +//650, RESERVED, Rough Dexterity Ring, , , , , , , , , , , , , , , {}, {} +//651, RESERVED, Rough Vitality Ring, , , , , , , , , , , , , , , {}, {} +//652, RESERVED, Rough Intelligence Ring, , , , , , , , , , , , , , , {}, {} +//653, RESERVED, Rough Willpower Ring, , , , , , , , , , , , , , , {}, {} 654, Cap, Cap, 5, 2000, 500, 20, , 5, , 0, 0, 2, 256, , 0, 0, {}, {} 655, FurBoots, Fur Boots, 5, 5000, 600, 250, , 3, , -3, 0, 2, 64, , 0, 0, {}, {} 656, SerfHat, Serf Hat, 5, 500, 100, 20, , 2, , 0, 0, 2, 256, , 0, 0, {}, {} @@ -200,7 +218,7 @@ 716, GrassSnakeEgg, Grass Snake Egg, 0, 100, 50, 4, , , , , , 2, , , 0, , { itemheal 50, 0; }, {} 717, CaveSnakeEgg, Cave Snake Egg, 0, 60, 30, 4, , , , , , 2, , , 0, , { itemheal 20, 0; }, {} 718, SilkCocoon, Silk Cocoon, 3, 200, 3, 1, , , , , , , , , , , {}, {} -//, , RESERVED +//719, RESERVED, Silk Thread, , , , , , , , , , , , , , , {}, {} 720, SilkRobe, Silk Robe, 5, 8000, 4000, 5, , 5, , 0, 0, 2, 512, , 0, 0, {}, {} 721, HighPriestCrown, High Priest Crown, 5, 20000, 5000, 60, , 4, , 20, 0, 2, 256, , 0, 0, {}, { bonus bMaxSP, 20; } 722, MonsterSkullHelmet, Monster Skull Helmet, 5, 15000, 3000, 40, , 7, , 10, 0, 2, 256, , 0, 0, {}, { bonus bMdef, 20; } @@ -236,9 +254,22 @@ 752, FluffyHat, Fluffy Hat, 5, 7000, 2000, 10, , 2, , -5, 0, 2, 256, , 0, 0, {}, {} 753, BatWing, Bat Wing, 3, 500, 100, 3, , , , , , , , , , , {}, {} 754, BatTeeth, Bat Teeth, 3, 600, 150, 2, , , , , , , , , , , {}, {} -755, AssassinShirt, Assassin Shirt, 5, 10000, 3000, 15, , 10, , -5, 0, 2, 512, , 0, 0, {}, { bonus bAgi, 10; } -756, AssassinGloves, Assassin Gloves, 5, 7000, 2000, 9, , 5, , -3, 0, 2, 4, , 0, 0, {}, { bonus bAgi, 5; } -757, AssassinBoots, Assassin Boots, 5, 7000, 2000, 10, , 5, , -3, 0, 2, 64, , 0, 0, {}, { bonus bAgi, 5; } +755, AssassinShirt, Assassin Shirt, 5, 10000, 3000, 15, , 10, , -5, 0, 2, 512, , 0, 0, {}, { bonus bAgi, 10; } +756, AssassinGloves, Assassin Gloves, 5, 7000, 2000, 9, , 5, , -3, 0, 2, 4, , 0, 0, {}, { bonus bAgi, 5; } +757, AssassinBoots, Assassin Boots, 5, 7000, 2000, 10, , 5, , -3, 0, 2, 64, , 0, 0, {}, { bonus bAgi, 5; } +//758, WoodenStaff, Wooden Staff, , , , , , , , , , , , , , , {}, {} +//759, PaladinsHelmet, Paladin's Helmet, , , , , , , , , , , , , , , {}, {} +//760, OverlordsHelmet, Overlord's Helmet, , , , , , , , , , , , , , , {}, {} +//761, DesertHelmet, Desert Helmet, , , , , , , , , , , , , , , {}, {} +//762, TerraniteArrow, Terranite Arrow, , , , , , , , , , , , , , , {}, {} +//763, TerraniteOre, Terranite Ore, , , , , , , , , , , , , , , {}, {} +//764, SailorHat, Sailor Hat, , , , , , , , , , , , , , , {}, {} +//765, CaptainsHat, Captain's Hat, , , , , , , , , , , , , , , {}, {} +//766, TerraniteHelmet, Terranite Helmet, , , , , , , , , , , , , , , {}, {} +//767, TerraniteChestArmor, Terranite Chest Armor, , , , , , , , , , , , , , , {}, {} +//768, TerraniteLegsArmor, Terranite Legs Armor, , , , , , , , , , , , , , , {}, {} +//769, GuyFawkesMask, Guy Fawkes' Mask, , , , , , , , , , , , , , , {}, {} +//770, FairyHat, Fairy Hat, , , , , , , , , , , , , , , {}, {} 1198, JackOSoul, Jack O Soul, 3, 100000, 1, 1, , , , , , , , , , , {}, {} 1199, Arrow, Arrow, 10, 3, 1, 1, 25, 0, 0, , 0, 2, 32768, , , , {}, {} @@ -259,10 +290,18 @@ 1214, BunnyEars, Bunny Ears, 5, 5000, 2000, 10, , 10, , 1, 0, 2, 256, , 0, 0, {}, {} 1215, ToySabre, Toy Sabre, 4, 50, 25, 1, 1, , 1, , 0, 2, 2, 1, 1, 1, {}, {} 1216, MoubooHead, Mouboo Head, 5, 10, 1, 20, , 1, , 0, 0, 2, 256, , 0, 0, {}, {} -1217, CatEars, Cat Ears, 5, 100, 50, 2, , 1, , 1, 0, 2, 256, , 0, 0, {}, { bonus bAgi, 3; } -1218, PaperBag, Paper Bag, 5, 1000, 5, 1, , 1, , -1, 0, 2, 256, , 0, 0, {}, { bonus bAgi, -1; } +1217, CatEars, Cat Ears, 5, 100, 50, 2, , 1, , 1, 0, 2, 256, , 0, 0, {}, { bonus bAgi, 3; } +1218, PaperBag, Paper Bag, 5, 1000, 5, 1, , 1, , -1, 0, 2, 256, , 0, 0, {}, { bonus bAgi, -1; } 1219, MoubootaurHead, Moubootaur Head, 5, 10, 1, 20, , 1, , 0, 0, 2, 256, , 0, 0, {}, {} -1220, BunchOfParsley, Bunch of Parsley, 5, 3, 1, 1, , 1, , 0, 0, 2, 256, , 0, 0, {}, { bonus bDeaf, 1; } +1220, BunchOfParsley, Bunch of Parsley, 5, 3, 1, 1, , 1, , 0, 0, 2, 256, , 0, 0, {}, { bonus bDeaf, 1; } +//1221, SkullMask, Skull Mask, , , , , , , , , , , , , , , {}, {} +//1222, SmallPieceOfClay, Small Piece of Clay, , , , , , , , , , , , , , , {}, {} +//1223, BigPieceOfWhiteClay, Big Piece of White Clay, , , , , , , , , , , , , , , {}, {} +//1224, ScrollOfPaper, Scroll of Paper, , , , , , , , , , , , , , , {}, {} +//1225, FireScroll, Fire Scroll, , , , , , , , , , , , , , , {}, {} +//1226, SilverBell, Silver Bell, , , , , , , , , , , , , , , {}, {} +//1227, EnchantersAmulet, Enchanter's Amulet, , , , , , , , , , , , , , , {}, {} +//1228, SilverFourLeafAmulet, Silver Four-Leaf Amulet, , , , , , , , , , , , , , , {}, {} 2050, RedCottonShirt, Red Cotton Shirt, 5, 10, 5, 100, , 2, , -4, 0, 2, 512, , 0, 0, {}, {} 2051, GreenCottonShirt, Green Cotton Shirt, 5, 10, 5, 100, , 2, , -4, 0, 2, 512, , 0, 0, {}, {} diff --git a/db/mob_db.txt b/db/mob_db.txt index ccaf4f67..7d1a9163 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -33,6 +33,14 @@ 1033, SeaSlime, Sea Slime, 70, 600, 0, 0, 9, 1, 30, 50, 3, 7, 1, 25, 1, 0, 30, 30, 1, 1, 1, 0, 41, 131, 1500, 1872, 672, 480, 535, 800, 657, 800, 518, 500, 510, 1000, 700, 100, 1199, 5000, 568, 100, 541, 50, 0, 0, 0, 0, , , , , , , 0, 0 1034, GrassSnake, Grass Snake, 140, 1000, 0, 0, 100, 1, 80, 120, 2, 10, 20, 40, 10, 10, 40, 50, 1, 1, 1, 0, 20, 133, 500, 1100, 672, 480, 716, 400, 716, 400, 712, 500, 676, 500, 660, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 1, 40 1035, Silkworm, Silkworm, 20, 1, 0, 0, 1, 1, 0, 0, 2, 10, 20, 11, 10, 10, 40, 10, 1, 1, 1, 0, 20, 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, , , , , , , 2, 40 -// , Zombie, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , +1036, Zombie, Zombie, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 129, 800, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 1037, CloverPatch, Clover Patch, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 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 1038, Squirrel, Squirrel, 15, 160, 1, 0, 1, 1, 15, 25, 1, 6, 1, 3, 1, 0, 15, 40, 1, 1, 1, 3, 20, 129, 800, 800, 672, 480, 743, 7000, 680, 1000, 681, 1000, 682, 1000, 683, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 1, 15 +//1039, FireLizard +1040, Wisp, Wisp, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 129, 800, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 +//1041, Snail +1042, Spectre, Spectre, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 129, 800, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 +1043, Skeleton, Skeleton, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 129, 800, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 +1044, LadySkeleton, Lady Skeleton, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 129, 800, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 +1045, Fallen, Fallen, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 129, 800, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 +1046, SnakeLord, Snake Lord, 300, 40000, 0, 0, 8000, 2, 80, 120, 10, 10, 20, 40, 10, 10, 40, 10, 1, 1, 1, 0, 20, 132, 200, 1500, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 @@ -1,3 +1,15 @@ +##3 Skill Changes +##3 ? + +##0 For simplification and realism purposes, the old +##0 basic skill has been removed. Emote, trade, and +##0 party-related abilities are now available in +##0 three completely new and independent skills. To +##0 get these new skills, you'll need to find NPCs +##0 that give them out in Tulimshar. Don't worry, +##0 this won't affect existing parties, and sitting +##0 will always be available from now on. + ##3 Magic Fixes ##3 2009-09-15 diff --git a/npc/008-1_Hurnscald_outskirts/_import.txt b/npc/008-1_Hurnscald_outskirts/_import.txt index ee2463a5..2bdd6303 100644 --- a/npc/008-1_Hurnscald_outskirts/_import.txt +++ b/npc/008-1_Hurnscald_outskirts/_import.txt @@ -2,6 +2,6 @@ map: 008-1.gat npc: npc/008-1_Hurnscald_outskirts/_mobs.txt npc: npc/008-1_Hurnscald_outskirts/_warps.txt npc: npc/008-1_Hurnscald_outskirts/andra.txt -npc: npc/008-1_Hurnscald_outskirts/dock_worker.txt +npc: npc/008-1_Hurnscald_outskirts/dock.txt npc: npc/008-1_Hurnscald_outskirts/george.txt npc: npc/008-1_Hurnscald_outskirts/hinnak.txt diff --git a/npc/008-1_Hurnscald_outskirts/dock.txt b/npc/008-1_Hurnscald_outskirts/dock.txt new file mode 100644 index 00000000..46aa5a92 --- /dev/null +++ b/npc/008-1_Hurnscald_outskirts/dock.txt @@ -0,0 +1,6 @@ +// The ferry dock + +008-1.gat,140,64,0 script #hurnscalddock 127,2,1,{ + set @loc, DOCK_hurnscald; + callfunc "Ferry"; +} diff --git a/npc/008-1_Hurnscald_outskirts/dock_worker.txt b/npc/008-1_Hurnscald_outskirts/dock_worker.txt deleted file mode 100644 index 1da75718..00000000 --- a/npc/008-1_Hurnscald_outskirts/dock_worker.txt +++ /dev/null @@ -1,7 +0,0 @@ -// - -008-1.gat,136,65,0 script Construction Worker 155,{ - mes "[Construction worker]"; - mes "\"I'm builing a dock here. I don't know any details about how it will be used. Sorry.\""; - close; -} diff --git a/npc/021-2_Tulimshar/bakery.txt b/npc/021-2_Tulimshar/bakery.txt index 6458c781..bcb2ba28 100644 --- a/npc/021-2_Tulimshar/bakery.txt +++ b/npc/021-2_Tulimshar/bakery.txt @@ -4,7 +4,7 @@ 021-2.gat,95,21,0 script Riskim 148,{ mes "[Riskim]"; mes "\"Welcome to our bakery!\""; - + next; callfunc "KadiyaSubquestConsts"; if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0)) goto L_lace_chococake; diff --git a/npc/022-1_Tulimshar/_import.txt b/npc/022-1_Tulimshar/_import.txt index e3e6f0d8..f2c7098b 100644 --- a/npc/022-1_Tulimshar/_import.txt +++ b/npc/022-1_Tulimshar/_import.txt @@ -1,3 +1,6 @@ map: 022-1.gat npc: npc/022-1_Tulimshar/_mobs.txt npc: npc/022-1_Tulimshar/_warps.txt +npc: npc/022-1_Tulimshar/dock.txt +npc: npc/022-1_Tulimshar/elanore.txt +npc: npc/022-1_Tulimshar/ferry_master.txt diff --git a/npc/022-1_Tulimshar/dock.txt b/npc/022-1_Tulimshar/dock.txt new file mode 100644 index 00000000..72d28486 --- /dev/null +++ b/npc/022-1_Tulimshar/dock.txt @@ -0,0 +1,6 @@ +// The ferry dock + +022-1.gat,84,72,0 script #tulimshardock 127,6,1,{ + set @loc, DOCK_tulimshar; + callfunc "Ferry"; +} diff --git a/npc/022-1_Tulimshar/elanore.txt b/npc/022-1_Tulimshar/elanore.txt new file mode 100644 index 00000000..f94344a7 --- /dev/null +++ b/npc/022-1_Tulimshar/elanore.txt @@ -0,0 +1,3 @@ +// + +022-1.gat,68,79,0 duplicate(Elanore#_M) Elanore 108 diff --git a/npc/022-1_Tulimshar/ferry_master.txt b/npc/022-1_Tulimshar/ferry_master.txt new file mode 100644 index 00000000..3cc10ce3 --- /dev/null +++ b/npc/022-1_Tulimshar/ferry_master.txt @@ -0,0 +1,16 @@ +// + +022-1.gat,73,71,0 script Ferry Master 138,{ + mes "[Ferry Master]"; + mes "\"Hello! Do you need something?\""; + next; + menu + "How do I use the ferry?", L_Explain, + "Nothing I guess", -; + close; + +L_Explain: + mes "[Ferry Master]"; + mes "\"You'll setup on the dock and select your destination. Each destination has an associated price that you need to pay. You don't have to go anywhere. Choosing the current port will result in nothing.\""; + close; +} diff --git a/npc/functions/ferry.txt b/npc/functions/ferry.txt new file mode 100644 index 00000000..0e33c6ac --- /dev/null +++ b/npc/functions/ferry.txt @@ -0,0 +1,42 @@ +// The ferry system + +function script Ferry { + set @cost_tulimshar, 5; + set @cost_hurnscald, 5; + mes "Where would you like to go?"; + next; + + menu + "Tulimshar (" + @cost_tulimshar + "GP)", L_Tulimshar, + "Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald, + "Nevermind", -; + close; + +L_Tulimshar: + if (@loc == DOCK_tulimshar) + goto L_AlreadyThere; + if (zeny < @cost_tulimshar) + goto L_NotEnoughGP; + + set zeny, zeny - @cost_tulimshar; + warp "022-1.gat", 76, 72; + close; + +L_Hurnscald: + if (@loc == DOCK_hurnscald) + goto L_AlreadyThere; + if (zeny < @cost_hurnscald) + goto L_NotEnoughGP; + + set zeny, zeny - @cost_hurnscald; + warp "008-1.gat", 137, 64; + close; + +L_AlreadyThere: + mes "You're already here!"; + close; + +L_NotEnoughGP: + mes "You don't have enough money to go there!"; + close; +} diff --git a/npc/scripts.conf b/npc/scripts.conf index dda7d1ff..a419722f 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -4,6 +4,7 @@ npc: npc/functions/banker.txt npc: npc/functions/barber.txt npc: npc/functions/clear_vars.txt +npc: npc/functions/ferry.txt npc: npc/functions/game_rules.txt npc: npc/functions/inn.txt npc: npc/functions/magic.txt diff --git a/tools/retab.sml b/tools/retab.sml index b374eff2..8e2a054e 100644 --- a/tools/retab.sml +++ b/tools/retab.sml @@ -1,3 +1,18 @@ +(* + * retab (c) 2009 The Mana World development team + * License: GPL, version 2 or later + * + * Compilation, e.g. (depends on SML implementation): + * mlton retab.sml + * + * Example usage: + * tools/retab < db/mob_db.txt > db/mob_db.txt.new && mv db/mob_db.txt.new db/mob_db.txt + * + * TODO: + * - Commas inside {} need to be seen as just one field when tabified + * - Commented lines should be left untabified + *) + fun width (#"\t", i) = let val m = i mod 8 in if m = 0 then 8 else m end | width (c, i) = 1 |