竞技场
parent
c5b27e63d4
commit
1ebb90b31b
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,5 +64,8 @@ public interface GlobalsDef {
|
|||
int ARENA_ROBOT_TYPE=0;
|
||||
int ARENA_PLAYER_TYPE=1;
|
||||
|
||||
//队伍
|
||||
int TEAM_ARENA_DEFENSE =101;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 ){
|
||||
|
|
|
|||
Loading…
Reference in New Issue