private static FundData FundBuy(GameClient client, int fundType) { FundData myData = FundManager.GetFundData(client); FundData result; if (!myData.IsOpen) { result = myData; } else { myData.FundType = fundType; if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot9)) { myData.State = -2; result = myData; } else if (!myData.FundDic.ContainsKey(fundType)) { myData.State = -1; result = myData; } else { FundItem myItem = myData.FundDic[fundType]; if (myItem.BuyType == 1) { myData.State = -4; result = myData; } else if (myItem.BuyType == 3) { myData.State = -5; result = myData; } else { FundInfo fundInfo = FundManager._fundDic[myItem.FundID]; if (fundInfo.Price > client.ClientData.UserMoney) { myData.State = -3; result = myData; } else if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, fundInfo.Price, "基金购买", true, false, false, DaiBiSySType.None)) { myData.State = -1; result = myData; } else { DateTime buyTime = TimeUtil.NowDateTime(); if (!FundManager.DBFundBuy(client, new FundDBItem { zoneID = client.ClientData.ZoneID, UserID = client.strUserID, RoleID = client.ClientData.RoleID, FundType = myData.FundType, FundID = myItem.FundID, BuyTime = buyTime, State = 1 })) { myData.State = -1; result = myData; } else { myItem.BuyType = 1; myItem.BuyTime = buyTime; if (myItem.FundType == 2) { myItem.Value1 = Global.GetOffsetDay(TimeUtil.NowDateTime()) - Global.GetOffsetDay(myItem.BuyTime) + 1; } FundAwardInfo awardInfo = FundManager._fundAwardDic[myItem.AwardID]; if (myItem.Value1 >= awardInfo.Value1 && myItem.Value2 >= awardInfo.Value2) { myItem.AwardType = 2; } else { myItem.AwardType = 3; } myData.State = 1; myData.FundType = fundType; FundManager.CheckActivityTip(client); result = myData; } } } } } return(result); }