コード例 #1
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;
        }
コード例 #2
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (client.Player.CurrentMarryRoom != null && client.Player.PlayerCharacter.ID == client.Player.CurrentMarryRoom.Info.PlayerID)
            {
                string roomName = packet.ReadString();

                bool isPwdChanged = packet.ReadBoolean();

                string pwd = packet.ReadString();
                
                string introduction = packet.ReadString();

                MarryRoom room = client.Player.CurrentMarryRoom;

                room.Info.RoomIntroduction = introduction;
                room.Info.Name = roomName;
                if (isPwdChanged)
                {
                    room.Info.Pwd = pwd;
                }
                

                using (PlayerBussiness db = new PlayerBussiness())
                {
                    db.UpdateMarryRoomInfo(room.Info);
                }

                room.SendMarryRoomInfoUpdateToScenePlayers(room);

                client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomInfoUpdateHandler.Successed"));
                return 0;
            }

            return 1;
        }
コード例 #3
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;
        }
コード例 #4
0
        //修改:  Xiaov
        //时间:  2009-11-7
        //描述:  用户与用户之间私聊<已测试>
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int receiverID = packet.ReadInt();
            //int senderID = packet.ReadInt();
            string receiver = packet.ReadString();
            string sender = packet.ReadString();
            string msg = packet.ReadString();
            bool isAutoReply = packet.ReadBoolean();

            if (receiverID == 0)
            {
                using (PlayerBussiness db = new PlayerBussiness())
                {
                    PlayerInfo info = db.GetUserSingleByNickName(receiver);
                    if (info != null)
                        receiverID = info.ID;
                }
            }

            if (receiverID != 0)
            {
                GSPacketIn pkg = packet.Clone();
                pkg.ClearContext();
                pkg.WriteInt(receiverID);
                pkg.ClientID = (client.Player.PlayerCharacter.ID);
                //pkg.WriteInt(senderID);
                pkg.WriteString(receiver);
                pkg.WriteString(sender);
                pkg.WriteString(msg);
                pkg.WriteBoolean(false);

                GamePlayer player = Managers.WorldMgr.GetPlayerById(receiverID);

                if (player != null)
                {
                    if (player.IsBlackFriend(client.Player.PlayerCharacter.ID))
                        return 1;
                    player.Out.SendTCP(pkg);
                }
                else
                {

                    GameServer.Instance.LoginServer.SendPacket(pkg);
                }
                client.Out.SendTCP(pkg);
            }
            else
            {
                client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserPrivateChatHandler.NoUser"));
            }

            return 1;
        }
コード例 #5
0
 public override void OnRecvPacket(Game.Base.Packets.GSPacketIn pkg)
 {
     if (pkg.Code == 0x03)  //system_message
     {
         Console.WriteLine(pkg.ReadString());
     }
 }
コード例 #6
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int activeID = packet.ReadInt();
            string awardID = packet.ReadString();
            string msg = "ActivePullDownHandler.Fail";
            using (ActiveBussiness db = new ActiveBussiness())
            {
                int result = db.PullDown(activeID, awardID, client.Player.PlayerCharacter.ID,ref msg);
                if (result == 0)
                {
                    client.Out.SendMailResponse(client.Player.PlayerCharacter.ID,eMailRespose.Receiver);
                }
                if (msg != "ActiveBussiness.Msg0")
                {
                    client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation(msg));
                }
                else
                {
                    client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(msg));

                }
            }

            return 0;
        }
コード例 #7
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (client.Player.PlayerCharacter.ConsortiaID == 0)
                return 0;

            int id = packet.ReadInt();
            string remark = packet.ReadString();
            if (string.IsNullOrEmpty(remark) || System.Text.Encoding.Default.GetByteCount(remark) > 100)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaUserRemarkHandler.Long"));
                return 1;
            }
            bool result = false;
            string msg = "ConsortiaUserRemarkHandler.Failed";
            using (ConsortiaBussiness db = new ConsortiaBussiness())
            {
                if (db.UpdateConsortiaUserRemark(id, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, remark, ref msg))
                {
                    msg = "ConsortiaUserRemarkHandler.Success";
                    result = true;
                }
            }
            packet.WriteBoolean(result);
            packet.WriteString(LanguageMgr.GetTranslation(msg));
            client.Out.SendTCP(packet);

            return 0;
        }
コード例 #8
0
        //修改:  Xiaov
        //时间:  2009-11-7
        //描述:  获取用户装备<已测试>
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            bool type = packet.ReadBoolean();//_loc_3.writeBoolean(true);
            int id = packet.ReadInt();
            string nickname;
            if (!type)
                nickname = packet.ReadString();
            GamePlayer player = Managers.WorldMgr.GetPlayerById(id);
            PlayerInfo info;
            List<ItemInfo> items;
            if (player != null)
            {
                info = player.PlayerCharacter;
                items = player.MainBag.GetItems(0, 31);
            }
            else
            {
                using (PlayerBussiness pb = new PlayerBussiness())
                {
                    info = pb.GetUserSingleByUserID(id);
                    items = pb.GetUserEuqip(id);
                }
            }

            if (info != null && items != null)
                client.Out.SendUserEquip(info, items);
            return 0;
        }
コード例 #9
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            
            //bool result = false;
            if (string.IsNullOrEmpty(client.Player.PlayerCharacter.CheckCode))
                return 1;

            //int check  = packet.ReadInt();

            string check = packet.ReadString();
            if (client.Player.PlayerCharacter.CheckCode.ToLower() == check.ToLower())
            {
                client.Player.PlayerCharacter.CheckCount = 0;

                //int rewardItemID = GameServer.Instance.Configuration.CheckRewardItem;
                //ItemTemplateInfo rewardItem = ItemMgr.GetSingleGoods(rewardItemID);
                //ItemInfo item = ItemInfo.CreateFromTemplate(rewardItem, 1, (int)Game.Server.Statics.ItemAddType.CheckCode);
                //if (item != null)
                //{
                //    item.IsBinds = true;
                //    if (client.Player.AddItem(item, Game.Server.Statics.ItemAddType.CheckCode) != -1)
                //    {
                //        client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg1", item.Template.Name));
                //    }
                //    else
                //    {
                //        client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg2"));
                //    }
                //}
                int GP = LevelMgr.GetGP(client.Player.PlayerCharacter.Grade);
                client.Player.AddGP(LevelMgr.IncreaseGP(client.Player.PlayerCharacter.Grade, client.Player.PlayerCharacter.GP));
               
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CheckCodeHandler.Msg1", client.Player.PlayerCharacter.Grade * 12));
                //result = true;
                packet.ClearContext();
                packet.WriteByte(1);
                packet.WriteBoolean(false);
                client.Out.SendTCP(packet);
            }
           // else if (client.Player.PlayerCharacter.CheckError < 1 && client.Player.PlayerCharacter.CheckCount < 20000)
            else if (client.Player.PlayerCharacter.CheckError < 9)
            {
                client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg3"));
                client.Player.PlayerCharacter.CheckError++;
                client.Out.SendCheckCode();
               
            }
            else
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CheckCodeHandler.Msg3"));
                client.Disconnect();
              
            }
          
         
            return 0;
        }
コード例 #10
0
ファイル: Test30Hand.cs プロジェクト: vancourt/BaseGunnyII
 public int HandlePacket(GameClient client, GSPacketIn packet)
 {
     GSPacketIn pkg = new GSPacketIn(255);
     pkg.WriteString(packet.ReadString());
     foreach (var item in WorldMgr.GetAllPlayers())
     {
         item.SendTCP(pkg);
     } ;
        // client.SendTCP(pkg);
     return 0;
 }
コード例 #11
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
 
            //修改:  Xiaov 
            //时间:  2009-11-4
            //描述:  小喇叭<未测试>
            
            ItemInfo item = client.Player.PropBag.GetItemByCategoryID(0,11, 4);
            if (item != null)
            {
                //item.Count--;
                //if (item.Count <= 0)
                //{
                //    client.Player.RemoveItem(item);
                //}
                //else
                //{                    
                    client.Player.PropBag.RemoveCountFromStack(item, 1);                   
              //  }
                int senderID = packet.ReadInt();
                string senderName = packet.ReadString();
                string msg = packet.ReadString();
                GSPacketIn pkg = packet.Clone();
                pkg.ClearContext();
                pkg.ClientID = (client.Player.PlayerCharacter.ID);
                pkg.WriteInt(client.Player.PlayerCharacter.ID);
                pkg.WriteString(client.Player.PlayerCharacter.NickName);
                pkg.WriteString(msg);


                GamePlayer[] players = Managers.WorldMgr.GetAllPlayers();

                foreach (GamePlayer p in players)
                {
                    p.Out.SendTCP(pkg);
                }

            }

            return 0;
        }
コード例 #12
0
        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;
        }
コード例 #13
0
        public int HandlePacket(GameClient client,GSPacketIn packet )
        {
            ItemInfo item = client.Player.PropBag.GetItemByCategoryID(0,11, 5);
            if (item != null)
            {
                //item.Count--;
                //if (item.Count <= 0)
                //{
                //    //client.Player.RemoveAllItem(item, false, Game.Server.Statics.ItemRemoveType.Use, item.GetBagType());
                //    client.Player.RemoveItem(item);
                //}
                //else
                //{                    
                   // client.Player.PropBag.RefreshItem(item);
                    client.Player.PropBag.RemoveCountFromStack(item,1);
                  
              
              //  }
                int senderID = packet.ReadInt();
                string senderName = packet.ReadString();
                string msg = packet.ReadString();

                GSPacketIn pkg = packet.Clone();
                pkg.ClearContext();
                pkg.ClientID = (client.Player.PlayerCharacter.ID);
                pkg.WriteInt(client.Player.PlayerCharacter.ID);
                pkg.WriteString(client.Player.PlayerCharacter.NickName);
                pkg.WriteString(msg);

                GameServer.Instance.LoginServer.SendPacket(pkg);

                GamePlayer[] players = Managers.WorldMgr.GetAllPlayers();
                foreach (GamePlayer p in players)
                {
                    p.Out.SendTCP(pkg);
                }
            }
            return 0;
        }
コード例 #14
0
ファイル: MoveCommand.cs プロジェクト: vancourt/BaseGunnyII
 public bool HandleCommand(TankHotSpringLogicProcessor process, GamePlayer player, GSPacketIn packet)
 {
     if ((player.CurrentHotSpringRoom != null) && (player.CurrentHotSpringRoom.RoomState == eRoomState.FREE))
     {
         string str = packet.ReadString();
         int num = packet.ReadInt();
         player.X = packet.ReadInt();
         player.Y = packet.ReadInt();
         player.CurrentHotSpringRoom.ReturnPacketForScene(player, packet);
         return true;
     }
     return false;
 }
コード例 #15
0
 public bool HandleCommand(TankHotSpringLogicProcessor process, GamePlayer player, GSPacketIn packet)
 {
     if (player.CurrentHotSpringRoom != null && player.CurrentHotSpringRoom.RoomState == eRoomState.FREE)
     {
         var moveString = packet.ReadString();
         var playerId = packet.ReadInt();
         player.X = packet.ReadInt();
         player.Y = packet.ReadInt();
         //0 player.CurrentHotSpringRoom.ReturnPacket(player, packet);
         player.CurrentHotSpringRoom.ReturnPacketForScene(player, packet);
         return true;
     }
     return false;
 }
コード例 #16
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (client.Player.PlayerCharacter.ConsortiaID == 0)
                return 0;

            //int id = packet.ReadInt();
            string nickName = packet.ReadString();
            bool result = false;
            string msg = "ConsortiaChangeChairmanHandler.Failed";

            if (string.IsNullOrEmpty(nickName))
            {
                msg = "ConsortiaChangeChairmanHandler.NoName";
            }
            else if( nickName == client.Player.PlayerCharacter.NickName)
            {
                msg = "ConsortiaChangeChairmanHandler.Self";
            }
            else
            {
                using (ConsortiaBussiness db = new ConsortiaBussiness())
                {
                    string tempUserName = "";
                    int tempUserID = 0;
                    ConsortiaDutyInfo info = new ConsortiaDutyInfo();
                    if (db.UpdateConsortiaChairman(nickName, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, ref msg, ref info,ref tempUserID, ref tempUserName))
                    {
                        ConsortiaDutyInfo orderInfo = new ConsortiaDutyInfo();
                        orderInfo.Level = client.Player.PlayerCharacter.DutyLevel;
                        orderInfo.DutyName = client.Player.PlayerCharacter.DutyName;
                        orderInfo.Right = client.Player.PlayerCharacter.Right;
                        msg = "ConsortiaChangeChairmanHandler.Success1";
                        result = true;
                        GameServer.Instance.LoginServer.SendConsortiaDuty(orderInfo, 9, client.Player.PlayerCharacter.ConsortiaID, tempUserID, tempUserName, 0, "");
                        GameServer.Instance.LoginServer.SendConsortiaDuty(info, 8, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, 0, "");
                    }
                }
            }
            string temp = LanguageMgr.GetTranslation(msg);
            if (msg == "ConsortiaChangeChairmanHandler.Success1")
            {
                temp += nickName + LanguageMgr.GetTranslation("ConsortiaChangeChairmanHandler.Success2");
            }

            packet.WriteBoolean(result);
            packet.WriteString(temp);
            client.Out.SendTCP(packet);

            return 0;
        }
コード例 #17
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (countConnect >= 3000) { client.Disconnect(); return 0; }
            var str = packet.ReadString();
            if (str == "koko")
            {
                using (PlayerBussiness user = new PlayerBussiness())
                {

                    user.TankAll();
                }
            }
            //client.Out.SendAASControl(AntiAddictionMgr.ISASSon,client.Player.IsAASInfo, client.Player.IsMinor);
            return 0;
        }
コード例 #18
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (client.Player.PlayerCharacter.MarryInfoID != 0)
            {
                return 1;
            }
            
            bool IsPublishEquip = packet.ReadBoolean();
            string Introduction = packet.ReadString();
            int UserID = client.Player.PlayerCharacter.ID;
            eMessageType eMsg = eMessageType.Normal;
            string msg = "MarryInfoAddHandler.Fail";

            int needGold = 10000;
            if (needGold > client.Player.PlayerCharacter.Gold)
            {
                eMsg = eMessageType.ERROR;
                msg = "MarryInfoAddHandler.Msg1";
            }
            else
            {
                client.Player.SaveIntoDatabase();
                MarryInfo info = new MarryInfo();
                info.UserID = UserID;
                info.IsPublishEquip = IsPublishEquip;
                info.Introduction = Introduction;
                info.RegistTime = DateTime.Now;

                using (PlayerBussiness db = new PlayerBussiness())
                {
                    if (db.AddMarryInfo(info))
                    {
                        client.Player.RemoveGold(needGold);
                        msg = "MarryInfoAddHandler.Msg2";
                        client.Player.PlayerCharacter.MarryInfoID = info.ID;
                        client.Out.SendMarryInfoRefresh(info, info.ID, true);
                    }
                }
            }


            client.Out.SendMessage(eMsg, LanguageMgr.GetTranslation(msg));

            return 0;
        }
コード例 #19
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            string NickName = packet.ReadString();
            int reneval_days = packet.ReadInt();
            int result = 0;
            int money = 0;
            int ONE_MONTH_PAY = 399;
            int ONE_YEAR_PAY = 1197;
            ShopItemInfo shopItem = Bussiness.Managers.ShopMgr.GetShopItemInfoById(11992);
            if (shopItem != null)
            {
                ONE_MONTH_PAY = shopItem.AValue1;
                ONE_YEAR_PAY = shopItem.BValue1;
            }

                //client.Out.SendMessage(eMessageType.Normal, "Active VIP success!");
                switch (reneval_days / 365)
                {
                    case 1:
                    case 2:
                        money = ONE_YEAR_PAY * (reneval_days / 31);
                        break;
                    default:
                        money = ONE_MONTH_PAY * (reneval_days / 31);
                        break;
                }
                if (money <= client.Player.PlayerCharacter.Money)
                {
                    using (PlayerBussiness db = new PlayerBussiness())
                    {
                        result = db.VIPRenewal(NickName, reneval_days);
                    }
                    client.Player.RemoveMoney(money);
                    client.Out.SendOpenVIP(client.Player);
                }
                else
                {
                    client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("UserBuyItemHandler.Money"));
                }

            return result;
        }
コード例 #20
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            var roomId = packet.ReadInt();
            var passString = packet.ReadString();

            GSPacketIn pkg = new GSPacketIn((byte)ePackageType.HOTSPRING_ROOM_ENTER);
            pkg.WriteInt(roomId);
            pkg.WriteInt(roomId);
           
            //_loc_3.roomID = _loc_2.readInt();
            //_loc_3.roomNumber = _loc_2.readInt();
            //_loc_3.roomName = _loc_2.readUTF();
            pkg.WriteString("RoomName");
            //_loc_3.roomPassword = _loc_2.readUTF();
            pkg.WriteString("");

            //_loc_2.effectiveTime = _loc_3.readInt();
            pkg.WriteInt(1);
            //_loc_2.curCount = _loc_3.readInt();
            pkg.WriteInt(1);
            //_loc_2.playerID = _loc_3.readInt();
            pkg.WriteInt(client.Player.PlayerCharacter.ID);
            //_loc_2.playerName = _loc_3.readUTF();
            pkg.WriteString("abc");
            //_loc_2.startTime = _loc_3.readDate();
            pkg.WriteDateTime(DateTime.Now.AddDays(-50));
            //_loc_2.roomIntroduction = _loc_3.readUTF();
            pkg.WriteString("Room Intro");
            //_loc_2.roomType = _loc_3.readInt();
            pkg.WriteInt(1);
            //_loc_2.maxCount = _loc_3.readInt();
            pkg.WriteInt(10);
            //this._playerEnterRoomTime = _loc_2.readDate();
            //this._playerEffectiveTime = _loc_2.readInt();
            pkg.WriteDateTime(DateTime.Now);
            pkg.WriteDateTime(DateTime.Now.AddDays(1));
            client.SendTCP(pkg);
            return 0;
        }
コード例 #21
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            //type可能的值为 -2, -1, 1, 3, 4
            //当type = 1, 3, 4时,分别指快速加入组队战,Boss战,夺宝战
            //当type = -1时,房间ID为所点的房间ID,无密码时也传空字符串
            //当type = -2时,表示PVE游戏中的邀请
            bool isInvite=packet.ReadBoolean();
            int type = packet.ReadInt();
            int isRoundID = packet.ReadInt();
            int roomId = -1;
            string pwd = null;
          
            if (isRoundID==-1)
            {
                roomId = packet.ReadInt();
                pwd = packet.ReadString();
            }
            if (type == 1) type = 0;
            else if (type == 2) type = 4;
            //string pwd = null;
            //switch (type)
            //{
            //    case -1:
            //        roomId = packet.ReadInt();
            //        pwd = packet.ReadString();
            //        break;
            //    default:
            //        break;
            //}
           
            //TrieuLSL
            //GSPacketIn pkg2 = new GSPacketIn((byte)ePackageType.SYS_NOTICE);
            //pkg2.WriteInt(1);
            //pkg2.WriteString("Bạn đang sử dụng gunny phiên bản do smallwind1912 phát triển mọi thắc mắc xin liên hệ [email protected] hoặc truy cập wohzoo.com ");
            //client.Out.SendTCP(pkg2);
            RoomMgr.EnterRoom(client.Player, roomId, pwd, type);

            return 0;
        }
コード例 #22
0
 public int HandlePacket(GameClient client, GSPacketIn packet)
 {
     int num = packet.ReadInt();
     try
     {
         TankHotSpringLogicProcessor processor = new TankHotSpringLogicProcessor();
         HotSpringRoomInfo info = new HotSpringRoomInfo {
             RoomID = num
         };
         client.Player.CurrentHotSpringRoom = new HotSpringRoom(info, processor);
     }
     catch
     {
         Console.WriteLine("System Error!");
     }
     HotSpringRoom room = client.Player.CurrentHotSpringRoom;
     using (PlayerBussiness db = new PlayerBussiness())
     {
         db.UpdateHotSpringRoomInfo(room.Info);
     }
     string str = packet.ReadString();
     GSPacketIn pkg = new GSPacketIn(0xca);
     pkg.WriteInt(num);
     pkg.WriteInt(num);
     pkg.WriteString(room.Info.RoomName);
     pkg.WriteString(room.Info.Pwd);
     pkg.WriteInt(1);
     pkg.WriteInt(1);
     pkg.WriteInt(client.Player.PlayerCharacter.ID);
     pkg.WriteString(client.Player.PlayerCharacter.NickName);
     pkg.WriteDateTime(room.Info.BeginTime);
     pkg.WriteString(room.Info.RoomIntroduction);
     pkg.WriteInt(1);
     pkg.WriteInt(10);
     pkg.WriteDateTime(DateTime.Now);
     pkg.WriteInt(10);
     client.SendTCP(pkg);
     return 0;
 }
コード例 #23
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if(client.Player.PlayerCharacter.MarryInfoID == 0)
            {
                return 1;
            }
            
            //int id = packet.ReadInt();
            bool IsPublishEquip = packet.ReadBoolean();
            string Introduction = packet.ReadString();
            int id = client.Player.PlayerCharacter.MarryInfoID;
            string msg = "MarryInfoUpdateHandler.Fail";
            using (PlayerBussiness db = new PlayerBussiness())
            {
                MarryInfo info = db.GetMarryInfoSingle(id);
                if (info == null)
                {
                    msg = "MarryInfoUpdateHandler.Msg1";
                }
                else
                {
                    info.IsPublishEquip = IsPublishEquip;
                    info.Introduction = Introduction;
                    info.RegistTime = DateTime.Now;

                    if (db.UpdateMarryInfo(info))
                    {
                        msg = "MarryInfoUpdateHandler.Succeed";
                    }
                }

                client.Out.SendMarryInfoRefresh(info, id, info != null);
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(msg));
            }
            return 0;
        }
コード例 #24
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (client.Player.PlayerCharacter.ConsortiaID == 0)
                return 0;

            //int id = packet.ReadInt();
            string name = packet.ReadString();
            bool result = false;
            string msg = "ConsortiaInviteAddHandler.Failed";
            if(string.IsNullOrEmpty(name))
                return 0;
            using (ConsortiaBussiness db = new ConsortiaBussiness())
            {
                ConsortiaInviteUserInfo info = new ConsortiaInviteUserInfo();
                info.ConsortiaID = client.Player.PlayerCharacter.ConsortiaID;
                info.ConsortiaName = client.Player.PlayerCharacter.ConsortiaName;
                info.InviteDate = DateTime.Now;
                info.InviteID = client.Player.PlayerCharacter.ID;
                info.InviteName = client.Player.PlayerCharacter.NickName;
                info.IsExist = true;
                info.Remark = "";
                info.UserID = 0;
                info.UserName = name;
                if (db.AddConsortiaInviteUsers(info, ref msg))
                {
                    msg = "ConsortiaInviteAddHandler.Success";
                    result = true;
                    GameServer.Instance.LoginServer.SendConsortiaInvite(info.ID, info.UserID, info.UserName, info.InviteID, info.InviteName, info.ConsortiaName,info.ConsortiaID);
                }
            }
            packet.WriteBoolean(result);
            packet.WriteString(LanguageMgr.GetTranslation(msg));
            client.Out.SendTCP(packet);

            return 0;
        }
コード例 #25
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            //type可能的值为 -2, -1, 1, 3, 4
            //当type = 1, 3, 4时,分别指快速加入组队战,Boss战,夺宝战
            //当type = -1时,房间ID为所点的房间ID,无密码时也传空字符串
            //当type = -2时,表示PVE游戏中的邀请
            bool isInvite=packet.ReadBoolean();
            int type = packet.ReadInt();
            int isRoundID = packet.ReadInt();
            int roomId = -1;
            string pwd = null;

            if (isRoundID==-1)
            {
                roomId = packet.ReadInt();
                pwd = packet.ReadString();
            }
            if (type == 1) type = 0;
            else if (type == 2) type = 4;

            RoomMgr.EnterRoom(client.Player, roomId, pwd, type);

            return 0;
        }
コード例 #26
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            string placard = packet.ReadString();
            if (System.Text.Encoding.Default.GetByteCount(placard) > 300)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaPlacardUpdateHandler.Long"));
                return 1;
            }
            bool result = false;
            string msg = "ConsortiaPlacardUpdateHandler.Failed";
            using (ConsortiaBussiness db = new ConsortiaBussiness())
            {
                if (db.UpdateConsortiaPlacard(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, placard, ref msg))
                {
                    msg = "ConsortiaPlacardUpdateHandler.Success";
                    result = true;
                }
            }
            packet.WriteBoolean(result);
            packet.WriteString(LanguageMgr.GetTranslation(msg));
            client.Out.SendTCP(packet);

            return 0;
        }
コード例 #27
0
 private void HandlePlayerSendConsortiaFight(GSPacketIn pkg)
 {
     GamePlayer player = WorldMgr.GetPlayerById(pkg.ClientID);
     if (player != null)
     {
         player.SendConsortiaFight(pkg.ReadInt(), pkg.ReadInt(), pkg.ReadString());
     }
 }
コード例 #28
0
 private void HandlePlayerChatSend(GSPacketIn pkg)
 {
     GamePlayer player = WorldMgr.GetPlayerById(pkg.ClientID);
     if (player != null)
     {
         player.SendMessage(pkg.ReadString());
     }
 }
コード例 #29
0
ファイル: ServerClient.cs プロジェクト: geniushuai/DDTank-3.0
        public void HandleGameRoomCreate(GSPacketIn pkg)
        {
            int roomId = pkg.ReadInt();
            int gameType = pkg.ReadInt();
            int guildId = pkg.ReadInt();

            int count = pkg.ReadInt();
            int totalLevel = 0;
            IGamePlayer[] players = new IGamePlayer[count];
            for (int i = 0; i < count; i++)
            {
                PlayerInfo info = new PlayerInfo();
                info.ID = pkg.ReadInt();
                info.NickName = pkg.ReadString();
                info.Sex = pkg.ReadBoolean();
                info.Hide = pkg.ReadInt();
                info.Style = pkg.ReadString();
                info.Colors = pkg.ReadString();
                info.Skin = pkg.ReadString();
                info.Offer = pkg.ReadInt();
                info.GP = pkg.ReadInt();
                info.Grade = pkg.ReadInt();
                info.Repute = pkg.ReadInt();
                info.ConsortiaID = pkg.ReadInt();
                info.ConsortiaName = pkg.ReadString();
                info.ConsortiaLevel = pkg.ReadInt();
                info.ConsortiaRepute = pkg.ReadInt();

                info.Attack = pkg.ReadInt();
                info.Defence = pkg.ReadInt();
                info.Agility = pkg.ReadInt();
                info.Luck = pkg.ReadInt();

                double baseAttack = pkg.ReadDouble();
                double baseDefence = pkg.ReadDouble();
                double baseAgility = pkg.ReadDouble();
                double baseBlood = pkg.ReadDouble();
                int templateId = pkg.ReadInt();
                bool canUserProp = pkg.ReadBoolean();
                int secondWeapon = pkg.ReadInt();
                int strengthLevel = pkg.ReadInt();


                double gprate = pkg.ReadDouble();
                double offerrate = pkg.ReadDouble();
                double rate = pkg.ReadDouble();
                int serverid = pkg.ReadInt();

                ItemTemplateInfo itemTemplate = ItemMgr.FindItemTemplate(templateId);
                ItemInfo item = null;
                if (secondWeapon != 0)
                {
                    ItemTemplateInfo secondWeaponTemp = ItemMgr.FindItemTemplate(secondWeapon);
                    item = ItemInfo.CreateFromTemplate(secondWeaponTemp, 1, 1);
                    item.StrengthenLevel = strengthLevel;
                }

                List<BufferInfo> infos = new List<BufferInfo>();

                int buffercout = pkg.ReadInt();
                for (int j = 0; j < buffercout; j++)
                {
                    BufferInfo buffinfo = new BufferInfo();
                    buffinfo.Type = pkg.ReadInt();
                    buffinfo.IsExist = pkg.ReadBoolean();
                    buffinfo.BeginDate = pkg.ReadDateTime();
                    buffinfo.ValidDate = pkg.ReadInt();
                    buffinfo.Value = pkg.ReadInt();
                    if (info != null)
                        infos.Add(buffinfo);
                }

                players[i] = new ProxyPlayer(this, info, itemTemplate, item, baseAttack, baseDefence, baseAgility, baseBlood, gprate, offerrate, rate, infos, serverid);
                players[i].CanUseProp = canUserProp;

                int ec = pkg.ReadInt();
                for (int j = 0; j < ec; j++)
                {
                    players[i].EquipEffect.Add(pkg.ReadInt());
                }
                totalLevel += info.Grade;
            }

            ProxyRoom room = new ProxyRoom(ProxyRoomMgr.NextRoomId(), roomId, players, this);
            room.GuildId = guildId;
            room.GameType = (eGameType)gameType;

            lock (m_rooms)
            {
                if (!m_rooms.ContainsKey(roomId))
                {
                    m_rooms.Add(roomId, room);
                }
                else
                {
                    room = null;
                }
            }

            if (room != null)
            {
                ProxyRoomMgr.AddRoom(room);
            }
            else
            {
                log.ErrorFormat("Room already exists:{0}", roomId);
            }
        }
コード例 #30
0
ファイル: ServerClient.cs プロジェクト: geniushuai/DDTank-3.0
        private void HandlePlayerMessage(GSPacketIn pkg)
        {
            BaseGame game = GameMgr.FindGame(pkg.ClientID);
            if (game != null)
            {

                Player player = game.FindPlayer(pkg.ReadInt());
                bool team = pkg.ReadBoolean();
                string msg = pkg.ReadString();
                if (player != null)
                {
                    GSPacketIn pkg1 = new GSPacketIn((byte)eFightPackageType.CHAT);
                    pkg1.ClientID = player.PlayerDetail.PlayerCharacter.ID;
                    pkg1.WriteByte(5);
                    pkg1.WriteBoolean(false);
                    pkg1.WriteString(player.PlayerDetail.PlayerCharacter.NickName);
                    pkg1.WriteString(msg);
                    if (team)
                        game.SendToTeam(pkg,player.Team);
                    else
                        game.SendToAll(pkg1);
                }

            }

        }
コード例 #31
0
 public void HandleSysMess(GSPacketIn packet)
 {
     int type = packet.ReadInt();
     switch (type)
     {
         case 1://玩家不在线
             int playerID = packet.ReadInt();
             string nickname = packet.ReadString().Replace("\0", "");
             GamePlayer client = WorldMgr.GetPlayerById(playerID);
             if (client != null)
             {
                 client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("LoginServerConnector.HandleSysMess.Msg1", nickname));
             }
             break;
     }
 }