I received the following exception:
---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occured in ACWIN.EXE at EIP = 0x0044D1FE ; program pointer is -42, ACI version 2.61.747, gtags (2039,36)
AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and notify CJ on the Tech forum.
(Global script line 108)
Line 108 is the last line of this function:
[code]function Now(int type){ // Returns the current time/day/date/year by the computer clock.
if (type == 1) { // Current year
int Raw_Seconds = GetRawTime();
int Raw_Minutes = Raw_Seconds / 60;
int Raw_Hours = Raw_Minutes / 60;
int Raw_Days = Raw_Hours / 24;
int Raw_Years = Raw_Days / (365 + (1/4));
int Year = Raw_Years + 1970;
return Year;
}
else if (type == 2) { // Current time
string TimeNow;
string TimeNow2;
string TimeNow3;
int hour = GetTime(1);
int minute = GetTime(2);
string AMPM;
if (hour > 12) {
hour-=12;
StrCopy(AMPM, "pm");
}
else if (hour == 0) {
hour=12;
StrCopy(AMPM, "am");
}
else { StrCopy(AMPM, "pm"); }
if (minute < 10) StrFormat(TimeNow2, "0%d", minute);
else StrFormat(TimeNow2, "%d", minute);
StrFormat(TimeNow, "%d", hour);
StrCat(TimeNow, ":");
StrCat(TimeNow, TimeNow2);
StrFormat(TimeNow3, " %s", AMPM);
StrCat(TimeNow, TimeNow3);
SetGlobalString(49,TimeNow);
}
else if (type == 3) { // Current date
int month = GetTime(5);
int day = GetTime(4);
string date1;
string date2;
string date3;
StrFormat(date1, "%d-", month);
StrFormat(date2, "%d-", day);
StrFormat(date3, "%d", Now(1));
StrCat(date1, date2);
StrCat(date1, date3);
SetGlobalString(49,date1);
}
else if (type == 4) { // Current day (e.g., Monday, Tuesday)
int Year = Now(1) - 2000;
Year += (Year / 4);
int MonthNum;
if (GetTime(5) == 1) MonthNum = 6;
else if (GetTime(5) == 2) MonthNum = 2;
else if (GetTime(5) == 3) MonthNum = 2;
else if (GetTime(5) == 4) MonthNum = 5;
else if (GetTime(5) == 5) MonthNum = 0;
else if (GetTime(5) == 6) MonthNum = 3;
else if (GetTime(5) == 7) MonthNum = 5;
else if (GetTime(5) == 8) MonthNum = 1;
else if (GetTime(5) == 9) MonthNum = 4;
else if (GetTime(5) == 10) MonthNum = 6;
else if (GetTime(5) == 11) MonthNum = 2;
else if (GetTime(5) == 12) MonthNum = 4;
int DayCode = Year + MonthNum + GetTime(4);
if ((Now(1) == 2004 || Now(1) == 2008 || Now(1) == 2012 || Now(1) == 2016 || Now(1) == 2020 || Now(1) == 2024 || Now(1) == 2028 || Now(1) == 2032 || Now(1) == 2036 || Now(1) == 2040 || Now(1) == 2044 || Now(1) == 2048) && (GetTime(5) == 1 || GetTime(5) == 2)) DayCode--;
while (DayCode > 7) {
DayCode -= 7;
}
while (DayCode < 1) {
DayCode += 7;
}
string Day;
if (DayCode == 1) StrCopy(Day, "Monday");
else if (DayCode == 2) StrCopy(Day, "Tuesday");
else if (DayCode == 3) StrCopy(Day, "Wednesday");
else if (DayCode == 4) StrCopy(Day, "Thursday");
else if (DayCode == 5) StrCopy(Day, "Friday");
else if (DayCode == 6) StrCopy(Day, "Saturday");
else if (DayCode == 7) StrCopy(Day, "Sunday");
else StrFormat(Day, "%d", DayCode);
SetGlobalString(49,Day);
}
}[/code]
It used to work, and I haven't changed it (besides having to change the return strings to global strings after upgrading to 2.61, which might be the cause).
How do I fix this? Thanks in advance.