EN4_PRC8/_module/nss/p_enter.nss
Jaysyn904 b464d8da05 Initial Commit
Initial Commit [v1.32PRC8]
2025-04-03 13:38:45 -04:00

333 lines
12 KiB
Plaintext

#include "prc_inc_racial"
#include "en2_rankings"
//#include "en3_prcclsconst"
#include "prc_inc_racial"
#include "utl_i_sqluuid"
string GetClass(object oPC);
string GetClassByPos(object oPC, int iPos);
string GetRace(object oPC);
int GetRank(int iScore);
void GetKiller();
void main()
{
int iLevel;
int iXP;
int iGold;
int iQuest;
int iScore;
int iIndex;
int iPrisoners;
string sClass;
string sRace;
string sMsg;
string sName;
string sKiller;
int iRank;
string sRank;
string sNameX;
string sClassX;
string sRaceX;
string sLevelX;
string sScoreX;
string sRankX;
string sRankY;
string sKillerX;
string sKillerY;
string sCampaign;
object oPC;
oPC = GetEnteringObject();
if (GetIsPC(oPC))
{
sCampaign = "Endless Nights IV";
if (GetCampaignInt(sCampaign,"MP") == 1)
sCampaign = "MP_Endless Nights IV";
//AssignCommand(oPC,GetKiller());
iLevel = GetLevelByPosition(1,oPC) +
GetLevelByPosition(2,oPC) +
GetLevelByPosition(3,oPC);
iXP = GetXP(oPC);
iGold = GetGold(oPC);
iPrisoners = GetLocalInt(oPC,"Prisoners");
iScore = iXP;
iScore = iScore + (iPrisoners * 2500);
sClass = GetClass(oPC);
//string sClassName = GetStringByStrRef(StringToInt(Get2DAString("classes", "Name", nClass)));
sRace = GetRace(oPC);
if (sRace == "")
sRace = GetStringByStrRef(StringToInt(Get2DAString("racialtypes", "Name", GetRacialType(oPC))));
sName = GetName(oPC);
iRank = GetRank(iScore);
sRank = IntToString(iRank);
sKiller = GetLocalString(oPC,"Killer");
if (sKiller == "")
sKiller = "Unknown";
//SendMessageToPC(oPC,"Score = " + IntToString(iScore));
iQuest = SQLocalsUUID_GetInt(oPC,"OverallQuest");
if (iQuest == 999)
{
iScore = iScore + 100000;
sName = sName + " (V)";
} else {
iQuest = iQuest - 100;
if (iQuest > 0)
iScore = iScore + 1000 * iQuest;
}
if (GetLocalInt(oPC,"PCHardcore") == 1)
{
sName = sName + " (H)";
iScore = iScore * 2;
}
if (GetLocalInt(oPC,"PCHardCorePNP") == 1)
{
sName = sName + " (PnP)";
}
if (GetLocalInt(oPC,"PCHardCoreSpecial") == 1)
{
sName = sName + " (S)";
}
//SendMessageToPC(oPC,"Score = " + IntToString(iScore));
if (iRank>0)
{
iIndex = 19;
while (iIndex>=iRank)
{
sRankX = IntToString(iIndex);
sRankY = IntToString(iIndex+1);
sNameX = GetCampaignString(sCampaign,"Name" + sRankX);
sClassX = GetCampaignString(sCampaign,"Class" + sRankX);
sRaceX = GetCampaignString(sCampaign,"Race" + sRankX);
sLevelX = GetCampaignString(sCampaign,"Level" + sRankX);
sScoreX = GetCampaignString(sCampaign,"Score" + sRankX);
sKillerX= GetCampaignString(sCampaign,"Killer" + sRankX);
SetCampaignString(sCampaign,"Name" + sRankY,sNameX);
SetCampaignString(sCampaign,"Class" + sRankY,sClassX);
SetCampaignString(sCampaign,"Race" + sRankY,sRaceX);
SetCampaignString(sCampaign,"Level" + sRankY,sLevelX);
SetCampaignString(sCampaign,"Score" + sRankY,sScoreX);
SetCampaignString(sCampaign,"Killer" + sRankY,sKillerX);
iIndex--;
}
SetCampaignString(sCampaign,"Name" + sRank,sName);
SetCampaignString(sCampaign,"Class" + sRank,sClass);
SetCampaignString(sCampaign,"Race" + sRank,sRace);
SetCampaignString(sCampaign,"Level" + sRank,IntToString(iLevel));
SetCampaignString(sCampaign,"Score" + sRank,IntToString(iScore));
SetCampaignString(sCampaign,"Killer" + sRank,sKiller);
}
}
DisplayRankings(oPC);
if (iRank>0)
SendMessageToPC(oPC,"Congragulations on achieving rank " + sRank);
}
int GetRank(int iScore)
{
int iIndex;
int iRankScore;
string sRank;
string sCampaign;
int iPlace;
iIndex = 20;
iPlace = 0;
sCampaign = "Endless Nights IV";
if (GetCampaignInt(sCampaign,"MP") == 1)
sCampaign = "MP_Endless Nights IV";
while (iIndex > 0)
{
sRank = IntToString(iIndex);
iRankScore= StringToInt(GetCampaignString(sCampaign,"Score" + sRank));
if (iScore>=iRankScore)
iPlace = iIndex;
iIndex--;
}
return iPlace;
}
string GetClass(object oPC)
{
string sClass;
sClass = GetClassByPos(oPC,1);
if (GetLevelByPosition(2,oPC) > 0)
sClass = sClass + "/" + GetClassByPos(oPC,2);
if (GetLevelByPosition(3,oPC) > 0)
sClass = sClass + "/" + GetClassByPos(oPC,3);
return sClass;
}
string GetClassByPos(object oPC, int iPos)
{
string sClass;
sClass = "Other";
switch (GetClassByPosition(iPos,oPC))
{
case CLASS_TYPE_BARBARIAN: sClass = "Barbarian"; break;
case CLASS_TYPE_FIGHTER: sClass = "Fighter"; break;
case CLASS_TYPE_RANGER: sClass = "Ranger"; break;
case CLASS_TYPE_PALADIN: sClass = "Paladin"; break;
case CLASS_TYPE_ROGUE: sClass = "Rogue"; break;
case CLASS_TYPE_BARD: sClass = "Bard"; break;
case CLASS_TYPE_MONK: sClass = "Monk"; break;
case CLASS_TYPE_CLERIC: sClass = "Cleric"; break;
case CLASS_TYPE_DRUID: sClass = "Druid"; break;
case CLASS_TYPE_WIZARD: sClass = "Wizard"; break;
case CLASS_TYPE_SORCERER: sClass = "Sorcerer"; break;
case CLASS_TYPE_DRAGONDISCIPLE: sClass = "Dragon Disciple"; break;
case CLASS_TYPE_DWARVENDEFENDER: sClass = "Dwarven Defender"; break;
case CLASS_TYPE_PALEMASTER: sClass = "Pale Master"; break;
case CLASS_TYPE_SHIFTER: sClass = "Shifter"; break;
case CLASS_TYPE_WEAPON_MASTER: sClass = "Weaponmaster"; break;
case CLASS_TYPE_DIVINECHAMPION: sClass = "Champion of Torm"; break;
case CLASS_TYPE_BLACKGUARD: sClass = "Blackguard"; break;
case CLASS_TYPE_ARCANE_ARCHER: sClass = "Arcane Archer"; break;
case CLASS_TYPE_ASSASSIN: sClass = "Assassin"; break;
case CLASS_TYPE_HARPER: sClass = "Harper"; break;
case CLASS_TYPE_SHADOWDANCER: sClass = "Shadowdancer"; break;
//case CLASS_TYPE_ABJURER: sClass = "Abjurer"; break;
//case CLASS_TYPE_ARCANE_ASSASSIN: sClass = "Arcane Assassin"; break;
//case CLASS_TYPE_ARCANE_SWORDSMAN: sClass = "Arcane Swordsman"; break;
//case CLASS_TYPE_ARCANE_THEOLOGIST: sClass = "Arcane Theologist"; break;
//case CLASS_TYPE_ARCHER: sClass = "Archer"; break;
case CLASS_TYPE_ARCHMAGE: sClass = "Archmage"; break;
case CLASS_TYPE_ARCTRICK: sClass = "Arcane Trickster"; break;
//case CLASS_TYPE_ASTRAL_ADEPT: sClass = "Astral Adept"; break;
//case CLASS_TYPE_AURAMANCER: sClass = "Auramancer"; break;
//case CLASS_TYPE_BATTLEMAGE: sClass = "Battlemage"; break;
case CLASS_TYPE_BATTLERAGER: sClass = "Battlerager"; break;
case CLASS_TYPE_BLADESINGER: sClass = "Bladesinger"; break;
case CLASS_TYPE_BLARCHER: sClass = "Blarcher"; break;
case CLASS_TYPE_BONDED_SUMMONNER: sClass = "Bonded Summoner"; break;
//case CLASS_TYPE_BRUTAL_SAVAGE: sClass = "Brutal Savage"; break;
//case CLASS_TYPE_CRYSTAL_MASTER: sClass = "Crystal Master"; break;
//case CLASS_TYPE_DEMON_MASTER: sClass = "Demon Master"; break;
case CLASS_TYPE_DISC_BAALZEBUL: sClass = "Disciple of Baalzebul"; break;
//case CLASS_TYPE_DISCIPLE_OF_DARKNESS: sClass = "Disciple of Darkness"; break;
case CLASS_TYPE_DISCIPLE_OF_MEPH: sClass = "Disciple of Mephistopheles"; break;
case CLASS_TYPE_DISPATER: sClass = "Disciple of Dispater"; break;
//case CLASS_TYPE_DIVESA: sClass = "Divine Summoner Acid"; break;
//case CLASS_TYPE_DIVESC: sClass = "Divine Summoner Cold"; break;
//case CLASS_TYPE_DIVESE: sClass = "Divine Summoner Electricity"; break;
//case CLASS_TYPE_DIVESF: sClass = "Divine Summoner Fire"; break;
//case CLASS_TYPE_ES_ACID: sClass = "Elemental Summoner Acid"; break;
//case CLASS_TYPE_ES_COLD: sClass = "Elemental Summoner Cold"; break;
//case CLASS_TYPE_ES_ELEC: sClass = "Elemental Summoner Electricity"; break;
//case CLASS_TYPE_ES_FIRE: sClass = "Elemental Summoner Fire"; break;
//case CLASS_TYPE_DRAGON_SLAYER: sClass = "Dragonslayer"; break;
case CLASS_TYPE_DRUNKEN_MASTER: sClass = "Drunken Master"; break;
case CLASS_TYPE_DUELIST: sClass = "Duelist"; break;
case CLASS_TYPE_ELDRITCH_KNIGHT: sClass = "Eldritch Knight"; break;
case CLASS_TYPE_FISTRAZIEL: sClass = "Fist of Raziel"; break;
case CLASS_TYPE_FOE_HUNTER: sClass = "Foe Hunter"; break;
case CLASS_TYPE_FRE_BERSERKER: sClass = "Frenzied Berserker"; break;
//case CLASS_TYPE_GEOMANCER: sClass = "Geomancer"; break;
//case CLASS_TYPE_GREY_WANDERER: sClass = "Grey Wanderer"; break;
case CLASS_TYPE_HARPERMAGE: sClass = "Harper Mage"; break;
case CLASS_TYPE_HATHRAN: sClass = "Hathran"; break;
case CLASS_TYPE_HEALER: sClass = "Healer"; break;
case CLASS_TYPE_HEARTWARDER: sClass = "Heartwarder"; break;
case CLASS_TYPE_HENSHIN_MYSTIC: sClass = "Henshin Mystic"; break;
case CLASS_TYPE_HEXTOR: sClass = "Hextor"; break;
case CLASS_TYPE_HIEROPHANT: sClass = "Hierophant"; break;
//case CLASS_TYPE_HOLY_CRUSADER: sClass = "Holy Crusader"; break;
case CLASS_TYPE_HOSPITALER: sClass = "Hospitaler"; break;
case CLASS_TYPE_IAIJUTSU_MASTER: sClass = "Iaijutsu Master"; break;
case CLASS_TYPE_KNIGHT_CHALICE: sClass = "Knight of the Chalice"; break;
case CLASS_TYPE_LEGENDARY_DREADNOUGHT: sClass = "Legendary Dreadnought"; break;
case CLASS_TYPE_LICH: sClass = "Lich"; break;
case CLASS_TYPE_MAGEKILLER: sClass = "Magekiller"; break;
//case CLASS_TYPE_MANATARMS: sClass = "Man at Arms"; break;
case CLASS_TYPE_MASTER_HARPER: sClass = "Master Harper"; break;
case CLASS_TYPE_MASTER_OF_SHROUDS: sClass = "Master of Shrouds"; break;
case CLASS_TYPE_MYSTIC_THEURGE: sClass = "Mystic Theurge"; break;
//case CLASS_TYPE_MYSTICAL_KNIGHT: sClass = "Mystical Knight"; break;
//case CLASS_TYPE_NATURALIST: sClass = "Naturalist"; break;
case CLASS_TYPE_NINJA_SPY: sClass = "Ninja Spy"; break;
case CLASS_TYPE_OCULAR: sClass = "Ocular Adept"; break;
case CLASS_TYPE_OOZEMASTER: sClass = "Oozemaster"; break;
case CLASS_TYPE_ORCUS: sClass = "Disciple of Orcus"; break;
case CLASS_TYPE_PEERLESS: sClass = "Peerless Archer"; break;
case CLASS_TYPE_PNP_SHIFTER: sClass = "Shifter (PnP)"; break;
//case CLASS_TYPE_PROPHET: sClass = "Prophet"; break;
//case CLASS_TYPE_PROTECTOR: sClass = "Protector"; break;
//case CLASS_TYPE_PUPPET_MASTER: sClass = "Puppet Master"; break;
case CLASS_TYPE_RED_AVENGER: sClass = "Red Avenger"; break;
case CLASS_TYPE_SAMURAI: sClass = "Samurai"; break;
case CLASS_TYPE_SCOUT: sClass = "Scout"; break;
case CLASS_TYPE_SHADOWLORD: sClass = "Shadowlord"; break;
case CLASS_TYPE_SHAMAN: sClass = "Shaman"; break;
case CLASS_TYPE_SOLDIER_OF_LIGHT: sClass = "Soldier of Light"; break;
case CLASS_TYPE_SPELLSWORD: sClass = "Spellsword"; break;
case CLASS_TYPE_STORMLORD: sClass = "Stormlord"; break;
//case CLASS_TYPE_SUMMONER: sClass = "Summoner"; break;
case CLASS_TYPE_SWASHBUCKLER: sClass = "Swashbuckler"; break;
case CLASS_TYPE_TEMPEST: sClass = "Tempest"; break;
case CLASS_TYPE_TRUENECRO: sClass = "True Necromancer"; break;
//case CLASS_TYPE_VAMPIRE: sClass = "Vampire"; break;
case CLASS_TYPE_VASSAL: sClass = "Vassal of Bahamut"; break;
//case CLASS_TYPE_VIGILANT: sClass = "Vigilant"; break;
//case CLASS_TYPE_WARLORD: sClass = "Warlord"; break;
case CLASS_TYPE_WARPRIEST: sClass = "Warpriest"; break;
//case CLASS_TYPE_WITCH_DOCTOR: sClass = "Witch doctor"; break;
//case CLASS_TYPE_XENOWIZARD: sClass = "Xenowizard"; break;
}
return sClass;
}
string GetRace(object oPC)
{
string sRace;
sRace = GetSubRace(oPC);
if (sRace == "")
{
switch (MyPRCGetRacialType(oPC))
{
case RACIAL_TYPE_HUMAN: sRace = "Human"; break;
case RACIAL_TYPE_ELF: sRace = "Elf"; break;
case RACIAL_TYPE_DWARF: sRace = "Dwarf"; break;
case RACIAL_TYPE_HALFELF: sRace = "Half-Elf"; break;
case RACIAL_TYPE_HALFORC: sRace = "Half-Orc"; break;
case RACIAL_TYPE_HALFLING: sRace = "Halfling"; break;
case RACIAL_TYPE_GNOME: sRace = "Gnome"; break;
}
}
return sRace;
}
void GetKiller()
{
SetLocalString(OBJECT_SELF,"Killer",GetName(GetLastKiller()));
}