diff --git a/FUI_UserData/CTT/assets/Bag/StarSoulBagUI.xml b/FUI_UserData/CTT/assets/Bag/StarSoulBagUI.xml
index 50d20a36..155d519c 100644
--- a/FUI_UserData/CTT/assets/Bag/StarSoulBagUI.xml
+++ b/FUI_UserData/CTT/assets/Bag/StarSoulBagUI.xml
@@ -7,10 +7,10 @@
-
+
-
+
@@ -60,8 +60,8 @@
-
-
+
+
@@ -112,9 +112,9 @@
+
+
+
-
-
-
-
+
\ No newline at end of file
diff --git a/FUI_UserData/CTT/assets/Shop/ButtonShop.xml b/FUI_UserData/CTT/assets/Shop/ButtonShop.xml
new file mode 100644
index 00000000..e7012e5a
--- /dev/null
+++ b/FUI_UserData/CTT/assets/Shop/ButtonShop.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FUI_UserData/CTT/assets/Shop/MultiShopUI.xml b/FUI_UserData/CTT/assets/Shop/MultiShopUI.xml
new file mode 100644
index 00000000..a3de378a
--- /dev/null
+++ b/FUI_UserData/CTT/assets/Shop/MultiShopUI.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FUI_UserData/CTT/assets/Shop/package.xml b/FUI_UserData/CTT/assets/Shop/package.xml
index 5d77fe7e..01de5510 100644
--- a/FUI_UserData/CTT/assets/Shop/package.xml
+++ b/FUI_UserData/CTT/assets/Shop/package.xml
@@ -17,6 +17,8 @@
+
+
\ No newline at end of file
diff --git a/Proto/OuterMessage.proto b/Proto/OuterMessage.proto
index 9f7d6d9c..6bdc8b48 100644
--- a/Proto/OuterMessage.proto
+++ b/Proto/OuterMessage.proto
@@ -3038,3 +3038,18 @@ message M2C_GetUIDByName // IActorLocationResponse
string Message = 92;
repeated KV_string_int32 map=1;
}
+
+//ResponseType M2C_ResolveStarSoul
+message C2M_ResolveStarSoul // IActorLocationRequest
+{
+ int32 RpcId = 90;
+ int64 ActorId = 93;
+ repeated int64 ids=1;
+}
+message M2C_ResolveStarSoul // IActorLocationResponse
+{
+ int32 RpcId = 90;
+ int32 Error = 91;
+ string Message = 92;
+ repeated RewardItem itenList=1;
+}
\ No newline at end of file
diff --git a/Server/Hotfix/Game/Handler/UI/Bag/C2M_ResolveStarSoulHandler.cs b/Server/Hotfix/Game/Handler/UI/Bag/C2M_ResolveStarSoulHandler.cs
new file mode 100644
index 00000000..1adb77dc
--- /dev/null
+++ b/Server/Hotfix/Game/Handler/UI/Bag/C2M_ResolveStarSoulHandler.cs
@@ -0,0 +1,20 @@
+using System;
+
+namespace ET
+{
+ [ActorMessageHandler]
+ public class C2M_ResolveStarSoulHandler : AMActorLocationRpcHandler
+ {
+ protected override async ETTask Run(Unit unit, C2M_ResolveStarSoul request, M2C_ResolveStarSoul response, Action reply)
+ {
+ var bag = unit.GetComponent();
+ string retStr = bag.Resolve(request.ids,response.itenList);
+ if (retStr !=null)
+ {
+ response.Message = retStr;
+ }
+ reply();
+ await ETTask.CompletedTask;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Server/Hotfix/Game/Helper/DropHelper.cs b/Server/Hotfix/Game/Helper/DropHelper.cs
index 9b9c1805..31bd718a 100644
--- a/Server/Hotfix/Game/Helper/DropHelper.cs
+++ b/Server/Hotfix/Game/Helper/DropHelper.cs
@@ -26,7 +26,7 @@ namespace ET
BagHelper.AddItem(unit, itemId, itemCount, isLock, getSource: getSource);
TaskHelper.UpdateTask(unit, itemId).Coroutine();
- list?.Add(new RewardItem() { Id = itemId, Count = 1, ItemType = BagHelper.GetItemType(itemId) });
+ list?.Add(new RewardItem() { Id = itemId, Count = itemCount, ItemType = BagHelper.GetItemType(itemId) });
rewordMap?.Add(unit.Id, (itemId, itemCount));
try
{
diff --git a/Server/Hotfix/Game/Helper/GMTool.cs b/Server/Hotfix/Game/Helper/GMTool.cs
index 87abbe12..9eaaa82b 100644
--- a/Server/Hotfix/Game/Helper/GMTool.cs
+++ b/Server/Hotfix/Game/Helper/GMTool.cs
@@ -619,7 +619,8 @@ namespace ET
else if (cmdType.Equals("winBattle", StringComparison.OrdinalIgnoreCase))
{
if (!unitInLib) return "不在线";
- // BattleBase battle = BattleMgrCompnent.Instance.GetBattle(unitInLib);
+ CopyBattle battle = BattleMgrCompnent.Instance.GetBattle(unitInLib);
+ battle.Victory().Coroutine();
return "成功";
}
else if (cmdType.Equals("queryAccount", StringComparison.OrdinalIgnoreCase))
diff --git a/Server/Hotfix/Game/System/Bag/StarSoulBagSystem.cs b/Server/Hotfix/Game/System/Bag/StarSoulBagSystem.cs
index 4fd62771..ee4f41a3 100644
--- a/Server/Hotfix/Game/System/Bag/StarSoulBagSystem.cs
+++ b/Server/Hotfix/Game/System/Bag/StarSoulBagSystem.cs
@@ -20,7 +20,7 @@ namespace ET
public override void Deserialize(StarSoulBag self)
{
self.getAttributeFunc = self.GetAttribute;
- if(self.usedStarSoulDic.Count==0)
+ if (self.usedStarSoulDic.Count == 0)
self.InitData();
}
}
@@ -61,7 +61,7 @@ namespace ET
long starSoulId = kv.Value;
if (starSoulId != 0)
{
- if(starSoulId==0)
+ if (starSoulId == 0)
return bound;
StarSoulBag starSoulBag = self;
StarSoulItem item = starSoulBag.Get(starSoulId);
@@ -69,17 +69,17 @@ namespace ET
{
return bound;
}
-
+
StarSoulAttributeConfig soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.mainId);
if (soulAttributeConfig.Key == (int) attributeType)
- bound += ItemHelper.GetRealMainValue(soulAttributeConfig.Value,item.level);
+ bound += ItemHelper.GetRealMainValue(soulAttributeConfig.Value, item.level);
for (var i = 0; i < item.viceIds.Length; i++)
{
- if(item.viceIds[i]==0)
+ if (item.viceIds[i] == 0)
break;
soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.viceIds[i]);
if (soulAttributeConfig.Key == (int) attributeType)
- bound += ItemHelper.GetRealViceValue(soulAttributeConfig.Value*(1+item.viceAdd[i]),item.quality);
+ bound += ItemHelper.GetRealViceValue(soulAttributeConfig.Value * (1 + item.viceAdd[i]), item.quality);
}
}
}
@@ -88,8 +88,10 @@ namespace ET
{
Log.Error(e);
}
+
return bound;
}
+
public static bool CanAdd(this StarSoulBag self)
{
return self.ItemCount < StarSoulBag.MaxCount;
@@ -136,7 +138,7 @@ namespace ET
///
///
///
- private static void Sync(this StarSoulBag self,byte key)
+ private static void Sync(this StarSoulBag self, byte key)
{
self.usedStarSoulDic.TryGetValue(key, out long value);
M2C_SyncStarSoulBagItemUsed proto = new();
@@ -144,14 +146,12 @@ namespace ET
proto.value = value;
foreach (StarSoulSuit starSoulSuit in self.Suits)
{
- proto.suitKVs.Add(new KV_int32_int32()
- {
- key = starSoulSuit.Id,
- value = (int) starSoulSuit.type
- });
+ proto.suitKVs.Add(new KV_int32_int32() { key = starSoulSuit.Id, value = (int) starSoulSuit.type });
}
+
MessageHelper.SendActor(self.GetParent(), proto);
}
+
///
/// 同步背包
///
@@ -213,10 +213,13 @@ namespace ET
foreach (int id in item.viceIds)
{
netItem.vice.Add(id);
- }foreach (float id in item.viceAdd)
+ }
+
+ foreach (float id in item.viceAdd)
{
netItem.viceAdd.Add(id);
}
+
itemList.Add(netItem);
}
catch (Exception e)
@@ -224,16 +227,14 @@ namespace ET
Log.Error(e);
}
}
+
usedIdMap.AddRange(self.usedStarSoulDic.Values);
foreach (StarSoulSuit starSoulSuit in self.Suits)
{
- suitKVs.Add(new KV_int32_int32()
- {
- key = starSoulSuit.Id,
- value = (int) starSoulSuit.type
- });
+ suitKVs.Add(new KV_int32_int32() { key = starSoulSuit.Id, value = (int) starSoulSuit.type });
}
}
+
private static string AddExp(this StarSoulBag self, StarSoulItem item, List<(int, int)> expList, ref int needCount)
{
if (item == null)
@@ -469,5 +470,29 @@ namespace ET
self.Sync(item.Id, item);
}
}
+
+ public static string Resolve(this StarSoulBag self, List ids,List _list)
+ {
+ foreach (var id in ids)
+ {
+ try
+ {
+ var item = self.Get(id);
+ if (item != null)
+ {
+ StarSoulResolveConfig config = StarSoulResolveConfigCategory.Instance.Get((long) item.quality);
+ DropHelper.Drop(self.GetParent(),self.Parent.GetComponent(), BattleType.None,config.DropId,null,1,"星魂分解",list: _list);
+ self.Remove(id);
+ }
+ }
+ catch (Exception e)
+ {
+ Log.Error(e);
+ return "系统错误";
+ }
+ }
+
+ return null;
+ }
}
}
\ No newline at end of file
diff --git a/Server/Hotfix/Game/System/Battle/New/CopyBattleSystem.cs b/Server/Hotfix/Game/System/Battle/New/CopyBattleSystem.cs
index cf4943f6..c40e8aa5 100644
--- a/Server/Hotfix/Game/System/Battle/New/CopyBattleSystem.cs
+++ b/Server/Hotfix/Game/System/Battle/New/CopyBattleSystem.cs
@@ -106,7 +106,7 @@ namespace ET
}
}
- private static async ETVoid Victory(CopyBattle self)
+ public static async ETVoid Victory(this CopyBattle self)
{
try
{
diff --git a/Server/Model/Game/Data/MultiShop.cs b/Server/Model/Game/Data/MultiShop.cs
new file mode 100644
index 00000000..f08175b9
--- /dev/null
+++ b/Server/Model/Game/Data/MultiShop.cs
@@ -0,0 +1,24 @@
+using ET;
+using MongoDB.Bson.Serialization.Attributes;
+
+namespace Cal.DataTable
+{
+ [Config]
+ public partial class MultiShopCategory : ACategory
+ {
+ public static MultiShopCategory Instance;
+ public MultiShopCategory()
+ {
+ Instance = this;
+ }
+ }
+
+ public partial class MultiShop:IConfig
+ {
+ [BsonId]
+ public long Id { get; set; }
+ public byte Type;
+ public int ItemId;
+ public long Price;
+ }
+}
diff --git a/Server/Model/Game/Data/StarSoulResolveConfig.cs b/Server/Model/Game/Data/StarSoulResolveConfig.cs
new file mode 100644
index 00000000..b7f0e7f2
--- /dev/null
+++ b/Server/Model/Game/Data/StarSoulResolveConfig.cs
@@ -0,0 +1,22 @@
+using ET;
+using MongoDB.Bson.Serialization.Attributes;
+
+namespace Cal.DataTable
+{
+ [Config]
+ public partial class StarSoulResolveConfigCategory : ACategory
+ {
+ public static StarSoulResolveConfigCategory Instance;
+ public StarSoulResolveConfigCategory()
+ {
+ Instance = this;
+ }
+ }
+
+ public partial class StarSoulResolveConfig:IConfig
+ {
+ [BsonId]
+ public long Id { get; set; }
+ public int DropId;
+ }
+}
diff --git a/Server/Model/Generate/Message/OuterMessage.cs b/Server/Model/Generate/Message/OuterMessage.cs
index 5c9d92ea..ee1fbacf 100644
--- a/Server/Model/Generate/Message/OuterMessage.cs
+++ b/Server/Model/Generate/Message/OuterMessage.cs
@@ -7073,9 +7073,6 @@ namespace ET
[ProtoMember(5)]
public List suitKVs = new List();
- [ProtoMember(3)]
- public long UnitId { get; set; }
-
}
[Message(OuterOpcode.M2C_SyncStarSoulBagInfo)]
@@ -7289,4 +7286,38 @@ namespace ET
}
+ [ResponseType(typeof(M2C_ResolveStarSoul))]
+ [Message(OuterOpcode.C2M_ResolveStarSoul)]
+ [ProtoContract]
+ public partial class C2M_ResolveStarSoul:IActorLocationRequest
+ {
+ [ProtoMember(90)]
+ public int RpcId { get; set; }
+
+ [ProtoMember(93)]
+ public long ActorId { get; set; }
+
+ [ProtoMember(1)]
+ public List ids = new List();
+
+ }
+
+ [Message(OuterOpcode.M2C_ResolveStarSoul)]
+ [ProtoContract]
+ public partial class M2C_ResolveStarSoul:IActorLocationResponse
+ {
+ [ProtoMember(90)]
+ public int RpcId { get; set; }
+
+ [ProtoMember(91)]
+ public int Error { get; set; }
+
+ [ProtoMember(92)]
+ public string Message { get; set; }
+
+ [ProtoMember(1)]
+ public List itenList = new List();
+
+ }
+
}
diff --git a/Server/Model/Generate/Message/OuterOpcode.cs b/Server/Model/Generate/Message/OuterOpcode.cs
index 4a34e4ed..8bf1a94b 100644
--- a/Server/Model/Generate/Message/OuterOpcode.cs
+++ b/Server/Model/Generate/Message/OuterOpcode.cs
@@ -414,5 +414,7 @@ namespace ET
public const ushort M2C_StartActive = 20410;
public const ushort C2M_GetUIDByName = 20411;
public const ushort M2C_GetUIDByName = 20412;
+ public const ushort C2M_ResolveStarSoul = 20413;
+ public const ushort M2C_ResolveStarSoul = 20414;
}
}
diff --git a/Tools/ExcelTool/Excel/ArenaShop.xlsx b/Tools/ExcelTool/Excel/ArenaShop.xlsx
deleted file mode 100644
index c261b46f..00000000
Binary files a/Tools/ExcelTool/Excel/ArenaShop.xlsx and /dev/null differ
diff --git a/Tools/ExcelTool/Excel/FamilyShop.xlsx b/Tools/ExcelTool/Excel/FamilyShop.xlsx
deleted file mode 100644
index 4f8a9d5f..00000000
Binary files a/Tools/ExcelTool/Excel/FamilyShop.xlsx and /dev/null differ
diff --git a/Tools/ExcelTool/Excel/HonorShop.xlsx b/Tools/ExcelTool/Excel/HonorShop.xlsx
deleted file mode 100644
index f04fac0f..00000000
Binary files a/Tools/ExcelTool/Excel/HonorShop.xlsx and /dev/null differ
diff --git a/Tools/ExcelTool/Excel/MaterialBase.xlsx b/Tools/ExcelTool/Excel/MaterialBase.xlsx
index 2b173d9c..0fc7703f 100644
Binary files a/Tools/ExcelTool/Excel/MaterialBase.xlsx and b/Tools/ExcelTool/Excel/MaterialBase.xlsx differ
diff --git a/Tools/ExcelTool/Excel/MonsterBase.xlsx b/Tools/ExcelTool/Excel/MonsterBase.xlsx
index 0f782f2a..53c9ce9c 100644
Binary files a/Tools/ExcelTool/Excel/MonsterBase.xlsx and b/Tools/ExcelTool/Excel/MonsterBase.xlsx differ
diff --git a/Tools/ExcelTool/Excel/MultiShop.xlsx b/Tools/ExcelTool/Excel/MultiShop.xlsx
new file mode 100644
index 00000000..eea5b12f
Binary files /dev/null and b/Tools/ExcelTool/Excel/MultiShop.xlsx differ
diff --git a/Tools/ExcelTool/Excel/Parentset.xlsx b/Tools/ExcelTool/Excel/Parentset.xlsx
index f0159bac..a31d63c1 100644
Binary files a/Tools/ExcelTool/Excel/Parentset.xlsx and b/Tools/ExcelTool/Excel/Parentset.xlsx differ
diff --git a/Tools/ExcelTool/Excel/SonSet.xlsx b/Tools/ExcelTool/Excel/SonSet.xlsx
index 62b56ea7..40ff9bc3 100644
Binary files a/Tools/ExcelTool/Excel/SonSet.xlsx and b/Tools/ExcelTool/Excel/SonSet.xlsx differ
diff --git a/Tools/ExcelTool/Excel/StarShop.xlsx b/Tools/ExcelTool/Excel/StarShop.xlsx
deleted file mode 100644
index 1d51cae1..00000000
Binary files a/Tools/ExcelTool/Excel/StarShop.xlsx and /dev/null differ
diff --git a/Tools/ExcelTool/Excel/StarSoulLevelConfig.xlsx b/Tools/ExcelTool/Excel/StarSoulLevelConfig.xlsx
index 36dcd25b..14d3213b 100644
Binary files a/Tools/ExcelTool/Excel/StarSoulLevelConfig.xlsx and b/Tools/ExcelTool/Excel/StarSoulLevelConfig.xlsx differ
diff --git a/Tools/ExcelTool/Excel/StarSoulResolveConfig.xlsx b/Tools/ExcelTool/Excel/StarSoulResolveConfig.xlsx
new file mode 100644
index 00000000..520bfc69
Binary files /dev/null and b/Tools/ExcelTool/Excel/StarSoulResolveConfig.xlsx differ
diff --git a/Tools/ExcelTool/Excel/md5.txt b/Tools/ExcelTool/Excel/md5.txt
index 2e8845ef..286b8a37 100644
--- a/Tools/ExcelTool/Excel/md5.txt
+++ b/Tools/ExcelTool/Excel/md5.txt
@@ -1 +1 @@
-{ "fileMD5" : { "Anim.xlsx" : "545a68dfcadddaee53a26a0ba19376c1", "RobotAccount.xlsx" : "31431b89eabb3e5ecb63f20b59d30858", "LevelConfig.xlsx" : "91bc9dc0d28ba5b40afef4365043d3ab", "MapSceneConfig.xlsx" : "08b026a5e74128d9a03bc383fa166489", "PrefabConfig.xlsx" : "46ef389511d1c63705c182088bab0285", "RoleConfig.xlsx" : "b997e8f718e7427c9388ae0e27e93d16", "AnimationConfig.xlsx" : "0a7d708c495799f85a8c2a03ebb0dc49", "BossBase.xlsx" : "b4920d9ab94dfbf7fb7bd8811db3cbe5", "CameraPosition.xlsx" : "fbf71d84ad155465c43ff60240de4284", "CharacterGrowth.xlsx" : "a3d0398ea4ee2e3b8b716f7bb29e5f08", "EquipBase.xlsx" : "303516c5bc74dde57a9d0213bc1e00ea", "EquipForge.xlsx" : "fda15bcdc6b1fb0ec797091089682a23", "FamilyBossConfig.xlsx" : "eac9263d56e558729fa2e2d51ef865bf", "Forbidden.xlsx" : "28bbeeb0ebc58adab5eff9167497c7ac", "GoodsBase.xlsx" : "f902d34806e8737c6a8fffe732bbef3d", "ItemUpgrade.xlsx" : "55b96dc713fe42ed05cbbbd6b0865744", "MainStory.xlsx" : "48cc3d0b944dca80862a27c757d67f01", "MarketBase.xlsx" : "1cf03fdbc8dd3a807c3576cf48544d41", "MaterialBase.xlsx" : "fbaddf46f35c18d6f70db178f1c446a2", "MonsterBase.xlsx" : "388bdb7fee113c9a87aaca8e614e3bbf", "NPCBase.xlsx" : "e64543df667ad4bfcabddd90e50768ce", "OnlineRewardBase.xlsx" : "e376d6f31abc8c39397f03f8c24fc7bc", "QuestConfig.xlsx" : "882de4872ea851fea32138f6d48798b1", "RoleGrowth.xlsx" : "1384845a732285f6affef3cf6c67a672", "RolesPosition.xlsx" : "f5888586a320dfcd693c91c1f7cfc90d", "ShopBase.xlsx" : "717de9348e7b7501a5e819947a7fea7e", "SkillConfig.xlsx" : "2c1d2efd7f5c6116ba07f45c305180af", "SkillGroupBase.xlsx" : "e926883a016ef8b883c5c2f69a25ac2a", "SkinBase.xlsx" : "04d3e1c196a7c804e1ba6974f1284c39", "Sys_Code.xlsx" : "8eff5c2fd8743578db17c86a81862d39", "Sys_Prefab.xlsx" : "88655b126bb3ad457457472d80fe7f84", "Sys_Scene.xlsx" : "2daaf184fdcfed70a9254ab5a612d5ec", "TaskBase.xlsx" : "f7aa18a2225a75262b9735bf97dabed1", "TrialCopy.xlsx" : "b85d1a4bdc49dbc63a759a499aed8f5f", "Parentset.xlsx" : "1b4c3c31024f10137e240b4f2ec3df93", "SonAdvancedSet.xlsx" : "7128d07efa77d9de70d956b71c926e31", "SonSet.xlsx" : "3372ca02daaf398954a5f11002899d83", "EffectConfig.xlsx" : "c49b8ae9632120926c26991a25381e35", "HonorShop.xlsx" : "e7f2f48832e7e5fb6f8d56771c0551a6", "SkillLearn.xlsx" : "fb6cbb056172b57358502f18abd86a62", "FamilyShop.xlsx" : "fceadcf0570b35f1f6f24b0a67c73020", "EquipAffixConfig.xlsx" : "e33e0d8d934d7c145c07f1093f412981", "EquipUpgrade.xlsx" : "dc4758cffc7cf51e2a125969b2fc1d49", "MainStoryExp.xlsx" : "1e191962e19dcae5344f53bda64a5dec", "ManulEquip.xlsx" : "0eb382ad71752f63bf1b235809c0c17f", "ManulEquipAttribute.xlsx" : "c4869a18be4c14784fd26b697fa23f86", "ManulEquipMonsterConfig.xlsx" : "da4ca0343b0c77aed966c3ee9568cf68", "TransmigrationAddConfig.xlsx" : "620912bfbe398914fa8b3bf21afeeccf", "EquipBase .xlsx" : "0d52dbe61e0808bc75f59207e73ad7fb", "TitleConfig.xlsx" : "07d9306032f86e7b9642a61a8a2ee966", "GemInlayConfig.xlsx" : "d2bfb6e76b895f5c8f1caed238eeb0f9", "Strengthentable.xlsx" : "fdb418090e31b0bfb93c9ae9fc9bd9f1", "GemPriceConfig.xlsx" : "011721c1a612634195bffd58fb895279", "MapMonsterConfig.xlsx" : "99b1d7454d78e7679deeb29150abd3db", "TransferJobConfig.xlsx" : "5b0daa2b0837e66196fbda214d72678a", "GMConfig.xlsx" : "c8e6ed377384ace1cf783e12b3ade4c8", "SuitConfig.xlsx" : "b67db1e911e14362e3409cb9f5f94216", "PetConfig.xlsx" : "4612dd8a5c3af3d3f21a4b7307eb169d", "PetLevelConfig.xlsx" : "a86c4cbde022ccd884ccf572ad5edfe7", "PetExploreConfig.xlsx" : "333043bd5c172def36660eca1dc8416a", "AIConfig.xlsx" : "871d248a954d8c59188e41d002135c75", "CopyConfig.xlsx" : "0c430ea6eb850380e71b9c6e336ac189", "CopyRewordConfig.xlsx" : "f4de20211685f21d15a8170061fdc7d2", "SpaceTravelConfig.xlsx" : "be6486259f73db40a93bdecef00a066e", "SceneTransConfig.xlsx" : "9e31820e1273e184987f970a20be4a45", "ArenaShop.xlsx" : "3fd4650500dd2bf83064a1fd46e4444d", "StarShop.xlsx" : "e14b5e252416a12318e775d86dd1b2f7", "StarSoulTypeConfig.xlsx" : "c16e5b01ce7261f11f3c1c4c8db1f1d9", "StarSoulAttributeConfig.xlsx" : "eae313d2f6cf4fdba87e53f51dc7d57f", "StarSoulEquipAttributeTypeConfig.xlsx" : "0aadceefcf88bc9d2b6d5c643cad79ce", "StarSoulLevelConfig.xlsx" : "0602d7ff6fbb242a4a0ebfcffd13fa9d", "ActivePerDayConfig.xlsx" : "cf0b65ead205b7468f6e06136ae7a172", "StarSoulCopyConfig.xlsx" : "921a5d72a0a56ef33bbe03285dafe9d5" } }
\ No newline at end of file
+{ "fileMD5" : { "Anim.xlsx" : "545a68dfcadddaee53a26a0ba19376c1", "RobotAccount.xlsx" : "31431b89eabb3e5ecb63f20b59d30858", "LevelConfig.xlsx" : "91bc9dc0d28ba5b40afef4365043d3ab", "MapSceneConfig.xlsx" : "08b026a5e74128d9a03bc383fa166489", "PrefabConfig.xlsx" : "46ef389511d1c63705c182088bab0285", "RoleConfig.xlsx" : "b997e8f718e7427c9388ae0e27e93d16", "AnimationConfig.xlsx" : "0a7d708c495799f85a8c2a03ebb0dc49", "BossBase.xlsx" : "b4920d9ab94dfbf7fb7bd8811db3cbe5", "CameraPosition.xlsx" : "fbf71d84ad155465c43ff60240de4284", "CharacterGrowth.xlsx" : "a3d0398ea4ee2e3b8b716f7bb29e5f08", "EquipBase.xlsx" : "303516c5bc74dde57a9d0213bc1e00ea", "EquipForge.xlsx" : "fda15bcdc6b1fb0ec797091089682a23", "FamilyBossConfig.xlsx" : "eac9263d56e558729fa2e2d51ef865bf", "Forbidden.xlsx" : "28bbeeb0ebc58adab5eff9167497c7ac", "GoodsBase.xlsx" : "f902d34806e8737c6a8fffe732bbef3d", "ItemUpgrade.xlsx" : "55b96dc713fe42ed05cbbbd6b0865744", "MainStory.xlsx" : "48cc3d0b944dca80862a27c757d67f01", "MarketBase.xlsx" : "1cf03fdbc8dd3a807c3576cf48544d41", "MaterialBase.xlsx" : "ce7fd3458aed257b8a78fb8c75a876f8", "MonsterBase.xlsx" : "388bdb7fee113c9a87aaca8e614e3bbf", "NPCBase.xlsx" : "e64543df667ad4bfcabddd90e50768ce", "OnlineRewardBase.xlsx" : "e376d6f31abc8c39397f03f8c24fc7bc", "QuestConfig.xlsx" : "882de4872ea851fea32138f6d48798b1", "RoleGrowth.xlsx" : "1384845a732285f6affef3cf6c67a672", "RolesPosition.xlsx" : "f5888586a320dfcd693c91c1f7cfc90d", "ShopBase.xlsx" : "717de9348e7b7501a5e819947a7fea7e", "SkillConfig.xlsx" : "2c1d2efd7f5c6116ba07f45c305180af", "SkillGroupBase.xlsx" : "e926883a016ef8b883c5c2f69a25ac2a", "SkinBase.xlsx" : "04d3e1c196a7c804e1ba6974f1284c39", "Sys_Code.xlsx" : "8eff5c2fd8743578db17c86a81862d39", "Sys_Prefab.xlsx" : "88655b126bb3ad457457472d80fe7f84", "Sys_Scene.xlsx" : "2daaf184fdcfed70a9254ab5a612d5ec", "TaskBase.xlsx" : "f7aa18a2225a75262b9735bf97dabed1", "TrialCopy.xlsx" : "b85d1a4bdc49dbc63a759a499aed8f5f", "Parentset.xlsx" : "da1f21299afe6361ec2705300e468345", "SonAdvancedSet.xlsx" : "7128d07efa77d9de70d956b71c926e31", "SonSet.xlsx" : "c342bdb10b5c82e8601fe41e5a254409", "EffectConfig.xlsx" : "c49b8ae9632120926c26991a25381e35", "HonorShop.xlsx" : "e7f2f48832e7e5fb6f8d56771c0551a6", "SkillLearn.xlsx" : "fb6cbb056172b57358502f18abd86a62", "FamilyShop.xlsx" : "fceadcf0570b35f1f6f24b0a67c73020", "EquipAffixConfig.xlsx" : "e33e0d8d934d7c145c07f1093f412981", "EquipUpgrade.xlsx" : "dc4758cffc7cf51e2a125969b2fc1d49", "MainStoryExp.xlsx" : "1e191962e19dcae5344f53bda64a5dec", "ManulEquip.xlsx" : "0eb382ad71752f63bf1b235809c0c17f", "ManulEquipAttribute.xlsx" : "c4869a18be4c14784fd26b697fa23f86", "ManulEquipMonsterConfig.xlsx" : "da4ca0343b0c77aed966c3ee9568cf68", "TransmigrationAddConfig.xlsx" : "620912bfbe398914fa8b3bf21afeeccf", "EquipBase .xlsx" : "0d52dbe61e0808bc75f59207e73ad7fb", "TitleConfig.xlsx" : "07d9306032f86e7b9642a61a8a2ee966", "GemInlayConfig.xlsx" : "d2bfb6e76b895f5c8f1caed238eeb0f9", "Strengthentable.xlsx" : "fdb418090e31b0bfb93c9ae9fc9bd9f1", "GemPriceConfig.xlsx" : "011721c1a612634195bffd58fb895279", "MapMonsterConfig.xlsx" : "99b1d7454d78e7679deeb29150abd3db", "TransferJobConfig.xlsx" : "5b0daa2b0837e66196fbda214d72678a", "GMConfig.xlsx" : "c8e6ed377384ace1cf783e12b3ade4c8", "SuitConfig.xlsx" : "b67db1e911e14362e3409cb9f5f94216", "PetConfig.xlsx" : "4612dd8a5c3af3d3f21a4b7307eb169d", "PetLevelConfig.xlsx" : "a86c4cbde022ccd884ccf572ad5edfe7", "PetExploreConfig.xlsx" : "333043bd5c172def36660eca1dc8416a", "AIConfig.xlsx" : "871d248a954d8c59188e41d002135c75", "CopyConfig.xlsx" : "0c430ea6eb850380e71b9c6e336ac189", "CopyRewordConfig.xlsx" : "f4de20211685f21d15a8170061fdc7d2", "SpaceTravelConfig.xlsx" : "be6486259f73db40a93bdecef00a066e", "SceneTransConfig.xlsx" : "9e31820e1273e184987f970a20be4a45", "ArenaShop.xlsx" : "3fd4650500dd2bf83064a1fd46e4444d", "StarShop.xlsx" : "e14b5e252416a12318e775d86dd1b2f7", "StarSoulTypeConfig.xlsx" : "c16e5b01ce7261f11f3c1c4c8db1f1d9", "StarSoulAttributeConfig.xlsx" : "eae313d2f6cf4fdba87e53f51dc7d57f", "StarSoulEquipAttributeTypeConfig.xlsx" : "0aadceefcf88bc9d2b6d5c643cad79ce", "StarSoulLevelConfig.xlsx" : "c19aa663716ffb2690e8b93edf3460bd", "ActivePerDayConfig.xlsx" : "cf0b65ead205b7468f6e06136ae7a172", "StarSoulCopyConfig.xlsx" : "921a5d72a0a56ef33bbe03285dafe9d5", "StarSoulResolveConfig.xlsx" : "ad1ce53ff0e030c0163ec5bb14b8e483", "MultiShop.xlsx" : "3f12a91537c13ad1ba30fe9696bb495b" } }
\ No newline at end of file
diff --git a/Unity/Assets/Download/Config/Hotfix.dll.bytes b/Unity/Assets/Download/Config/Hotfix.dll.bytes
index 2f0968c2..96bb076a 100644
Binary files a/Unity/Assets/Download/Config/Hotfix.dll.bytes and b/Unity/Assets/Download/Config/Hotfix.dll.bytes differ
diff --git a/Unity/Assets/Download/Config/Hotfix.pdb.bytes b/Unity/Assets/Download/Config/Hotfix.pdb.bytes
index 6af1c541..733d85ee 100644
Binary files a/Unity/Assets/Download/Config/Hotfix.pdb.bytes and b/Unity/Assets/Download/Config/Hotfix.pdb.bytes differ
diff --git a/Unity/Assets/Download/Config/HotfixView.dll.bytes b/Unity/Assets/Download/Config/HotfixView.dll.bytes
index 86bdb0d5..ad6c1a37 100644
Binary files a/Unity/Assets/Download/Config/HotfixView.dll.bytes and b/Unity/Assets/Download/Config/HotfixView.dll.bytes differ
diff --git a/Unity/Assets/Download/Config/HotfixView.pdb.bytes b/Unity/Assets/Download/Config/HotfixView.pdb.bytes
index 6fdabfaf..23113f1d 100644
Binary files a/Unity/Assets/Download/Config/HotfixView.pdb.bytes and b/Unity/Assets/Download/Config/HotfixView.pdb.bytes differ
diff --git a/Unity/Assets/Download/DataTable/MaterialBase.json b/Unity/Assets/Download/DataTable/MaterialBase.json
index 324f4c38..0fe5ea9d 100644
--- a/Unity/Assets/Download/DataTable/MaterialBase.json
+++ b/Unity/Assets/Download/DataTable/MaterialBase.json
@@ -1 +1 @@
-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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/Unity/Assets/Download/DataTable/MultiShop.json b/Unity/Assets/Download/DataTable/MultiShop.json
new file mode 100644
index 00000000..1c2d1405
--- /dev/null
+++ b/Unity/Assets/Download/DataTable/MultiShop.json
@@ -0,0 +1 @@
+eNqF2r2O3GQUh/E+Uu4Bbb2Fz9f7wR2ko6CLIgpIkQIJIRqEuHcGVhn/bZ0nbJUFPZ7d4589npN8fP/uox2HvX7318tPX355+f6/b15+/PO3z48/v758+OPzrx8e/9kPr/X68sPvX35+/I/19vX3p9e33DV3yDfmoXn0+TgwT80TcsO8NK8mNzsi7/0zH5oPyv2Z262f2k/o6+z91i/tF/Q7z9d/jPLt63mIrYfYdIj6xiHskEM8voFDjG8dQg2a0SHmtw6hDs3//1Q2h1CL9rTocgh/HCLOQ2isEi0pPs+Fa6wOrSg+z0JprAptUDwuP/ZZq0GbVM/Lz33WKtAW1evyg5+14rNN9W4H7srOD4jraAfuCs6NYmsH7krNnWLvB+6qzElZRT9wV2ZOzCr7gbs6c3JW1Q9cnTk5q9EPXJk5MavZD1yVOSmT96jrwFWZkzJ5i7oMPJRZEDN5h7oMPNRZkDN5g9KBhzoLcja8HXgosyBmI9qBhyoLUjayH3iosiBlo2DgyiyI2RgwcHUW5Gz2wkOdBTmbvfBQZkHMZi88VVmSsgnCU5UlKZsgPJVZErMFwlOdJTlbvfBUZ0nOVi88lVkSs9ULT1WWpGyB8FRlScoWCE9llsRsgfBUZ0nO1mwHXuqsyNla7cBLmRUxW7sdeKmyImX76AdeqqxI2bZ+4KXMipht7wde6qzI2e4fC0udFTnb/WNhKbMiZrt/LCxVVqRsw2NhqbIiZRseC4cyG8Rsw2PhUGcDnNXoBz7U2XCK+4EPZTaC4nPgobEqG0nxOfDUWJGNorh/9xiKbAyKz3EPjRXZmBSfV/XUWJENQFZTPr9rrMbGpvi8qLfEU4nNg2J4CJ9KbBKxKcTU2FRjk4xN/dyttSKbhEwfUVTZVGWTlMkziimzqcwmMZOHFFNnU51NcqZPKQptKrT5hBa6qzlWwQlTaHNBDDezqdDmhnj28VJo64AYnsyWOlsG8YZYmS3vY3rHXKpsBcQGsSJbCTFcW0uNrYI4IFZia0AMj2VLhS0QtkHYUmELhNHb5VJhC4RtELZV2O6F2YTzvFXYNojhPG8Vth1iOM9bhe2AGM7zVmE7IYbzvFXYLojhPG8VtnthPuhUqbDdC3P8sVXYJmFwJ9kqbJOw/k7y+PMZ//tNO7DjgNg0BmGHQewag7DDIQ6NQdgREKfGIOxIiEtjEHYUxEPjAfGAeGo8IZ4QL40XxAvirfGGGITpXwKYgTADYbr+N6N7GAxMF/9mdA+DgenK34zuYTAwXfmb0T2MBqbCDIQtGpgKMxC24JLUjb8Z3MMG/c4qzBbcAOHC0H2/GQhLGJju+817YU5Xle77zQ1iQKL7fnOHGAam637zgJh+ZxXmvTCnq0qX/eYFMSDRZb85vEsa3Ld12W8Owgzu27rsNwdhBvdt3fWbb4iBp676LUCYw3nWTb8FCHM4z7rptwBhAedZN/0WICzgPOum3wKEBZxnXfRbgLCA86x7fgsQFnCedc1vAcKCzrMKi07Y/a/NL7USi001vLYu+i0PquE2pot+S6Ma7mO66Lf0vk6n11ZmGVTTa6uzTKrh4tJVv2X19XI4Y7rrtxxU0++t1M5df15nbpdd/7NVaeem/9b6aFt1du75b+3189XXVtf8dq757212r6tbfju3/Hn5oCEP3fvx9WxV2LnkT7r9lrys8jo3/Lf0sjx9pmrrXO/f0tmmCuvc7d/S1aaq6tzs39LdpkqqZp/6ZWn6TFVULUitTRVUbUi9S3Wfb+OANNpUOQ2DNC8Lx2ernAZw8upb9TTAk17z2iqoAaB89q2KGr0ok39OY+e/5zLd49sAUvIx3b+2n96/+wfYqBAG
\ No newline at end of file
diff --git a/Unity/Assets/Download/DataTable/MultiShop.json.meta b/Unity/Assets/Download/DataTable/MultiShop.json.meta
new file mode 100644
index 00000000..5934be7c
--- /dev/null
+++ b/Unity/Assets/Download/DataTable/MultiShop.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cf4958df5fe7e4f44882909f1bc56b9f
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/Download/DataTable/Parentset.json b/Unity/Assets/Download/DataTable/Parentset.json
index 8d5cc571..4411a1b3 100644
--- a/Unity/Assets/Download/DataTable/Parentset.json
+++ b/Unity/Assets/Download/DataTable/Parentset.json
@@ -1 +1 @@
-eNrlnLFuHEcMhnsDfofg2lyxnBlyhupSpjPgUhAMB3GRxoWiVIHePSc4QO5zY1LK4G72ytOtOMsfS/IbDm/v37+7l23b5PjT34dPf/x+uPv26fDxr9/+/PL0y+Pj4e7+9M3T4e7w4fPjl69Pp7/+/O3Lw/Hw6dfTf9SX/3g+/vgqsefjw/PD8d81C9Ys6TVLaM0tdFUPXTUiV1mBlxVe1p162eBl26mXCi91kpdyYS8NXlray/r/eWkxWx65qmzwssPLvlMvB7wck7wsF/bS4aXv00vZzr08fcp62UJrhp7YEtMitKJUeAkSEdmpl2AfKbvxssFLsI/UnXoJ9pE8+2jozkJXlVD2Ka/xEuwjefaxJbwE+0ieffqVeqnwEuwjefYZS3gJ9pEs+0gL7TZKyEsN2dJQJtNYJGGvLSAk8Tla1G0FLQo4qmyTtJAltABtFZkUI7aEFmCyUiY9F2UJLUBupU56LvoSWoDvSpukxVhCC1Bg0Ula+BJagBWLTSLijjVBbqVP4lOuCY4qYxItck3wSvFJa47zNSu4oOb7Kw5rqKxV3mgNtamWN1pDdq/1jdaQH2t7ozVkmJrOMNWu9yThx1cNdIkqMky1m9YCma/2m9YCGbmOSVrIElqgUtT0zrb26z3HCWiB7lVDBWvbTWuB+ttkkhZlCS1AD63ctBZgn5be2dZxvedLAS3QIW0gt9ZuWgtwZ9PdaNFeoQW4s9lNawHubHnu9Os99wpogY5HA3e2cdNagDub70YLzWuh4E7dbloLcKem+z4eyooeyoqOnZKCAjXdQ/KQZh7SzKkZmEzT/SgP8amHqpKjG6UgJE0T0hYhVAlNT8uGKU0Fr2iaV0IzbxKawJENFVNBD5qmh43PBuqvpuvvhr6yooJpuoJt6BgraoCmawA7n4YsauksKpgWNOQhS+9/X3b5Z9aQOyy9gxQ8u4Z4t/QejLN0hhi1dIxyAsgQV5aOK86gGGLB0rHAX0wYYsHSsSCIBUMsWH4+JpS1ZIlzTUMkm0/SYolzzY481Lc5WpQlZoU6smiXSVosMSvUUQN6maRFbD6mXFgLVLBeJ2lRl9AC9be3SVq0JbQAPXSdpIUuoQXYp9skLWwJLUBuPU1urYS06EtoAe7sY5IWYwktwJ3dJ2kR4852WS0GuHNsc7QIzqhfWgtw55BJWsgSWoA7R5mkRVlCC3DnqJO0qEtoAe4c+dNr9H0GyG3kyS3UT230AIQ08oQU6s62CBWIot83wCsjzysaurPxijsDPYwxZQJamr/izlDLx5yZZQl1Ab67M0dl9XRlVXRvHbXJ07VJ0b11ZHdPZ3dFFDvyo6fzo6J768gwns4wimh3ZBhPZxhF99aROzydOxQnGY5493S8K04yHDHqacI3nGQ44srTjGznsXCycGbt5VPWWoE1gbV0LFiFtQJr6ViwBmsV1tKxYAprDdbSsYDaLXiTjqTfpCP4tYjgjTWSfmON/Pc7kIf37/4Bm8KXDA==
\ No newline at end of file
+eNrlnDFvozcMhvcD7j8UXutBlERKzNaxW4GOQXBocTd06ZCmU5H/3gTXwU+XI5MTbNmj4y+U+OIj+YiSdf/xw72UUuT4wz+HT398Ptx9/XT49e/f//ry9NPj4+Hu/uWbp8Pd4ZffHr/8+fTy1x+/fnk4Hj79/PIf7fU/no/ffkrs+fjw/HD8b8yKMWt6zBoas4SeGqGnZuQpq/Cywct2pV52eNmv1EuFl7rISzmzlwYvLe1l+35eWsyWR56qBV4OeDmu1MsJL+ciL+uZvXR46dfppZRTL18+Zb3soTFDb2yNaREaURq8BImIXKmXYB+pV+Nlh5dgH2lX6iXYR/Lso6GZhZ6qoexT3+Il2Efy7GNbeAn2kTz7jAv1UuEl2Efy7DO38BLsI1n2kR5abdSQlxqypaFMprFIwlpbQEjia7RoZQctKjiqlkVayBZagLaqLIoR20ILMFmti96LuoUWILfaFr0XYwstwHe1L9JibqEFKLDqIi18Cy3AitUWEfHAmCC3OhbxKccER9W5iBY5Jnil+qIx5+mYDVzQ8v0VhzVU1ibvtIba1Oo7rSG7t/ZOa8iPrb/TGjJMS2eYZpe7k/Dtpya6RA0ZptlNa4HM18ZNa4GM3OYiLWQLLVApWnpl28bl7uMEtED3qqOC9XLTWqD+dlmkRd1CC9BDrzetBdinp1e2bV7u/lJAC3RIO8it95vWAtzZ9Wq06G/QAtzZ7aa1AHf2PHf65e57BbRAx6ODO/u8aS3And2vRgvNa6HgTi03rQW4U9N9Hw9lRQ9lRcdKSUGBmu4heUgzD2nm1AxMpul+lIf41ENVydGNUhCSpgmpRAhVQqenpeCUpoJXNM0roTNvEjqBIwUVU0EPmqaHwncD9VfT9begr6yoYJquYAUdY0UN0HQNYOfTkEUtnUUFpwUNecjS69/XVf6JNeQOS68gBe+uId4tvQbjWTpDjFo6RnkCyBBXlo4rnkExxIKlY4G/mDDEgqVjQRALhliw/PmYUNaSLfY1DZFsvkiLLfY1B/LQKGu0qFucFRrIokMWabHFWaGBGjDqIi1i52PqmbVABRttkRZtCy1Qf0dfpEXfQgvQw9BFWugWWoB9hi3SwrbQAuQ20uTWa0iLsYUW4M4xF2kxt9AC3Dl8kRYx7uzn1WKCO2dZo0XwjPq5tQB3TlmkhWyhBbhz1kVa1C20AHfOtkiLtoUW4M6Z371G32eC3Gae3EL91E4PQEgzT0ih7myPUIEo+n0TvDLzvKKhmc03zAz0MOeSE9DS/Q0zQy2fa84sS6gL8L+ZOSqrpyuronvrqE2erk2K7q0ju3s6uyui2JEfPZ0fFd1bR4bxdIZRRLsjw3g6wyi6t47c4encodjJcMS7p+NdsZPhiFFPE75hJ8MRV55mZDuNhRcLJ9ZeP2WtVVgTWEvHgjVYq7CWjgXrsNZgLR0LprDWYS0dC6jdgpt0JH2TjuDXIoIbayR9Y43gdyCCm2EkfTOMWKh2jFAeH6EeyOA7OTH/ud38HfP33eaPe1pEynbzR04T2W7+yKJSd5r/w8cP/wK8UPJt
\ No newline at end of file
diff --git a/Unity/Assets/Download/DataTable/SonSet.json b/Unity/Assets/Download/DataTable/SonSet.json
index 6d61c5e2..aa5ce68f 100644
--- a/Unity/Assets/Download/DataTable/SonSet.json
+++ b/Unity/Assets/Download/DataTable/SonSet.json
@@ -1 +1 @@
-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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/Unity/Assets/Download/DataTable/StarSoulResolveConfig.json b/Unity/Assets/Download/DataTable/StarSoulResolveConfig.json
new file mode 100644
index 00000000..ab7c1fe5
--- /dev/null
+++ b/Unity/Assets/Download/DataTable/StarSoulResolveConfig.json
@@ -0,0 +1 @@
+eNpVyTsKgDAMANC90DtI5g5N+tE6u3iGUlxcnBRX8e5+AoFsD161pqLrLli2FUZ0MJ37MX/06Pu7ufdJnvQP/EE+6C/8UT6qR8+f5JN+5M/yWT/936x5AKH2Mhk=
\ No newline at end of file
diff --git a/Unity/Assets/Download/DataTable/StarSoulResolveConfig.json.meta b/Unity/Assets/Download/DataTable/StarSoulResolveConfig.json.meta
new file mode 100644
index 00000000..34b28170
--- /dev/null
+++ b/Unity/Assets/Download/DataTable/StarSoulResolveConfig.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7405366c9eacc7545ac920d9dd1dfa6e
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/Download/FGUI/Bag/Bag_fui.bytes b/Unity/Assets/Download/FGUI/Bag/Bag_fui.bytes
index aa45f171..dda83de4 100644
Binary files a/Unity/Assets/Download/FGUI/Bag/Bag_fui.bytes and b/Unity/Assets/Download/FGUI/Bag/Bag_fui.bytes differ
diff --git a/Unity/Assets/Download/FGUI/Shop/Shop_atlas0.png b/Unity/Assets/Download/FGUI/Shop/Shop_atlas0.png
index e691163f..6bb16fb9 100644
Binary files a/Unity/Assets/Download/FGUI/Shop/Shop_atlas0.png and b/Unity/Assets/Download/FGUI/Shop/Shop_atlas0.png differ
diff --git a/Unity/Assets/Download/FGUI/Shop/Shop_fui.bytes b/Unity/Assets/Download/FGUI/Shop/Shop_fui.bytes
index af69110e..c0dc3999 100644
Binary files a/Unity/Assets/Download/FGUI/Shop/Shop_fui.bytes and b/Unity/Assets/Download/FGUI/Shop/Shop_fui.bytes differ
diff --git a/Unity/Assets/Hotfix/Logic/Model/Game/Common/OpenUI/EventType.OpenMultiShopUI.cs b/Unity/Assets/Hotfix/Logic/Model/Game/Common/OpenUI/EventType.OpenMultiShopUI.cs
new file mode 100644
index 00000000..2bb3dc16
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Game/Common/OpenUI/EventType.OpenMultiShopUI.cs
@@ -0,0 +1,7 @@
+namespace ET.EventType
+{
+ public struct OpenMultiShopUI
+ {
+ public Scene zoneScene;
+ }
+}
\ No newline at end of file
diff --git a/Unity/Assets/Hotfix/Logic/Model/Game/Common/OpenUI/EventType.OpenMultiShopUI.cs.meta b/Unity/Assets/Hotfix/Logic/Model/Game/Common/OpenUI/EventType.OpenMultiShopUI.cs.meta
new file mode 100644
index 00000000..1de83ad5
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Game/Common/OpenUI/EventType.OpenMultiShopUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1425ff4e421a5d14ab4f64be19e85c59
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/Hotfix/Logic/Model/Generate/Data/MultiShopCategory.Custom.cs b/Unity/Assets/Hotfix/Logic/Model/Generate/Data/MultiShopCategory.Custom.cs
new file mode 100644
index 00000000..1a0c1f8b
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Generate/Data/MultiShopCategory.Custom.cs
@@ -0,0 +1,38 @@
+using System.Collections.Generic;
+using ET;
+
+namespace Cal.DataTable
+{
+ public enum ShopType: byte
+ {
+ None = 0,
+ Gem,
+ Honor,
+ Pvp,
+ Family
+ }
+
+ public partial class MultiShopCategory
+ {
+ private UnOrderMultiMap shopTypeDic = new UnOrderMultiMap();
+
+ public List GetByType(ShopType type)
+ {
+ var list= this.shopTypeDic[(byte) type];
+ if (list == null)
+ {
+ Log.Error($"list ==null where type = {type}");
+ }
+
+ return list;
+ }
+ public override void EndInit()
+ {
+ base.EndInit();
+ foreach (var kv in this.dict)
+ {
+ shopTypeDic.Add(kv.Value.Type,kv.Value);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Unity/Assets/Hotfix/Logic/Model/Generate/Data/MultiShopCategory.Custom.cs.meta b/Unity/Assets/Hotfix/Logic/Model/Generate/Data/MultiShopCategory.Custom.cs.meta
new file mode 100644
index 00000000..8e83289f
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Generate/Data/MultiShopCategory.Custom.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6c2fd1310b77eeb4489e7db229ca755f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterMessage.cs b/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterMessage.cs
index 5c9d92ea..ee1fbacf 100644
--- a/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterMessage.cs
+++ b/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterMessage.cs
@@ -7073,9 +7073,6 @@ namespace ET
[ProtoMember(5)]
public List suitKVs = new List();
- [ProtoMember(3)]
- public long UnitId { get; set; }
-
}
[Message(OuterOpcode.M2C_SyncStarSoulBagInfo)]
@@ -7289,4 +7286,38 @@ namespace ET
}
+ [ResponseType(typeof(M2C_ResolveStarSoul))]
+ [Message(OuterOpcode.C2M_ResolveStarSoul)]
+ [ProtoContract]
+ public partial class C2M_ResolveStarSoul:IActorLocationRequest
+ {
+ [ProtoMember(90)]
+ public int RpcId { get; set; }
+
+ [ProtoMember(93)]
+ public long ActorId { get; set; }
+
+ [ProtoMember(1)]
+ public List ids = new List();
+
+ }
+
+ [Message(OuterOpcode.M2C_ResolveStarSoul)]
+ [ProtoContract]
+ public partial class M2C_ResolveStarSoul:IActorLocationResponse
+ {
+ [ProtoMember(90)]
+ public int RpcId { get; set; }
+
+ [ProtoMember(91)]
+ public int Error { get; set; }
+
+ [ProtoMember(92)]
+ public string Message { get; set; }
+
+ [ProtoMember(1)]
+ public List itenList = new List();
+
+ }
+
}
diff --git a/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterOpcode.cs b/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterOpcode.cs
index 4a34e4ed..8bf1a94b 100644
--- a/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterOpcode.cs
+++ b/Unity/Assets/Hotfix/Logic/Model/Generate/Message/OuterOpcode.cs
@@ -414,5 +414,7 @@ namespace ET
public const ushort M2C_StartActive = 20410;
public const ushort C2M_GetUIDByName = 20411;
public const ushort M2C_GetUIDByName = 20412;
+ public const ushort C2M_ResolveStarSoul = 20413;
+ public const ushort M2C_ResolveStarSoul = 20414;
}
}
diff --git a/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/MultiShop.cs b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/MultiShop.cs
new file mode 100644
index 00000000..f08175b9
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/MultiShop.cs
@@ -0,0 +1,24 @@
+using ET;
+using MongoDB.Bson.Serialization.Attributes;
+
+namespace Cal.DataTable
+{
+ [Config]
+ public partial class MultiShopCategory : ACategory
+ {
+ public static MultiShopCategory Instance;
+ public MultiShopCategory()
+ {
+ Instance = this;
+ }
+ }
+
+ public partial class MultiShop:IConfig
+ {
+ [BsonId]
+ public long Id { get; set; }
+ public byte Type;
+ public int ItemId;
+ public long Price;
+ }
+}
diff --git a/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/MultiShop.cs.meta b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/MultiShop.cs.meta
new file mode 100644
index 00000000..ebe4aa5c
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/MultiShop.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1ab1527e9bb67d248b7ef4a93a35c024
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/StarSoulResolveConfig.cs b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/StarSoulResolveConfig.cs
new file mode 100644
index 00000000..b7f0e7f2
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/StarSoulResolveConfig.cs
@@ -0,0 +1,22 @@
+using ET;
+using MongoDB.Bson.Serialization.Attributes;
+
+namespace Cal.DataTable
+{
+ [Config]
+ public partial class StarSoulResolveConfigCategory : ACategory
+ {
+ public static StarSoulResolveConfigCategory Instance;
+ public StarSoulResolveConfigCategory()
+ {
+ Instance = this;
+ }
+ }
+
+ public partial class StarSoulResolveConfig:IConfig
+ {
+ [BsonId]
+ public long Id { get; set; }
+ public int DropId;
+ }
+}
diff --git a/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/StarSoulResolveConfig.cs.meta b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/StarSoulResolveConfig.cs.meta
new file mode 100644
index 00000000..6f8fde4f
--- /dev/null
+++ b/Unity/Assets/Hotfix/Logic/Model/Module/Data/DataTable/StarSoulResolveConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 79e095f3871ea40419adbd4dfa1e8217
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/HotfixView/Helper/TabHelper.cs b/Unity/Assets/HotfixView/Helper/TabHelper.cs
index 8e1a3544..96ee7ea5 100644
--- a/Unity/Assets/HotfixView/Helper/TabHelper.cs
+++ b/Unity/Assets/HotfixView/Helper/TabHelper.cs
@@ -847,7 +847,18 @@ namespace ET
pos += offset;
ui.self.position = pos;
}
-
+ public static string GetAdditionalPrice(MultiShop config)
+ {
+ return $"\n售价: {config.Price}" + (ShopType)config.Type switch
+ {
+ ShopType.None => "",
+ ShopType.Gem => "星币",
+ ShopType.Honor => "荣誉",
+ ShopType.Pvp => "竞技币",
+ ShopType.Family => "家族贡献",
+ _ => throw new ArgumentOutOfRangeException()
+ };
+ }
public static string GetAdditionalPrice(IConfig itemBase, float discount = 1, MarketType marketType = MarketType.VoucherMarket)
{
sb.Length = 0;
diff --git a/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Bag/FUI_StarSoulBagUI.cs b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Bag/FUI_StarSoulBagUI.cs
index 2ce8a41e..354d11b6 100644
--- a/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Bag/FUI_StarSoulBagUI.cs
+++ b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Bag/FUI_StarSoulBagUI.cs
@@ -30,11 +30,12 @@ namespace ET
public FUI_FrameBag m_frame;
public GList m_slotList;
public GTextField m_txtCapity;
- public GGroup m_gorup;
+ public GTextField m_txtSelection;
public FUI_ButtonSingle m_btnType;
public FUI_ButtonSingle m_btnPosType;
public FUI_ButtonSingle m_btnTime;
public FUI_ComboBox m_comBoxPos;
+ public FUI_ButtonOnlyText m_btnReslove;
public Transition m_Effect;
public const string URL = "ui://71ktouo7f0oatmn";
@@ -115,11 +116,12 @@ namespace ET
m_frame = FUI_FrameBag.Create(domain,com.GetChildAt(0));
m_slotList = (GList)com.GetChildAt(1);
m_txtCapity = (GTextField)com.GetChildAt(2);
- m_gorup = (GGroup)com.GetChildAt(3);
+ m_txtSelection = (GTextField)com.GetChildAt(3);
m_btnType = FUI_ButtonSingle.Create(domain,com.GetChildAt(4));
m_btnPosType = FUI_ButtonSingle.Create(domain,com.GetChildAt(6));
m_btnTime = FUI_ButtonSingle.Create(domain,com.GetChildAt(14));
m_comBoxPos = FUI_ComboBox.Create(domain,com.GetChildAt(16));
+ m_btnReslove = FUI_ButtonOnlyText.Create(domain,com.GetChildAt(17));
m_Effect = com.GetTransitionAt(0);
}
}
@@ -141,12 +143,13 @@ public override void Dispose()
m_frame = null;
m_slotList = null;
m_txtCapity = null;
- m_gorup = null;
+ m_txtSelection = null;
m_btnType = null;
m_btnPosType = null;
m_btnTime = null;
m_comBoxPos.Dispose();
m_comBoxPos = null;
+ m_btnReslove = null;
m_Effect = null;
}
}
diff --git a/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/FUI_MultiShopUI.cs b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/FUI_MultiShopUI.cs
new file mode 100644
index 00000000..cc16e863
--- /dev/null
+++ b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/FUI_MultiShopUI.cs
@@ -0,0 +1,128 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using ET;
+using FairyGUI;
+using FairyGUI.Utils;
+
+namespace ET
+{
+ [ObjectSystem]
+ public class FUI_MultiShopUI_AwakeSystem : AwakeSystem
+ {
+ public override void Awake(FUI_MultiShopUI self, GObject go)
+ {
+ self.Awake(go);
+ }
+ }
+
+ public sealed class FUI_MultiShopUI : FUI
+ {
+ public const string UIPackageName = "Shop";
+ public const string UIResName = "MultiShopUI";
+
+ ///
+ /// {uiResName}的组件类型(GComponent、GButton、GProcessBar等),它们都是GObject的子类。
+ ///
+ public GComponent self;
+
+ public FUI_FrameShopUI m_frame;
+ public GList m_pageList;
+ public GList m_slotList;
+ public const string URL = "ui://9r7gspayfc29g";
+
+ private static GObject CreateGObject()
+ {
+ return UIPackage.CreateObject(UIPackageName, UIResName);
+ }
+
+ private static void CreateGObjectAsync(UIPackage.CreateObjectCallback result)
+ {
+ UIPackage.CreateObjectAsync(UIPackageName, UIResName, result);
+ }
+
+ public static FUI_MultiShopUI CreateInstance(Entity domain)
+ {
+ return EntityFactory.Create(domain, CreateGObject());
+ }
+
+ public static ETTask CreateInstanceAsync(Entity domain)
+ {
+ ETTaskCompletionSource tcs = new ETTaskCompletionSource();
+
+ CreateGObjectAsync((go) =>
+ {
+ tcs.SetResult(EntityFactory.Create(domain, go));
+ });
+
+ return tcs.Task;
+ }
+
+ public static FUI_MultiShopUI Create(Entity domain,GObject go)
+ {
+ return EntityFactory.Create(domain,go);
+ }
+
+ ///
+ /// 通过此方法获取的FUI,在Dispose时不会释放GObject,需要自行管理(一般在配合FGUI的Pool机制时使用)。
+ ///
+ public static FUI_MultiShopUI GetFormPool(Entity domain,GObject go)
+ {
+ var fui = go.Get();
+
+ if(fui == null)
+ {
+ fui = Create(domain,go);
+ }
+
+ fui.isFromFGUIPool = true;
+
+ return fui;
+ }
+
+ public void Awake(GObject go)
+ {
+ if(go == null)
+ {
+ return;
+ }
+
+ GObject = go;
+
+ if (string.IsNullOrWhiteSpace(Name))
+ {
+ Name = Id.ToString();
+ }
+
+ self = (GComponent)go;
+
+ self.Add(this);
+
+ var com = go.asCom;
+
+ if(com != null)
+ {
+
+ m_frame = FUI_FrameShopUI.Create(domain,com.GetChildAt(0));
+ m_pageList = (GList)com.GetChildAt(1);
+ m_slotList = (GList)com.GetChildAt(2);
+ }
+}
+public override void Dispose()
+ {
+ if(IsDisposed)
+ {
+ return;
+ }
+
+ base.Dispose();
+
+ self.Remove();
+ self = null;
+
+ m_frame.Dispose();
+ m_frame = null;
+ m_pageList = null;
+ m_slotList = null;
+ }
+}
+}
\ No newline at end of file
diff --git a/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/FUI_MultiShopUI.cs.meta b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/FUI_MultiShopUI.cs.meta
new file mode 100644
index 00000000..24454877
--- /dev/null
+++ b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/FUI_MultiShopUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2ab8ba8de243c964aa6a2e50706c261a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/PackageShop.cs b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/PackageShop.cs
index f8a766b4..768da1b6 100644
--- a/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/PackageShop.cs
+++ b/Unity/Assets/HotfixView/Model/FGUI/AutoCode/Shop/PackageShop.cs
@@ -7,6 +7,7 @@ namespace ET
public const string Shop = "Shop";
public const string Shop_FrameShopUI = "ui://Shop/FrameShopUI";
public const string Shop_MarketUI = "ui://Shop/MarketUI";
+ public const string Shop_MultiShopUI = "ui://Shop/MultiShopUI";
public const string Shop_ShopUI = "ui://Shop/ShopUI";
}
}
\ No newline at end of file
diff --git a/Unity/Assets/HotfixView/UI/ButlerUI/ButlerUI.cs b/Unity/Assets/HotfixView/UI/ButlerUI/ButlerUI.cs
index db42b426..b6ca5525 100644
--- a/Unity/Assets/HotfixView/UI/ButlerUI/ButlerUI.cs
+++ b/Unity/Assets/HotfixView/UI/ButlerUI/ButlerUI.cs
@@ -65,9 +65,21 @@ namespace ET
ChangeName();
TrialReword();
StarSoulUpgradeUI();
+ AddMultiShopUI();
await ETTask.CompletedTask;
}
+ private void AddMultiShopUI()
+ {
+ var btn = ui.m_taskList.AddItemFromPool().asButton;
+ btn.title = "杂货店";
+ btn.onClick.Set(() =>
+ {
+ Game.EventSystem.Publish(new OpenMultiShopUI() { zoneScene = this.zoneScene });
+ this.ui.GetComponent().Hide();
+ });
+ }
+
private void StarSoulUpgradeUI()
{
var btn = ui.m_taskList.AddItemFromPool().asButton;
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI.meta b/Unity/Assets/HotfixView/UI/MultiShopUI.meta
new file mode 100644
index 00000000..fe61ae89
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 95d1b0a7c4eb2ab4984f7481ed129c0d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUI.cs b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUI.cs
new file mode 100644
index 00000000..dbe02679
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUI.cs
@@ -0,0 +1,120 @@
+using Cal.DataTable;
+using FairyGUI;
+using System;
+using System.Collections.Generic;
+
+namespace ET
+{
+ public class MultiShopUIAwakeSyatem : AwakeSystem
+ {
+ public override void Awake(MultiShopUI self)
+ {
+ self.Awake();
+ }
+ }
+ public class MultiShopUIDestroySyatem : DestroySystem
+ {
+ public override void Destroy(MultiShopUI self)
+ {
+ self.Destroy();
+ }
+ }
+ public class MultiShopUI : Entity
+ {
+ public FUI_MultiShopUI ui;
+ private Scene zoneScene;
+ private ShopType shopType;
+ public void Awake()
+ {
+ zoneScene = this.ZoneScene();
+ ui = GetParent();
+ AwakeAsync().Coroutine();
+ }
+ private async ETVoid AwakeAsync()
+ {
+ RegisterEvent();
+ shopType = ShopType.Gem;
+ Refresh();
+ await ETTask.CompletedTask;
+ }
+
+ private void RegisterEvent()
+ {
+ this.ui.m_pageList.onClickItem.Set(() =>
+ {
+ this.shopType = (ShopType) this.ui.m_pageList.selectedIndex+1;
+ Refresh();
+ });
+ }
+
+ private void Refresh()
+ {
+ ui.m_slotList.RemoveChildrenToPool();
+ List listItemConfig = MultiShopCategory.Instance.GetByType(this.shopType);
+ if (listItemConfig == null)
+ {
+ Log.Error("config == null");
+ return;
+ }
+ for (var i = 0; i < listItemConfig.Count; i++)
+ {
+ var btn =this.ui.m_slotList.AddItemFromPool().asButton;
+ int index = i;
+ var config = listItemConfig[index];
+ btn.icon = UIPackage.GetItemURL(FUIPackage.Bag,BagHelper.GetIconName(config.ItemId).Item2);
+ TabHelper.SetTab(btn, () =>
+ {
+ TabHelper.OpenUI(config.ItemId, TabHelper.GetAdditionalPrice(config));
+ });
+ //!双击购买
+ btn.onClick.Set1(async content =>
+ {
+ if (content.inputEvent.isDoubleClick)
+ {
+#if UNITY_STANDALONE
+ if (!content.inputEvent.ctrl)
+ {
+ await SendBuyProto(index,1);
+ return;
+ }
+
+ FUI_TipUI tipUI = TipHelper.OpenUI("请输入您想购买的数量:", tipType: TipType.DoubleInput);
+ tipUI.m_btnYes.self.onClick.Clear();
+ tipUI.m_btnYes.self.onClick.Set(TipYesCallBack);
+ tipUI.AddEventCallBack(TipYesCallBack);
+ async void TipYesCallBack()
+ {
+ if (int.TryParse(tipUI.m_IptTxt.text, out int count))
+ {
+ if (count <= 0)
+ return;
+ await SendBuyProto(index,count);
+ }
+ }
+#else
+ await SendBuyProto(index, 1);
+#endif
+
+ async ETTask SendBuyProto(int index,int count)
+ {
+ // M2C_BuyInShop ret = await this.zoneScene.GetComponent().Call(new C2M_BuyInShop { PageIndex = this.ui.m_pageList.selectedIndex, SlotIndex = index, Count = count });
+ // if (!ret.Message.IsNullOrEmpty())
+ // {
+ // TipHelper.OpenUI(ret.Message);
+ // return;
+ // }
+ //
+ // Game.EventSystem.Publish_Sync(new ET.EventType.UpdateBagUI { list = ret.BagMapList });
+ }
+ }
+ });
+ }
+ }
+
+
+ public void Destroy()
+ {
+
+ }
+ }
+}
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUI.cs.meta b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUI.cs.meta
new file mode 100644
index 00000000..cc191ebf
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 43a10bc94b578484f9aa81ce10978533
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUIEvent.cs b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUIEvent.cs
new file mode 100644
index 00000000..cf462697
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUIEvent.cs
@@ -0,0 +1,25 @@
+using ET;
+using System;
+using System.Collections.Generic;
+
+namespace ET
+{
+ [UIEvent(FUIPackage.Shop_MultiShopUI)]
+ public class MultiShopUIEvent : AUIEvent
+ {
+ public override async ETTask OnCreate(FUIComponent fuiComponent)
+ {
+ if (!(FUIComponent.Instance.Get(FUIPackage.Shop_MultiShopUI) is FUI_MultiShopUI ui))
+ {
+ ui =await FUI_MultiShopUI.CreateInstanceAsync(fuiComponent);
+ ui.Name = FUIPackage.Shop_MultiShopUI;
+ }
+ return ui;
+ }
+
+ public override void OnRemove(FUIComponent fuiComponent)
+ {
+
+ }
+ }
+}
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUIEvent.cs.meta b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUIEvent.cs.meta
new file mode 100644
index 00000000..4b4c4e1d
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI/MultiShopUIEvent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dc75ab7aea0d1dc439075fa739b2c508
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI/OpenMultiShopUIEvent.cs b/Unity/Assets/HotfixView/UI/MultiShopUI/OpenMultiShopUIEvent.cs
new file mode 100644
index 00000000..5c7f60be
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI/OpenMultiShopUIEvent.cs
@@ -0,0 +1,18 @@
+using ET.EventType;
+using System;
+using System.Collections.Generic;
+
+namespace ET
+{
+ public class OpenMultiShopUIEvent : AEvent
+ {
+ public override async ETTask Run(ET.EventType.OpenMultiShopUI args)
+ {
+ MultiShopUI ui =await FUIHelper.Open(args.zoneScene, FUIPackage.Shop_MultiShopUI, WindowPos.Center, (_ui)=>
+ {
+ //ui.m_Effect.Play();
+ });
+ await ETTask.CompletedTask;
+ }
+ }
+}
diff --git a/Unity/Assets/HotfixView/UI/MultiShopUI/OpenMultiShopUIEvent.cs.meta b/Unity/Assets/HotfixView/UI/MultiShopUI/OpenMultiShopUIEvent.cs.meta
new file mode 100644
index 00000000..49f712e0
--- /dev/null
+++ b/Unity/Assets/HotfixView/UI/MultiShopUI/OpenMultiShopUIEvent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3d82cdcdb0aec6145a9a71ac7a88e46f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Unity/Assets/HotfixView/UI/ShopUI/ShopUI.cs b/Unity/Assets/HotfixView/UI/ShopUI/ShopUI.cs
index 67cd71b3..07e454fe 100644
--- a/Unity/Assets/HotfixView/UI/ShopUI/ShopUI.cs
+++ b/Unity/Assets/HotfixView/UI/ShopUI/ShopUI.cs
@@ -35,11 +35,11 @@ namespace ET
private async ETVoid AwakeAsync()
{
ui.m_pageList.selectedIndex = 0;
- ShowItems(0);
+ this.ShowItems(0);
ui.m_pageList.onClickItem.Set1(concent =>
{
- ShowItems(ui.m_pageList.selectedIndex);
+ this.ShowItems(ui.m_pageList.selectedIndex);
});
//!拖拽进
@@ -49,78 +49,78 @@ namespace ET
});
//!+展示Shop中的Item
- void ShowItems(int pageIndex)
- {
- ui.m_slotList.RemoveChildrenToPool();
- var list = ShopComponent.GetShopBase(this.ui.ZoneScene(),pageIndex);
- if (list == null) return;
- int index = 0;
- foreach (ShopBase shopBase in list)
- {
- int temp = index++;
- GButton btn = ui.m_slotList.AddItemFromPool().asButton;
- btn.icon = UIPackage.GetItemURL(FUIPackage.Bag, BagHelper.GetIconName(shopBase.ItemId).Item2);
- //!显示页签
-#if UNITY_STANDALONE
- btn.onRollOver.Set(() => TabHelper.OpenUI(shopBase.ItemId, TabHelper.GetAdditionalPrice(shopBase)));
- //!隐藏页签
- btn.onRollOut.Set(TabHelper.HideUI);
-#endif
- //!双击购买
- btn.onClick.Set1(async content =>
- {
- if (content.inputEvent.isDoubleClick)
- {
+ await ETTask.CompletedTask;
+ }
+ private void ShowItems(int pageIndex)
+ {
+ this.ui.m_slotList.RemoveChildrenToPool();
+ var list = ShopComponent.GetShopBase(this.ui.ZoneScene(), pageIndex);
+ if (list == null)
+ return;
+ int index = 0;
+ foreach (ShopBase shopBase in list)
+ {
+ int temp = index++;
+ GButton btn = this.ui.m_slotList.AddItemFromPool().asButton;
+ btn.icon = UIPackage.GetItemURL(FUIPackage.Bag, BagHelper.GetIconName(shopBase.ItemId).Item2);
+ //!显示页签
#if UNITY_STANDALONE
- if (!content.inputEvent.ctrl)
+ btn.onRollOver.Set(() => TabHelper.OpenUI(shopBase.ItemId, TabHelper.GetAdditionalPrice(shopBase)));
+ //!隐藏页签
+ btn.onRollOut.Set(TabHelper.HideUI);
+#endif
+ //!双击购买
+ btn.onClick.Set1(async content =>
+ {
+ if (content.inputEvent.isDoubleClick)
+ {
+#if UNITY_STANDALONE
+ if (!content.inputEvent.ctrl)
+ {
+ await SendBuyProto(1);
+ return;
+ }
+
+ FUI_TipUI tipUI = TipHelper.OpenUI("请输入您想购买的数量:", tipType: TipType.DoubleInput);
+ tipUI.m_btnYes.self.onClick.Clear();
+ tipUI.m_btnYes.self.onClick.Set(TipYesCallBack);
+ tipUI.AddEventCallBack(TipYesCallBack);
+ async void TipYesCallBack()
+ {
+ if (int.TryParse(tipUI.m_IptTxt.text, out int count))
{
- await SendBuyProto(1);
- return;
- }
- FUI_TipUI tipUI = TipHelper.OpenUI("请输入您想购买的数量:", tipType: TipType.DoubleInput);
- tipUI.m_btnYes.self.onClick.Clear();
- tipUI.m_btnYes.self.onClick.Set(TipYesCallBack);
- tipUI.AddEventCallBack(TipYesCallBack);
- async void TipYesCallBack()
- {
- if (int.TryParse(tipUI.m_IptTxt.text, out int count))
- {
- if (count <= 0) return;
- await SendBuyProto(count);
- }
+ if (count <= 0)
+ return;
+ await SendBuyProto(count);
}
+ }
#else
await SendBuyProto(1);
#endif
- async ETTask SendBuyProto(int count)
+ async ETTask SendBuyProto(int count)
+ {
+ M2C_BuyInShop ret = await this.zoneScene.GetComponent().Call(new C2M_BuyInShop { PageIndex = this.ui.m_pageList.selectedIndex, SlotIndex = temp, Count = count });
+ if (!ret.Message.IsNullOrEmpty())
{
- M2C_BuyInShop ret = await zoneScene.GetComponent().Call(new C2M_BuyInShop { PageIndex = ui.m_pageList.selectedIndex, SlotIndex = temp, Count = count });
- if (!ret.Message.IsNullOrEmpty())
- {
- TipHelper.OpenUI(ret.Message);
- return;
- }
- Game.EventSystem.Publish_Sync(new ET.EventType.UpdateBagUI
- {
- list=ret.BagMapList
- });
+ TipHelper.OpenUI(ret.Message);
+ return;
}
+ Game.EventSystem.Publish_Sync(new ET.EventType.UpdateBagUI { list = ret.BagMapList });
}
+ }
#if !UNITY_STANDALONE
else
{
TabHelper.OpenUI(shopBase.ItemId, TabHelper.GetAdditionalPrice(shopBase));
}
#endif
-
- });
- }
+ });
}
- await ETTask.CompletedTask;
}
+
public async ETVoid SellItem(EventContext context)
{
if (!(context.data is UIDragArgs args)) return;
diff --git a/Unity/Assets/HotfixView/UI/StarSoulBagUI/StarSoulBagUI.cs b/Unity/Assets/HotfixView/UI/StarSoulBagUI/StarSoulBagUI.cs
index 77839097..af056480 100644
--- a/Unity/Assets/HotfixView/UI/StarSoulBagUI/StarSoulBagUI.cs
+++ b/Unity/Assets/HotfixView/UI/StarSoulBagUI/StarSoulBagUI.cs
@@ -42,6 +42,8 @@ namespace ET
private List list = new List();
private LinkedList tempList = new LinkedList();
+ private List selection = new List();
+
public static event Action clickEvent;
public void Awake()
@@ -55,6 +57,7 @@ namespace ET
// this.rollOverAction = this.OnRollOver;
this.ui.m_slotList.itemRenderer = OnItemRender;
RegistEvent();
+ ReFreshSelection();
}
AwakeAsync().Coroutine();
@@ -63,6 +66,7 @@ namespace ET
private async ETVoid AwakeAsync()
{
bag ??= this.zoneScene.GetComponent().MyUnit.GetComponent();
+ clickEvent += OnClickStarSoul;
ShowSlots();
await ETTask.CompletedTask;
}
@@ -163,6 +167,56 @@ namespace ET
this.ui.m_sortType.onChanged.Set(SortTypeChanged);
this.ui.m_quality.onChanged.Set(QualityTypeChanged);
ui.m_comBoxPos.self.onChanged.Set(ChangeEquipPos);
+ this.ui.m_btnReslove.self.onClick.Set(Resolve);
+ }
+
+ private void OnClickStarSoul(long obj)
+ {
+ var item = this.bag.Get(obj);
+ if(item.isLocked|| item.isUsed)
+ return;
+ if (this.selection.Contains(obj))
+ this.selection.Remove(obj);
+ else
+ this.selection.Add(obj);
+ this.ReFreshSelection();
+ }
+
+ private void Resolve()
+ {
+ FUI_TipUI tip = TipHelper.OpenUI($"是否分解已经选择的 {selection.Count} 个星魂?", tipType: TipType.Double);
+ tip.m_btnYes.self.onClick.Set(async () =>
+ {
+ var proto = new C2M_ResolveStarSoul();
+ proto.ids.AddRange(this.selection);
+ selection.Clear();
+ this.ReFreshSelection();
+ M2C_ResolveStarSoul ret = await zoneScene.GetComponent().Call(proto);
+ if (!ret.Message.IsNullOrEmpty())
+ {
+ TipHelper.OpenUI(ret.Message);
+ return;
+ }
+
+ string str = null;
+ foreach (RewardItem rewardItem in ret.itenList)
+ {
+ str += $"{BagHelper.GetIconName(rewardItem.Id).Item1} X {rewardItem.Count}\n";
+ }
+
+ TipHelper.OpenUI(str);
+ });
+ }
+
+ private void ReFreshSelection()
+ {
+ if (this.selection.Count == 0)
+ {
+ this.ui.m_txtSelection.text = null;
+ return;
+ }
+
+ this.ui.m_txtSelection.text = $"已经选择 {this.selection.Count} 个星魂";
}
private void ChangeEquipPos()
@@ -287,6 +341,8 @@ namespace ET
public void Destroy()
{
list.Clear();
+ this.selection.Clear();
+ clickEvent -= OnClickStarSoul;
}
}
}
\ No newline at end of file
diff --git a/Unity/Assets/Model/Module/Numeric/NumericType.cs b/Unity/Assets/Model/Module/Numeric/NumericType.cs
index 279096ad..f0b08e59 100644
--- a/Unity/Assets/Model/Module/Numeric/NumericType.cs
+++ b/Unity/Assets/Model/Module/Numeric/NumericType.cs
@@ -125,7 +125,7 @@
Title = 1038,
Energy = 1039,
///
- /// 竞技币
+ /// 竞技币,废弃
///
PvpCurrency = 1040,
///