public int login(NetFrame.UserToken token, string account, string password)
 {
     //账号密码为空 输入不合法
     if (account == null || password == null)
     {
         return(-4);
     }
     //判断账号是否存在  不存在则无法登陆
     if (!accountCache.hasAccount(account))
     {
         return(-1);
     }
     //判断此账号当前是否在线
     if (accountCache.isOnline(account))
     {
         return(-2);
     }
     //判断账号密码是否匹配
     if (!accountCache.match(account, password))
     {
         return(-3);
     }
     //验证都通过 说明可以登录  调用上线并返回成功
     accountCache.online(token, account);
     return(0);
 }
Exemplo n.º 2
0
        void skillUp(NetFrame.UserToken token, int value)
        {
            int userId = getUserID(token);
            FightPlayerModel player;

            if (teamOne.ContainsKey(userId))
            {
                player = (FightPlayerModel)teamOne[userId];
            }
            else
            {
                player = (FightPlayerModel)teamTwo[userId];
            }
            if (player.free > 0)
            {
                foreach (FightSkill item in player.skills)
                {
                    if (item.code == value)
                    {
                        if (item.nextLevel != -1 && item.nextLevel <= player.level)
                        {
                            player.free -= 1;
                            int            level = item.level + 1;
                            SkillLevelData data  = SkillData.skillMap[value].levels[level];
                            item.nextLevel = data.level;
                            item.range     = data.range;
                            item.time      = data.time;
                            item.level     = level;
                            write(token, FightProtocol.SKILL_UP_SRES, item);
                        }
                    }
                    return;
                }
            }
        }
Exemplo n.º 3
0
        void move(NetFrame.UserToken token, MoveDTO value)
        {
            int userId = getUserID(token);

            value.userId = userId;
            brocast(FightProtocol.MOVE_BRO, value);
        }
Exemplo n.º 4
0
 public void ClientClose(NetFrame.UserToken token, string error)
 {
     if (userRoom.ContainsKey(getUserID(token)))
     {
         roomMap[userRoom[getUserID(token)]].ClientClose(token, error);
     }
 }
Exemplo n.º 5
0
        public InventoryItemDTO UpdateInventory(NetFrame.UserToken token, InventoryItemDTO nowItem)
        {
            int userid = userCache.GetUserId(token);

            InventoryCache.UpdateInventory(userid, GetInventoryByItem(nowItem));
            return(nowItem);
        }
Exemplo n.º 6
0
        public void MessageReceive(NetFrame.UserToken token, NetFrame.auto.SocketModel message)
        {
            switch (message.Command)
            {
            case FightProtocol.ENTER_CREQ:
                enterBattle(token);
                break;

            case FightProtocol.MOVE_CREQ:
                move(token, message.GetMessage <MoveDTO>());
                break;

            case FightProtocol.ATTACK_CREQ:
                attack(token, message.GetMessage <int>());
                break;

            case FightProtocol.DAMAGE_CREQ:
                damage(token, message.GetMessage <DamageDTO>());
                break;

            case FightProtocol.SKILL_UP_CREQ:
                skillUp(token, message.GetMessage <int>());
                break;

            case FightProtocol.SKILL_CREQ:
                skill(token, message.GetMessage <SkillAttackModel>());
                break;
            }
        }
Exemplo n.º 7
0
 public InventoryItemDTO UseInventory(NetFrame.UserToken token, int itemId)
 {
     if (InventoryCache.GetItem(itemId) != null)
     {
         return(GetInventoryItem(InventoryCache.GetItem(itemId)));
     }
     return(null);
 }
Exemplo n.º 8
0
        void attack(NetFrame.UserToken token, int value)
        {
            AttackDTO dto = new AttackDTO();

            dto.userID   = getUserID(token);
            dto.targetID = value;
            brocast(FightProtocol.ATTACK_BRO, dto);
        }
 public int create(NetFrame.UserToken token, string account, string password)
 {
     if (accountCache.hasAccount(account))
     {
         return(1);
     }
     accountCache.add(account, password);
     return(0);
 }
Exemplo n.º 10
0
        public List <InventoryItemDTO> GetInventoryList(NetFrame.UserToken userToken)
        {
            int userid = userCache.GetUserId(userToken);
            List <INVENTORY> inventorys = InventoryCache.GetInventoryList(userid);

            if (inventorys != null)
            {
                return(GetInventoryItemList(inventorys));
            }
            return(null);
        }
Exemplo n.º 11
0
        public dao.model.User getByAccount(NetFrame.UserToken token)
        {
            //帐号是否登陆 获取帐号ID
            int accountId = accBiz.get(token);

            if (accountId == -1)
            {
                return(null);
            }
            return(userCache.getByAccountId(accountId));
        }
Exemplo n.º 12
0
 /// <summary>
 /// 创建账号
 /// </summary>
 /// <param name="token"></param>
 /// <param name="account"></param>
 /// <param name="password"></param>
 /// <returns></returns>
 public int Creat(NetFrame.UserToken token, string account, string password)
 {
     if (account.Length < 3 || password.Length < 3)
     {
         return(-1);                                          //账号或密码长度不够返回-1
     }
     if (accountCache.HasAccaount(account))
     {
         return(-2);                                         //已有此账号
     }
     accountCache.AddAccaount(account, password); return(1); //创建成功
 }
Exemplo n.º 13
0
        public void MessageReceive(NetFrame.UserToken token, NetFrame.auto.SocketModel message)
        {
            int userId = getUserId(token);

            if (userRoom.ContainsKey(userId))
            {
                int roomId = userRoom[userId];
                if (roomMap.ContainsKey(roomId))
                {
                    roomMap[roomId].MessageReceive(token, message);
                }
            }
        }
Exemplo n.º 14
0
        public void ClientClose(NetFrame.UserToken token, string error)
        {
            int userID = getUserID(token);

            //该用户在房间里
            if (userRoom.ContainsKey(userID))
            {
                int roomID;
                userRoom.TryRemove(userID, out roomID);
                if (roomMap.ContainsKey(roomID))
                {
                    roomMap[roomID].ClientClose(token, error);
                }
            }
        }
Exemplo n.º 15
0
        public UserModelDao getByAccount(NetFrame.UserToken token)
        {
            int accountId = accBiz.get(token);//获得当前登录账号id

            if (accountId == -1)
            {
                return(null);//如果账号不在线--获取不到角色
            }
            //判断是否有角色
            if (!userCache.hasuserByAccountID(accountId))
            {
                return(null);
            }
            return(userCache.get(token, accountId));
            //return userCache.get(token);
        }
Exemplo n.º 16
0
        public bool Create(NetFrame.UserToken token, string name)
        {
            //判断账号是否在线
            int accountId = accBiz.get(token);//如果账号不在线获取到-1

            //int accountId = accCache.getId(token);
            if (accountId == -1)
            {
                return(false);
            }
            //判断是否有角色
            if (userCache.hasuserByAccountID(accountId))
            {
                return(false);
            }
            return(userCache.creat(token, name, accountId));
        }
Exemplo n.º 17
0
        public User online(NetFrame.UserToken token)
        {
            int accountId = accBiz.get(token);

            if (accountId == -1)
            {
                return(null);
            }
            User user = userCache.getByAccountId(accountId);

            if (userCache.isOnline(user.id))
            {
                return(null);
            }
            userCache.online(token, user.id);
            return(user);
        }
Exemplo n.º 18
0
        public UserModel OnLine(NetFrame.UserToken token)
        {
            //账号是否登录,获取账号ID
            int accountID = accountBiz.get(token);

            if (accountID == -1)
            {
                return(null);
            }
            UserModel userModel = userCache.getByAccountId(accountID);

            if (userCache.isOnline(userModel.id))
            {
                return(null);
            }
            return(userCache.onLine(token, accountID));
        }
Exemplo n.º 19
0
        public bool Create(NetFrame.UserToken token, string name)
        {
            //帐号是否登陆 获取帐号ID
            int accountId = accBiz.get(token);

            if (accountId == -1)
            {
                return(false);
            }
            //判断当前帐号是否已经拥有角色
            if (userCache.hasByAccountId(accountId))
            {
                return(false);
            }
            userCache.create(token, name, accountId);
            return(true);
        }
Exemplo n.º 20
0
        public bool Create(NetFrame.UserToken token, string name)
        {
            //账号是否登录,获取账号ID
            int accountID = accountBiz.get(token);

            if (accountID == -1)
            {
                return(false);
            }
            //判断当前账号是否已经拥有角色
            if (userCache.hasByAccountId(accountID))
            {
                return(false);
            }

            return(userCache.create(token, name));
        }
Exemplo n.º 21
0
        public dao.UserModelDao online(NetFrame.UserToken token)
        {
            //判断账号是否在线
            int accountId = accBiz.get(token);

            if (accountId == -1)
            {
                return(null);
            }
            UserModelDao user = userCache.getByAccountID(accountId);//通过账号ID获取用户

            if (userCache.isOnline(user.id))
            {
                return(null);
            }
            return(userCache.online(token, user.id));
        }
Exemplo n.º 22
0
 public int login(NetFrame.UserToken token, string account, string password)
 {
     if (!accountCache.hasAccount(account))
     {
         return(1);//不存在账号
     }
     if (!accountCache.match(account, password))
     {
         return(2);//不匹配
     }
     if (accountCache.isOnline(account))
     {
         return(3);                       //账号已经在线
     }
     accountCache.online(token, account); //账号上线
     return(0);
 }
Exemplo n.º 23
0
        public void ClientClose(NetFrame.UserToken token, string error)
        {
            int userId = getUserId(token);

            //判断当前玩家是否有房间
            if (userRoom.ContainsKey(userId))
            {
                int roomId;
                //移除并获取玩家所在房间
                userRoom.TryRemove(userId, out roomId);
                if (roomMap.ContainsKey(roomId))
                {
                    //通知
                    roomMap[roomId].ClientClose(token, error);
                }
            }
        }
Exemplo n.º 24
0
        public void MessageReceive(NetFrame.UserToken token, NetFrame.auto.SocketModel message)
        {
            //if(roomMap.ContainsKey(message.Area))
            //{
            //    roomMap[message.Area].MessageReceive(token, message);
            //}
            int userID = getUserID(token);

            if (userRoom.ContainsKey(userID))
            {
                int roomID = userRoom[userID];
                if (roomMap.ContainsKey(roomID))
                {
                    roomMap[roomID].MessageReceive(token, message);
                }
            }
        }
Exemplo n.º 25
0
 /// <summary>
 /// 0:成功 1:账号重复 2:账号不合法 3:密码不合法
 /// </summary>
 /// <param name="token"></param>
 /// <param name="account"></param>
 /// <param name="password"></param>
 /// <returns></returns>
 public int creat(NetFrame.UserToken token, string account, string password)
 {
     if (account.Length < 2)
     {
         return(2);
     }
     if (password.Length < 4)
     {
         return(3);
     }
     if (accountCache.hasAccount(account))
     {
         return(1);                       //账号存在
     }
     accountCache.add(account, password); //账号添加
     accountCache.online(token, account);
     return(0);                           //创建成功
 }
Exemplo n.º 26
0
 public int Login(NetFrame.UserToken token, string account, string password)
 {
     if (account.Length < 3 || password.Length < 3)
     {
         return(-1);                                          //账号密码格式错误
     }
     if (!accountCache.HasAccaount(account))
     {
         return(-2);                                   //没有此账号
     }
     if (!accountCache.MatchAccaount(account, password))
     {
         return(-3);                                               //密码不匹配
     }
     if (accountCache.IsOnline(account))
     {
         return(-4);                                 //账号已登录
     }
     accountCache.OnLine(token, account); return(1); //登录成功
 }
Exemplo n.º 27
0
        public void ClientClose(NetFrame.UserToken token, string error)
        {
            //当有客户端离开
            leave(token);

            int userId = getUserID(token);

            if (teamOne.ContainsKey(userId) || teamTwo.ContainsKey(userId))
            {
                if (!off.Contains(userId))
                {
                    off.Add(userId);
                }
            }
            if (off.Count == heroCount)
            {
                ScheduleUtil.Instance.removeMission(refeshID);
                EventUtil.destoryFight(Area);
            }
        }
Exemplo n.º 28
0
 public int login(NetFrame.UserToken token, string account, string password)
 {
     if (account == null || password == null)
     {
         return(-4);
     }
     if (!accountCache.hasAccount(account))
     {
         return(-1);
     }
     if (accountCache.isOnline(account))
     {
         return(-2);
     }
     if (!accountCache.match(account, password))
     {
         return(-3);
     }
     accountCache.online(token, account);
     return(0);
 }
Exemplo n.º 29
0
        void enterBattle(NetFrame.UserToken token)
        {
            int userID = getUserID(token);

            if (isEntered(token))
            {
                return;
            }
            base.enter(token);
            if (!enterList.Contains(userID))
            {
                enterList.Add(userID);
            }
            //所有人准备了 发送房间信息
            if (enterList.Count == heroCount)
            {
                FightRoomModel room = new FightRoomModel();
                room.teamOne = teamOne.Values.ToArray();
                room.teamTwo = teamTwo.Values.ToArray();
                brocast(FightProtocol.START_BRO, room);
                //刷新小兵
                refeshMonster();
            }
        }
Exemplo n.º 30
0
        void damage(NetFrame.UserToken token, DamageDTO value)
        {
            int           userID = getUserID(token);
            AbsFightModel atkModel;
            int           skillLevel = 0;

            //判断攻击者
            if (value.userId >= 0)
            {
                if (value.userId != userID)
                {
                    return;
                }
                atkModel = getPlayer(userID);
                if (value.skill > 0)
                {
                    skillLevel = (atkModel as FightPlayerModel).SkillLevel(value.skill);
                    if (skillLevel == -1)
                    {
                        return;
                    }
                }
            }
            else
            {
                atkModel = getPlayer(userID);
            }
            //TODO
            //获取技能算法
            //循环获取目标数据 和攻击者数据 进行伤害计算 得出伤害数值
            if (!SkillProcessMap.has(value.skill))
            {
                return;
            }
            ISkill       skill   = SkillProcessMap.get(value.skill);
            List <int[]> damages = new List <int[]>();

            foreach (int[] item in value.target)
            {
                AbsFightModel target = getPlayer(item[0]);
                skill.damage(skillLevel, ref atkModel, ref target, ref damages);
                //Console.WriteLine("计算伤害值");
                if (target.hp == 0)
                {
                    switch (target.type)
                    {
                    case ModelType.HUMAN:
                        if (target.id > 0)
                        {
                            //击杀英雄
                            //启动定时任务 指定时间之后发送英雄复活信息 并且将英雄数据设置为满状态
                        }
                        else
                        {
                            //击杀小兵
                            //移除小兵数据
                        }
                        break;

                    case ModelType.BUILD:
                        //打破了建筑 给钱
                        break;
                    }
                }
            }
            value.target = damages.ToArray();
            brocast(FightProtocol.DAMAGE_BRO, value);
        }