ff_u_pc_lvl_min
Set player level upon first login.
When a player enters, if the player isn’t at least NEW_PLAYER_LEVEL, make him level NEW_PLAYER_LEVEL.
Variables
PLAYER_MIN_LEVEL: (int) Level to give to entering PC.
ENABLE__FF_U_PC_MIN_LVL: (string) (opt-in) Set to “Y” on module to enable.
Source code
// @code
#include "ff_i_core"
const string ENABLE__FF_U_PC_MIN_LVL = "ENABLE__FF_U_PC_MIN_LVL";
const string PLAYER_MIN_LEVEL = "PLAYER_MIN_LEVEL";
// -----------------------------------------------------------------------------
void OnClientEnter(object oPC)
{
if (!GetIsPC(oPC))
return;
int nMinLevel = GetLocalInt(GetModule(), PLAYER_MIN_LEVEL);
if (nMinLevel <= 1)
nMinLevel = 1;
if (nMinLevel > 40)
nMinLevel = 40;
if (GetXP(oPC) >= GetXPForLevel(nMinLevel))
return;
LogNotice(__FILE__ + ": " + GetPCInfo(oPC) + " level set to " + IntToString(nMinLevel));
int nXP = GetXPForLevel(nMinLevel);
SetXP(oPC, nXP);
}
// =============================================================================
void main()
{
if (!GetModuleFlag(ENABLE__FF_U_PC_MIN_LVL, TRUE))
return;
string sEvent = GetCurrentEvent();
if (sEvent == ON_REGISTER)
SubscribeToEvent(ON_DEFAULT_CLIENT_ENTER, __FILE__);
else if (sEvent == ON_DEFAULT_CLIENT_ENTER)
DelayCommand(0.1f, OnClientEnter(GetEnteringObject()));
}