LORD 5.02 FP - Legend of the Red Dragon, Free Pascal port ========================================================= A native Linux build of Deuce's LORD 5.02 JS (the lord.js that ships with Synchronet), ported line by line to Free Pascal. It plays the same and uses the same data files: lordtxt.lrd and the other .lrd screens, mlooks.txt, flooks.txt, lord.ini, and player.bin / state.bin in the same binary format, so an existing lord.js game directory can be used as is. Other Places runs DOS LORD 4.06 In-Game Modules (IGMs) under dosemu, the same IGMs LORD 4.06 runs, listed in 3RDPARTY.DAT. Not included: the inter-BBS game server, RIP graphics, and lord.js's JavaScript IGMs. FILES ----- lord the game lordcfg the setup program (like LORD's LORDCFG.EXE) lord.ini options; created by lordcfg if missing *.lrd, mlooks.txt, flooks.txt text and screens (from LORD / lord.js) LORDTXT.DAT LORD 4.06's stock screens (included). When it is in the game directory its screens are used in place of lordtxt.lrd's (the plain 4.06 bank, Inn, Turgon's, town...); lordtxt.lrd still gives the ones 4.06 doesn't have. Delete or rename it for lord.js's ANSI screens. LORD.LDY, EVENTS.LDY LORD 4.06's forest event scripts (see FOREST EVENTS); delete LORD.LDY for the game's built-in versions 3RDPARTY.DAT the Other Places (IGM) list, empty to start with LORDC406.EXE LORD 4.06's LORDCFG, for registering 4.06 (lordcfg's G) The rest of LORD 4.06's distribution is included as it came, for its docs (LORD.DOC, LADY.DOC, LORDSTRC.PAS for IGM authors) and for DOS IGMs that look for its files: LORD406.EXE and LORD.OVR (4.06's own LORD.EXE), START.BAT, START1-START5, DSTART, *SAY.DAT, LENEMY.DAT and the other .DAT files. This game doesn't read them - it uses the .lrd files above - so they can be deleted if not wanted. Made by the game: player.bin, state.bin, lognow.lrd, logold.lrd, mail*.lrd, bar.lrd, darkbar.lrd, garden.lrd, dirt.lrd, scores.lrd, nodeon.*, *.lock, error.log. Optional overrides written by lordcfg's table editors (lord.js reads the same files): weapon.bin, armour.bin, trainers.bin, lenemy.bin, dragon.bin. RUNNING ------- lord -d [-r rows] [-n node] [-p gamedir] lord -l [-u name] [-p gamedir] (sysop local play) lord 0 (local play as node 0, as LORD 4.06) lord -d -i (show what the drop file says) add -debug to log LADY scripts (see FOREST EVENTS) -d the drop file, or the node directory holding one. Read by name: DOOR32.SYS, DOOR.SYS (GAP), DORINFOx.DEF, CHAIN.TXT (WWIV), CALLINFO.BBS (Wildcat), SFDOORS.DAT (Spitfire), PCBOARD.SYS, EXITINFO.BBS (RemoteAccess - name only). Given a directory, the first found in that order is used (DORINFO.DEF before DORINFO1.DEF). -r caller's screen rows (DOOR32.SYS has none; default 24). -p game directory; default is the directory the program is in. The caller is on stdin/stdout. Players are matched to BBS users by the real name in the drop file, as lord.js does. SYNCHRONET (Linux) ------------------ SCFG > External Programs > Online Programs (Doors) > add: Name LORD - Legend of the Red Dragon Start-up Directory /sbbs/xtrn/lordfp Command Line /sbbs/xtrn/lordfp/lord -d %n -r %r Multiple Concurrent Users Yes Intercept I/O Yes Native Executable Yes BBS Drop File Type DOOR32.SYS (any type listed above works) Place Drop File In Node Directory INSTALL.TXT is a step-by-step guide: dosemu2 for Synchronet on Linux, installing doors, both versions of LORD FP, and IGMs. OTHER PLACES (DOS LORD IGMs) ---------------------------- 3RDPARTY.DAT in the game directory lists the IGMs, two lines each, exactly as LORD 4.06 does: the DOS command line (* = node number), then the name players see. lordcfg's "Other Places" screen adds and removes entries. For each visit the game writes the LORD 4.06 files an IGM expects into the game directory - PLAYER.DAT (236-byte records), INFO., OUT., NODE.DAT, TIME.DAT, LASTHERO.DAT, MARRAGE.DAT, LOGNOW.TXT, and a DOOR.SYS in the node directory if there is none - runs the IGM under dosemu with the caller attached, and then brings back whatever the IGM changed: player stats, the fairy, MAIL.DAT, new Daily Happenings lines, Violet's marriage, and an OUT. "QUIT" or "stay here" request. [IGM] in lord.ini: DOSemuCommand how dosemu is started; %d node dir, %b the batch file's DOS path, %n node. The default matches Synchronet's dosemu setup: D: node dir, E: /sbbs/xtrn, F: ctrl... DOSGameDir the game directory as DOS sees it, e.g. E:\LORDFP\. Blank = worked out from /sbbs/xtrn (symlinks followed). PreCommands DOS commands before each IGM, ; separated (e.g. share). IGMs that need a FOSSIL driver (The Pawn Shop 3.40) need dosemu's: PreCommands=fossil.com >NUL MAINT.BAT in the game directory is run under dosemu once a day, at the first login after the daily maintenance, as LORD 4.06 does: IGMs put their own upkeep there (The Pawn Shop's PSETUP /M). It gets the same LORD 4.06 files as an IGM, and what it changes is brought back. IGMs keep their own config naming LORD's directory: point each one at this game's directory (e.g. E:\LORDFP\), not at a DOS LORD install, or both games will share and overwrite the IGM's data. Tested with The Dragon Vault and Barak's House. FOREST EVENTS (LADY SCRIPTS) ---------------------------- If LORD.LDY is in the game directory, the forest's random events come from it, as in LORD 4.06: the game runs its quest LORD. LORD 4.06's LORD.LDY and EVENTS.LDY (the old man, a sack of gold, a Hammer Stone, a gem, the horse seller) can be copied in as they are; file names are matched in any case. Scripts such as Belgarion's LORD LADY scripts can be added the way LORD 4.06's LADY.DOC describes. The fairies, Olivia, the flower garden, the dungeon and the other big events stay built in. Without LORD.LDY the game uses its own versions of those events. LORD 4.07/4.08 scripts run too: the extra commands in 4.07's LADY.DOC (+, - and ! in @set, <> and != in @if, @saveplayer, @endgame, @changearm, @changewep, @setbit, @openfile and the rest) and its other hooks: INN.LDY (quest LEAVEINN) when a player leaves the Inn, BANK.LDY (LEAVEBANK) when they leave the bank - in place of the built-in amulet offer - and a MAINT quest in any .LDY file at the daily maintenance. 4.07-style events (with an @#INSTALL quest) are installed with lordcfg's E (LADY events) screen: give it the event's .LDY file and it adds the event, makes LORD.LDY, INN.LDY or BANK.LDY again (each event in a file has the same chance), or adds an Other Places entry ("@LADY " in 3RDPARTY.DAT). Uninstall runs the event's @#UNINSTALL and shows what it would delete first; events can also be turned off. The list is kept in ladyevnt.dat. The first time, the events in the current LORD.LDY, INN.LDY and BANK.LDY are taken over (the originals are kept as LORD.ORG, INN.ORG and BANK.ORG), so a hand-made LORD.LDY keeps working. 4.06-style scripts (no @#INSTALL) are still added to LORD.LDY by hand - but once lordcfg manages the file, add them through it or they will be overwritten. &rnd gives 1 to n, as 4.07's LADY.DOC says (4.06's said 0 to n; its own scripts work either way). lord -debug writes every script line it runs to lady.log in the game directory; in the forest 3 runs LORD.LDY (as in LORD 4.06) and X runs quest TEST in TEST.LDY (as in 4.07) - for testing scripts. SETUP PROGRAM ------------- lordcfg [-p gamedir] 1 Game options (everything in lord.ini) 2 Tournament settings 3 Player editor: every field, including today's counts (fights, skill uses, seen master/dragon/bard, flirted...); a new day for one player or everyone (the game's own new-day reset at their next login, for players who have played today); delete; clear stuck "on now" flags 4 Weapons, armour, masters, monsters and the dragon 5 Game status E LADY events: install, uninstall, turn on or off 6/7 Today's / yesterday's daily log 8 Synchronet install help R Reset the game (deletes players, mail, logs and talk; keeps lord.ini and the tables) G Register LORD 4.06 (shown when 4.06's own LORDCFG is in the game directory): how to enter the code with it - 4.06 checks its own code lordcfg -406 -p Tools for the original DOS LORD 4.06 game (not this port): a player editor for its PLAYER.DAT (all fields, today's counts, a new day for one player or everyone, clear "playing now"), and Register. The first change in a session copies PLAYER.DAT to PLAYER.BAK. Players marked as playing now can be edited, but their game may overwrite the change. DIFFERENCES FROM lord.js ------------------------ Bugs in lord.js that are fixed here: - No ugly / pretty stick forest event: LORD 4.06 doesn't have it. - Any armour or weapon can be bought, as in LORD 4.06: lord.js's shop limit (defence points needed for armour, strength for weapons) is off by default. lordcfg's "Shop strength/defence limit" turns it on. - Blackjack: dealer cards went into the player's hand and the dealer drew until the deck ran out. - Death Knight test: "Decapitate" always counted as right; it is now a fair 50/50 again, as in LORD 4.06, and the charm point for showing kindness after a wrong guess can happen. - Olivia: kicking her head away is now remembered; the "mess around" speech shows the first time; the kiss works once she likes you. - The Old Man in the Dark Cloak Tavern now remembers your description. - Kissing Violet's hand gives the experience it says it does. - A fairy blessing no longer offers a horse when you already have one. - The Inn weapon trade works (it threw an error). - Online duels no longer end after the first enemy strike. - Dead players away for a while are raised the configured number of times. - Proposing while married no longer goes ahead anyway.