Thanks for checking into it. I tried as you said, but its not working, and I get the following error:
2020-10-01T13:52:53,070 ERROR Jscript - JavaScriptError line 17 column 0 Source null error Can't find method org.guideme.guideme.scripting.OverRide.addButton(string,string,string,string,org.mozilla.javascript.ConsString,string,string,string,string,string). (pageScript#17)
This is the full script if it helps (I shortened the main array to save space, otherwise its complete):
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<Tease>
<Title>At thier whim v9</Title>
<Author id="">
<Name>""</Name>
</Author>
<MediaDirectory>At thier whim</MediaDirectory>
<Settings>
<AutoSetPageWhenSeen>false</AutoSetPageWhenSeen>
<ForceStartPage>true</ForceStartPage>
</Settings>
<GlobalJavascript>
<![CDATA[
//Difficulty settings: Very Easy = 0, Easy = 1, Medium = 2, Hard = 3, Very Hard = 4, Insane = 5
var arrayModel = [
{ Name: "Abha", sortOrder: 10, Sets: [
{Difficulty: 2, Path: "Abha" }]},
{ Name: "Adele", sortOrder: 20, Sets: [
{Difficulty: 4, Path: "Adele" }]},
{ Name: "Yani", sortOrder: 620, Sets: [
{Difficulty: 0, Path: "Yani\\Yani-1" },
{Difficulty: 3, Path: "Yani\\Yani-2" },
{Difficulty: 2, Path: "Yani\\Yani-3" },
{Difficulty: 1, Path: "Yani\\Yani-4" },
{Difficulty: 4, Path: "Yani\\Yani-5" },
{Difficulty: 5, Path: "Yani\\Yani-6" }]},
];
//Time is in seconds
var arrayDifficulty = [
{ Level: "Very Easy", DelayMin: 60, DelayMax: 180, AllowChance: 22, RuinChance: 23},
{ Level: "Easy", DelayMin: 120, DelayMax: 240, AllowChance: 17, RuinChance: 18},
{ Level: "Medium", DelayMin: 180, DelayMax: 300, AllowChance: 11, RuinChance: 14},
{ Level: "Hard", DelayMin: 240, DelayMax: 480, AllowChance: 9, RuinChance: 11},
{ Level: "Very Hard", DelayMin: 360, DelayMax: 540, AllowChance: 6, RuinChance: 9},
{ Level: "Insane", DelayMin: 480, DelayMax: 720, AllowChance: 4, RuinChance: 6},
];
var arrayAllow = [
"Do it, and be sure to enjoy it because that won't be happening again soon.",
"Ok, make it a good one.",
"Oh, I suppose you can",
"Sure, but only if you eat it",
];
var arrayRuin = [
"Sure thing sweetie, but only if you ruin it!",
"Go ahead, but ruin it for me.",
"Explode, but be sure to let go just as you do ;)",
];
var arrayDeny = [
"Sorry honey, not good enough. Maybe next time.",
"Not this time, baby, maybe next.",
"Of course not, why would I let you?",
"And lose all this built up tension?",
"Nope",
"Sorry",
"No",
];
]]>
</GlobalJavascript>
<Pages>
<Page id="start">
<Text>Who'd you like to see?</Text>
<Image id="Welcome.jpg" />
<javascript>
<![CDATA[
function pageLoad() {
var i = 0;
var vSelected = parseInt(scriptVars.get("vSelected"),10);
jscriptLog("vSelected = " + vSelected);
if ( isNaN(vSelected) || vSelected == undefined ) {
vSelected = 0;
scriptVars.put("vSelected", vSelected);
jscriptLog("vSelected initialized to " + vSelected);
}
for (i=0; i < arrayModel.length; i++) {
var vName = arrayModel[i].Name;
var vSort = arrayModel[i].sortOrder.toString(); //sortOrder parameter needs to be a string
overRide.addButton("Confirm", vName, "", "", "setModel(" + i +")", "", "", vSort, "", "");
}
overRide.setHtml("Who'd you like to see this time? Last time you visited " + arrayModel[vSelected].Name);
overRide.addButton("Confirm", "You Choose", "", "", "setRandomModel()", "", "");
}
function setModel(i)
{
scriptVars.put("vSelected", i);
// And randomly select a set to use and save this for other pages to access
var vSet = Math.floor(Math.random()*arrayModel[i].Sets.length);
scriptVars.put("vSet", vSet);
}
function setRandomModel()
{
var i = Math.floor(Math.random()*arrayModel.length);
scriptVars.put("vSelected", i);
var vSet = Math.floor(Math.random()*arrayModel[i].Sets.length);
scriptVars.put("vSet", vSet);
}
]]>
</javascript>
</Page>
<Page id="Confirm">
<Text>Seeing this means something went wrong on the page - Confirm</Text>
<Image id="test.jpg" />
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
var vSet = parseInt(scriptVars.get("vSet"),10);
var vPath = arrayModel[i].Sets[vSet].Path;
var vDiff = arrayModel[i].Sets[vSet].Difficulty;
var vLvl = arrayDifficulty[vDiff].Level;
var text = arrayModel[i].Name + ":<br/>Are you ready to begin?<br/><br/>";
overRide.setHtml(text);
overRide.image = vPath + "/ready.jpg";
}
]]>
</javascript>
<Button target="start">Someone Else</Button>
<Button target="ChangeSet">Different Set</Button>
<Button target="Wait">Let's Begin</Button>
</Page>
<Page id="ChangeSet">
<Text>Seeing this means something went wrong on the page - ChangeSet</Text>
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
scriptVars.put("vSelected", i);
var vSet = Math.floor(Math.random()*arrayModel[i].Sets.length);
scriptVars.put("vSet", vSet);
}
]]>
</javascript>
<Delay seconds="0" target="Confirm" style="hidden"/>
</Page>
<Page id="Wait">
<Text>Seeing this means something went wrong on the page - Wait</Text>
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
var vSet = parseInt(scriptVars.get("vSet"),10);
var vPath = arrayModel[i].Sets[vSet].Path;
var vDiff = arrayModel[i].Sets[vSet].Difficulty;
var vMinDel = arrayDifficulty[vDiff].DelayMin;
var vMaxDel = arrayDifficulty[vDiff].DelayMax;
var vDelay = Math.floor(Math.random() * (vMaxDel - vMinDel + 1)) + vMinDel;
overRide.setHtml("Waiting...");
overRide.image = vPath + "/Wait/*.jpg";
overRide.setDelay("Ask", vDelay, "", "hidden", "", "", "");
}
]]>
</javascript>
<!-- <Button target="Ask">proceed-test</Button> -->
</Page>
<Page id="Ask">
<Text>Seeing this means something went wrong on the page - Ask</Text>
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
var vSet = parseInt(scriptVars.get("vSet"),10);
var vPath = arrayModel[i].Sets[vSet].Path;
var vDiff = arrayModel[i].Sets[vSet].Difficulty;
var vAllowCase = 100 - parseInt(arrayDifficulty[vDiff].AllowChance,10);
var vRuinCase = vAllowCase - parseInt(arrayDifficulty[vDiff].RuinChance,10);
var rand = guide.getRandom("(1..100)");
switch (true)
{
case rand > vAllowCase:
overRide.addButton("Allow", "Please...", "", "", "", "", "");
break;
case rand > vRuinCase:
overRide.addButton("Ruin", "Please...", "", "", "", "", "");
break;
default:
overRide.addButton("No", "Please...", "", "", "", "", "");
}
overRide.setHtml("Ask nicely");
overRide.image = vPath + "/Ask/*.jpg";
}
]]>
</javascript>
</Page>
<Page id="Allow">
<Text>Seeing this means something went wrong on the page - Allow</Text>
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
var vSet = parseInt(scriptVars.get("vSet"),10);
var vPath = arrayModel[i].Sets[vSet].Path;
var vResponse = arrayAllow[Math.floor(Math.random()*arrayAllow.length)];
overRide.setHtml(vResponse);
overRide.image = vPath + "/Yes/*.jpg";
}
]]>
</javascript>
<Button target="start">Someone else?</Button>
<Button target="Wait">Try Again?</Button>
</Page>
<Page id="Ruin">
<Text>Seeing this means something went wrong on the page - Ruin</Text>
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
var vSet = parseInt(scriptVars.get("vSet"),10);
var vPath = arrayModel[i].Sets[vSet].Path;
var vResponse = arrayRuin[Math.floor(Math.random()*arrayRuin.length)];
overRide.setHtml(vResponse);
overRide.image = vPath + "/No/*.jpg";
}
]]>
</javascript>
<Button target="start">Someone else?</Button>
<Button target="Wait">Try Again?</Button>
</Page>
<Page id="No">
<Text>Seeing this means something went wrong on the page - No</Text>
<javascript>
<![CDATA[
function pageLoad() {
var i = parseInt(scriptVars.get("vSelected"),10);
var vSet = parseInt(scriptVars.get("vSet"),10);
var vPath = arrayModel[i].Sets[vSet].Path;
var vResponse = arrayDeny[Math.floor(Math.random()*arrayDeny.length)];
overRide.setHtml(vResponse);
overRide.image = vPath + "/No/*.jpg";
}
]]>
</javascript>
<Button target="start">Someone else?</Button>
<Button target="Wait">Try Again?</Button>
</Page>
</Pages>
</Tease>