// Evol script
// Year: 2022
//
////////////////////////////////////////////////
// Controls the party and puppets
003-1,42,94,0|script|#P2022Exit|400,4,0
{
end;
OnTouch:
mes "Do you want to leave the party?";
if (#X21 < 10) goto L_Warn;
goto L_Prompt;
L_Warn:
mes "##1You won't be able to complete the party events once you leave.##0";
goto L_Prompt;
L_Prompt:
if (strcharinfo(0) == "Prsm") set $@PRSM_ONLINE, 0;
next;
menu
"I'll stay a bit longer.", L_Close,
"Leave to Tulimshar", L_Tulim,
"Leave to Pachua Village", L_Pachua,
"Leave to Hurnscald", L_Hurns,
"Leave to Terranite Cave", L_Terra,
"Leave to Nivalis", L_Nivalis,
"Leave to Blue Sage Manor", L_Blue,
"Leave to Graveyard", L_Crypt,
"Leave to Keshlam Swamps", L_Keshlam,
"Leave to Candor", L_Candor,
"I've changed my mind.", L_Close;
L_Close:
close;
L_Tulim:
set #X21, 10;
warp "002-1", 60, 42;
close;
L_Pachua:
set #X21, 10;
warp "006-1", 28, 97;
close;
L_Hurns:
set #X21, 10;
warp "008-1", 79, 84;
close;
L_Terra:
set #X21, 10;
warp "012-3", 445, 65;
close;
L_Nivalis:
set #X21, 10;
warp "020-1", 53, 122;
close;
L_Blue:
set #X21, 10;
warp "048-2", 26, 47;
close;
L_Crypt:
set #X21, 10;
warp "026-1", 49, 45;
close;
// FIXME Map size changed?
L_Keshlam:
set #X21, 10;
warp "099-7", 75, 13;
close;
L_Candor:
set #X21, 10;
warp "029-1", 69, 69;
close;
}
////////////////////////////////////////////////
function|script|P22Login
{
if (gettime(7) != 2022) goto L_Return;
if (gettime(6) != 4) goto L_Return;
if (gettime(5) != 2 && gettime(5) != 3) goto L_Return;
if (gettimetick(2) - TUT_var < 1*7*86400) goto L_Return; // One week
if (#X21 < 4) goto L_Warp;
if (getmap() == "003-1") goto L_FixMask;
return;
L_FixMask:
mapmask 1 | 2;
return;
L_Warp:
set #X21, 4;
warp "003-1", 45, 24;
mapmask 1 | 2;
if (strcharinfo(0) == "Prsm") goto L_Prsm;
return;
L_Prsm:
npctalk "Constable Bob#P21", "Prsm, congratulations for 11 years in TMW Staff! \o/";
set $@PRSM_ONLINE, 1;
sc_end(SC_HIDE);
return;
L_Return:
return;
}
////////////////////////////////////////////////
003-1,41,24,0|script|Constable Bob#P21|419
{
if (!$@PRSM_PARTY) goto L_Over;
mapmask 1 | 2;
mes "[Constable Bob]";
mes "\"Hello, and welcome to the celebration I've prepared for my best friend and comrade in keeping The Mana World safe: ##BPrsm##b.\"";
next;
mes "[Constable Bob]";
mes "\"Prsm has enforced the laws for ##Beleven years##b, that's way longer than me. Not to say how he have been around for at least fifteen.\"";
mes "\"This may be just my seventh year on staff, but I must admit that working with Prsm made the most wonderful years I had. I couldn't ask for a better partner.\"";
next;
mes "[Constable Bob]";
mes "\"Which is why I asked the admins for mass warp powers and the devs to prepare a party; this is the least I could do for my friend. Please enjoy yourself while you're here, and once you're done, you can leave with the south gate.\"";
close;
L_Over:
mes "[Constable Bob]";
mes "\"The party is over; Please leave with the south gate before the developers seal it off again.\"";
close;
OnInit:
goto OnClock0000;
OnClock0000:
if (gettime(7) != 2022) goto L_None;
if (gettime(6) != 4) goto L_None;
if (gettime(5) != 2 && gettime(5) != 3) goto L_Off;
set $@PRSM_PARTY, 1;
end;
L_Off:
set $@PRSM_PARTY, 0;
end;
L_None:
end;
}
////////////////////////////////////////////////
// $GUESTBOOK_AUTHOR$[entry] + $GUESTBOOK_MESSAGE$[entry]
// Persistent to survive an eventual crash
// Major bit: 8 (#X21 & 8) ─ Because it could tax map server otherwise
// NOTE: We actually could use Elli, as she is the notes keeper?
003-1,34,46,0|script|Numa#P22|393
{
if (strcharinfo(0) == "Prsm") goto L_Done;
if (#X21 & 8) goto L_Done;
if (!$@PRSM_PARTY) goto L_Over;
mapmask 1 | 2;
mes "[Numa]";
mes "\"I'm making a book with the wishes from the whole The Mana World Community. Do you want to write something to Prsm? Everyone will be able to read it.\"";
next;
menu
"Yes", L_Write,
"No", L_Close;
L_Write:
set @msg$, "";
input @msg$;
if (@msg$ == "")
goto L_Close;
mes "[Numa]";
mes @msg$;
mes "##0##BNuma carefully looks over your message, and nodding in approval, she says:##b";
mes "\"Are you sure you want to post this? Do note that spam, harassment, and attempts to ruin the party will get you kicked or worse, so think carefully!\"";
menu
"Yes", L_Save,
"No", L_Close;
L_Save:
set @loop, getarraysize($GUESTBOOK_AUTHOR$) - 1;
if (@loop < 0) set @loop, 0;
if ($GUESTBOOK_AUTHOR$[@loop] != "") set @loop, @loop + 1;
set $GUESTBOOK_AUTHOR$[@loop], strcharinfo(0);
set $GUESTBOOK_MESSAGE$[@loop], @msg$;
set #X21, #X21 | 8;
mes "[Numa]";
mes "\"There we go! Thanks. Do you want to read the book, now?\"";
next;
menu
"Yes", L_Show,
"No", L_Close;
L_Over:
mes "[Numa]";
mes "\"The party is over; Please leave with the south gate before the developers seal it off again.\"";
close;
L_Done:
mes "[Numa]";
mes "\"Do you want to read what the players wrote for Prsm?\"";
menu
"Yes", L_Show,
"No", L_Close;
L_Show:
set @loop, 0;
goto L_ShowNext;
L_ShowNext:
if ($GUESTBOOK_AUTHOR$[@loop] == "")
goto L_Close;
mes "##B"+$GUESTBOOK_AUTHOR$[@loop] + "##b - " + $GUESTBOOK_MESSAGE$[@loop]+"##0";
set @loop, @loop + 1;
if ((@loop % 5) == 0 && $GUESTBOOK_AUTHOR$[@loop] != "")
goto L_PauseCont;
goto L_ShowNext;
L_PauseCont:
next;
goto L_ShowNext;
L_Close:
set @msg$, "";
set @loop, 0;
close;
}