PDA

View Full Version : [Programming] Help with Calendar Rigging



pr6i6e6st
August 31st, 2019, 06:21
edit: nevermind, I figured it out.




function onInit()
DB.addHandler("calendar.current.minute", "onUpdate", onSourceChanged);
onCheckTime();
onSourceChanged();
end

function onCheckTime()
nOld = DB.getValue("calendar.current.minute");
end

function onAddIt()
if nIsNewHour > 0 then
nDifference = nFull - nOld;
end
if nIsNewHour == 0 then
nDifference = nNew - nOld;
end
end


function onClose()
DB.removeHandler("calendar.current.minute", "onUpdate", onSourceChanged);
end
nIsNewHour = 0;
function onSourceChanged()
setValue(string.format("%02d", DB.getValue("calendar.current.minute", 0)));
nNew = DB.getValue("calendar.current.minute");

if nNew == 0 then
nIsNewHour = 60;

end
nFull = nNew + nIsNewHour;
onAddIt();

if nDifference > 4 and nDifference < 58 then
window.stressroll.onUpdate();
onCheckTime();
nIsNewHour = 0;
end

if nDifference < 0 or nDifference > 58 then
onCheckTime();
nIsNewHour = 0;
end

end


function onWheel(n)
if not Input.isControlPressed() then
return false;
end
CalendarManager.adjustMinutes(n);
return true;
end






---------------------------------------------------------------------------------------------------------

Hey guys! So i've almost got something rigged up on my Alien RPG ruleset so that stress will reduce by 1 every 5 minutes. It's working almost perfectly. My issue comes from when I scroll down (decrease) the minutes to, and below 0 (effectively going back an hour).

example, stress is reduced every 5 minutes. my time is 4:03, i mousewheel the time backwards, and when i hit both 4:00, and 3:59, stress is reduced on all the characters by 1 each time.

this effect must come from my workaround to get the time to recognize when a new hour has passed, so that when i start at 4:58, and end at 5:03, stress is reduced on all the characters by 1.

This is the script i have placed into the "currentminutes" part of my charactersheet on charsheet_main2.xml




function onInit()
DB.addHandler("calendar.current.minute", "onUpdate", onSourceChanged);
onCheckTime();
onSourceChanged();
end

function onCheckTime()
nOld = DB.getValue("calendar.current.minute");
end

function onAddIt()
if nIsNewHour > 0 then
nDifference = nFull - nOld;
end
if nIsNewHour == 0 then
nDifference = nNew - nOld;
end
end


function onClose()
DB.removeHandler("calendar.current.minute", "onUpdate", onSourceChanged);
end
nIsNewHour = 0;
function onSourceChanged()
setValue(string.format("%02d", DB.getValue("calendar.current.minute", 0)));
nNew = DB.getValue("calendar.current.minute");

if nNew == 0 then
nIsNewHour = 60;

end
nFull = nNew + nIsNewHour;
onAddIt();

if nDifference > 4 then
window.stressroll.onUpdate();
onCheckTime();
nIsNewHour = 0;
end

if nDifference < 0 then
onCheckTime();
nIsNewHour = 0;
end

end


function onWheel(n)
if not Input.isControlPressed() then
return false;
end
CalendarManager.adjustMinutes(n);
return true;
end