LostRanger
05-08-2017, 02:53 AM
So, back in the days before Lich, before Stormfront, and... well, GSIV was still GSIII and it was still necessary to roll for stats, I wrote the autoroller. This was probably the first widely used thing that got in between GS4 and the Wizard FE at the time... but was obsoleted when GSIV released.
Since my recent return, I've taken up writing lots of random Lich scripts... so I figured I'd make a place to mention that they exist and collect bug reports and feature requests. You can see them all with
;repo list --author=LostRanger
but here's some more info. Most of these have very detailed information (including usage) in their ;repo info
Most of my scripts have a very detailed help command, accessible as ;script help. For ;foreach, just type ;foreach by itself. The ;repo info usually contains a subset of the documentation as well.
For everyone:
xnarost: Experimental Narost fork. See its dedicated thread here (http://forum.gsplayers.com/showthread.php?109483-xnarost-eXperimental-Narost-fork)
spellmerge: Collects spammy spell effect messaging and reduces it to a single line, e.g. "<spell effect> fades from Wyrom, Kenstrom, and Haliste." instead a line for each player. Tries to retain the original messaging as much as possible, but with some adjustments for grammar. Also affects the GROUP verb, but this can be turned off. Essential for participants in large RP events.
foreach: Do some things with everything in your inventory... or in a container... or on the ground... or in your locker. Examples: ";foreach scroll in satchel;read item" or ";foreach noun=ticket in inv;get item;bundle" or ";foreach box in inv;get item;put item in locker" or ";foreach gem in sack;get item;put item in gemcutter;turn gemcutter;get item from gemcutter;put item in sack". By default it matches based on item type (not name), see docs for how to match by name/noun.
herbs2: There's an existing (partially outdated) script that simply displays a table of what herbs heal what wounds. This is a likewise-outdated copy of it, but the herbs for your current injuries are in monsterbold.
box: Lockpicking assistance for rogues and customers alike, but using your own brain. This adds commands (intended to be used with macros) for disarming and picking a box -- without needing to specify the noun for the box. (It'll target whatever is in your hands). Prior to picking, it can grab your vaalin (or other) lockpick even if it shares an adjective with a bunch of other lockpicks. There's also commands for accepting a box being given to you (and remembering who gave it to you) and returning that same box to the same person. For customers, ;box list usually shows all of your boxes and ;box grab will blindly grab one from a container to offer to your smith (or to begin picking yourself). Note that container inventories aren't always up-to-date in Lich, ;box scan tries to fix this by looking inside every container.
loglore: Loglore watches your log for your own loresinging results and the results of ANALYZE, INSPECT, ASSESS and the Abandoned Inn crystal, condenses them all together into a single entry for an item, and writes it to a timestamped logfile under Lich\Logs\GSIV-Charactername. (This is the same folder Tillmen's log script writes to.) Must be trusted to work since it writes files. The non-loresinging-related tidbits can be turned off if desired. For best results, ;autostart add loglore on your bard. Loglore does not loresing for you, but will work with any script that does.
inspect: If you ;inspect <item> (as opposed to normal 'inspect'), this script will alter all of the messaging to include some more detailed information. For example: "You estimate that a polished black leather pack can store a significant amount (100-119 lbs) with enough space for any number (10+) of items." or "Your careful inspection of a peascod-bellied doublet allows you to conclude that it is soft leather armor that covers the torso and arms. (ASG 6: Full Leather)". Since this is triggered by script, this has no performance penalty on normal gameplay. You can ;alias inspect=;inspect to have this affect all manual inspects (script-triggered commands bypass the aliasing mechanism).
findwarcamp: Findwarcamp is a fork of ;wander heavily modified to search for warcamps. Unlike the existing ;warcampfind, Findwarcamp prefers searching rooms that are adjacent to a 'warm' Sigil of Location result (i.e. those where a disturbance is detected nearby) and only searches adjacent to 'cold' rooms if no more warm options are available. This makes it somewhat more efficient at finding warcamps, and means it generally self-limits its own boundaries when started in area already known to be warm. For best results, travel in 20-30 room steps manually looking, then start findwarcamp once you're 'warm'.
For developers and cartographers:
mapnav: This is a utility script that you generally shouldn't need to use, but it can fix room connections in the mapdb if mapmap is getting them wrong. ;mapnav <command> makes a note of the current room, sends the command, waits for the room to change, and creates the appropriate linkage in the mapdb. Also useful for ;mapnav inspect, though it's basically just ;echo Room.current.inspect P.S. You should really understand how the mapdb works before using this.
logxml: Simple fork of Tillmen's log script, but this one writes raw XML rather than player-visible text. Predates the arguably-more-useful showxml script.
showxml: Creates an XML window in Stormfront and shows raw XML there in real-time. Also serves as an example on how to create custom stream windows and react to them being closed in the client.
Since my recent return, I've taken up writing lots of random Lich scripts... so I figured I'd make a place to mention that they exist and collect bug reports and feature requests. You can see them all with
;repo list --author=LostRanger
but here's some more info. Most of these have very detailed information (including usage) in their ;repo info
Most of my scripts have a very detailed help command, accessible as ;script help. For ;foreach, just type ;foreach by itself. The ;repo info usually contains a subset of the documentation as well.
For everyone:
xnarost: Experimental Narost fork. See its dedicated thread here (http://forum.gsplayers.com/showthread.php?109483-xnarost-eXperimental-Narost-fork)
spellmerge: Collects spammy spell effect messaging and reduces it to a single line, e.g. "<spell effect> fades from Wyrom, Kenstrom, and Haliste." instead a line for each player. Tries to retain the original messaging as much as possible, but with some adjustments for grammar. Also affects the GROUP verb, but this can be turned off. Essential for participants in large RP events.
foreach: Do some things with everything in your inventory... or in a container... or on the ground... or in your locker. Examples: ";foreach scroll in satchel;read item" or ";foreach noun=ticket in inv;get item;bundle" or ";foreach box in inv;get item;put item in locker" or ";foreach gem in sack;get item;put item in gemcutter;turn gemcutter;get item from gemcutter;put item in sack". By default it matches based on item type (not name), see docs for how to match by name/noun.
herbs2: There's an existing (partially outdated) script that simply displays a table of what herbs heal what wounds. This is a likewise-outdated copy of it, but the herbs for your current injuries are in monsterbold.
box: Lockpicking assistance for rogues and customers alike, but using your own brain. This adds commands (intended to be used with macros) for disarming and picking a box -- without needing to specify the noun for the box. (It'll target whatever is in your hands). Prior to picking, it can grab your vaalin (or other) lockpick even if it shares an adjective with a bunch of other lockpicks. There's also commands for accepting a box being given to you (and remembering who gave it to you) and returning that same box to the same person. For customers, ;box list usually shows all of your boxes and ;box grab will blindly grab one from a container to offer to your smith (or to begin picking yourself). Note that container inventories aren't always up-to-date in Lich, ;box scan tries to fix this by looking inside every container.
loglore: Loglore watches your log for your own loresinging results and the results of ANALYZE, INSPECT, ASSESS and the Abandoned Inn crystal, condenses them all together into a single entry for an item, and writes it to a timestamped logfile under Lich\Logs\GSIV-Charactername. (This is the same folder Tillmen's log script writes to.) Must be trusted to work since it writes files. The non-loresinging-related tidbits can be turned off if desired. For best results, ;autostart add loglore on your bard. Loglore does not loresing for you, but will work with any script that does.
inspect: If you ;inspect <item> (as opposed to normal 'inspect'), this script will alter all of the messaging to include some more detailed information. For example: "You estimate that a polished black leather pack can store a significant amount (100-119 lbs) with enough space for any number (10+) of items." or "Your careful inspection of a peascod-bellied doublet allows you to conclude that it is soft leather armor that covers the torso and arms. (ASG 6: Full Leather)". Since this is triggered by script, this has no performance penalty on normal gameplay. You can ;alias inspect=;inspect to have this affect all manual inspects (script-triggered commands bypass the aliasing mechanism).
findwarcamp: Findwarcamp is a fork of ;wander heavily modified to search for warcamps. Unlike the existing ;warcampfind, Findwarcamp prefers searching rooms that are adjacent to a 'warm' Sigil of Location result (i.e. those where a disturbance is detected nearby) and only searches adjacent to 'cold' rooms if no more warm options are available. This makes it somewhat more efficient at finding warcamps, and means it generally self-limits its own boundaries when started in area already known to be warm. For best results, travel in 20-30 room steps manually looking, then start findwarcamp once you're 'warm'.
For developers and cartographers:
mapnav: This is a utility script that you generally shouldn't need to use, but it can fix room connections in the mapdb if mapmap is getting them wrong. ;mapnav <command> makes a note of the current room, sends the command, waits for the room to change, and creates the appropriate linkage in the mapdb. Also useful for ;mapnav inspect, though it's basically just ;echo Room.current.inspect P.S. You should really understand how the mapdb works before using this.
logxml: Simple fork of Tillmen's log script, but this one writes raw XML rather than player-visible text. Predates the arguably-more-useful showxml script.
showxml: Creates an XML window in Stormfront and shows raw XML there in real-time. Also serves as an example on how to create custom stream windows and react to them being closed in the client.