generated from Jaysyn/ModuleTemplate
Initial commit
Initial commit
This commit is contained in:
454
_module/nss/opw_inc_pstat.nss
Normal file
454
_module/nss/opw_inc_pstat.nss
Normal file
@@ -0,0 +1,454 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Olander's Player Stat's
|
||||
// opw_inc_pstat
|
||||
// By Don Anderson
|
||||
// dandersonru@msn.com
|
||||
//
|
||||
// Some Player Stat Functions Originally By Invisible420...nicely done
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "nbde_inc"
|
||||
|
||||
// Color Variables
|
||||
string RED = "<c<> >";
|
||||
string BLUE = "<c <20>>";
|
||||
string GRAY = "<c<><63><EFBFBD>>";
|
||||
string GREEN = "<c <20> >";
|
||||
string WHITE = "<c<><63><EFBFBD>>";
|
||||
string CYAN = "<c <20><>>";
|
||||
string YELLOW = "<c<><63> >";
|
||||
string BLUISHG = "<c <20><>>";
|
||||
string BLUISHR = "<c <20><>>";
|
||||
|
||||
|
||||
void ProcessPCBirthday(object oPC)
|
||||
{
|
||||
object oMod = GetModule();
|
||||
|
||||
int nTime = NBDE_GetCampaignInt("PLAYERSTATS", "PC_YEAR_START", oPC);
|
||||
if (nTime == 0)
|
||||
{
|
||||
int nAge = GetAge(oPC);
|
||||
int nYear = GetCalendarYear();
|
||||
int nBorn = nYear - nAge;
|
||||
int nMonth = GetCalendarMonth();
|
||||
int nDay = GetCalendarDay();
|
||||
int nHour = GetTimeHour();
|
||||
int nTotalHours = (nYear*8760) + (nMonth*720) + (nDay*24) + nHour;
|
||||
|
||||
string sMonth;
|
||||
switch(nMonth)
|
||||
{
|
||||
case 1: sMonth = GetLocalString(oMod,"MONTH1"); break;
|
||||
case 2: sMonth = GetLocalString(oMod,"MONTH2"); break;
|
||||
case 3: sMonth = GetLocalString(oMod,"MONTH3"); break;
|
||||
case 4: sMonth = GetLocalString(oMod,"MONTH4"); break;
|
||||
case 5: sMonth = GetLocalString(oMod,"MONTH5"); break;
|
||||
case 6: sMonth = GetLocalString(oMod,"MONTH6"); break;
|
||||
case 7: sMonth = GetLocalString(oMod,"MONTH7"); break;
|
||||
case 8: sMonth = GetLocalString(oMod,"MONTH8"); break;
|
||||
case 9: sMonth = GetLocalString(oMod,"MONTH9"); break;
|
||||
case 10: sMonth = GetLocalString(oMod,"MONTH10"); break;
|
||||
case 11: sMonth = GetLocalString(oMod,"MONTH11"); break;
|
||||
case 12: sMonth = GetLocalString(oMod,"MONTH12"); break;
|
||||
}
|
||||
|
||||
NBDE_SetCampaignInt("PLAYERSTATS", "PC_YEAR_START", nBorn, oPC);
|
||||
NBDE_SetCampaignString("PLAYERSTATS", "PC_MONTH_START", sMonth, oPC);
|
||||
NBDE_SetCampaignInt("PLAYERSTATS", "PC_DAY_START", nDay, oPC);
|
||||
NBDE_SetCampaignInt("PLAYERSTATS", "PC_START_HOURS", nTotalHours, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
void SetPCFavoriteWeapon(object oPC)
|
||||
{
|
||||
string sWeapName = GetName(GetLastWeaponUsed(oPC));
|
||||
|
||||
if(GetIsPC(oPC) == TRUE)
|
||||
{
|
||||
int nTimesWeapUsed = GetLocalInt(oPC, "X_WEAPUSED");
|
||||
string sLWeapUsedName = GetLocalString(oPC, "L_WEAPNAME");
|
||||
|
||||
if(sLWeapUsedName != sWeapName)
|
||||
{
|
||||
SetLocalInt(oPC, "X_WEAPUSED",1 );
|
||||
SetLocalString(oPC, "L_WEAPNAME", sWeapName);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "X_WEAPUSED", nTimesWeapUsed + 1);
|
||||
if(nTimesWeapUsed >= 20)
|
||||
{
|
||||
NBDE_SetCampaignString("PLAYERSTATS", "FAVWEAPON", sLWeapUsedName, oPC);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetStrongestCreatureKilled(object oPC, object oCreature)
|
||||
{
|
||||
string sLastCreatureName = GetName(oCreature);
|
||||
int nCurrentCR = FloatToInt(GetChallengeRating(oCreature));
|
||||
|
||||
if (GetIsPC(oPC) == TRUE)
|
||||
{
|
||||
int nStrongestC = NBDE_GetCampaignInt("KILLS", "STRKILL", oPC);
|
||||
|
||||
if(nCurrentCR > nStrongestC)
|
||||
{
|
||||
NBDE_SetCampaignString("KILLS", "STRKILL", sLastCreatureName, oPC);
|
||||
NBDE_SetCampaignInt("KILLS", "STRKILL", nCurrentCR, oPC);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetAverageCR(object oPC, object oCreature)
|
||||
{
|
||||
int nPrevTotalCR = NBDE_GetCampaignInt("KILLS", "TOTALCR", oPC);
|
||||
int nCurrentCR = FloatToInt(GetChallengeRating(oCreature));
|
||||
int nNewTotalCR = nPrevTotalCR + nCurrentCR;
|
||||
|
||||
if (GetIsPC(oPC) == TRUE)
|
||||
{
|
||||
NBDE_SetCampaignInt("KILLS", "TOTALCR", nNewTotalCR, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
string GetAverageCRofPlayersKills(object oPC)
|
||||
{
|
||||
int nTotalCRs = NBDE_GetCampaignInt("KILLS", "TOTALCR", oPC);
|
||||
int nTotalK = NBDE_GetCampaignInt("KILLS", "NPC", oPC);
|
||||
string sValue = "";
|
||||
int nAveCR;
|
||||
if (nTotalCRs == 0 || nTotalK == 0)
|
||||
{
|
||||
sValue = "No Average Creature CR Yet";
|
||||
return sValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(nTotalK == 0) nTotalK = 1;//Divide by Zero Issue
|
||||
sValue = IntToString((nTotalCRs / nTotalK));
|
||||
return sValue;
|
||||
}
|
||||
}
|
||||
|
||||
string GetTotalDeaths(object oPC)
|
||||
{
|
||||
int nTotalDeaths = NBDE_GetCampaignInt("SOULRUNE", "TIMES_DIED", oPC);
|
||||
string sValue = "";
|
||||
if (nTotalDeaths == 0) sValue = "Never Died";
|
||||
else sValue = IntToString(nTotalDeaths);
|
||||
return sValue;
|
||||
}
|
||||
|
||||
string GetTotalLifes(object oPC)
|
||||
{
|
||||
int nTotalDeaths = NBDE_GetCampaignInt("SOULRUNE", "LIFES", oPC);
|
||||
string sValue = "";
|
||||
if (nTotalDeaths == 0) sValue = "No Lifes Left...Careful";
|
||||
else sValue = IntToString(nTotalDeaths);
|
||||
return sValue;
|
||||
}
|
||||
|
||||
string GetTotalNPCKills(object oPC)
|
||||
{
|
||||
int nTotalKills = NBDE_GetCampaignInt("KILLS", "NPC", oPC);
|
||||
string sValue = "";
|
||||
if(nTotalKills == 0) sValue = "No Creatures Killed Yet";
|
||||
else sValue = IntToString(nTotalKills);
|
||||
return sValue;
|
||||
}
|
||||
|
||||
string GetCreatureKiller(object oPC)
|
||||
{
|
||||
string sKiller = NBDE_GetCampaignString("KILLS", "PCKILLER", oPC);
|
||||
if (sKiller == "") sKiller = "Never Killed by a Creature";
|
||||
return sKiller;
|
||||
}
|
||||
|
||||
string GetTotalPCKills(object oPC)
|
||||
{
|
||||
int nTotalKills = NBDE_GetCampaignInt("KILLS", "PC", oPC);
|
||||
string sValue = "";
|
||||
if(nTotalKills == 0) sValue = "No Players Killed Yet";
|
||||
else sValue = IntToString(nTotalKills);
|
||||
return sValue;
|
||||
}
|
||||
|
||||
string GetPCKiller(object oPC)
|
||||
{
|
||||
string sKiller = NBDE_GetCampaignString("KILLS", "PVPNAME", oPC);
|
||||
if (sKiller == "") sKiller = "Never Killed by a Player";
|
||||
return sKiller;
|
||||
}
|
||||
|
||||
string GetStrongestCreatureName(object oPC)
|
||||
{
|
||||
string sStrC = NBDE_GetCampaignString("KILLS", "STRKILL", oPC);
|
||||
return sStrC;
|
||||
}
|
||||
|
||||
string GetHighestCR(object oPC)
|
||||
{
|
||||
int nStrCKilled = NBDE_GetCampaignInt("KILLS", "STRKILL", oPC);
|
||||
string sValue = IntToString(nStrCKilled);
|
||||
if (nStrCKilled == 0) sValue = "No Highest Creature CR Yet";
|
||||
return sValue;
|
||||
}
|
||||
|
||||
string GetFavoriteWeapon(object oPC)
|
||||
{
|
||||
string sFavWeap = NBDE_GetCampaignString("PLAYERSTATS","FAVWEAPON", oPC);
|
||||
if (sFavWeap == "") sFavWeap = "No Favorite Weapon Yet";
|
||||
return sFavWeap;
|
||||
}
|
||||
|
||||
string GetCharacterCreatedHours(object oPC)
|
||||
{
|
||||
int nStartHours = NBDE_GetCampaignInt("PLAYERSTATS", "PC_START_HOURS", oPC);
|
||||
int nYear = GetCalendarYear();
|
||||
int nMonth = GetCalendarMonth();
|
||||
int nDay = GetCalendarDay();
|
||||
int nHour = GetTimeHour();
|
||||
int nCurrentHours = (nYear*8760) + (nMonth*720) + (nDay*24) + nHour;
|
||||
int nNewHours = nCurrentHours - nStartHours;
|
||||
if (nNewHours <= 0) return "Less Than 1 Game Hour";
|
||||
if (nNewHours == 1) return "1 Game Hour";
|
||||
else return IntToString(nNewHours) + " Game Hours";
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//: ALIGNING FUNCTIONS
|
||||
|
||||
const string SKINNEUTRAL = "NeutralSkin";
|
||||
const string SKINGOOD = "GoodSkin";
|
||||
const string SKINEVIL = "EvilSkin";
|
||||
|
||||
void OAS_RemoveSkin(object oPC)
|
||||
{
|
||||
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
|
||||
if(GetIsObjectValid(oSkin) == TRUE) DestroyObject(oSkin);
|
||||
}
|
||||
|
||||
void OAS_GiveSkin(object oPC, string sSkin)
|
||||
{
|
||||
object oSkin = CreateItemOnObject(sSkin,oPC);
|
||||
if(oSkin != OBJECT_INVALID) ActionEquipItem(oSkin,INVENTORY_SLOT_CARMOUR);
|
||||
}
|
||||
|
||||
void OAS_UpdateSkin(object oPC,string sTag,string sResRef)
|
||||
{
|
||||
//Remove Skins from Inventory
|
||||
string sIResRef;
|
||||
object oISkin = GetFirstItemInInventory(oPC);
|
||||
while(GetIsObjectValid(oISkin) == TRUE)
|
||||
{
|
||||
sIResRef = GetResRef(oISkin);
|
||||
if(sIResRef == sResRef) DestroyObject(oISkin);
|
||||
oISkin = GetNextItemInInventory(oPC);
|
||||
}
|
||||
|
||||
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
|
||||
string sETag = GetTag(oSkin);
|
||||
|
||||
//Remove Skin That is Not Part of That Allegiance and Give New One
|
||||
if(sETag != sTag)
|
||||
{
|
||||
AssignCommand(oPC,ClearAllActions(TRUE));
|
||||
AssignCommand(oPC,ActionDoCommand(OAS_RemoveSkin(oPC)));
|
||||
AssignCommand(oPC,ActionDoCommand(OAS_GiveSkin(oPC,sResRef)));
|
||||
}
|
||||
}
|
||||
|
||||
void AlignEvil(object oPC)
|
||||
{
|
||||
//These are the Possible Allegiances for a Player
|
||||
object oPackAn = GetObjectByTag("FACTION_1000");
|
||||
object oHorse = GetObjectByTag("FACTION_1005");
|
||||
object oEvil = GetObjectByTag("FACTION_001");
|
||||
object oGood = GetObjectByTag("FACTION_002");
|
||||
object oNeutral = GetObjectByTag("FACTION_003");
|
||||
|
||||
//Adjust Reputations
|
||||
AdjustReputation(oPC,oGood,-100);
|
||||
AdjustReputation(oPC,oEvil,100);
|
||||
AdjustReputation(oPC,oNeutral,50);
|
||||
AdjustReputation(oPC,oPackAn,50);
|
||||
AdjustReputation(oPC,oHorse,50);
|
||||
|
||||
int nAllege = GetLocalInt(oPC,"FACTION");
|
||||
if(nAllege == 0)
|
||||
{
|
||||
//Subrace Skins Already Here
|
||||
//Now Check the Creature Skin and Save it
|
||||
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
|
||||
if(GetIsObjectValid(oSkin))
|
||||
{
|
||||
string sSkin = GetResRef(oSkin);
|
||||
NBDE_SetCampaignString("ALLEGIANCE","CREATURESKIN",sSkin,oPC);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sTag = SKINEVIL;
|
||||
string sResRef = GetStringLowerCase(sTag);
|
||||
|
||||
//Give the Player the Allegiance Skin
|
||||
OAS_UpdateSkin(oPC,sTag,sResRef);
|
||||
NBDE_SetCampaignString("ALLEGIANCE","CREATURESKIN",sResRef,oPC);
|
||||
}
|
||||
}
|
||||
|
||||
//Only Run Once on Entering the Module
|
||||
int nRR = GetLocalInt(oPC,"REPRESET_READY");
|
||||
if(nAllege == 1 && nRR == 0)
|
||||
{
|
||||
SetLocalInt(oPC,"REPRESET_READY",1);
|
||||
|
||||
string sTag = SKINEVIL;
|
||||
string sResRef = NBDE_GetCampaignString("ALLEGIANCE","CREATURESKIN",oPC);
|
||||
|
||||
//Give the Player a Fresh Skin
|
||||
OAS_UpdateSkin(oPC,sTag,sResRef);
|
||||
}
|
||||
}
|
||||
|
||||
void AlignGood(object oPC)
|
||||
{
|
||||
//These are the Possible Allegiances for a Player
|
||||
object oPackAn = GetObjectByTag("FACTION_1000");
|
||||
object oHorse = GetObjectByTag("FACTION_1005");
|
||||
object oEvil = GetObjectByTag("FACTION_001");
|
||||
object oGood = GetObjectByTag("FACTION_002");
|
||||
object oNeutral = GetObjectByTag("FACTION_003");
|
||||
|
||||
//Adjust Reputations
|
||||
AdjustReputation(oPC,oGood,100);
|
||||
AdjustReputation(oPC,oEvil,-100);
|
||||
AdjustReputation(oPC,oNeutral,50);
|
||||
AdjustReputation(oPC,oPackAn,50);
|
||||
AdjustReputation(oPC,oHorse,50);
|
||||
|
||||
int nAllege = GetLocalInt(oPC,"FACTION");
|
||||
if(nAllege == 0)
|
||||
{
|
||||
//Subrace Skins Already Here
|
||||
//Now Check the Creature Skin and Save it
|
||||
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
|
||||
if(GetIsObjectValid(oSkin))
|
||||
{
|
||||
string sSkin = GetResRef(oSkin);
|
||||
NBDE_SetCampaignString("ALLEGIANCE","CREATURESKIN",sSkin,oPC);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sTag = SKINGOOD;
|
||||
string sResRef = GetStringLowerCase(sTag);
|
||||
|
||||
//Give the Player the Allegiance Skin
|
||||
OAS_UpdateSkin(oPC,sTag,sResRef);
|
||||
NBDE_SetCampaignString("ALLEGIANCE","CREATURESKIN",sResRef,oPC);
|
||||
}
|
||||
}
|
||||
|
||||
//Only Run Once on Entering the Module
|
||||
int nRR = GetLocalInt(oPC,"REPRESET_READY");
|
||||
if(nAllege == 2 && nRR == 0)
|
||||
{
|
||||
SetLocalInt(oPC,"REPRESET_READY",1);
|
||||
|
||||
string sTag = SKINGOOD;
|
||||
string sResRef = NBDE_GetCampaignString("ALLEGIANCE","CREATURESKIN",oPC);
|
||||
|
||||
//Give the Player a Fresh Skin
|
||||
OAS_UpdateSkin(oPC,sTag,sResRef);
|
||||
}
|
||||
}
|
||||
|
||||
void AlignNeutral(object oPC)
|
||||
{
|
||||
//These are the Possible Allegiances for a Player
|
||||
object oPackAn = GetObjectByTag("FACTION_1000");
|
||||
object oHorse = GetObjectByTag("FACTION_1005");
|
||||
object oEvil = GetObjectByTag("FACTION_001");
|
||||
object oGood = GetObjectByTag("FACTION_002");
|
||||
object oNeutral = GetObjectByTag("FACTION_003");
|
||||
|
||||
//Adjust Reputations
|
||||
AdjustReputation(oPC,oGood,50);
|
||||
AdjustReputation(oPC,oEvil,50);
|
||||
AdjustReputation(oPC,oNeutral,50);
|
||||
AdjustReputation(oPC,oPackAn,50);
|
||||
AdjustReputation(oPC,oHorse,50);
|
||||
|
||||
int nAllege = GetLocalInt(oPC,"FACTION");
|
||||
if(nAllege == 0)
|
||||
{
|
||||
//Subrace Skins Already Here
|
||||
//Now Check the Creature Skin and Save it
|
||||
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
|
||||
if(GetIsObjectValid(oSkin))
|
||||
{
|
||||
string sSkin = GetResRef(oSkin);
|
||||
NBDE_SetCampaignString("ALLEGIANCE","CREATURESKIN",sSkin,oPC);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sTag = SKINNEUTRAL;
|
||||
string sResRef = GetStringLowerCase(sTag);
|
||||
|
||||
//Give the Player the Allegiance Skin
|
||||
OAS_UpdateSkin(oPC,sTag,sResRef);
|
||||
NBDE_SetCampaignString("ALLEGIANCE","CREATURESKIN",sResRef,oPC);
|
||||
}
|
||||
}
|
||||
|
||||
//Only Run Once on Entering the Module
|
||||
int nRR = GetLocalInt(oPC,"REPRESET_READY");
|
||||
if(nAllege == 3 && nRR == 0)
|
||||
{
|
||||
SetLocalInt(oPC,"REPRESET_READY",1);
|
||||
|
||||
string sTag = SKINNEUTRAL;
|
||||
string sResRef = NBDE_GetCampaignString("ALLEGIANCE","CREATURESKIN",oPC);
|
||||
|
||||
//Give the Player a Fresh Skin
|
||||
OAS_UpdateSkin(oPC,sTag,sResRef);
|
||||
}
|
||||
}
|
||||
|
||||
//This Resets Reputations With Specified Factions (OAI Faction Reps)
|
||||
void ResetReputations(object oPC)
|
||||
{
|
||||
int nAllege = GetLocalInt(oPC,"FACTION");
|
||||
switch(nAllege)
|
||||
{
|
||||
case 0: break;
|
||||
case 1: AlignEvil(oPC); break;
|
||||
case 2: AlignGood(oPC); break;
|
||||
case 3: AlignNeutral(oPC); break;
|
||||
}
|
||||
|
||||
//Miscaneous Factions
|
||||
object oPackAn = GetObjectByTag("FACTION_1000");
|
||||
object oCommoner = GetObjectByTag("FACTION_1001");
|
||||
object oMerchant = GetObjectByTag("FACTION_1002");
|
||||
object oDefender = GetObjectByTag("FACTION_1003");
|
||||
object oHostile = GetObjectByTag("FACTION_1004");
|
||||
object oHorse = GetObjectByTag("FACTION_1005");
|
||||
|
||||
//Commoner and Merchant Special Reset
|
||||
SetStandardFactionReputation(STANDARD_FACTION_COMMONER,50,oPC);
|
||||
SetStandardFactionReputation(STANDARD_FACTION_MERCHANT,50,oPC);
|
||||
|
||||
//Hostile Reset
|
||||
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE,0,oPC);
|
||||
|
||||
//Adjust Special Reputations
|
||||
AdjustReputation(oPC,oPackAn,50);
|
||||
AdjustReputation(oPC,oHorse,50);
|
||||
}
|
||||
|
||||
//void main(){}
|
||||
Reference in New Issue
Block a user