Skip to content
Snippets Groups Projects
Commit 08786fbe authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Merge remote-tracking branch 'origin/master'

parents 30391a1f eb1f9dd3
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Showing
with 377 additions and 40 deletions
...@@ -17,6 +17,8 @@ var lines = file.readAll(); ...@@ -17,6 +17,8 @@ var lines = file.readAll();
file.close(); file.close();
lines[4] = gamedir; lines[4] = gamedir;
lines[5] = "MANIA.ASC";
lines[6] = "MANIA.ANS";
writeln("Beginning node config generation..."); writeln("Beginning node config generation...");
for(i = 0; i < system.nodes; i++) { for(i = 0; i < system.nodes; i++) {
......
...@@ -14,6 +14,8 @@ file.close(); ...@@ -14,6 +14,8 @@ file.close();
lines[0] = "LINE"; lines[0] = "LINE";
lines[1] = system.name; lines[1] = system.name;
lines[2] = system.operator; lines[2] = system.operator;
lines[5] = "bull99.ans";
lines[6] = "bull99.asc";
lines[9] = "NONE"; lines[9] = "NONE";
lines[10] = ""; lines[10] = "";
lines[11] = ""; lines[11] = "";
......
...@@ -28,10 +28,10 @@ var op = system.operator.split(" ", 2); ...@@ -28,10 +28,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[7] = gamedir + "aceyd.ans"; lines[7] = gamedir + "aceyd.asc";
lines[8] = gamedir + "aceyd.asc"; lines[8] = gamedir + "aceyd.ans";
lines[9] = gamedir + "aceydhof.ans"; lines[9] = gamedir + "aceydhof.asc";
lines[10] = gamedir + "aceydhof.asc"; lines[10] = gamedir + "aceydhof.ans";
lines[11] = "1"; lines[11] = "1";
for(i = 0; i < system.nodes; i++) { for(i = 0; i < system.nodes; i++) {
......
...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2); ...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[7] = gamedir + "bbd.ans"; lines[7] = gamedir + "bbd.asc";
lines[8] = gamedir + "bbd.asc"; lines[8] = gamedir + "bbd.ans";
lines[9] = gamedir + "bbdhof.ans"; lines[9] = gamedir + "bbdhof.asc";
lines[10] = gamedir + "bbdhof.asc"; lines[10] = gamedir + "bbdhof.ans";
lines[11] = "1"; lines[11] = "1";
for(i = 0; i < system.nodes; i++) { for(i = 0; i < system.nodes; i++) {
......
...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2); ...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[6] = gamedir + "betsy.ans";
lines[7] = gamedir + "betsy.asc"; lines[7] = gamedir + "betsy.asc";
lines[8] = gamedir + "betsyhof.ans"; lines[8] = gamedir + "betsy.ans";
lines[9] = gamedir + "betsyhof.asc"; lines[9] = gamedir + "betsyhof.asc";
lines[10] = gamedir + "betsyhof.ans";
for(i = 0; i < system.nodes; i++) { for(i = 0; i < system.nodes; i++) {
var nodenum = i + 1; var nodenum = i + 1;
......
...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2); ...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[7] = gamedir + "srbj.ans"; lines[7] = gamedir + "srbj.asc";
lines[8] = gamedir + "srbj.asc"; lines[8] = gamedir + "srbj.ans";
lines[9] = gamedir + "srbjhof.ans"; lines[9] = gamedir + "srbjhof.asc";
lines[10] = gamedir + "srbjhof.asc"; lines[10] = gamedir + "srbjhof.ans";
lines[11] = "1"; lines[11] = "1";
for(i = 0; i < system.nodes; i++) { for(i = 0; i < system.nodes; i++) {
......
...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2); ...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[7] = gamedir + "srboxd.ans"; lines[7] = gamedir + "srboxd.asc";
lines[8] = gamedir + "srboxd.asc"; lines[8] = gamedir + "srboxd.ans";
lines[9] = gamedir + "srboxd.ans"; lines[9] = gamedir + "srboxdhf.asc";
lines[10] = gamedir + "srboxd.asc"; lines[10] = gamedir + "srboxdhf.ans";
for(i = 0; i < system.nodes; i++) { for(i = 0; i < system.nodes; i++) {
var nodenum = i + 1; var nodenum = i + 1;
......
...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2); ...@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[8] = gamedir + "srboxpkr.ans"; lines[8] = gamedir + "srboxpkr.asc";
lines[9] = gamedir + "srboxpkr.asc"; lines[9] = gamedir + "srboxpkr.ans";
lines[10] = gamedir + "srboxpkr.ans"; lines[10] = gamedir + "srboxpkh.asc";
lines[11] = gamedir + "srboxpkr.asc"; lines[11] = gamedir + "srboxpkh.ans";
for (i in system.node_list) { for (i in system.node_list) {
var nodenum = parseInt(i, 10) + 1; var nodenum = parseInt(i, 10) + 1;
......
...@@ -28,10 +28,10 @@ var op = system.operator.split(" ", 2); ...@@ -28,10 +28,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[7] = gamedir + "srcon.ans"; lines[7] = gamedir + "srcon.asc";
lines[8] = gamedir + "srcon.asc"; lines[8] = gamedir + "srcon.ans";
lines[9] = gamedir + "srconhof.ans"; lines[9] = gamedir + "srconhof.asc";
lines[10] = gamedir + "srconhof.asc"; lines[10] = gamedir + "srconhof.ans";
for (i in system.node_list) { for (i in system.node_list) {
var nodenum = parseInt(i, 10) + 1; var nodenum = parseInt(i, 10) + 1;
......
...@@ -31,10 +31,10 @@ var op = system.operator.split(" ", 2); ...@@ -31,10 +31,10 @@ var op = system.operator.split(" ", 2);
lines[2] = op[0]; lines[2] = op[0];
lines[3] = op[1]; lines[3] = op[1];
lines[7] = gamedir + "scrib.ans"; lines[7] = gamedir + "scrib.asc";
lines[8] = gamedir + "scrib.asc"; lines[8] = gamedir + "scrib.ans";
lines[9] = gamedir + "scribhof.ans"; lines[9] = gamedir + "scribhof.asc";
lines[10] = gamedir + "scribhof.asc"; lines[10] = gamedir + "scribhof.ans";
lines[11] = "1"; lines[11] = "1";
lines[38] = "G"; lines[38] = "G";
......
Name: Warlords of the Balance
Desc: Multi-player fantasy wargame
By: Evan Taylor, BRC Electronics
Cats: Games
Subs: Fantasy,War
exe: INSTALL.EXE
[md5:bbc09f57ee623d0ffe94b7c3bea189f0]
ver = 0.97e
url = ftp://archives.thebbs.org/door_games/doors_u-z/wotb97e.zip
[prog:WOTB]
name = Warlords of the Balance
cmd = warlord.bat %f
ars = DOS
execution_ars = NOT GUEST
settings = XTRN_ANSI | XTRN_SH
type = XTRN_GAP
[exec:../3rdp-install/warlordsofthebalance.js]
prompt = false
required = true
[event:WOTBMAINT]
cmd = event.exe
name = Warlords of the Balance Maintenance
; all days
days = 127
time = 0:00
[pre-eval:file_exists(startup_dir + 'WARGAME.EXE')]
prompt = false
required = true
fail = Extract the zip files (*.PI~)
[pre-eval:file_exists(startup_dir + 'LORDS.DAT')]
prompt = false
required = true
fail = Run wargen.exe
"use strict";
writeln("Generating batch file...");
var i;
var gamedir = fullpath(js.startup_dir);
var conffilesrc = "warlord.bat";
var cfg_filename = gamedir + conffilesrc;
var lines = [];
lines[0] = "@echo off";
lines[1] = "warlord %1";
lines[2] = "wargame %1";
writeln("Creating " + cfg_filename);
var file = new File(cfg_filename);
if (!file.open("w")) {
writeln("Error " + file.error + " opening " + file.name + " for writing");
exit(1)
}
file.writeAll(lines);
file.close();
writeln("Batch file generation complete");
exit(0);
\ No newline at end of file
// $Id: DDMsgReader.js,v 1.143 2020/05/23 23:30:28 nightfox Exp $
/* This is a message reader/lister door for Synchronet. Features include: /* This is a message reader/lister door for Synchronet. Features include:
* - Listing messages in the user's current message area with the ability to * - Listing messages in the user's current message area with the ability to
* navigate forwards & backwards through the list (and for ANSI users, a * navigate forwards & backwards through the list (and for ANSI users, a
...@@ -76,6 +74,9 @@ ...@@ -76,6 +74,9 @@
* 2020-12-01 Eric Oulashin Version 1.39 * 2020-12-01 Eric Oulashin Version 1.39
* When forwarding a message, added the ability to * When forwarding a message, added the ability to
* optionally edit the message before forwarding it. * optionally edit the message before forwarding it.
* 2021-01-31 Michael Long Version 1.40
* Fixed left/right colors not being customizable on message
* list lightbar
*/ */
   
   
...@@ -187,8 +188,8 @@ if (system.version_num < 31500) ...@@ -187,8 +188,8 @@ if (system.version_num < 31500)
} }
   
// Reader version information // Reader version information
var READER_VERSION = "1.39"; var READER_VERSION = "1.40";
var READER_DATE = "2020-12-01"; var READER_DATE = "2021-01-31";
   
// Keyboard key codes for displaying on the screen // Keyboard key codes for displaying on the screen
var UP_ARROW = ascii(24); var UP_ARROW = ascii(24);
...@@ -7303,13 +7304,13 @@ function DigDistMsgReader_SetMsgListPauseTextAndLightbarHelpLine() ...@@ -7303,13 +7304,13 @@ function DigDistMsgReader_SetMsgListPauseTextAndLightbarHelpLine()
var numLeft = Math.floor(numChars / 2); var numLeft = Math.floor(numChars / 2);
var numRight = numChars - numLeft; var numRight = numChars - numLeft;
for (var i = 0; i < numLeft; ++i) for (var i = 0; i < numLeft; ++i)
this.msgListLightbarModeHelpLine = "Û" + this.msgListLightbarModeHelpLine; this.msgListLightbarModeHelpLine = " " + this.msgListLightbarModeHelpLine;
this.msgListLightbarModeHelpLine = "\1n" this.msgListLightbarModeHelpLine = "\1n"
+ this.colors.lightbarMsgListHelpLineBkgColor + this.colors.lightbarMsgListHelpLineBkgColor
+ this.msgListLightbarModeHelpLine; + this.msgListLightbarModeHelpLine;
this.msgListLightbarModeHelpLine += "\1n" + this.colors.lightbarMsgListHelpLineBkgColor; this.msgListLightbarModeHelpLine += "\1n" + this.colors.lightbarMsgListHelpLineBkgColor;
for (var i = 0; i < numRight; ++i) for (var i = 0; i < numRight; ++i)
this.msgListLightbarModeHelpLine += "Û"; this.msgListLightbarModeHelpLine += ' ';
} }
} }
// For the DigDistMsgReader Class: Sets the hotkey help line for the enhanced // For the DigDistMsgReader Class: Sets the hotkey help line for the enhanced
...@@ -13358,8 +13359,7 @@ function DigDistMsgReader_ForwardMessage(pMsgHdr, pMsgBody) ...@@ -13358,8 +13359,7 @@ function DigDistMsgReader_ForwardMessage(pMsgHdr, pMsgBody)
newMsgBody += "==================================\n\n"; newMsgBody += "==================================\n\n";
newMsgBody += pMsgBody; newMsgBody += pMsgBody;
   
// New - Editing the message // Ask whether to edit the message before forwarding it,
// TODO: Ask whether to edit the message before forwarding it,
// and use console.editfile(filename) to edit it. // and use console.editfile(filename) to edit it.
if (!console.noyes("Edit the message before sending")) if (!console.noyes("Edit the message before sending"))
{ {
......
Digital Distortion Message Reader Digital Distortion Message Reader
Version 1.39 Version 1.40
Release date: 2020-12-01 Release date: 2021-12-31
by by
......
...@@ -5,6 +5,8 @@ Revision History (change log) ...@@ -5,6 +5,8 @@ Revision History (change log)
============================= =============================
Version Date Description Version Date Description
------- ---- ----------- ------- ---- -----------
1.40 2021-01-31 (Michael Long) Fixed left/right colors not being
customizable on message list lightbar
1.39 2020-12-01 When forwarding a message, added the ability to optinally 1.39 2020-12-01 When forwarding a message, added the ability to optinally
edit the message before forwarding it. edit the message before forwarding it.
1.38 2020-11-26 Bug fix: When forwarding a message, it now correctly sets 1.38 2020-11-26 Bug fix: When forwarding a message, it now correctly sets
......
<!--Games-->
<?xjs
/**
* Web Display for Custom External Program Menus
* by Michael Long mlong innerrealmbbs.us
*
* See wiki at http://wiki.synchro.net/module:xtrnmenu
*/
load("ftelnethelper.js");
load('sbbsdefs.js');
load("xtrnmenulib.js");
load(settings.web_lib + 'ftelnet.js');
load(settings.web_lib + 'request.js');
var ExternalMenus = new ExternalMenus();
if (typeof settings.xtrn_blacklist === 'string') {
settings.xtrn_blacklist = settings.xtrn_blacklist.toLowerCase().split(',');
} else {
settings.xtrn_blacklist = [];
}
var menuitems = [];
?>
<style>.fTelnetStatusBar { display : none; }</style>
<a name="fTelnet"></a>
<div id="fTelnetContainer" class="fTelnetContainer" style="margin-bottom:1em;"></div>
<div id="xtrn-list" class="list-group">
<?xjs
var menuobj;
if (Request.get_param('type')) {
var target = Request.get_param('target');
switch (Request.get_param('type')) {
case 'custommenu':
if (target !== undefined) {
menuobj = ExternalMenus.getMenu(target);
}
break;
case 'xtrnmenu':
if (target !== undefined) {
menuobj = ExternalMenus.getSectionMenu(target);
}
break;
case 'recentall':
menuobj = ExternalMenus.getSpecial(Request.get_param('type'), "Most Recent - All", target);
break;
case 'recentuser':
menuobj = ExternalMenus.getSpecial(Request.get_param('type'), "Most Recent - Yours", target);
break;
case 'mostlaunchedall':
menuobj = ExternalMenus.getSpecial(Request.get_param('type'), "Most Launched - All", target);
break;
case 'mostlauncheduser':
menuobj = ExternalMenus.getSpecial(Request.get_param('type'), "Most Launched - Yours", target);
break;
case 'longestrunall':
menuobj = ExternalMenus.getSpecial(Request.get_param('type'), "Longest Run - All", target);
break;
case 'longestrunuser':
menuobj = ExternalMenus.getSpecial(Request.get_param('type'), "Longest Run - Yours", target);
break;
case 'favorites':
menuobj = ExternalMenus.getFavorites("Favorites", target);
break;
default:
break;
}
} else {
if (Request.has_param('target')) {
menuobj = ExternalMenus.getMenu(Request.get_param('target'));
} else {
menuobj = ExternalMenus.getMenu('main');
}
}
if ((typeof menuobj === "undefined") || !menuobj
|| (typeof menuobj.items === "undefined") || (menuobj.items.length < 1)) {
writeln("<h4>" + ExternalMenus.options.no_programs_msg + "</h4>");
} else if (user.security.restrictions&UFLAG_X) {
writeln("<h4>" + options.restricted_user_msg + "</h4>");
} else {
// ok to display menu
writeln("<h4>" + menuobj.title + "</h4>");
var menuitemsfiltered = ExternalMenus.getSortedItems(menuobj);
menuitemsfiltered.forEach(function (menuitem) {
if (settings.xtrn_blacklist.indexOf(menuitem.target.toLowerCase()) > -1) {
return;
}
switch (menuitem.type) {
case 'custommenu':
case 'xtrnmenu':
case 'xtrnprog':
case 'favorites':
case 'recentall':
case 'recentuser':
case 'mostlaunchedall':
case 'mostlauncheduser':
case 'longestrunuser':
case 'longestrunall':
menuitems.push({
'itemtitle': menuitem.title,
'itemtype': menuitem.type,
'itemtarget': menuitem.target,
'stats': typeof menuitem.stats !== undefined ? menuitem.stats : null
});
break;
default:
break;
}
});
}
?>
</div>
<script id="fTelnetScript" src="<?xjs write(get_url()); ?>"></script>
<script type="text/javascript">
window.addEventListener('load', (event) => {
var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
var Options = new fTelnetOptions();
Options.BareLFtoCRLF = false;
Options.BitsPerSecond = 57600;
Options.ConnectionType = 'rlogin';
Options.Emulation = 'ansi-bbs';
Options.Enter = '\r';
Options.Font = 'CP437';
Options.ForceWss = false;
Options.Hostname = '<?xjs write(http_request.vhost); ?>';
Options.LocalEcho = false;
Options.Port = location.protocol == 'https:' ? wssp : wsp;
Options.RLoginClientUsername = '<?xjs write(user.security.password); ?>';
Options.RLoginServerUsername = '<?xjs write(user.alias); ?>';
Options.ScreenColumns = 80;
Options.ScreenRows = 25;
Options.SplashScreen = Options.SplashScreen = '<?xjs write(get_splash()); ?>';
Options.WebSocketUrlPath = '?Port=<?xjs write(GetRLoginPort()); ?>';
window.fTelnet = new fTelnetClient('fTelnetContainer', Options);
fTelnet.OnConnectionClose = function () {
window.location.reload();
};
});
async function launchXtrn() {
var code = event.srcElement.id;
await v4_get('./api/system.ssjs?call=set-xtrn-intent&code=' + code);
fTelnet._Options.RLoginTerminalType = 'xtrn=' + code;
fTelnet.Connect();
}
var menuitems = <?xjs write(JSON.stringify(menuitems)); ?>;
var currentTarget = "<?xjs Request.write_param('target'); ?>";
var currentType = "<?xjs Request.write_param('type'); ?>";
var currentTitle = `<?xjs write(menuobj.title) ?>`;
if (currentTitle && !currentTarget) {
// main menu - store title for breadcrumb
sessionStorage.setItem("mainmenu", currentTitle);
}
var div = $('#xtrn-list');
menuitems.forEach(function (menuitem) {
var a = document.createElement('a');
$(a).addClass("list-group-item");
$(a).addClass("striped");
a.text = menuitem.itemtitle;
if (typeof menuitem.stats !== "undefined") {
var badge = document.createElement('span');
$(badge).addClass('badge').text(menuitem.stats);
a.appendChild(badge);
}
if (menuitem.itemtype == "xtrnprog") {
a.href = "#fTelnet";
a.id = menuitem.itemtarget;
a.onclick = function () { launchXtrn(); };
} else {
a.href = "/?page=<?xjs Request.write_param('page') ?>&type=" +menuitem.itemtype
+ "&target=" + menuitem.itemtarget;
a.onclick = function () {
sessionStorage.setItem('prev:' + menuitem.itemtarget.toLowerCase(), '<?xjs Request.write_param('target')?>');
sessionStorage.setItem('prevtype:' + menuitem.itemtarget.toLowerCase(), '<?xjs Request.write_param('type')?>');
sessionStorage.setItem('prevtitle:' + menuitem.itemtarget.toLowerCase(), currentTitle);
};
}
$(div).append(a);
});
// breadcrumb
var prevTarget = sessionStorage.getItem('prev:' + currentTarget.toLowerCase());
var prevType = sessionStorage.getItem('prevtype:' + currentTarget.toLowerCase());
var prevTitle = sessionStorage.getItem('prevtitle:' + currentTarget.toLowerCase());
if (prevType && prevTarget && prevTitle) {
$('#xtrn-list').prepend('<ol class="breadcrumb"><a href="/?page=<?xjs Request.write_param('page') ?>&type=' + prevType
+ '&target=' + prevTarget + '">' + prevTitle + '</a></ol>');
} else if (currentTarget) {
// level 2, not main menu
var mainmenuTitle = sessionStorage.getItem('mainmenu');
if (!mainmenuTitle) {
mainmenuTitle = 'Games';
}
$('#xtrn-list').prepend('<ol class="breadcrumb"><a href="/?page=<?xjs Request.write_param('page') ?>">' + mainmenuTitle + '</a></ol>');
}
</script>
<!--Game Stats-->
<div class="list-group">
<h1>Game Stats</h1>
<?xjs
load('sbbsdefs.js');
load("xtrnmenulib.js");
var ExternalMenus = new ExternalMenus();
if (typeof settings.xtrn_blacklist === 'string') {
settings.xtrn_blacklist = settings.xtrn_blacklist.toLowerCase().split(',');
} else {
settings.xtrn_blacklist = [];
}
// Edit these lines as needed to adjust the page
gameStats("recentall", "Most Recent", 10);
gameStats("mostlaunchedall", "Top 15 Most Launched", 15);
gameStats("longestrunall", "Top 15 Longest Run", 15);
function gameStats(menutype, title, maxitems) {
var menuobj = ExternalMenus.getSpecial(menutype, title);
?>
<div class="row list-group-item" style="background-color: #993399; color: #FFF">
<div class="col-sm-12"><h3><?xjs write(title) ?></h3></div>
</div>
<?xjs
if ((typeof menuobj.items !== "undefined") || (menuobj.items.length > 0)) {
var i = 0;
menuobj.items.some(function (menuitem) {
if (menuitem.type != "xtrnprog") {
return;
}
if (settings.xtrn_blacklist.indexOf(menuitem.target.toLowerCase()) > -1) return;
if (++i > maxitems) return;
?>
<div class="row list-group-item striped">
<div class="col-sm-2"><span class="badge badge-inverse"><?xjs write(menuitem.stats) ?></span></div>
<div class="col-sm-10"><?xjs write(menuitem.title) ?></div>
</div>
<?xjs
});
}
}
?>
</div>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment