Ejemplo n.º 1
0
        /// <summary>
        /// 子弹伤害请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        internal void BulletDamageCREQ(BaseToken token, TransModel model)
        {
            if (state != FightRoomState.Fight)
            {
                return;
            }

            //throw new NotImplementedException();
            if (IsVaildUserModel(token))
            {
                try {
                    DamageDTO damageDTO = model.GetMsg <DamageDTO>();
                    if (tokenToModelID[token] == damageDTO.SrcID)
                    {
                        if (tokenToModelID.ContainsValue(damageDTO.DstID))
                        {
                            lock (DamageDic) {
                                DamageMutex.WaitOne();
                                if (!DamageDic.ContainsKey(damageDTO.SrcID))
                                {
                                    //DamageDic.Add(damageDTO.SrcID, 0);
                                    baseModelDic[damageDTO.DstID].hp -= 20;

                                    //伤害广播
                                    Broadcast(tokenToModelID.Keys.ToList(), 1003010, 0, damageDTO);

                                    if (baseModelDic[damageDTO.DstID].hp <= 0)
                                    {
                                        //击杀 广播  &&  失败反馈
                                        BaseToken dstToken = tokenToModelID.Where((t, id) => t.Value == damageDTO.DstID).ToList()[0].Key;

                                        Broadcast(tokenToModelID.Keys.ToList(), 1003011, 0, damageDTO);

                                        Send(dstToken, 10039998, damageDTO.DstID);

                                        // 清除失败 token
                                        tokenToModelID.Remove(dstToken);
                                        tokenToUserDTO.Remove(dstToken);
                                        long rid;
                                        FightManager.Ins.tokenToRoomID.Remove(dstToken, out rid);

                                        if (tokenToModelID.Count == 1)
                                        {
                                            //成功广播 并销毁房间
                                            Broadcast(tokenToModelID.Keys.ToList(), 10039999, damageDTO.SrcID);
                                            Clear();
                                        }
                                    }
                                }
                                DamageMutex.ReleaseMutex();
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    Debugger.Error(ex.ToString());
                    //throw;
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 向单个token发送数据
        /// </summary>
        /// <param name="token">连接</param>
        /// <param name="pid">协议号</param>
        /// <param name="area">区域码</param>
        /// <param name="message">消息体</param>
        public void Send <T>(BaseToken token, int pid, int area, T message)
        {
            TransModel model = new TransModel(pid, area);

            model.SetMsg(message);
            Send(token, model);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Edit(int id, [Bind("id,Name,Date1,Married,Phone,Salary")] TransModel transModel)
        {
            if (id != transModel.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(transModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TransModelExists(transModel.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(transModel));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 创建房间处理
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        /// <returns>
        /// 1 创建成功
        /// -1 连接已在房间中
        /// -2 连接未登录
        /// -3 获取房间出错
        /// </returns>
        int OnCreateRoom(BaseToken token, TransModel model)
        {
            if (TokenHasRoom(token))
            {
                return(-1);
            }

            if (!UserCache.Ins.IsOnline(token))
            {
                return(-2);
            }

            MatchRoom room = GetEmptyRoom();

            if (room == null)
            {
                return(-3);
            }

            room.masterName = UserCache.Ins.GetDALByToken(token).name;
            room.allTokens.Add(room.masterName, token);

            if (!string.IsNullOrEmpty(model.GetMsg <string>()))
            {
                room.passwd = model.GetMsg <string>();
            }

            roomCache.TryAdd(room.id, room);
            tokenToRoomID.TryAdd(token, room.id);

            return(1);
        }
Ejemplo n.º 5
0
    public static void Send(TransModel model)
    {
#if !WEBGL
        NetIO.Ins.Send(model);
#else
        NetIOH5.Ins.Send(model);
#endif
    }
Ejemplo n.º 6
0
 // Use this for initialization
 void Start()
 {
     bu.onClick.AddListener(() => {
         TransModel m = new TransModel(1, 1);
         m.SetMsg("client");
         NetIOH5.Ins.Send(m);
     });
 }
Ejemplo n.º 7
0
 private void tlClear_Click(object sender, EventArgs e)
 {
     trans = new TransModel();
     trvNev.Nodes.Clear();
     dgvTeam.Rows.Clear();
     dgvAuthorized.Rows.Clear();
     dgvAvailable.Rows.Clear();
 }
Ejemplo n.º 8
0
 public TeamManagement(EpiTransaction iTrans)
     : base(iTrans)
 {
     InitializeComponent();
     this._repo      = new AuthRepo();
     this.trans      = new TransModel();
     this.epiSession = ((Ice.Core.Session)oTransaction.Session);
 }
Ejemplo n.º 9
0
 public void Send(TransModel model)
 {
     write_queue.Enqueue(model);
     if (!isWrite)
     {
         Write();
     }
 }
Ejemplo n.º 10
0
 public TeamManagement(CustomSession _session = null, string param = null)
 {
     InitializeComponent();
     this._repo = new AuthRepo();
     this.trans = new TransModel();
     epiSession = _session;
     DefaultSession();
 }
Ejemplo n.º 11
0
 public TreeList(CustomSession _session = null, TransModel param = null)
 {
     InitializeComponent();
     this._repo    = new AuthRepo();
     this.trees    = new List <TreeViewModel>();
     this.selected = new TreeViewModel();
     epiSession    = _session;
     DefaultSession();
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 进入房间请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        void EnterRoomCREQ(BaseToken token, TransModel model)
        {
            int result = OnEnterRoom(token, model);

            if (result != 1)
            {
                Send(token, 1002006, result);
            }
        }
Ejemplo n.º 13
0
        private void StartCREQ(BaseToken token, TransModel model)
        {
            int result = OnStart(token, model);

            if (result != 1)
            {
                Send(token, 1002011, result);
            }
        }
Ejemplo n.º 14
0
 private void AddTree(TransModel model, TreeNode root, string parentId)
 {
     foreach (var item in trans.Hierarchy.Where(x => x.ParentId == parentId))
     {
         TreeNode nodeChild = new TreeNode(item.TeamId);
         nodeChild.Tag = item.TeamId;
         root.Nodes.Add(nodeChild);
         AddTree(trans, nodeChild, item.TeamId);
     }
 }
Ejemplo n.º 15
0
        public async Task <IActionResult> Create([Bind("id,Name,Date1,Married,Phone,Salary")] TransModel transModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(transModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(transModel));
        }
Ejemplo n.º 16
0
 private void ShootCREQ(BaseToken token, TransModel model)
 {
     //转发至对应的房间
     if (TokenHasRoom(token))
     {
         roomCache[tokenToRoomID[token]].ShootCREQ(token, model);
     }
     else
     {
         Debugger.Trace("房间不存在");
     }
 }
Ejemplo n.º 17
0
 void PlayerInitCompleted(BaseToken token, TransModel model)
 {
     //转发至对应的房间
     if (TokenHasRoom(token))
     {
         roomCache[tokenToRoomID[token]].OnInitCompleted(token, model);
     }
     else
     {
         Debugger.Trace("房间不存在");
     }
 }
Ejemplo n.º 18
0
    // <summary>
    /// 对缓冲区数据进行处理
    /// </summary>
    void Read()
    {
        TransModel model = AbsCoding.Ins.ModelDecoding <TransModel>(ref cache);

        if (model == null)
        {
            isRead = false;
            return;
        }
        msg.Add(model);
        Read();
    }
Ejemplo n.º 19
0
        /// <summary>
        /// 刷新房间请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        void RefreshRoomCREQ(BaseToken token, TransModel model)
        {
            int result = OnRefreshRoom(token, model);

            if (result == 1)
            {
                Send(token, 1002002, 1, GetRoomsDTO());
            }
            else
            {
                Send(token, 1002002, result);
            }
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 登录请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        public void LoginCREQ(BaseToken token, TransModel model)
        {
            int result = OnLogin(token, model);

            if (result == 1)
            {
                Send(token, 1001004, result, GetDTO(cache.GetDALByToken(token).name));  //登录反馈 1001004
            }
            else
            {
                Send(token, 1001004, result);
            }
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 处理刷新房间请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        /// <returns>
        /// 1 可以刷新
        /// -1 连接在某房间中,不用刷新
        /// -2 连接未登录
        /// </returns>
        int OnRefreshRoom(BaseToken token, TransModel model)
        {
            if (TokenHasRoom(token))
            {
                return(-1);
            }

            if (!UserCache.Ins.IsOnline(token))
            {
                return(-2);
            }
            return(1);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 创建房间请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        private void CreateRoomCREQ(BaseToken token, TransModel model)
        {
            int result = OnCreateRoom(token, model);

            if (result != 1)
            {
                Send(token, 1002004, result);
            }
            else
            {
                Send(token, 1002004, result, roomCache[tokenToRoomID[token]].GetDTO());
            }
        }
Ejemplo n.º 23
0
        public IActionResult Index(IFormFile files)
        {
            if (files != null)
            {
                try
                {
                    if (files.Length > 0)
                    {
                        string fileExtension = Path.GetExtension(files.FileName);
                        if (fileExtension != ".csv")
                        {
                            ViewBag.Message = "Please select the csv file with .csv extension";
                            return(View());
                        }
                        var      trans   = new List <TransModel>();
                        var      sreader = new StreamReader(files.OpenReadStream());
                        string[] headers = sreader.ReadLine().Split(',');
                        while (!sreader.EndOfStream)
                        {
                            string[] rows     = sreader.ReadLine().Split(',');
                            var      objfiles = new TransModel()
                            {
                                Name    = rows[0].ToString(),
                                Date1   = DateTime.Parse(rows[1].ToString()),
                                Married = bool.Parse(rows[2].ToString()),
                                Phone   = rows[3].ToString(),
                                Salary  = int.Parse(rows[4].ToString())
                            };
                            _context.Trans.Add(objfiles);
                        }

                        using (var target = new MemoryStream())
                        {
                            files.CopyTo(target);
                        }

                        _context.SaveChanges();
                    }
                    return(RedirectToAction("Index", "Trans"));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                }
            }
            else
            {
                ViewBag.Message = "Please select the file first to upload.";
            }
            return(View());
        }
Ejemplo n.º 24
0
        public TransModel CreateAddSql(DataService.Model.OrderInfo model)
        {
            TransModel    tm     = new TransModel();
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into OrderInfo(");
            strSql.Append("OrderID,OrderCode,UserID,Use_UserID,Buyer,ProName,Province,City,Area,Address,remarks1,remarks2,IntoDate,OrderDate,IsCheck,IsDel,AddTime)");
            strSql.Append(" values (");
            strSql.Append("@OrderID,@OrderCode,@UserID,@Use_UserID,@Buyer,@ProName,@Province,@City,@Area,@Address,@remarks1,@remarks2,@IntoDate,@OrderDate,@IsCheck,@IsDel,@AddTime)");
            SqlParameter[] parameters =
            {
                new SqlParameter("@OrderID",    SqlDbType.Int,          4),
                new SqlParameter("@UserID",     SqlDbType.Int,          4),
                new SqlParameter("@Use_UserID", SqlDbType.Int,          4),
                new SqlParameter("@Buyer",      SqlDbType.VarChar,    200),
                new SqlParameter("@ProName",    SqlDbType.NVarChar,    50),
                new SqlParameter("@Province",   SqlDbType.NVarChar,    50),
                new SqlParameter("@City",       SqlDbType.NVarChar,    50),
                new SqlParameter("@Area",       SqlDbType.NVarChar,    50),
                new SqlParameter("@Address",    SqlDbType.VarChar,    200),
                new SqlParameter("@remarks1",   SqlDbType.VarChar,    100),
                new SqlParameter("@remarks2",   SqlDbType.VarChar,   2000),
                new SqlParameter("@IntoDate",   SqlDbType.DateTime),
                new SqlParameter("@OrderDate",  SqlDbType.DateTime),
                new SqlParameter("@IsCheck",    SqlDbType.Bit,          1),
                new SqlParameter("@IsDel",      SqlDbType.Bit,          1),
                new SqlParameter("@AddTime",    SqlDbType.DateTime)
            };
            parameters[0].Value  = model.OrderID;
            parameters[1].Value  = model.OrderCode;
            parameters[2].Value  = model.UserID;
            parameters[3].Value  = model.Use_UserID;
            parameters[4].Value  = model.Buyer;
            parameters[5].Value  = model.ProName;
            parameters[6].Value  = model.Province;
            parameters[7].Value  = model.City;
            parameters[8].Value  = model.Area;
            parameters[9].Value  = model.Address;
            parameters[10].Value = model.remarks1;
            parameters[11].Value = model.remarks2;
            parameters[12].Value = model.IntoDate;
            parameters[13].Value = model.OrderDate;
            parameters[14].Value = model.IsCheck;
            parameters[15].Value = model.IsDel;
            parameters[16].Value = model.AddTime;
            tm.Sql        = strSql.ToString();
            tm.parameters = parameters;
            return(tm);
        }
Ejemplo n.º 25
0
    public void Write()
    {
        if (write_queue.Count == 0)
        {
            isWrite = false;
            return;
        }

        TransModel model = write_queue.Dequeue();

        byte[] value = AbsCoding.Ins.ModelEncoding(model);
        socket.Send(value);

        Write();
    }
Ejemplo n.º 26
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        /// <returns>
        /// 1 可以移除
        /// -1 连接未登录
        /// -2 不是有效连接   //连接不在房间内
        /// -3 连接对应房间不存在
        /// -4 不是房主,不能踢人
        /// -5 dto出错或踢的人是自己
        /// -6 踢的人不存在
        /// </returns>
        int OnRemove(BaseToken token, TransModel model)
        {
            if (!UserCache.Ins.IsOnline(token))
            {
                return(-1);
            }

            //if (!tokenToRoomID.ContainsKey(token)) {
            //    return -2;
            //}

            //long id= tokenToRoomID[token];
            //if (!roomCache.ContainsKey(id)) {
            //    tokenToRoomID.Remove(token, out id);
            //    return -3;
            //}

            if (!IsVaildToken(token))
            {
                return(-2);
            }

            long id = tokenToRoomID[token];

            string tName = UserCache.Ins.GetDALByToken(token).name;

            if (!roomCache[id].masterName.Equals(tName))
            {
                return(-4);
            }

            if (string.IsNullOrEmpty(model.GetMsg <string>()) || model.GetMsg <string>().Equals(tName))
            {
                return(-5);
            }

            if (!roomCache[id].allTokens.ContainsKey(model.GetMsg <string>()))
            {
                return(-6);
            }

            roomCache[id].Remove(model.GetMsg <string>());

            return(1);
        }
Ejemplo n.º 27
0
 public void OnMsgReceive(TransModel model)
 {
     if (msgPool.ContainsKey(model.pID))
     {
         lock (msgPool[model.pID]) {
             foreach (var item in msgPool[model.pID])
             {
                 if (item != null)
                 {
                     item(model);
                 }
                 else
                 {
                     RemoveFunByPid(model.pID, item);
                 }
             }
         }
     }
 }
Ejemplo n.º 28
0
 public void ChangeUserDataCREQ(BaseToken token, TransModel model)
 {
     if (!string.IsNullOrEmpty(model.GetMsg <UserDTO>().name))
     {
         UserDTO d   = model.GetMsg <UserDTO>();
         UserDAL dal = new UserDAL();
         dal.clothData = d.clothData;
         dal.hairData  = d.hairData;
         dal.headID    = d.headID;
         if (UserCache.Ins.SaveUserDAL(token, dal))
         {
             Send(token, 1002802, 1);//更换成功
         }
         else
         {
             Send(token, 1002802, 0);//更换失败
         }
     }
 }
Ejemplo n.º 29
0
 /// <summary>
 /// 客户端的状态信息
 /// </summary>
 /// <param name="token"></param>
 /// <param name="model"></param>
 internal void StatusCREQ(BaseToken token, TransModel model)
 {
     //throw new NotImplementedException();
     if (IsVaildUserModel(token))
     {
         //同步客户端模型状态(每个客户端5秒发一次过来)
         try {
             BaseModel m = model.GetMsg <BaseModel>();
             if (GetModelByToken(token) != null && GetModelByToken(token).id == m.id)
             {
                 Broadcast(tokenToModelID.Keys.ToList(), 1003202, 0, m);
             }
         }
         catch (Exception ex) {
             Debugger.Error(ex.ToString());
             //throw;
         }
     }
 }
Ejemplo n.º 30
0
        /// <summary>
        /// 处理进入房间请求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        /// <returns>
        /// 1 进入房间成功
        /// -1 房间不存在或已过期
        /// -2 连接还在某房间中
        /// -3 连接未登录
        /// -4 密码错误
        /// -5 人数已满
        /// -6 进入房间出错
        /// </returns>
        int OnEnterRoom(BaseToken token, TransModel model)
        {
            int roomID = model.area;

            if (!ContainsRoomByID(roomID))
            {
                return(-1);
            }
            if (tokenToRoomID.ContainsKey(token))
            {
                return(-2);
            }

            if (!UserCache.Ins.IsOnline(token))
            {
                return(-3);
            }

            return(roomCache[roomID].EnterCREQ(token, model));
        }