Removed depreciated location saving functions. Removed duplicate `prc_combatmove.nss` from top hak. Full compile. Updated release archive.
84 lines
2.2 KiB
Plaintext
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);
|
|
}
|