// TMW2 Scripts
// Evol functions.
// Author:
// 4144
// Jesusalva
// Description:
// Function checking the client version and reports if it is too old.
// This also handles all updates, and usually have priority.
function script checkclientversion {
// Skip any update for newcomers
if (isin("000-0", 0, 0, 40, 40)) {
UPDATE=gettimetick(2);
// if $EVENT$ is REFFER:
if (#REFERRAL_PROG == 0) {
mesn l("TMW2 Staff");
mesc l("Hello, and welcome to TMW2: Moubootaur Legends!"), 3;
mesc l("(Click next button to advance dialogs)"),9;
next;
mesn l("TMW2 Staff");
mesc l("Did you came here by someone advise? If yes, write their name here!"), 3;
mesc l("If this is not the case, just click on \"Send\"."), 3;
.@ref$="";
do
{
input .@ref$;
debugmes "Hercules is bugged: "+.@ref$;
mes "";
if (.@ref$ != "") {
.@ref=gf_accid(strip(.@ref$));
if (.@ref > 0) {
if (.@ref == getcharid(3)) {
mesn l("TMW2 Staff");
mesc l("Hahah, silly, that's yourself!"), 3;
mesc l("Try again!"), 3;
next;
.@ref$="";
} else {
#REFERRAL_PROG=.@ref;
getitembound FriendGift, 1, 1;
mesn l("TMW2 Staff");
mesc l("Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3;
mesc l("Your friend also sent you a gift - open it when you get level 5!"), 3;
next;
}
} else {
mesn l("TMW2 Staff");
mesc l("Oops, there is nobody known as @@ on this game.", .@ref$), 3;
mesc l("Could you try again? There could be a typo!"), 3;
next;
.@ref$="";
}
} else {
.@ref$="None";
mesn l("TMW2 Staff");
mesc l("I see. Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3;
next;
}
} while (.@ref$ == "");
if (ClientVersion >= 24) return;
}
}
// Update handler (use `date +%s` for this)
// Current UPDATE value: Qui Jun 7 08:10:55 -03 2018
if (Lang > 5 && UPDATE < 1528369855) {
UPDATE=gettimetick(2);
Lang=0;
mesn "Jesus Saves";
mesc l("Oh, noes! Due lack of translators, some languages were removed from this project.");
mesc l("You might have been affected. Please, select your desired language.");
asklanguage(LANG_IN_SHIP);
if (!#ADD_LVL)
close;
}
// #ADD_LVL means the user have to right to get some levels. This is a sketch. The code might be deleted.
if (#ADD_LVL) {
mesn "Jesus Saves";
mesc l("Oh - Welcome to TMW2: Moubootaur Legends!"), 3;
next;
mesn "Jesus Saves";
mesc l("Please, fell at home. You can use ##B#world##b channel to speak to everyone on Discord, IRC and ingame."), 3;
next;
mesn "Jesus Saves";
mesc l("Our mission statement is to bring fun to all players. You'll get some levels automatically. We advise you to join a guild."), 3;
next;
mesn "Jesus Saves";
mesc l("If you have any trouble or doubt, don't hesit to call us. There are some cooperative quests, and more of them are being added."), 3;
next;
mesn "Jesus Saves";
mesc l("Anyway, ##Bwelcome##b, and have fun! If you need anything, we are a keypress from distance!"), 3;
atcommand "@blvl "+#ADD_LVL;
#ADD_LVL=0;
// TODO: Use @super debug functions and force player to join a guild. We will need the guild ID, though.
rodex_sendmail(getcharid(0), "TMW2 Team", "Welcome to Moubootaur Legends", "Hey, thanks for believing on us! We hope to have a great time togheter. Any problem, ask for help in #world - the Discord bridge! And take this change!", 20);
if (ClientVersion >= 24) close;
next;
mesn "Failsafe Mechanism";
mesc l("Ah... You must update your client first."), 1;
next;
}
if (is_admin() && UPDATE < 1528369855) {
UPDATE=gettimetick(2); // Perhaps we should use above number, and leave all UPDATE fields here?
dispbottom l("Client Version: @@", ClientVersion); // This is to debug UPDATE system.
}
if (ClientVersion >= 24) return;
mesn "Narrator";
mesc l("Warning."), 1;
mesc l("Warning."), 1;
mesc l("Warning: You are using an old client."), 1;
next;
mesc l("Please install the new client from [@@https://manaplus.org/|https://manaplus.org/@@]");
next;
if (ClientVersion >= 22) return;
mesc l("You won't be allowed to play this game until you have an updated client.");
next;
// Force user to disconnect
atcommand "@kick "+strcharinfo(0);
return;
}