#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())); }