PoA_PRC8/_module/nss/savecharacters.nss
Jaysyn904 3891e0173a Removed depreciated location saving functions.
Removed depreciated location saving functions.  Removed duplicate `prc_combatmove.nss` from top hak.  Full compile.  Updated release archive.
2024-11-07 07:42:00 -05:00

84 lines
2.2 KiB
Plaintext

/*--------------------------------------------------------
Script Name: savecharacters
----------------------------------------------------------
Created By: Genisys(Guile)
Created On: 2/09/09
----------------------------------------------------------
This saves all characters on the server
----------------------------------------------------------*/
//This checks to see if the player is polymorphed...
int IsShifterMorphed(object oPC)
{
effect ef = GetFirstEffect(oPC);
int iShifter = FALSE;
//if (GetLevelByClass(CLASS_TYPE_DRUID,oPC)>0) //Is Shifter, search the PolyEff
while( GetEffectType(ef) != EFFECT_TYPE_INVALIDEFFECT && iShifter == FALSE)
{
if ( GetEffectType(ef) == EFFECT_TYPE_POLYMORPH )
iShifter = TRUE;
ef = GetNextEffect(oPC);
}
return iShifter;
}
//Main Script
void main()
{
object oPP = GetFirstPC();
string sName = GetStringLeft(GetName(oPP), 20);
location lSaved = GetLocation(oPP);
int MULTI_PLAYER = GetLocalInt(GetModule(), "multi");
/*while(GetIsObjectValid(oPP))
{
//If they are in the guild...
if(GetItemPossessedBy(oPP, "guildpass")!=OBJECT_INVALID)
{
//Let's make sure their area is valid!
if(GetArea(GetAreaFromLocation(lSaved))!=OBJECT_INVALID)
{
object oGuild = GetItemPossessedBy(oPP, "guildstone");
//Store the PC's location, so they can come back here after relogging
if(oGuild != OBJECT_INVALID)
{
SetCampaignLocation("LOCATIONS", GetName(oGuild), lSaved, oPP);
SendMessageToPC(oPP, "Location Saved");
}
}
else
{
SendMessageToPC(oPP, "Your location was NOT saved, you need to rest to save your location.");
}
}*/
//If the PC is not polymorphed save their character as well!
if(IsShifterMorphed(oPP)==FALSE)
{
if(GetAreaFromLocation(lSaved)!=OBJECT_INVALID)
{
if(MULTI_PLAYER)
{
ExportSingleCharacter(oPP);
}
}
}
else
{
SendMessageToPC(oPP, "Your character was not saved, because you are polymorphed.");
}
oPP = GetNextPC();
//}
SendMessageToPC(GetPCLevellingUp(), "All characters on the server are saved when any character levels up.");
string oDM = (GetPCPlayerName(GetPCLevellingUp())+" has leveled. All characters saved.");
SendMessageToAllDMs(oDM);
}