星魂副本
parent
2ff045e307
commit
f83b563014
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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>
|
|
@ -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"/>
|
||||
|
|
|
@ -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
sddfdsdff*5
sfhsjs *1
sddfdsdff*5
sfhsjs *1
sddfdsdff*5
sfhsjs *1
sddfdsdff*5
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"/>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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="根据名称搜索"/>
|
||||
|
|
|
@ -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="活动
"/>
|
||||
</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="<<" 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=">>" controller="unitList" page="0"/>
|
||||
</component>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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="		提示
1.选择需要被升级的星魂和作为材料的星魂,可以选择多个材料。
2.升级星魂必定成功,升级后作为材料的星魂会消失。
3.升级后的星魂也能作为升级材料使用。
4.随机属性最多4条。
5.每提升4级都会随机增加或者强化某一个随机属性。
6.星魂一旦获得,不可洗练,不可逆。"/>
|
||||
<Label title="		提示
1.选择需要被升级的星魂和作为材料的星魂,可以选择多个材料。
2.升级星魂必定成功,升级后作为材料的星魂会消失。
3.升级后的星魂也能作为升级材料使用。
4.随机属性最多4条。
5.每提升4级都会随机增加或者强化某一个随机属性。
6.星魂一旦获得,不可洗练,不可逆。
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"/>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,7 +12,6 @@ namespace ET
|
|||
response.Message = "战斗中";
|
||||
reply();
|
||||
return;
|
||||
;
|
||||
}
|
||||
var bag = unit.GetComponent<StarSoulBag>();
|
||||
string retStr = bag.PutonItem(request.itemId);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>("{}");
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
// }
|
||||
}
|
||||
}
|
|
@ -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--)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 $"周三、周五 开启!";
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
namespace ET
|
||||
{
|
||||
public class ActiveComponentAwakeSystem:AwakeSystem<ActiveComponent>
|
||||
{
|
||||
public override void Awake(ActiveComponent self)
|
||||
{
|
||||
ActiveComponent.instance = self;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ActiveComponentSystem
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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>();
|
||||
|
|
|
@ -17,5 +17,6 @@ namespace ET
|
|||
PersonalPvp = 5,
|
||||
ManulEquip = 6,
|
||||
SpaceTravel =7,
|
||||
StarSoulCopy =8,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -54,5 +54,9 @@ namespace Cal.DataTable
|
|||
/// 时空旅行战斗
|
||||
/// </summary>
|
||||
public const int SpaceTravelBattle = 10013;
|
||||
/// <summary>
|
||||
/// 星魂副本战斗
|
||||
/// </summary>
|
||||
public const int StarSoulBattle = 10014;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace ET
|
||||
{
|
||||
public class StarSoulCopyConfigComponent:Entity
|
||||
{
|
||||
public byte type;
|
||||
public byte difficulty;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace ET
|
||||
{
|
||||
public class ActiveComponent:Entity
|
||||
{
|
||||
public static ActiveComponent instance;
|
||||
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Cal.DataTable
|
||||
{
|
||||
public partial class StarSoulEquipAttributeTypeConfig
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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" } }
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ff94e43d6a1fb214fa919e1cfefaf63d
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -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=
|
|
@ -1 +1 @@
|
|||
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
|
|
@ -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
|
@ -1 +1 @@
|
|||
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
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
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
|
|
@ -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
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f6a8926e5a9c91741a7768a1fee9bc96
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1 +1 @@
|
|||
eNp90j8LgzAQBfBd6HcomW/IS0yibn6HbiKFUge3InYopd+98d81wtk9vzzu3TWnrNF0fqtrf1eVJlWP49DfnmN3eT26ehhU1QQqCCAYMo5Apv20FBmYQWQmvi0JelLxi1UZVkZWjoxfHBJmmdnDMFhCvunV5exy0VlNFtt0SZ5j50S3iLkZLsSz8aJZhooV+iQoMApy0DzUFJRMVTAqZDSHIBB2rGRWyoxBuubfeUD/WVkUU2gSh+RCDk4klm7XSnZ7a0/ZFwiEt5g=
|
||||
eNrlljFrwzAQhfdA/kO5tRp0smXL2kLJlKWQbMaUhrjFUOpUyEMo+e9JQ3x2cDedJq+2ePf49Di9crkopXj6hbfmAFYKWHnvmn3n693pWK+cA1tef3qwsPXvbtt2X+ufrjk+HHtpvz+az+eHbyBgU5/A5gJeXbsHi2cRJGS4hLAYKVXnSlwRICFAfgQ0L9Wh1iWflO6lgpWykdKdpyKeai48czaeZsozIZ7JTHgqShVKwpAShjTipgr2bviAIluq1DRVmnDqmeBM2HCmU5wZ4cz4cSLX86emr19OxvN55EDpf5aLIQom4o5FthU73F9Bzou4zvu2NDRGlBGjrriiHioUpcT2MEfdM0L5vAV8mPo3slouLnK1Gr0=
|
|
@ -1 +1 @@
|
|||
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
|
|
@ -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=
|
|
@ -1 +1 @@
|
|||
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
|
Binary file not shown.
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
Loading…
Reference in New Issue