public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentRoom != null && client.Player == client.Player.CurrentRoom.Host && !client.Player.CurrentRoom.IsPlaying) { //string name = packet.ReadString(); //string pwd = packet.ReadString(); int mapId = packet.ReadInt(); if (mapId == 10000) return 0; byte rT = packet.ReadByte(); eRoomType roomType; if (rT == 10) roomType = eRoomType.Exploration; else roomType = (eRoomType)rT; byte timeType = packet.ReadByte(); byte hardLevel = packet.ReadByte(); int levelLimits = packet.ReadInt(); //eRoomType roomType = (eRoomType)packet.ReadByte(); //eTeamType teamType = (eTeamType)packet.ReadByte(); RoomMgr.UpdateRoomGameType(client.Player.CurrentRoom, packet, roomType, timeType, (eHardLevel)hardLevel, levelLimits, mapId); //RoomMgr.StartGame(client.Player.CurrentRoom); } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { byte roomType = packet.ReadByte(); byte timeType = packet.ReadByte(); string room = packet.ReadString(); string pwd = packet.ReadString(); RoomMgr.CreateRoom(client.Player, room, pwd, (eRoomType)roomType, timeType); return 1; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (game is PVEGame) { PVEGame pve = game as PVEGame; if (pve.BossCardCount + 1 > 0) { int index = packet.ReadByte(); if (index < 0 || index > pve.BossCards.Length) { if (pve.IsBossWar != "") { pve.TakeBossCard(player); } else pve.TakeCard(player); } else { if (pve.IsBossWar != "") { pve.TakeBossCard(player, index); } else pve.TakeCard(player, index); } } } }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (game.GameState != eGameState.Playing || player.GetSealState()) return; int type = packet.ReadByte(); int place = packet.ReadInt(); int templateID = packet.ReadInt(); ItemTemplateInfo template = ItemMgr.FindItemTemplate(templateID); if (player.CanUseItem(template)) { //if (player.CurrentBall.ID == 3 && template.TemplateID == 10003) // return; //if (player.PlayerDetail.UsePropItem(game, type, place, templateID, player.IsLiving)) //{ // if (player.UseItem(template) == false) // { // BaseGame.log.Error("Using prop error"); // } //} if (player.PlayerDetail.UsePropItem(game, type, place, templateID, player.IsLiving)) { if (player.UseItem(template) == false) { BaseGame.log.Error("Using prop error"); } } else { player.UseItem(template); } } }
public int HandlePacket(GameClient client, GSPacketIn packet) { //TODO: 储存物品 if (client.Player.PlayerCharacter.ConsortiaID == 0) return 1; int bagType = packet.ReadByte(); int bagPlace = packet.ReadInt(); int storePlace = packet.ReadInt(); if (bagType == 0 && bagPlace < 31) return 1; ConsortiaInfo info = ConsortiaMgr.FindConsortiaInfo(client.Player.PlayerCharacter.ConsortiaID); if (info != null) { PlayerInventory storeBag = client.Player.StoreBag; PlayerInventory toBag = client.Player.GetInventory((eBageType)bagType); // client.Player.StoreBag.MoveToStore(storeBag, storePlace, bagPlace, toBag, info.StoreLevel * 10); } return 0; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.IsAttacking) { player.Skip(packet.ReadByte()); } }
public int HandlePacket(GameClient client, GSPacketIn packet) { int numReadByte = packet.ReadByte(); int numReadInt = packet.ReadInt(); PlayerInventory caddyBag = client.Player.CaddyBag; PlayerInventory propBag = client.Player.PropBag; PlayerInventory storeBag = client.Player.StoreBag; PlayerInventory mainBag = client.Player.MainBag; for (int i = 0; i < caddyBag.Capalility; i++) { SqlDataProvider.Data.ItemInfo itemAt = caddyBag.GetItemAt(i); if (itemAt != null) { if (((itemAt.Template.CategoryID == 10) || (itemAt.Template.CategoryID == 11)) || (itemAt.Template.CategoryID == 12)) { caddyBag.MoveToStore(caddyBag, i, propBag.FindFirstEmptySlot(1), propBag, 999); } else if ((itemAt.Template.CategoryID == 7) && (mainBag.GetItemAt(6) == null)) { caddyBag.MoveToStore(caddyBag, i, 6, mainBag, 999); } else { caddyBag.MoveToStore(caddyBag, i, mainBag.FindFirstEmptySlot(31), mainBag, 999); } } } client.Lottery = -1; return 1; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.HasPaymentTakeCard == false) { if (player.PlayerDetail.RemoveMoney(100) > 0&&player.PlayerDetail.RemoveGiftToken(429)>0) { int index = packet.ReadByte(); player.CanTakeOut += 1; player.FinishTakeCard = false; player.HasPaymentTakeCard = true; player.PlayerDetail.LogAddMoney(AddMoneyType.Game, AddMoneyType.Game_PaymentTakeCard, player.PlayerDetail.PlayerCharacter.ID, 100, player.PlayerDetail.PlayerCharacter.Money); if (index < 0 || index > game.Cards.Length) { game.TakeCard(player); } else { game.TakeCard(player, index); } } else { player.PlayerDetail.SendInsufficientMoney((int)eBattleRemoveMoneyType.PaymentTakeCard); } } }
//0友好,1黑名单 public int HandlePacket(GameClient client, GSPacketIn packet) { var pet_cmd = packet.ReadByte(); switch (pet_cmd) { case (byte)Game.Logic.eTankCmdType.UPDATE_PET: HandleUPDATE_PET(client, packet.ReadInt()); break; case (byte)Game.Logic.eTankCmdType.ADD_PET://ADD_PET break; case (byte)Game.Logic.eTankCmdType.MOVE_PETBAG://MOVE_PETBAG break; case (byte)Game.Logic.eTankCmdType.FEED_PET://FEED_PET break; case (byte)Game.Logic.eTankCmdType.REFRESH_PET://REFRESH_PET client.Out.SendRefreshPet(); break; case (byte)Game.Logic.eTankCmdType.ADOPT_PET://ADOPT_PET break; case (byte)Game.Logic.eTankCmdType.EQUIP_PET_SKILL://EQUIP_PET_SKILL break; case (byte)Game.Logic.eTankCmdType.RELEASE_PET://RELEASE_PET break; case (byte)Game.Logic.eTankCmdType.RENAME_PET://RENAME_PET break; case (byte)Game.Logic.eTankCmdType.PAY_SKILL://PAY_SKILL break; case (byte)Game.Logic.eTankCmdType.FIGHT_PET://FIGHT_PET break; } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; if (client.Player.PlayerCharacter.IsBanChat) { client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("ConsortiaChatHandler.IsBanChat")); return 1; } packet.ClientID = (client.Player.PlayerCharacter.ID); byte channel = packet.ReadByte(); string nick = packet.ReadString(); string msg = packet.ReadString(); packet.WriteInt(client.Player.PlayerCharacter.ConsortiaID); GamePlayer[] players = WorldMgr.GetAllPlayers(); foreach (GamePlayer p in players) { if (p.PlayerCharacter.ConsortiaID == client.Player.PlayerCharacter.ConsortiaID) p.Out.SendTCP(packet); } GameServer.Instance.LoginServer.SendPacket(packet); return 0; }
//0友好,1黑名单 public int HandlePacket(GameClient client, GSPacketIn packet) { var im_cmd = packet.ReadByte(); switch (im_cmd) { case (byte)IMPackageType.FRIEND_ADD: HandleFRIEND_ADD(packet); break; case (byte)IMPackageType.FRIEND_REMOVE: break; case (byte)IMPackageType.FRIEND_UPDATE: break; case (byte)IMPackageType.FRIEND_STATE: break; case (byte)IMPackageType.ONS_EQUIP: break; case (byte)IMPackageType.FRIEND_RESPONSE: break; case (byte)IMPackageType.SAME_CITY_FRIEND: break; case (byte)IMPackageType.ADD_CUSTOM_FRIENDS: break; case (byte)IMPackageType.ONE_ON_ONE_TALK: break; } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { eBageType bagType = (eBageType)packet.ReadByte(); int place = packet.ReadInt(); int count = packet.ReadInt(); client.Player.BeginChanges(); PlayerInventory bag = client.Player.GetInventory(bagType); if (bag != null && bag.GetItemAt(place) != null) { ItemTemplateInfo item = bag.GetItemAt(place).Template; int price = count * item.ReclaimValue; if (item.ReclaimType == 2) { client.Player.AddGiftToken(price); //client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemReclaimHandler.Success1", price)); } if (item.ReclaimType == 1) { client.Player.AddGold(price); //client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemReclaimHandler.Success2", price)); } bag.RemoveItemAt(place); } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemReclaimHandler.NoSuccess")); return 1; } client.Player.CommitChanges(); //LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Continue, client.Player.PlayerCharacter.ID, 25, client.Player.PlayerCharacter.Money, 25, 0, 0, 0, "牌子编号",)); //client.Player.SaveIntoDatabase();//保存到数据库 return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentRoom != null && client.Player == client.Player.CurrentRoom.Host) { RoomMgr.UpdateRoomPos(client.Player.CurrentRoom, packet.ReadByte(), packet.ReadBoolean()); } return 0; }
public bool HandleCommand(TankGameLogicProcessor process, GamePlayer player, GSPacketIn packet) { if (player.CurrentGame.Data.CurrentIndex == player || player.CurrentGame.Data.Players[player].State == TankGameState.DEAD) { GSPacketIn pkg = packet.Clone(); pkg.ClientID = player.PlayerCharacter.ID; player.CurrentGame.SendToPlayerExceptSelf(pkg, player); byte type = packet.ReadByte(); int tx = packet.ReadInt(); int ty = packet.ReadInt(); byte dir = packet.ReadByte(); bool isLiving = packet.ReadBoolean(); Player p = player.CurrentGame.Data.Players[player]; switch (type) { case 0: case 1: //p.X = tx; //p.Y = ty; p.SetXY(tx, ty); if (player.CurrentGame != null) { p.StartMoving(); if (p.Y - ty > 1 || p.IsLiving != isLiving) { //GameServer.log.Error(string.Format("修正掉落: 动作类型 {0} 原始Y:{1} 最新Y:{2}", type, ty, p.Y)); //把服务器修正的掉落指令和客户掉落指令加以区分。 pkg = player.Out.SendPlayerMove(3, p.X, p.Y, 0, p.IsLiving); player.CurrentGame.SendToPlayerExceptSelf(pkg, player); } } break; case 2: if (player.CurrentGame.Data.Players[player].State == TankGameState.DEAD) { p.EndX = tx; p.EndY = ty; } break; } return true; } return false; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentRoom != null && client.Player == client.Player.CurrentRoom.Host) { RoomMgr.KickPlayer(client.Player.CurrentRoom, packet.ReadByte()); } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player == client.Player.CurrentGame.Player) { byte index = packet.ReadByte(); client.Player.CurrentGame.OpenState[index] = true; client.Player.CurrentGame.SendToAll(packet); client.Player.CurrentGame.SendRoomInfo(); } return 0; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.IsAttacking) { game.SendToAll(packet); bool tag = packet.ReadBoolean(); byte speedTime = packet.ReadByte(); player.PrepareShoot(speedTime); } }
public int HandlePacket(GameClient client, GSPacketIn packet) { //已经开始游戏则不处理 if (client.Player.CurrentRoom != null && client.Player.CurrentRoom.IsPlaying) return 0; int bagType = packet.ReadByte(); int index = packet.ReadInt(); PlayerInventory bag = client.Player.GetInventory((eBageType)bagType); ItemInfo item = bag.GetItemAt(index); if (item != null && !item.IsValidItem()) { if (bagType == 0 && index < 11) { int place = bag.FindFirstEmptySlot(31); if (place != -1) { bag.RemoveItem(item); //bag.MoveItem(item.Place, place); } else { using (PlayerBussiness pb = new PlayerBussiness()) { MailInfo mail = new MailInfo(); mail.Annex1 = item.ItemID.ToString(); mail.Content = LanguageMgr.GetTranslation("ItemOverdueHandler.Content"); mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.Receiver = client.Player.PlayerCharacter.NickName; mail.ReceiverID = item.UserID; mail.Sender = client.Player.PlayerCharacter.NickName; mail.SenderID = item.UserID; mail.Title = LanguageMgr.GetTranslation("ItemOverdueHandler.Title"); mail.Type = (int)eMailType.ItemOverdue; if (pb.SendMail(mail)) { //item.UserID = 0; bag.RemoveItem(item); } } } } else { bag.UpdateItem(item); } } return 0; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.IsAttacking) { GSPacketIn pkg = packet.Clone(); pkg.ClientID = player.PlayerDetail.PlayerCharacter.ID; pkg.Parameter1 = player.Id; game.SendToAll(pkg, player.PlayerDetail); byte type = packet.ReadByte(); int tx = packet.ReadInt(); int ty = packet.ReadInt(); byte dir = packet.ReadByte(); bool isLiving = packet.ReadBoolean(); //Console.WriteLine("isLiving : {0}, tx : {1}, ty : {2}, type : {3}, playerId : {4}", isLiving, tx, ty, type, player.Id); switch (type) { case 0: case 1: //p.X = tx; //p.Y = ty; // if (player.PlayerDetail.PlayerCharacter.NickName == "jacken123") // Console.WriteLine(player.PlayerDetail.PlayerCharacter.NickName + "X坐标" + player.X.ToString() + "Y坐标" + player.Y.ToString()); player.SetXY(tx, ty); player.StartMoving(); // if (player.PlayerDetail.PlayerCharacter.NickName == "jacken123") // Console.WriteLine(string.Format("修正掉落: 动作类型 {0} 原始Y:{1} 最新Y:{2}", type, ty, player.Y)); if (player.Y - ty > 1 || player.IsLiving != isLiving) { //Console.WriteLine("player.IsLiving : {0}, playerId : {1}", player.IsLiving, player.Id); //把服务器修正的掉落指令和客户掉落指令加以区分。 Console.WriteLine("玩家移动掉落:"+player.IsLiving.ToString()); game.SendPlayerMove(player, 3, player.X, player.Y, 0, player.IsLiving, null); } break; case 2: break; } } }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int dutyID = packet.ReadInt(); int updateType = packet.ReadByte(); //int level = packet.ReadInt(); bool result = false; string msg = "ConsortiaDutyUpdateHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { ConsortiaDutyInfo info = new ConsortiaDutyInfo(); info.ConsortiaID = client.Player.PlayerCharacter.ConsortiaID; info.DutyID = dutyID; info.IsExist = true; info.DutyName = ""; switch (updateType) { case 1: return 1; case 2: info.DutyName = packet.ReadString(); if (string.IsNullOrEmpty(info.DutyName) || System.Text.Encoding.Default.GetByteCount(info.DutyName) > 10) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaDutyUpdateHandler.Long")); return 1; } info.Right = packet.ReadInt(); break; case 3: break; case 4: break; } if (db.UpdateConsortiaDuty(info, client.Player.PlayerCharacter.ID, updateType, ref msg)) { dutyID = info.DutyID; msg = "ConsortiaDutyUpdateHandler.Success"; result = true; GameServer.Instance.LoginServer.SendConsortiaDuty(info, updateType, client.Player.PlayerCharacter.ConsortiaID); } } packet.WriteBoolean(result); packet.WriteInt(dutyID); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentGame != null && client.Player == client.Player.CurrentGame.Player) { byte index = packet.ReadByte(); client.Player.CurrentGame.OpenState[index] = false; client.Player.CurrentGame.KickPlayerIndex(client.Player, index); client.Player.CurrentGame.SendToAll(packet); } return 0; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.IsLiving || player.IsAttacking) { GSPacketIn pkg = packet.Clone(); pkg.ClientID = player.Id; game.SendToAll(pkg, player.PlayerDetail); byte type = packet.ReadByte(); int tx = packet.ReadInt(); int ty = packet.ReadInt(); byte dir = packet.ReadByte(); bool isLiving = packet.ReadBoolean(); switch (type) { case 0: case 1: //p.X = tx; //p.Y = ty; player.SetXY(tx, ty); player.StartMoving(); if (player.Y - ty > 1 || player.IsLiving != isLiving) { //GameServer.log.Error(string.Format("修正掉落: 动作类型 {0} 原始Y:{1} 最新Y:{2}", type, ty, p.Y)); //把服务器修正的掉落指令和客户掉落指令加以区分。 pkg = player.PlayerDetail.Out.SendPlayerMove(player,3, player.X, player.Y, 0, player.IsLiving); game.SendToAll(pkg, player.PlayerDetail); } break; case 2: if (player.IsLiving == false) { player.TargetPoint = new Point(tx, ty); } break; } } }
public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); byte page = packet.ReadByte(); byte count = packet.ReadByte(); GamePlayer[] players = Managers.WorldMgr.GetAllPlayersNoGame(); int total = players.Length; byte length = total > count ? count : (byte)total; pkg.WriteByte(length); for (int i = page * count; i < page * count + length; i++) { PlayerInfo info = players[i % total].PlayerCharacter; pkg.WriteInt(info.ID); pkg.WriteString(info.NickName); pkg.WriteByte(info.typeVIP); pkg.WriteInt(info.VIPLevel); pkg.WriteBoolean(info.Sex); pkg.WriteInt(info.Grade); pkg.WriteInt(info.ConsortiaID); pkg.WriteString(info.ConsortiaName);// == null ? "" : info.ConsortiaName); pkg.WriteInt(info.Offer); pkg.WriteInt(info.Win); pkg.WriteInt(info.Total); pkg.WriteInt(info.Escape); pkg.WriteInt(info.Repute); pkg.WriteInt(info.FightPower); pkg.WriteBoolean(info.IsOldPlayer);//_loc_6.isOld = _loc_2.readBoolean(); } client.Out.SendTCP(pkg); return 0; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.IsAttacking) { //GSPacketIn pkg = packet.Clone(); //pkg.ClientID = player.PlayerDetail.PlayerCharacter.ID; //pkg.Parameter1 = player.Id; //game.SendToAll(pkg, player.PlayerDetail); byte type = packet.ReadByte(); int tx = packet.ReadInt(); int ty = packet.ReadInt(); byte dir = packet.ReadByte(); bool isLiving = packet.ReadBoolean(); //_loc_7.writeShort(param6); _player.map.currentTurn short map_currentTurn = packet.ReadShort(); game.SendPlayerMove(player, type, tx, ty, dir, isLiving); switch (type) { case 0: case 1: player.SetXY(tx, ty); player.StartMoving(); if (player.Y - ty > 1 || player.IsLiving != isLiving) { //trminhpc type=3 game.SendPlayerMove(player, 3, player.X, player.Y, 0);//, player.IsLiving, null); } //else //{ // game.SendPlayerMove(player, type, tx, ty, dir, isLiving, null); //} break; } } }
public bool HandleCommand(TankGameLogicProcessor process, GamePlayer player, GSPacketIn packet) { byte type = packet.ReadByte(); int x = packet.ReadInt(); int y = packet.ReadInt(); player.CurrentGame.Data.Players[player].SetXY(packet.ReadInt(), packet.ReadInt()); if (player.CurrentGame.Data.CurrentIndex == player || player.CurrentGame.Data.Players[player].State == TankGameState.DEAD) { player.CurrentGame.ReturnPacket(player, packet); return true; } return false; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.MainWeapon == null) { client.Player.SendMessage(LanguageMgr.GetTranslation("Game.Server.SceneGames.NoEquip")); return 0; } if (client.Player.CurrentRoom != null) { RoomMgr.UpdatePlayerState(client.Player, packet.ReadByte()); } return 0; }
public bool HandleCommand(TankGameLogicProcessor process, GamePlayer player, GSPacketIn packet) { if (player.CurrentGame.Data.CurrentIndex == player && player.CurrentGame.Data.CurrentFire == null) { player.CurrentGame.Data.SpendTime(packet.ReadByte()); player.CurrentGame.Data.TotalDelay += 100; player.CurrentGame.Data.Players[player].SetDander(40); player.CurrentGame.ReturnPacket(player, packet); process.SendPlayFinish(player.CurrentGame, player); return true; } return false; }
public int HandlePacket(GameClient client, GSPacketIn packet) { int num = packet.ReadByte(); int num2 = packet.ReadInt(); PlayerInventory caddyBag = client.Player.CaddyBag; PlayerInventory propBag = client.Player.PropBag; for (int i = 0; i < caddyBag.Capalility; i++) { if (caddyBag.GetItemAt(i) != null) { caddyBag.MoveToStore(caddyBag, i, propBag.FindFirstEmptySlot(0), propBag, 999); } } return 1; }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { //if (player.FinishTakeCard == false && player.CanTakeOut > 0) //{ int index = packet.ReadByte(); if (index < 0 || index > game.Cards.Length) { game.TakeCard(player); } else { game.TakeCard(player,index); } //} }
public void HandleCommand(BaseGame game, Player player, Game.Base.Packets.GSPacketIn packet) { if (player.HasTakeCard == false && player.CanTakeOut == true) { int index = packet.ReadByte(); if (index < 0 || index > 7) { game.TakeCard(player); } else { game.TakeCard(player, index); } } }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (player.IsAttacking) { packet.Parameter1 = player.Id; game.SendToAll(packet); //同客户端同步LifeTime game.SendSyncLifeTime(); bool tag = packet.ReadBoolean(); //开炮所需时间 byte speedTime = packet.ReadByte(); player.PrepareShoot(speedTime); } }