public MapNpc(int mapSlot) { this.mapSlot = mapSlot; //Mobility = new bool[16]; //TimeMultiplier = 1000; Moves = new Characters.Move[4]; for (int i = 0; i < Moves.Length; i++) { Moves[i] = new Characters.Move(); } VolatileStatus = new List<Characters.VolatileStatus>(); HeldItem = new Characters.InventoryItem(); HeldItem.Num = -1; }
// Final Stats //int maxHP; //int mBaseAtk; //int mAtkBonus; //int mAtkBoost; //int mBaseDef; //int mBaseMaxHP; //int mBaseSpclAtk; //int mBaseSpclDef; //int mBaseSpd; //int mDefBonus; //int mDefBoost; //int mMaxHPBonus; //int mMaxHPBoost; //int mSpclAtkBonus; //int mSpclAtkBoost; //int mSpclDefBonus; //int mSpclDefBoost; //int mSpdBonus; //int mSpdBoost; //int spclAtk; //int spclDef; //int spd; #endregion Fields #region Constructors public MapNpc(int mapSlot) { this.mapSlot = mapSlot; //Mobility = new bool[16]; //TimeMultiplier = 1000; Moves = new Characters.Move[4]; for (int i = 0; i < Moves.Length; i++) { Moves[i] = new Characters.Move(); } VolatileStatus = new List <Characters.VolatileStatus>(); HeldItem = new Characters.InventoryItem(); HeldItem.Num = -1; }
/* public static bool IsWonderMailCompleted(MySql database, string charID, string wonderMail) { string query = "SELECT completed_mail.Code " + "FROM completed_mail " + "WHERE completed_mail.CharID = \'" + database.VerifyValueString(charID) + "\' " + "AND completed_mail.Code = \'" + database.VerifyValueString(wonderMail) + "\';"; DataColumnCollection row = database.RetrieveRow(query); if (row != null) { if (!string.IsNullOrEmpty(row["Code"].ValueString)) { return true; } else { return false; } } else { return false; } } public static void LoadPlayerCompletedMail(MySql database, PlayerData playerData) { string query = "SELECT completed_mail.Code " + "FROM completed_mail " + "WHERE completed_mail.CharID = \'" + playerData.CharID + "\';"; foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) { string code = columnCollection["Code"].ValueString; playerData.CompletedMail.Add(code); } } */ public static bool LoadPlayerData(MySql database, PlayerData playerData) { string query = "SELECT accounts.Email, characteristics.Name, characteristics.Access, characteristics.ActiveSlot, characteristics.PK, " + "characteristics.Solid, characteristics.Status, characteristics.Veteran, characteristics.InTempMode, characteristics.Dead, " + "expkit.AvailableModules, " + "location.Map, location.X, location.Y, location.Direction, " + "guild.GuildName, guild.GuildAccess, " + "story.CurrentChapter, story.CurrentSegment, " + "items.MaxInv, items.MaxBank, " + "missions.MissionExp, missions.LastGenTime, missions.Completions " + "FROM characteristics " + "LEFT OUTER JOIN characters ON characters.CharID = characteristics.CharID " + "LEFT OUTER JOIN accounts ON accounts.AccountName = characters.AccountName " + "LEFT OUTER JOIN expkit ON expkit.CharID = characteristics.CharID " + "LEFT OUTER JOIN location ON characteristics.CharID = location.CharID " + "LEFT OUTER JOIN guild ON characteristics.CharID = guild.CharID " + "LEFT OUTER JOIN story ON characteristics.CharID = story.CharID " + "LEFT OUTER JOIN items ON characteristics.CharID = items.CharID " + "LEFT OUTER JOIN missions ON items.CharID = missions.CharID " + "WHERE characteristics.CharID = \'" + database.VerifyValueString(playerData.CharID) + "\';"; DataColumnCollection row = database.RetrieveRow(query); if (row != null) { playerData.Email = row["Email"].ValueString; playerData.Name = row["Name"].ValueString; playerData.Access = row["Access"].ValueString.ToByte(); playerData.ActiveSlot = row["ActiveSlot"].ValueString.ToInt(); playerData.PK = row["PK"].ValueString.ToBool(); playerData.Solid = row["Solid"].ValueString.ToBool(); playerData.Status = row["Status"].ValueString; playerData.Veteran = row["Veteran"].ValueString.ToBool(); playerData.InTempMode = row["InTempMode"].ValueString.ToBool(); playerData.Dead = row["Dead"].ValueString.ToBool(); playerData.AvailableModules = row["AvailableModules"].ValueString; playerData.Map = row["Map"].ValueString; playerData.X = row["X"].ValueString.ToInt(); playerData.Y = row["Y"].ValueString.ToInt(); playerData.Direction = row["Direction"].ValueString.ToByte(); playerData.GuildName = row["GuildName"].ValueString; playerData.GuildAccess = row["GuildAccess"].ValueString.ToByte(); playerData.CurrentChapter = row["CurrentChapter"].ValueString; playerData.CurrentSegment = row["CurrentSegment"].ValueString.ToInt(-1); playerData.MaxInv = row["MaxInv"].ValueString.ToInt(-1); playerData.MaxBank = row["MaxBank"].ValueString.ToInt(-1); playerData.MissionExp = row["MissionExp"].ValueString.ToInt(0); playerData.LastGenTime = row["LastGenTime"].ValueString.ToInt(); playerData.MissionCompletions = row["Completions"].ValueString.ToInt(); } else { return false; } // Load team data query = "SELECT team.Slot, team.RecruitIndex, team.UsingTempStats " + "FROM team " + "WHERE team.CharID = \'" + playerData.CharID + "\' " + "AND team.Slot >= 0 " + "AND team.Slot < 4"; List<DataColumnCollection> rows = database.RetrieveRows(query); if (rows != null) { for (int i = 0; i < rows.Count; i++) { int slot = rows[i]["Slot"].ValueString.ToInt(); playerData.TeamMembers[slot] = new PlayerDataTeamMember(); playerData.TeamMembers[slot].RecruitIndex = rows[i]["RecruitIndex"].ValueString.ToInt(); playerData.TeamMembers[slot].UsingTempStats = rows[i]["UsingTempStats"].ValueString.ToBool(); } } if (playerData.TeamMembers[0].RecruitIndex == -1) { playerData.TeamMembers[0].RecruitIndex = 0; } // Load inventory query = "SELECT inventory.ItemSlot, inventory.ItemNum, inventory.Amount, " + "inventory.Sticky, inventory.Tag " + "FROM inventory " + "WHERE inventory.CharID = \'" + playerData.CharID + "\';"; foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) { Characters.InventoryItem invItem = new Characters.InventoryItem(); int itemSlot = columnCollection["ItemSlot"].ValueString.ToInt(-1); if (itemSlot > -1) { invItem.Num = columnCollection["ItemNum"].ValueString.ToInt(0); invItem.Amount = columnCollection["Amount"].ValueString.ToInt(0); invItem.Sticky = columnCollection["Sticky"].ValueString.ToBool(); invItem.Tag = columnCollection["Tag"].ValueString; playerData.Inventory.Add(itemSlot, invItem); } } for (int i = 1; i <= playerData.MaxInv; i++) { if (playerData.Inventory.ContainsKey(i) == false) { Characters.InventoryItem invItem = new Characters.InventoryItem(); playerData.Inventory.Add(i, invItem); } } // Load bank query = "SELECT bank.ItemSlot, bank.ItemNum, bank.Amount, " + "bank.Sticky, bank.Tag " + "FROM bank " + "WHERE bank.CharID = \'" + playerData.CharID + "\';"; foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) { Characters.InventoryItem invItem = new Characters.InventoryItem(); int itemSlot = columnCollection["ItemSlot"].ValueString.ToInt(-1); if (itemSlot > -1) { invItem.Num = columnCollection["ItemNum"].ValueString.ToInt(0); invItem.Amount = columnCollection["Amount"].ValueString.ToInt(0); invItem.Sticky = columnCollection["Sticky"].ValueString.ToBool(); invItem.Tag = columnCollection["Tag"].ValueString; playerData.Bank.Add(itemSlot, invItem); } } for (int i = 1; i <= playerData.MaxBank; i++) { if (playerData.Bank.ContainsKey(i) == false) { Characters.InventoryItem invItem = new Characters.InventoryItem(); playerData.Bank.Add(i, invItem); } } return true; }