public Recruit(Client owner) { this.owner = owner; recruitData = new RecruitData(); HeldItemSlot = -1; Mobility = new bool[16]; Darkness = -2; TimeMultiplier = 1000; ActiveItems = new List<int>(); VolatileStatus = new ExtraStatusCollection(); }
public void CreateCharacter(DatabaseConnection dbConnection, string name, Enums.Sex sex, int slot, bool silent) { PlayerData characterData = new PlayerData(PlayerID.GeneratePlayerID()); characterData.Name = name; characterData.Map = MapManager.GenerateMapID(Settings.StartMap); characterData.X = Settings.StartX; characterData.Y = Settings.StartY; characterData.MaxInv = 20; characterData.MaxBank = 100; RecruitData leaderData = new RecruitData(); leaderData.Name = name; leaderData.Sex = (byte)sex; leaderData.Species = 0; leaderData.Form = 1; leaderData.Level = 1; leaderData.HP = -1; Scripting.ScriptManager.InvokeSub("CharacterCreated", accountName, slot, characterData, leaderData); PlayerDataManager.CreateNewCharacter(dbConnection.Database, accountName, slot, characterData); //PlayerDataManager.SavePlayerAvailableExpKitModules(client.Database, playerData); //PlayerDataManager.SavePlayerCharacteristics(client.Database, playerData); //PlayerDataManager.SavePlayerGuild(client.Database, playerData); //PlayerDataManager.SavePlayerItemGenerals(client.Database, playerData); //PlayerDataManager.SavePlayerJobList(client.Database, playerData); //PlayerDataManager.SavePlayerLocation(client.Database, playerData); //PlayerDataManager.SavePlayerMissionBoardGenerals(client.Database, playerData); //PlayerDataManager.SavePlayerMissionBoardMissions(client.Database, playerData); //PlayerDataManager.SavePlayerMissionGenerals(client.Database, playerData); //PlayerDataManager.SavePlayerStoryGenerals(client.Database, playerData); //PlayerDataManager.SavePlayerStoryHelperStateSettings(client.Database, playerData); //// Save inventory //ListPair<int, PlayerDataInventoryItem> updatedInventory = new ListPair<int, PlayerDataInventoryItem>(); //for (int i = 1; i <= Inventory.Count; i++) { // if (Inventory[i].Updated) { // updatedInventory.Add(i, Inventory[i].BaseInventoryItem); // Inventory[i].Updated = false; // } //} //PlayerDataManager.SavePlayerInventoryUpdates(client.Database, CharID, updatedInventory); //// Save bank //ListPair<int, PlayerDataInventoryItem> updatedBank = new ListPair<int, PlayerDataInventoryItem>(); //for (int i = 1; i <= Bank.Count; i++) { // if (Bank[i].Updated) { // updatedBank.Add(i, Bank[i].BaseInventoryItem); // Bank[i].Updated = false; // } //} //PlayerDataManager.SavePlayerBankUpdates(client.Database, CharID, updatedBank); //// Save trigger events //playerData.TriggerEvents.Clear(); //for (int i = 0; i < triggerEvents.Count; i++) { // PlayerDataTriggerEvent triggerEvent = new PlayerDataTriggerEvent(); // triggerEvents[i].Save(triggerEvent); // playerData.TriggerEvents.Add(triggerEvent); //} //PlayerDataManager.SavePlayerTriggerEvents(client.Database, playerData); //// Save team //for (int i = 0; i < team.Length; i++) { // playerData.TeamMembers[i].RecruitIndex = team[i].RecruitIndex; // playerData.TeamMembers[i].UsingTempStats = team[i].InTempMode; // if (team[i].Loaded) { // team[i].Save(); // } //} //PlayerDataManager.SavePlayerTeam(client.Database, playerData); PlayerDataManager.SavePlayerRecruit(dbConnection.Database, characterData.CharID, 0, leaderData); if (silent == false) { Messenger.SendChars(dbConnection, client); Messenger.PlainMsg(client, "Character has been created!", Enums.PlainMsgType.Chars); } }
private void CopyDataToRecruitData() { if (recruitData == null) { recruitData = new RecruitData(); } // General recruitData.UsingTempStats = this.InTempMode; recruitData.Name = this.Name; recruitData.Nickname = this.Nickname; recruitData.NpcBase = this.NpcBase; recruitData.Species = this.Species; recruitData.Sex = (byte)this.Sex; recruitData.Form = this.Form; recruitData.Shiny = (int)this.Shiny; recruitData.Level = this.Level; recruitData.Exp = this.Exp; recruitData.HP = this.HP; recruitData.StatusAilment = (int)this.StatusAilment; recruitData.StatusAilmentCounter = this.StatusAilmentCounter; recruitData.IQ = this.IQ; recruitData.Belly = this.Belly; recruitData.MaxBelly = this.MaxBelly; recruitData.AtkBonus = this.AtkBonus; recruitData.DefBonus = this.DefBonus; recruitData.SpeedBonus = this.SpeedBuff; recruitData.SpclAtkBonus = this.SpclAtkBonus; recruitData.SpclDefBonus = this.SpclDefBonus; // Moves for (int i = 0; i < this.Moves.Length; i++) { RecruitMove move = this.Moves[i]; recruitData.Moves[i].MoveNum = move.MoveNum; recruitData.Moves[i].CurrentPP = move.CurrentPP; recruitData.Moves[i].MaxPP = move.MaxPP; //recruitData.Moves[i].Sealed = move.Sealed; } // Volatile status recruitData.VolatileStatus.Clear(); for (int i = 0; i < this.VolatileStatus.Count; i++) { Characters.VolatileStatus recruitDataVolatileStatus = new Characters.VolatileStatus(); recruitDataVolatileStatus.Name = this.VolatileStatus[i].Name; recruitDataVolatileStatus.Emoticon = this.VolatileStatus[i].Emoticon; recruitDataVolatileStatus.Counter = this.VolatileStatus[i].Counter; recruitData.VolatileStatus.Add(recruitDataVolatileStatus); } }
public void LoadFromRecruitData(RecruitData recruitData, int recruitIndex) { this.recruitData = recruitData; base.RecruitIndex = recruitIndex; CopyDataFromRecruitData(); if (Level <= -1) { return; } // Do checks if (base.HP < 0) base.HP = 1; if (IQ < 0) IQ = 0; if (MaxBelly <= 0) { MaxBelly = 100; Belly = MaxBelly; } if (Belly < 0 || Belly > MaxBelly) { Belly = MaxBelly; } //if (SpeciesOverride > 0 && SpeciesOverride <= Constants.TOTAL_POKEMON) { // Species = SpeciesOverride; //} else { //Pokedex.Pokemon pokemon = Pokedex.Pokedex.FindBySprite(Sprite); //if (pokemon != null) { // Species = pokemon.ID; //} else { // Species = 0; //} //} if (Species < 0 || Species > Constants.TOTAL_POKEMON) { Species = 0; } CalculateOriginalSprite(); CalculateOriginalStats(); CalculateOriginalType(); CalculateOriginalAbility(); //CalculateOriginalMobility(); // Do some more checks if (base.HP > MaxHP) { base.HP = MaxHP; } Loaded = true; if (Loaded) { // Verify move PP for (int i = 0; i < Moves.Length; i++) { if (Moves[i].MoveNum > 0) { if (Moves[i].MaxPP == -1 || Moves[i].MaxPP != MoveManager.Moves[Moves[i].MoveNum].MaxPP) { Moves[i].MaxPP = MoveManager.Moves[Moves[i].MoveNum].MaxPP; } if (Moves[i].CurrentPP == -1 || Moves[i].CurrentPP > Moves[i].MaxPP) { Moves[i].CurrentPP = Moves[i].MaxPP; } } } // Add Active Items LoadActiveItemList(); } }
public static void CharacterCreated(string accountName, int slot, PlayerData characterData, RecruitData leaderData) { try { leaderData.Level = 5; } catch (Exception ex) { Messenger.AdminMsg("Error: CharacterCreated", Text.Black); } }
public static RecruitData LoadPlayerRecruit(MySql database, string charID, int recruitIndex, bool usingTempStats) { RecruitData recruitData = new RecruitData(); // Load general string query = "SELECT recruit_data.Name, recruit_data.Nickname, " + "recruit_data.NpcBase, recruit_data.Species, recruit_data.Sex, recruit_data.Shiny, recruit_data.Form, recruit_data.HeldItemSlot, " + "recruit_data.Level, recruit_data.Experience, recruit_data.HP, " + "recruit_data.StatusAilment, recruit_data.StatusAilmentCounter, " + "recruit_data.IQ, recruit_data.Belly, recruit_data.MaxBelly, recruit_data.AttackBonus, " + "recruit_data.DefenseBonus, recruit_data.SpeedBonus, recruit_data.SpecialAttackBonus, " + "recruit_data.SpecialDefenseBonus " + "FROM recruit_data " + "WHERE recruit_data.CharID = \'" + database.VerifyValueString(charID) + "\' " + "AND recruit_data.RecruitIndex = \'" + recruitIndex + "\' " + "AND recruit_data.UsingTempStats = \'" + usingTempStats.ToIntString() + "\';"; DataColumnCollection row = database.RetrieveRow(query); if (row != null) { recruitData.UsingTempStats = usingTempStats; recruitData.Name = row["Name"].ValueString; recruitData.Nickname = row["Nickname"].ValueString.ToBool(); recruitData.NpcBase = row["NpcBase"].ValueString.ToInt(); recruitData.Species = row["Species"].ValueString.ToInt(); recruitData.Sex = row["Sex"].ValueString.ToByte(); recruitData.Shiny = row["Shiny"].ValueString.ToInt(); recruitData.Form = row["Form"].ValueString.ToInt(); recruitData.HeldItemSlot = row["HeldItemSlot"].ValueString.ToInt(-1); recruitData.Level = row["Level"].ValueString.ToInt(); recruitData.Exp = row["Experience"].ValueString.ToUlng(); recruitData.HP = row["HP"].ValueString.ToInt(); recruitData.StatusAilment = row["StatusAilment"].ValueString.ToInt(); recruitData.StatusAilmentCounter = row["StatusAilmentCounter"].ValueString.ToInt(); recruitData.IQ = row["IQ"].ValueString.ToInt(); recruitData.Belly = row["Belly"].ValueString.ToInt(); recruitData.MaxBelly = row["MaxBelly"].ValueString.ToInt(); recruitData.AtkBonus = row["AttackBonus"].ValueString.ToInt(); recruitData.DefBonus = row["DefenseBonus"].ValueString.ToInt(); recruitData.SpeedBonus = row["SpeedBonus"].ValueString.ToInt(); recruitData.SpclAtkBonus = row["SpecialAttackBonus"].ValueString.ToInt(); recruitData.SpclDefBonus = row["SpecialDefenseBonus"].ValueString.ToInt(); } else { return null; } // Load moves query = "SELECT recruit_moves.MoveSlot, recruit_moves.MoveNum, " + "recruit_moves.CurrentPP, recruit_moves.MaxPP " + "FROM recruit_moves " + "WHERE recruit_moves.CharID = \'" + charID + "\' " + "AND recruit_moves.RecruitIndex = \'" + recruitIndex + "\' " + "AND recruit_moves.UsingTempStats = \'" + usingTempStats.ToIntString() + "\' " + "ORDER BY recruit_moves.MoveSlot"; foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) { int slot = columnCollection["MoveSlot"].ValueString.ToInt(); recruitData.Moves[slot] = new Characters.Move(); recruitData.Moves[slot].MoveNum = columnCollection["MoveNum"].ValueString.ToInt(); recruitData.Moves[slot].CurrentPP = columnCollection["CurrentPP"].ValueString.ToInt(); recruitData.Moves[slot].MaxPP = columnCollection["MaxPP"].ValueString.ToInt(); //recruitData.Moves[slot].Sealed = columnCollection["Sealed"].ValueString.ToBool(); } // Load volatile statuses query = "SELECT recruit_volatile_status.Name, recruit_volatile_status.Emoticon, " + "recruit_volatile_status.Counter, recruit_volatile_status.Tag " + "FROM recruit_volatile_status " + "WHERE recruit_volatile_status.CharID = \'" + charID + "\' " + "AND recruit_volatile_status.RecruitIndex = \'" + recruitIndex + "\' " + "AND recruit_volatile_status.UsingTempStats = \'" + usingTempStats.ToIntString() + "\' " + "ORDER BY recruit_volatile_status.StatusNum"; recruitData.VolatileStatus.Clear(); foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) { Characters.VolatileStatus volatileStatus = new Characters.VolatileStatus(); volatileStatus.Name = columnCollection["Name"].ValueString; volatileStatus.Emoticon = columnCollection["Emoticon"].ValueString.ToInt(); volatileStatus.Counter = columnCollection["Counter"].ValueString.ToInt(); volatileStatus.Tag = columnCollection["Tag"].ValueString; recruitData.VolatileStatus.Add(volatileStatus); } return recruitData; }
public static void SavePlayerRecruit(MySql database, string charID, int recruitIndex, RecruitData recruitData) { database.UpdateOrInsert("recruit_data", new IDataColumn[] { database.CreateColumn(false, "CharID", charID), database.CreateColumn(false, "RecruitIndex", recruitIndex.ToString()), database.CreateColumn(false, "UsingTempStats", recruitData.UsingTempStats.ToIntString()), database.CreateColumn(false, "Name", recruitData.Name), database.CreateColumn(false, "Nickname", recruitData.Nickname.ToIntString()), database.CreateColumn(false, "NpcBase", recruitData.NpcBase.ToString()), database.CreateColumn(false, "Species", recruitData.Species.ToString()), database.CreateColumn(false, "Sex", recruitData.Sex.ToString()), database.CreateColumn(false, "Shiny", recruitData.Shiny.ToString()), database.CreateColumn(false, "Form", recruitData.Form.ToString()), database.CreateColumn(false, "HeldItemSlot", recruitData.HeldItemSlot.ToString()), database.CreateColumn(false, "Level", recruitData.Level.ToString()), database.CreateColumn(false, "Experience", recruitData.Exp.ToString()), database.CreateColumn(false, "HP", recruitData.HP.ToString()), database.CreateColumn(false, "StatusAilment", recruitData.StatusAilment.ToString()), database.CreateColumn(false, "StatusAilmentCounter", recruitData.StatusAilmentCounter.ToString()), database.CreateColumn(false, "IQ", recruitData.IQ.ToString()), database.CreateColumn(false, "Belly", recruitData.Belly.ToString()), database.CreateColumn(false, "MaxBelly", recruitData.MaxBelly.ToString()), database.CreateColumn(false, "AttackBonus", recruitData.AtkBonus.ToString()), database.CreateColumn(false, "DefenseBonus", recruitData.DefBonus.ToString()), database.CreateColumn(false, "SpeedBonus", recruitData.SpeedBonus.ToString()), database.CreateColumn(false, "SpecialAttackBonus", recruitData.SpclAtkBonus.ToString()), database.CreateColumn(false, "SpecialDefenseBonus", recruitData.SpclDefBonus.ToString()) }); for (int i = 0; i < recruitData.Moves.Length; i++) { database.UpdateOrInsert("recruit_moves", new IDataColumn[] { database.CreateColumn(false, "CharID", charID), database.CreateColumn(false, "RecruitIndex", recruitIndex.ToString()), database.CreateColumn(false, "UsingTempStats", recruitData.UsingTempStats.ToIntString()), database.CreateColumn(false, "MoveSlot", i.ToString()), database.CreateColumn(false, "MoveNum", recruitData.Moves[i].MoveNum.ToString()), database.CreateColumn(false, "CurrentPP", recruitData.Moves[i].CurrentPP.ToString()), database.CreateColumn(false, "MaxPP", recruitData.Moves[i].MaxPP.ToString()), //database.CreateColumn(false, "Sealed", recruitData.Moves[i].Sealed.ToIntString()), }); } // Delete extra statuses database.ExecuteNonQuery("DELETE FROM recruit_volatile_status WHERE CharID = \'" + charID + "\' " + "AND RecruitIndex = \'" + recruitIndex + "\' " + "AND StatusNum > " + (recruitData.VolatileStatus.Count - 1)); // Update statuses for (int i = 0; i < recruitData.VolatileStatus.Count; i++) { database.UpdateOrInsert("recruit_volatile_status", new IDataColumn[] { database.CreateColumn(false, "CharID", charID), database.CreateColumn(false, "RecruitIndex", recruitIndex.ToString()), database.CreateColumn(false, "UsingTempStats", recruitData.UsingTempStats.ToIntString()), database.CreateColumn(false, "StatusNum", i.ToString()), database.CreateColumn(false, "Name", recruitData.VolatileStatus[i].Name), database.CreateColumn(false, "Emoticon", recruitData.VolatileStatus[i].Emoticon.ToString()), database.CreateColumn(false, "Counter", recruitData.VolatileStatus[i].Counter.ToString()), database.CreateColumn(false, "Tag", recruitData.VolatileStatus[i].Tag), }); } }