I did that, and no change.
/**
* Generates DarkShip Characters
*
* Syntax: !DSGen option
*
*/
var DSBUILD = DSBUILD || {
version: "0.0.4",
output: [],
listen: function () {
on('chat:message', function (msg) {
// Exit if not an api command
if (msg.type != "api") {
return;
}
if (msg.content.indexOf("!DSGen ") != -1) {
var input = msg.content.split(" ");
if (input[1] == "help") {
DSBUILD.showHelp();
} else {
sendChat('API', "/direct <h6>Generating character</h6>");
DSBUILD.Generate(msg, DSBUILD.printSheet, DSBUILD.save);
}
} else if (msg.content.indexOf("!DSGen") != -1) {
DSBUILD.showHelp();
}
});
},
showHelp: function () {
sendChat("API", "/w gm <table style='background: #DCD9D5; border-radius: 20px; font-size: 10px;'>" +
"<thead><tr><th>Help</th></tr></thead>" +
"<tbody>" +
"<tr><td><strong>!DSBUILD</strong><br><strong>!fodder help</strong><br>Show this help screen.</td></tr>" +
"<tr><td><strong>!DSBUILD core</strong><br>Runs the script.</td></tr>" +
"<tr><td> </td></tr>" +
"</td></tr></tbody></table>");
},
Generate: function (msg, outputCallback, saveCallback) {
DSBUILD.id = msg.playerid;
DSBUILD.player = msg.who;
DSBUILD.name = msg.who + " #" + (findObjs({
_type: "character",
controlledby: msg.playerid
}).length + 1)
DSBUILD.NPCClass(msg);
DSBUILD.NPCSkills(msg);
DSBUILD.NPCLoadout(msg);
if (typeof outputCallback === "function") {
setTimeout(outputCallback, 2500, msg, saveCallback);
}
},
NPCClass: function (msg) {
DSBUILD.id = msg.playerid;
DSBUILD.name = msg.who + " #" + (findObjs({
_type: "character",
controlledby: "all"
}).length + 1);
DSBUILD.player = msg.who;
sendChat("API", "/roll 1t[DS-Skills]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
DSBUILD.Class = values[0];
DSBUILD.Skill1 = content.rolls[0].results[0].tableItem.name;
DSBUILD.output['Class'] = "<tr><td style='font-weight: bold; padding: 5px;'>Class</td></tr><tr><td style='padding: 5px;'>" + DSBUILD.Class + "</td></tr>";
DSText1 = "<table font-size: 10px;'> <tbody>" + DSBUILD.output['Class'] + "</tbody></table>";
sendChat(msg.who, "/w gm " + DSText1);
});
},
NPCSkills: function (msg) {
sendChat("API", "/roll 1t[DS-Skills]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
DSBUILD.Class1 = values[0];
DSBUILD.Skill1 = values[1];
DSBUILD.output['Skill1'] = "<tr><td style='font-weight: bold; padding: 5px;'>Skill1</td></tr><tr><td style='padding: 5px;'>" + DSBUILD.Skill1 + "</td></tr>";
DSText3 = "<table font-size: 10px;'> <tbody>" + DSBUILD.output['Skill1'] + "</tbody></table>";
sendChat(msg.who, "/w gm " + DSText3);
});
sendChat("API", "/roll 1t[DS-Skills]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
DSBUILD.trash = values[0];
DSBUILD.Skill2 = values[1];
DSBUILD.output['Skill2'] = "<tr><td style='font-weight: bold; padding: 5px;'>Skill2</td></tr><tr><td style='padding: 5px;'>" + DSBUILD.Skill2 + "</td></tr>";
DSText4 = "<table font-size: 10px;'> <tbody>" + DSBUILD.output['Skill2'] + "</tbody></table>";
sendChat(msg.who, "/w gm " + DSText4);
});
sendChat("API", "/roll 1t[DS-Skills]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
DSBUILD.trash = values[0];
DSBUILD.Skill3 = values[1];
DSBUILD.output['Skill3'] = "<tr><td style='font-weight: bold; padding: 5px;'>Skill3</td></tr><tr><td style='padding: 5px;'>" + DSBUILD.Skill3 + "</td></tr>";
DSText5 = "<table font-size: 10px;'> <tbody>" + DSBUILD.output['Skill3'] + "</tbody></table>";
sendChat(msg.who, "/w gm " + DSText5);
});
sendChat("API", "/roll 1t[DS-Skills]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
DSBUILD.trash = values[0];
DSBUILD.Skill4 = values[1];
DSBUILD.output['Skill4'] = "<tr><td style='font-weight: bold; padding: 5px;'>Skill4</td></tr><tr><td style='padding: 5px;'>" + DSBUILD.Skill4 + "</td></tr>";
DSText6 = "<table font-size: 10px;'> <tbody>" + DSBUILD.output['Skill4'] + "</tbody></table>";
sendChat(msg.who, "/w gm " + DSText6);
});
},
NPCLoadout: function (msg) {
sendChat("API", "/roll 1t[DS-Loadout]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split('-');
DSBUILD.Loadout = values[0];
DSBUILD.output['Loadout'] = "<tr><td style='font-weight: bold; padding: 5px;'>Personality</td></tr><tr><td style='padding: 5px;'>" + DSBUILD.Loadout + "</td></tr>";
DSText7 = "<table font-size: 10px;'> <tbody>" + DSBUILD.output['Loadout'] + "</tbody></table>";
sendChat(msg.who, "/w gm " + DSText7);
});
},
printSheet: function (msg) {
let styleLabel = "style='font-weight: bold; padding: 5px;'";
let styleVal = "style='padding: 5px;'";
DSBUILD.output['Instructions'] = "<tr><td style='font-weight: bold; padding: 5px;'>Instructions</td></tr><tr><td style='padding: 5px;'>Follow these instructions to complete the character according to the options selected.</td></tr>";
DSText = "<p><p>CURRENT CHARACTER PARAMETERS<p><p>" +
"<table font-size: 10px;'> <tbody>" +
DSBUILD.output['Class'] +
DSBUILD.output['Skill1'] +
DSBUILD.output['Skill2'] +
DSBUILD.output['Skill3'] +
DSBUILD.output['Skill4'] +
DSBUILD.output['Loadout'] + "</tbody></table>";
sendChat(msg.who, "/w gm <p><p>" + DSText + "<p><p>");
},
save: function (msg) {
sendChat(msg.who, "/w gm saving character");
let character = createObj("character", {
name: DSBUILD.name,
archived: false,
inplayerjournals: "all",
controlledby: "all"
});
createObj('attribute', {
name: 'character_player_name',
current: DSBUILD.player,
_characterid: character.id
});
createObj('attribute', {
name: 'character_class',
current: DSBUILD.Class,
_characterid: character.id
});
switch (DSBUILD.Skill1) {
// Teamster
case 'Scavenging':
createObj('attribute', {
name: 'character_Scavenging',
current: 'on',
_characterid: character.id
});
break;
case 'Melee Combat':
createObj('attribute', {
name: 'character_Melee',
current: 'on',
_characterid: character.id
});
case 'Vehicular Driving':
createObj('attribute', {
name: 'character_Driving',
current: 'on',
_characterid: character.id
});
break;
case 'Heavy Machinery':
createObj('attribute', {
name: 'character_Heavy',
current: 'on',
_characterid: character.id
});
break;
case 'Rinwise':
createObj('attribute', {
name: 'character_Rinwise',
current: 'on',
_characterid: character.id
});
break;
case 'Zero-G':
createObj('attribute', {
name: 'character_Zero-G',
current: 'on',
_characterid: character.id
});
break;
case 'Mechanical Repair':
createObj('attribute', {
name: 'character_Mechanical',
current: 'on',
_characterid: character.id
});
break;
case 'Engineering':
createObj('attribute', {
name: 'character_Engineering',
current: 'on',
_characterid: character.id
});
// Marine
break;
case 'Athletics':
createObj('attribute', {
name: 'character_Athletics',
current: 'on',
_characterid: character.id
});
break;
case 'Firearms':
createObj('attribute', {
name: 'character_Firearms',
current: 'on',
_characterid: character.id
});
break;
case 'Piloting Ships':
createObj('attribute', {
name: 'character_Piloting',
current: 'on',
_characterid: character.id
});
break;
case 'Gunnery':
createObj('attribute', {
name: 'character_Gunnery',
current: 'on',
_characterid: character.id
});
break;
case 'Field Tactics':
createObj('attribute', {
name: 'character_Field',
current: 'on',
_characterid: character.id
});
break;
case 'Command':
createObj('attribute', {
name: 'character_Command',
current: 'on',
_characterid: character.id
});
case 'Infiltration':
createObj('attribute', {
name: 'character_Infiltration',
current: 'on',
_characterid: character.id
});
break;
case 'Explosives':
createObj('attribute', {
name: 'character_Explosives',
current: 'on',
_characterid: character.id
});
// Scientist
break;
case 'Medicine':
createObj('attribute', {
name: 'character_Medicine',
current: 'on',
_characterid: character.id
});
break;
case 'Psychology':
createObj('attribute', {
name: 'character_Psychology',
current: 'on',
_characterid: character.id
});
break;
case 'Theology':
createObj('attribute', {
name: 'character_Theology',
current: 'on',
_characterid: character.id
});
break;
case 'Archaeology':
createObj('attribute', {
name: 'character_Archaeology',
current: 'on',
_characterid: character.id
});
break;
case 'Geology':
createObj('attribute', {
name: 'character_Geology',
current: 'on',
_characterid: character.id
});
break;
case 'Astronomy':
createObj('attribute', {
name: 'character_Astronomy',
current: 'on',
_characterid: character.id
});
break;
case 'Chemistry':
createObj('attribute', {
name: 'character_Chemistry',
current: 'on',
_characterid: character.id
});
break;
case 'Biology':
createObj('attribute', {
name: 'character_Biology',
current: 'on',
_characterid: character.id
});
// Android
break;
case 'Linguistics':
createObj('attribute', {
name: 'character_Linguistics',
current: 'on',
_characterid: character.id
});
break;
case 'Sophontology':
createObj('attribute', {
name: 'character_Sophontology',
current: 'on',
_characterid: character.id
});
break;
case 'Informatics':
createObj('attribute', {
name: 'character_Informatics',
current: 'on',
_characterid: character.id
});
break;
case 'Cybernetics':
createObj('attribute', {
name: 'character_Cybernetics',
current: 'on',
_characterid: character.id
});
break;
case 'Sensors':
createObj('attribute', {
name: 'character_Sensors',
current: 'on',
_characterid: character.id
});
break;
case 'Astrogation':
createObj('attribute', {
name: 'character_Astrogation',
current: 'on',
_characterid: character.id
});
break;
case 'Hyperspace':
createObj('attribute', {
name: 'character_Hyperspace',
current: 'on',
_characterid: character.id
});
break;
case 'Cryogenics':
createObj('attribute', {
name: 'character_Cryogenics',
current: 'on',
_characterid: character.id
});
default:
return;
}
switch (DSBUILD.Skill2) {
// Teamster
case 'Scavenging':
createObj('attribute', {
name: 'character_Scavenging',
current: 'on',
_characterid: character.id
});
break;
case 'Melee Combat':
createObj('attribute', {
name: 'character_Melee',
current: 'on',
_characterid: character.id
});
case 'Vehicular Driving':
createObj('attribute', {
name: 'character_Driving',
current: 'on',
_characterid: character.id
});
break;
case 'Heavy Machinery':
createObj('attribute', {
name: 'character_Heavy',
current: 'on',
_characterid: character.id
});
break;
case 'Rinwise':
createObj('attribute', {
name: 'character_Rinwise',
current: 'on',
_characterid: character.id
});
break;
case 'Zero-G':
createObj('attribute', {
name: 'character_Zero-G',
current: 'on',
_characterid: character.id
});
break;
case 'Mechanical Repair':
createObj('attribute', {
name: 'character_Mechanical',
current: 'on',
_characterid: character.id
});
break;
case 'Engineering':
createObj('attribute', {
name: 'character_Engineering',
current: 'on',
_characterid: character.id
});
// Marine
break;
case 'Athletics':
createObj('attribute', {
name: 'character_Athletics',
current: 'on',
_characterid: character.id
});
break;
case 'Firearms':
createObj('attribute', {
name: 'character_Firearms',
current: 'on',
_characterid: character.id
});
break;
case 'Piloting Ships':
createObj('attribute', {
name: 'character_Piloting',
current: 'on',
_characterid: character.id
});
break;
case 'Gunnery':
createObj('attribute', {
name: 'character_Gunnery',
current: 'on',
_characterid: character.id
});
break;
case 'Field Tactics':
createObj('attribute', {
name: 'character_Field',
current: 'on',
_characterid: character.id
});
break;
case 'Command':
createObj('attribute', {
name: 'character_Command',
current: 'on',
_characterid: character.id
});
case 'Infiltration':
createObj('attribute', {
name: 'character_Infiltration',
current: 'on',
_characterid: character.id
});
break;
case 'Explosives':
createObj('attribute', {
name: 'character_Explosives',
current: 'on',
_characterid: character.id
});
// Scientist
break;
case 'Medicine':
createObj('attribute', {
name: 'character_Medicine',
current: 'on',
_characterid: character.id
});
break;
case 'Psychology':
createObj('attribute', {
name: 'character_Psychology',
current: 'on',
_characterid: character.id
});
break;
case 'Theology':
createObj('attribute', {
name: 'character_Theology',
current: 'on',
_characterid: character.id
});
break;
case 'Archaeology':
createObj('attribute', {
name: 'character_Archaeology',
current: 'on',
_characterid: character.id
});
break;
case 'Geology':
createObj('attribute', {
name: 'character_Geology',
current: 'on',
_characterid: character.id
});
break;
case 'Astronomy':
createObj('attribute', {
name: 'character_Astronomy',
current: 'on',
_characterid: character.id
});
break;
case 'Chemistry':
createObj('attribute', {
name: 'character_Chemistry',
current: 'on',
_characterid: character.id
});
break;
case 'Biology':
createObj('attribute', {
name: 'character_Biology',
current: 'on',
_characterid: character.id
});
// Android
break;
case 'Linguistics':
createObj('attribute', {
name: 'character_Linguistics',
current: 'on',
_characterid: character.id
});
break;
case 'Sophontology':
createObj('attribute', {
name: 'character_Sophontology',
current: 'on',
_characterid: character.id
});
break;
case 'Informatics':
createObj('attribute', {
name: 'character_Informatics',
current: 'on',
_characterid: character.id
});
break;
case 'Cybernetics':
createObj('attribute', {
name: 'character_Cybernetics',
current: 'on',
_characterid: character.id
});
break;
case 'Sensors':
createObj('attribute', {
name: 'character_Sensors',
current: 'on',
_characterid: character.id
});
break;
case 'Astrogation':
createObj('attribute', {
name: 'character_Astrogation',
current: 'on',
_characterid: character.id
});
break;
case 'Hyperspace':
createObj('attribute', {
name: 'character_Hyperspace',
current: 'on',
_characterid: character.id
});
break;
case 'Cryogenics':
createObj('attribute', {
name: 'character_Cryogenics',
current: 'on',
_characterid: character.id
});
default:
return;
}
switch (DSBUILD.Skill3) {
// Teamster
case 'Scavenging':
createObj('attribute', {
name: 'character_Scavenging',
current: 'on',
_characterid: character.id
});
break;
case 'Melee Combat':
createObj('attribute', {
name: 'character_Melee',
current: 'on',
_characterid: character.id
});
case 'Vehicular Driving':
createObj('attribute', {
name: 'character_Driving',
current: 'on',
_characterid: character.id
});
break;
case 'Heavy Machinery':
createObj('attribute', {
name: 'character_Heavy',
current: 'on',
_characterid: character.id
});
break;
case 'Rinwise':
createObj('attribute', {
name: 'character_Rinwise',
current: 'on',
_characterid: character.id
});
break;
case 'Zero-G':
createObj('attribute', {
name: 'character_Zero-G',
current: 'on',
_characterid: character.id
});
break;
case 'Mechanical Repair':
createObj('attribute', {
name: 'character_Mechanical',
current: 'on',
_characterid: character.id
});
break;
case 'Engineering':
createObj('attribute', {
name: 'character_Engineering',
current: 'on',
_characterid: character.id
});
// Marine
break;
case 'Athletics':
createObj('attribute', {
name: 'character_Athletics',
current: 'on',
_characterid: character.id
});
break;
case 'Firearms':
createObj('attribute', {
name: 'character_Firearms',
current: 'on',
_characterid: character.id
});
break;
case 'Piloting Ships':
createObj('attribute', {
name: 'character_Piloting',
current: 'on',
_characterid: character.id
});
break;
case 'Gunnery':
createObj('attribute', {
name: 'character_Gunnery',
current: 'on',
_characterid: character.id
});
break;
case 'Field Tactics':
createObj('attribute', {
name: 'character_Field',
current: 'on',
_characterid: character.id
});
break;
case 'Command':
createObj('attribute', {
name: 'character_Command',
current: 'on',
_characterid: character.id
});
case 'Infiltration':
createObj('attribute', {
name: 'character_Infiltration',
current: 'on',
_characterid: character.id
});
break;
case 'Explosives':
createObj('attribute', {
name: 'character_Explosives',
current: 'on',
_characterid: character.id
});
// Scientist
break;
case 'Medicine':
createObj('attribute', {
name: 'character_Medicine',
current: 'on',
_characterid: character.id
});
break;
case 'Psychology':
createObj('attribute', {
name: 'character_Psychology',
current: 'on',
_characterid: character.id
});
break;
case 'Theology':
createObj('attribute', {
name: 'character_Theology',
current: 'on',
_characterid: character.id
});
break;
case 'Archaeology':
createObj('attribute', {
name: 'character_Archaeology',
current: 'on',
_characterid: character.id
});
break;
case 'Geology':
createObj('attribute', {
name: 'character_Geology',
current: 'on',
_characterid: character.id
});
break;
case 'Astronomy':
createObj('attribute', {
name: 'character_Astronomy',
current: 'on',
_characterid: character.id
});
break;
case 'Chemistry':
createObj('attribute', {
name: 'character_Chemistry',
current: 'on',
_characterid: character.id
});
break;
case 'Biology':
createObj('attribute', {
name: 'character_Biology',
current: 'on',
_characterid: character.id
});
// Android
break;
case 'Linguistics':
createObj('attribute', {
name: 'character_Linguistics',
current: 'on',
_characterid: character.id
});
break;
case 'Sophontology':
createObj('attribute', {
name: 'character_Sophontology',
current: 'on',
_characterid: character.id
});
break;
case 'Informatics':
createObj('attribute', {
name: 'character_Informatics',
current: 'on',
_characterid: character.id
});
break;
case 'Cybernetics':
createObj('attribute', {
name: 'character_Cybernetics',
current: 'on',
_characterid: character.id
});
break;
case 'Sensors':
createObj('attribute', {
name: 'character_Sensors',
current: 'on',
_characterid: character.id
});
break;
case 'Astrogation':
createObj('attribute', {
name: 'character_Astrogation',
current: 'on',
_characterid: character.id
});
break;
case 'Hyperspace':
createObj('attribute', {
name: 'character_Hyperspace',
current: 'on',
_characterid: character.id
});
break;
case 'Cryogenics':
createObj('attribute', {
name: 'character_Cryogenics',
current: 'on',
_characterid: character.id
});
default:
return;
}
switch (DSBUILD.Skill4) {
// Teamster
case 'Scavenging':
createObj('attribute', {
name: 'character_Scavenging',
current: 'on',
_characterid: character.id
});
break;
case 'Melee Combat':
createObj('attribute', {
name: 'character_Melee',
current: 'on',
_characterid: character.id
});
case 'Vehicular Driving':
createObj('attribute', {
name: 'character_Driving',
current: 'on',
_characterid: character.id
});
break;
case 'Heavy Machinery':
createObj('attribute', {
name: 'character_Heavy',
current: 'on',
_characterid: character.id
});
break;
case 'Rinwise':
createObj('attribute', {
name: 'character_Rinwise',
current: 'on',
_characterid: character.id
});
break;
case 'Zero-G':
createObj('attribute', {
name: 'character_Zero-G',
current: 'on',
_characterid: character.id
});
break;
case 'Mechanical Repair':
createObj('attribute', {
name: 'character_Mechanical',
current: 'on',
_characterid: character.id
});
break;
case 'Engineering':
createObj('attribute', {
name: 'character_Engineering',
current: 'on',
_characterid: character.id
});
// Marine
break;
case 'Athletics':
createObj('attribute', {
name: 'character_Athletics',
current: 'on',
_characterid: character.id
});
break;
case 'Firearms':
createObj('attribute', {
name: 'character_Firearms',
current: 'on',
_characterid: character.id
});
break;
case 'Piloting Ships':
createObj('attribute', {
name: 'character_Piloting',
current: 'on',
_characterid: character.id
});
break;
case 'Gunnery':
createObj('attribute', {
name: 'character_Gunnery',
current: 'on',
_characterid: character.id
});
break;
case 'Field Tactics':
createObj('attribute', {
name: 'character_Field',
current: 'on',
_characterid: character.id
});
break;
case 'Command':
createObj('attribute', {
name: 'character_Command',
current: 'on',
_characterid: character.id
});
case 'Infiltration':
createObj('attribute', {
name: 'character_Infiltration',
current: 'on',
_characterid: character.id
});
break;
case 'Explosives':
createObj('attribute', {
name: 'character_Explosives',
current: 'on',
_characterid: character.id
});
// Scientist
break;
case 'Medicine':
createObj('attribute', {
name: 'character_Medicine',
current: 'on',
_characterid: character.id
});
break;
case 'Psychology':
createObj('attribute', {
name: 'character_Psychology',
current: 'on',
_characterid: character.id
});
break;
case 'Theology':
createObj('attribute', {
name: 'character_Theology',
current: 'on',
_characterid: character.id
});
break;
case 'Archaeology':
createObj('attribute', {
name: 'character_Archaeology',
current: 'on',
_characterid: character.id
});
break;
case 'Geology':
createObj('attribute', {
name: 'character_Geology',
current: 'on',
_characterid: character.id
});
break;
case 'Astronomy':
createObj('attribute', {
name: 'character_Astronomy',
current: 'on',
_characterid: character.id
});
break;
case 'Chemistry':
createObj('attribute', {
name: 'character_Chemistry',
current: 'on',
_characterid: character.id
});
break;
case 'Biology':
createObj('attribute', {
name: 'character_Biology',
current: 'on',
_characterid: character.id
});
// Android
break;
case 'Linguistics':
createObj('attribute', {
name: 'character_Linguistics',
current: 'on',
_characterid: character.id
});
break;
case 'Sophontology':
createObj('attribute', {
name: 'character_Sophontology',
current: 'on',
_characterid: character.id
});
break;
case 'Informatics':
createObj('attribute', {
name: 'character_Informatics',
current: 'on',
_characterid: character.id
});
break;
case 'Cybernetics':
createObj('attribute', {
name: 'character_Cybernetics',
current: 'on',
_characterid: character.id
});
break;
case 'Sensors':
createObj('attribute', {
name: 'character_Sensors',
current: 'on',
_characterid: character.id
});
break;
case 'Astrogation':
createObj('attribute', {
name: 'character_Astrogation',
current: 'on',
_characterid: character.id
});
break;
case 'Hyperspace':
createObj('attribute', {
name: 'character_Hyperspace',
current: 'on',
_characterid: character.id
});
break;
case 'Cryogenics':
createObj('attribute', {
name: 'character_Cryogenics',
current: 'on',
_characterid: character.id
});
default:
return;
}
/* createObj('attribute', {
name: 'character_Loadout',
current: DSBUILD.Loadout,
_characterid: character.id
});
*/
}
};
on("ready", function () {
DSBUILD.listen();
});