星魂副本

develope
Cal 2021-05-05 13:36:19 +08:00
parent 2ff045e307
commit f83b563014
223 changed files with 3222 additions and 822 deletions

1
Export/10001.json Normal file

File diff suppressed because one or more lines are too long

1
Export/机器人.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -7,20 +7,18 @@
</image>
<image id="n7_p3nr" name="img" src="spuy6h" fileName="Assets/Common_baiban.png" pkg="kqsmrpxl" xy="26,25" size="48,48"/>
<loader id="n1_fyvb" name="icon" xy="26,25" size="48,48" url="ui://71ktouo7rybex" fill="scaleFree" clearOnPublish="true"/>
<text id="n2_rybe" name="title" xy="8,76" size="86,23" fontSize="15" color="#ff9966" align="center" vAlign="middle" leading="0" autoSize="none" strokeColor="#000000" text="青龙青龙">
<relation target="n1_fyvb" sidePair="center-center,top-bottom"/>
</text>
<image id="n4_m7kb" name="n4" src="10i4tl1" fileName="Assets/CommonUI_BUFFinfo_kuang.png" pkg="kqsmrpxl" xy="0,0" size="100,100"/>
<image id="n3_meww" name="n3" src="mewwjq" fileName="Assets/Common_chooseGood.png" pkg="kqsmrpxl" xy="0,0" size="100,100" color="#ff9900">
<gearDisplay controller="button" pages="1,2,3"/>
</image>
<text id="n5_m7kb" name="txtLevel" xy="5,35" size="20,23" fontSize="15" color="#ff9966" vAlign="middle" letterSpacing="1" strokeColor="#000000" text="20">
<text id="n5_m7kb" name="txtLevel" xy="40,74" size="20,23" fontSize="15" color="#ff9966" vAlign="middle" letterSpacing="1" strokeColor="#000000" text="20">
<relation target="" sidePair="left-left,top-top"/>
</text>
<text id="n6_m7kb" name="txtUsed" xy="77,35" size="19,23" fontSize="15" color="#ff9966" vAlign="middle" letterSpacing="1" strokeColor="#000000" text="用">
<text id="n6_m7kb" name="txtUsed" xy="13,74" size="19,23" fontSize="15" color="#ff9966" vAlign="middle" letterSpacing="1" strokeColor="#000000" text="用">
<relation target="" sidePair="left-left,top-top"/>
</text>
<richtext id="n9_p3nr" name="txtStar" xy="11,4" size="78,24" fontSize="16" ubb="true" autoSize="none" text="[img]ui://kqsmrpxlp2c66p[/img][img]ui://kqsmrpxlp2c66p[/img][img]ui://kqsmrpxlp2c66p[/img][img]ui://kqsmrpxlp2c66p[/img]"/>
<component id="n10_eyn2" name="btnLock" src="czagl" fileName="ButtonSingle.xml" pkg="kqsmrpxl" xy="71,78" size="16,16" aspect="true"/>
</displayList>
<Button mode="Check"/>
</component>

View File

@ -1,5 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="594,640">
<controller name="quality" pages="0,1,1,2,2,3,3,4,4,5,5,6" selected="0"/>
<controller name="sortType" pages="0,0,1,1" selected="0">
<remark page="0" value="套装"/>
<remark page="1" value="位置"/>
</controller>
<displayList>
<component id="n0_fyvb" name="frame" src="fyvbr" fileName="FrameBag.xml" xy="0,0" group="n18_fyvb">
<Label title="星魂背包"/>
@ -56,6 +61,34 @@
</list>
<text id="n19_m7kb" name="txtCapity" xy="99,463" size="130,26" group="n18_fyvb" fontSize="18" color="#ffcc00" strokeColor="#000000" text="容量100/1000"/>
<group id="n18_fyvb" name="gorup" xy="0,0" size="594,640" advanced="true"/>
<component id="n21_jxet" name="btnType" src="czagl" fileName="ButtonSingle.xml" pkg="kqsmrpxl" xy="357,468" size="19,19" group="n24_jxet" aspect="true">
<Button checked="true" controller="sortType" page="0"/>
</component>
<text id="n23_jxet" name="n23" xy="381,465" size="36,24" group="n24_jxet" fontSize="15" color="#ffcc33" autoSize="none" strokeColor="#000000" text="套装"/>
<group id="n24_jxet" name="n24" xy="357,465" size="60,24"/>
<component id="n25_jxet" name="btnPosType" src="czagl" fileName="ButtonSingle.xml" pkg="kqsmrpxl" xy="434,468" size="19,19" group="n27_jxet" aspect="true">
<Button controller="sortType" page="1"/>
</component>
<text id="n26_jxet" name="n26" xy="458,465" size="36,24" group="n27_jxet" fontSize="15" color="#ffcc33" autoSize="none" strokeColor="#000000" text="位置"/>
<group id="n27_jxet" name="n27" xy="434,465" size="60,24"/>
<component id="n28_jxet" name="n28" src="i7y3kx" fileName="ButtonOnlyTextSingle.xml" pkg="kqsmrpxl" xy="243,509" size="38,25">
<Button checked="true" title="普通" controller="quality" page="0"/>
</component>
<component id="n29_jxet" name="n29" src="i7y3kx" fileName="ButtonOnlyTextSingle.xml" pkg="kqsmrpxl" xy="286,509" size="38,25">
<Button title="非凡" controller="quality" page="1"/>
</component>
<component id="n30_jxet" name="n30" src="i7y3kx" fileName="ButtonOnlyTextSingle.xml" pkg="kqsmrpxl" xy="329,509" size="38,25">
<Button title="稀有" controller="quality" page="2"/>
</component>
<component id="n31_jxet" name="n31" src="i7y3kx" fileName="ButtonOnlyTextSingle.xml" pkg="kqsmrpxl" xy="372,509" size="38,25">
<Button title="史诗" controller="quality" page="3"/>
</component>
<component id="n32_jxet" name="n32" src="i7y3kx" fileName="ButtonOnlyTextSingle.xml" pkg="kqsmrpxl" xy="415,509" size="38,25">
<Button title="传奇" controller="quality" page="4"/>
</component>
<component id="n33_jxet" name="n33" src="i7y3kx" fileName="ButtonOnlyTextSingle.xml" pkg="kqsmrpxl" xy="458,509" size="38,25">
<Button title="天工" controller="quality" page="5"/>
</component>
</displayList>
<transition name="Effect">
<item time="0" type="Alpha" target="n18_fyvb" tween="true" startValue="0" endValue="1" duration="18"/>

View File

@ -20,6 +20,7 @@
<text id="n37_il72" name="txtMaterial" xy="46,239" size="339,248" group="n31_o3cn" fontSize="18" color="#ffffff" leading="1" ubb="true" autoSize="none" strokeColor="#000000" text="sfhsjs *1&#xA;sddfdsdff*5&#xA;sfhsjs *1&#xA;sddfdsdff*5&#xA;sfhsjs *1&#xA;sddfdsdff*5&#xA;sfhsjs *1&#xA;sddfdsdff*5&#xA;sfhsjs *1"/>
<text id="n39_il72" name="n39" xy="147,195" size="148,34" group="n31_o3cn" fontSize="24" color="#624e2f" align="center" strokeColor="#dfd0ae" text="进化所需材料"/>
<group id="n31_o3cn" name="n31" xy="0,0" size="439,600" advanced="true"/>
<component id="n40_7avv" name="btnLock" src="czagl" fileName="ButtonSingle.xml" pkg="kqsmrpxl" xy="210,173" size="15,15" aspect="true"/>
</displayList>
<transition name="Effect">
<item time="0" type="Alpha" target="n31_o3cn" tween="true" startValue="0" endValue="1" duration="18"/>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="80,26" extention="Button" bgColor="#666666">
<component size="38,25" extention="Button" bgColor="#666666">
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
<displayList>
<image id="n4_ryy1" name="bg" src="spuy6h" fileName="Assets/Common_baiban.png" xy="0,0" size="80,26" visible="false" color="#999999">
<image id="n4_ryy1" name="bg" src="spuy6h" fileName="Assets/Common_baiban.png" xy="0,0" size="38,25" visible="false" color="#999999">
<relation target="" sidePair="width-width,height-height"/>
</image>
<text id="n1_jshj" name="title" xy="5,2" size="70,22" fontSize="15" color="#ffff99" align="center" vAlign="middle" letterSpacing="2" strokeColor="#000000" singleLine="true" text="嘿嘿额hi">
<text id="n1_jshj" name="title" xy="1,1" size="36,23" fontSize="15" color="#ffff99" align="center" vAlign="middle" letterSpacing="2" strokeColor="#000000" singleLine="true" text="按钮">
<gearColor controller="button" pages="1,2" values="#ff9900,#000000|#ffff33,#000000" default="#ffff99,#000000"/>
</text>
</displayList>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="10,23" pivot="0.5,0.5" extention="Button">
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
<component size="38,25" extention="Button">
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="2"/>
<displayList>
<image id="n2_udn5" name="bg" src="spuy6h" fileName="Assets/Common_baiban.png" xy="0,0" size="10,23" visible="false">
<image id="n2_udn5" name="bg" src="spuy6h" fileName="Assets/Common_baiban.png" xy="0,0" size="38,25" visible="false">
<relation target="" sidePair="width-width,height-height"/>
</image>
<text id="n1_jshj" name="title" xy="0,0" size="10,23" fontSize="15" color="#ffff99" align="center" vAlign="middle" letterSpacing="2" strokeColor="#000000" singleLine="true" text="">
<gearColor controller="button" pages="1,2" values="#ff9900,#000000|#ffff33,#000000" default="#ffff99,#000000"/>
<text id="n1_jshj" name="title" xy="1,1" size="36,23" fontSize="15" color="#ff9900" align="center" vAlign="middle" letterSpacing="2" strokeColor="#000000" singleLine="true" text="按钮">
<gearColor controller="button" pages="1,2,3" values="#ff9900,#000000|#ff9900,#000000|#ff9900,#000000" default="#ffff99,#000000"/>
</text>
</displayList>
<Button mode="Radio"/>

View File

@ -13,7 +13,7 @@
<image id="n5_mrbj" name="n5" src="10i4tl0" fileName="Assets/CommonUI_BUFFinfo_Head.png" xy="0,0" size="590,40">
<relation target="" sidePair="width-width"/>
</image>
<text id="n1_mrbj" name="title" xy="0,2" size="590,39" fontSize="24" color="#ffff33" align="center" vAlign="middle" letterSpacing="5" autoSize="none" bold="true" strokeColor="#000000" singleLine="true" text="背景">
<text id="n1_mrbj" name="title" xy="0,2" size="590,39" fontSize="24" color="#59482a" align="center" vAlign="middle" letterSpacing="5" autoSize="none" bold="true" strokeColor="#cc9900" singleLine="true" text="背景">
<relation target="n5_mrbj" sidePair="width-width,height-height"/>
</text>
<component id="n2_mrbj" name="closeButton" src="h2b5ku" fileName="ButtonClose_Yellow.xml" xy="550,6" size="28,28">

View File

@ -35,6 +35,7 @@
<item title="装备" value="1"/>
<item title="道具" value="2"/>
<item title="材料" value="3"/>
<item title="uid" value="4"/>
</ComboBox>
</component>
<text id="n30_ii9n" name="inpSearch" xy="468,195" size="100,24" fontSize="16" color="#ffff33" italic="true" strokeColor="#000000" singleLine="true" text="" input="true" prompt="根据名称搜索"/>

View File

@ -72,9 +72,9 @@
<relation target="n54_rirs" sidePair="left-left,top-top"/>
<Button title="开始自动" selectedTitle="自动中"/>
</component>
<component id="n55_rirs" name="btnBattleIdle" src="eh2a1j" fileName="MainUI/ButtonAuto.xml" xy="1694,225" size="64,64" group="n53_rirs">
<component id="n55_rirs" name="btnActive" src="eh2a1k" fileName="MainUI/ButtonMail.xml" xy="1694,225" size="64,64" group="n53_rirs">
<relation target="n54_rirs" sidePair="left-left,top-top"/>
<Button title="开始挂机" selectedTitle="挂机中"/>
<Button title="活动&#xA;"/>
</component>
<component id="n58_rirs" name="btnExit" src="eh2a1l" fileName="MainUI/ButtonDisplayOther.xml" xy="1767,225" size="64,64" group="n53_rirs">
<relation target="n54_rirs" sidePair="left-left,top-top"/>
@ -133,7 +133,7 @@
<text id="n67_gzh5" name="txtUID" xy="148,0" size="112,34" fontSize="18" color="#333333" autoSize="none" text="uid:10016">
<relation target="" sidePair="left-left,top-top"/>
</text>
<component id="n69_kytq" name="n69" src="y69ujo" fileName="ButtonOnlyText.xml" xy="1574,547" size="31,27">
<component id="n69_kytq" name="n69" src="y69ujo" fileName="ButtonOnlyText.xml" xy="1582,548" size="23,25">
<gearDisplay controller="unitList" pages="0"/>
<relation target="" sidePair="middle-middle,right-right"/>
<Button title="&lt;&lt;" controller="unitList" page="1"/>
@ -141,7 +141,7 @@
<image id="n71_kytq" name="n71" src="ozr3ii" fileName="Assets/Common_Equiptips.png" xy="1373,321" size="226,494" group="n72_kytq">
<relation target="" sidePair="right-right,bottom-bottom"/>
</image>
<component id="n70_kytq" name="n70" src="y69ujo" fileName="ButtonOnlyText.xml" xy="1362,547" size="31,27" group="n72_kytq">
<component id="n70_kytq" name="n70" src="y69ujo" fileName="ButtonOnlyText.xml" xy="1362,548" size="23,25" group="n72_kytq">
<relation target="n71_kytq" sidePair="middle-middle,left-left"/>
<Button title="&gt;&gt;" controller="unitList" page="0"/>
</component>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="600,450">
<displayList>
<component id="n0_wtv1" name="frame" src="mrbjutlk" fileName="FrameCommon.xml" pkg="kqsmrpxl" xy="0,0" size="600,450" aspect="true">
<Label title="活动"/>
</component>
<list id="n4_wtv1" name="listTop" xy="136,47" size="449,37" layout="row" overflow="hidden" defaultItem="ui://rrf5d2hkwtv12">
<item title="每日活动"/>
<item title="每周活动"/>
<item title="每月活动"/>
<item title="特殊活动"/>
</list>
<list id="n5_wtv1" name="listLeft" xy="7,89" size="124,353" overflow="scroll" clipSoftness="0,50" defaultItem="ui://rrf5d2hkwtv12" autoClearItems="true">
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
</list>
<image id="n2_wtv1" name="top" src="10i4tl1" fileName="Assets/CommonUI_BUFFinfo_kuang.png" pkg="kqsmrpxl" xy="5,44" size="590,43"/>
<image id="n3_wtv1" name="left" src="10i4tl1" fileName="Assets/CommonUI_BUFFinfo_kuang.png" pkg="kqsmrpxl" xy="5,87" size="130,358"/>
<list id="n6_wtv1" name="listItem" xy="138,90" size="450,351" overflow="scroll" clipSoftness="50,50" defaultItem="ui://rrf5d2hkwtv13" autoClearItems="true">
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
</list>
</displayList>
</component>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="104,39" extention="Button">
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
<displayList>
<image id="n0_wtv1" name="n0" src="h706utlp" fileName="Assets/yellowBtn_down.png" pkg="kqsmrpxl" xy="0,0">
<relation target="" sidePair="width-width,height-height"/>
</image>
<text id="n1_wtv1" name="title" xy="14,6" size="80,26" fontSize="18" color="#ac6218" bold="true" strokeColor="#ffff99" text="每日活动"/>
</displayList>
<Button mode="Radio" downEffect="dark" downEffectValue=".8"/>
</component>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="450,60" extention="Label">
<displayList>
<image id="n1_wtv1" name="bg" src="h2b5km" fileName="Assets/CommonUI_BUFF_List.png" pkg="kqsmrpxl" xy="0,0" size="450,60"/>
<text id="n2_wtv1" name="title" xy="7,6" size="389,50" fontSize="15" color="#ffcc00" ubb="true" autoSize="none" strokeColor="#000000" text="我无法赶到南京adds规划设计爱的色放安抚奥古斯阿盖啊个法师给阿萨 的萨芬"/>
<component id="n3_wtv1" name="btn" src="h706utls" fileName="ButtonText_Yellow.xml" pkg="kqsmrpxl" xy="395,13" size="49,34">
<Button title="确定" titleFontSize="18"/>
</component>
</displayList>
</component>

View File

@ -2,6 +2,9 @@
<packageDescription id="rrf5d2hk">
<resources>
<component id="t7n20" name="MainStoryAIUI.xml" path="/" exported="true"/>
<component id="wtv11" name="ActiveUI.xml" path="/" exported="true"/>
<component id="wtv12" name="ButtonTab.xml" path="/"/>
<component id="wtv13" name="LabelActionItem.xml" path="/"/>
</resources>
<publish name=""/>
</packageDescription>

View File

@ -27,7 +27,7 @@
</component>
<text id="n60_in13" name="txtItem" xy="207,84" size="150,24" group="n31_o3cn" fontSize="15" color="#ffcc00" autoSize="none" strokeColor="#000000" text="花费1000金"/>
<component id="n62_in13" name="n62" src="in13utly" fileName="ComHelp.xml" pkg="kqsmrpxl" xy="0,0" group="n31_o3cn">
<Label title="&#x9;&#x9;提示&#xA;1.选择需要被升级的星魂和作为材料的星魂,可以选择多个材料。&#xA;2.升级星魂必定成功,升级后作为材料的星魂会消失。&#xA;3.升级后的星魂也能作为升级材料使用。&#xA;4.随机属性最多4条。&#xA;5.每提升4级都会随机增加或者强化某一个随机属性。&#xA;6.星魂一旦获得,不可洗练,不可逆。"/>
<Label title="&#x9;&#x9;提示&#xA;1.选择需要被升级的星魂和作为材料的星魂,可以选择多个材料。&#xA;2.升级星魂必定成功,升级后作为材料的星魂会消失。&#xA;3.升级后的星魂也能作为升级材料使用。&#xA;4.随机属性最多4条。&#xA;5.每提升4级都会随机增加或者强化某一个随机属性。&#xA;6.星魂一旦获得,不可洗练,不可逆。&#xA;7.快速选择为选择当前星魂背包的随机20个0级未绑定或者未使用的星魂作为材料。"/>
</component>
<text id="n63_vfhe" name="txtMarterial" xy="207,123" size="150,24" group="n31_o3cn" fontSize="15" color="#ffcc00" autoSize="none" strokeColor="#000000" text="花费1000金"/>
<text id="n64_vfhe" name="txtPrice" xy="207,162" size="150,24" group="n31_o3cn" fontSize="15" color="#ffcc00" autoSize="none" strokeColor="#000000" text="花费1000金"/>
@ -36,6 +36,9 @@
<ProgressBar value="50" max="100"/>
</component>
<group id="n31_o3cn" name="n31" xy="0,0" size="450,600" advanced="true"/>
<component id="n71_dffv" name="btnSelectAll0Level" src="y69ujo" fileName="ButtonOnlyText.xml" pkg="kqsmrpxl" xy="286,205" size="72,25">
<Button title="快速选择"/>
</component>
</displayList>
<transition name="Effect">
<item time="0" type="Alpha" target="n31_o3cn" tween="true" startValue="0" endValue="1" duration="18"/>

View File

@ -121,7 +121,6 @@ message EquipTransMessage
int32 Star = 7;
int32 Level = 9;
repeated int32 GemList = 12; //
int64 starsoulId = 13;
}
//==================================
enum LoginType //
@ -2067,6 +2066,7 @@ message C2M_Upgrade // IActorLocationRequest
int32 RpcId = 90;
int64 ActorId = 93;
int32 Index= 1;
bool isLock=2;
}
message M2C_Upgrade // IActorLocationResponse
{
@ -2920,6 +2920,7 @@ message StarSoulNetItem
int32 main=8;
repeated int32 vice=9;
repeated float viceAdd=10;
bool isLocked=11;
}
//ResponseType M2C_GetStarSoulBag
message C2M_GetStarSoulBag // IActorLocationRequest
@ -2927,12 +2928,29 @@ message C2M_GetStarSoulBag // IActorLocationRequest
int32 RpcId = 90;
int64 ActorId = 93;
}
message KV_int32_int64
{
int32 key=1;
int64 value =2;
}
message KV_int32_int32
{
int32 key=1;
int32 value =2;
}
message KV_string_int32
{
string key=1;
int32 value =2;
}
message M2C_GetStarSoulBag // IActorLocationResponse
{
int32 RpcId = 90;
int32 Error = 91;
string Message = 92;
repeated StarSoulNetItem itemList=1;
repeated int64 usedIdMap =2;
repeated KV_int32_int32 suitKVs =5;
}
message M2C_SyncStarSoulBag // IActorMessage
{
@ -2941,6 +2959,14 @@ message M2C_SyncStarSoulBag // IActorMessage
int64 Id =1;
StarSoulNetItem item=2;
}
message M2C_SyncStarSoulBagItemUsed // IActorMessage
{
int32 RpcId = 90;
int64 ActorId = 93;
int32 key=3;
int64 value=4;
repeated KV_int32_int32 suitKVs =5;
}
//ResponseType M2C_UpgradeStarSoulItem
message C2M_UpgradeStarSoulItem // IActorLocationRequest
{
@ -2969,3 +2995,37 @@ message M2C_PutonStarSoulItem // IActorLocationResponse
int32 Error = 91;
string Message = 92;
}
message C2M_LockStarSoulItem // IActorLocationMessage
{
int32 RpcId = 90;
int64 ActorId = 93;
int64 itemId=2;
bool isLock=1;
}
//ResponseType M2C_StartActive
message C2M_StartActive // IActorLocationRequest
{
int32 RpcId = 90;
int64 ActorId = 93;
int32 itemId=2;
}
message M2C_StartActive // IActorLocationResponse
{
int32 RpcId = 90;
int32 Error = 91;
string Message = 92;
}
//ResponseType M2C_GetUIDByName
message C2M_GetUIDByName // IActorLocationRequest
{
int32 RpcId = 90;
int64 ActorId = 93;
string name=2;
}
message M2C_GetUIDByName // IActorLocationResponse
{
int32 RpcId = 90;
int32 Error = 91;
string Message = 92;
repeated KV_string_int32 map=1;
}

View File

@ -454,15 +454,12 @@ namespace ET
Log.Info(team.GetMemberName() + $"{self.battleType}胜利了!");
UnitScene unitScene = unit.GetComponent<UnitScene>();
int mapId = unitScene.MapId;
// if (mapId % 100 != 6)
// {
// //减少旅行券
// PlayerData data = unit.GetComponent<PlayerData>();
// data.travelVoucher--;
// }
await TimerComponent.Instance.WaitAsync(5000L);
MessageHelper.SendActor(unit, new M2C_BattleVictory { BattleType = (int) self.battleType });
foreach (Unit unit1 in team.GetUnits())
{
MessageHelper.SendActor(unit1, new M2C_BattleVictory { BattleType = (int) self.battleType });
}
await TimerComponent.Instance.WaitAsync(500L);
if (MapHelper.GetMapType(mapId / 100) == UnitSceneType.SpaceTravel)
{
@ -490,6 +487,7 @@ namespace ET
else
{
Log.Error($"{unit.Id.GetPlayerFormatName()} 位置错误 {mapId}");
Game.EventSystem.Publish(new BackMainCity() { unit = unit, isForce = true });
}
await BattleHelper.VictoryOption(self, team, self.configId);
@ -519,12 +517,6 @@ namespace ET
int mapId = unitScene.MapId;
if (unit.UnitType == UnitType.Player)
Log.Info($"{team.GetMemberName()} {self.battleType}失败了!");
// if (mapId % 100 != 6)
// {
// //减少旅行券
// PlayerData data = unit.GetComponent<PlayerData>();
// data.travelVoucher--;
// }
await TimerComponent.Instance.WaitAsync(5500);
await BattleHelper.DefeatOption(self, team);
@ -534,5 +526,98 @@ namespace ET
Log.Error(e);
}
}
[DataTableMethod]
public static async ETTask ActiveStarSoulCopy(object arg)
{
try
{
if(!AppConfig.inst.isTest)
return;
ActiveArgs args = arg.As<ActiveArgs>();
var unit = args.unit;
if (!unit.IsTeamLeader)
return;
if (unit.teamState != TeamState.None)
return;
string[] param = args.param;
byte type = byte.Parse(param[0]);
byte difficulty = byte.Parse(param[1]);
int sceneId = type switch
{
1 => Sys_SceneId.Scene_StarSoulCopyA,
2 => Sys_SceneId.Scene_StarSoulCopyB,
3 => Sys_SceneId.Scene_StarSoulCopyC,
4 => Sys_SceneId.Scene_StarSoulCopyD,
5 => Sys_SceneId.Scene_StarSoulCopyE,
_ => throw new ArgumentOutOfRangeException()
};
var config = unit.GetOrAddComponent<StarSoulCopyConfigComponent>();
config.type = type;
config.difficulty = difficulty;
Game.EventSystem.Publish(new ChangeMap() { unit = unit, mapId = sceneId * 100 + 1 });
}
catch (Exception e)
{
Log.Error(e);
}
}
[DataTableMethod]
public static async ETTask ActiveIdleBattle(object arg)
{
try
{
Log.Info("ActiveIdleBattle");
}
catch (Exception e)
{
Log.Error(e);
}
}
[DataTableMethod]
public static async ETTask StarSoulBattleVictory(object arg)
{
try
{
CopyBattleArgs copyBattleArgs = arg.As<CopyBattleArgs>();
CopyBattle self = copyBattleArgs.copyBattle;
Team team = copyBattleArgs.team;
Unit unit = MapUnitComponent.Instance.Get(team.LeaderId);
Log.Info(team.GetMemberName() + $"{self.battleType}胜利了!");
UnitScene unitScene = unit.GetComponent<UnitScene>();
int mapId = unitScene.MapId;
await TimerComponent.Instance.WaitAsync(5000L);
foreach (Unit unit1 in team.GetUnits())
{
MessageHelper.SendActor(unit1, new M2C_BattleVictory { BattleType = (int) self.battleType });
}
await TimerComponent.Instance.WaitAsync(500L);
if (MapHelper.GetMapType(mapId / 100) == UnitSceneType.StarSoulCopy)
{
int layer = mapId % 100;
if (layer == 3)
{
Game.EventSystem.Publish(new BackMainCity() { unit = unit, isForce = true });
}
else
{
Game.EventSystem.Publish(new ChangeMap() { unit = unit, mapId = mapId + 1 });
}
}
else
{
Log.Error($"{unit.Id.GetPlayerFormatName()} 位置错误 {mapId}");
Game.EventSystem.Publish(new BackMainCity() { unit = unit, isForce = true });
}
await BattleHelper.VictoryOption(self, team, self.configId);
}
catch (Exception e)
{
Log.Error(e);
}
}
}
}

View File

@ -29,26 +29,37 @@ namespace ET
CheckMapCoinMonster(unit, mapId);
}
if (unitSceneType is UnitSceneType.MainStory or UnitSceneType.Beach)
try
{
MainStoryMap.Instance.Init(unit, unitScene.MapId);
if (unitSceneType is UnitSceneType.MainStory or UnitSceneType.Beach)
{
MainStoryMap.Instance.Init(unit, unitScene.MapId);
}
else if (unitSceneType == UnitSceneType.Trial)
{
TrialCopyMap.Instance.InitTrailCopyMap(unit, unitScene.MapId);
}
else if (unitSceneType == UnitSceneType.SpaceTravel)
{
GenerateSpaceTravelMapMonster(unit, unitScene);
}
else if (unitSceneType == UnitSceneType.ManulEquip)
{
GenerateManulEquipMapMonster(unit, unitScene);
}
else if (unitSceneType == UnitSceneType.StarSoulCopy)
{
GenerateStarSoulCopyMapMonster(unit, unitScene);
}
else
{
await TimerComponent.Instance.WaitAsync(500);
StartupTransPoint(unit, unitScene.MapId);
}
}
else if (unitSceneType == UnitSceneType.Trial)
catch (Exception e)
{
TrialCopyMap.Instance.InitTrailCopyMap(unit, unitScene.MapId);
}
else if (unitSceneType == UnitSceneType.SpaceTravel)
{
GenerateSpaceTravelMapMonster(unit, unitScene);
}
else if (unitSceneType == UnitSceneType.ManulEquip)
{
GenerateManulEquipMapMonster(unit, unitScene);
}
else
{
await TimerComponent.Instance.WaitAsync(500);
StartupTransPoint(unit, unitScene.MapId);
Log.Error(e);
}
}
catch (Exception e)
@ -75,7 +86,8 @@ namespace ET
{
Log.Error($"scene is error where {unit.Id.GetPlayerFormatName()} id = {_unitScene.MapId}");
return;
}
}
int id = difficulty * 1000 + layer * 100 + 1;
ManulEquipMonsterConfig manulEquipMonsterConfig = ManulEquipMonsterConfigCategory.Instance.Get(id);
@ -136,6 +148,39 @@ namespace ET
}).Coroutine();
}
private void GenerateStarSoulCopyMapMonster(Unit unit, UnitScene _unitScene)
{
Unit monster = EntityFactory.CreateWithParent<Unit, UnitType>(unit.DomainScene(), UnitType.Monster);
MapMonsterConfig mapMonsterConfig = MapMonsterConfigCategory.Instance.GetStarSoulCopyMapMonster(_unitScene.layerId);
Team team = TeamComponent.Instance.Get(unit.TeamLeaderId);
var leader = team.GetLeader();
StarSoulCopyConfigComponent soulCopyConfigComponent = leader.GetComponent<StarSoulCopyConfigComponent>();
long configId = 0;
StarSoulCopyConfig soulCopyConfig = StarSoulCopyConfigCategory.Instance.GetByTypeAndDifficultyAndIndex(soulCopyConfigComponent.type,
soulCopyConfigComponent.difficulty, (byte) _unitScene.layerId);
if (soulCopyConfig == null)
{
Log.Error(
$"config == null when type = {soulCopyConfigComponent.type} difficult = {soulCopyConfigComponent.difficulty} index = {_unitScene.layerId}");
return;
}
configId = soulCopyConfig.Id;
monster.AddComponent<ConfigIdComponent>().configId = configId;
UnitScene unitScene = monster.AddComponent<UnitScene>();
unitScene.Position = new UnityEngine.Vector2(mapMonsterConfig.X, mapMonsterConfig.Y);
MapMonsterComponent monsterComponent = unit.GetComponent<MapMonsterComponent>();
monsterComponent.Add(MapMonsterType.StarSoulCopy, monster);
Game.EventSystem.Publish(new ET.EventType.OnCreateUnit
{
actor = unit,
monsterId = monster.Id,
pos = unitScene.Position,
configId = (int) mapMonsterConfig.Id,
monsterType = MapMonsterType.StarSoulCopy
}).Coroutine();
}
private void CheckMapCoinMonster(Unit unit, int mapId)
{
Unit monster = MapCoinComponent.instance.GetCoinMonster(mapId);

View File

@ -224,6 +224,22 @@ namespace ET
await SpaceTravelReward(unit, monsterBase, rewordMap);
return;
case BattleType.StarSoulCopy:
StarSoulCopyConfig soulCopyConfig =StarSoulCopyConfigCategory.Instance.Get(configId);
if (soulCopyConfig == null)
{
Log.ErrorDetail($"{unit.Id.GetPlayerFormatName()} battle type is {battleType} configId = {configId}");
return;
}
monsterBase = MonsterBaseCategory.Instance.Get(soulCopyConfig.MonsterIdArr[0]);
if (monsterBase == null)
{
Log.ErrorDetail($"{unit.Id.GetPlayerFormatName()} battle type is {battleType} MonsterId = {soulCopyConfig.MonsterIdArr[0]}");
return;
}
await StarSoulCopyReward(unit, monsterBase, rewordMap,soulCopyConfig);
return;
}
}
catch (Exception e)
@ -379,6 +395,41 @@ namespace ET
SendMessage(unit, num, rewardRet, 0, 0);
}
private async ETTask StarSoulCopyReward(Unit unit, MonsterBase monsterBase, UnOrderMultiMap<long, (int, int)> rewordMap,
StarSoulCopyConfig starSoulCopyConfig)
{
await ETTask.CompletedTask;
float reduceDrop = 1;
PlayerData playerData = unit.GetComponent<PlayerData>();
if (playerData.ForbidExp)
reduceDrop = 0;
if (!unit.IsAlive)
{
reduceDrop *= 0.3f;
}
NumericComponent num = unit.GetComponent<NumericComponent>();
if (reduceDrop == 0) return;
M2C_SendReward rewardRet = new M2C_SendReward();
DropHelper.Drop(unit, playerData, BattleType.ManulEquip, monsterBase.Dropasubset, rewordMap, reduceDrop, "星魂副本掉落", false, list:rewardRet.ItemList);
SendMessage(unit, num, rewardRet, 0, 0);
Team team = TeamComponent.Instance.Get(unit.TeamLeaderId);
var leader = team.GetLeader();
if (!leader)
return;
StarSoulCopyConfigComponent soulCopyConfigComponent = leader.GetComponent<StarSoulCopyConfigComponent>();
byte difficulty = soulCopyConfigComponent.difficulty;
byte type = soulCopyConfigComponent.type;
int count = RandomHelper.RandomNumber(starSoulCopyConfig.StarSoulCountMin, starSoulCopyConfig.StarSoulCountMax+1);
StarSoulBag bag = unit.GetComponent<StarSoulBag>();
for (int i = 0; i < count; i++)
{
StarSoulItem item= ItemHelper.GenerateStarSoulItem(type, difficulty);
bag.Add(item);
}
}
private static void SendMessage(Unit unit, NumericComponent num, M2C_SendReward rewardRet, long exp, long coin)
{

View File

@ -0,0 +1,27 @@
using System;
namespace ET
{
[ActorMessageHandler]
public class C2M_GetUIDByNameHandler: AMActorLocationRpcHandler<Unit, C2M_GetUIDByName, M2C_GetUIDByName>
{
protected override async ETTask Run(Unit unit, C2M_GetUIDByName request, M2C_GetUIDByName respones, Action reply)
{
if (!AppConfig.inst.whiteIds.Contains(unit.Id))
{
respones.Message = "对不起,您没有权限!";
reply();
return;
}
var list = await DBComponent.Instance.Query<User>(t => t.NickName.Contains(request.name));
foreach (User user in list)
{
respones.map.Add(new KV_string_int32() { key = user.NickName, value = (int) user.Id });
}
reply();
await ETTask.CompletedTask;
}
}
}

View File

@ -46,6 +46,9 @@ namespace ET
case MapMonsterType.SpaceTravel:
strRet = await StartSpaceTravelBattle(unit, monster);
break;
case MapMonsterType.StarSoulCopy:
strRet = await StartStarSoulCopyBattle(unit, monster);
break;
default:
throw new ArgumentOutOfRangeException();
}
@ -150,5 +153,37 @@ namespace ET
battle.Init(team, battle.targetTeam, CopyConfigId.SpaceTravelBattle, spaceTravelConfig.Id);
return null;
}
private async ETTask<string> StartStarSoulCopyBattle(Unit unit, Unit monster)
{
Team team = TeamComponent.Instance.Get(unit.TeamLeaderId);
if (team.TeamState == TeamState.Fight)
{
Log.Error($"*【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】多次进行星魂副本战斗");
return "系统错误";
}
UnitScene unitScene = unit.GetComponent<UnitScene>();
UnitSceneType unitSceneType = MapHelper.GetMapType(unitScene.sceneId);
if (unitSceneType != UnitSceneType.StarSoulCopy)
{
Log.Error($"*【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】场景{unitScene.MapId / 100}错误");
return "系统错误";
}
long configId = monster.GetComponent<ConfigIdComponent>().configId;
StarSoulCopyConfig soulCopyConfig = StarSoulCopyConfigCategory.Instance.Get(configId);
if ((unitScene.Position - monster.Position).sqrMagnitude > MoveHelper.AtkDis)
{
Log.Error($"*【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】位置{unitScene.Position}错误");
return "系统错误";
}
CopyBattle battle = BattleMgrCompnent.Instance.CreateBattle(team);
MonsterFactoryHelper.StarSoulGenerate(battle, soulCopyConfig);
battle.Init(team, battle.targetTeam, CopyConfigId.StarSoulBattle, soulCopyConfig.Id);
return null;
}
}
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using Cal.DataTable;
namespace ET
{
public class ActiveArgs
{
public Unit unit;
public string[] param;
}
[ActorMessageHandler]
public class C2M_StartActiveHandler : AMActorLocationRpcHandler<Unit, C2M_StartActive, M2C_StartActive>
{
protected override async ETTask Run(Unit unit, C2M_StartActive request, M2C_StartActive response, Action reply)
{
ActivePerDayConfig activePerDayConfig = ActivePerDayConfigCategory.Instance.Get(request.itemId);
if (activePerDayConfig == null)
{
Log.Error($"{unit.Id.GetPlayerFormatName()} 活动Id错误{request.itemId}");
response.Message = "系统错误";
reply();
return;
}
int weekDay = (int) DateTime.Today.DayOfWeek;
if (!activePerDayConfig.Day.As<IList<int>>().Contains(weekDay))
{
Log.Error($"{unit.Id.GetPlayerFormatName()} 活动日期错误:{activePerDayConfig.Day.ToCustomString()} today = {weekDay}");
response.Message = "系统错误";
reply();
return;
}
await GlobalMethodHelper.Call(activePerDayConfig.BattleMethod,new ActiveArgs
{
unit = unit,param = activePerDayConfig.Params
});
reply();
await ETTask.CompletedTask;
}
}
}

View File

@ -24,6 +24,7 @@ namespace ET
netItem.typeId = item.typeId;
netItem.isUsed = item.isUsed;
netItem.main = item.mainId;
netItem.isLocked = item.isLocked;
foreach (int id in item.viceIds)
{
netItem.vice.Add(id);
@ -38,7 +39,15 @@ namespace ET
Log.Error(e);
}
}
response.usedIdMap.AddRange(bag.usedStarSoulDic.Values);
foreach (StarSoulSuit starSoulSuit in bag.Suits)
{
response.suitKVs.Add(new KV_int32_int32()
{
key = starSoulSuit.Id,
value = (int) starSoulSuit.type
});
}
reply();
await ETTask.CompletedTask;
}

View File

@ -0,0 +1,14 @@

namespace ET
{
[ActorMessageHandler]
public class C2M_LockStarSoulItemHandler : AMActorLocationHandler<Unit,C2M_LockStarSoulItem>
{
protected override async ETTask Run(Unit unit, C2M_LockStarSoulItem message)
{
StarSoulBag bag = unit.GetComponent<StarSoulBag>();
bag.Lock(message.itemId,message.isLock);
await ETTask.CompletedTask;
}
}
}

View File

@ -12,7 +12,6 @@ namespace ET
response.Message = "战斗中";
reply();
return;
;
}
var bag = unit.GetComponent<StarSoulBag>();
string retStr = bag.PutonItem(request.itemId);

View File

@ -7,7 +7,7 @@ namespace ET
{
protected override async ETTask Run(Unit unit, C2M_Upgrade request, M2C_Upgrade response, Action reply)
{
string ret = await ItemComponent.Instance.UpgradeItem(unit, request.Index);
string ret = await ItemComponent.Instance.UpgradeItem(unit, request.Index,request.isLock);
if (!ret.Equals(string.Empty))
{
response.Message = ret;

View File

@ -116,99 +116,99 @@ namespace ET
switch (type)
{
case AttributeType.:
num.Set(NumericType.MaxHpBase, combat.GetAtribute(type));
num.Set(NumericType.MaxHpBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.MaxMpBase, combat.GetAtribute(type));
num.Set(NumericType.MaxMpBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.StrBase, combat.GetAtribute(type));
num.Set(NumericType.StrBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.QukBase, combat.GetAtribute(type));
num.Set(NumericType.QukBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.SpiBase, combat.GetAtribute(type));
num.Set(NumericType.SpiBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.WimBase, combat.GetAtribute(type));
num.Set(NumericType.WimBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.PhyAtkBase, combat.GetAtribute(type));
num.Set(NumericType.PhyAtkBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.SpiAtkBase, combat.GetAtribute(type));
num.Set(NumericType.SpiAtkBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.PhyDefBase, combat.GetAtribute(type));
num.Set(NumericType.PhyDefBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.SpiDefBase, combat.GetAtribute(type));
num.Set(NumericType.SpiDefBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.PcrirBase, combat.GetAtribute(type));
num.Set(NumericType.PcrirBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.McrirBase, combat.GetAtribute(type));
num.Set(NumericType.McrirBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.PcriBase, combat.GetAtribute(type));
num.Set(NumericType.PcriBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.McriBase, combat.GetAtribute(type));
num.Set(NumericType.McriBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.RpcrirBase, combat.GetAtribute(type));
num.Set(NumericType.RpcrirBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.RmcrirBase, combat.GetAtribute(type));
num.Set(NumericType.RmcrirBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.RpcriBase, combat.GetAtribute(type));
num.Set(NumericType.RpcriBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.RmcriBase, combat.GetAtribute(type));
num.Set(NumericType.RmcriBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.DvoBase, combat.GetAtribute(type));
num.Set(NumericType.DvoBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.PhyBase, combat.GetAtribute(type));
num.Set(NumericType.PhyBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.StaBase, combat.GetAtribute(type));
num.Set(NumericType.StaBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.NphyiBase, combat.GetAtribute(type));
num.Set(NumericType.NphyiBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.NmeniBase, combat.GetAtribute(type));
num.Set(NumericType.NmeniBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.SpdBase, combat.GetAtribute(type));
num.Set(NumericType.SpdBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.HitBase, combat.GetAtribute(type));
num.Set(NumericType.HitBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.ResBase, combat.GetAtribute(type));
num.Set(NumericType.ResBase, combat.GetAtrribute(type));
break;
case AttributeType.:
break;
case AttributeType.:
num.Set(NumericType.SuckRBase, combat.GetAtribute(type));
num.Set(NumericType.SuckRBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.SuckVBase, combat.GetAtribute(type));
num.Set(NumericType.SuckVBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.HpRecoverBase, combat.GetAtribute(type));
num.Set(NumericType.HpRecoverBase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.PhyDABase, combat.GetAtribute(type));
num.Set(NumericType.PhyDABase, combat.GetAtrribute(type));
break;
case AttributeType.:
num.Set(NumericType.MicDABase, combat.GetAtribute(type));
num.Set(NumericType.MicDABase, combat.GetAtrribute(type));
break;
default:
break;

View File

@ -17,11 +17,11 @@ namespace ET
{
int sonSetId = playerData.UpdateDrop(subSet._Id);
SonSet sonSet = SonSetCategory.Instance.Get(sonSetId);
(int itemId, int itemCount) = GetItemFormSet(sonSet.DropArr, dropProperbility, false);
(int itemId, int itemCount) = GetItemFormSet(sonSet.DropArr, dropProperbility, false,out bool sonSetIsLock);
if (itemId == 0) continue;
if (!isLock)
{
isLock = sonSet.IsLock;
isLock = sonSetIsLock;
}
BagHelper.AddItem(unit, itemId, itemCount, isLock, getSource: getSource);
@ -77,7 +77,7 @@ namespace ET
}
}
private static (int, int) GetItemFormSet(IReadOnlyList<SonSet.Drop> arr, float damagePercent, bool isKilled)
private static (int, int) GetItemFormSet(IReadOnlyList<SonSet.Drop> arr, float damagePercent, bool isKilled,out bool isLock)
{
using ListComponent<int> listComponent = ListComponent<int>.Create();
List<int> weightList = listComponent.List;
@ -95,6 +95,7 @@ namespace ET
int index = MathHelper.GetProbabilityIndexByWeight(weightList);
SonSet.Drop item = arr[index];
isLock = item.IsLock;
return (item._Id, RandomHelper.RandomNumber(item.MinCount, item.MaxCount + 1));
}
}

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace ET
{
@ -278,13 +279,13 @@ namespace ET
{
if (u.UnitType == UnitType.Player)
{
for (int i = 0; i < 10; i++)
for (int i = 0; i < 100; i++)
{
if (value == 0)
{
value = RandomHelper.RandomNumber(1, 5);
}
var item= ItemHelper.GenerateStarSoulItem((Quality)value );
var item= ItemHelper.GenerateStarSoulItem(RandomHelper.RandomNumber(1001,1011),(Quality)value );
StarSoulBag bag = u.GetComponent<StarSoulBag>();
bag.Add(item);
}
@ -306,6 +307,117 @@ namespace ET
return "成功";
}
else
if (cmdType.Equals("exportUser", StringComparison.OrdinalIgnoreCase))
{
long uid = value;
try
{
User user = await DBComponent.Instance.Query<User>(uid);
if (user==null)
{
return $"user is null where id = {uid}";
}
Character character = await DBComponent.Instance.Query<Character>(uid);
Bag bag = await DBComponent.Instance.Query<Bag>(uid);
UnitSkillComponent skill = await DBComponent.Instance.Query<UnitSkillComponent>(uid);
UserSetting userSetting = await DBComponent.Instance.Query<UserSetting>(uid);
NumericComponent num = await DBComponent.Instance.Query<NumericComponent>(uid);
Pet pet = await DBComponent.Instance.Query<Pet>(uid);
string path = "../Export";
if (!File.Exists(path))
{
Directory.CreateDirectory(path);
}
StringBuilder sb = new StringBuilder();
sb
.Append( MongoHelper.ToJson(user)).Append("#cal#")
.Append( MongoHelper.ToJson(character)).Append("#cal#")
.Append( MongoHelper.ToJson(bag)).Append("#cal#")
.Append( MongoHelper.ToJson(skill)).Append("#cal#")
.Append( MongoHelper.ToJson(userSetting)).Append("#cal#")
.Append( MongoHelper.ToJson(num)).Append("#cal#")
.Append( MongoHelper.ToJson(pet))
;
path = path + $"/{uid}.json";
if(File.Exists(path))
File.Delete(path);
await File.WriteAllTextAsync(path, sb.ToString());
}
catch (Exception e)
{
Log.Error(e);
}
return "成功";
}
else
if (cmdType.Equals("inportUser", StringComparison.OrdinalIgnoreCase))
{
if (!AppConfig.inst.isTest)
return "测试服专用";
long olsId = value;
long uid = count;
try
{
User user = await UserComponent.Instance.Query(uid);
if (user==null)
{
return $"user is null where id = {uid}";
}
string path = $"../Export/{olsId}.json";
string str = await File.ReadAllTextAsync(path);
string[] arrStr = str.Replace($"\"_id\" : NumberLong({olsId})", $"\"_id\" : NumberLong({uid})").Split("#cal#");
int index = 0;
User user_ = MongoHelper.FromJson<User>(arrStr[index++]);
user.JobId = user_.JobId;
Character character = MongoHelper.FromJson<Character>(arrStr[index++]);
Bag bag = MongoHelper.FromJson<Bag>(arrStr[index++]);
UnitSkillComponent skill =MongoHelper.FromJson<UnitSkillComponent>(arrStr[index++]);
UserSetting userSetting = MongoHelper.FromJson<UserSetting>(arrStr[index++]);
NumericComponent num = MongoHelper.FromJson<NumericComponent>(arrStr[index++]);
Pet pet = MongoHelper.FromJson<Pet>(arrStr[index++]);
Unit unit_ = MapUnitComponent.Instance.Get(uid);
if (unit_)
{
unit_.RemoveComponent<Character>();
unit_.AddComponent(character);
unit_.RemoveComponent<Bag>();
unit_.AddComponent(bag);
unit_.RemoveComponent<UnitSkillComponent>();
unit_.AddComponent(skill);
unit_.RemoveComponent<UserSetting>();
unit_.AddComponent(userSetting);
unit_.RemoveComponent<NumericComponent>();
unit_.AddComponent(num);
unit_.RemoveComponent<Pet>();
unit_.AddComponent(pet);
CharacterHelper.SyncNumeric(unit_);
}
else
{
DBComponent.Instance.Save(user);
UnitHelper.SaveComponenet(character);
UnitHelper.SaveComponenet(bag);
UnitHelper.SaveComponenet(skill);
UnitHelper.SaveComponenet(userSetting);
UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(pet);
}
}
catch (Exception e)
{
Log.Error(e);
}
return "成功";
}
else
if (cmdType.Equals("addAllAITime", StringComparison.OrdinalIgnoreCase))
{
List<PlayerData> list = await DBComponent.Instance.QueryJson<PlayerData>("{}");

View File

@ -176,16 +176,38 @@ namespace ET
private static readonly List<int> starSoulViceCountWeight = new()
{
0,
40,
40,
16,
4
15,
60,
20,
5
};
public static StarSoulItem GenerateStarSoulItem(Quality starQuality = Quality.Common)
public static StarSoulItem GenerateStarSoulItem(byte type, byte difficulty)
{
if (type == 0)
{
Log.Error($"type={type} difficulty={difficulty}");
return null;
}
if (difficulty == 0)
{
Log.Error($"type={type} difficulty={difficulty}");
return null;
}
var list= StarSoulTypeConfigCategory.Instance.idDic[type];
if (list.Count != 0)
{
int id = list.RandomArray();
return GenerateStarSoulItem(id, (Quality)difficulty);
}
return null;
}
public static StarSoulItem GenerateStarSoulItem(int typeId,Quality starQuality = Quality.Common)
{
StarSoulItem item = new();
item.typeId = (int) StarSoulTypeConfigCategory.Instance.ids.RandomArray();
item.typeId = typeId;
item.level = 0;
item.exp = 0;
int qualityInt = RandomHelper.RandomByWeight(starSoulQualityWeightList);
@ -196,34 +218,23 @@ namespace ET
item.quality = quality;
item.Id = Game.IdGenerater.GenerateId();
item.posType = (EquipType) RandomHelper.RandomNumber(0, 12);
long mainId = GenerateMain(item.posType, qualityInt);
long mainId = GenerateMain(item.posType, quality);
if (mainId == -1) return null;
item.mainId = (int) mainId;
GenerateVice(item);
return item;
static long GenerateMain(EquipType type, int qualityInt)
static long GenerateMain(EquipType type,Quality qualityInt)
{
StarSoulEquipAttributeTypeConfig starSoulEquipAttributeTypeConfig =
StarSoulEquipAttributeTypeConfigCategory.Instance.Get((long) type);
if (starSoulEquipAttributeTypeConfig == null) return -1;
var mainAttibuteList = StarSoulAttributeConfigCategory.Instance.mainAttributeDic[qualityInt];
long Id = -1;
using var list1 = ListComponent<long>.Create();
using var weightList = ListComponent<int>.Create();
var orginWeightList = StarSoulAttributeConfigCategory.Instance.mainWeigt;
for (var i = 0; i < mainAttibuteList.Count; i++)
foreach (StarSoulEquipAttributeTypeConfig.AttributeType attributeType in starSoulEquipAttributeTypeConfig.AttributeTypeArr)
{
var l = mainAttibuteList[i];
StarSoulAttributeConfig soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(l);
if (starSoulEquipAttributeTypeConfig.AttributeTypeArr.As<IList<int>>().Contains(soulAttributeConfig.Key))
{
list1.List.Add(l);
weightList.List.Add(orginWeightList[i]);
}
weightList.List.Add(attributeType.Prob);
}
int mainIndex = RandomHelper.RandomByWeight(weightList.List);
if (mainIndex == -1)
{
@ -231,14 +242,9 @@ namespace ET
return -1;
}
if (mainIndex >= list1.List.Count)
{
Log.Error($"{mainIndex}>{list1.List.Count}");
return -1;
}
Id = list1.List[mainIndex];
byte key = starSoulEquipAttributeTypeConfig.AttributeTypeArr[mainIndex].Key;
long Id= StarSoulAttributeConfigCategory.Instance.GetMainValue(qualityInt, key);
return Id;
}
@ -276,6 +282,11 @@ namespace ET
starSoulItem.viceIds[index] = (int) id;
}
public static float GetRealMainValue(float oldValue, byte level)
{
return oldValue*MathF.Pow(mainAddCoe, level);
}
private const float mainAddCoe = 1.1f;
private const float reduceCoe = 0.8f;
private const float reduceCoe1 = 0.6f;

View File

@ -56,6 +56,9 @@ namespace ET
>=Sys_SceneId.Scene_SpaceTravel1 and
<=Sys_SceneId.Scene_SpaceTravel6
=> UnitSceneType.SpaceTravel,
>=Sys_SceneId.Scene_StarSoulCopyA and
<=Sys_SceneId.Scene_StarSoulCopyE
=> UnitSceneType.StarSoulCopy,
_ => UnitSceneType.Common,
};
}

View File

@ -303,6 +303,56 @@ namespace ET
return familyBossConfig;
}
public static void StarSoulGenerate(CopyBattle self, StarSoulCopyConfig config)
{
Team team = self.team;
Team targetTeam = EntityFactory.Create<Team>(Game.Scene);
targetTeam.LeaderId = team.LeaderId;
int difficultIndex = team.MemberCount - 1;
float hpDifficult = 1 + ConstDefine.HpDifficultyArr[difficultIndex];
float atkDefDifficult = 1 + ConstDefine.AtkDefDifficultyArr[difficultIndex];
foreach (int monsterId in config.MonsterIdArr)
{
MonsterBase monsterBase = MonsterBaseCategory.Instance.Get(monsterId);
Unit unitMonster = EntityFactory.CreateWithParent<Unit, UnitType>(targetTeam, UnitType.Monster);
//!设置基础属性
unitMonster.AddComponent<NumericComponent>().Set(NumericType.Level, monsterBase.Level);
Character character = unitMonster.AddComponent<Character>();
unitMonster.AddComponent<Combat>();
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Hp * hpDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.PhyAtk * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.SpiAtk * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.PhyDef * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.SpiDef * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Str * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Wim * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Quk * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Spi * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Phy * atkDefDifficult));
character.Set(AttributeType., MathHelper.RoundToInt(monsterBase.Sta * atkDefDifficult));
character.Set(AttributeType., monsterBase.Pcrir * atkDefDifficult);
character.Set(AttributeType., monsterBase.Pcri * atkDefDifficult);
character.Set(AttributeType., monsterBase.Mcrir * atkDefDifficult);
character.Set(AttributeType., monsterBase.Mcri * atkDefDifficult);
character.Set(AttributeType., monsterBase.Rpcrir * atkDefDifficult);
character.Set(AttributeType., monsterBase.Rpcri * atkDefDifficult);
character.Set(AttributeType., monsterBase.Rmcrir * atkDefDifficult);
character.Set(AttributeType., monsterBase.Rmcri * atkDefDifficult);
character.Set(AttributeType., monsterBase.Dvo * atkDefDifficult);
character.Set(AttributeType., monsterBase.Nphyi);
character.Set(AttributeType., monsterBase.Nmeni);
MonsterInit(team.GetLeader().GetMap(), unitMonster, team.LeaderId, targetTeam, (int) config.Id, (int) monsterBase.Id,
monsterBase.Level, monsterBase.SkillGroupId);
}
self.targetTeam = targetTeam;
}
/// <summary>
/// 3处需要改动
/// </summary>

View File

@ -8,6 +8,7 @@ namespace ET
{
public struct StatisticsTypes
{
public const string EnergyCostType_StarSoul = "EnergyCostType_StarSoul";
public const string EnergyCostType_MainStory = "EnergyCostType_MainStory";
public const string EnergyCostType_IdleBattle = "EnergyCostType_IdleBattle";
public const string CoinSources_IdleBattle = "CoinSources_IdleBattle";

View File

@ -30,7 +30,6 @@ namespace ET
public override void Destroy(Bag self)
{
self.ItemCount = 0;
self.CurrEquipServerId = 0;
self.ItemDic.Clear();
self.WornEquipDic.Clear();
self.getAttributeFunc = null;
@ -93,7 +92,7 @@ namespace ET
bounds += equipItem.GetAdditionalAttribute(attributeType);
bounds += equipItem.GetRandomAttribute(attributeType);
bounds += equipItem.GetGemAttribute(attributeType);
bounds += equipItem.GetStarSoulAttribute(self,attributeType);
// bounds += equipItem.GetStarSoulAttribute(self,attributeType);
}
foreach (int suitId in self.suitAttributes)
{
@ -735,23 +734,23 @@ namespace ET
public static string PutonStarSoulItem(this Bag self,EquipType equipType, long id,out long oldId)
{
oldId = 0;
if (!self.WornEquipDic.TryGetValue((int) equipType, out Item wornItem))
{
Log.Error($"【{self.Id.GetPlayerFormatName()} ({ self.Id})】 系统错误,{equipType}在字典中没有索引");
return "系统错误";
}
if (wornItem.IsEmpty)
{
return "先穿戴装备";
}
EquipItem data= wornItem.data.As<EquipItem>();
if (data.starSoulItemServerId != 0)
{
oldId = data.starSoulItemServerId;
}
data.starSoulItemServerId = id;
// if (!self.WornEquipDic.TryGetValue((int) equipType, out Item wornItem))
// {
// Log.Error($"【{self.Id.GetPlayerFormatName()} ({ self.Id})】 系统错误,{equipType}在字典中没有索引");
// return "系统错误";
// }
//
// if (wornItem.IsEmpty)
// {
// return "先穿戴装备";
// }
//
// EquipItem data= wornItem.data.As<EquipItem>();
// if (data.starSoulItemServerId != 0)
// {
// oldId = data.starSoulItemServerId;
// }
// data.starSoulItemServerId = id;
return null;
}
}

View File

@ -287,41 +287,41 @@ namespace ET
return 0;
}
public static float GetStarSoulAttribute(this EquipItem self, Bag bag, AttributeType type)
{
float value = 0;
try
{
if (self.starSoulItemServerId != 0)
{
if(self.starSoulItemServerId==0)
return value;
StarSoulBag starSoulBag = bag.Parent.GetComponent<StarSoulBag>();
StarSoulItem item = starSoulBag.Get(self.starSoulItemServerId);
if (item == null)
{
return value;
}
StarSoulAttributeConfig soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.mainId);
if (soulAttributeConfig.Key == (int) type)
value += soulAttributeConfig.Value;
for (var i = 0; i < item.viceIds.Length; i++)
{
if(item.viceIds[i]==0)
break;
soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.viceIds[i]);
if (soulAttributeConfig.Key == (int) type)
value += ItemHelper.GetRealViceValue(soulAttributeConfig.Value*(1+item.viceAdd[i]),item.quality);
}
}
}
catch (Exception e)
{
Log.Error(e);
}
return value;
}
// public static float GetStarSoulAttribute(this EquipItem self, Bag bag, AttributeType type)
// {
// float value = 0;
// try
// {
// if (self.starSoulItemServerId != 0)
// {
// if(self.starSoulItemServerId==0)
// return value;
// StarSoulBag starSoulBag = bag.Parent.GetComponent<StarSoulBag>();
// StarSoulItem item = starSoulBag.Get(self.starSoulItemServerId);
// if (item == null)
// {
// return value;
// }
//
// StarSoulAttributeConfig soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.mainId);
// if (soulAttributeConfig.Key == (int) type)
// value += ItemHelper.GetRealMainValue(soulAttributeConfig.Value,item.level);
// for (var i = 0; i < item.viceIds.Length; i++)
// {
// if(item.viceIds[i]==0)
// break;
// soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.viceIds[i]);
// if (soulAttributeConfig.Key == (int) type)
// value += ItemHelper.GetRealViceValue(soulAttributeConfig.Value*(1+item.viceAdd[i]),item.quality);
// }
// }
// }
// catch (Exception e)
// {
// Log.Error(e);
// }
//
// return value;
// }
}
}

View File

@ -339,14 +339,16 @@ namespace ET
return string.Empty;
}
/// <summary>
/// 进化
/// </summary>
/// <param name="self"></param>
/// <param name="unit"></param>
/// <param name="itemIndex"></param>
/// <param name="requestIsLock"></param>
/// <returns></returns>
public static async ETTask<string> UpgradeItem(this ItemComponent self, Unit unit, int itemIndex)
public static async ETTask<string> UpgradeItem(this ItemComponent self, Unit unit, int itemIndex, bool requestIsLock)
{
Bag bag = unit.GetComponent<Bag>();
if (!bag.ItemDic.TryGetValueByKey1(itemIndex, out Item item))
@ -370,7 +372,7 @@ namespace ET
{
return "背包已满,至少留出一个空位!";
}
bool needUnlocked = !item.IsLock;
bool needUnlocked =!requestIsLock && !item.IsLock;
using ListComponent<(int, int)> listComponent = ListComponent<(int, int)>.Create();
List<(int, int)> removeList = listComponent.List;
for (int i = itemUpgrade.UpgradeNeedMaterialArr.Length - 1; i >= 0; i--)

View File

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Cal;
using Cal.DataTable;
namespace ET
@ -10,6 +11,7 @@ namespace ET
public override void Awake(StarSoulBag self)
{
self.InitData();
self.getAttributeFunc = self.GetAttribute;
}
}
@ -17,6 +19,9 @@ namespace ET
{
public override void Deserialize(StarSoulBag self)
{
self.getAttributeFunc = self.GetAttribute;
if(self.usedStarSoulDic.Count==0)
self.InitData();
}
}
@ -26,6 +31,10 @@ namespace ET
{
self.ItemCount = 0;
self.itemDic.Clear();
self.Suits.Clear();
self.typeStarSoulCount.Clear();
self.usedStarSoulDic.Clear();
self.getAttributeFunc = null;
}
}
@ -33,12 +42,54 @@ namespace ET
{
public static void InitData(this StarSoulBag self)
{
for (int i = 0; i < 12; i++)
{
self.usedStarSoulDic[(byte) i] = 0;
}
#if UNITY
GetDataFromServer(self);
#endif
}
public static float GetAttribute(this StarSoulBag self, AttributeType attributeType)
{
var bound = 0f;
try
{
foreach (var kv in self.usedStarSoulDic)
{
long starSoulId = kv.Value;
if (starSoulId != 0)
{
if(starSoulId==0)
return bound;
StarSoulBag starSoulBag = self;
StarSoulItem item = starSoulBag.Get(starSoulId);
if (item == null)
{
return bound;
}
StarSoulAttributeConfig soulAttributeConfig = StarSoulAttributeConfigCategory.Instance.Get(item.mainId);
if (soulAttributeConfig.Key == (int) attributeType)
bound += ItemHelper.GetRealMainValue(soulAttributeConfig.Value,item.level);
for (var i = 0; i < item.viceIds.Length; i++)
{
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);
}
}
}
}
catch (Exception e)
{
Log.Error(e);
}
return bound;
}
public static bool CanAdd(this StarSoulBag self)
{
return self.ItemCount < StarSoulBag.MaxCount;
@ -80,6 +131,22 @@ namespace ET
return itemBase;
}
private static void Sync(this StarSoulBag self,byte key)
{
self.usedStarSoulDic.TryGetValue(key, out long value);
M2C_SyncStarSoulBagItemUsed proto = new();
proto.key = key;
proto.value = value;
foreach (StarSoulSuit starSoulSuit in self.Suits)
{
proto.suitKVs.Add(new KV_int32_int32()
{
key = starSoulSuit.Id,
value = (int) starSoulSuit.type
});
}
MessageHelper.SendActor(self.GetParent<Unit>(), proto);
}
private static void Sync(this StarSoulBag self, long Id, StarSoulItem item)
{
M2C_SyncStarSoulBag proto = new();
@ -90,7 +157,6 @@ namespace ET
}
else
{
netItem.Id = item.Id;
netItem.level = item.level;
netItem.exp = item.exp;
@ -99,6 +165,7 @@ namespace ET
netItem.typeId = item.typeId;
netItem.isUsed = item.isUsed;
netItem.main = item.mainId;
netItem.isLocked = item.isLocked;
foreach (int id in item.viceIds)
{
netItem.vice.Add(id);
@ -131,21 +198,22 @@ namespace ET
do
{
if (item.level + addLevel >= 20) break;
nextLevel = (byte) (item.level + addLevel + 1);
StarSoulLevelConfig soulLevelConfig = StarSoulLevelConfigCategory.Instance.GetByQualityAndLevel(item.quality, nextLevel);
int needExp = soulLevelConfig.NeedExp;
var (exp, needGold) = expList[0];
var payRet = CharacterHelper.ReduceMoney(self.Parent, CharacterHelper.MoneyType.Coin, needGold * 100_00);
if (payRet != null)
{
AddLevel(self, item, addLevel, totalExp);
return payRet;
}
totalExp += exp;
expList.RemoveAt(0);
needCount++;
if (totalExp >= needExp)
{
var payRet = CharacterHelper.ReduceMoney(self.Parent, CharacterHelper.MoneyType.Coin, needGold * 100_00);
if (payRet != null)
{
AddLevel(self, item, addLevel, totalExp);
return payRet;
}
totalExp -= needExp;
addLevel++;
}
@ -157,14 +225,10 @@ namespace ET
static void AddLevel(StarSoulBag self, StarSoulItem item, int addLevel, int totalExp)
{
if (addLevel > 0)
{
item.exp = 0;
}
byte old = item.level;
item.level = (byte) (item.level + addLevel);
AddAttribute(item, old, 4);
item.exp += totalExp;
item.exp = totalExp;
self.Sync(item.Id, item);
}
}
@ -263,39 +327,95 @@ namespace ET
return "系统错误";
}
EquipType equipType = item.posType;
Bag bag = self.Parent.GetComponent<Bag>();
long oldId = 0;
byte key = (byte) item.posType;
if (item.isUsed)
{
var ret = bag.PutonStarSoulItem(equipType,0,out oldId);
if (ret != null)
self.usedStarSoulDic.TryGetValue(key, out var oldId);
if (oldId == 0)
{
return ret;
Log.Error($"{self.Id.GetPlayerFormatName()} {item}");
item.isUsed = false;
self.Sync(item.Id, item);
return "未找到星魂";
}
self.usedStarSoulDic[key] = 0;
self.typeStarSoulCount.TryGetValue(item.typeId, out int count);
if (count > 0)
self.typeStarSoulCount[item.typeId] = --count;
else
{
Log.Error($"{self.Id.GetPlayerFormatName()} {item}");
}
item.isUsed = false;
}
//放置
else
{
var ret = bag.PutonStarSoulItem(equipType,item.Id,out oldId);
if (ret != null)
int count = 0;
self.usedStarSoulDic.TryGetValue(key, out var oldId);
self.usedStarSoulDic[key] = item.Id;
if (oldId != 0)
{
return ret;
StarSoulItem oldItem = self.Get(oldId);
if (oldItem != null)
{
self.typeStarSoulCount.TryGetValue(oldItem.typeId, out count);
if (count > 0)
self.typeStarSoulCount[oldItem.typeId] = --count;
else
{
Log.Error($"{self.Id.GetPlayerFormatName()} {item}");
}
oldItem.isUsed = false;
self.Sync(oldItem.Id, oldItem);
}
}
self.typeStarSoulCount.TryGetValue(item.typeId, out count);
self.typeStarSoulCount[item.typeId] = ++count;
item.isUsed = true;
}
CheckSuit(self);
CharacterHelper.SyncNumeric(self.Parent);
var oldItem = self.Get(oldId);
if (oldItem != null)
{
oldItem.isUsed = false;
self.Sync(oldItem.Id,oldItem);
}
self.Sync(item.Id,item);
self.Sync(key);
self.Sync(item.Id, item);
return null;
}
private static void CheckSuit(this StarSoulBag self)
{
self.Suits.Clear();
foreach (var kv in self.typeStarSoulCount)
{
if (kv.Value >= 8)
{
AddSuit(self, kv.Key, StarSoulSuit.StarSoulSuitType.Suit4And8);
}
else if (kv.Value >= 4)
{
AddSuit(self, kv.Key, StarSoulSuit.StarSoulSuitType.Suit4);
}
}
static void AddSuit(StarSoulBag self, int id, StarSoulSuit.StarSoulSuitType type)
{
StarSoulSuit suit = new() { Id = id, type = type };
self.Suits.Add(suit);
}
}
public static void Lock(this StarSoulBag self, long id, bool messageIsLock)
{
var item = self.Get(id);
if (item != null)
{
item.isLocked = messageIsLock;
self.Sync(item.Id, item);
}
}
}
}

View File

@ -5,11 +5,11 @@ using Cal.DataTable;
namespace ET
{
public class CopyBattleAwakeSystem: AwakeSystem<CopyBattle>
public class CopyBattleAwakeSystem: AwakeSystem<CopyBattle,Team>
{
public override void Awake(CopyBattle self)
public override void Awake(CopyBattle self,Team team)
{
self.Awake();
self.Awake(team);
}
}
@ -31,11 +31,12 @@ namespace ET
public static class CopyBattleSystem
{
public static void Awake(this CopyBattle self)
public static void Awake(this CopyBattle self, Team team)
{
self.team = team;
self.bossDamageMap = new BossDamageMap();
self.isRunning = false;
self.quitBattleAction = OnQuitBattle;
self.isRunning = false;
self.quitBattleAction = OnQuitBattle;
}
public static void Update(this CopyBattle self)
@ -180,8 +181,10 @@ namespace ET
item.GetMap()?.Leave(item);
item.Dispose();
}
self.targetTeam.Dispose();
}
self.targetTeam = null;
self.copyConfigId = 0;
self.configId = 0;
@ -248,7 +251,7 @@ namespace ET
int num2 = num;
num -= copyConfig.NeedEnergy;
component.Set(NumericType.Energy, num);
StatisticsHelper.AddEnergyCost(u.Id, "EnergyCostType_MainStory", num2 - num);
StatisticsHelper.AddEnergyCost(u.Id, StatisticsTypes.EnergyCostType_MainStory, num2 - num);
}
// self.SendMonsterInfo();
@ -410,8 +413,9 @@ namespace ET
{
Log.Error(e);
}
}
private static void OnQuitBattle(CopyBattle self, Team team,long Id)
}
private static void OnQuitBattle(CopyBattle self, Team team, long Id)
{
try
{

View File

@ -27,7 +27,7 @@ namespace ET
public override async ETTask Run(UpdatePer1HourOfDay args)
{
DateTime dateTime = DateTime.Now;
if (dateTime.DayOfWeek != DayOfWeek.Wednesday && dateTime.DayOfWeek != DayOfWeek.Friday)
if (dateTime.DayOfWeek != System.DayOfWeek.Wednesday && dateTime.DayOfWeek != System.DayOfWeek.Friday)
{
return;
}
@ -170,7 +170,7 @@ namespace ET
DateTime dateTime = DateTime.Now;
if (AppConfig.inst.isTest)
return null;
if (dateTime.DayOfWeek != DayOfWeek.Wednesday && dateTime.DayOfWeek != DayOfWeek.Friday)
if (dateTime.DayOfWeek != System.DayOfWeek.Wednesday && dateTime.DayOfWeek != System.DayOfWeek.Friday)
{
return $"周三、周五 开启!";
}

View File

@ -0,0 +1,15 @@
namespace ET
{
public class ActiveComponentAwakeSystem:AwakeSystem<ActiveComponent>
{
public override void Awake(ActiveComponent self)
{
ActiveComponent.instance = self;
}
}
public static class ActiveComponentSystem
{
}
}

View File

@ -1,20 +1,21 @@
using Cal;
using System;
using System.Collections.Generic;
using Cal.DataTable;
namespace ET
{
public class CombatDestroySystem : DestroySystem<Combat>
public class CombatDestroySystem: DestroySystem<Combat>
{
public override void Destroy(Combat self)
{
self.Destory();
}
}
public static class CombatSystem
{
public static float GetAtribute(this Combat self, AttributeType attributeType)
public static float GetAtrribute(this Combat self, AttributeType attributeType)
{
float value = 0;
if (self.sources == null)
@ -22,6 +23,7 @@ namespace ET
Log.Error($"{self.Parent.Id} 没有ICombat组件");
return 0;
}
foreach (ICombatBounds item in self.sources)
{
if (item.getAttributeFunc == null)
@ -29,31 +31,172 @@ namespace ET
else
value += item.getAttributeFunc.Invoke(attributeType);
}
switch (attributeType)
if (CanAddByPoint(attributeType))
{
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
value += CharacterHelper.GetAttributeByPoint(self,attributeType,
GetAtribute(self, AttributeType.),
GetAtribute(self, AttributeType.),
GetAtribute(self, AttributeType.),
GetAtribute(self, AttributeType.),
GetAtribute(self, AttributeType.),
GetAtribute(self, AttributeType.));
break;
default:
break;
value += CharacterHelper.GetAttributeByPoint(self, attributeType,
GetAtrribute(self, AttributeType.),
GetAtrribute(self, AttributeType.),
GetAtrribute(self, AttributeType.),
GetAtrribute(self, AttributeType.),
GetAtrribute(self, AttributeType.),
GetAtrribute(self, AttributeType.));
}
value += AddAttributeByCharacter(self, attributeType);
return value;
}
private static bool CanAddByPoint(AttributeType attributeType)
{
//递归调用,避免死循环
return attributeType is
AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.
or AttributeType.;
}
/// <summary>
/// 是否可以加成
/// </summary>
/// <param name="self"></param>
/// <param name="type"></param>
/// <returns></returns>
private static bool CanAddPercentAttribute(this AttributeType self, AttributeType type)
{
if (self == type)
return true;
return self switch
{
AttributeType. => type is AttributeType. or AttributeType.,
AttributeType. => type is AttributeType. or AttributeType.,
AttributeType. => type is AttributeType.,
AttributeType. => type is AttributeType.,
// AttributeType.暴击系数 => type is AttributeType.物理暴击系数 or AttributeType.精神暴击系数,
// AttributeType.暴击效果 => type is AttributeType.物理暴击效果 or AttributeType.精神暴击效果,
// AttributeType.抗暴击系数 => type is AttributeType.抗物理暴击系数 or AttributeType.抗精神暴击系数,
// AttributeType.抗暴击效果 => type is AttributeType.抗物理暴击效果 or AttributeType.抗精神暴击效果,
_ => false
};
}
/// <summary>
/// 加成属性
/// </summary>
/// <param name="self"></param>
/// <param name="type"></param>
/// <returns></returns>
private static bool CanAddFixedAttribute(this AttributeType self, AttributeType type)
{
if (self == type)
{
return true;
}
switch (self)
{
case AttributeType.:
return type is AttributeType. or AttributeType.;
case AttributeType.:
return type is AttributeType. or AttributeType.;
case AttributeType.:
return type is AttributeType. or AttributeType.;
case AttributeType.:
return type is AttributeType. or AttributeType.;
default:
{
return false;
}
}
}
private static float AddAttributeByCharacter(Combat self, AttributeType attributeType)
{
try
{
Character character = self.Parent.GetComponent<Character>();
if (character.getAttributeFunc == null)
{
Log.Error($"{self.Id.GetPlayerFormatName()}getAttributeFunc == null");
return 0;
}
StarSoulBag bag = self.Parent.GetComponent<StarSoulBag>();
if (!bag)
return 0;
if (bag.Suits.Count == 0)
return 0;
float oldValue = 0;
if (CanAddByPoint(attributeType))
{
oldValue += CharacterHelper.GetAttributeByPoint(self, attributeType,
character.getAttributeFunc.Invoke(AttributeType.),
character.getAttributeFunc.Invoke(AttributeType.),
character.getAttributeFunc.Invoke(AttributeType.),
character.getAttributeFunc.Invoke(AttributeType.),
character.getAttributeFunc.Invoke(AttributeType.),
character.getAttributeFunc.Invoke(AttributeType.));
}
foreach (StarSoulSuit starSoulSuit in bag.Suits)
{
StarSoulTypeConfig soulTypeConfig = StarSoulTypeConfigCategory.Instance.Get(starSoulSuit.Id);
if (soulTypeConfig == null)
continue;
if (starSoulSuit.type.HasFlag(StarSoulSuit.StarSoulSuitType.Suit4))
{
AttributeType type = ((AttributeType) soulTypeConfig.Suit4Key);
if (type.CanAddFixedAttribute(attributeType))
oldValue += soulTypeConfig.Suit4Value;
else if (type.CanAddPercentAttribute(attributeType))
{
AddValue(attributeType, ref oldValue, soulTypeConfig.Suit4Value);
}
}
if (starSoulSuit.type.HasFlag(StarSoulSuit.StarSoulSuitType.Suit8))
{
AttributeType type = ((AttributeType) soulTypeConfig.Suit8Key);
if (type.CanAddFixedAttribute(attributeType))
oldValue += soulTypeConfig.Suit8Value;
else if (type.CanAddPercentAttribute(attributeType))
{
AddValue(attributeType, ref oldValue, soulTypeConfig.Suit8Value);
}
}
}
static void AddValue(AttributeType attributeType, ref float oldValue, float addValue)
{
switch (attributeType)
{
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
case AttributeType.:
oldValue = oldValue * (1 + addValue);
break;
default:
throw new ArgumentOutOfRangeException(nameof (attributeType), attributeType, null);
}
}
return oldValue;
}
catch (Exception e)
{
Log.Error(e);
}
return 0;
}
}
}
}

View File

@ -119,8 +119,8 @@ namespace ET
data.travelVoucher = 10;
data.hasReceiveTrialCopyReword = false;
DayOfWeek today = DateTime.Now.DayOfWeek;
if (today is DayOfWeek.Saturday or DayOfWeek.Sunday)
System.DayOfWeek today = DateTime.Now.DayOfWeek;
if (today is System.DayOfWeek.Saturday or System.DayOfWeek.Sunday)
data.mainstoryAITime += 4 * 60 * 60 * 1000;
else
data.mainstoryAITime += 2 * 60 * 60 * 1000;

View File

@ -37,6 +37,7 @@ namespace ET
case SceneType.Map:
scene.AddComponent<RunTimeComponent>();
scene.AddComponent<UserComponent>();
scene.AddComponent<ActiveComponent>();
scene.AddComponent<MapUnitComponent>();
scene.AddComponent<MaintainRewardComponent>();
scene.AddComponent<MapSceneComponent>();

View File

@ -17,5 +17,6 @@ namespace ET
PersonalPvp = 5,
ManulEquip = 6,
SpaceTravel =7,
StarSoulCopy =8,
}
}

View File

@ -0,0 +1,34 @@
using ET;
using MongoDB.Bson.Serialization.Attributes;
namespace Cal.DataTable
{
[Config]
public partial class ActivePerDayConfigCategory : ACategory<ActivePerDayConfig>
{
public static ActivePerDayConfigCategory Instance;
public ActivePerDayConfigCategory()
{
Instance = this;
}
}
public partial class ActivePerDayConfig:IConfig
{
public partial class Reward
{
public int RewardId;
public int Count;
}
[BsonId]
public long Id { get; set; }
public int[] Day;
public byte Type;
public string Name;
public string Desc;
public string BattleMethod;
public string[] Params;
public string Condition;
public Reward[] RewardArr;
}
}

View File

@ -54,5 +54,9 @@ namespace Cal.DataTable
/// 时空旅行战斗
/// </summary>
public const int SpaceTravelBattle = 10013;
/// <summary>
/// 星魂副本战斗
/// </summary>
public const int StarSoulBattle = 10014;
}
}

View File

@ -46,5 +46,17 @@ namespace Cal.DataTable
/// 隐藏boss
/// </summary>
public const int SpaceTravel6 = 1011;
/// <summary>
/// 星魂侍者
/// </summary>
public const int StarSoul1 = 1012;
/// <summary>
/// 星魂操纵者
/// </summary>
public const int StarSoul2 = 1013;
/// <summary>
/// 星魂极巫
/// </summary>
public const int StarSoul3 = 1014;
}
}

View File

@ -22,10 +22,10 @@ namespace Cal.DataTable
public int Weight;
public int MinCount;
public int MaxCount;
public bool IsLock;
}
[BsonId]
public long Id { get; set; }
public Drop[] DropArr;
public bool IsLock;
}
}

View File

@ -17,11 +17,11 @@ namespace Cal.DataTable
{
[BsonId]
public long Id { get; set; }
public int Type;
public int Quality;
public int Key;
public byte Type;
public byte Quality;
public byte Key;
[BsonRepresentation(MongoDB.Bson.BsonType.Double, AllowTruncation = true)]
public float Value;
public int ViceWeight;
public byte ViceWeight;
}
}

View File

@ -0,0 +1,27 @@
using ET;
using MongoDB.Bson.Serialization.Attributes;
namespace Cal.DataTable
{
[Config]
public partial class StarSoulCopyConfigCategory : ACategory<StarSoulCopyConfig>
{
public static StarSoulCopyConfigCategory Instance;
public StarSoulCopyConfigCategory()
{
Instance = this;
}
}
public partial class StarSoulCopyConfig:IConfig
{
[BsonId]
public long Id { get; set; }
public byte Type;
public byte Difficulty;
public byte BossIndex;
public int[] MonsterIdArr;
public byte StarSoulCountMin;
public byte StarSoulCountMax;
}
}

View File

@ -15,8 +15,13 @@ namespace Cal.DataTable
public partial class StarSoulEquipAttributeTypeConfig:IConfig
{
public partial class AttributeType
{
public byte Key;
public byte Prob;
}
[BsonId]
public long Id { get; set; }
public int[] AttributeTypeArr;
public AttributeType[] AttributeTypeArr;
}
}

View File

@ -19,5 +19,14 @@ namespace Cal.DataTable
public long Id { get; set; }
public string Name;
public string Icon;
public byte CopyType;
public byte Suit4Key;
[BsonRepresentation(MongoDB.Bson.BsonType.Double, AllowTruncation = true)]
public float Suit4Value;
public string Suit4;
public byte Suit8Key;
[BsonRepresentation(MongoDB.Bson.BsonType.Double, AllowTruncation = true)]
public float Suit8Value;
public string Suit8;
}
}

View File

@ -178,5 +178,25 @@ namespace Cal.DataTable
/// 时空旅行6
/// </summary>
public const int Scene_SpaceTravel6 = 10044;
/// <summary>
/// A星魂副本
/// </summary>
public const int Scene_StarSoulCopyA = 10045;
/// <summary>
/// B星魂副本
/// </summary>
public const int Scene_StarSoulCopyB = 10046;
/// <summary>
/// C星魂副本
/// </summary>
public const int Scene_StarSoulCopyC = 10047;
/// <summary>
/// D星魂副本
/// </summary>
public const int Scene_StarSoulCopyD = 10048;
/// <summary>
/// E星魂副本
/// </summary>
public const int Scene_StarSoulCopyE = 10049;
}
}

View File

@ -30,7 +30,6 @@ namespace ET
public readonly int SortTimeInterval = 60 * 1000;
public const int UseTimeInterval = 30 * 1000;
public int ItemCount;
public long CurrEquipServerId;
public long lastSortTime;
public long lastUseTime;
@ -203,10 +202,10 @@ namespace ET
public Quality quality;
public int equipLevel;
/// <summary>
/// 星魂
/// </summary>
public long starSoulItemServerId;
// /// <summary>
// /// 星魂
// /// </summary>
// public long starSoulItemServerId;
public EquipItem()
{
@ -216,7 +215,7 @@ namespace ET
{
EquipItem equipItem = (EquipItem) base.Clone();
equipItem.serverId = serverId;
equipItem.starSoulItemServerId = starSoulItemServerId;
// equipItem.starSoulItemServerId = starSoulItemServerId;
if (mainAttribute != null)
equipItem.mainAttribute = new Dictionary<int, float>(mainAttribute);
if (addtionalAttributes != null)
@ -280,7 +279,7 @@ namespace ET
Quality = (int) equipItem.quality;
Star = equipItem.star;
Level = equipItem.equipLevel;
this.starsoulId = equipItem.starSoulItemServerId;
// this.starsoulId = equipItem.starSoulItemServerId;
}
}
}

View File

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using Cal;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
@ -39,6 +40,7 @@ namespace ET
public EquipType posType;
public Quality quality;
public bool isUsed;
public bool isLocked;
// [BsonRepresentation(MongoDB.Bson.BsonType.Double, AllowTruncation = true)]
public int mainId;
@ -48,10 +50,31 @@ namespace ET
public byte addViceCount;
public override string ToString()
{
return $"id={this.Id} type={this.typeId} {this.posType} {this.quality} level={this.level} isUsed={this.isUsed} islocked={this.isLocked}";
}
}
public class StarSoulSuit
{
[System.Flags]
public enum StarSoulSuitType:byte
{
None,
Suit4=1,
/// <summary>
/// 不要使用,不存在这种情况
/// </summary>
Suit8=1<<1,
Suit4And8 = Suit4|Suit8,
}
public int Id;
public StarSoulSuitType type;
}
[BsonIgnoreExtraElements]
public class StarSoulBag: Entity
public class StarSoulBag: Entity,ICombatBounds
{
public const ushort MaxCount = 1000;
public int ItemCount;
@ -59,5 +82,16 @@ namespace ET
public SortedDictionary<long, StarSoulItem> itemDic = new SortedDictionary<long, StarSoulItem>();
public long lastSortTime;
public const int sortTimeIntervel = 120 * 1000;
public List<StarSoulSuit> Suits = new List<StarSoulSuit>();
/// <summary>
/// 星魂数量,用于计算套装
/// </summary>
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<int, int> typeStarSoulCount = new Dictionary<int, int>();
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<byte, long> usedStarSoulDic = new Dictionary<byte, long>();
[BsonIgnore]
public Func<AttributeType, float> getAttributeFunc { get; set; }
}
}

View File

@ -0,0 +1,8 @@
namespace ET
{
public class StarSoulCopyConfigComponent:Entity
{
public byte type;
public byte difficulty;
}
}

View File

@ -0,0 +1,8 @@
namespace ET
{
public class ActiveComponent:Entity
{
public static ActiveComponent instance;
}
}

View File

@ -0,0 +1,23 @@
using System.Collections.Generic;
using ET;
namespace Cal.DataTable
{
public partial class ActivePerDayConfigCategory
{
public UnOrderMultiMap<byte, long> activeIdDic = new UnOrderMultiMap<byte, long>();
public override void EndInit()
{
base.EndInit();
foreach (var kv in this.dict)
{
foreach (var i1 in kv.Value.Day)
{
var i = (byte) i1;
activeIdDic.Add(i,kv.Key);
}
}
}
}
}

View File

@ -31,5 +31,16 @@ namespace Cal.DataTable
};
return Get(id);
}
public MapMonsterConfig GetStarSoulCopyMapMonster(int layer)
{
long id= layer switch
{
1 => MapMonsterConfigId.StarSoul1,
2 => MapMonsterConfigId.StarSoul2,
3 => MapMonsterConfigId.StarSoul3,
_ => throw new Exception($"没有更多的层数:{layer}"),
};
return Get(id);
}
}
}

View File

@ -7,8 +7,13 @@ namespace Cal.DataTable
{
public List<KeyValuePair<AttributeType, long>> viceKeyList = new List<KeyValuePair<AttributeType, long>>(40);
public List<int> viceWeigt = new List<int>(40);
public List<int> mainWeigt = new List<int>(40);
public UnOrderMultiMap<int, long> mainAttributeDic = new UnOrderMultiMap<int, long>();
private Dictionary<(byte, byte), long> mainAttributeDic = new Dictionary<(byte, byte), long>();
public long GetMainValue(Quality quality, int key)
{
mainAttributeDic.TryGetValue(((byte, byte)) (quality, key), out long value);
return value;
}
public override void EndInit()
{
base.EndInit();
@ -22,11 +27,7 @@ namespace Cal.DataTable
}
else
{
if (config.Quality == 1)
{
mainWeigt.Add(config.ViceWeight);
}
mainAttributeDic.Add(config.Quality,config.Id);
mainAttributeDic.Add((config.Quality,config.Key),kv.Key);
}
}
}

View File

@ -0,0 +1,27 @@
using System.Collections.Generic;
namespace Cal.DataTable
{
public partial class StarSoulCopyConfigCategory
{
private Dictionary<(byte, byte, byte), long> dic = new Dictionary<(byte, byte, byte), long>();
public StarSoulCopyConfig GetByTypeAndDifficultyAndIndex(byte type, byte difficulty, byte index)
{
if (this.dic.TryGetValue((type, difficulty, index), out long id))
{
return Get(id);
}
return null;
}
public override void EndInit()
{
base.EndInit();
foreach (var kv in this.dict)
{
dic.Add((kv.Value.Type, kv.Value.Difficulty, kv.Value.BossIndex), kv.Key);
}
}
}
}

View File

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Cal.DataTable
{
public partial class StarSoulEquipAttributeTypeConfig
{
}
}

View File

@ -1,16 +1,17 @@
using System.Collections.Generic;
using ET;
namespace Cal.DataTable
{
public partial class StarSoulTypeConfigCategory
{
public List<long> ids = new List<long>();
public UnOrderMultiMap<byte, int> idDic = new UnOrderMultiMap<byte, int>();
public override void EndInit()
{
base.EndInit();
foreach (var kv in this.dict)
{
ids.Add(kv.Key);
idDic.Add(kv.Value.CopyType,(int) kv.Key);
}
}
}

View File

@ -296,9 +296,6 @@ namespace ET
[ProtoMember(12)]
public List<int> GemList = new List<int>();
[ProtoMember(13)]
public long starsoulId { get; set; }
}
//登录相关==================================
@ -4993,6 +4990,9 @@ namespace ET
[ProtoMember(1)]
public int Index { get; set; }
[ProtoMember(2)]
public bool isLock { get; set; }
}
[Message(OuterOpcode.M2C_Upgrade)]
@ -6997,6 +6997,9 @@ namespace ET
[ProtoMember(10)]
public List<float> viceAdd = new List<float>();
[ProtoMember(11)]
public bool isLocked { get; set; }
}
[ResponseType(typeof(M2C_GetStarSoulBag))]
@ -7012,6 +7015,42 @@ namespace ET
}
[Message(OuterOpcode.KV_int32_int64)]
[ProtoContract]
public partial class KV_int32_int64
{
[ProtoMember(1)]
public int key { get; set; }
[ProtoMember(2)]
public long value { get; set; }
}
[Message(OuterOpcode.KV_int32_int32)]
[ProtoContract]
public partial class KV_int32_int32
{
[ProtoMember(1)]
public int key { get; set; }
[ProtoMember(2)]
public int value { get; set; }
}
[Message(OuterOpcode.KV_string_int32)]
[ProtoContract]
public partial class KV_string_int32
{
[ProtoMember(1)]
public string key { get; set; }
[ProtoMember(2)]
public int value { get; set; }
}
[Message(OuterOpcode.M2C_GetStarSoulBag)]
[ProtoContract]
public partial class M2C_GetStarSoulBag:IActorLocationResponse
@ -7028,6 +7067,12 @@ namespace ET
[ProtoMember(1)]
public List<StarSoulNetItem> itemList = new List<StarSoulNetItem>();
[ProtoMember(2)]
public List<long> usedIdMap = new List<long>();
[ProtoMember(5)]
public List<KV_int32_int32> suitKVs = new List<KV_int32_int32>();
}
[Message(OuterOpcode.M2C_SyncStarSoulBag)]
@ -7048,6 +7093,27 @@ namespace ET
}
[Message(OuterOpcode.M2C_SyncStarSoulBagItemUsed)]
[ProtoContract]
public partial class M2C_SyncStarSoulBagItemUsed:IActorMessage
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(3)]
public int key { get; set; }
[ProtoMember(4)]
public long value { get; set; }
[ProtoMember(5)]
public List<KV_int32_int32> suitKVs = new List<KV_int32_int32>();
}
[ResponseType(typeof(M2C_UpgradeStarSoulItem))]
[Message(OuterOpcode.C2M_UpgradeStarSoulItem)]
[ProtoContract]
@ -7113,4 +7179,87 @@ namespace ET
}
[Message(OuterOpcode.C2M_LockStarSoulItem)]
[ProtoContract]
public partial class C2M_LockStarSoulItem:IActorLocationMessage
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(2)]
public long itemId { get; set; }
[ProtoMember(1)]
public bool isLock { get; set; }
}
[ResponseType(typeof(M2C_StartActive))]
[Message(OuterOpcode.C2M_StartActive)]
[ProtoContract]
public partial class C2M_StartActive:IActorLocationRequest
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(2)]
public int itemId { get; set; }
}
[Message(OuterOpcode.M2C_StartActive)]
[ProtoContract]
public partial class M2C_StartActive:IActorLocationResponse
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(91)]
public int Error { get; set; }
[ProtoMember(92)]
public string Message { get; set; }
}
[ResponseType(typeof(M2C_GetUIDByName))]
[Message(OuterOpcode.C2M_GetUIDByName)]
[ProtoContract]
public partial class C2M_GetUIDByName:IActorLocationRequest
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(2)]
public string name { get; set; }
}
[Message(OuterOpcode.M2C_GetUIDByName)]
[ProtoContract]
public partial class M2C_GetUIDByName: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<KV_string_int32> map = new List<KV_string_int32>();
}
}

View File

@ -398,11 +398,20 @@ namespace ET
public const ushort M2C_StartSpaceTravel = 20394;
public const ushort StarSoulNetItem = 20395;
public const ushort C2M_GetStarSoulBag = 20396;
public const ushort M2C_GetStarSoulBag = 20397;
public const ushort M2C_SyncStarSoulBag = 20398;
public const ushort C2M_UpgradeStarSoulItem = 20399;
public const ushort M2C_UpgradeStarSoulItem = 20400;
public const ushort C2M_PutonStarSoulItem = 20401;
public const ushort M2C_PutonStarSoulItem = 20402;
public const ushort KV_int32_int64 = 20397;
public const ushort KV_int32_int32 = 20398;
public const ushort KV_string_int32 = 20399;
public const ushort M2C_GetStarSoulBag = 20400;
public const ushort M2C_SyncStarSoulBag = 20401;
public const ushort M2C_SyncStarSoulBagItemUsed = 20402;
public const ushort C2M_UpgradeStarSoulItem = 20403;
public const ushort M2C_UpgradeStarSoulItem = 20404;
public const ushort C2M_PutonStarSoulItem = 20405;
public const ushort M2C_PutonStarSoulItem = 20406;
public const ushort C2M_LockStarSoulItem = 20407;
public const ushort C2M_StartActive = 20408;
public const ushort M2C_StartActive = 20409;
public const ushort C2M_GetUIDByName = 20410;
public const ushort M2C_GetUIDByName = 20411;
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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" : "42cde788e52858b80e4980e24e8017d9", "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" : "851670d1506adfcf9a6c330e58623f9a", "NPCBase.xlsx" : "e64543df667ad4bfcabddd90e50768ce", "OnlineRewardBase.xlsx" : "e376d6f31abc8c39397f03f8c24fc7bc", "QuestConfig.xlsx" : "882de4872ea851fea32138f6d48798b1", "RoleGrowth.xlsx" : "1384845a732285f6affef3cf6c67a672", "RolesPosition.xlsx" : "f5888586a320dfcd693c91c1f7cfc90d", "ShopBase.xlsx" : "717de9348e7b7501a5e819947a7fea7e", "SkillConfig.xlsx" : "99c3580036a107d4ccc1f700164875f9", "SkillGroupBase.xlsx" : "126e96152f3ea559746d6f183d43f58f", "SkinBase.xlsx" : "0ccaf77db20367939303cd68c2896d4d", "Sys_Code.xlsx" : "8eff5c2fd8743578db17c86a81862d39", "Sys_Prefab.xlsx" : "f0d88c3b042ca8749cfba0c1dfc90c8c", "Sys_Scene.xlsx" : "81ca20c5dde1c686a2b23c3bb6803212", "TaskBase.xlsx" : "bf4ab00ad6cc6db58278a782d75c91e7", "TrialCopy.xlsx" : "b85d1a4bdc49dbc63a759a499aed8f5f", "Parentset.xlsx" : "1b4c3c31024f10137e240b4f2ec3df93", "SonAdvancedSet.xlsx" : "7128d07efa77d9de70d956b71c926e31", "SonSet.xlsx" : "e534b68fc5ada32c6d8d8e95750813d0", "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" : "298a25fd525f84aabc5c999f37eb74f3", "TransferJobConfig.xlsx" : "5b0daa2b0837e66196fbda214d72678a", "GMConfig.xlsx" : "6367ce3807b3b87d1a950107215b5704", "SuitConfig.xlsx" : "b67db1e911e14362e3409cb9f5f94216", "PetConfig.xlsx" : "4612dd8a5c3af3d3f21a4b7307eb169d", "PetLevelConfig.xlsx" : "a86c4cbde022ccd884ccf572ad5edfe7", "PetExploreConfig.xlsx" : "333043bd5c172def36660eca1dc8416a", "AIConfig.xlsx" : "871d248a954d8c59188e41d002135c75", "CopyConfig.xlsx" : "c01abde3689907ec63d80a14f54e3dd1", "CopyRewordConfig.xlsx" : "f4de20211685f21d15a8170061fdc7d2", "SpaceTravelConfig.xlsx" : "be6486259f73db40a93bdecef00a066e", "SceneTransConfig.xlsx" : "fcf6a7efb0051600d95aab41d2534538", "ArenaShop.xlsx" : "3fd4650500dd2bf83064a1fd46e4444d", "StarShop.xlsx" : "e14b5e252416a12318e775d86dd1b2f7", "StarSoulTypeConfig.xlsx" : "2d081de6c4a55ba33b6eb47d0afddfcb", "StarSoulAttributeConfig.xlsx" : "13bb12062c8b69f210d70ea6fd77a57f", "StarSoulEquipAttributeTypeConfig.xlsx" : "52794cf08df4d647f994020d6f041cdf", "StarSoulLevelConfig.xlsx" : "fd7791d46bf700ada720e5724356d7a6" } }
{ "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" : "42cde788e52858b80e4980e24e8017d9", "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" : "8f40f31667572241b763f1334b99809f", "NPCBase.xlsx" : "e64543df667ad4bfcabddd90e50768ce", "OnlineRewardBase.xlsx" : "e376d6f31abc8c39397f03f8c24fc7bc", "QuestConfig.xlsx" : "882de4872ea851fea32138f6d48798b1", "RoleGrowth.xlsx" : "1384845a732285f6affef3cf6c67a672", "RolesPosition.xlsx" : "f5888586a320dfcd693c91c1f7cfc90d", "ShopBase.xlsx" : "717de9348e7b7501a5e819947a7fea7e", "SkillConfig.xlsx" : "99c3580036a107d4ccc1f700164875f9", "SkillGroupBase.xlsx" : "126e96152f3ea559746d6f183d43f58f", "SkinBase.xlsx" : "0ccaf77db20367939303cd68c2896d4d", "Sys_Code.xlsx" : "8eff5c2fd8743578db17c86a81862d39", "Sys_Prefab.xlsx" : "f0d88c3b042ca8749cfba0c1dfc90c8c", "Sys_Scene.xlsx" : "2daaf184fdcfed70a9254ab5a612d5ec", "TaskBase.xlsx" : "bf4ab00ad6cc6db58278a782d75c91e7", "TrialCopy.xlsx" : "b85d1a4bdc49dbc63a759a499aed8f5f", "Parentset.xlsx" : "1b4c3c31024f10137e240b4f2ec3df93", "SonAdvancedSet.xlsx" : "7128d07efa77d9de70d956b71c926e31", "SonSet.xlsx" : "5a4c281ce96e72470de992313b7d6dfd", "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" : "ed18fa0021e5931a9a5f36d9600d612b", "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" : "8215d4db23c558eef9addbee8b158f08", "StarSoulAttributeConfig.xlsx" : "eae313d2f6cf4fdba87e53f51dc7d57f", "StarSoulEquipAttributeTypeConfig.xlsx" : "0aadceefcf88bc9d2b6d5c643cad79ce", "StarSoulLevelConfig.xlsx" : "0602d7ff6fbb242a4a0ebfcffd13fa9d", "ActivePerDayConfig.xlsx" : "cf0b65ead205b7468f6e06136ae7a172", "StarSoulCopyConfig.xlsx" : "921a5d72a0a56ef33bbe03285dafe9d5" } }

View File

@ -0,0 +1 @@
eNq12M9rE0EUwPF7of+DzNU5zJud3ez2lqYeelCK9RaCLM2qgbRbtlslSKEUBEU91hQteJJ60OpR4o/+M90N+S8cSRPyZBcy8N4tszvL7Ifwhce2V1faoJQCeeu5eNjrirXpSmzEA7HWBhlI1ZHiwWA/sbekuBfv2h+iPPs4+XpSvPpWnn8RdnNysGOvFr+Oi4vXxYtPk+Hn8eiiubirfHlWvhvavetxnveTu0n+JLWnieZO3nuabOdxtp0e9lvp/sDu2YqzePfAni/ArkDYN7ifPIuzbjPL7FX7pvn80a0ks+/aSvce9R7fnu4Ss+2b9gQlRSs93LMPqCPZOerIG7FGYl0t1kuJx5fHxdtTQrFmEXtI7FWLveX+4w/fJ+//EIo9FrFBYlMtNkuJr68ux7+HhGLDIvaR2J+JNRL7bh2vE4g1W8cBEgfV4sCtYyoxT8cNJG5UixtuHVOJeToOkTisFoduHVOJeTqOkDiaiT0kjtw6bhGIPa6OQS2K7apS/O+6S8hUZJaQAQ1dADVkcCuZisxSMqCpC3QNWbulTEVmSRnQ2AXzsctgsufW8gYB2bC1jOYuMDVk49YyFZmnZTR4gV9D9t1apiLztIwmLwhqyIFby1RknpbR6AXz0cvH5IZby3cIyD5by2j2grCGHLq1TEXmaRkNXxDVkCO3lqnILC1rNH1pVU3Wyq1lKjJLyxpNX3rhk5eWnjTSr/v09eakPB/NNTfy6x8/x6Or/+5VSje7/WR6Q9CiOqsrfwEj+2Gc

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ff94e43d6a1fb214fa919e1cfefaf63d
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +1 @@
eNrdlt9r01AUx98H+x/kPuchadpu62NrB6O0BFv2MobcNncSSHJrkk6KCLMwmOvEB9HqGIoPexBh/niYs4r+M+1N91+YNF2Sm9w0VnGCj7f39Jvz+Z577zlby0tbAs/zAnfjPrityKDgrUANaggUQBUqet3CRreGDQ2qRWhZKgIcuInMlrM9uvhqD3+Ql2eXe8fk4AV5PnD2vKBGt+0IOEqbSssVKOF29xa6hw05LOvFzkKmujsIWlRsCWsa1r0NJ6KGkFzWkXGnCwqityxi07z6iedACeoNBDVQsIwO4kBVmS6rSGsiY5qR99F6C+lohkmOe2RwPrp4bL8+vXz4FDzY5mbGZChjMnFjyqpiIbYv9qfvk/7H/9MXkfJFjPvifpxtS9PZ+QemCH/flCxlStY3pWEoUHXzjBoyef/M7n0bfemPTz4wLcmwLYkILmKJD7wDVZNBHNDkKJqcT8OqbDGppiIbINCYm3sQRpU0XEMhtYYBUZ4iyvtE61BTVOaJHZ+dk8GTRLocmy6qN5cxGhyvVBrWCoW1ErqLekct3+0o7SgWedQffz5lIuWTLiGt9VtHjgkiBiCrFMiqDyIhw8Q6VKXdGIn97hU53BufDNnXJ+FJiQnOxYlF+2QbprQpXXGl3Sw3fB03m4qMdAlbCta9fwb8axT/WsBfiWJLlSgpn0BaWbxebKqUUyjw4eSdVcIIsSGrsXZJjnrEqeB0jIhwZVN6QiD3B83ylxmpMUkQEqaBZERvIrh+xICAmmeEDLtvJwO4vfva0w8VgBo7hGDsqLdhCzUMuItiM6rTq+23QzLYn7w5Yj8SCU02pjk3/1j0Qu/49vLST4E+GPI=
eNrdls9rE0EUx++F/g8y5xx286ttjokplJCwmNBLKTJJprKwuxN3N5UgQg0I1lY8iKaWYPHQg6iteqg1iv4zyWzyX7jJpruZnZmkqdiCx8m8fPd9vm9m3ttYXNiQJUmSI7cegrtqFaS8FShAHYEUyEPVKNrYbBSwqUMtDW1bQyACbiOr4m53z384nd/kzclg55A8PSCvW+6eF1Rq1FwBV2ldrQwFMrjWuIMeYLM6KevFjkNGulsI2lRsBus6NrwNN6KAUDVrIPNeA6Ri3jKNLeviJykCMtAoIaiDlG3WUQTk1dEyj/QyMkcZeR8tVpCBxpjksElaZ93z587R8eDxS/BoMzI2JkoZE2WNyWqqjfi+OF9/9fe+/J++xChfYqwvw4/zbSm7OzdgivzvTYlTpsR9U0qmCrVhnmFD+qevnObP7ve9Xvsz15Io35KQ4DyW+MBbULM4xAFNgqJJ+DS8yqZFNY3xAQKNqbkHYVRJJ2soz6xhQJSkiJI+0SrUVY17YnsnZ6T1QkiX4NOF9aYyhoPZSs3CWqKwlibuolHXsvfrai2MRXb3et+OuUhJ0SWkta505LggsQBkmQJZ9kEUZFrYgJqyzZA4H96SZzu9dod/fQRPCiM4FYeJ9snWLGVdueCadbOG4au4XFaryFCwrWLD+2fAv0LxrwT8uTC2kguTSgLS3Pz14lPNOIWyNJm8uxKMEGtVjWmXZL9J3AqOxogQV3xGTwjk/qJZXpqRGpNkWTANiBG9ieD6EQMCap6Ro/y+LQYY9u5rT3+iANTYIQdjR7EGK6hkwm3EzKhur3bed0jrSf/dPv+REDRZRnNq/kz03O+4TI0PcjA+FG1oFnGdJTs4Gnxq9nZPSfsjn0zQfWnBK5dFuhzb5uLCH7K1ZyA=

View File

@ -1 +1 @@
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

View File

@ -1 +1 @@
eNqtlE1LwzAYx++DfQfJuUrS9GXrVT0ITgQ9KGNINiMU5jrbzYsImwdFFF9AGGyCoDe96K0q+Gna6b6F2YTtYSQUZm954cnv94R/UsxmigRjos0doR13FzmjCVpj+xw5qMBqzeryQdOtE6ShJR5UxOJ3+yV6vxg8nkbhp1hd9/keK6+IUjqsXOWHvDocYywqfK/OgmY54I3RyaaloS3kiJ1t5MyTBf24pP0J6FBAlwjoE4HB05VKQE8SsFUCFApQiQCdCMT3DyoBmiSQUwkYUMCQCBgTgX63IxcwSLJBXmVgQgNzbLDoubWCVwsa3IdX8Br3vgZnt3HY7ree1RJkygCr6BakW2P6Rp1V+KbPxGEgg1HYit9OpsH/CaAN8bYMDxIYfVxK8bPHLwfxORmewu7PpfjZw5eH+LwMD9IX93rpdk8wwIuJBG/Cy79Lt3sCfz9CZHgL/D7dm5/OddkLgnReXimb+QVeLq1a
eNqtlF9LwlAYh++FvkOc6xU7+6futroIMgK7KERi2gkEc7a5biJQoSLK/lBgaCTUXRLURWQGfpptum/RNHAv7gzBdrdzxnue5z38zpuai6Qwy2Jm/gjt5HaRPFqgdWWfIBkllIKRXzkwckWMGLRM9Ky72a+0ze8L5/nU7Py4uxsa2VMyq24pP6xcI4ckP/xmWbdCU4uKbmR0UhqdLEoM2kKy+2cbyQt4kTtOM38CHBTgKAKcJ+C8XAUJcNMEokECPBTgKQK8J2A9toIE+GkCsSABAQoIFAHBE7AbdbqAgKcbxIMMRGggjg2W1FwhoRb0EtHgFbxbzZ5zdmt1Knb5NVgCTxiwQXQJ0qUxPVlUsmRTU9zDQAbNTtn6qE6C/xPAKMRHaXiQQLN7ScXPHr8YxMdoeB52f07Fzx6+OMTHaXiQPqvZDLd7zAK8u6DgRXj59+F2j+H0w5iGl8D0adwM6tcZVddDe3kYTj/sTb9kSdGSqgGDbz+0nLeq2asNyidhZR/D2Yd5H56bxNt3tX73028wewDg8MOCz4D3GTxVrK92KAFIz0V+AcgzJEg=

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
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

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
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

View File

@ -0,0 +1 @@
eNrNlr1qG0EURnuD3yFsrWLu3+7KXX4aF66czphgYhsERgqyDDEh7x5zLcRHvAN3t5iZ5kMrEDqwF865OT+7oZRo9elP92Nz3134Q/f99dfD2+dV923z+Lj5+fJ0ePXHL7vn58vt/cNvf7rabZ8PD/vL+8/7fXdxM/hvh7Rgb1fd9eFuf717efq6e9kerjbb7iL9/+Xd29/K39vVOzMjM4eY+SMzHxlo9k4y0xSznpgFmSXELB+Z5Z2ZnITYV3zTcSfZbIptPLEpsmmGjQM3wP5OZ++SGzBkthDz9A04A83eJTfQI3MfYp6+AfYb8GVf8U3HXXIDA7INGTYJ3ID4O529S25gROYxxDx9A85As3fJDayReR1inr4B8RvwZV/xTcddcAOUgO3tYZpNAzeg/k5n74IbIPQXUYh5+gacgWbvghsg9BdxiHn6BtRvwJd9xTcdd8kNoKfo5CluuQcI/UUaYq7dA4T+Igsxl+oBQk9Rn2FrqwcI/UVDiLl2DxD6i8YQc6keIPQUrTNsbfUAo784hZhr9wCjv5hCzKV6gNFTzBm2tnqA0V8sIebaPcDoL9YQc6keYPQUnzwlLfcAo7+4DzHX7gFGf/EQYi7VA4ye4jHD1lYPMPqL1yHm2j0g6C9JIeZSPSDoKaEMW1s9IOgv4RBz7R4Q9JdIiLlUDwh6SjTD1lYPCPpLLMRcuwcE/SV9iLlUDwh6Sk6e0pZ7QNBfMoaYa/eAoL9kHWIu1QOKntKUYWurBxT9pRRirt0Div5SDjGX6gFFT6lk2NrqAUV/qYaYa/eAor/UQsylekDRU9pn2NrqAUV/6RBirt0Div7SMcRcqgcUPaUnT1nLPWDoL0sh5to9YOgvoxBzqR4w9JRxhq2tHjD0l0mIuXYPGPrLNMRcqgcMPWWWYWurBwz9ZX2IuXYPGPrLhhBzqR4w9JSNGba2esDQX7YOMdfugR791acQc5EeuD0/+wdTZDVe

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f6a8926e5a9c91741a7768a1fee9bc96
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +1 @@
eNp90j8LgzAQBfBd6HcomW/IS0yibn6HbiKFUge3InYopd+98d81wtk9vzzu3TWnrNF0fqtrf1eVJlWP49DfnmN3eT26ehhU1QQqCCAYMo5Apv20FBmYQWQmvi0JelLxi1UZVkZWjoxfHBJmmdnDMFhCvunV5exy0VlNFtt0SZ5j50S3iLkZLsSz8aJZhooV+iQoMApy0DzUFJRMVTAqZDSHIBB2rGRWyoxBuubfeUD/WVkUU2gSh+RCDk4klm7XSnZ7a0/ZFwiEt5g=
eNrlljFrwzAQhfdA/kO5tRp0smXL2kLJlKWQbMaUhrjFUOpUyEMo+e9JQ3x2cDedJq+2ePf49Di9crkopXj6hbfmAFYKWHnvmn3n693pWK+cA1tef3qwsPXvbtt2X+ufrjk+HHtpvz+az+eHbyBgU5/A5gJeXbsHi2cRJGS4hLAYKVXnSlwRICFAfgQ0L9Wh1iWflO6lgpWykdKdpyKeai48czaeZsozIZ7JTHgqShVKwpAShjTipgr2bviAIluq1DRVmnDqmeBM2HCmU5wZ4cz4cSLX86emr19OxvN55EDpf5aLIQom4o5FthU73F9Bzou4zvu2NDRGlBGjrriiHioUpcT2MEfdM0L5vAV8mPo3slouLnK1Gr0=

View File

@ -1 +1 @@
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

View File

@ -1 +1 @@
eNpl0M8KAVEUBvC9mnfQXc/i3vlzZ8Yb2HgBScLCAg8gpYwomYUsTIMNUcpCbBBvw8x9CzJ1z3Etv1O/zjlfUcsUGaVMz3ZIuVEjuW8ghUqzTnLkudmL+SnuR/FgR3SSr7ZbnykzKLcd0i3pKTYwNn7x+Xm5JxMVu4BNjE2JxXIqHqHCPGAWZpZkcXhPwuCXcQrMxsyW7LU4iqinMAaMY8ZhW+C/DluFGcAczBwo5jr7+42bwFzMXKjk5v8zC5iHmSdZslon0VBhtmSMIvYJ8sjxQ4QjhfGUlbTMG4pZqB4=
eNp9001LwzAYB/D7wO8gAU8dkqZJ1+3qSQQvipcxZKiHgW8HPQwRBiobk80XNtysTsShIAi+HdSyfpv05VsYXOmepNLjk/bh90+epDiVKeoY69npA7RaWUeFvwItlrc2UAHx4XPY+/CPbP/kCWXR/NrOtljVCTZZTtRzO7vV5equ+FO0LO1X9ujCRhUVDBJVK+XNffERz9JoQTR7HYfXHY3iGXRYyo51AnUi65/8exS0VN1K0Y0UPey9c/de1g2oG7Ee3l6Gbl9x85JLJJemuH7njl+MZJdCl8au3x8F/bbsmjjFZWnuu8ubtuwy6LLY9W7eQrumuLrkGpJrqi5hYMzXn2LM/ofjdV81wgBvQt6cbLt97L08KjxJ4XMqn9C9bsMb3GgMbj4H9dzkqv10EsM2DUmnkm4lNk8A37yS909AAgsmsCbXzTlOJqApCfKJsbN/EkRnQOEE8jBBPk4QDB4Cu64kYFICBhOQxAQwSMDPv4L7mt+ua4IeL1vjtujorLgter5W3BXWzzQdTE3HILEo4qmdumG/oSQ2UxInzgwn3ii3B3zY0mikl6YyvxYdqfk=

View File

@ -1 +1 @@
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

Some files were not shown because too many files have changed in this diff Show More