uhm, a little lazy to package, if anyone knows how to package mods
heres the server.cs
function gameConnection::addEXP(%client,%exp)
{
if(%exp >= mCeil(mSqrt(%client.level) * 3))
{
%client.level += 1;
messageAll('',"<bitmap:base/client/ui/ci/blueRibbon>\c3" @ %client.name @ " \c6has leveled up to level \c3" @ %client.level @ "\c6.");
%client.exp = 0;
}
else
{
%client.exp += %exp;
messageClient(%client,'',"\c6You have obtained \c3" @ %exp @ "\c6 EXP.");
}
}
function serverCmdStats(%client)
{
messageClient(%client,'',"\c3Level\c6: " @ %client.level);
messageClient(%client,'',"\c3EXP\c6: " @ %client.EXP);
}
function gameConnection::saveLevel(%client)
{
%file = new FileObject();
%file.openForWrite("config/server/Levels/" @ %client.bl_id @ ".txt");
%file.writeLine("Level: "@ %client.level);
%file.writeLine("EXP: "@ %client.EXP);
%file.close();
%file.delete();
}
function gameConnection::loadLevel(%client)
{
if(isFile("config/server/Levels/" @ %client.bl_id @ ".txt"))
{
%file = new FileObject();
%file.openForRead("config/server/levels/" @ %client.bl_id @ ".txt");
%client.level = restWords(%file.readLine());
%client.exp = restWords(%file.readLine());
%file.close();
%file.delete();
}
}
package LevelingAndStuff
{
function gameConnection::onClientEnterGame(%client)
{
parent::onClientEnterGame(%client);
if(isFile("config/server/Levels/" @ %client.bl_id @ ".txt"))
%client.loadLevel();
else
{
%client.level = 0;
%client.exp = 0;
}
}
function GameConnection::onDeath(%this, %obj, %sourceObject, %sourceClient, %damageType, %damLoc)
{
parent::::onDeath(%this, %obj, %sourceObject, %sourceClient, %damageType, %damLoc);
if(%this != %soureClient)
{
%this.addEXP(10);
%this.saveLevel();
}
}
function serverCmdMessageSent(%client,%msg)
{
parent::serverCmdMessageSent(%client,%msg);
%client.clanPrefix = "[Level " @ %client.level @ "]";
%client.clanSuffix = "";
}
};activatepackage(LevelingAndStuff);
function saveAllLevel()
{
cancel($saveLevelAll);
for(%i=0;%i<ClientGroup.getCount();%i++)
{
if(%client.level > 0 && %client.exp > 0)
%client.saveLevel();
}
$saveLevelAll = schedule(60000,0,saveAllLevel);
}
saveAllLevel();
Not tested, someone should debug and release, with credits to me of course.