public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.Grade < 30) { client.Out.SendMessage(eMessageType.Normal, "Hack level sao bạn!"); return(0); } packet.ReadByte(); int num = packet.ReadInt(); packet.ReadInt(); packet.ReadInt(); int templateId = packet.ReadInt(); int figSpiritId = packet.ReadInt(); int place = packet.ReadInt(); packet.ReadInt(); packet.ReadInt(); ItemInfo itemByTemplateID = client.Player.PropBag.GetItemByTemplateID(0, templateId); int itemCount = client.Player.PropBag.GetItemCount(templateId); UserGemStone gemStone = client.Player.GetGemStone(place); string[] array = gemStone.FigSpiritIdValue.Split(new char[] { '|' }); int iD = client.Player.PlayerCharacter.ID; bool flag = false; bool max = this.getMax(array); bool isFall = true; int num2 = 1; int dir = 0; int[] oldExp = this.getOldExp(array); int[] oldLv = this.getOldLv(array); if (itemCount <= 0) { client.Player.Out.SendPlayerFigSpiritUp(iD, gemStone, flag, max, isFall, 0, dir); client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Chiến hồn không đủ!", new object[0])); return(0); } if (DateTime.Compare(client.Player.LastFigUpTime.AddSeconds(2.0), DateTime.Now) > 0) { client.Player.Out.SendPlayerFigSpiritUp(iD, gemStone, flag, max, isFall, 0, dir); client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Quá nhiều thao tác!", new object[0])); return(1); } if (!max && itemByTemplateID != null) { if (num == 0) { int property = itemByTemplateID.Template.Property2; for (int i = 0; i < FigSpiritUpGradeHandler.places.Length; i++) { if (oldLv[i] < 5) { oldExp[i] += property; flag = this.canUpLv(oldExp[i], oldLv[i]); if (flag) { oldLv[i]++; oldExp[i] = 0; } } } client.Player.PropBag.RemoveCountFromStack(itemByTemplateID, 1); } if (num == 1) { int num3 = 1; for (int j = 0; j < FigSpiritUpGradeHandler.places.Length; j++) { num3 = this.getNeedExp(oldExp[j], oldLv[j]) / itemByTemplateID.Template.Property2; if (itemCount < num3) { num3 = itemCount; } int num4 = itemByTemplateID.Template.Property2 * num3; if (oldLv[j] < 5) { oldExp[j] += num4; flag = this.canUpLv(oldExp[j], oldLv[j]); if (flag) { oldLv[j]++; oldExp[j] = 0; } } } client.Player.PropBag.RemoveTemplate(templateId, num3); } } if (flag) { isFall = false; dir = 1; client.Player.MainBag.UpdatePlayerProperties(); } string text = string.Concat(new object[] { oldLv[0], ",", oldExp[0], ",", FigSpiritUpGradeHandler.places[0] }); for (int k = 1; k < FigSpiritUpGradeHandler.places.Length; k++) { object obj = text; text = string.Concat(new object[] { obj, "|", oldLv[k], ",", oldExp[k], ",", FigSpiritUpGradeHandler.places[k] }); } gemStone.FigSpiritId = figSpiritId; gemStone.FigSpiritIdValue = text; using (PlayerBussiness playerBussiness = new PlayerBussiness()) { playerBussiness.UpdateGemStoneInfo(gemStone); } client.Player.OnUserToemGemstoneEvent(); client.Player.Out.SendPlayerFigSpiritUp(iD, gemStone, flag, max, isFall, num2, dir); client.Player.LastFigUpTime = DateTime.Now; return(0); }
public bool UpdateGemStoneInfo(UserGemStone g) { bool flag = false; try { SqlParameter[] SqlParameters = new SqlParameter[6] { new SqlParameter("@ID", (object) g.ID), new SqlParameter("@UserID", (object) g.UserID), new SqlParameter("@FigSpiritId", (object) g.FigSpiritId), new SqlParameter("@FigSpiritIdValue", (object) g.FigSpiritIdValue), new SqlParameter("@EquipPlace", (object) g.EquipPlace), new SqlParameter("@Result", SqlDbType.Int) }; SqlParameters[5].Direction = ParameterDirection.ReturnValue; this.db.RunProcedure("SP_UpdateGemStoneInfo", SqlParameters); flag = true; } catch (Exception ex) { if (BaseBussiness.log.IsErrorEnabled) BaseBussiness.log.Error((object)"SP_UpdateGemStoneInfo", ex); } return flag; }
public bool AddUserGemStone(UserGemStone item) { bool flag = false; try { SqlParameter[] SqlParameters = new SqlParameter[6]; SqlParameters[0] = new SqlParameter("@ID", (object)item.ID); SqlParameters[0].Direction = ParameterDirection.Output; SqlParameters[1] = new SqlParameter("@UserID", (object)item.UserID); SqlParameters[2] = new SqlParameter("@FigSpiritId", (object)item.FigSpiritId); SqlParameters[3] = new SqlParameter("@FigSpiritIdValue", (object)item.FigSpiritIdValue); SqlParameters[4] = new SqlParameter("@EquipPlace", (object)item.EquipPlace); SqlParameters[5] = new SqlParameter("@Result", SqlDbType.Int); SqlParameters[5].Direction = ParameterDirection.ReturnValue; this.db.RunProcedure("SP_Users_GemStones_Add", SqlParameters); flag = (int)SqlParameters[5].Value == 0; item.ID = (int)SqlParameters[0].Value; item.IsDirty = false; } catch (Exception ex) { if (BaseBussiness.log.IsErrorEnabled) BaseBussiness.log.Error((object)"Init", ex); } return flag; }
public GSPacketIn SendPlayerFigSpiritUp(int ID, UserGemStone gem, bool isUp, bool isMaxLevel, bool isFall, int num, int dir) { throw new NotImplementedException(); }