竞技场

back_recharge
wangyuan 2019-05-13 15:28:03 +08:00
parent c5b27e63d4
commit 1ebb90b31b
27 changed files with 1737 additions and 1328 deletions

View File

@ -1,24 +1,24 @@
Id Option
int mut,int#int,1
101001 101001#101002
101002 101003#101004
101003 101005#101006
101004 101007#101008
101005 101009#101010
101006 101011#101012
101007 101013#101014
101008 101015#101016
101009 101017#101018
101010 101019#101020
101011 101021#101022#101023#101024
101012 101025#101026
101013 101027#101028
101014 101029#101030
101015 101031#101032
101016 101033#101034
101017 101035#101036
101018 101037#101038
101019 101039#101040
101001 101001
101002 101002
101003 101003
101004 101004
101005 101005
101006 101006
101007 101007
101008 101008
101009 101009
101010 101010
101011 101011#101012#101013#101014
101012 101015
101013 101016
101014 101017
101015 101018
101016 101019
101017 101020
101018 101021
101019 101022
0 null
102001 102001
102002 102002

View File

@ -21,25 +21,7 @@ int int
101019 1
101020 1
101021 1
101022 1
101023 1
101024 1
101025 1
101026 4
101027 1
101028 4
101029 1
101030 4
101031 1
101032 4
101033 1
101034 4
101035 1
101036 4
101037 1
101038 4
101039 4
101040 4
101022 4
0 0
102001 1
102002 1

View File

@ -33,4 +33,20 @@ int mut,int#int,1 int int
31 6031#1 3 100
32 6032#1 3 100
33 14#88888 4 100
34 14#99999 4 100
34 3001#1 4 100
35 3002#1 4 100
36 3003#1 4 100
37 3004#1 4 100
38 3005#1 4 100
39 3006#1 4 100
40 3007#1 4 100
41 3008#1 4 100
42 3009#1 4 100
43 3010#1 4 100
44 3011#1 4 100
45 3101#1 4 100
46 3102#1 4 100
47 3103#1 4 100
48 3104#1 4 100
49 3105#1 4 100
50 3106#1 4 100

View File

@ -1,4 +1,4 @@
Id MainCost SecondaryCost LevelLimit FreeTime FreeInterval ExtraItem SeasonTimes SeasonOpen SeasonEnd RandomPool VipLimit MaxNum
int mut,int#int,2 int int int int mut,int#int,1 int string string int int int
1 19#1 1 0 1 1440 15#1 1 20190510 100000 20190517 100000 4 0 999
2 19#10 10 0 0 0 15#11 1 20190510 100000 20190517 100000 4 0 999
Id MainCost SecondaryCost LevelLimit FreeTime ExtraItem SeasonTimes SeasonOpen SeasonEnd RandomPool VipLimit MaxNum
int mut,int#int,2 int int int mut,int#int,1 int string string int int int
1 19#1 1 0 1 15#1 1 20190510 100000 20190517 100000 4 0 999
2 19#10 10 0 0 15#11 1 20190510 100000 20190517 100000 4 0 999

View File

@ -54,36 +54,36 @@ int int int int int int
130055 55 2 1 13 100
130056 56 3 1 13 100
140005 5 1267 844 14 100
140011 11 1600 960 14 100
140012 12 1600 960 14 100
140013 13 1600 960 14 100
140014 14 1600 960 14 100
140015 15 1600 960 14 100
140016 16 1600 960 14 100
140101 101 1600 960 14 100
140102 102 1600 960 14 100
140103 103 1600 960 14 100
140104 104 1600 960 14 100
140105 105 1600 960 14 100
140106 106 1600 960 14 100
140053 53 12 7 14 100
140054 54 12 7 14 100
140055 55 12 7 14 100
140056 56 42 25 14 100
150001 1 5400 3600 15 100
150002 2 360 240 15 100
150021 21 1600 960 15 100
150022 22 1600 960 15 100
150023 23 1600 960 15 100
150024 24 1600 960 15 100
150025 25 1600 960 15 100
150026 26 1600 960 15 100
150101 101 1600 960 15 100
150102 102 1600 960 15 100
150103 103 1600 960 15 100
150104 104 1600 960 15 100
150105 105 1600 960 15 100
150106 106 1600 960 15 100
150053 53 7 4 15 100
150054 54 7 4 15 100
150060 60 20 12 15 100
160001 1 5400 3600 16 100
160002 2 360 240 16 100
160004 4 2340 1560 16 100
160021 21 1600 960 16 100
160022 22 1600 960 16 100
160023 23 1600 960 16 100
160024 24 1600 960 16 100
160025 25 1600 960 16 100
160026 26 1600 960 16 100
160101 101 1600 960 16 100
160102 102 1600 960 16 100
160103 103 1600 960 16 100
160104 104 1600 960 16 100
160105 105 1600 960 16 100
160106 106 1600 960 16 100
160053 53 7 4 16 100
160054 54 7 4 16 100
160060 60 20 12 16 100

View File

@ -1,54 +1,54 @@
Id PiecesId PiecesCount Star Profession PropertyName MaxRank Hp Attack PhysicalDefence MagicDefence Speed ActionPower RankupConsumeMaterial OpenSkillRules
int int int int int int int float float float float float int mut,int#int,2 mut,int#int,2
10001 11001 50 5 3 3 10 2508.0 181.0 286.0 238.0 176.0 30 6#1#3#1|6#2#34#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000111|5#1000121|6#1000111|6#1000121|7#1000112|7#1000122|8#1000113|8#1000122|9#1000113|9#1000123|10#1000114|10#1000124
10002 11002 50 5 3 2 10 2281.0 158.0 259.0 216.0 154.0 30 6#1#3#1|6#2#22#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000211|5#1000221|6#1000211|6#1000221|7#1000212|7#1000222|8#1000213|8#1000222|9#1000213|9#1000223|10#1000214|10#1000224
10003 11003 50 5 3 4 10 2280.0 162.0 262.0 218.0 181.0 30 6#1#3#1|6#2#27#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000311|5#1000321|6#1000311|6#1000321|7#1000312|7#1000322|8#1000313|8#1000322|9#1000313|9#1000323|10#1000314|10#1000324
10004 11004 50 5 5 2 10 2373.0 184.0 236.0 283.0 136.0 30 6#1#3#1|6#2#28#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000411|5#1000421|6#1000411|6#1000421|7#1000412|7#1000422|8#1000413|8#1000422|9#1000413|9#1000423|10#1000414|10#1000424
10005 11005 50 5 5 4 10 2155.0 166.0 215.0 258.0 184.0 30 6#1#3#1|6#2#29#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000511|5#1000521|6#1000511|6#1000521|7#1000512|7#1000522|8#1000513|8#1000522|9#1000513|9#1000523|10#1000514|10#1000524
10006 11006 50 5 5 1 10 2161.0 171.0 214.0 257.0 175.0 30 6#1#3#1|6#2#23#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000611|5#1000621|6#1000611|6#1000621|7#1000612|7#1000622|8#1000613|8#1000622|9#1000613|9#1000623|10#1000614|10#1000624
10007 11007 50 5 5 3 10 2165.0 165.0 259.0 216.0 172.0 30 6#1#3#1|6#2#35#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000711|5#1000721|6#1000711|6#1000721|7#1000712|7#1000722|8#1000713|8#1000722|9#1000713|9#1000723|10#1000714|10#1000724
10008 11008 50 5 1 5 10 2206.0 217.0 193.0 232.0 130.0 30 6#1#3#1|6#2#24#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000811|5#1000821|6#1000811|6#1000821|7#1000812|7#1000822|8#1000813|8#1000822|9#1000813|9#1000823|10#1000814|10#1000824
10009 11009 50 5 1 6 10 1921.0 198.0 208.0 173.0 168.0 30 6#1#3#1|6#2#32#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000911|5#1000921|6#1000911|6#1000921|7#1000912|7#1000922|8#1000913|8#1000922|9#1000913|9#1000923|10#1000914|10#1000924
10010 11010 50 5 1 3 10 1922.0 199.0 172.0 206.0 138.0 30 6#1#3#1|6#2#37#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001011|5#1001021|6#1001011|6#1001021|7#1001012|7#1001022|8#1001013|8#1001022|9#1001013|9#1001023|10#1001014|10#1001024
10011 11011 50 5 1 4 10 1922.0 199.0 178.0 213.0 153.0 30 6#1#3#1|6#2#30#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001111|5#1001121|6#1001111|6#1001121|7#1001112|7#1001122|8#1001113|8#1001122|9#1001113|9#1001123|10#1001114|10#1001124
10012 11012 50 5 2 1 10 1849.0 265.0 217.0 181.0 146.0 30 6#1#3#1|6#2#36#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001211|5#1001221|6#1001211|6#1001221|7#1001212|7#1001222|8#1001213|8#1001222|9#1001213|9#1001223|10#1001214|10#1001224
10013 11013 50 5 2 4 10 1678.0 242.0 194.0 162.0 163.0 30 6#1#3#1|6#2#31#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001311|5#1001321|6#1001311|6#1001321|7#1001312|7#1001322|8#1001313|8#1001322|9#1001313|9#1001323|10#1001314|10#1001324
10014 11014 50 5 2 6 10 1676.0 244.0 196.0 163.0 191.0 30 6#1#3#1|6#2#33#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001411|5#1001421|6#1001411|6#1001421|7#1001412|7#1001422|8#1001413|8#1001422|9#1001413|9#1001423|10#1001414|10#1001424
10015 11015 50 5 2 5 10 1675.0 235.0 159.0 191.0 174.0 30 6#1#3#1|6#2#25#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001511|5#1001521|6#1001511|6#1001521|7#1001512|7#1001522|8#1001513|8#1001522|9#1001513|9#1001523|10#1001514|10#1001524
10016 11016 50 5 4 1 10 1587.0 313.0 141.0 169.0 156.0 30 6#1#3#1|6#2#38#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001611|5#1001621|6#1001611|6#1001621|7#1001612|7#1001622|8#1001613|8#1001622|9#1001613|9#1001623|10#1001614|10#1001624
10017 11017 50 5 4 6 10 1443.0 278.0 127.0 152.0 159.0 30 6#1#3#1|6#2#42#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001711|5#1001721|6#1001711|6#1001721|7#1001712|7#1001722|8#1001713|8#1001722|9#1001713|9#1001723|10#1001714|10#1001724
10018 11018 50 5 4 5 10 1443.0 280.0 134.0 161.0 154.0 30 6#1#3#1|6#2#26#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001811|5#1001821|6#1001811|6#1001821|7#1001812|7#1001822|8#1001813|8#1001822|9#1001813|9#1001823|10#1001814|10#1001824
10019 11019 50 5 4 2 10 1436.0 284.0 152.0 127.0 149.0 30 6#1#3#1|6#2#40#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001911|5#1001921|6#1001911|6#1001921|7#1001912|7#1001922|8#1001913|8#1001922|9#1001913|9#1001923|10#1001914|10#1001924
10020 11020 50 5 3 1 10 2279.0 164.0 264.0 220.0 152.0 30 6#1#3#1|6#2#39#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002011|5#1002021|6#1002011|6#1002021|7#1002012|7#1002022|8#1002013|8#1002022|9#1002013|9#1002023|10#1002014|10#1002024
10021 11021 40 5 1 3 10 1920.0 205.0 170.0 204.0 178.0 30 6#1#3#1|6#2#41#4|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002111|5#1002121|6#1002111|6#1002121|7#1002112|7#1002122|8#1002113|8#1002122|9#1002113|9#1002123|10#1002114|10#1002124
10022 11022 40 5 2 2 10 1676.0 244.0 167.0 200.0 173.0 30 6#1#3#1|6#2#43#4|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002211|5#1002221|6#1002211|6#1002221|7#1002212|7#1002222|8#1002213|8#1002222|9#1002213|9#1002223|10#1002214|10#1002224
10023 11023 40 5 4 5 10 1439.0 280.0 131.0 157.0 168.0 30 6#1#3#1|6#2#44#4|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002311|5#1002321|6#1002311|6#1002321|7#1002312|7#1002322|8#1002313|8#1002322|9#1002313|9#1002323|10#1002314|10#1002324
10024 11024 40 4 3 2 10 1933.0 138.0 216.0 180.0 182.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#40#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002411|4#1002421|5#1002411|5#1002421|6#1002411|6#1002421|7#1002412|7#1002422|8#1002413|8#1002422|9#1002413|9#1002423
10025 11025 40 4 1 1 10 1630.0 174.0 146.0 175.0 166.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#38#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002511|4#1002521|5#1002511|5#1002521|6#1002511|6#1002521|7#1002512|7#1002522|8#1002513|8#1002522|9#1002513|9#1002523
10026 11026 40 4 3 2 10 2051.0 138.0 216.0 180.0 181.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#26#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002611|4#1002621|5#1002611|5#1002621|6#1002611|6#1002621|7#1002612|7#1002622|8#1002613|8#1002622|9#1002613|9#1002623
10027 11027 40 4 5 5 10 1944.0 141.0 221.0 184.0 175.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#24#1|6#3#17#3 4#1002711|4#1002721|5#1002711|5#1002721|6#1002711|6#1002721
10028 11028 40 4 4 4 10 1292.0 241.0 110.0 132.0 157.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#25#1|6#3#17#3 4#1002811|4#1002821|5#1002811|5#1002821|6#1002811|6#1002821
10029 11029 40 4 4 4 10 1228.0 240.0 108.0 129.0 153.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#30#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002911|4#1002921|5#1002911|5#1002921|6#1002911|6#1002921|7#1002912|7#1002922|8#1002913|8#1002922|9#1002913|9#1002923
10030 11030 40 4 5 5 10 1833.0 146.0 186.0 223.0 174.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#22#1|6#3#17#3 4#1003011|4#1003021|5#1003011|5#1003021|6#1003011|6#1003021
10031 11031 40 4 3 2 10 1942.0 133.0 218.0 182.0 184.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#27#1|6#3#17#3 4#1003111|4#1003121|5#1003111|5#1003121|6#1003111|6#1003121
10032 11032 40 4 2 3 10 1426.0 205.0 161.0 134.0 202.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#29#1|6#3#17#3 4#1003211|4#1003221|5#1003211|5#1003221|6#1003211|6#1003221
10033 11033 40 4 4 4 10 1219.0 234.0 130.0 108.0 156.0 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1003311|4#1003321|5#1003311|5#1003321|6#1003311|6#1003321
10034 11034 40 4 4 4 10 1293.0 240.0 107.0 128.0 161.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#33#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1003411|4#1003421|5#1003411|5#1003421|6#1003411|6#1003421|7#1003412|7#1003422|8#1003413|8#1003422|9#1003413|14#1003423
10035 11035 40 4 1 1 10 1732.0 166.0 172.0 143.0 160.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#32#1|6#3#17#3 4#1003511|4#1003521|5#1003511|5#1003521|6#1003511|6#1003521
10036 11036 40 4 1 1 10 1724.0 170.0 149.0 179.0 158.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#37#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1003611|4#1003621|5#1003611|5#1003621|6#1003611|6#1003621|7#1003612|7#1003622|8#1003613|8#1003622|9#1003613|16#1003623
10037 11037 40 4 2 3 10 1427.0 206.0 161.0 134.0 197.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#34#1|6#3#17#3 4#1003711|4#1003721|5#1003711|5#1003721|6#1003711|6#1003721
10038 11038 40 4 4 4 10 1224.0 242.0 114.0 137.0 155.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#36#1|6#3#17#3 4#1003811|4#1003821|5#1003811|5#1003821|6#1003811|6#1003821
10039 11039 40 4 2 3 10 1428.0 206.0 165.0 138.0 191.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#35#1|6#3#17#3 4#1003911|4#1003921|5#1003911|5#1003921|6#1003911|6#1003921
10040 11040 40 4 3 2 10 1938.0 141.0 222.0 185.0 182.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#36#1|6#3#17#3 4#1004011|4#1004021|5#1004011|5#1004021|6#1004011|6#1004021
10041 11041 40 4 3 2 10 1937.0 135.0 221.0 184.0 174.0 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004111|4#1004121|5#1004111|5#1004121|6#1004111|6#1004121
10042 11042 40 4 3 2 10 1942.0 135.0 218.0 182.0 181.0 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#28#1|6#3#17#3 4#1004211|4#1004221|5#1004211|5#1004221|6#1004211|6#1004221
10043 11043 40 4 4 4 10 1222.0 234.0 136.0 113.0 155.0 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004311|4#1004321|5#1004311|5#1004321|6#1004311|6#1004321
10044 11044 40 4 2 3 10 1425.0 201.0 138.0 165.0 192.0 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004411|4#1004421|5#1004411|5#1004421|6#1004411|6#1004421
10045 11045 40 4 5 5 10 1831.0 143.0 188.0 225.0 181.0 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004511|4#1004521|5#1004511|5#1004521|6#1004511|6#1004521
10046 11046 30 4 2 3 10 1507.0 203.0 134.0 161.0 171.0 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004611|4#1004621|5#1004611|5#1004621|6#1004611|6#1004621
10047 11047 30 3 1 1 10 1942.0 140.0 226.0 188.0 175.0 30 null 3#1004711|3#1004721
10048 11048 30 3 2 2 10 1637.0 167.0 173.0 144.0 172.0 30 null 3#1004811|3#1004821
10049 11049 30 3 4 3 10 1423.0 199.0 161.0 134.0 196.0 30 null 3#1004911|3#1004921
10050 11050 30 3 1 4 10 1226.0 242.0 111.0 133.0 159.0 30 null 3#1005011|3#1005021
10051 11051 30 3 2 5 10 1943.0 140.0 188.0 225.0 182.0 30 null 3#1005111|3#1005121
10052 11052 30 3 4 6 10 2049.0 136.0 187.0 224.0 177.0 30 null 3#1005211|3#1005221
Id PiecesId PiecesCount Star Profession PropertyName MaxRank Hp Attack PhysicalDefence MagicDefence Speed SecondaryFactor ActionPower RankupConsumeMaterial OpenSkillRules
int int int int int int int float float float float float mut,int#int,2 int mut,int#int,2 mut,int#int,2
10001 11001 50 5 3 3 10 2508.0 181.0 286.0 238.0 176.0 56#150|57#100|58#100 30 6#1#3#1|6#2#34#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000111|5#1000121|6#1000111|6#1000121|7#1000112|7#1000122|8#1000113|8#1000122|9#1000113|9#1000123|10#1000114|10#1000124
10002 11002 50 5 3 2 10 2281.0 158.0 259.0 216.0 154.0 56#150|57#100|58#100 30 6#1#3#1|6#2#22#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000211|5#1000221|6#1000211|6#1000221|7#1000212|7#1000222|8#1000213|8#1000222|9#1000213|9#1000223|10#1000214|10#1000224
10003 11003 50 5 3 4 10 2280.0 162.0 262.0 218.0 181.0 56#150|57#100|58#100 30 6#1#3#1|6#2#27#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000311|5#1000321|6#1000311|6#1000321|7#1000312|7#1000322|8#1000313|8#1000322|9#1000313|9#1000323|10#1000314|10#1000324
10004 11004 50 5 5 2 10 2373.0 184.0 236.0 283.0 136.0 56#150|57#100|58#100 30 6#1#3#1|6#2#28#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000411|5#1000421|6#1000411|6#1000421|7#1000412|7#1000422|8#1000413|8#1000422|9#1000413|9#1000423|10#1000414|10#1000424
10005 11005 50 5 5 4 10 2155.0 166.0 215.0 258.0 184.0 56#150|57#100|58#100 30 6#1#3#1|6#2#29#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000511|5#1000521|6#1000511|6#1000521|7#1000512|7#1000522|8#1000513|8#1000522|9#1000513|9#1000523|10#1000514|10#1000524
10006 11006 50 5 5 1 10 2161.0 171.0 214.0 257.0 175.0 56#150|57#100|58#100 30 6#1#3#1|6#2#23#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000611|5#1000621|6#1000611|6#1000621|7#1000612|7#1000622|8#1000613|8#1000622|9#1000613|9#1000623|10#1000614|10#1000624
10007 11007 50 5 5 3 10 2165.0 165.0 259.0 216.0 172.0 56#150|57#100|58#100 30 6#1#3#1|6#2#35#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000711|5#1000721|6#1000711|6#1000721|7#1000712|7#1000722|8#1000713|8#1000722|9#1000713|9#1000723|10#1000714|10#1000724
10008 11008 50 5 1 5 10 2206.0 217.0 193.0 232.0 130.0 56#150|57#100|58#100 30 6#1#3#1|6#2#24#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000811|5#1000821|6#1000811|6#1000821|7#1000812|7#1000822|8#1000813|8#1000822|9#1000813|9#1000823|10#1000814|10#1000824
10009 11009 50 5 1 6 10 1921.0 198.0 208.0 173.0 168.0 56#150|57#100|58#100 30 6#1#3#1|6#2#32#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1000911|5#1000921|6#1000911|6#1000921|7#1000912|7#1000922|8#1000913|8#1000922|9#1000913|9#1000923|10#1000914|10#1000924
10010 11010 50 5 1 3 10 1922.0 199.0 172.0 206.0 138.0 56#150|57#100|58#100 30 6#1#3#1|6#2#37#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001011|5#1001021|6#1001011|6#1001021|7#1001012|7#1001022|8#1001013|8#1001022|9#1001013|9#1001023|10#1001014|10#1001024
10011 11011 50 5 1 4 10 1922.0 199.0 178.0 213.0 153.0 56#150|57#100|58#100 30 6#1#3#1|6#2#30#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001111|5#1001121|6#1001111|6#1001121|7#1001112|7#1001122|8#1001113|8#1001122|9#1001113|9#1001123|10#1001114|10#1001124
10012 11012 50 5 2 1 10 1849.0 265.0 217.0 181.0 146.0 56#150|57#100|58#100 30 6#1#3#1|6#2#36#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001211|5#1001221|6#1001211|6#1001221|7#1001212|7#1001222|8#1001213|8#1001222|9#1001213|9#1001223|10#1001214|10#1001224
10013 11013 50 5 2 4 10 1678.0 242.0 194.0 162.0 163.0 56#150|57#100|58#100 30 6#1#3#1|6#2#31#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001311|5#1001321|6#1001311|6#1001321|7#1001312|7#1001322|8#1001313|8#1001322|9#1001313|9#1001323|10#1001314|10#1001324
10014 11014 50 5 2 6 10 1676.0 244.0 196.0 163.0 191.0 56#150|57#100|58#100 30 6#1#3#1|6#2#33#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001411|5#1001421|6#1001411|6#1001421|7#1001412|7#1001422|8#1001413|8#1001422|9#1001413|9#1001423|10#1001414|10#1001424
10015 11015 50 5 2 5 10 1675.0 235.0 159.0 191.0 174.0 56#150|57#100|58#100 30 6#1#3#1|6#2#25#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001511|5#1001521|6#1001511|6#1001521|7#1001512|7#1001522|8#1001513|8#1001522|9#1001513|9#1001523|10#1001514|10#1001524
10016 11016 50 5 4 1 10 1587.0 313.0 141.0 169.0 156.0 56#150|57#100|58#100 30 6#1#3#1|6#2#38#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001611|5#1001621|6#1001611|6#1001621|7#1001612|7#1001622|8#1001613|8#1001622|9#1001613|9#1001623|10#1001614|10#1001624
10017 11017 50 5 4 6 10 1443.0 278.0 127.0 152.0 159.0 56#150|57#100|58#100 30 6#1#3#1|6#2#42#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001711|5#1001721|6#1001711|6#1001721|7#1001712|7#1001722|8#1001713|8#1001722|9#1001713|9#1001723|10#1001714|10#1001724
10018 11018 50 5 4 5 10 1443.0 280.0 134.0 161.0 154.0 56#150|57#100|58#100 30 6#1#3#1|6#2#26#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001811|5#1001821|6#1001811|6#1001821|7#1001812|7#1001822|8#1001813|8#1001822|9#1001813|9#1001823|10#1001814|10#1001824
10019 11019 50 5 4 2 10 1436.0 284.0 152.0 127.0 149.0 56#150|57#100|58#100 30 6#1#3#1|6#2#40#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1001911|5#1001921|6#1001911|6#1001921|7#1001912|7#1001922|8#1001913|8#1001922|9#1001913|9#1001923|10#1001914|10#1001924
10020 11020 50 5 3 1 10 2279.0 164.0 264.0 220.0 152.0 56#150|57#100|58#100 30 6#1#3#1|6#2#39#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002011|5#1002021|6#1002011|6#1002021|7#1002012|7#1002022|8#1002013|8#1002022|9#1002013|9#1002023|10#1002014|10#1002024
10021 11021 40 5 1 3 10 1920.0 205.0 170.0 204.0 178.0 56#150|57#100|58#100 30 6#1#3#1|6#2#41#4|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002111|5#1002121|6#1002111|6#1002121|7#1002112|7#1002122|8#1002113|8#1002122|9#1002113|9#1002123|10#1002114|10#1002124
10022 11022 40 5 2 2 10 1676.0 244.0 167.0 200.0 173.0 56#150|57#100|58#100 30 6#1#3#1|6#2#43#4|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002211|5#1002221|6#1002211|6#1002221|7#1002212|7#1002222|8#1002213|8#1002222|9#1002213|9#1002223|10#1002214|10#1002224
10023 11023 40 5 4 5 10 1439.0 280.0 131.0 157.0 168.0 56#150|57#100|58#100 30 6#1#3#1|6#2#44#4|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2|10#1#3#2|10#2#18#1|10#3#21#1 5#1002311|5#1002321|6#1002311|6#1002321|7#1002312|7#1002322|8#1002313|8#1002322|9#1002313|9#1002323|10#1002314|10#1002324
10024 11024 40 4 3 2 10 1933.0 138.0 216.0 180.0 182.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#40#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002411|4#1002421|5#1002411|5#1002421|6#1002411|6#1002421|7#1002412|7#1002422|8#1002413|8#1002422|9#1002413|9#1002423
10025 11025 40 4 1 1 10 1630.0 174.0 146.0 175.0 166.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#38#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002511|4#1002521|5#1002511|5#1002521|6#1002511|6#1002521|7#1002512|7#1002522|8#1002513|8#1002522|9#1002513|9#1002523
10026 11026 40 4 3 2 10 2051.0 138.0 216.0 180.0 181.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#26#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002611|4#1002621|5#1002611|5#1002621|6#1002611|6#1002621|7#1002612|7#1002622|8#1002613|8#1002622|9#1002613|9#1002623
10027 11027 40 4 5 5 10 1944.0 141.0 221.0 184.0 175.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#24#1|6#3#17#3 4#1002711|4#1002721|5#1002711|5#1002721|6#1002711|6#1002721
10028 11028 40 4 4 4 10 1292.0 241.0 110.0 132.0 157.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#25#1|6#3#17#3 4#1002811|4#1002821|5#1002811|5#1002821|6#1002811|6#1002821
10029 11029 40 4 4 4 10 1228.0 240.0 108.0 129.0 153.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#30#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1002911|4#1002921|5#1002911|5#1002921|6#1002911|6#1002921|7#1002912|7#1002922|8#1002913|8#1002922|9#1002913|9#1002923
10030 11030 40 4 5 5 10 1833.0 146.0 186.0 223.0 174.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#22#1|6#3#17#3 4#1003011|4#1003021|5#1003011|5#1003021|6#1003011|6#1003021
10031 11031 40 4 3 2 10 1942.0 133.0 218.0 182.0 184.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#27#1|6#3#17#3 4#1003111|4#1003121|5#1003111|5#1003121|6#1003111|6#1003121
10032 11032 40 4 2 3 10 1426.0 205.0 161.0 134.0 202.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#29#1|6#3#17#3 4#1003211|4#1003221|5#1003211|5#1003221|6#1003211|6#1003221
10033 11033 40 4 4 4 10 1219.0 234.0 130.0 108.0 156.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1003311|4#1003321|5#1003311|5#1003321|6#1003311|6#1003321
10034 11034 40 4 4 4 10 1293.0 240.0 107.0 128.0 161.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#33#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1003411|4#1003421|5#1003411|5#1003421|6#1003411|6#1003421|7#1003412|7#1003422|8#1003413|8#1003422|9#1003413|14#1003423
10035 11035 40 4 1 1 10 1732.0 166.0 172.0 143.0 160.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#32#1|6#3#17#3 4#1003511|4#1003521|5#1003511|5#1003521|6#1003511|6#1003521
10036 11036 40 4 1 1 10 1724.0 170.0 149.0 179.0 158.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#37#1|6#3#17#3|7#1#17#4|8#1#17#3|8#2#18#1|9#1#3#1|9#2#18#1|9#3#17#2 4#1003611|4#1003621|5#1003611|5#1003621|6#1003611|6#1003621|7#1003612|7#1003622|8#1003613|8#1003622|9#1003613|16#1003623
10037 11037 40 4 2 3 10 1427.0 206.0 161.0 134.0 197.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#34#1|6#3#17#3 4#1003711|4#1003721|5#1003711|5#1003721|6#1003711|6#1003721
10038 11038 40 4 4 4 10 1224.0 242.0 114.0 137.0 155.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#36#1|6#3#17#3 4#1003811|4#1003821|5#1003811|5#1003821|6#1003811|6#1003821
10039 11039 40 4 2 3 10 1428.0 206.0 165.0 138.0 191.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#35#1|6#3#17#3 4#1003911|4#1003921|5#1003911|5#1003921|6#1003911|6#1003921
10040 11040 40 4 3 2 10 1938.0 141.0 222.0 185.0 182.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#36#1|6#3#17#3 4#1004011|4#1004021|5#1004011|5#1004021|6#1004011|6#1004021
10041 11041 40 4 3 2 10 1937.0 135.0 221.0 184.0 174.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004111|4#1004121|5#1004111|5#1004121|6#1004111|6#1004121
10042 11042 40 4 3 2 10 1942.0 135.0 218.0 182.0 181.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4|6#1#3#1|6#2#28#1|6#3#17#3 4#1004211|4#1004221|5#1004211|5#1004221|6#1004211|6#1004221
10043 11043 40 4 4 4 10 1222.0 234.0 136.0 113.0 155.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004311|4#1004321|5#1004311|5#1004321|6#1004311|6#1004321
10044 11044 40 4 2 3 10 1425.0 201.0 138.0 165.0 192.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004411|4#1004421|5#1004411|5#1004421|6#1004411|6#1004421
10045 11045 40 4 5 5 10 1831.0 143.0 188.0 225.0 181.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004511|4#1004521|5#1004511|5#1004521|6#1004511|6#1004521
10046 11046 30 4 2 3 10 1507.0 203.0 134.0 161.0 171.0 56#150|57#100|58#100 30 5#1#2#3|5#2#15#4|5#3#16#4 4#1004611|4#1004621|5#1004611|5#1004621|6#1004611|6#1004621
10047 11047 30 3 1 1 10 1942.0 140.0 226.0 188.0 175.0 56#150|57#100|58#100 30 null 3#1004711|3#1004721
10048 11048 30 3 2 2 10 1637.0 167.0 173.0 144.0 172.0 56#150|57#100|58#100 30 null 3#1004811|3#1004821
10049 11049 30 3 4 3 10 1423.0 199.0 161.0 134.0 196.0 56#150|57#100|58#100 30 null 3#1004911|3#1004921
10050 11050 30 3 1 4 10 1226.0 242.0 111.0 133.0 159.0 56#150|57#100|58#100 30 null 3#1005011|3#1005021
10051 11051 30 3 2 5 10 1943.0 140.0 188.0 225.0 182.0 56#150|57#100|58#100 30 null 3#1005111|3#1005121
10052 11052 30 3 4 6 10 2049.0 136.0 187.0 224.0 177.0 56#150|57#100|58#100 30 null 3#1005211|3#1005221

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,8 @@ Id Type Value
int int mut,float#float,1
210001 34 100
210002 39 1#20
210003 41 0
310001 43 3#50#400#3
210003 41 1
310001 43 3#50#8#3
310002 42 0.1#2
310003 34 200
310004 39 1#35
@ -14,17 +14,17 @@ int int mut,float#float,1
412002 1 0.4#3#0.2#2
412003 28 0.6#0.3
413001 4 3#200#8#1
413002 13 0.1#3#0.2
413003 8 0.1#6#0.06
413002 13 1#3#0.2
413003 8 1#6#0.06
414001 31 0.2#3
414002 24 0.5#0.3#2
414003 20 1#1
414002 24 1#0.3#2
414003 20 10#1
415001 8 0.4#2#0.4
415002 4 5#200#5#1
415003 5 0.3#2#0.1#5
420001 8 0.4#2#0.3
420002 10 0.4#2#0.2#3#1
420003 11 0.2#2#0.2
420002 10 1#2#0.2#3#1
420003 11 1#2#0.2
420004 23 2#0.4
420005 40 5#500
420006 39 1#200
@ -66,7 +66,7 @@ int int mut,float#float,1
513010 47 61#20#1
513011 47 52#20#1
514001 31 0.2#3
514002 25 0.5#0.3#2
514002 25 0.5#0.5#2
514003 20 4#1
514004 47 54#10#1
514005 47 57#20#1
@ -88,8 +88,8 @@ int int mut,float#float,1
515010 47 55#10#1
515011 47 5#1056#1
520001 8 0.6#2#0.3
520002 10 0.6#2#0.3#3#1
520003 11 0.3#2#0.3
520002 10 1#2#0.3#3#1
520003 11 1#2#0.3
520004 23 2#0.6
520005 40 5#1500
520006 39 1#500

View File

@ -1,36 +1,36 @@
PropertyId Style Score TargetPropertyId
int int float int
1 1 0.21000000000000002 0
2 1 3.0 0
3 1 1.5 0
4 1 1.5 0
5 1 1.5 0
6 1 0.0 0
51 2 0.0 0
52 2 0.0 0
53 2 1.5 0
54 2 1.5 0
55 2 6.0 0
56 2 0.0 0
57 2 0 0
58 2 0 0
59 2 0 0
60 2 6.0 0
61 2 0 1
62 2 0 2
63 2 0 3
64 2 0 4
65 2 0 5
66 2 0 0
101 1 2.0 0
102 1 2.0 0
103 1 2.0 0
104 1 2.0 0
105 1 2.0 0
106 1 2.0 0
107 1 2.0 0
108 1 2.0 0
109 1 2.0 0
110 1 2.0 0
111 1 2.0 0
112 1 2.0 0
PropertyId Style Score TargetPropertyId IfFormula
int int float int int
1 1 0.21000000000000002 0 0
2 1 3.0 0 0
3 1 1.5 0 0
4 1 1.5 0 0
5 1 1.5 0 0
6 1 0.0 0 0
51 2 0.0 0 0
52 2 0.0 0 0
53 2 1.5 0 0
54 2 1.5 0 0
55 2 6.0 0 0
56 2 0.0 0 0
57 2 0 0 0
58 2 0 0 0
59 2 0 0 0
60 2 6.0 0 0
61 2 0 1 0
62 2 0 2 0
63 2 0 3 0
64 2 0 4 0
65 2 0 5 0
66 2 0 0 0
101 1 2.0 0 1
102 1 2.0 0 1
103 1 2.0 0 1
104 1 2.0 0 1
105 1 2.0 0 1
106 1 2.0 0 1
107 1 2.0 0 1
108 1 2.0 0 1
109 1 2.0 0 1
110 1 2.0 0 1
111 1 2.0 0 1
112 1 2.0 0 1

View File

@ -183,10 +183,10 @@ int mut,float#float,2 mut,int#int,2 mut,float#float,2 float
1001813 40001#0.7 1 2#2 0.0
1001814 40001#0.7 1 2.4#2 0.0
1001815 40001#0.7 1 1.5#1 0.0
1001821 20121#0.7 1#16#4 3#2|0.18#1#4|0.45#2#4 2.5
1001822 20121#0.7 1#16#4 3#2|0.18#1#4|0.45#2#4 2.5
1001823 20121#0.7 1#16#4 3#2|0.18#1#4|0.45#2#4 2.5
1001824 40001#0.7 1 1.5#1 2.5
1001821 20121#0.7 1#16#13 3#2|0.18#1#4|3#0.45#2#4 2.5
1001822 20121#0.7 1#16#13 3#2|0.18#1#4|3#0.45#2#4 2.5
1001823 20121#0.7 1#16#13 3#2|0.18#1#4|3#0.45#2#4 2.5
1001824 20121#0.7 1#16#13 3#2|0.18#1#4|3#0.45#2#4 2.5
1001825 40001#0.7 1 1.5#1 2.5
1001911 40001#0.7|30011#0.7 1|4 0.7#1|1#0.1#4#1 0.0
1001912 40001#0.7|30011#0.7 1|4#4 0.8#1|1#0.1#4#1|10#0.1#4#1 0.0

View File

@ -28,7 +28,7 @@ public class SArenaSetting implements BaseConfig {
private int pveNum;
private int[][] costItem;
private int[] cost;
private int mostTime;
@ -84,8 +84,8 @@ public class SArenaSetting implements BaseConfig {
return pveNum;
}
public int[][] getCostItem() {
return costItem;
public int[] getCost() {
return cost;
}
public int getMostTime() {

View File

@ -2,7 +2,11 @@ package com.ljsd.jieling.config;
import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.Table;
import com.ljsd.jieling.util.TimeUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Table(name ="DifferDemonsBoxSetting")
@ -25,8 +29,12 @@ public class SDifferDemonsBoxSetting implements BaseConfig {
private String seasonOpen;
private long seasonStartLong;
private String seasonEnd;
private long seasonEndLong;
private int randomPool;
private int vipLimit;
@ -35,9 +43,21 @@ public class SDifferDemonsBoxSetting implements BaseConfig {
private static Map<Integer, SDifferDemonsBoxSetting> config;
private static Map<Integer, List<Integer>> idBySeasonIdMap;
@Override
public void init() throws Exception {
config = STableManager.getConfig(SDifferDemonsBoxSetting.class);
Map<Integer, SDifferDemonsBoxSetting> configTmp = STableManager.getConfig(SDifferDemonsBoxSetting.class);
Map<Integer, List<Integer>> idBySeasonIdMapTmp = new HashMap<>();
for(SDifferDemonsBoxSetting sDifferDemonsBoxSetting :configTmp.values()){
sDifferDemonsBoxSetting.setSeasonStartLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), "YYYYMMdd hhmmss"));
sDifferDemonsBoxSetting.setSeasonEndLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), "YYYYMMdd hhmmss"));
if(!idBySeasonIdMapTmp.containsKey(sDifferDemonsBoxSetting.getSeasonTimes())){
idBySeasonIdMapTmp.put(sDifferDemonsBoxSetting.getSeasonTimes(),new ArrayList<>());
}
idBySeasonIdMapTmp.get(sDifferDemonsBoxSetting.getSeasonTimes()).add(sDifferDemonsBoxSetting.getId());
}
config = configTmp;
}
@ -45,6 +65,10 @@ public class SDifferDemonsBoxSetting implements BaseConfig {
return config;
}
public static List<Integer> getIdsBySeasonId(int season) {
return idBySeasonIdMap.get(season);
}
public int getId() {
return id;
}
@ -74,11 +98,11 @@ public class SDifferDemonsBoxSetting implements BaseConfig {
return seasonTimes;
}
public String getSeasonOpen() {
private String getSeasonOpen() {
return seasonOpen;
}
public String getSeasonEnd() {
private String getSeasonEnd() {
return seasonEnd;
}
@ -94,5 +118,19 @@ public class SDifferDemonsBoxSetting implements BaseConfig {
return maxNum;
}
public long getSeasonStartLong() {
return seasonStartLong;
}
public void setSeasonStartLong(long seasonStartLong) {
this.seasonStartLong = seasonStartLong;
}
public long getSeasonEndLong() {
return seasonEndLong;
}
public void setSeasonEndLong(long seasonEndLong) {
this.seasonEndLong = seasonEndLong;
}
}

View File

@ -1,5 +1,8 @@
package com.ljsd.jieling.core;
import java.util.HashMap;
import java.util.Map;
/**
* 1 Lottery
* 2 Team
@ -31,6 +34,14 @@ public enum FunctionIdEnum {
Talking(14);
private int functionId;
private static Map<Integer,FunctionIdEnum> functionIdEnumMap = new HashMap<>();
static {
FunctionIdEnum[] values = FunctionIdEnum.values();
for(FunctionIdEnum functionIdEnum : values){
functionIdEnumMap.put(functionIdEnum.getFunctionId(),functionIdEnum);
}
}
private FunctionIdEnum(int functionId) {
this.functionId = functionId;
}
@ -38,4 +49,8 @@ public enum FunctionIdEnum {
public int getFunctionId() {
return functionId;
}
public static FunctionIdEnum getFunctionIdEnumById(int id) {
return functionIdEnumMap.get(id);
}
}

View File

@ -64,5 +64,8 @@ public interface GlobalsDef {
int ARENA_ROBOT_TYPE=0;
int ARENA_PLAYER_TYPE=1;
//队伍
int TEAM_ARENA_DEFENSE =101;
}

View File

@ -4,7 +4,7 @@ import com.ljsd.GameApplication;
public class RedisKey {
private final static String Delimiter_colon = ":";
public final static String Delimiter_colon = ":";
private final static String areaId = "0";
@ -80,6 +80,14 @@ public class RedisKey {
public static final String LEVE_DIFFICULTY_FIGHT = "LEVE_DIFFICULTY_FIGHT";
public static final String ARENA_RRECORD = "ARENA_RRECORD";
public static final String ARENA_RANK = "ARENA_RANK";
public static String getKey(String type, String key, boolean withoutServerId) {
if (withoutServerId) {
return GameApplication.areaId + Delimiter_colon + type + Delimiter_colon + String.valueOf(key);

View File

@ -1,14 +1,20 @@
package com.ljsd.jieling.db.redis;
import com.google.gson.Gson;
import com.ljsd.GameApplication;
import com.ljsd.jieling.logic.dao.ArenaRecord;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -30,6 +36,7 @@ public class RedisUtil {
return InnerClass.instance;
}
private static class InnerClass {
private static final RedisUtil instance = new RedisUtil();
}
@ -708,10 +715,11 @@ public class RedisUtil {
}
//操作sortset
public Set<String> getZsetRange(String key, double min, double max){
public Set<String> getZsetRange(String type,String key, double min, double max){
String rkey= getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
return redisTemplate.opsForZSet().rangeByScore(key,min,max);
return redisTemplate.opsForZSet().rangeByScore(rkey,min,max);
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
@ -741,10 +749,11 @@ public class RedisUtil {
return null;
}
public Set<ZSetOperations.TypedTuple<String>> getZsetreverseRangeWithScores(String key, long start, long end){
public Set<ZSetOperations.TypedTuple<String>> getZsetreverseRangeWithScores(String type,String key, long start, long end){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
return redisTemplate.opsForZSet().reverseRangeWithScores(key, start, end);
return redisTemplate.opsForZSet().reverseRangeWithScores(rkey, start, end);
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
@ -752,14 +761,15 @@ public class RedisUtil {
return null;
}
public Long getZSetreverseRank(String key, String value){
public Long getZSetreverseRank(String type,String key, String value){
String rkey = getKey(type,key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
Long rank = redisTemplate.opsForZSet().reverseRank(key, value);
Long rank = redisTemplate.opsForZSet().reverseRank(rkey, value);
if (rank == null) {
return -1L;
} else {
return rank;
return rank + 1;
}
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
@ -769,10 +779,11 @@ public class RedisUtil {
}
public Double getZSetScore(String key, String value){
public Double getZSetScore(String type,String key, String value){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
Double score = redisTemplate.opsForZSet().score(key, value);
Double score = redisTemplate.opsForZSet().score(rkey, value);
if (score == null) {
return -1D;
} else {
@ -785,10 +796,11 @@ public class RedisUtil {
return -1D;
}
public void incrementZsetScore(String key, String value, int changeScore){
public void incrementZsetScore(String type,String key, String value, int changeScore){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
redisTemplate.opsForZSet().incrementScore(key,value,changeScore);
redisTemplate.opsForZSet().incrementScore(rkey,value,changeScore);
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
@ -851,6 +863,63 @@ public class RedisUtil {
}
public <T> void putMapEntry(String type,String key,String mapKey, T value){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
redisTemplate.opsForHash().put(rkey,mapKey,gson.toJson(value));
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
}
}
public <T> T getMapEntry(String type,String key,String mapKey,Class<T> valueClazz){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
Object o = redisTemplate.opsForHash().get(rkey, mapKey);
if(o!=null){
return gson.fromJson(o.toString(),valueClazz);
}
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
}
return null;
}
public <K,T> Map<K,T> getMapValues(String type,String key,Class<K> keyClazz,Class<T> valueClazz){
Map<K,T> result = new HashMap<>();
String rkey = getKey(type, key);
Map<Object, Object> entries = redisTemplate.opsForHash().entries(rkey);
for(Map.Entry<Object,Object> item : entries.entrySet()){
Object key1 = item.getKey();
Object value = item.getValue();
result.put(gson.fromJson(gson.toJson(key1),keyClazz),gson.fromJson(value.toString(),valueClazz));
}
return result;
}
public void zsetRemoveKeys(String type,String key,String... mapKeys){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
redisTemplate.opsForHash().delete(rkey,mapKeys);
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
}
}
public String getKey(String type,String key){
return GameApplication.serverId + RedisKey.Delimiter_colon + type + RedisKey.Delimiter_colon + key;
}

View File

@ -20,6 +20,6 @@ public class ArenaChallengeHandler extends BaseHandler {
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
ArenaInfoProto.ArenaChallengeRequest arenaChallengeRequest = ArenaInfoProto.ArenaChallengeRequest.parseFrom(bytes);
ArenaLogic.getInstance().challenge(iSession,arenaChallengeRequest.getChallengeUid(),arenaChallengeRequest.getTeamId());
ArenaLogic.getInstance().challenge(iSession,arenaChallengeRequest.getChallengeUid(),arenaChallengeRequest.getTeamId(),arenaChallengeRequest.getSkipFight());
}
}

View File

@ -0,0 +1,22 @@
package com.ljsd.jieling.handler.arena;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Component
public class GetArenaRecordHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.ARENA_DEFENSE_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
ArenaLogic.getInstance().getArenaRecord(iSession);
}
}

View File

@ -0,0 +1,27 @@
package com.ljsd.jieling.handler.arena;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.FightInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Component
public class ViewFightReplayHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.VIEW_FIGHTREPLAY_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
FightInfoProto.FightRePlayRequest fightRePlayRequest = FightInfoProto.FightRePlayRequest.parseFrom(bytes);
String fightId = fightRePlayRequest.getFightId();
int type = fightRePlayRequest.getType();
ArenaLogic.getInstance().getFightReplayData(iSession,type,fightId);
}
}

View File

@ -2,7 +2,10 @@ package com.ljsd.jieling.logic;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.SGlobalSystemConfig;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
import com.ljsd.jieling.util.TimeUtils;
@ -106,11 +109,24 @@ public class GlobalDataManaager {
}
public void openAction(List<Integer> ids){
for(Integer openId : ids){
switch (openId){
default:
break;
}
}
}
public void closeAction(List<Integer> ids){
public void closeAction(List<Integer> ids) throws Exception {
for(Integer closeId : ids){
switch (closeId){
case 8:
ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_SEASON_REWARD);
default:
break;
}
}
}

View File

@ -24,6 +24,8 @@ public class ActivityLogic {
private Set<Integer> openActivityIds =new HashSet<>();
private int secretBoxSeasonTimes =0; //秘盒赛季
public void flushEveryDay(User user) {
updateActivityMissionProgress(user, ActivityType.SevenLogin,1);
@ -277,12 +279,7 @@ public class ActivityLogic {
User user = UserManager.getUser(uid);
SecretBoxManager secretBoxManager = user.getSecretBoxManager();
if(secretBoxManager.getCurSeason() == 0){
secretBoxManager.setCount(0);
secretBoxManager.setCurSeason(1);
Map<Integer,Integer> freeUseMap = new HashMap<>(2);
freeUseMap.put(1,1);
freeUseMap.put(2,0);
secretBoxManager.setFreeUseInfos(freeUseMap);
flushSecretBox(secretBoxManager);
}
List<PlayerInfoProto.SecretBoxFreeUseInfo> secretBoxFreeUseInfoList = new ArrayList<>(2);
Map<Integer, Integer> freeUseInfos = secretBoxManager.getFreeUseInfos();
@ -297,12 +294,25 @@ public class ActivityLogic {
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_SECRETBOX_RESPONSE_VALUE,build,true);
}
public void flushSecretBox( SecretBoxManager secretBoxManager){
secretBoxManager.setCount(0);
secretBoxManager.setCurSeason(secretBoxSeasonTimes);
List<Integer> idsBySeasonId = SDifferDemonsBoxSetting.getIdsBySeasonId(secretBoxSeasonTimes);
Map<Integer,Integer> freeUseMap = new HashMap<>(idsBySeasonId.size());
for(int id:idsBySeasonId){
SDifferDemonsBoxSetting sDifferDemonsBoxSetting = SDifferDemonsBoxSetting.getConfig().get(id);
freeUseMap.put(id,sDifferDemonsBoxSetting.getFreeTime());
}
secretBoxManager.setFreeUseInfos(freeUseMap);
}
public void randomSecretBox(ISession session,int id) throws Exception {
int uid = session.getUid();
User user = UserManager.getUser(uid);
SecretBoxManager secretBoxManager = user.getSecretBoxManager();
SDifferDemonsBoxSetting sDifferDemonsBoxSetting = SDifferDemonsBoxSetting.getConfig().get(id);
if(sDifferDemonsBoxSetting == null){
if(sDifferDemonsBoxSetting == null || sDifferDemonsBoxSetting.getSeasonTimes() != secretBoxSeasonTimes){
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.SECRETBOX_RANDOM_RESPONSE_VALUE,"activity_close");
return;
}
int freeTime = sDifferDemonsBoxSetting.getFreeTime();
@ -360,7 +370,7 @@ public class ActivityLogic {
if(count%surelyTimes != 0){
continue;
}
if(count/surelyTimes == 0){
if(count/surelyTimes > 0){
poolId = sDifferDemonsBoxSeaons.getSurelyPools();
}
}
@ -369,4 +379,19 @@ public class ActivityLogic {
}
return poolId;
}
public void checkSecretBoxSeason(){
long now = TimeUtils.now();
for(SDifferDemonsBoxSetting sDifferDemonsBoxSetting : SDifferDemonsBoxSetting.getConfig().values()){
long seasonStartLong = sDifferDemonsBoxSetting.getSeasonStartLong();
long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong();
if(now>=seasonStartLong && now<=seasonEndLong){
secretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes();
break;
}
}
secretBoxSeasonTimes=0;
}
}

View File

@ -1,18 +1,22 @@
package com.ljsd.jieling.logic.arena;
import com.googlecode.protobuf.format.JsonFormat;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.CheckFight;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.ArenaInfoProto;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.FightInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.util.*;
import org.luaj.vm2.LuaValue;
@ -27,6 +31,8 @@ public class ArenaLogic {
private ArenaLogic(){}
public static class Instance {
public final static ArenaLogic instance = new ArenaLogic();
}
@ -46,11 +52,11 @@ public class ArenaLogic {
if(arenaManager.getFlushNums() == 0){
List<ArenaEnemy> arenaEnemies = new ArrayList<>();
Set<Integer> robotIds = randomRobot(level, 5);
toArenaEnemy(uid,robotIds,arenaEnemies,GlobalsDef.ARENA_ROBOT_TYPE);
toArenaEnemy(uid,robotIds,arenaEnemies, GlobalsDef.ARENA_ROBOT_TYPE);
arenaManager.setArenaEnemies(arenaEnemies);
}
int score = RedisUtil.getInstence().getZSetScore("Arena_Rank_1", Integer.toString(uid)).intValue();
int score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,"1", Integer.toString(uid)).intValue();
if(score == -1){
score = 1000;
}
@ -67,7 +73,7 @@ public class ArenaLogic {
}
public List<CommonProto.ArenaEnemy> getArenaEnemyList(List<ArenaEnemy> arenaEnemies){
public List<CommonProto.ArenaEnemy> getArenaEnemyList(List<ArenaEnemy> arenaEnemies) throws Exception {
List<CommonProto.ArenaEnemy> arenaEnemyList = new ArrayList<>(arenaEnemies.size());
int defaultScore = SArenaSetting.getSArenaSetting().getScore();
for(ArenaEnemy arenaEnemy : arenaEnemies){
@ -87,13 +93,36 @@ public class ArenaLogic {
.setPersonInfo(personInfoBuild)
.setTeam(teamBuild)
.build());
}else{
User user = UserManager.getUser(enemyId);
int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE);
List<TeamPosHeroInfo> teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.TEAM_ARENA_DEFENSE);
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
List<Integer> heroTids = new ArrayList<>(teamPosHeroInfoList.size());
for(TeamPosHeroInfo teamPosHeroInfo:teamPosHeroInfoList){
heroTids.add(heroMap.get(teamPosHeroInfo.getHeroId()).getTemplateId());
}
CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(heroTids).build();
PlayerManager playerInfoManager = user.getPlayerInfoManager();
CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder()
.setUid(enemyId)
.setLevel(playerInfoManager.getLevel())
.setName(playerInfoManager.getNickName())
.setScore(RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,"1", Integer.toString(enemyId)).intValue())
.setHead(0)
.setTotalForce(totalForce)
.build();
arenaEnemyList.add(CommonProto.ArenaEnemy.newBuilder()
.setPersonInfo(personInfoBuild)
.setTeam(teamBuild)
.build());
}
}
return arenaEnemyList;
}
public void challenge(ISession session,int challengeUid,int teamId) throws Exception {
public void challenge(ISession session,int challengeUid,int teamId,int skipFight) throws Exception {
int uid = session.getUid();
User user = UserManager.getUser(uid);
String err = checkChallenge(user);
@ -116,31 +145,37 @@ public class ArenaLogic {
int defScoreChange=0;
if(arenaManager.getCount() != 0){
myscore = RedisUtil.getInstence().getZSetScore("Arena_Rank_1", Integer.toString(challengeUid)).intValue();
myscore = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,"1", Integer.toString(challengeUid)).intValue();
}
setMyArenaEnemys(uid,user);
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(uid),myscoreChange);
RedisUtil.getInstence().incrementZsetScore(RedisKey.ARENA_RANK,"1",Integer.toString(uid),myscoreChange);
ArenaInfoProto.ArenaChallengeResponse.Builder builder = ArenaInfoProto.ArenaChallengeResponse.newBuilder();
if( enemyType == GlobalsDef.ARENA_PLAYER_TYPE){
ArenaRecord arenaRecord = new ArenaRecord();
User defUser = UserManager.getUser(challengeUid);
fightResult = getFightResultByPersonToPerson(user, teamId, defUser, 200);
defScore = RedisUtil.getInstence().getZSetScore("Arena_Rank_1", Integer.toString(challengeUid)).intValue();
defScoreChange = calScore(defScore, myscore,fightResult);
fightResult = getFightResultByPersonToPerson(user, teamId, defUser, GlobalsDef.TEAM_ARENA_DEFENSE,arenaRecord,skipFight,builder);
defScore = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,"1", Integer.toString(challengeUid)).intValue();
defScoreChange = calScore(defScore, myscore,fightResult==1?0:1);
myscoreChange = calScore(myscore, defScore,fightResult);
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(challengeUid),defScoreChange);
arenaRecord.setAttackId(uid);
arenaRecord.setCreateTime((int)(System.currentTimeMillis()/1000));
arenaRecord.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD,Integer.toString(uid)));
RedisUtil.getInstence().putMapEntry(RedisKey.ARENA_RRECORD,Integer.toString(challengeUid),arenaRecord.getId(),arenaRecord);
RedisUtil.getInstence().incrementZsetScore(RedisKey.ARENA_RANK,"1",Integer.toString(challengeUid),defScoreChange);
}else{
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(challengeUid);
fightResult = getFightResultByPersonToRobot(user, teamId,sArenaRobotConfig);
fightResult = getFightResultByPersonToRobot(user, teamId,sArenaRobotConfig,skipFight,builder);
myscoreChange = calScore(myscore, defScore,fightResult);
defScoreChange = calScore(defScore, myscore,fightResult);
defScoreChange = calScore(defScore, myscore,fightResult==1?0:1);
}
if(arenaManager.getCount() == 0){
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(uid),myscoreChange);
RedisUtil.getInstence().incrementZsetScore(RedisKey.ARENA_RANK,"1",Integer.toString(uid),myscoreChange + SArenaSetting.getSArenaSetting().getScore() );
}
arenaManager.updateChallenge(fightResult);
//组战斗数据
ArenaInfoProto.ArenaChallengeResponse build = ArenaInfoProto.ArenaChallengeResponse.newBuilder().setMyScoreChange(myscoreChange).setDefScoreChange(defScoreChange).addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies())).build();
ArenaInfoProto.ArenaChallengeResponse build = builder.setMyScoreChange(myscoreChange).setDefScoreChange(defScoreChange).addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies())).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,build,true);
}
@ -151,7 +186,11 @@ public class ArenaLogic {
Set<Integer> robotIds = randomRobot(user.getPlayerInfoManager().getLevel(), 5);
toArenaEnemy(uid,robotIds,arenaEnemies,GlobalsDef.ARENA_ROBOT_TYPE);
}else{
Set<Integer> robotIds = randomPerson(user.getPlayerInfoManager().getLevel());
int score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,"1", Integer.toString(uid)).intValue();
if(score == -1){
score = SArenaSetting.getSArenaSetting().getScore();
}
Set<Integer> robotIds = randomPerson(uid,score);
toArenaEnemy(uid,robotIds,arenaEnemies,GlobalsDef.ARENA_PLAYER_TYPE);
}
arenaManager.setArenaEnemies(arenaEnemies);
@ -160,18 +199,22 @@ public class ArenaLogic {
public static int getFightResultByPersonToPerson(User mine,int myteamId,User defUser,int defTeamId){
public static int getFightResultByPersonToPerson(User mine, int myteamId, User defUser, int defTeamId, ArenaRecord arenaRecord, int skipFight, ArenaInfoProto.ArenaChallengeResponse.Builder builder){
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId);
CommonProto.FightTeamInfo deffightTeamInfo = BehaviorUtil.getFightTeamInfo(defUser,defTeamId);
//设置战斗随机种子
int seed = (int)(System.currentTimeMillis()/1000);
byte[] snapRecord = CommonProto.FightData.newBuilder()
CommonProto.FightData build = CommonProto.FightData.newBuilder()
.setFightMaxTime(SArenaSetting.getSArenaSetting().getMostTime())
.setFightSeed(seed)
.setHeroFightInfos(fightTeamInfo)
.addMonsterList(deffightTeamInfo)
.build().toByteArray();
//defUser.getArenaManager().addArenRecoed();
.build();
if(skipFight == 0){
builder.setFightData(build);
}
byte[] snapRecord =builder.build().toByteArray();
arenaRecord.setFightData(snapRecord);
LuaValue getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo);
LuaValue getOptionData = FightDataUtil.getOptionData("");
int[] checkResult = CheckFight.getInstance().checkFight(seed,SArenaSetting.getSArenaSetting().getMostTime(), getFightData, getOptionData);
@ -180,11 +223,19 @@ public class ArenaLogic {
public int getFightResultByPersonToRobot(User mine,int myteamId,SArenaRobotConfig sArenaRobotConfig){
public int getFightResultByPersonToRobot(User mine, int myteamId, SArenaRobotConfig sArenaRobotConfig, int skipFight, ArenaInfoProto.ArenaChallengeResponse.Builder builder){
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId);
CommonProto.FightTeamInfo deffightTeamInfo = BehaviorUtil.getRobotFightTeamInfo(sArenaRobotConfig);
//设置战斗随机种子
int seed = (int)(System.currentTimeMillis()/1000);
if(skipFight == 0){
builder.setFightData(CommonProto.FightData.newBuilder()
.setFightMaxTime(SArenaSetting.getSArenaSetting().getMostTime())
.setFightSeed(seed)
.setHeroFightInfos(fightTeamInfo)
.addMonsterList(deffightTeamInfo)
.build());
}
LuaValue getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo);
LuaValue getOptionData = FightDataUtil.getOptionData("");
int[] checkResult = CheckFight.getInstance().checkFight(seed,SArenaSetting.getSArenaSetting().getMostTime(), getFightData, getOptionData);
@ -198,7 +249,7 @@ public class ArenaLogic {
int battleFree = sArenaSetting.getBattleFree();
if(useFreeTimes>=battleFree){
//校验消耗
boolean enough = ItemUtil.itemCost(user, sArenaSetting.getCostItem());
boolean enough = ItemUtil.itemCost(user, new int[][]{sArenaSetting.getCost()});
if(!enough){
return "道具不足";
}
@ -223,18 +274,21 @@ public class ArenaLogic {
int uid = session.getUid();
SArenaSetting sArenaSetting = SArenaSetting.getSArenaSetting();
if(sArenaSetting == null){
MessageUtil.sendErrorResponse(session,1, MessageTypeProto.MessageType.ARENA_RANDOM_ENEMY_RESPONSE_VALUE,"");
return;
}
User user = UserManager.getUser(uid);
ArenaManager arenaManager = user.getArenaManager();
int flushEnenyTime = arenaManager.getFlushTime();
int coldTime = sArenaSetting.getColdTime();
int now = (int)TimeUtils.now();
int now = (int)(TimeUtils.now()/1000);
if( now - flushEnenyTime < coldTime ){
MessageUtil.sendErrorResponse(session,1, MessageTypeProto.MessageType.ARENA_RANDOM_ENEMY_RESPONSE_VALUE,"cold time");
return;
}
//刷新选手
setMyArenaEnemys(uid,user);
arenaManager.setFlushTime(now);
ArenaInfoProto.ArenaRandomResponse build = ArenaInfoProto.ArenaRandomResponse.newBuilder().addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies())).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_RANDOM_ENEMY_RESPONSE_VALUE,build,true);
}
@ -257,14 +311,15 @@ public class ArenaLogic {
return robotIds;
}
public Set<Integer> randomPerson(int myScore){
public Set<Integer> randomPerson(int uid,int myScore){
Set<Integer> result = new HashSet<>(5);
int[][] interval = SArenaSetting.getSArenaSetting().getInterval();
for(int[] item: interval){
int high = item[0];
int low = item[1];
Set<String> arenaRank = RedisUtil.getInstence().getZsetRange("Arena_Rank_1", myScore * low / 100.0f, myScore * high / 100.0f);
int low = item[0];
int high = item[1];
Set<String> arenaRank = RedisUtil.getInstence().getZsetRange(RedisKey.ARENA_RANK,"1", myScore * low / 100.0f-1, myScore * high / 100.0f +1);
if(arenaRank!=null && !arenaRank.isEmpty()){
arenaRank.remove(Integer.toString(uid));
String s = randomSet(arenaRank);
if(!StringUtil.isEmpty(s)){
result.add(Integer.parseInt(s));
@ -296,26 +351,20 @@ public class ArenaLogic {
public void getWorldRankByPage(ISession session,int page) throws Exception {
int num =20;
if(page>1){
num = 10;
}
if (page == 0) {
page = 1;
}
page = 1;
int start = (page - 1) * 20, end = page * 20 - 1;
List<CommonProto.ArenaEnemy> arenaRankMemberInfo = new ArrayList<>(20);
CommonProto.ArenaEnemy build =null;
Set<ZSetOperations.TypedTuple<String>> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores("Arena_Rank_1", start, end);
Set<ZSetOperations.TypedTuple<String>> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK,"1", start, end);
for(ZSetOperations.TypedTuple<String> item : arenaRankInfo){
String value = item.getValue();
int score =item.getScore().intValue();
int uid = Integer.parseInt(value);
User user = UserManager.getUser(uid);
int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, 101);
List<TeamPosHeroInfo> teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(101);
int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE);
List<TeamPosHeroInfo> teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.TEAM_ARENA_DEFENSE);
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
List<Integer> heroTids = new ArrayList<>(teamPosHeroInfoList.size());
for(TeamPosHeroInfo teamPosHeroInfo:teamPosHeroInfoList){
@ -332,21 +381,18 @@ public class ArenaLogic {
.setRank(++start)
.setTotalForce(totalForce)
.build();
build = CommonProto.ArenaEnemy.newBuilder()
arenaRankMemberInfo.add(CommonProto.ArenaEnemy.newBuilder()
.setPersonInfo(personInfoBuild)
.setTeam(teamBuild)
.build();
}
for(int i=0;i<num;i++){
arenaRankMemberInfo.add(build);
.build());
}
int uid = session.getUid();
int score = RedisUtil.getInstence().getZSetScore("Arena_Rank_1", Integer.toString(uid)).intValue();
int score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,"1", Integer.toString(uid)).intValue();
int myRank =-1;
if(score == -1){
score = SArenaSetting.getSArenaSetting().getScore();
}else{
myRank= RedisUtil.getInstence().getZSetreverseRank("Arena_Rank_1", Integer.toString(uid)).intValue()+1;
myRank= RedisUtil.getInstence().getZSetreverseRank(RedisKey.ARENA_RANK,"1",Integer.toString(uid)).intValue();
}
ArenaInfoProto.GetArenaRankInfoResponse buildResponse = ArenaInfoProto.GetArenaRankInfoResponse.newBuilder()
@ -359,23 +405,63 @@ public class ArenaLogic {
}
public String getRewardByRank(int rank,int type){
Map<Integer, SArenaReward> config = SArenaReward.getConfig();
for(SArenaReward sArenaReward : config.values()){
int minRank = sArenaReward.getMinRank();
int maxRank = sArenaReward.getMaxRank();
if(rank>=minRank && rank<=maxRank){
if(type == GlobalsDef.ARENA_DAILY_REWARD){
public void getArenaRecord(ISession iSession) throws Exception {
int uid = iSession.getUid();
Map<String, ArenaRecord> result = RedisUtil.getInstence().getMapValues(RedisKey.ARENA_RRECORD, Integer.toString(uid), String.class, ArenaRecord.class);
if(result!=null && !result.isEmpty()){
List<CommonProto.ArenaRecordInfo> arenaRecordInfos = new ArrayList<>();
List<ArenaRecord> arenaRecordList = new ArrayList<>(result.values());
Collections.sort(arenaRecordList, new Comparator<ArenaRecord>() {
@Override
public int compare(ArenaRecord o1, ArenaRecord o2) {
Integer createTime = o1.getCreateTime();
return createTime.compareTo(o2.getCreateTime());
}
});
int size = arenaRecordList.size();
if(size>10){
String[] removeMapKeys = new String[size - 10];
for(int i=0;i<size-10;i++){
ArenaRecord remove = arenaRecordList.remove(0);
String removeId = remove.getId();
removeMapKeys[i]=(removeId);
}
RedisUtil.getInstence().zsetRemoveKeys(RedisKey.ARENA_RRECORD,Integer.toString(uid),removeMapKeys);
}
for(ArenaRecord arenaRecord : arenaRecordList){
int attackId = arenaRecord.getAttackId();
int attackForce = arenaRecord.getAttackForce();
User attackUser = UserManager.getUser(attackId);
PlayerManager playerInfoManager = attackUser.getPlayerInfoManager();
CommonProto.ArenaPersonInfo arenaPersonInfo = CommonProto.ArenaPersonInfo.newBuilder()
.setUid(attackId)
.setName(playerInfoManager.getNickName())
.setLevel(playerInfoManager.getLevel())
.setHead(0)
.setTotalForce(attackForce)
.build();
arenaRecordInfos.add(CommonProto.ArenaRecordInfo.newBuilder()
.setId(arenaRecord.getId())
.setAttackInfo(arenaPersonInfo)
.setMyScoreChange(arenaRecord.getDefScore())
.setAttackTime(arenaRecord.getCreateTime())
.build());
}
ArenaInfoProto.ArenaRecordInfoResponse build = ArenaInfoProto.ArenaRecordInfoResponse.newBuilder().addAllArenaRecordInfo(arenaRecordInfos).build();
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.ARENA_DEFENSE_RESPONSE_VALUE,build,true);
return;
}
return "";
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.ARENA_DEFENSE_RESPONSE_VALUE,null,true);
}
/**
*
Sa: = 1 =0
@ -396,8 +482,69 @@ public class ArenaLogic {
return (int)(k*(result-ea));
}
public void sendDayilyReward(){
public void getFightReplayData(ISession iSession,int type,String fightId) throws Exception {
int uid = iSession.getUid();
ArenaRecord arenaRecord = RedisUtil.getInstence().getMapEntry(RedisKey.ARENA_RRECORD, Integer.toString(uid), fightId, ArenaRecord.class);
if(arenaRecord == null){
MessageUtil.sendErrorResponse(iSession,0, MessageTypeProto.MessageType.VIEW_FIGHTREPLAY_RESPONSE_VALUE,"");
return;
}
byte[] fightData = arenaRecord.getFightData();
CommonProto.FightData fightDataProto = CommonProto.FightData.parseFrom(fightData);
FightInfoProto.FightRePlayResponse build = FightInfoProto.FightRePlayResponse.newBuilder().setFightData(fightDataProto).build();
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.VIEW_FIGHTREPLAY_RESPONSE_VALUE,build,true);
}
/**
*
* @param type
* @throws Exception
*/
public void sendReward(int type) throws Exception {
String title;
String content;
if(type == GlobalsDef.ARENA_DAILY_REWARD){
title = SErrorCodeEerverConfig.getI18NMessage("arena_daily_reward_title");
content = SErrorCodeEerverConfig.getI18NMessage("arena_daily_reward_txt");
}else{
title = SErrorCodeEerverConfig.getI18NMessage("arena_season_reward_title");
content = SErrorCodeEerverConfig.getI18NMessage("arena_season_reward_txt");
}
Set<ZSetOperations.TypedTuple<String>> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK,"1", 0, -1);
int rank = 1;
int nowTime =(int) (TimeUtils.now()/1000);
for(ZSetOperations.TypedTuple<String> item : arenaRankInfo){
String value = item.getValue();
int uid = Integer.parseInt(value);
User user = UserManager.getUser(uid);
String rewardByRank = getRewardByRank(rank++, type);
if("".equals(rewardByRank)){
break;
}
MailLogic.getInstance().sendMail(Integer.parseInt(user.getId()),title,content,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME);
}
}
public String getRewardByRank(int rank,int type){
Map<Integer, SArenaReward> config = SArenaReward.getConfig();
for(SArenaReward sArenaReward : config.values()){
int minRank = sArenaReward.getMinRank();
int maxRank = sArenaReward.getMaxRank();
if(rank>=minRank && rank<=maxRank){
if(type == GlobalsDef.ARENA_DAILY_REWARD){
int[][] dailyReward = sArenaReward.getDailyReward();
return StringUtil.parseArrayToString(dailyReward);
}else{
int[][] seasonReward = sArenaReward.getSeasonReward();
return StringUtil.parseArrayToString(seasonReward);
}
}
}
return "";
}
}

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -26,7 +27,6 @@ public class ArenaManager extends MongoBase {
private List<ArenaEnemy> arenaEnemies;
private List<ArenaRecord> arenaRecordList;
public void updateChallenge(int fightResult){
@ -41,17 +41,6 @@ public class ArenaManager extends MongoBase {
updateString("count",count);
}
public void addArenRecoed(ArenaRecord arenaRecord){
}
public void removeRecoed(){
}
public int getScore() {
return score;
}
@ -92,6 +81,10 @@ public class ArenaManager extends MongoBase {
this.useFreeTimes = useFreeTimes;
}
public void setFlushTime(int flushTime) {
this.flushTime = flushTime;
}
public int getFlushNums() {
return flushNums;
}

View File

@ -1,9 +1,10 @@
package com.ljsd.jieling.logic.dao;
public class ArenaRecord {
private int id;
public class ArenaRecord {
private String id;
private int attackId; //进攻者
@ -13,15 +14,55 @@ public class ArenaRecord {
private byte[] fightData;
private int createTime;
public ArenaRecord(){}
public ArenaRecord(int attackId, int defScore,byte[] fightData) {
public int getAttackId() {
return attackId;
}
public void setAttackId(int attackId) {
this.attackId = attackId;
}
public int getDefScore() {
return defScore;
}
public void setDefScore(int defScore) {
this.defScore = defScore;
}
public int getAttackForce() {
return attackForce;
}
public void setAttackForce(int attackForce) {
this.attackForce = attackForce;
}
public byte[] getFightData() {
return fightData;
}
public void setFightData(byte[] fightData) {
this.fightData = fightData;
this.createTime = (int)(System.currentTimeMillis()/1000);
}
public int getCreateTime() {
return createTime;
}
public void setCreateTime(int createTime) {
this.createTime = createTime;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}

View File

@ -1,9 +1,7 @@
package com.ljsd.jieling.logic.mail;
import com.ljsd.jieling.config.SItem;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.MailingSystem;
import com.ljsd.jieling.logic.dao.root.User;
@ -13,7 +11,6 @@ import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.*;
import org.luaj.vm2.ast.Str;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -154,4 +154,12 @@ public class StringUtil {
}
return false;
}
public static String parseArrayToString(int[][] source) {
StringBuilder sb = new StringBuilder();
for(int[] item : source){
sb.append(item[0]).append("#").append(item[1]).append("|");
}
return sb.toString();
}
}

View File

@ -3,7 +3,9 @@ package com.ljsd.jieling.util;
public enum UUIDEnum {
HERO(0),
EQUIP(1),
MAIL(2);
MAIL(2),
ARENARECORD(3),
;
private int value;
UUIDEnum( int value ){