道具使用道具出售
parent
102d9a1eae
commit
ad3309189c
|
|
@ -1,158 +1,159 @@
|
||||||
Id BackpackOrNot ItemType ItemBaseType Quantity IsStacking
|
Id BackpackOrNot ItemType ItemBaseType Quantity Isopen Price UseType RewardGroup UsePerCount
|
||||||
int bool int int int bool
|
int bool int int int bool mut,int#int,1 int int int
|
||||||
1 false 0 0 1 true
|
1 false 0 0 1 false null 0 0 0
|
||||||
2 false 0 0 2 true
|
2 false 0 0 2 false null 0 0 0
|
||||||
3 false 0 0 3 true
|
3 false 0 0 3 false null 0 0 0
|
||||||
4 true 0 4 4 true
|
4 true 0 4 4 false null 0 0 0
|
||||||
5 true 0 4 5 true
|
5 true 0 4 5 false null 0 0 0
|
||||||
6 true 0 4 1 true
|
6 true 0 4 1 false null 0 0 0
|
||||||
7 true 0 3 2 true
|
7 true 0 3 2 false null 0 0 0
|
||||||
8 true 0 3 3 true
|
8 true 0 3 3 false null 0 0 0
|
||||||
9 true 0 3 4 true
|
9 true 0 3 4 false null 0 0 0
|
||||||
10 true 0 3 5 true
|
10 true 0 3 5 false null 0 0 0
|
||||||
11 true 0 3 1 true
|
11 true 0 3 1 false null 0 0 0
|
||||||
12 true 0 3 2 true
|
12 true 0 3 2 false null 0 0 0
|
||||||
13 true 0 3 3 true
|
13 true 0 3 3 false null 0 0 0
|
||||||
14 false 0 0 4 true
|
14 false 0 0 4 false null 0 0 0
|
||||||
15 false 0 0 5 true
|
15 false 0 0 5 false null 0 0 0
|
||||||
16 false 0 0 1 true
|
16 false 0 0 1 false null 0 0 0
|
||||||
17 false 0 0 2 true
|
17 false 0 0 2 false null 0 0 0
|
||||||
18 false 0 0 3 true
|
18 false 0 0 3 false null 0 0 0
|
||||||
19 true 0 4 4 true
|
19 true 0 4 4 false null 0 0 0
|
||||||
20 true 0 4 5 true
|
20 true 0 4 5 false null 0 0 0
|
||||||
1001 true 0 2 1 true
|
1001 true 0 2 1 false null 0 0 0
|
||||||
1002 true 0 2 2 true
|
1002 true 0 2 2 false null 0 0 0
|
||||||
1003 true 0 2 3 true
|
1003 true 0 2 3 false null 0 0 0
|
||||||
1004 true 0 2 4 true
|
1004 true 0 2 4 false null 0 0 0
|
||||||
1005 true 0 2 5 true
|
1005 true 0 2 5 false null 0 0 0
|
||||||
1006 true 0 2 1 true
|
1006 true 0 2 1 false null 0 0 0
|
||||||
1007 true 0 2 2 true
|
1007 true 0 2 2 false null 0 0 0
|
||||||
1008 true 0 2 3 true
|
1008 true 0 2 3 false null 0 0 0
|
||||||
1009 true 0 2 4 true
|
1009 true 0 2 4 false null 0 0 0
|
||||||
1010 true 0 4 5 true
|
1010 true 0 4 5 false null 0 0 0
|
||||||
1011 true 0 4 1 true
|
1011 true 0 4 1 false null 0 0 0
|
||||||
1012 true 0 4 2 true
|
1012 true 0 4 2 false null 0 0 0
|
||||||
1013 true 0 4 3 true
|
1013 true 0 4 3 false null 0 0 0
|
||||||
1014 true 0 4 4 true
|
1014 true 0 4 4 false null 0 0 0
|
||||||
1015 true 0 4 5 true
|
1015 true 0 4 5 false null 0 0 0
|
||||||
1016 true 0 4 1 true
|
1016 true 0 4 1 false null 0 0 0
|
||||||
1017 true 0 4 2 true
|
1017 true 0 4 2 false null 0 0 0
|
||||||
1018 true 0 4 3 true
|
1018 true 0 4 3 false null 0 0 0
|
||||||
1019 true 0 4 4 true
|
1019 true 0 4 4 false null 0 0 0
|
||||||
1020 true 0 4 5 true
|
1020 true 0 4 5 false null 0 0 0
|
||||||
1021 true 0 4 1 true
|
1021 true 0 4 1 false null 0 0 0
|
||||||
1501 true 0 2 2 true
|
1501 true 0 2 2 false null 0 0 0
|
||||||
1502 true 0 2 3 true
|
1502 true 0 2 3 false null 0 0 0
|
||||||
1503 true 0 2 4 true
|
1503 true 0 2 4 false null 0 0 0
|
||||||
1504 true 0 4 5 true
|
1504 true 0 4 5 false null 0 0 0
|
||||||
1505 true 0 4 1 true
|
1505 true 0 4 1 false null 0 0 0
|
||||||
1506 true 0 4 2 true
|
1506 true 0 4 2 false null 0 0 0
|
||||||
1507 true 0 4 3 true
|
1507 true 0 4 3 false null 0 0 0
|
||||||
2001 true 0 2 4 true
|
2001 true 0 2 4 false null 0 0 0
|
||||||
2002 true 0 2 5 true
|
2002 true 0 2 5 false null 0 0 0
|
||||||
2003 true 0 2 1 true
|
2003 true 0 2 1 false null 0 0 0
|
||||||
2004 true 0 2 2 true
|
2004 true 0 2 2 false null 0 0 0
|
||||||
10001 false 1 0 5 false
|
10001 false 1 0 5 false null 0 0 0
|
||||||
10002 false 1 0 5 false
|
10002 false 1 0 5 false null 0 0 0
|
||||||
10003 false 1 0 5 false
|
10003 false 1 0 5 false null 0 0 0
|
||||||
10004 false 1 0 5 false
|
10004 false 1 0 5 false null 0 0 0
|
||||||
10005 false 1 0 5 false
|
10005 false 1 0 5 false null 0 0 0
|
||||||
10006 false 1 0 5 false
|
10006 false 1 0 5 false null 0 0 0
|
||||||
10007 false 1 0 5 false
|
10007 false 1 0 5 false null 0 0 0
|
||||||
10008 false 1 0 5 false
|
10008 false 1 0 5 false null 0 0 0
|
||||||
10009 false 1 0 5 false
|
10009 false 1 0 5 false null 0 0 0
|
||||||
10010 false 1 0 5 false
|
10010 false 1 0 5 false null 0 0 0
|
||||||
10011 false 1 0 5 false
|
10011 false 1 0 5 false null 0 0 0
|
||||||
10012 false 1 0 5 false
|
10012 false 1 0 5 false null 0 0 0
|
||||||
10013 false 1 0 5 false
|
10013 false 1 0 5 false null 0 0 0
|
||||||
10014 false 1 0 5 false
|
10014 false 1 0 5 false null 0 0 0
|
||||||
10015 false 1 0 5 false
|
10015 false 1 0 5 false null 0 0 0
|
||||||
10016 false 1 0 5 false
|
10016 false 1 0 5 false null 0 0 0
|
||||||
10017 false 1 0 5 false
|
10017 false 1 0 5 false null 0 0 0
|
||||||
10018 false 1 0 5 false
|
10018 false 1 0 5 false null 0 0 0
|
||||||
10019 false 1 0 5 false
|
10019 false 1 0 5 false null 0 0 0
|
||||||
10020 false 1 0 5 false
|
10020 false 1 0 5 false null 0 0 0
|
||||||
10021 false 1 0 5 false
|
10021 false 1 0 5 false null 0 0 0
|
||||||
10022 false 1 0 5 false
|
10022 false 1 0 5 false null 0 0 0
|
||||||
10023 false 1 0 5 false
|
10023 false 1 0 5 false null 0 0 0
|
||||||
10024 false 1 0 5 false
|
10024 false 1 0 5 false null 0 0 0
|
||||||
10025 false 1 0 5 false
|
10025 false 1 0 5 false null 0 0 0
|
||||||
10026 false 1 0 5 false
|
10026 false 1 0 5 false null 0 0 0
|
||||||
10027 false 1 0 5 false
|
10027 false 1 0 5 false null 0 0 0
|
||||||
10028 false 1 0 5 false
|
10028 false 1 0 5 false null 0 0 0
|
||||||
10029 false 1 0 5 false
|
10029 false 1 0 5 false null 0 0 0
|
||||||
10030 false 1 0 5 false
|
10030 false 1 0 5 false null 0 0 0
|
||||||
10031 false 1 0 5 false
|
10031 false 1 0 5 false null 0 0 0
|
||||||
10032 false 1 0 5 false
|
10032 false 1 0 5 false null 0 0 0
|
||||||
10033 false 1 0 5 false
|
10033 false 1 0 5 false null 0 0 0
|
||||||
10034 false 1 0 5 false
|
10034 false 1 0 5 false null 0 0 0
|
||||||
10035 false 1 0 5 false
|
10035 false 1 0 5 false null 0 0 0
|
||||||
10036 false 1 0 5 false
|
10036 false 1 0 5 false null 0 0 0
|
||||||
10037 false 1 0 5 false
|
10037 false 1 0 5 false null 0 0 0
|
||||||
10038 false 1 0 5 false
|
10038 false 1 0 5 false null 0 0 0
|
||||||
10039 false 1 0 5 false
|
10039 false 1 0 5 false null 0 0 0
|
||||||
10040 false 1 0 5 false
|
10040 false 1 0 5 false null 0 0 0
|
||||||
10041 false 1 0 5 false
|
10041 false 1 0 5 false null 0 0 0
|
||||||
10042 false 1 0 5 false
|
10042 false 1 0 5 false null 0 0 0
|
||||||
10043 false 1 0 5 false
|
10043 false 1 0 5 false null 0 0 0
|
||||||
10044 false 1 0 5 false
|
10044 false 1 0 5 false null 0 0 0
|
||||||
10045 false 1 0 5 false
|
10045 false 1 0 5 false null 0 0 0
|
||||||
10046 false 1 0 5 false
|
10046 false 1 0 5 false null 0 0 0
|
||||||
10047 false 1 0 5 false
|
10047 false 1 0 5 false null 0 0 0
|
||||||
10048 false 1 0 5 false
|
10048 false 1 0 5 false null 0 0 0
|
||||||
10049 false 1 0 5 false
|
10049 false 1 0 5 false null 0 0 0
|
||||||
10050 false 1 0 5 false
|
10050 false 1 0 5 false null 0 0 0
|
||||||
10051 false 1 0 5 false
|
10051 false 1 0 5 false null 0 0 0
|
||||||
10052 false 1 0 5 false
|
10052 false 1 0 5 false null 0 0 0
|
||||||
11001 true 2 5 5 true
|
11001 true 2 5 5 false 14#1000 1 101 50
|
||||||
11002 true 2 5 5 true
|
11002 true 2 5 5 false 14#1001 1 102 50
|
||||||
11003 true 2 5 5 true
|
11003 true 2 5 5 false 14#1002 1 103 50
|
||||||
11004 true 2 5 5 true
|
11004 true 2 5 5 false 14#1003 1 104 50
|
||||||
11005 true 2 5 5 true
|
11005 true 2 5 5 false 14#1004 1 105 50
|
||||||
11006 true 2 5 5 true
|
11006 true 2 5 5 false 14#1005 1 106 50
|
||||||
11007 true 2 5 5 true
|
11007 true 2 5 5 false 14#1006 1 107 50
|
||||||
11008 true 2 5 5 true
|
11008 true 2 5 5 false 14#1007 1 108 50
|
||||||
11009 true 2 5 5 true
|
11009 true 2 5 5 false 14#1008 1 109 50
|
||||||
11010 true 2 5 5 true
|
11010 true 2 5 5 false 14#1009 1 110 50
|
||||||
11011 true 2 5 5 true
|
11011 true 2 5 5 false 14#1010 1 111 50
|
||||||
11012 true 2 5 5 true
|
11012 true 2 5 5 false 14#1011 1 112 50
|
||||||
11013 true 2 5 5 true
|
11013 true 2 5 5 false 14#1012 1 113 50
|
||||||
11014 true 2 5 5 true
|
11014 true 2 5 5 false 14#1013 1 114 50
|
||||||
11015 true 2 5 5 true
|
11015 true 2 5 5 false 14#1014 1 115 50
|
||||||
11016 true 2 5 5 true
|
11016 true 2 5 5 false 14#1015 1 116 50
|
||||||
11017 true 2 5 5 true
|
11017 true 2 5 5 false 14#1016 1 117 50
|
||||||
11018 true 2 5 5 true
|
11018 true 2 5 5 false 14#1017 1 118 50
|
||||||
11019 true 2 5 5 true
|
11019 true 2 5 5 false 14#1018 1 119 50
|
||||||
11020 true 2 5 5 true
|
11020 true 2 5 5 false 14#1019 1 120 50
|
||||||
11021 true 2 5 5 true
|
11021 true 2 5 5 false 14#1020 1 121 50
|
||||||
11022 true 2 5 5 true
|
11022 true 2 5 5 false 14#1021 1 122 50
|
||||||
11023 true 2 5 5 true
|
11023 true 2 5 5 false 14#1022 1 123 50
|
||||||
11024 true 2 5 5 true
|
11024 true 2 5 5 false 14#1023 1 124 40
|
||||||
11025 true 2 5 5 true
|
11025 true 2 5 5 false 14#1024 1 125 40
|
||||||
11026 true 2 5 5 true
|
11026 true 2 5 5 false 14#1025 1 126 40
|
||||||
11027 true 2 5 5 true
|
11027 true 2 5 5 false 14#1026 1 127 40
|
||||||
11028 true 2 5 5 true
|
11028 true 2 5 5 false 14#1027 1 128 40
|
||||||
11029 true 2 5 5 true
|
11029 true 2 5 5 false 14#1028 1 129 40
|
||||||
11030 true 2 5 5 true
|
11030 true 2 5 5 false 14#1029 1 130 40
|
||||||
11031 true 2 5 5 true
|
11031 true 2 5 5 false 14#1030 1 131 40
|
||||||
11032 true 2 5 5 true
|
11032 true 2 5 5 false 14#1031 1 132 40
|
||||||
11033 true 2 5 5 true
|
11033 true 2 5 5 false 14#1032 1 133 40
|
||||||
11034 true 2 5 5 true
|
11034 true 2 5 5 false 14#1033 1 134 40
|
||||||
11035 true 2 5 5 true
|
11035 true 2 5 5 false 14#1034 1 135 40
|
||||||
11036 true 2 5 5 true
|
11036 true 2 5 5 false 14#1035 1 136 40
|
||||||
11037 true 2 5 5 true
|
11037 true 2 5 5 false 14#1036 1 137 40
|
||||||
11038 true 2 5 5 true
|
11038 true 2 5 5 false 14#1037 1 138 40
|
||||||
11039 true 2 5 5 true
|
11039 true 2 5 5 false 14#1038 1 139 40
|
||||||
11040 true 2 5 5 true
|
11040 true 2 5 5 false 14#1039 1 140 40
|
||||||
11041 true 2 5 5 true
|
11041 true 2 5 5 false 14#1040 1 141 40
|
||||||
11042 true 2 5 5 true
|
11042 true 2 5 5 false 14#1041 1 142 40
|
||||||
11043 true 2 5 5 true
|
11043 true 2 5 5 false 14#1042 1 143 40
|
||||||
11044 true 2 5 5 true
|
11044 true 2 5 5 false 14#1043 1 144 40
|
||||||
11045 true 2 5 5 true
|
11045 true 2 5 5 false 14#1044 1 145 40
|
||||||
11046 true 2 5 5 true
|
11046 true 2 5 5 false 14#1045 1 146 40
|
||||||
11047 true 2 5 5 true
|
11047 true 2 5 5 false 14#1046 1 147 30
|
||||||
11048 true 2 5 5 true
|
11048 true 2 5 5 false 14#1047 1 148 30
|
||||||
11049 true 2 5 5 true
|
11049 true 2 5 5 false 14#1048 1 149 30
|
||||||
11050 true 2 5 5 true
|
11050 true 2 5 5 false 14#1049 1 150 30
|
||||||
11051 true 2 5 5 true
|
11051 true 2 5 5 false 14#1050 1 151 30
|
||||||
11052 true 2 5 5 true
|
11052 true 2 5 5 false 14#1051 1 152 30
|
||||||
|
400001 true 0 3 5 false 14#1000 1 2 1
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,56 @@
|
||||||
Id IsUpset RewardItem RewardMaxNum Loop
|
Id IsUpset RewardItem RewardMaxNum Loop
|
||||||
int int mut,int#int,1 int int
|
int int mut,int#int,1 int int
|
||||||
1 2 1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29#30#31#32#33#34#35#36#37#38#39#40#41#42#43#44#45#46#47#48#49#50#51#52#53#54#55#56 1 0
|
1 2 1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29#30#31#32#33#34#35#36#37#38#39#40#41#42#43#44#45#46#47#48#49#50#51#52 1 0
|
||||||
|
2 2 1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29#30#31#32#33#34#35#36#37#38#39#40#41#42#43#44#45#46#47#48#49#50#51#52 1 0
|
||||||
|
101 1 101 1 0
|
||||||
|
102 1 102 1 0
|
||||||
|
103 1 103 1 0
|
||||||
|
104 1 104 1 0
|
||||||
|
105 1 105 1 0
|
||||||
|
106 1 106 1 0
|
||||||
|
107 1 107 1 0
|
||||||
|
108 1 108 1 0
|
||||||
|
109 1 109 1 0
|
||||||
|
110 1 110 1 0
|
||||||
|
111 1 111 1 0
|
||||||
|
112 1 112 1 0
|
||||||
|
113 1 113 1 0
|
||||||
|
114 1 114 1 0
|
||||||
|
115 1 115 1 0
|
||||||
|
116 1 116 1 0
|
||||||
|
117 1 117 1 0
|
||||||
|
118 1 118 1 0
|
||||||
|
119 1 119 1 0
|
||||||
|
120 1 120 1 0
|
||||||
|
121 1 121 1 0
|
||||||
|
122 1 122 1 0
|
||||||
|
123 1 123 1 0
|
||||||
|
124 1 124 1 0
|
||||||
|
125 1 125 1 0
|
||||||
|
126 1 126 1 0
|
||||||
|
127 1 127 1 0
|
||||||
|
128 1 128 1 0
|
||||||
|
129 1 129 1 0
|
||||||
|
130 1 130 1 0
|
||||||
|
131 1 131 1 0
|
||||||
|
132 1 132 1 0
|
||||||
|
133 1 133 1 0
|
||||||
|
134 1 134 1 0
|
||||||
|
135 1 135 1 0
|
||||||
|
136 1 136 1 0
|
||||||
|
137 1 137 1 0
|
||||||
|
138 1 138 1 0
|
||||||
|
139 1 139 1 0
|
||||||
|
140 1 140 1 0
|
||||||
|
141 1 141 1 0
|
||||||
|
142 1 142 1 0
|
||||||
|
143 1 143 1 0
|
||||||
|
144 1 144 1 0
|
||||||
|
145 1 145 1 0
|
||||||
|
146 1 146 1 0
|
||||||
|
147 1 147 1 0
|
||||||
|
148 1 148 1 0
|
||||||
|
149 1 149 1 0
|
||||||
|
150 1 150 1 0
|
||||||
|
151 1 151 1 0
|
||||||
|
152 1 152 1 0
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
id itemId Chance GrowChance RandomMin RandomMax
|
Id ItemId Chance GrowChance RandomMin RandomMax
|
||||||
int int int int int int
|
int int int float int int
|
||||||
1 10001 100 0 1 1
|
1 10001 100 0 1 1
|
||||||
2 10002 100 0 1 1
|
2 10002 100 0 1 1
|
||||||
3 10003 100 0 1 1
|
3 10003 100 0 1 1
|
||||||
|
|
@ -52,7 +52,55 @@ int int int int int int
|
||||||
50 10050 100 0 1 1
|
50 10050 100 0 1 1
|
||||||
51 10051 100 0 1 1
|
51 10051 100 0 1 1
|
||||||
52 10052 100 0 1 1
|
52 10052 100 0 1 1
|
||||||
53 10053 100 0 1 1
|
101 10001 100 0 1 1
|
||||||
54 10054 100 0 1 1
|
102 10002 100 0 1 1
|
||||||
55 10055 100 0 1 1
|
103 10003 100 0 1 1
|
||||||
56 10056 100 0 1 1
|
104 10004 100 0 1 1
|
||||||
|
105 10005 100 0 1 1
|
||||||
|
106 10006 100 0 1 1
|
||||||
|
107 10007 100 0 1 1
|
||||||
|
108 10008 100 0 1 1
|
||||||
|
109 10009 100 0 1 1
|
||||||
|
110 10010 100 0 1 1
|
||||||
|
111 10011 100 0 1 1
|
||||||
|
112 10012 100 0 1 1
|
||||||
|
113 10013 100 0 1 1
|
||||||
|
114 10014 100 0 1 1
|
||||||
|
115 10015 100 0 1 1
|
||||||
|
116 10016 100 0 1 1
|
||||||
|
117 10017 100 0 1 1
|
||||||
|
118 10018 100 0 1 1
|
||||||
|
119 10019 100 0 1 1
|
||||||
|
120 10020 100 0 1 1
|
||||||
|
121 10021 100 0 1 1
|
||||||
|
122 10022 100 0 1 1
|
||||||
|
123 10023 100 0 1 1
|
||||||
|
124 10024 100 0 1 1
|
||||||
|
125 10025 100 0 1 1
|
||||||
|
126 10026 100 0 1 1
|
||||||
|
127 10027 100 0 1 1
|
||||||
|
128 10028 100 0 1 1
|
||||||
|
129 10029 100 0 1 1
|
||||||
|
130 10030 100 0 1 1
|
||||||
|
131 10031 100 0 1 1
|
||||||
|
132 10032 100 0 1 1
|
||||||
|
133 10033 100 0 1 1
|
||||||
|
134 10034 100 0 1 1
|
||||||
|
135 10035 100 0 1 1
|
||||||
|
136 10036 100 0 1 1
|
||||||
|
137 10037 100 0 1 1
|
||||||
|
138 10038 100 0 1 1
|
||||||
|
139 10039 100 0 1 1
|
||||||
|
140 10040 100 0 1 1
|
||||||
|
141 10041 100 0 1 1
|
||||||
|
142 10042 100 0 1 1
|
||||||
|
143 10043 100 0 1 1
|
||||||
|
144 10044 100 0 1 1
|
||||||
|
145 10045 100 0 1 1
|
||||||
|
146 10046 100 0 1 1
|
||||||
|
147 10047 100 0 1 1
|
||||||
|
148 10048 100 0 1 1
|
||||||
|
149 10049 100 0 1 1
|
||||||
|
150 10050 100 0 1 1
|
||||||
|
151 10051 100 0 1 1
|
||||||
|
152 10052 100 0 1 1
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,11 @@ public class SItem implements BaseConfig {
|
||||||
private int itemType;
|
private int itemType;
|
||||||
private int itemBaseType; //道具类型(该道具在哪个背包显示)
|
private int itemBaseType; //道具类型(该道具在哪个背包显示)
|
||||||
private int quantity;
|
private int quantity;
|
||||||
private boolean isStacking;
|
private int[] price;
|
||||||
|
private int useType; //使用类型0不使用 1掉落组 2N选1
|
||||||
|
private int rewardGroup;
|
||||||
|
private int usePerCount;
|
||||||
|
private boolean isopen;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
|
|
@ -45,7 +49,23 @@ public class SItem implements BaseConfig {
|
||||||
return quantity;
|
return quantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isStacking() {
|
public int[] getPrice() {
|
||||||
return isStacking;
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUseType() {
|
||||||
|
return useType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRewardGroup() {
|
||||||
|
return rewardGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUsePerCount() {
|
||||||
|
return usePerCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIsopen() {
|
||||||
|
return isopen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.config;
|
||||||
|
|
||||||
import com.ljsd.jieling.logic.STableManager;
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
import com.ljsd.jieling.logic.Table;
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -26,6 +27,8 @@ public class SRewardGroup implements BaseConfig {
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
sRewardItemMap = STableManager.getConfig(SRewardGroup.class);
|
sRewardItemMap = STableManager.getConfig(SRewardGroup.class);
|
||||||
|
ItemUtil.initDropReward();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,22 +2,32 @@ package com.ljsd.jieling.config;
|
||||||
|
|
||||||
import com.ljsd.jieling.logic.STableManager;
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
import com.ljsd.jieling.logic.Table;
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
@Table(name = "RewardItemConfig")
|
@Table(name = "RewardItemConfig")
|
||||||
public class SRewardItem implements BaseConfig {
|
public class SRewardItem implements BaseConfig {
|
||||||
public static Map<Integer, SRewardItem> sDropMap;
|
public static Map<Integer, SRewardItem> sDropMap;
|
||||||
|
public static Map<Integer, SRewardItem> sDropMapByItemId;
|
||||||
private int id;
|
private int id;
|
||||||
private int itemId;
|
private int itemId;
|
||||||
private int chance; //获取概率
|
private int chance; //获取概率
|
||||||
private int growChance; //成长概率 针对特殊处理,如果不获取,则获取概率增加
|
private float growChance; //成长概率 针对特殊处理,如果不获取,则获取概率增加
|
||||||
private int randomMin; //获取数量最小值
|
private int randomMin; //获取数量最小值
|
||||||
private int randomMax; //获取数量最大值
|
private int randomMax; //获取数量最大值
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
sDropMap = STableManager.getConfig(SRewardItem.class);
|
sDropMap = STableManager.getConfig(SRewardItem.class);
|
||||||
|
Map<Integer, SRewardItem> sDropByItemMap= new ConcurrentHashMap<>();
|
||||||
|
for (Map.Entry<Integer,SRewardItem> entry :sDropMap.entrySet()){
|
||||||
|
SRewardItem sRewardItem = entry.getValue();
|
||||||
|
sDropByItemMap.put(sRewardItem.getItemId(),sRewardItem);
|
||||||
|
}
|
||||||
|
sDropMapByItemId = sDropByItemMap;
|
||||||
|
ItemUtil.initDropReward();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -29,6 +39,10 @@ public class SRewardItem implements BaseConfig {
|
||||||
return sDropMap;
|
return sDropMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<Integer, SRewardItem> getsDropMapByItemId() {
|
||||||
|
return sDropMapByItemId;
|
||||||
|
}
|
||||||
|
|
||||||
public int getItemId() {
|
public int getItemId() {
|
||||||
return itemId;
|
return itemId;
|
||||||
}
|
}
|
||||||
|
|
@ -37,7 +51,7 @@ public class SRewardItem implements BaseConfig {
|
||||||
return chance;
|
return chance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getGrowChance() {
|
public float getGrowChance() {
|
||||||
return growChance;
|
return growChance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@ package com.ljsd.jieling.globals;
|
||||||
|
|
||||||
public interface GlobalItemType {
|
public interface GlobalItemType {
|
||||||
//掉落物品类型
|
//掉落物品类型
|
||||||
int ALL_DROP = 0; //全部掉落
|
int ALL_DROP = 1; //全部掉落
|
||||||
int WEIGHT_DROP = 1; //随机掉落
|
int WEIGHT_DROP = 2; //随机掉落
|
||||||
int SUCCESSIVELY_RANDOM = 2; // 依次随机
|
int SUCCESSIVELY_RANDOM = 3; // 依次随机
|
||||||
|
|
||||||
// 物品类型
|
// 物品类型
|
||||||
int GEM = 3; // 钻石Id(充值获得)
|
int GEM = 3; // 钻石Id(充值获得)
|
||||||
|
|
@ -12,5 +12,10 @@ public interface GlobalItemType {
|
||||||
int CARD = 1; // 卡牌
|
int CARD = 1; // 卡牌
|
||||||
int CARD_FRAGMENT = 2; // 卡牌碎片
|
int CARD_FRAGMENT = 2; // 卡牌碎片
|
||||||
int EQUIP = 3; //装备
|
int EQUIP = 3; //装备
|
||||||
|
int RANDOM_ITME = 5; // 随机道具
|
||||||
|
|
||||||
|
//物品使用类型
|
||||||
|
int NO_USE = 0 ; //不使用
|
||||||
|
int RANDOM_USE = 1; // 随机使用
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.ljsd.jieling.handler;
|
package com.ljsd.jieling.handler;
|
||||||
|
|
||||||
import com.ljsd.jieling.util.MailUtil;
|
import com.ljsd.jieling.logic.Mail.MailLogic;
|
||||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
|
|
@ -31,7 +31,7 @@ public class GetAllMailHandler extends BaseHandler {
|
||||||
int msgIndex = netData.getIndex();
|
int msgIndex = netData.getIndex();
|
||||||
LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={}",
|
LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={}",
|
||||||
userId, token,msgId,msgIndex);
|
userId, token,msgId,msgIndex);
|
||||||
List<CommonProto.Mail> allUserMail = MailUtil.getInstance().getAllUserMail(userId);
|
List<CommonProto.Mail> allUserMail = MailLogic.getInstance().getAllUserMail(userId);
|
||||||
PlayerInfoProto.GetAllMailInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetAllMailInfoResponse.newBuilder()
|
PlayerInfoProto.GetAllMailInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetAllMailInfoResponse.newBuilder()
|
||||||
.addAllMialList(allUserMail)
|
.addAllMialList(allUserMail)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.ljsd.jieling.handler;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||||
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
|
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class HeroComposeHandler extends BaseHandler{
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.HERO_COMPOSE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||||
|
byte[] bytes = netData.parseClientProtoNetData();
|
||||||
|
HeroInfoProto.HeroComposeRequest heroComposeRequest = HeroInfoProto.HeroComposeRequest.parseFrom(bytes);
|
||||||
|
CommonProto.Item item = heroComposeRequest.getItem();
|
||||||
|
HeroLogic.getInstance().heroCompose(iSession,item);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,8 +4,7 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
import com.ljsd.jieling.util.MailUtil;
|
import com.ljsd.jieling.logic.Mail.MailLogic;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -31,7 +30,7 @@ public class ReadMailHandler extends BaseHandler {
|
||||||
userId, token,msgId,msgIndex);
|
userId, token,msgId,msgIndex);
|
||||||
PlayerInfoProto.MailReadRequest mailReadRequest = PlayerInfoProto.MailReadRequest.parseFrom(message);
|
PlayerInfoProto.MailReadRequest mailReadRequest = PlayerInfoProto.MailReadRequest.parseFrom(message);
|
||||||
String mailId = mailReadRequest.getMailId();
|
String mailId = mailReadRequest.getMailId();
|
||||||
MailUtil.getInstance().readMail(iSession,mailId);
|
MailLogic.getInstance().readMail(iSession,mailId);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
import com.ljsd.jieling.util.MailUtil;
|
import com.ljsd.jieling.logic.Mail.MailLogic;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -34,7 +34,7 @@ public class TakeMailHandler extends BaseHandler {
|
||||||
userId, token,msgId,msgIndex);
|
userId, token,msgId,msgIndex);
|
||||||
PlayerInfoProto.TakeMailRequest takeMailRequest = PlayerInfoProto.TakeMailRequest.parseFrom(message);
|
PlayerInfoProto.TakeMailRequest takeMailRequest = PlayerInfoProto.TakeMailRequest.parseFrom(message);
|
||||||
List<String> mailIdsList = takeMailRequest.getMailIdsList();
|
List<String> mailIdsList = takeMailRequest.getMailIdsList();
|
||||||
CommonProto.Drop.Builder dropBuilder = MailUtil.getInstance().takeMail(mailIdsList, userId);
|
CommonProto.Drop.Builder dropBuilder = MailLogic.getInstance().takeMail(mailIdsList, userId);
|
||||||
PlayerInfoProto.TakeMailResponse takeMailResponse = PlayerInfoProto.TakeMailResponse.newBuilder()
|
PlayerInfoProto.TakeMailResponse takeMailResponse = PlayerInfoProto.TakeMailResponse.newBuilder()
|
||||||
.setDrop(dropBuilder)
|
.setDrop(dropBuilder)
|
||||||
.buildPartial();
|
.buildPartial();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.ljsd.jieling.handler;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.globals.Global;
|
||||||
|
import com.ljsd.jieling.logic.dao.User;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||||
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class UseAndPriceItemHandler extends BaseHandler {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(UseAndPriceItemHandler.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||||
|
PlayerInfoProto.UseAndPriceItemRequest useAndPriceItemRequest
|
||||||
|
= PlayerInfoProto.UseAndPriceItemRequest.parseFrom(netData.parseClientProtoNetData());
|
||||||
|
int type = useAndPriceItemRequest.getType();
|
||||||
|
CommonProto.Item item = useAndPriceItemRequest.getItem();
|
||||||
|
if (type == 0){
|
||||||
|
ItemLogic.getInstance().useItem(iSession,item);
|
||||||
|
}else{
|
||||||
|
ItemLogic.getInstance().priceItem(iSession,item);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,27 +1,28 @@
|
||||||
package com.ljsd.jieling.util;
|
package com.ljsd.jieling.logic.Mail;
|
||||||
|
|
||||||
import com.ljsd.jieling.globals.Global;
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.util.*;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
public class MailUtil {
|
public class MailLogic {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(MailUtil.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(MailLogic.class);
|
||||||
|
|
||||||
private MailUtil(){}
|
private MailLogic(){}
|
||||||
|
|
||||||
public static class Instance {
|
public static class Instance {
|
||||||
public final static MailUtil instance = new MailUtil();
|
public final static MailLogic instance = new MailLogic();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MailUtil getInstance() {
|
public static MailLogic getInstance() {
|
||||||
return MailUtil.Instance.instance;
|
return MailLogic.Instance.instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,7 +2,7 @@ package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
||||||
import com.ljsd.jieling.util.MailUtil;
|
import com.ljsd.jieling.logic.Mail.MailLogic;
|
||||||
import com.ljsd.jieling.util.TimeUtils;
|
import com.ljsd.jieling.util.TimeUtils;
|
||||||
import org.springframework.context.ConfigurableApplicationContext;
|
import org.springframework.context.ConfigurableApplicationContext;
|
||||||
|
|
||||||
|
|
@ -28,7 +28,7 @@ public class MailingSystemManager {
|
||||||
int nowTime = (int)(TimeUtils.now()/1000);
|
int nowTime = (int)(TimeUtils.now()/1000);
|
||||||
mailingSystem.getSysMailManager().addSystemMail(new SysMail(1));
|
mailingSystem.getSysMailManager().addSystemMail(new SysMail(1));
|
||||||
MailingSystemManager.ljsdMongoTemplate.lastUpdate();
|
MailingSystemManager.ljsdMongoTemplate.lastUpdate();
|
||||||
MailUtil.getInstance().sendSystemMail("开服邮件",new ArrayList<>(),"DSKGSD",nowTime,"1#5000|2#100",30*24*60*60,"IDIP",0,"0");
|
MailLogic.getInstance().sendSystemMail("开服邮件",new ArrayList<>(),"DSKGSD",nowTime,"1#5000|2#100",30*24*60*60,"IDIP",0,"0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.ljsd.GameApplication;
|
||||||
import com.ljsd.jieling.config.*;
|
import com.ljsd.jieling.config.*;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
|
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||||
|
|
@ -13,6 +14,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class HeroLogic {
|
public class HeroLogic {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(HeroLogic.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(HeroLogic.class);
|
||||||
|
|
@ -113,13 +115,11 @@ public class HeroLogic {
|
||||||
}
|
}
|
||||||
if( itemType == 2) {
|
if( itemType == 2) {
|
||||||
Item item = itemManager.getItem(itemId);
|
Item item = itemManager.getItem(itemId);
|
||||||
if (item == null){
|
if (item == null) {
|
||||||
item = itemManager.newItem(itemId, itemNum);
|
item = itemManager.newItem(itemId, itemNum);
|
||||||
}else{
|
} else {
|
||||||
if(sItem.isStacking()){
|
|
||||||
item.setItemNum(item.getItemNum() + itemNum);
|
item.setItemNum(item.getItemNum() + itemNum);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
items.add(CBean2Proto.getItem(item));
|
items.add(CBean2Proto.getItem(item));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -476,7 +476,30 @@ public class HeroLogic {
|
||||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_UNLOAD_OPT_RESPONSE_VALUE,null,true);
|
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_UNLOAD_OPT_RESPONSE_VALUE,null,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 英雄合成
|
||||||
|
* @param iSession
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
public void heroCompose(ISession iSession, CommonProto.Item item) throws Exception {
|
||||||
|
int msgId = MessageTypeProto.MessageType.HERO_COMPOSE_RESPONSE_VALUE;
|
||||||
|
int uid = iSession.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
int itemNum = item.getItemNum();
|
||||||
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
|
boolean result = ItemUtil.checkCost(user, sItem, itemNum);
|
||||||
|
if (!result){
|
||||||
|
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||||
|
}
|
||||||
|
Map<Integer,Integer> randomMap = new ConcurrentHashMap<>();
|
||||||
|
randomMap.put(itemId,itemNum);
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.useRandomItem(user,randomMap );
|
||||||
|
HeroInfoProto.HeroComposeResponse heroComposeResponse = HeroInfoProto.HeroComposeResponse
|
||||||
|
.newBuilder()
|
||||||
|
.setDrop(drop)
|
||||||
|
.build();
|
||||||
|
MessageUtil.sendMessage(iSession,1,msgId,heroComposeResponse,true); }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
package com.ljsd.jieling.logic.item;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.config.*;
|
||||||
|
import com.ljsd.jieling.globals.GlobalItemType;
|
||||||
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import com.ljsd.jieling.util.*;
|
||||||
|
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
public class ItemLogic {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(ItemLogic.class);
|
||||||
|
|
||||||
|
private ItemLogic(){}
|
||||||
|
|
||||||
|
public static class Instance {
|
||||||
|
public final static ItemLogic instance = new ItemLogic();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemLogic getInstance() {
|
||||||
|
return ItemLogic.Instance.instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出售道具
|
||||||
|
* @param iSession
|
||||||
|
* @param item
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void priceItem(ISession iSession,CommonProto.Item item) throws Exception {
|
||||||
|
int uid = iSession.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE;
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
int itemNum = item.getItemNum();
|
||||||
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
|
if (sItem == null){
|
||||||
|
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String costItem = itemId + "#"+ itemNum;
|
||||||
|
int[][] costItemArr = StringUtil.parseFiledInt2(costItem);
|
||||||
|
boolean result = ItemUtil.itemCost(user, costItemArr);
|
||||||
|
if (!result){
|
||||||
|
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int[] prices = sItem.getPrice();
|
||||||
|
int priceItemId = prices[0];
|
||||||
|
int priceItemNum = prices[1] * itemNum;
|
||||||
|
String priceReward = priceItemId+"#"+priceItemNum;
|
||||||
|
int[][] ints = StringUtil.parseFiledInt2(priceReward);
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, ints);
|
||||||
|
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendUseAndPriceItemMessage(ISession iSession, int msgId, CommonProto.Drop.Builder drop) {
|
||||||
|
PlayerInfoProto.UseAndPriceItemResponse useAndPriceItemResponse = PlayerInfoProto.UseAndPriceItemResponse.newBuilder()
|
||||||
|
.setDrop(drop)
|
||||||
|
.build();
|
||||||
|
MessageUtil.sendMessage(iSession, 1,msgId, useAndPriceItemResponse, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用道具
|
||||||
|
* @param iSession
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
public void useItem(ISession iSession, CommonProto.Item item) throws Exception {
|
||||||
|
int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE;
|
||||||
|
int uid = iSession.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
int itemNum = item.getItemNum();
|
||||||
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
|
boolean result = ItemUtil.checkCost(user, sItem, itemNum);
|
||||||
|
if (!result){
|
||||||
|
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||||
|
}
|
||||||
|
Map<Integer,Integer> randomMap = new ConcurrentHashMap<>();
|
||||||
|
randomMap.put(itemId,itemNum);
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.useRandomItem(user,randomMap);
|
||||||
|
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,9 +10,11 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
public class ItemUtil {
|
public class ItemUtil {
|
||||||
|
private static Map<Integer,String> dropRewardMap = new ConcurrentHashMap<>();
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
|
||||||
//掉落
|
//掉落
|
||||||
public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception {
|
public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception {
|
||||||
|
|
@ -20,17 +22,21 @@ public class ItemUtil {
|
||||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||||
Map<Integer,Integer> equipMap = new HashMap<>();
|
Map<Integer,Integer> equipMap = new HashMap<>();
|
||||||
selectItemArr(itemArr,cardMap,itemMap,equipMap);
|
Map<Integer,Integer> randomMap = new HashMap<>();
|
||||||
|
selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap);
|
||||||
|
|
||||||
|
|
||||||
|
useRandomItem(user,randomMap);
|
||||||
addItem(user,itemMap,dropBuilder);
|
addItem(user,itemMap,dropBuilder);
|
||||||
addCard(user,cardMap,dropBuilder);
|
addCard(user,cardMap,dropBuilder);
|
||||||
addEquip(user,equipMap,dropBuilder);
|
addEquip(user,equipMap,dropBuilder);
|
||||||
return dropBuilder;
|
return dropBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void selectItemArr(int[][] itemArr, Map<Integer, Integer> cardMap, Map<Integer, Integer> itemMap,Map<Integer,Integer> equipMap) {
|
private static void selectItemArr(int[][] itemArr, Map<Integer, Integer> cardMap, Map<Integer, Integer>
|
||||||
|
itemMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap) {
|
||||||
for (int[] items : itemArr){
|
for (int[] items : itemArr){
|
||||||
getMap(items[0],items[1], itemMap, cardMap,equipMap,1);
|
getMap(items[0],items[1], itemMap, cardMap,equipMap,randomMap,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,15 +46,18 @@ public class ItemUtil {
|
||||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||||
Map<Integer, Integer> equipMap = new HashMap<>();
|
Map<Integer, Integer> equipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> randomMap = new HashMap<>();
|
||||||
for (int dropGroupId :dropGroupIds){
|
for (int dropGroupId :dropGroupIds){
|
||||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||||
if (sRewardGroup == null){
|
if (sRewardGroup == null){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,dropRatio);
|
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||||
}
|
}
|
||||||
|
useRandomItem(user,randomMap);
|
||||||
addItem(user,itemMap,dropBuilder);
|
addItem(user,itemMap,dropBuilder);
|
||||||
addCard(user,cardMap,dropBuilder);
|
addCard(user,cardMap,dropBuilder);
|
||||||
|
addEquip(user,equipMap,dropBuilder);
|
||||||
return dropBuilder;
|
return dropBuilder;
|
||||||
}
|
}
|
||||||
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception {
|
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception {
|
||||||
|
|
@ -60,45 +69,30 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
return dropBuilder;
|
return dropBuilder;
|
||||||
}
|
}
|
||||||
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap , float dropRatio) {
|
||||||
int[] rewardItem = sRewardGroup.getRewardItem();
|
String dropInfo = dropRewardMap.get(sRewardGroup.getId());
|
||||||
StringBuilder rewardStr = new StringBuilder();
|
String rewardStr = dropInfo.split("\\|")[0];
|
||||||
StringBuilder weight = new StringBuilder();
|
String weight = dropInfo.split("\\|")[1];
|
||||||
for (int dropId :rewardItem){
|
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(dropId);
|
|
||||||
if (sRewardItem == null){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (rewardStr.length() == 0){
|
|
||||||
rewardStr = new StringBuilder(String.valueOf(sRewardItem.getItemId()));
|
|
||||||
}else{
|
|
||||||
rewardStr.append("#").append(sRewardItem.getItemId());
|
|
||||||
}
|
|
||||||
if (weight.length() == 0){
|
|
||||||
weight = new StringBuilder(String.valueOf(sRewardItem.getChance()));
|
|
||||||
}else{
|
|
||||||
weight.append("#").append(sRewardItem.getItemId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switch (sRewardGroup.getIsUpset()) {
|
switch (sRewardGroup.getIsUpset()) {
|
||||||
case GlobalItemType.ALL_DROP:
|
case GlobalItemType.ALL_DROP:
|
||||||
getMap(StringUtil.parseFiledInt(rewardStr.toString()),itemMap,cardMap,equipMap,dropRatio);
|
getMap(StringUtil.parseFiledInt(rewardStr),itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||||
break;
|
break;
|
||||||
case GlobalItemType.WEIGHT_DROP:
|
case GlobalItemType.WEIGHT_DROP:
|
||||||
getRandomMap(sRewardGroup.getRewardMaxNum(),rewardStr.toString().split("#"),weight.toString().split("#"),
|
getRandomMap(sRewardGroup.getRewardMaxNum(),rewardStr.split("#"),weight.split("#"),
|
||||||
itemMap,equipMap,cardMap,dropRatio);
|
itemMap,equipMap,cardMap,randomMap,dropRatio);
|
||||||
break;
|
break;
|
||||||
case GlobalItemType.SUCCESSIVELY_RANDOM:
|
case GlobalItemType.SUCCESSIVELY_RANDOM:
|
||||||
getSuccessivelyRandmoMap(sRewardGroup,rewardStr.toString().split("#"),weight.toString().split("#"),
|
getSuccessivelyRandmoMap(sRewardGroup,rewardStr.split("#"),weight.split("#"),
|
||||||
itemMap,cardMap,equipMap,dropRatio);
|
itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap,
|
private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[]
|
||||||
Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
rewardArr,String[] weightArr, Map<Integer, Integer> itemMap,Map<Integer, Integer>
|
||||||
|
cardMap, Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap,float dropRatio) {
|
||||||
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
|
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
|
||||||
int itemId = 0;
|
int itemId = 0;
|
||||||
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
|
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
|
||||||
|
|
@ -114,32 +108,33 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
||||||
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
||||||
getMap(itemId,itemNum ,itemMap, cardMap,equipMap,dropRatio);
|
getMap(itemId,itemNum ,itemMap, cardMap,equipMap,randomMap,dropRatio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,
|
private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,
|
||||||
Map<Integer,Integer> equipMap,float dropRatio) {
|
Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) {
|
||||||
for (int i = 0 ; i < randomItemNum;i++){
|
for (int i = 0 ; i < randomItemNum;i++){
|
||||||
int index = MathUtils.randomForStrArray(weightArr);
|
int index = MathUtils.randomForStrArray(weightArr);
|
||||||
int itemId = Integer.parseInt(rewardArr[index]);
|
int itemId = Integer.parseInt(rewardArr[index]);
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
SRewardItem sRewardItem = SRewardItem.getsDropMapByItemId().get(itemId);
|
||||||
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
||||||
getMap(itemId,itemNum, itemMap, cardMap,equipMap,dropRatio);
|
getMap(itemId,itemNum, itemMap, cardMap,equipMap,randomMap,dropRatio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void getMap(int[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
private static void getMap(int[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) {
|
||||||
for (int itemId :itemInfo){
|
for (int itemId :itemInfo){
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
SRewardItem sRewardItem = SRewardItem.getsDropMapByItemId().get(itemId);
|
||||||
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
||||||
getMap(itemId,itemNum,itemMap, cardMap,equipMap,dropRatio);
|
getMap(itemId,itemNum,itemMap, cardMap,equipMap,randomMap,dropRatio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void getMap(int itemId ,int itemNum, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
private static void getMap(int itemId ,int itemNum, Map<Integer, Integer> itemMap,
|
||||||
|
Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap ,Map<Integer,Integer> randomMap,float dropRatio) {
|
||||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
int itemType =getItemType(sItem.getItemType());
|
int itemType =getItemType(sItem);
|
||||||
switch (itemType) {
|
switch (itemType) {
|
||||||
case GlobalItemType.ITEM:
|
case GlobalItemType.ITEM:
|
||||||
putcountMap(itemId,MathUtils.numRount((itemNum * dropRatio)) , itemMap);
|
putcountMap(itemId,MathUtils.numRount((itemNum * dropRatio)) , itemMap);
|
||||||
|
|
@ -150,16 +145,25 @@ public class ItemUtil {
|
||||||
case GlobalItemType.EQUIP:
|
case GlobalItemType.EQUIP:
|
||||||
putcountMap(itemId, itemNum, cardMap);
|
putcountMap(itemId, itemNum, cardMap);
|
||||||
break;
|
break;
|
||||||
|
case GlobalItemType.RANDOM_ITME:
|
||||||
|
putcountMap(itemId, itemNum, randomMap);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getItemType(int itemType) {
|
private static int getItemType(SItem sItem) {
|
||||||
switch (itemType) {
|
int itemType = sItem.getItemType();
|
||||||
|
switch (sItem.getItemType()) {
|
||||||
case GlobalItemType.CARD_FRAGMENT:
|
case GlobalItemType.CARD_FRAGMENT:
|
||||||
itemType = GlobalItemType.ITEM;
|
itemType = GlobalItemType.ITEM;
|
||||||
break;
|
break;
|
||||||
|
case GlobalItemType.RANDOM_ITME:
|
||||||
|
if (!sItem.isIsopen()){
|
||||||
|
itemType = GlobalItemType.ITEM;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -185,13 +189,11 @@ public class ItemUtil {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Item item = itemManager.getItem(entry.getKey());
|
Item item = itemManager.getItem(entry.getKey());
|
||||||
if (item == null){
|
if (item == null) {
|
||||||
item = itemManager.newItem(entry.getKey(), entry.getValue());
|
item = itemManager.newItem(entry.getKey(), entry.getValue());
|
||||||
}else{
|
} else {
|
||||||
if(sItem.isStacking()){
|
|
||||||
item.setItemNum(item.getItemNum() + entry.getValue());
|
item.setItemNum(item.getItemNum() + entry.getValue());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
itemProtoList.add(CBean2Proto.getItem(item));
|
itemProtoList.add(CBean2Proto.getItem(item));
|
||||||
}
|
}
|
||||||
if (dropBuilder != null) {
|
if (dropBuilder != null) {
|
||||||
|
|
@ -342,7 +344,7 @@ public class ItemUtil {
|
||||||
int itemId = costItem[0];
|
int itemId = costItem[0];
|
||||||
int itemNum = costItem[1];
|
int itemNum = costItem[1];
|
||||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
int itemType = getItemType(sItem.getItemType());
|
int itemType = getItemType(sItem);
|
||||||
switch (itemType) {
|
switch (itemType) {
|
||||||
case GlobalItemType.GEM:
|
case GlobalItemType.GEM:
|
||||||
putcountMap(itemId,itemNum,moneyMap);
|
putcountMap(itemId,itemNum,moneyMap);
|
||||||
|
|
@ -355,4 +357,80 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用随机物品
|
||||||
|
* @param user
|
||||||
|
* @param randomMap
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static CommonProto.Drop.Builder useRandomItem(User user,Map<Integer,Integer> randomMap) throws Exception {
|
||||||
|
StringBuilder dropIds = new StringBuilder();
|
||||||
|
for (Map.Entry<Integer,Integer> entry : randomMap.entrySet()){
|
||||||
|
int itemId = entry.getKey();
|
||||||
|
int itemNum = entry.getValue();
|
||||||
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
|
for (int i = 0; i < itemNum; i++){
|
||||||
|
if (dropIds.length() == 0){
|
||||||
|
dropIds = new StringBuilder(String.valueOf(sItem.getRewardGroup()));
|
||||||
|
}else{
|
||||||
|
dropIds.append("#").append(sItem.getRewardGroup());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||||
|
if (!dropIds.toString().isEmpty()){
|
||||||
|
int[] ints = StringUtil.parseFiledInt(dropIds.toString());
|
||||||
|
drop = ItemUtil.drop(user, ints, 1);
|
||||||
|
}
|
||||||
|
return drop;
|
||||||
|
}
|
||||||
|
public static boolean checkCost(User user ,SItem sItem , int itemNum) throws Exception {
|
||||||
|
if (sItem == null){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (sItem.getUseType() == GlobalItemType.NO_USE){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String costItem = sItem.getId() +"#"+ itemNum;
|
||||||
|
int[][] ints = StringUtil.parseFiledInt2(costItem);
|
||||||
|
return ItemUtil.itemCost(user, ints);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void initDropReward() {
|
||||||
|
Map<Integer, SRewardGroup> sRewardGroupMap = SRewardGroup.getsRewardItemMap();
|
||||||
|
Map<Integer, SRewardItem> sRewardItemMap = SRewardItem.getsDropMap();
|
||||||
|
if (sRewardGroupMap == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (sRewardItemMap == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<Integer,String> dropMap = new ConcurrentHashMap<>();
|
||||||
|
for (Map.Entry<Integer,SRewardGroup> entry :sRewardGroupMap.entrySet()){
|
||||||
|
SRewardGroup sRewardGroup = entry.getValue();
|
||||||
|
int[] rewardItem = sRewardGroup.getRewardItem();
|
||||||
|
StringBuilder rewardStr = new StringBuilder();
|
||||||
|
StringBuilder weight = new StringBuilder();
|
||||||
|
for (int dropId :rewardItem){
|
||||||
|
SRewardItem sRewardItem =sRewardItemMap.get(dropId);
|
||||||
|
if (sRewardItem == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (rewardStr.length() == 0){
|
||||||
|
rewardStr = new StringBuilder(String.valueOf(sRewardItem.getItemId()));
|
||||||
|
}else{
|
||||||
|
rewardStr.append("#").append(sRewardItem.getItemId());
|
||||||
|
}
|
||||||
|
if (weight.length() == 0){
|
||||||
|
weight = new StringBuilder(String.valueOf(sRewardItem.getChance()));
|
||||||
|
}else{
|
||||||
|
weight.append("#").append(sRewardItem.getChance());
|
||||||
|
}
|
||||||
|
dropMap.put(sRewardGroup.getId(),rewardStr +"|"+weight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dropRewardMap = dropMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ public class NettyClient {
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(NettyClient.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(NettyClient.class);
|
||||||
|
|
||||||
private static int uid = 10000026;
|
private static int uid = 10000061;
|
||||||
private static int msgIndex = 1;
|
private static int msgIndex = 1;
|
||||||
private static int token=543242;
|
private static int token=543242;
|
||||||
|
|
||||||
|
|
@ -44,12 +44,30 @@ public class NettyClient {
|
||||||
handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE));
|
handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE));
|
||||||
// handler.sendRequest_jieling(makeFinalMessage(getHero(), MessageTypeProto.MessageType.GET_HEROINFO_REQUEST_VALUE));
|
// handler.sendRequest_jieling(makeFinalMessage(getHero(), MessageTypeProto.MessageType.GET_HEROINFO_REQUEST_VALUE));
|
||||||
// handler.sendRequest_jieling(makeFinalMessage(getRandomHero(), MessageTypeProto.MessageType.HERO_RAND_REQQUEST_VALUE));
|
// handler.sendRequest_jieling(makeFinalMessage(getRandomHero(), MessageTypeProto.MessageType.HERO_RAND_REQQUEST_VALUE));
|
||||||
// for (int i = 1000; i< 1500;i++){
|
// handler.sendRequest_jieling(makeFinalMessage(gmRequest(11001), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
||||||
handler.sendRequest_jieling(makeFinalMessage(gmRequest(0), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
handler.sendRequest_jieling(makeFinalMessage(useAndPriceItemRequest(0,11001,2), MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_REQUEST_VALUE));
|
||||||
|
// handler.sendRequest_jieling(makeFinalMessage(heroComperRequest(1001,10), MessageTypeProto.MessageType.HERO_COMPOSE_REQUEST_VALUE));
|
||||||
// }
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static MessageLite heroComperRequest(int itemId, int itemNum) {
|
||||||
|
CommonProto.Item item = CommonProto.Item.newBuilder()
|
||||||
|
.setItemId(itemId)
|
||||||
|
.setItemNum(itemNum)
|
||||||
|
.build();
|
||||||
|
return HeroInfoProto.HeroComposeRequest.newBuilder().setItem(item).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MessageLite useAndPriceItemRequest(int type ,int itemId , int itemNum) {
|
||||||
|
CommonProto.Item item = CommonProto.Item.newBuilder()
|
||||||
|
.setItemId(itemId)
|
||||||
|
.setItemNum(itemNum)
|
||||||
|
.build();
|
||||||
|
return PlayerInfoProto.UseAndPriceItemRequest.newBuilder().setType(type).setItem(item).build();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static HeroInfoProto.GetHeroListInfoRequest getHero(){
|
public static HeroInfoProto.GetHeroListInfoRequest getHero(){
|
||||||
return HeroInfoProto.GetHeroListInfoRequest.newBuilder().setNum(1).setStr("111").build();
|
return HeroInfoProto.GetHeroListInfoRequest.newBuilder().setNum(1).setStr("111").build();
|
||||||
}
|
}
|
||||||
|
|
@ -73,7 +91,7 @@ public class NettyClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CommonProto.GMCommand gmRequest(int itemId){
|
public static CommonProto.GMCommand gmRequest(int itemId){
|
||||||
return CommonProto.GMCommand.newBuilder().setCommand("3#"+1+"#10000").build();
|
return CommonProto.GMCommand.newBuilder().setCommand("1#"+itemId+"#10").build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue