void C2S_WORLD_PRE_LOGIN_ACK(NetworkPacket packet) { /*var status = */ packet.ReadInt32(); if (ActiveClientMap == MapIDs.CHARACTER_SELECTION) { var charDB = ServiceContainer.GetService <IDatabase>().Characters; var chars = charDB.GetCharacters(Account.UID); var outMsg = GameHeader.S2C_CS_LOGIN.CreatePacket(); outMsg.WriteInt32(chars.Count); for (var i = 0; i < chars.Count; i++) { outMsg.Write(chars[i].Character); outMsg.Write(chars[i].Sheet); var items = charDB.GetItems(chars[i].Character.Id); outMsg.Write(items); } outMsg.WriteInt32(chars.Count); for (int i = 0; i < chars.Count; i++) { outMsg.WriteInt32(chars[i].Character.Id); outMsg.WriteInt32(SBDBSync.GetFameLevelByPoints((int)chars[i].Sheet.FamePoints)); } Connection.SendMessage(outMsg); } else { if (ActiveController == null) { Connection.Disconnect();//character must exist return; } S2C_WORLD_LOGIN(); } }
public override void Initialize(Actor outer) { base.Initialize(outer); var fameLevel = (outer as Game_PlayerPawn).CharacterStats.GetFameLevel(); mTiers = SBDBSync.GetCombatBarRows(fameLevel); mTierSlots = /*SBDBSync.GetCombatBarColumns(fameLevel)*/ 5; Debug.Log("Tiers: " + mTiers + ", slots: " + mTierSlots + " TODO find out how those are calculated"); //if islocalplayer ignored LoadTokens(); var controller = ((Outer as Game_Pawn).Controller as Game_PlayerController); var index = GetSkilldeckIndex(controller.DBCharacterSheet.SelectedSkilldeckID); cl_SetSkills(controller.DBCharacterSkills, controller.DBSkilldecks[index].mSkills); }
void ShiftToNPCTypeID(int aNPCTypeID) { NPC_Type NPCType; TestInvariant(); if (aNPCTypeID != 0) { NPCType = SBDBSync.GetResourceObject <NPC_Type>(aNPCTypeID); ShiftAppearance(NPCType); } else { UnshiftAppearance(); } TestInvariant(); }
void cl_UpdateSkilldeckSkills(List <int> aSkilldeckSkills) { SkilldeckSkills = new FSkill_Type[mTiers * mTierSlots]; for (var i = 0; i < aSkilldeckSkills.Count; i++) { if (aSkilldeckSkills[i] != 0) { SkilldeckSkills[i] = SBDBSync.GetResourceObject <FSkill_Type>(aSkilldeckSkills[i]); } else { SkilldeckSkills[i] = null; } } //OnSkilldeckChanged(); }
void cl_SetSkills(List <int> aCharacterSkills, List <int> aSkilldeckSkills) { var i = 0; while (i < aCharacterSkills.Count) { var skillResource = SBDBSync.GetResourceObject <FSkill_Type>(aCharacterSkills[i]); if (skillResource == null) { throw new Exception("Skill not found: " + aCharacterSkills[i]); } CharacterSkills.Add(skillResource); ++i; } cl_UpdateSkilldeckSkills(aSkilldeckSkills); //OnCharacterSkillsChanged(); }
public override void Initialize(Actor outer) { base.Initialize(outer); var pawn = outer as Game_Pawn; var controller = pawn.Controller as Game_Controller; SetCharacterClass((Content_API.EContentClass)(controller.DBCharacterSheet.ClassId + 1)); mFamePoints = (int)controller.DBCharacterSheet.FamePoints; mPePPoints = (int)controller.DBCharacterSheet.PepPoints; mHealth = controller.DBCharacterSheet.Health; mRecord.CopyHealth = mHealth; mRecord.FameLevel = SBDBSync.GetFameLevelByPoints(mFamePoints); mRecord.PePRank = SBDBSync.GetPepRankByPoints(mPePPoints); mExtraBodyPoints = controller.DBCharacterSheet.ExtraBodyPoints; mExtraMindPoints = controller.DBCharacterSheet.ExtraMindPoints; mExtraFocusPoints = controller.DBCharacterSheet.ExtraFocusPoints; }