// 充值金额 static async Task <string> RechargeNum(string time, string channelName) { if (string.IsNullOrEmpty(channelName)) { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <Log_Recharge> listData = await proxyComponent.QueryJsonDBInfos <Log_Recharge>(time); int num = 0; for (int i = 0; i < listData.Count; i++) { num += listData[i].Price; } return("充值金额:" + num + "\r\n"); } else { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <Log_Recharge> listData = await proxyComponent.QueryJsonDBInfos <Log_Recharge>(time); int num = 0; for (int i = 0; i < listData.Count; i++) { AccountInfo accountInfo = await DBCommonUtil.getAccountInfo(listData[i].Uid); if (accountInfo.ChannelName.CompareTo(channelName) == 0) { num += listData[i].Price; } } return("充值金额:" + num + "\r\n"); } }
// 导入老用户 static async Task <string> LoadOldUserCount(string time, string channelName) { if (string.IsNullOrEmpty(channelName)) { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <Log_OldUserBind> listData = await proxyComponent.QueryJsonDBInfos <Log_OldUserBind>(time); return("导入老用户:" + listData.Count + "\r\n"); } else { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <Log_OldUserBind> listData = await proxyComponent.QueryJsonDBInfos <Log_OldUserBind>(time); int count = 0; for (int i = 0; i < listData.Count; i++) { AccountInfo accountInfo = await DBCommonUtil.getAccountInfo(listData[i].Uid); if (accountInfo.ChannelName.CompareTo(channelName) == 0) { ++count; } } return("导入老用户:" + count + "\r\n"); } }
[Get] // url-> /Login?name=11&age=1111 public async Task <HttpResult> BuyYuanBao(int orderId, long userId, int goodsId, int goodsNum, float price, string account, string password) { Log.Info($"web请求发元宝,orderId:{orderId},userId:{userId},goodsId:{goodsId},price:{price}"); try { if (!"admin".Equals(account) || !"jinyou123".Equals(password)) { return(Error("账号错误")); } ShopConfig config = ConfigHelp.Get <ShopConfig>(goodsId); if (config == null) { return(Error("goodsId错误")); } if (price != config.Price) { return(Error("支付的价格不正确")); } await DBCommonUtil.UserRecharge(orderId, userId, goodsId, goodsNum, price); return(Ok()); } catch (Exception e) { Log.Error(e); return(Error()); } }
protected override async void Run(Session session, C2G_GetTaskReward message, Action <G2C_GetTaskReward> reply) { G2C_GetTaskReward response = new G2C_GetTaskReward(); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); //1,任务;2,成就 if (message.GetType == 1) { List <TaskProgressInfo> taskProgressInfoList = await proxyComponent.QueryJson <TaskProgressInfo>($"{{UId:{message.UId},TaskId:{message.TaskInfo.Id}}}"); if (taskProgressInfoList.Count > 0) { if (!taskProgressInfoList[0].IsComplete) { response.Error = ErrorCode.TaskNotComplete; response.Message = "任务还未完成,不能领取奖励"; taskProgressInfoList[0].IsGet = false; await proxyComponent.Save(taskProgressInfoList[0]); } else { taskProgressInfoList[0].IsGet = true; await DBCommonUtil.ChangeWealth(message.UId, 1, message.TaskInfo.Reward, "任务奖励"); await proxyComponent.Save(taskProgressInfoList[0]); } } } else if (message.GetType == 2) { List <ChengjiuInfo> chengjiuInfoList = await proxyComponent.QueryJson <ChengjiuInfo>($"{{UId:{message.UId},TaskId:{message.TaskInfo.Id}}}"); if (chengjiuInfoList.Count > 0) { if (!chengjiuInfoList[0].IsComplete) { response.Error = ErrorCode.TaskNotComplete; response.Message = "成就任务还未完成,不能领取奖励"; chengjiuInfoList[0].IsGet = false; await proxyComponent.Save(chengjiuInfoList[0]); } else { chengjiuInfoList[0].IsGet = true; await DBCommonUtil.ChangeWealth(message.UId, 1, message.TaskInfo.Reward, "成就奖励"); await proxyComponent.Save(chengjiuInfoList[0]); } } } reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }
protected override async void Run(Session session, C2G_FriendRoomInfo message, Action <G2C_FriendRoomInfo> reply) { G2C_FriendRoomInfo response = new G2C_FriendRoomInfo(); try { //获取房间信息 DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); User user = session.GetComponent <SessionUserComponent>().User; List <PlayerBaseInfo> playerInfoList = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{message.UId}}}"); if (playerInfoList.Count > 0) { response.Score = playerInfoList[0].Score; if (!playerInfoList[0].IsGiveFriendKey) { string endTime = CommonUtil.timeAddDays(CommonUtil.getCurDataNormalFormat(), 1); //每天赠送好友房钥匙 await DBCommonUtil.AddFriendKey(message.UId, 3, endTime, "每天赠送3把好友房钥匙"); playerInfoList[0].IsGiveFriendKey = true; response.IsGiveFriendKey = true; Log.Debug(response.IsGiveFriendKey + "bool"); await proxyComponent.Save(playerInfoList[0]); } else { //今天已经赠送好友房钥匙 } } { //向map服务器发送请求 ConfigComponent configCom = Game.Scene.GetComponent <ConfigComponent>(); StartConfigComponent _config = Game.Scene.GetComponent <StartConfigComponent>(); IPEndPoint mapIPEndPoint = _config.MapConfigs[0].GetComponent <InnerConfig>().IPEndPoint; Session mapSession = Game.Scene.GetComponent <NetInnerComponent>().Get(mapIPEndPoint); M2G_FriendRoomInfo m2GFriendRoomInfo = (M2G_FriendRoomInfo)await mapSession.Call(new G2M_FriendRoomInfo() { }); response.Info = m2GFriendRoomInfo.Info; int keyCount = await DBCommonUtil.GetUserFriendKeyNum(message.UId); response.KeyCount = keyCount; } reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }
/// <summary> /// 创建玩家对象 /// </summary> /// <param name="playerId"></param> /// <param name="userId"></param> /// <returns></returns> public static async Task <Gamer> Create(long playerId, long userId, long?id = null) { Gamer gamer = ComponentFactory.CreateWithId <Gamer, long>(id ?? IdGenerater.GenerateId(), userId); gamer.PlayerID = playerId; gamer.isOffline = false; gamer.playerBaseInfo = await DBCommonUtil.getPlayerBaseInfo(userId); return(gamer); }
/// <summary> /// 发货接口 /// </summary> /// <param name="orderId"></param> /// <param name="userId"></param> /// <param name="goodsId"></param> /// <param name="goodsNum"></param> /// <param name="price"></param> public static async Task UserRecharge(int orderId, long userId, int goodsId, int goodsNum, float price) { try { string reward = ""; DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); ShopConfig config = ConfigHelp.Get <ShopConfig>(goodsId); List <Log_Recharge> log_Recharge = await proxyComponent.QueryJson <Log_Recharge>($"{{Uid:{userId}}}"); if (log_Recharge.Count == 0) { reward = "1:120000;105:20;104:1;107:1"; await DBCommonUtil.changeWealthWithStr(userId, reward, "首充奖励"); } reward = config.Items; await DBCommonUtil.changeWealthWithStr(userId, reward, "购买元宝"); //向gate服务器发送请求 StartConfigComponent startConfig = Game.Scene.GetComponent <StartConfigComponent>(); IPEndPoint gateIPEndPoint = startConfig.GateConfigs[0].GetComponent <InnerConfig>().IPEndPoint; Session gateSession = Game.Scene.GetComponent <NetInnerComponent>().Get(gateIPEndPoint); G2H_GamerCharge g2HGamerCharge = (G2H_GamerCharge)await gateSession.Call(new H2G_GamerCharge() { goodsId = goodsId, UId = userId }); // UserComponent userComponent = Game.Scene.GetComponent<UserComponent>(); // User user = userComponent.Get(userId); // //给玩家发送消息 // user?.session?.Send(new Actor_GamerBuyYuanBao() // { // goodsId = goodsId // }); // 记录日志 { Log_Recharge log_recharge = ComponentFactory.CreateWithId <Log_Recharge>(IdGenerater.GenerateId()); log_recharge.Uid = userId; log_recharge.GoodsId = config.Id; log_recharge.Price = config.Price; log_recharge.OrderId = orderId; await proxyComponent.Save(log_recharge); } } catch (Exception e) { Log.Error(e); } }
protected override async void Run(Session session, C2G_GetWeekReward message, Action <G2C_GetWeekReward> reply) { G2C_GetWeekReward response = new G2C_GetWeekReward(); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <WeekRank> weeks = await proxyComponent.QueryJson <WeekRank>($"{{UId:{message.UId}}}"); if (weeks.Count > 0) { if (message.type == 1) { if (weeks[0].IsGetGoldRank) { await DBCommonUtil.changeWealthWithStr(message.UId, GetReward(1, weeks[0].GoldIndex), "领取周财富榜奖励" + GetReward(1, weeks[0].GoldIndex)); weeks[0].IsGetGoldRank = false; response.GoldReward = int.Parse(GetReward(1, weeks[0].GoldIndex).Split(':')[1]); await proxyComponent.Save(weeks[0]); } } else if (message.type == 2) { if (weeks[0].IsGetGameRank) { await DBCommonUtil.changeWealthWithStr(message.UId, GetReward(2, weeks[0].GameIndex), "领取周战绩榜奖励" + GetReward(2, weeks[0].GameIndex)); weeks[0].IsGetGameRank = false; response.GameReward = int.Parse(GetReward(2, weeks[0].GameIndex).Split(':')[1]); await proxyComponent.Save(weeks[0]); } } } else { response.Error = ErrorCode.ERR_Exception; response.Message = "该用户不存在weekRank记录,请检查"; } response.IsGetGameRank = weeks[0].IsGetGameRank; response.IsGetGoldRank = weeks[0].IsGetGoldRank; reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }
protected override async void Run(Session session, C2G_ChangeWealth message, Action <G2C_ChangeWealth> reply) { G2C_ChangeWealth response = new G2C_ChangeWealth(); try { await DBCommonUtil.ChangeWealth(message.UId, message.propId, message.propNum, "C2G_ChangeWealthHandler调用"); reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }
protected override async void Run(Session session, C2G_RealName message, Action <G2C_RealName> reply) { G2C_RealName response = new G2C_RealName(); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <RealName> dailySigns = await proxyComponent.QueryJson <RealName>($"{{Uid:{message.Uid}}}"); if (dailySigns.Count > 0) { // 已经实名过 response.Error = ErrorCode.TodayHasSign; response.Message = "您已实名认证,请勿重复认证"; reply(response); return; } else { reply(response); RealName realName = ComponentFactory.CreateWithId <RealName>(IdGenerater.GenerateId()); realName.Uid = message.Uid; realName.Name = message.Name; realName.IDNumber = message.IDNumber; await proxyComponent.Save(realName); List <PlayerBaseInfo> playerBaseInfos = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{message.Uid}}}"); if (playerBaseInfos.Count > 0) { playerBaseInfos[0].IsRealName = true; await proxyComponent.Save(playerBaseInfos[0]); // 发放实名奖励 { await DBCommonUtil.changeWealthWithStr(message.Uid, "1:3000", "实名认证奖励"); } } } } catch (Exception e) { ReplyError(response, e, reply); } }
/// <summary> /// 记录玩家数据 /// </summary> /// <param name="userId"></param> /// <param name="totalSeconds"></param> /// <returns></returns> public static async Task RecordGamerInfo(long userId, int totalSeconds) { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); ConfigComponent configComponent = Game.Scene.GetComponent <ConfigComponent>(); List <GamerInfoDB> gamerInfos = await proxyComponent.QueryJson <GamerInfoDB>($"{{UId:{userId}}}"); GamerInfoDB gamerInfo; if (gamerInfos.Count == 0) { gamerInfo = ComponentFactory.CreateWithId <GamerInfoDB>(IdGenerater.GenerateId()); } else { gamerInfo = gamerInfos[0]; } gamerInfo.UId = userId; gamerInfo.DailyOnlineTime += totalSeconds; gamerInfo.TotalOnlineTime += totalSeconds; TreasureConfig treasureConfig = configComponent.Get(typeof(TreasureConfig), ++gamerInfo.DailyTreasureCount) as TreasureConfig; // Log.Debug(gamerInfo.DailyTreasureCount + ""); // Log.Debug(JsonHelper.ToJson(treasureConfig)); if (gamerInfo.DailyOnlineTime > treasureConfig?.TotalTime) { gamerInfo.DailyOnlineTime = treasureConfig.TotalTime; } --gamerInfo.DailyTreasureCount; await proxyComponent.Save(gamerInfo); //记录玩家在线时长 await DBCommonUtil.UpdateChengjiu(userId, 107, totalSeconds); await DBCommonUtil.UpdateChengjiu(userId, 108, totalSeconds); await DBCommonUtil.UpdateChengjiu(userId, 109, totalSeconds); }
private static async Task UpdateTask(Room room) { GameControllerComponent controllerComponent = room.GetComponent <GameControllerComponent>(); var dbProxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); foreach (var gamer in room.GetAll()) { if (gamer == null) { continue; } // Log.Debug(str_list.Count + ""); //胜利 if (gamer.UserID == room.huPaiUid) { if (controllerComponent.RoomName == RoomName.ChuJi) { // Log.Debug("新手场SHENGLI"); // 102 新手场 在新手场赢得10场胜利 1000 10 await DBCommonUtil.UpdateTask(gamer.UserID, 102, 1); } else if (controllerComponent.RoomName == RoomName.JingYing) { // Log.Debug("精英场SHENGLI"); // 103 精英场 在精英场赢得30场胜利 100000 30 await DBCommonUtil.UpdateTask(gamer.UserID, 103, 1); } // Log.Debug(" 连赢5场"); // 104 游戏高手 连赢5场 10000 5 await DBCommonUtil.UpdateTask(gamer.UserID, 104, 1); } //输了 else { // Log.Debug("SHULE"); // 104 游戏高手 连赢5场 10000 5 await DBCommonUtil.UpdateTask(gamer.UserID, 104, -1); } //101 新的征程 完成一局游戏 100 1 await DBCommonUtil.UpdateTask(gamer.UserID, 101, 1); } }
protected override async void Run(Session session, C2G_BagOperation message, Action <G2C_BagOperation> reply) { G2C_BagOperation response = new G2C_BagOperation(); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <UserBag> bagInfoList = await proxyComponent.QueryJson <UserBag>($"{{UId:{message.UId}}}"); response.ItemList = new List <Bag>(); List <Bag> itemList = new List <Bag>(); for (int i = 0; i < bagInfoList.Count; ++i) { if (bagInfoList[i].Count <= 0) { continue; } Bag item = new Bag(); item.ItemId = bagInfoList[i].BagId; item.Count = bagInfoList[i].Count; itemList.Add(item); } int fKeyCount = await DBCommonUtil.GetUserFriendKeyNum(message.UId); if (fKeyCount > 0) { Bag keyItem = new Bag(); keyItem.ItemId = 112; keyItem.Count = fKeyCount; itemList.Add(keyItem); } response.ItemList = itemList; reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }
private static async Task UpdatePlayerInfo(Room room, int huaCount) { foreach (var gamer in room.GetAll()) { if (gamer == null) { continue; } //胜利 if (gamer.UserID == room.huPaiUid) { // Log.Debug("玩家:" + gamer.UserID + "胜利"); await DBCommonUtil.UpdatePlayerInfo(gamer.UserID, huaCount, true); } else { // Log.Debug("玩家:" + gamer.UserID + "失败"); await DBCommonUtil.UpdatePlayerInfo(gamer.UserID, 0); } } }
private static async void UpdateTask(Gamer gamer, int amount) { // 105 赚钱高手 当日累计赢取10000金币 10000 10000 await DBCommonUtil.UpdateTask(gamer.UserID, 105, amount); // 110 小试身手 单局赢取10000金币满 100局 if (amount >= 10000) { await DBCommonUtil.UpdateChengjiu(gamer.UserID, 110, 1); } // 111 来者不拒 单局赢取100万金币满 100局 if (amount >= 1000000) { await DBCommonUtil.UpdateChengjiu(gamer.UserID, 111, 1); } // 112 富豪克星 单局赢取一亿金币满 100局 if (amount >= 100000000) { await DBCommonUtil.UpdateChengjiu(gamer.UserID, 112, 1); } }
private static async Task UpdateChengjiu(Room room) { // Log.Debug("更新成就:房间ID为:" + room.Id); foreach (var gamer in room.GetAll()) { if (gamer == null) { Log.Error("更新成就的时候game为null"); continue; } //胜利 if (gamer.UserID == room.huPaiUid) { // Log.Debug("成就胜利"); //赢得10局游戏 await DBCommonUtil.UpdateChengjiu(gamer.UserID, 104, 1); //赢得100局游戏 await DBCommonUtil.UpdateChengjiu(gamer.UserID, 105, 1); //赢得1000局游戏 await DBCommonUtil.UpdateChengjiu(gamer.UserID, 106, 1); } //新手上路 完后10局游戏 await DBCommonUtil.UpdateChengjiu(gamer.UserID, 101, 1); // Log.Debug("不论输赢都会加一" + gamer.UserID + "任务" + 101); //已有小成 完成100局游戏 await DBCommonUtil.UpdateChengjiu(gamer.UserID, 102, 1); // Log.Debug("不论输赢都会加一" + gamer.UserID + "任务" + 102); //完成1000局游戏 await DBCommonUtil.UpdateChengjiu(gamer.UserID, 103, 1); // Log.Debug("不论输赢都会加一" + gamer.UserID + "任务" + 103); } }
protected override async void Run(Session session, C2G_CreateFriendRoom message, Action <G2C_CreateFriendRoom> reply) { G2C_CreateFriendRoom response = new G2C_CreateFriendRoom(); try { User user = session.GetComponent <SessionUserComponent>().User; int keyCount = await DBCommonUtil.GetUserFriendKeyNum(user.UserID); if (keyCount < message.FriendRoomInfo.KeyCount) { response.Error = ErrorCode.ERR_Common; response.Message = "钥匙数量不够!"; reply(response); return; } //向map服务器发送请求 StartConfigComponent config = Game.Scene.GetComponent <StartConfigComponent>(); IPEndPoint mapIPEndPoint = config.MapConfigs[0].GetComponent <InnerConfig>().IPEndPoint; Session mapSession = Game.Scene.GetComponent <NetInnerComponent>().Get(mapIPEndPoint); M2G_CreateFriendRoom m2G_CreateFriendRoom = (M2G_CreateFriendRoom)await mapSession.Call(new G2M_CreateFriendRoom() { UserId = message.UserId, FriendRoomInfo = message.FriendRoomInfo }); response.RoomId = m2G_CreateFriendRoom.RoomId; response.Error = m2G_CreateFriendRoom.Error; response.Message = m2G_CreateFriendRoom.Message; reply(response); } catch (Exception e) { ReplyError(response, e, reply); } await Task.CompletedTask; }
protected override async void Run(Session session, C2G_UseItem message, Action <G2C_UseItem> reply) { G2C_UseItem response = new G2C_UseItem(); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <UserBag> itemInfos = await proxyComponent.QueryJson <UserBag>($"{{UId:{message.UId},BagId:{message.ItemId}}}"); if (itemInfos.Count <= 0) { response.Message = "您的道具数量不足"; response.result = 0; } else { if (itemInfos[0].Count > 0) { await DBCommonUtil.ChangeWealth(message.UId, itemInfos[0].BagId, -1, "使用背包道具"); response.result = 1; await useProp(response, message.UId, message.ItemId); } else { response.Message = "您的道具数量不足"; response.result = 0; } } reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }