// TMW-2 Script
// Author:
// Jesusalva
// Description:
// Vault Utilities
function script getvaultid {
// FIXME: Make this False
if ($BETASERVER && !debug)
return ##VAULT;
else
return 0;
}
function script getvaultexp {
.@exp=getarg(0);
if (.@exp > 100)
Exception("ILLEGAL VAULT EXPERIENCE, FIXME URGENTLY. STOPPING SCRIPT BY FORCE WHILE DOING NOTHING.",
RB_DEBUGMES | RB_IRCBROADCAST | RB_GLOBALANNOUNCE | RB_ISFATAL);
if (getvaultid()) {
##VAULT_EXP+=.@exp;
consoleinfo("Granting %d Soul Exp to %d under the Moubootaur's authority.",
.@exp, ##VAULT);
}
return;
}
function script export_vault {
// Send updates to Vault API
if (getvaultid()) {
.@api$=json_encode("UID", ##VAULT,
"GID", getcharid(3),
"VAR1N", "CRQUEST",
"VAR1V", ##01_CRQUEST,
//"VAR2N", "CRWORLD",
//"VAR2V", ##01_CRWORLD,
"VEXP", ##VAULT_EXP,
"GOTO", ##VAULT_GOTO,
"MLTO", ##VAULT_MLTO);
##VAULT_EXP=0;
api_send(API_FLUSHVAULT, .@api$);
}
return;
}
// MirrorLakeSendTo(World, Lake)
function script MirrorLakeSendTo {
.@w=getarg(0);
.@t=getarg(1);
##VAULT_GOTO=.@w;
##VAULT_MLTO=.@t;
closeclientdialog;
dispbottom l("Darkness fills your vision...");
export_vault();
sleep2(800);
specialeffect FX_CIRCLE, SELF, getcharid(3);
sleep2(1200);
specialeffect FX_MGSHIELD, SELF, getcharid(3);
sleep2(1200);
kick(getcharid(3), 7); // 7 is not a valid kick reason
//atcommand("@kick "+strcharinfo(0));
end;
}
// BonusEXP({mobId})
function script BonusEXP {
// Only applies if you are not in TOP 3
if (BaseLevel >= TOP3AVERAGELVL())
return;
// Permanent Level Boost
if (#ADD_LVL) {
.@mobId=getarg(0, killedrid);
.@exp = min(#ADD_LVL, getmonsterinfo(.@mobId, MOB_BASEEXP) * 2);
getexp .@exp, 0;
#ADD_LVL-=.@exp;
/*
if ((readparam(BaseExp)+.@exp > readparam(NextBaseExp))) {
do {
if (BaseLevel >= TOP3AVERAGELVL()) break; // Boundaries
.@v=readparam(NextBaseExp)-readparam(BaseExp);
getexp .@v, 0;
#ADD_LVL-=.@v;
} while (readparam(BaseExp)+.@exp > readparam(NextBaseExp));
}
*/
}
return;
}