示例#1
0
        public void RPC_RoleEnterPlanes(CSCommon.Data.RoleDetail roledata, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd)
        {
            RPC.PackageWriter pkg = new RPC.PackageWriter();
            var role = GetRole(roledata.RoleId);

            if (role == null)//创建角色时调用
            {
                role = TryCreatePlaye(roledata);
                if (role == null)
                {
                    return;
                }
            }
            else
            {
                role.RoleData.Camp       = roledata.Camp;
                role.RoleData.Name       = roledata.RoleName;
                role.RoleData.Level      = roledata.RoleLevel;
                role.RoleData.Profession = roledata.Profession;
                role.RoleData.PlanesId   = roledata.PlanesId;
                role.RoleData.MapName    = roledata.MapName;
            }

            role.PlanesConnect = connect as Iocp.TcpConnect;
            var rank = GetRank(roledata.RoleId);

            if (rank == null)
            {
                Log.Log.Common.Info("GetRank is null{0}", roledata.RoleId);
                pkg.Write(new RankData());
            }
            pkg.Write(rank);
            DB_RoleEnteInitMessages(role);
            pkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
            return;
        }
示例#2
0
        public RoleSyncInfo(PlayerInstance pi)
        {
            RoleDetail rd = pi.PlayerData.RoleDetail;

            RoleId     = rd.RoleId;
            RoleName   = rd.RoleName;
            RoleLevel  = rd.RoleLevel;
            Camp       = rd.Camp;
            Sex        = rd.Sex;
            Profession = rd.Profession;
            LocationX  = rd.LocationX;
            LocationZ  = rd.LocationZ;
            Direction  = rd.Direction;
            RoleHp     = rd.RoleHp;
            RoleMaxHp  = rd.RoleMaxHp;
            var equip = pi.EquipBag.FindItemByPos((int)CSCommon.eEquipType.Soul);

            if (equip == null)
            {
                equip = pi.EquipBag.FindItemByPos((int)CSCommon.eEquipType.Weapon);
            }
            WeaponId = equip.ItemTemplate.id;
            Speed    = rd.RoleSpeed;
        }
示例#3
0
//         private void DB_CreatStranger(CSCommon.Data.StrangerInfo stranger)
//         {
//             // 产生insert语句
//             string condition = "EnemyerId = " + stranger.StrangerId;
//             ServerFrame.DB.DBOperator dbOp = ServerFrame.DB.DBConnect.InsertData(condition, stranger, true);
//             mDBConnect._ExecuteInsert(dbOp);
//             return;
//         }
//
//         private void DB_SaveStranger(CSCommon.Data.StrangerInfo stranger)
//         {
//             var condition = "EnemyerId=\'" + (stranger.StrangerId);
//             var dbOp = ServerFrame.DB.DBConnect.UpdateData(condition, stranger, null);
//             mDBConnect._ExecuteUpdate(dbOp);
//             return;
//         }
//
//         private void DB_DelStranger(CSCommon.Data.StrangerInfo stranger)
//         {
//             //产生Destroy语句
//             string condition = "EnemyerId =" + stranger.StrangerId;
//             ServerFrame.DB.DBOperator dbOp = ServerFrame.DB.DBConnect.DestroyData(condition, stranger);
//             mDBConnect._ExecuteDestroy(dbOp);
//             return;
//         }

        #endregion

        #region 创建加载角色

        public UserRole TryCreatePlaye(CSCommon.Data.RoleDetail pd)
        {
            UserRole role = new UserRole();

            role.RoleData.RoleId     = pd.RoleId;
            role.RoleData.Name       = pd.RoleName;
            role.RoleData.Sex        = pd.Sex;
            role.RoleData.Level      = pd.RoleLevel;  //change
            role.RoleData.Camp       = pd.Camp;       //change
            role.RoleData.Profession = pd.Profession; //change
            role.RoleData.PlanesId   = pd.PlanesId;   //change
            role.RoleData.MapName    = pd.MapName;

            string condition = "RoleId=" + pd.RoleId;

            ServerFrame.DB.DBOperator dbOp = ServerFrame.DB.DBConnect.InsertData(condition, role.RoleData, false);
            if (false == mDBConnect._ExecuteInsert(dbOp))
            {
                Log.Log.Common.Print("create rolecom failed");
                return(null);
            }

            mRoles.Add(pd.RoleId, role);

            RankData rd = new RankData();

            rd.RoleId      = pd.RoleId;
            rd.PlanesId    = pd.PlanesId;
            rd.RoleName    = pd.RoleName;
            rd.Level       = pd.RoleLevel;
            rd.Fighting    = 0;
            rd.Exploit     = 0;
            rd.ExploitRank = 0;
            UPdateRankData(rd);
            return(role);
        }