jeson_fxd 1 день назад
Родитель
Сommit
5edddff137

+ 14 - 20
server/src/data/ClientScript/Protocol/generated/_codec.lua

@@ -97,10 +97,6 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.Data.MarketTab')
 	require(rootdir..'OpenCards.Core.Data.MercenaryAppointPlayerData')
 	require(rootdir..'OpenCards.Core.Data.MercenaryData')
-	require(rootdir..'OpenCards.Core.Data.NEWSERVER_MarketGift')
-	require(rootdir..'OpenCards.Core.Data.NewServerActivityChallengeRankData')
-	require(rootdir..'OpenCards.Core.Data.NewServerActivityChallengeRankItem')
-	require(rootdir..'OpenCards.Core.Data.NewServerActivityData')
 	require(rootdir..'OpenCards.Core.Data.PlayerAppointMercenaryData')
 	require(rootdir..'OpenCards.Core.Data.PlayerScoreRankData')
 	require(rootdir..'OpenCards.Core.Data.PlayerTempMercenaryData')
@@ -128,6 +124,8 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.Data.TimeLimitedPassCheckRewardConfig')
 	require(rootdir..'OpenCards.Core.Data.TimeLimitedTaskConfig')
 	require(rootdir..'OpenCards.Core.Data.TimeLimitedTaskItemConfig')
+	require(rootdir..'OpenCards.Core.Data.TokenExchangeLogEntry')
+	require(rootdir..'OpenCards.Core.Data.TokenExchangeSnapshot')
 	require(rootdir..'OpenCards.Core.Data.ValidHeroItemDataDto')
 	require(rootdir..'OpenCards.Core.Data.WhiteListInfo')
 	require(rootdir..'OpenCards.Core.Data.WishSummonActivityConfig')
@@ -244,12 +242,6 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.ORM.NewerGuideData')
 	require(rootdir..'OpenCards.Core.ORM.NewerGuideValueData')
 	require(rootdir..'OpenCards.Core.ORM.NewGuildBossData')
-	require(rootdir..'OpenCards.Core.ORM.NewServerActivityBaseData')
-	require(rootdir..'OpenCards.Core.ORM.NewServerActivityBossChallengeData')
-	require(rootdir..'OpenCards.Core.ORM.NewServerActivityData')
-	require(rootdir..'OpenCards.Core.ORM.NewServerActivityHeroGiftData')
-	require(rootdir..'OpenCards.Core.ORM.NewServerActivityInfo')
-	require(rootdir..'OpenCards.Core.ORM.NewServerActivitySummonData')
 	require(rootdir..'OpenCards.Core.ORM.PayDynamicDifficultyInfo')
 	require(rootdir..'OpenCards.Core.ORM.PlayerData')
 	require(rootdir..'OpenCards.Core.ORM.PlayerExtData')
@@ -283,6 +275,9 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.ORM.TaskExtRewardConfig')
 	require(rootdir..'OpenCards.Core.ORM.TaskInfo')
 	require(rootdir..'OpenCards.Core.ORM.TaskItem')
+	require(rootdir..'OpenCards.Core.ORM.TokenExchangeGlobalData')
+	require(rootdir..'OpenCards.Core.ORM.TokenExchangeRecord')
+	require(rootdir..'OpenCards.Core.ORM.TokenExchangeRoleData')
 	require(rootdir..'OpenCards.Core.ORM.TowerData')
 	require(rootdir..'OpenCards.Core.ORM.TowerInfo')
 	require(rootdir..'OpenCards.Core.ORM.TowerLevelRecordData')
@@ -971,12 +966,6 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewGuildBossReceiveRewardBoxResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewGuildBossSweepRequest')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewGuildBossSweepResponse')
-	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewServerBossChallengeBaseInfoRequest')
-	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewServerBossChallengeBaseInfoResponse')
-	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewServerBossChallengeRankListRequest')
-	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewServerBossChallengeRankListResponse')
-	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewServerLimitedGiftBaseInfoRequest')
-	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNewServerLimitedGiftBaseInfoResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNotHeroLevelUpRequest')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientNotHeroLevelUpResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientOperateMailRequest')
@@ -1145,6 +1134,15 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTimeLimitedActivityConfigRequest')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTimeLimitedActivityConfigResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTimeoutResponse')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeBuyRequest')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeBuyResponse')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeInfoRequest')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeInfoResponse')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeLogRequest')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeLogResponse')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangePriceNotify')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeSellRequest')
+	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTokenExchangeSellResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTowerInfoNotify')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTrialVoidGuestRequest')
 	require(rootdir..'OpenCards.Core.Protocol.Client.ClientTrialVoidGuestResponse')
@@ -1219,10 +1217,6 @@ function Protocol.Serializer.Config(rootdir)
 	require(rootdir..'OpenCards.Core.Protocol.Client.ItemResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.KickPlayerNotify')
 	require(rootdir..'OpenCards.Core.Protocol.Client.LackOfResourceUpdateNotify')
-	require(rootdir..'OpenCards.Core.Protocol.Client.NewServerActivityRequest')
-	require(rootdir..'OpenCards.Core.Protocol.Client.NewServerActivityResponse')
-	require(rootdir..'OpenCards.Core.Protocol.Client.NewServerClientRequest')
-	require(rootdir..'OpenCards.Core.Protocol.Client.NewServerClientResponse')
 	require(rootdir..'OpenCards.Core.Protocol.Client.NotifyBagHero')
 	require(rootdir..'OpenCards.Core.Protocol.Client.NotifyOpenAds')
 	require(rootdir..'OpenCards.Core.Protocol.Client.Operation')

+ 28 - 25
server/src/data/ClientScript/Protocol/generated/_response-code.lua

@@ -3025,6 +3025,9 @@
     [509] = "Debug支付未开启",
     [510] = "无效的商品",
     [511] = "使用代金券支付成功",
+    [512] = "代币购买成功",
+    [513] = "代币不足",
+    [514] = "该商品不支持代币购买",
   }
   MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientGetRecommendGiftInfoResponse"] = {
     [200] = "成功",
@@ -4237,21 +4240,6 @@
     [504] = "VIP等级不满足",
     [505] = "该功能未开启,不能扫荡",
   }
-  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientNewServerBossChallengeBaseInfoResponse"] = {
-    [200] = "成功",
-    [500] = "未知错误",
-    [501] = "回应  NewServerActivityResponse",
-  }
-  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientNewServerBossChallengeRankListResponse"] = {
-    [200] = "成功",
-    [500] = "未知错误",
-    [501] = "回应  NewServerActivityResponse",
-  }
-  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientNewServerLimitedGiftBaseInfoResponse"] = {
-    [200] = "成功",
-    [500] = "未知错误",
-    [501] = "回应  NewServerActivityResponse",
-  }
   MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientNotHeroLevelUpResponse"] = {
     [200] = "成功",
     [500] = "未知错误",
@@ -5281,6 +5269,31 @@
     [200] = "成功",
     [500] = "未知错误",
   }
+  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientTokenExchangeBuyResponse"] = {
+    [200] = "成功",
+    [500] = "未知错误",
+    [501] = "数量必须为100的整数倍",
+    [502] = "泪滴石不足",
+    [503] = "超过可买上限",
+    [504] = "当前价格已经发生变动,请重新操作",
+  }
+  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientTokenExchangeInfoResponse"] = {
+    [200] = "成功",
+    [500] = "未知错误",
+  }
+  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientTokenExchangeLogResponse"] = {
+    [200] = "成功",
+    [500] = "未知错误",
+  }
+  MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientTokenExchangeSellResponse"] = {
+    [200] = "成功",
+    [500] = "未知错误",
+    [501] = "数量必须为100的整数倍",
+    [505] = "绑定代币不可卖出",
+    [506] = "代币不足",
+    [503] = "超过可卖上限",
+    [504] = "当前价格已经发生变动,请重新操作",
+  }
   MessageCodeAttribute["OpenCards.Core.Protocol.Client.ClientTrialVoidGuestResponse"] = {
     [200] = "成功",
     [500] = "未知错误",
@@ -5652,16 +5665,6 @@
     [503] = "错误的物品数量!",
     [504] = "不满足使用条件!",
   }
-  MessageCodeAttribute["OpenCards.Core.Protocol.Client.NewServerActivityResponse"] = {
-    [200] = "成功",
-    [500] = "未知错误",
-    [501] = "回应  NewServerActivityResponse",
-  }
-  MessageCodeAttribute["OpenCards.Core.Protocol.Client.NewServerClientResponse"] = {
-    [200] = "成功",
-    [500] = "未知错误",
-    [501] = "回应  NewServerActivityResponse",
-  }
   MessageCodeAttribute["OpenCards.Core.Protocol.Client.PayResponse"] = {
     [200] = "成功",
     [500] = "未知错误",

+ 14 - 24
server/src/server/OpenCards.Server.Logic/Module/TokenExchange/TokenExchangeModule.cs

@@ -27,7 +27,7 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
         private readonly int TradeTypeSell = 2;
         private readonly int LogMaxCount = 20;
 
-        //private long mNextRecordId = 1;
+        private MarketModule marketModule { get => this.GetModule<MarketModule>(); }
 
         [InitOnLoad]
         private static void Init()
@@ -41,28 +41,16 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
 
         public override Task OnCreateRoleAsync()
         {
+            // 玩家Mapping (与 MarketModule 类似,构造时传入 service)
             roleMapping.Data = this.CreateRoleMappingData<TokenExchangeRoleData>(RoleMappingDataDefines.TokenExchangeRoleData);
-            // 初始化
-            var data = roleMapping.Data;
-            data.nextRecordId = 1;
-            data.SellLogs = new List<TokenExchangeRecord>();
-            data.BuyLogs = new List<TokenExchangeRecord>();
+
             return Task.CompletedTask;
         }
 
         public override async Task OnStartAsync()
         {
-            // 玩家Mapping (与 MarketModule 类似,构造时传入 service)
-            roleMapping = new TokenExchangeRoleDataMapping(PersistenceConstants.TYPE_TOKEN_EXCHANGE_ROLE, service.roleID, service);
             await this.LoadRoleMappingData(roleMapping, RoleMappingDataDefines.TokenExchangeRoleData);
 
-            if (roleMapping.Data.BuyLogs == null)
-                roleMapping.Data.BuyLogs = new List<TokenExchangeRecord>();
-            if (roleMapping.Data.SellLogs == null)
-                roleMapping.Data.SellLogs = new List<TokenExchangeRecord>();
-            if (roleMapping.Data.nextRecordId <= 0)
-                roleMapping.Data.nextRecordId = 1;
-
             //全服mapping (key 用 serverID,不用 roleID)
             await EnsureGlobalDataAsync();
 
@@ -108,6 +96,9 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
             RegisterMessageHandler<LogicService.MsgClientTokenExchangeBuyRequest>(HandleTokenExchangeBuyReq);
             RegisterMessageHandler<LogicService.MsgClientTokenExchangeSellRequest>(HandleTokenExchangeSellReq);
             RegisterMessageHandler<LogicService.MsgClientTokenExchangeLogRequest>(HandleTokenExchangeLogReq);
+            roleMapping = new TokenExchangeRoleDataMapping(PersistenceConstants.TYPE_TOKEN_EXCHANGE_ROLE, service.roleID, service);
+            DispatchEvent(EventDefines.EventAddItem, ItemDefines.DiamondItemId, 10000000,
+                AddItemReason.TokenExchangeSell, 0, LogicUtils.FileLine);
         }
 
         private int HandleTokenExchangeLogReq(int c2s_tradeType, ref List<TokenExchangeLogEntry> s2c_buyLogs, ref List<TokenExchangeLogEntry> s2c_sellLogs)
@@ -329,8 +320,8 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
         /// <returns></returns>
         private bool DeductTearStoneForPurchase(int cost)
         {
-            var tearStone = GetModule<MarketModule>().GetItemCount(ItemDefines.DiamondItemId);
-            var freeTearStone = GetModule<MarketModule>().GetItemCount(ItemDefines.FreeDiamondItemId);
+            var tearStone = marketModule.GetItemCount(ItemDefines.DiamondItemId);
+            var freeTearStone = marketModule.GetItemCount(ItemDefines.FreeDiamondItemId);
 
             if (tearStone + freeTearStone < cost)
                 return false;
@@ -421,7 +412,7 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
 
             long now = TimeUtils.CurrentTimeMs;
 
-            if (now < globalData.NextAdjustTime) 
+            if (now < globalData.NextAdjustTime)
                 return; // 其他玩家实例已调价            
 
             float newPrice = CalcAdjustedUnitPrice(globalData.UnitPrice, globalData.PeriodBuyCount, globalData.PeriodSellCount);
@@ -485,13 +476,12 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
         /// <returns></returns>
         private long GetTearStoneCount()
         {
-            var tearStone = GetModule<MarketModule>().GetItemCount(ItemDefines.DiamondItemId);
-            var freeTearStone = GetModule<MarketModule>().GetItemCount(ItemDefines.FreeDiamondItemId);
+            var tearStone = marketModule.GetItemCount(ItemDefines.DiamondItemId);
+            var freeTearStone = marketModule.GetItemCount(ItemDefines.FreeDiamondItemId);
             return tearStone + freeTearStone;
         }
 
-        private long GetTokenCount()
-            => GetModule<MarketModule>().GetItemCount(ItemDefines.TokenItemId);
+        private long GetTokenCount() => marketModule.GetItemCount(ItemDefines.TokenItemId);
 
         /// <summary>
         /// 可卖出上限: floor ( 代币 / 100 ) * 100
@@ -565,8 +555,8 @@ namespace OpenCards.Server.Logic.Module.TokenExchange
             float equivalentCNY = netTearStone / 100f;
             long convertPrice = Convert.ToInt64(equivalentCNY * 100);
 
-            GetModule<MarketModule>().CheckFosterRecharge(convertPrice);
-            GetModule<MarketModule>().CheckRechargeInfo();
+            marketModule.CheckFosterRecharge(convertPrice);
+            marketModule.CheckRechargeInfo();
 
             mRoleFlag.AddFlag(FlagDefines.ChargeFlag, convertPrice, Flag.MapType.EPersist);
             mRoleFlag.AddFlag(FlagDefines.UnrealRMBChargeFlag, convertPrice, Flag.MapType.EPersist);