Merge branch 'master' of http://60.1.1.230/backend/jieling_server
Conflicts: serverlogic/src/main/java/com/ljsd/jieling/config/SSkillLogicConfig.javaback_recharge
commit
32089c7f76
|
@ -35,11 +35,17 @@ public class MongoUpdateCache {
|
|||
Map.Entry<String, UpdateRequest> entry = it.next();
|
||||
String key1 = entry.getKey();
|
||||
if(!fullKey.equals(key1)){
|
||||
//解决类似 item.1 item.11 问题
|
||||
if (fullKey.contains(key1)) {
|
||||
return;
|
||||
if(checkOverride(key1,fullKey)){
|
||||
return;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (key1.contains(fullKey)) {
|
||||
it.remove();
|
||||
if(checkOverride(key1,fullKey)){
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,6 +55,15 @@ public class MongoUpdateCache {
|
|||
listRequest.put(fullKey, request);
|
||||
}
|
||||
|
||||
public boolean checkOverride(String key1,String key2){
|
||||
String[] fullKeyArray = key1.split(".");
|
||||
String[] key1Array = key2.split(".");
|
||||
if(fullKeyArray.length == key1Array.length && !fullKeyArray[fullKeyArray.length -1].equals(key1Array[key1Array.length -1])){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void update(LjsdMongoTemplate ljsdMongoTemplate) throws IllegalAccessException {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Id OpenLevel RecommendForce RecommendHeroIds MinNum BaseRewardGroup RandomRewardGroup RecommendRewardGroup
|
||||
int int int mut,int#int,1 int mut,int#int,1 mut,int#int,1 mut,int#int,1
|
||||
1 101001 1000 3#1#2 5 101 1001#1002 2001#2002#2003
|
||||
2 102001 2000 3#1#2 5 102 1001#1002 2001#2002#2003
|
||||
3 102001 3000 3#1#2 5 103 1001#1002 2001#2002#2003
|
||||
4 102001 4000 3#1#2 5 104 1001#1002 2001#2002#2003
|
||||
5 102001 5000 3#1#2 5 105 1001#1002 2001#2002#2003
|
||||
int int int mut,int#int,1 int mut,int#int,1 mut,int#int,1 mut,int#int,2
|
||||
1 101001 1000 2#1#2 5 101 111 2001#2002#2003|2001#2002#2003
|
||||
2 102001 2000 2#1#2 5 102 112 2001#2002#2003|2001#2002#2003
|
||||
3 102001 3000 2#1#2 5 103 113 2001#2002#2003|2001#2002#2003
|
||||
4 102001 4000 2#1#2 5 104 114 2001#2002#2003|2001#2002#2003
|
||||
5 102001 5000 2#1#2 5 105 115 2001#2002#2003|2001#2002#2003
|
||||
|
|
|
@ -247,6 +247,10 @@ int mut,int#int,1
|
|||
101213 101302
|
||||
101214 101303
|
||||
101215 101304
|
||||
101216 101305
|
||||
101217 101306
|
||||
101218 101307
|
||||
101219 101308
|
||||
102001 10101
|
||||
102002 10102
|
||||
102003 10104
|
||||
|
@ -409,6 +413,7 @@ int mut,int#int,1
|
|||
102160 102242#102243
|
||||
102161 102244#102245
|
||||
102162 102246
|
||||
102163 102247
|
||||
103001 10301
|
||||
103002 10303
|
||||
103003 10305
|
||||
|
@ -533,6 +538,7 @@ int mut,int#int,1
|
|||
103122 103179#103180
|
||||
103123 103181#103182
|
||||
103124 103183
|
||||
103125 103184
|
||||
104001 10401
|
||||
104002 10403
|
||||
104003 10407
|
||||
|
@ -675,6 +681,22 @@ int mut,int#int,1
|
|||
104139 104169#104170
|
||||
104140 104171#104172
|
||||
104141 104173
|
||||
104142 104174
|
||||
104143 104175
|
||||
104144 104176
|
||||
104145 104177
|
||||
104146 104178
|
||||
104147 104179
|
||||
104148 104180
|
||||
104149 104181
|
||||
104150 104182
|
||||
104151 104183
|
||||
104152 104184
|
||||
104153 104185
|
||||
104154 104186
|
||||
104155 104187
|
||||
104156 104188
|
||||
104157 104189
|
||||
105001 10501
|
||||
105002 10502
|
||||
105003 10503
|
||||
|
@ -785,6 +807,27 @@ int mut,int#int,1
|
|||
105108 105166#105167
|
||||
105109 105168#105169
|
||||
105110 105170
|
||||
105111 105171
|
||||
105112 105172
|
||||
105113 105173
|
||||
105114 105174
|
||||
105115 105175
|
||||
105116 105176
|
||||
105117 105177
|
||||
105118 105178
|
||||
105119 105179
|
||||
105120 105180
|
||||
105121 105181
|
||||
105122 105182
|
||||
105123 105183
|
||||
105124 105184
|
||||
105125 105185
|
||||
105126 105186
|
||||
105127 105187
|
||||
105128 105188
|
||||
105129 105189
|
||||
105130 105190
|
||||
105131 105191
|
||||
106001 10601
|
||||
106002 10602
|
||||
106003 10604
|
||||
|
@ -869,6 +912,13 @@ int mut,int#int,1
|
|||
106082 10603
|
||||
106083 106119
|
||||
106084 106120
|
||||
106085 106121
|
||||
106086 106122
|
||||
106087 106123
|
||||
106088 106124
|
||||
106089 106125
|
||||
106090 106126
|
||||
106091 106127
|
||||
107001 null
|
||||
107002 null
|
||||
107003 null
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
Id Type MissionNum Reward
|
||||
int int int int
|
||||
1 1 2 0
|
||||
1 1 2 2001
|
||||
2 1 5 2001
|
||||
3 1 6 2002
|
||||
4 1 3 2003
|
||||
5 1 4 2004
|
||||
6 1 3 2005
|
||||
7 1 2 2006
|
||||
6 1 4 2005
|
||||
7 1 3 2006
|
||||
8 1 2 2007
|
||||
9 1 1 2008
|
||||
10 1 2 2009
|
||||
101 2 4 2002
|
||||
|
|
|
@ -15,3 +15,117 @@ int int mut,int#int,2
|
|||
13 4 3#1
|
||||
14 4 6#1
|
||||
15 4 9#1
|
||||
10101 6 0#2#5
|
||||
10102 6 1#2#5
|
||||
10103 0 null
|
||||
10104 0 null
|
||||
10105 0 null
|
||||
10106 0 null
|
||||
10107 0 null
|
||||
10108 0 null
|
||||
10109 0 null
|
||||
10201 6 0#3#6
|
||||
10202 6 1#3#6
|
||||
10301 6 0#4#3
|
||||
10302 6 1#4#3
|
||||
10401 6 1#5#4
|
||||
10402 6 0#5#4
|
||||
10501 6 1#6#4
|
||||
10502 6 0#6#4
|
||||
10601 6 1#7#3
|
||||
10602 6 0#7#3
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
0 0 null
|
||||
|
|
|
@ -31,14 +31,14 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
100029 0 0 null null 1 100028
|
||||
100030 0 27 2 null 1 100029
|
||||
100031 0 19 1#100#20#29 null 4 null
|
||||
100032 0 0 null null 1 null
|
||||
100032 0 26 2 null 4 null
|
||||
100033 0 0 null null 1 null
|
||||
100034 0 26 2 null 4 null
|
||||
100034 0 26 101 null 4 null
|
||||
101001 1 2 1503#1 1001#1101#1201#1301 4 null
|
||||
101002 0 0 null null 4 null
|
||||
101003 0 19 2#0 null 4 null
|
||||
101003 0 0 null null 5 101143
|
||||
101004 0 0 null null 4 null
|
||||
101005 0 0 null null 5 101007
|
||||
101005 0 27 101 null 5 101007
|
||||
101006 0 0 null null 4 null
|
||||
101007 0 0 null null 5 101008
|
||||
101008 0 1 10101 null 1 101009
|
||||
|
@ -170,7 +170,7 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
0 0 0 null null 0 null
|
||||
0 0 0 null null 0 null
|
||||
101136 0 0 null null 1 101099
|
||||
101137 0 27 3 null 1 101100
|
||||
101137 0 0 null null 1 101100
|
||||
101138 0 9 2 null 4 null
|
||||
101139 0 0 null null 0 null
|
||||
101140 0 0 null null 0 null
|
||||
|
@ -230,14 +230,14 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
101194 0 0 null null 1 101142
|
||||
101195 0 9 2 null 4 null
|
||||
101196 0 0 null null 5 101144
|
||||
101197 0 0 null null 5 101146
|
||||
101198 0 0 null null 1 101147
|
||||
101199 0 0 null null 1 101148
|
||||
101200 0 0 null null 4 null
|
||||
101197 0 0 null null 5 101145
|
||||
101198 0 0 null null 1 101146
|
||||
101199 0 27 3 null 1 101147
|
||||
101200 0 19 2#0 null 4 null
|
||||
101201 0 0 null null 4 null
|
||||
101202 10 0 null null 1 101067
|
||||
101203 0 0 null null 4 null
|
||||
101204 0 19 2#102#2#5 null 4 null
|
||||
101204 0 0 null null 4 null
|
||||
101205 0 0 null null 4 null
|
||||
101206 14 0 null null 1 101155
|
||||
101207 0 0 null null 4 null
|
||||
|
@ -337,7 +337,11 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
101301 0 0 null null 1 101213
|
||||
101302 0 0 null null 4 null
|
||||
101303 0 0 null null 1 null
|
||||
101304 0 26 3 null 4 null
|
||||
101304 0 0 null null 1 null
|
||||
101305 0 0 null null 1 null
|
||||
101306 0 0 null null 1 null
|
||||
101307 0 0 null null 1 null
|
||||
101308 0 26 3 null 4 null
|
||||
102001 1 2 1503#1 1002#1102#1202#1302 4 null
|
||||
102002 0 0 null null 4 null
|
||||
102003 1 2 1503#1 1002#1102#1202#1302 4 null
|
||||
|
@ -357,9 +361,9 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
102017 0 0 null 10102 4 null
|
||||
102018 0 0 null 10102 4 null
|
||||
102019 0 0 null 10102 4 null
|
||||
102020 0 5 0 null 4 null
|
||||
102020 0 0 null null 5 102123
|
||||
102021 0 0 null null 4 null
|
||||
102022 0 19 3#103#19#2 null 4 null
|
||||
102022 0 5 103#19#2 null 4 null
|
||||
102023 0 0 null null 4 null
|
||||
102024 6 14 3|1503#1 null 1 102016
|
||||
102025 0 0 null null 4 null
|
||||
|
@ -504,8 +508,8 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
102164 0 0 null null 1 102113
|
||||
102165 0 0 null null 1 102114
|
||||
102166 0 0 null null 1 102115
|
||||
102167 0 0 null null 1 102116
|
||||
102168 0 0 null null 4 null
|
||||
102167 0 27 3 null 1 102116
|
||||
102168 0 19 2#0 null 4 null
|
||||
102169 0 0 null null 5 102118
|
||||
102170 0 0 null null 1 102119
|
||||
102171 0 0 null null 1 102120
|
||||
|
@ -514,8 +518,8 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
102174 0 15 102030 null 4 null
|
||||
102175 0 0 null null 1 102124
|
||||
102176 0 0 null null 1 102125
|
||||
102177 0 0 null null 1 102126
|
||||
102178 0 0 null null 4 null
|
||||
102177 0 27 4 null 1 102126
|
||||
102178 0 19 3#0 null 4 null
|
||||
102179 0 0 null null 1 102128
|
||||
102180 0 0 null null 4 null
|
||||
102181 0 0 null null 1 102129
|
||||
|
@ -584,6 +588,7 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
102244 0 1 10102 null 1 102162
|
||||
102245 0 0 null null 4 null
|
||||
102246 0 0 null null 4 null
|
||||
102247 0 26 4 null 4 null
|
||||
103001 1 2 1503#1 1003#1103#1203#1303 4 null
|
||||
103002 0 0 null null 4 null
|
||||
103003 1 2 1503#1 1003#1103#1203#1303 4 null
|
||||
|
@ -598,16 +603,16 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
103012 0 0 null null 4 null
|
||||
103013 1 2 1503#1 1003#1103#1203#1303 4 null
|
||||
103014 0 0 null null 4 null
|
||||
103015 0 5 0 null 4 null
|
||||
103015 0 19 4#0 null 4 null
|
||||
103016 0 0 null null 4 null
|
||||
103017 0 19 4#104#2#3 null 4 null
|
||||
103017 0 0 null null 4 null
|
||||
103018 0 0 null null 4 null
|
||||
103019 0 1 10301 null 1 103014
|
||||
103020 0 0 null null 4 null
|
||||
103021 0 0 null null 4 null
|
||||
103022 0 0 null null 4 null
|
||||
103023 0 0 null null 4 null
|
||||
103024 0 0 null null 3 103020
|
||||
103024 0 0 null null 5 103020
|
||||
103025 0 0 null null 4 null
|
||||
103026 0 0 null null 1 103021
|
||||
103027 0 0 null null 1 103022
|
||||
|
@ -631,7 +636,7 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
103045 0 0 null null 1 103041
|
||||
103046 0 0 null null 0 null
|
||||
103047 0 0 null null 0 null
|
||||
103048 0 11 4|103#13#15#103012 null 4 null
|
||||
103048 0 27 5 null 4 null
|
||||
103049 0 0 null null 1 103043
|
||||
103050 0 0 null null 4 null
|
||||
103051 0 1 10301 null 1 103044
|
||||
|
@ -767,6 +772,7 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
103181 0 1 10305 null 1 103124
|
||||
103182 0 0 null null 4 null
|
||||
103183 0 0 null null 4 null
|
||||
103184 0 26 5 null 4 null
|
||||
104001 1 2 1503#1 1004#1104#1204#1304 4 null
|
||||
104002 0 0 null null 4 null
|
||||
104003 1 2 1503#1 1004#1104#1204#1304 4 null
|
||||
|
@ -783,9 +789,9 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
104014 0 0 null null 4 null
|
||||
104015 1 2 1503#1 1004#1104#1204#1304 4 null
|
||||
104016 0 0 null null 4 null
|
||||
104017 0 5 0 null 4 null
|
||||
104017 0 19 5#0 null 4 null
|
||||
104018 0 0 null null 4 null
|
||||
104019 0 19 5#105#14#4 null 4 null
|
||||
104019 0 0 null null 4 null
|
||||
104020 0 0 null null 4 null
|
||||
104021 0 0 null null 1 104018
|
||||
104022 0 0 null null 4 null
|
||||
|
@ -914,7 +920,7 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
104145 0 0 null null 0 null
|
||||
104146 0 0 null null 0 null
|
||||
104147 0 0 null null 1 104110
|
||||
104148 0 11 5|104#40#3#104014 null 1 104119
|
||||
104148 0 27 6 null 1 104119
|
||||
104149 0 15 104026 null 4 null
|
||||
104150 0 0 null null 0 null
|
||||
104151 0 0 null null 0 null
|
||||
|
@ -940,6 +946,22 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
104171 0 1 10505 null 1 104141
|
||||
104172 0 0 null null 4 null
|
||||
104173 0 0 null null 4 null
|
||||
104174 0 0 null null 5 null
|
||||
104175 0 0 null null 5 null
|
||||
104176 0 0 null null 5 null
|
||||
104177 0 0 null null 5 null
|
||||
104178 0 26 6 null 4 null
|
||||
104179 0 0 null null 0 null
|
||||
104180 0 0 null null 0 null
|
||||
104181 0 0 null null 0 null
|
||||
104182 0 0 null null 0 null
|
||||
104183 0 0 null null 0 null
|
||||
104184 0 0 null null 0 null
|
||||
104185 0 0 null null 0 null
|
||||
104186 0 0 null null 0 null
|
||||
104187 0 0 null null 0 null
|
||||
104188 0 0 null null 0 null
|
||||
104189 0 0 null null 0 null
|
||||
105001 1 2 1503#1 1005#1105#1205#1305 4 null
|
||||
105002 0 0 null null 4 null
|
||||
105003 1 2 1503#1 1005#1105#1205#1305 4 null
|
||||
|
@ -956,9 +978,9 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
105014 0 0 null null 4 null
|
||||
105015 1 2 1503#1 1005#1105#1205#1305 4 null
|
||||
105016 0 0 null null 4 null
|
||||
105017 0 5 0 null 4 null
|
||||
105017 0 19 6#0 null 4 null
|
||||
105018 0 0 null null 4 null
|
||||
105019 0 19 6#106#6#17 null 4 null
|
||||
105019 0 0 null null 4 null
|
||||
105020 0 0 null null 4 null
|
||||
105021 3 0 null 10102 4 null
|
||||
105022 0 0 null null 4 null
|
||||
|
@ -1057,7 +1079,7 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
105115 0 0 null null 1 105074
|
||||
105116 0 0 null null 5 105075
|
||||
105117 0 0 null null 5 105076
|
||||
105118 0 11 6|105#3#20#105014 null 1 105077
|
||||
105118 0 27 7 null 1 105077
|
||||
105119 0 15 105032 null 4 null
|
||||
105120 0 0 null null 4 null
|
||||
105121 0 0 null null 4 null
|
||||
|
@ -1110,6 +1132,27 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
105168 0 0 null 10102 1 105110
|
||||
105169 0 0 null null 4 null
|
||||
105170 0 0 null null 4 null
|
||||
105171 0 0 null null 1 null
|
||||
105172 0 0 null null 1 null
|
||||
105173 0 26 7 null 4 null
|
||||
105174 0 0 null null 1 105115
|
||||
105175 0 0 null null 5 105116
|
||||
105176 0 0 null null 5 105117
|
||||
105177 0 0 null null 5 105118
|
||||
105178 0 0 null null 5 105119
|
||||
105179 0 0 null null 5 105120
|
||||
105180 0 0 null null 5 105121
|
||||
105181 0 0 null null 5 105122
|
||||
105182 0 0 null null 5 105123
|
||||
105183 0 0 null null 4 null
|
||||
105184 0 0 null null 1 105125
|
||||
105185 0 0 null null 1 105126
|
||||
105186 0 0 null null 1 105127
|
||||
105187 0 0 null null 1 105128
|
||||
105188 0 0 null null 5 105129
|
||||
105189 0 0 null null 5 105130
|
||||
105190 0 0 null null 1 105131
|
||||
105191 0 0 null null 4 null
|
||||
106001 1 2 1503#1 10102 4 null
|
||||
106002 0 0 null null 4 null
|
||||
106003 1 2 1503#1 10102 4 null
|
||||
|
@ -1126,9 +1169,9 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
106014 0 0 null null 4 null
|
||||
106015 1 2 1503#1 10102 4 null
|
||||
106016 0 0 null null 4 null
|
||||
106017 0 5 0 null 4 null
|
||||
106017 0 19 7#0 null 4 null
|
||||
106018 0 0 null null 4 null
|
||||
106019 0 19 8#107#26#29 null 4 null
|
||||
106019 0 0 null null 4 null
|
||||
106020 0 0 null null 4 null
|
||||
106021 0 1 10101 null 4 null
|
||||
106022 0 0 null null 4 null
|
||||
|
@ -1230,6 +1273,13 @@ int int int mut,int#int,2 mut,int#int,1 int mut,int#int,2
|
|||
106118 0 0 null null 0 null
|
||||
106119 0 0 null null 4 null
|
||||
106120 0 0 null null 4 null
|
||||
106121 0 0 null null 1 106086
|
||||
106122 0 0 null null 1 106087
|
||||
106123 0 0 null null 4 null
|
||||
106124 0 0 null null 1 106089
|
||||
106125 0 0 null null 1 106090
|
||||
106126 0 0 null null 1 106091
|
||||
106127 0 0 null null 4 null
|
||||
107001 1 2 1503#1 10102 4 null
|
||||
107002 0 0 null null 4 null
|
||||
107003 1 2 1503#1 10102 4 null
|
||||
|
|
|
@ -5,11 +5,76 @@ int int mut,int#int,1 int int
|
|||
103 1 50003#50013#50023 2 0
|
||||
104 1 50004#50014#50024 2 0
|
||||
105 1 50005#50015#50025 2 0
|
||||
111 1 100#101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118 2 0
|
||||
112 1 100#101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118 2 0
|
||||
113 1 100#101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118 2 0
|
||||
114 1 100#101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118 2 0
|
||||
115 1 100#101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118 2 0
|
||||
111 2 100#101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118 1 0
|
||||
112 2 101#102#103#104#105#106#107#108#109#110#111#112#113#114#115#116#117#118#51001#51002#51003#51004#51005#51006#51007#51008#51009#51010#51011#51012#51013#51014#51015#51016#51017#51018 1 0
|
||||
113 2 51019#51020#51021#51022#51023#51024#51025#51026#51027#51028#51029#51030#51031#51032#51033#51034#51035#51036#51037#51038#51039#51040#51041#51042#51043#51044#51045#51046#51047#51048#51049#51050#51051#51052#51053#51054#51055#51056#51057#51058#51059#51060#51061#51062#51063#51064#51065#51066#51067#51068#51069#51070#51071#51072 1 0
|
||||
114 2 51073#51074#51075#51076#51077#51078#51079#51080#51081#51082#51083#51084#51085#51086#51087#51088#51089#51090#51091#51092#51093#51094#51095#51096#51097#51098#51099#51100#51101#51102#51103#51104#51105#51106#51107#51108#51109#51110#51111#51112#51113#51114#51115#51116#51117#51118#51119#51120#51121#51122#51123#51124#51125#51126#51127#51128#51129#51130#51131#51132#51133#51134#51135#51136#51137#51138#51139#51140#51141#51142#51143#51144 1 0
|
||||
115 2 51145#51146#51147#51148#51149#51150#51151#51152#51153#51154#51155#51156#51157#51158#51159#51160#51161#51162#51163#51164#51165#51166#51167#51168#51169#51170#51171#51172#51173#51174#51175#51176#51177#51178#51179#51180#51181#51182#51183#51184#51185#51186#51187#51188#51189#51190#51191#51192#51193#51194#51195#51196#51197#51198#51199#51200#51201#51202#51203#51204#51205#51206#51207#51208#51209#51210#51211#51212#51213#51214#51215#51216 1 0
|
||||
501 2 20047#20048#20049#20050#20051#20052 1 0
|
||||
502 2 20036#20037#20039#20043 1 0
|
||||
503 2 20025#20038#20040#20041 1 0
|
||||
504 2 20029#20031#20032#20033 1 0
|
||||
505 2 20024#20030#20042#20045 1 0
|
||||
506 2 20026#20027#20028#20046 1 0
|
||||
507 2 20034#20035#20044 1 0
|
||||
508 2 20001#20007#20010#20021 1 0
|
||||
509 2 20006#20012#20016#20020 1 0
|
||||
510 2 20003#20005#20011#20013 1 0
|
||||
511 2 20002#20004#20019#20022 1 0
|
||||
512 2 20023#20024#20025#20026#20027#20028#20029#20030#20031#20032#20033#20034#20035#20036#20037#20038#20039#20040#20041#20042#20043#20044#20045#20046 1 0
|
||||
513 2 20001#20002#20003#20004#20005#20006#20007#20008#20009#20010#20011#20012#20013#20014#20015#20016#20017#20018#20019#20020#20021#20022 1 0
|
||||
701 1 20001 1 0
|
||||
702 1 20002 1 0
|
||||
703 1 20003 1 0
|
||||
704 1 20004 1 0
|
||||
705 1 20005 1 0
|
||||
706 1 20006 1 0
|
||||
707 1 20007 1 0
|
||||
708 1 20008 1 0
|
||||
709 1 20009 1 0
|
||||
710 1 20010 1 0
|
||||
711 1 20011 1 0
|
||||
712 1 20012 1 0
|
||||
713 1 20013 1 0
|
||||
714 1 20014 1 0
|
||||
715 1 20015 1 0
|
||||
716 1 20016 1 0
|
||||
717 1 20017 1 0
|
||||
718 1 20018 1 0
|
||||
719 1 20019 1 0
|
||||
720 1 20020 1 0
|
||||
721 1 20021 1 0
|
||||
722 1 20022 1 0
|
||||
723 1 20023 1 0
|
||||
724 1 20024 1 0
|
||||
725 1 20025 1 0
|
||||
726 1 20026 1 0
|
||||
727 1 20027 1 0
|
||||
728 1 20028 1 0
|
||||
729 1 20029 1 0
|
||||
730 1 20030 1 0
|
||||
731 1 20031 1 0
|
||||
732 1 20032 1 0
|
||||
733 1 20033 1 0
|
||||
734 1 20034 1 0
|
||||
735 1 20035 1 0
|
||||
736 1 20036 1 0
|
||||
737 1 20037 1 0
|
||||
738 1 20038 1 0
|
||||
739 1 20039 1 0
|
||||
740 1 20040 1 0
|
||||
741 1 20041 1 0
|
||||
742 1 20042 1 0
|
||||
743 1 20043 1 0
|
||||
744 1 20044 1 0
|
||||
745 1 20045 1 0
|
||||
746 1 20046 1 0
|
||||
747 1 20047 1 0
|
||||
748 1 20048 1 0
|
||||
749 1 20049 1 0
|
||||
750 1 20050 1 0
|
||||
751 1 20051 1 0
|
||||
752 1 20052 1 0
|
||||
1001 1 10001 1 0
|
||||
1002 1 10002 1 0
|
||||
1003 1 10003 1 0
|
||||
|
@ -102,29 +167,29 @@ int int mut,int#int,1 int int
|
|||
1321 2 100 1 0
|
||||
1322 2 100 1 0
|
||||
1323 2 100 1 0
|
||||
2001 1 6001#6005#6007#6008 4 0
|
||||
2002 1 6002#6006#6007#6008 4 0
|
||||
2003 1 6003#6005#6007#6008 4 0
|
||||
2004 1 6004#6006#6007#6008 4 0
|
||||
2005 1 6009#6014#6016#6017 4 0
|
||||
2006 1 6010#6015#6016#6017 4 0
|
||||
2007 1 6011#6014#6016#6017 4 0
|
||||
2008 1 6012#6015#6016#6017 4 0
|
||||
2009 1 6013#6014#6016#6017 4 0
|
||||
2010 1 6018#6023#6025#6026 4 0
|
||||
2011 1 6019#6024#6025#6026 4 0
|
||||
2012 1 6020#6023#6025#6026 4 0
|
||||
2013 1 6021#6024#6025#6026 4 0
|
||||
2014 1 6022#6023#6025#6026 4 0
|
||||
2015 1 6027#6032 4 0
|
||||
2016 1 6034#6035 4 0
|
||||
2017 1 6028#6033 4 0
|
||||
2018 1 6034#6035 4 0
|
||||
2019 1 6029#6032 4 0
|
||||
2020 1 6034#6035 4 0
|
||||
2021 1 6030#6033 4 0
|
||||
2022 1 6034#6035 4 0
|
||||
2023 1 6031#6032#6034#6035 4 0
|
||||
2001 1 6001#6005#6007#6008#6036 5 0
|
||||
2002 1 6002#6006#6007#6008#6037 5 0
|
||||
2003 1 6003#6005#6007#6008#6038 5 0
|
||||
2004 1 6004#6006#6007#6008#6039 5 0
|
||||
2005 1 6009#6014#6016#6017#6040 5 0
|
||||
2006 1 6010#6015#6016#6017#6041 5 0
|
||||
2007 1 6011#6014#6016#6017#6042 5 0
|
||||
2008 1 6012#6015#6016#6017#6043 5 0
|
||||
2009 1 6013#6014#6016#6017#6044 5 0
|
||||
2010 1 6018#6023#6025#6026#6045 5 0
|
||||
2011 1 6019#6024#6025#6026#6046 5 0
|
||||
2012 1 6020#6023#6025#6026#6047 5 0
|
||||
2013 1 6021#6024#6025#6026#6048 5 0
|
||||
2014 1 6022#6023#6025#6026#6049 5 0
|
||||
2015 1 6027#6032#6050 5 0
|
||||
2016 1 6034#6035#6051 5 0
|
||||
2017 1 6028#6033#6052 5 0
|
||||
2018 1 6034#6035#6053 5 0
|
||||
2019 1 6029#6032#6054 5 0
|
||||
2020 1 6034#6035#6055 5 0
|
||||
2021 1 6030#6033#6056 5 0
|
||||
2022 1 6034#6035#6057 5 0
|
||||
2023 1 6031#6032#6034#6035#6058 5 0
|
||||
10001 1 1000#2000#103 3 0
|
||||
10101 1 1000#2000 2 0
|
||||
10102 1 1001#2001 2 0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Id ItemId Chance GrowChance RandomMin RandomMax
|
||||
int int int float int int
|
||||
100 3001 0 1.0 0 0
|
||||
100 3001 1 1.0 0 0
|
||||
101 3001 100 1.0 1 1
|
||||
102 3002 100 1.0 1 1
|
||||
103 3003 100 1.0 1 1
|
||||
|
@ -248,6 +248,29 @@ int int int float int int
|
|||
6033 3313 100 1.0 1 1
|
||||
6034 3315 100 1.0 1 1
|
||||
6035 3317 100 1.0 1 1
|
||||
6036 4 100 1.0 100 100
|
||||
6037 4 100 1.0 200 200
|
||||
6038 4 100 1.0 300 300
|
||||
6039 4 100 1.0 400 400
|
||||
6040 4 100 1.0 500 500
|
||||
6041 4 100 1.0 600 600
|
||||
6042 4 100 1.0 700 700
|
||||
6043 4 100 1.0 800 800
|
||||
6044 4 100 1.0 900 900
|
||||
6045 4 100 1.0 1000 1000
|
||||
6046 4 100 1.0 1200 1200
|
||||
6047 4 100 1.0 1400 1400
|
||||
6048 4 100 1.0 1600 1600
|
||||
6049 4 100 1.0 1800 1800
|
||||
6050 4 100 1.0 2000 2000
|
||||
6051 4 100 1.0 2200 2200
|
||||
6052 4 100 1.0 2400 2400
|
||||
6053 4 100 1.0 2600 2600
|
||||
6054 4 100 1.0 2800 2800
|
||||
6055 4 100 1.0 3000 3000
|
||||
6056 4 100 1.0 3200 3200
|
||||
6057 4 100 1.0 3400 3400
|
||||
6058 4 100 1.0 3600 3600
|
||||
10001 1001 100 1.0 12 20
|
||||
10002 1001 100 1.0 24 30
|
||||
10003 1001 100 1.0 35 39
|
||||
|
@ -356,3 +379,271 @@ int int int float int int
|
|||
50023 4 100 1.0 3 3
|
||||
50024 4 100 1.0 5 5
|
||||
50025 4 100 1.0 7 7
|
||||
51001 3101 33 1.0 1 1
|
||||
51002 3102 33 1.0 1 1
|
||||
51003 3103 33 1.0 1 1
|
||||
51004 3104 33 1.0 1 1
|
||||
51005 3105 33 1.0 1 1
|
||||
51006 3106 33 1.0 1 1
|
||||
51007 3107 33 1.0 1 1
|
||||
51008 3108 33 1.0 1 1
|
||||
51009 3109 33 1.0 1 1
|
||||
51010 3110 33 1.0 1 1
|
||||
51011 3111 33 1.0 1 1
|
||||
51012 3112 33 1.0 1 1
|
||||
51013 3113 33 1.0 1 1
|
||||
51014 3114 33 1.0 1 1
|
||||
51015 3115 33 1.0 1 1
|
||||
51016 3116 33 1.0 1 1
|
||||
51017 3117 33 1.0 1 1
|
||||
51018 3118 33 1.0 1 1
|
||||
51019 3001 200 1.0 1 1
|
||||
51020 3002 200 1.0 1 1
|
||||
51021 3003 200 1.0 1 1
|
||||
51022 3004 200 1.0 1 1
|
||||
51023 3005 200 1.0 1 1
|
||||
51024 3006 200 1.0 1 1
|
||||
51025 3007 200 1.0 1 1
|
||||
51026 3008 200 1.0 1 1
|
||||
51027 3009 200 1.0 1 1
|
||||
51028 3010 200 1.0 1 1
|
||||
51029 3011 200 1.0 1 1
|
||||
51030 3012 200 1.0 1 1
|
||||
51031 3013 200 1.0 1 1
|
||||
51032 3014 200 1.0 1 1
|
||||
51033 3015 200 1.0 1 1
|
||||
51034 3016 200 1.0 1 1
|
||||
51035 3017 200 1.0 1 1
|
||||
51036 3018 200 1.0 1 1
|
||||
51037 3101 300 1.0 1 1
|
||||
51038 3102 300 1.0 1 1
|
||||
51039 3103 300 1.0 1 1
|
||||
51040 3104 300 1.0 1 1
|
||||
51041 3105 300 1.0 1 1
|
||||
51042 3106 300 1.0 1 1
|
||||
51043 3107 300 1.0 1 1
|
||||
51044 3108 300 1.0 1 1
|
||||
51045 3109 300 1.0 1 1
|
||||
51046 3110 300 1.0 1 1
|
||||
51047 3111 300 1.0 1 1
|
||||
51048 3112 300 1.0 1 1
|
||||
51049 3113 300 1.0 1 1
|
||||
51050 3114 300 1.0 1 1
|
||||
51051 3115 300 1.0 1 1
|
||||
51052 3116 300 1.0 1 1
|
||||
51053 3117 300 1.0 1 1
|
||||
51054 3118 300 1.0 1 1
|
||||
51055 3201 1000 1.0 1 1
|
||||
51056 3202 1000 1.0 1 1
|
||||
51057 3203 1000 1.0 1 1
|
||||
51058 3204 1000 1.0 1 1
|
||||
51059 3205 1000 1.0 1 1
|
||||
51060 3206 1000 1.0 1 1
|
||||
51061 3207 1000 1.0 1 1
|
||||
51062 3208 1000 1.0 1 1
|
||||
51063 3209 1000 1.0 1 1
|
||||
51064 3210 1000 1.0 1 1
|
||||
51065 3211 1000 1.0 1 1
|
||||
51066 3212 1000 1.0 1 1
|
||||
51067 3213 1000 1.0 1 1
|
||||
51068 3214 1000 1.0 1 1
|
||||
51069 3215 1000 1.0 1 1
|
||||
51070 3216 1000 1.0 1 1
|
||||
51071 3217 1000 1.0 1 1
|
||||
51072 3218 1000 1.0 1 1
|
||||
51073 3001 800 1.0 1 1
|
||||
51074 3002 800 1.0 1 1
|
||||
51075 3003 800 1.0 1 1
|
||||
51076 3004 800 1.0 1 1
|
||||
51077 3005 800 1.0 1 1
|
||||
51078 3006 800 1.0 1 1
|
||||
51079 3007 800 1.0 1 1
|
||||
51080 3008 800 1.0 1 1
|
||||
51081 3009 800 1.0 1 1
|
||||
51082 3010 800 1.0 1 1
|
||||
51083 3011 800 1.0 1 1
|
||||
51084 3012 800 1.0 1 1
|
||||
51085 3013 800 1.0 1 1
|
||||
51086 3014 800 1.0 1 1
|
||||
51087 3015 800 1.0 1 1
|
||||
51088 3016 800 1.0 1 1
|
||||
51089 3017 800 1.0 1 1
|
||||
51090 3018 800 1.0 1 1
|
||||
51091 3101 1000 1.0 1 1
|
||||
51092 3102 1000 1.0 1 1
|
||||
51093 3103 1000 1.0 1 1
|
||||
51094 3104 1000 1.0 1 1
|
||||
51095 3105 1000 1.0 1 1
|
||||
51096 3106 1000 1.0 1 1
|
||||
51097 3107 1000 1.0 1 1
|
||||
51098 3108 1000 1.0 1 1
|
||||
51099 3109 1000 1.0 1 1
|
||||
51100 3110 1000 1.0 1 1
|
||||
51101 3111 1000 1.0 1 1
|
||||
51102 3112 1000 1.0 1 1
|
||||
51103 3113 1000 1.0 1 1
|
||||
51104 3114 1000 1.0 1 1
|
||||
51105 3115 1000 1.0 1 1
|
||||
51106 3116 1000 1.0 1 1
|
||||
51107 3117 1000 1.0 1 1
|
||||
51108 3118 1000 1.0 1 1
|
||||
51109 3201 2000 1.0 1 1
|
||||
51110 3202 2000 1.0 1 1
|
||||
51111 3203 2000 1.0 1 1
|
||||
51112 3204 2000 1.0 1 1
|
||||
51113 3205 2000 1.0 1 1
|
||||
51114 3206 2000 1.0 1 1
|
||||
51115 3207 2000 1.0 1 1
|
||||
51116 3208 2000 1.0 1 1
|
||||
51117 3209 2000 1.0 1 1
|
||||
51118 3210 2000 1.0 1 1
|
||||
51119 3211 2000 1.0 1 1
|
||||
51120 3212 2000 1.0 1 1
|
||||
51121 3213 2000 1.0 1 1
|
||||
51122 3214 2000 1.0 1 1
|
||||
51123 3215 2000 1.0 1 1
|
||||
51124 3216 2000 1.0 1 1
|
||||
51125 3217 2000 1.0 1 1
|
||||
51126 3218 2000 1.0 1 1
|
||||
51127 3301 200 1.0 1 1
|
||||
51128 3302 200 1.0 1 1
|
||||
51129 3303 200 1.0 1 1
|
||||
51130 3304 200 1.0 1 1
|
||||
51131 3305 200 1.0 1 1
|
||||
51132 3306 200 1.0 1 1
|
||||
51133 3307 200 1.0 1 1
|
||||
51134 3308 200 1.0 1 1
|
||||
51135 3309 200 1.0 1 1
|
||||
51136 3310 200 1.0 1 1
|
||||
51137 3311 200 1.0 1 1
|
||||
51138 3312 200 1.0 1 1
|
||||
51139 3313 200 1.0 1 1
|
||||
51140 3314 200 1.0 1 1
|
||||
51141 3315 200 1.0 1 1
|
||||
51142 3316 200 1.0 1 1
|
||||
51143 3317 200 1.0 1 1
|
||||
51144 3318 200 1.0 1 1
|
||||
51145 3001 600 1.0 1 1
|
||||
51146 3002 600 1.0 1 1
|
||||
51147 3003 600 1.0 1 1
|
||||
51148 3004 600 1.0 1 1
|
||||
51149 3005 600 1.0 1 1
|
||||
51150 3006 600 1.0 1 1
|
||||
51151 3007 600 1.0 1 1
|
||||
51152 3008 600 1.0 1 1
|
||||
51153 3009 600 1.0 1 1
|
||||
51154 3010 600 1.0 1 1
|
||||
51155 3011 600 1.0 1 1
|
||||
51156 3012 600 1.0 1 1
|
||||
51157 3013 600 1.0 1 1
|
||||
51158 3014 600 1.0 1 1
|
||||
51159 3015 600 1.0 1 1
|
||||
51160 3016 600 1.0 1 1
|
||||
51161 3017 600 1.0 1 1
|
||||
51162 3018 600 1.0 1 1
|
||||
51163 3101 600 1.0 1 1
|
||||
51164 3102 600 1.0 1 1
|
||||
51165 3103 600 1.0 1 1
|
||||
51166 3104 600 1.0 1 1
|
||||
51167 3105 600 1.0 1 1
|
||||
51168 3106 600 1.0 1 1
|
||||
51169 3107 600 1.0 1 1
|
||||
51170 3108 600 1.0 1 1
|
||||
51171 3109 600 1.0 1 1
|
||||
51172 3110 600 1.0 1 1
|
||||
51173 3111 600 1.0 1 1
|
||||
51174 3112 600 1.0 1 1
|
||||
51175 3113 600 1.0 1 1
|
||||
51176 3114 600 1.0 1 1
|
||||
51177 3115 600 1.0 1 1
|
||||
51178 3116 600 1.0 1 1
|
||||
51179 3117 600 1.0 1 1
|
||||
51180 3118 600 1.0 1 1
|
||||
51181 3201 400 1.0 1 1
|
||||
51182 3202 400 1.0 1 1
|
||||
51183 3203 400 1.0 1 1
|
||||
51184 3204 400 1.0 1 1
|
||||
51185 3205 400 1.0 1 1
|
||||
51186 3206 400 1.0 1 1
|
||||
51187 3207 400 1.0 1 1
|
||||
51188 3208 400 1.0 1 1
|
||||
51189 3209 400 1.0 1 1
|
||||
51190 3210 400 1.0 1 1
|
||||
51191 3211 400 1.0 1 1
|
||||
51192 3212 400 1.0 1 1
|
||||
51193 3213 400 1.0 1 1
|
||||
51194 3214 400 1.0 1 1
|
||||
51195 3215 400 1.0 1 1
|
||||
51196 3216 400 1.0 1 1
|
||||
51197 3217 400 1.0 1 1
|
||||
51198 3218 400 1.0 1 1
|
||||
51199 3301 200 1.0 1 1
|
||||
51200 3302 200 1.0 1 1
|
||||
51201 3303 200 1.0 1 1
|
||||
51202 3304 200 1.0 1 1
|
||||
51203 3305 200 1.0 1 1
|
||||
51204 3306 200 1.0 1 1
|
||||
51205 3307 200 1.0 1 1
|
||||
51206 3308 200 1.0 1 1
|
||||
51207 3309 200 1.0 1 1
|
||||
51208 3310 200 1.0 1 1
|
||||
51209 3311 200 1.0 1 1
|
||||
51210 3312 200 1.0 1 1
|
||||
51211 3313 200 1.0 1 1
|
||||
51212 3314 200 1.0 1 1
|
||||
51213 3315 200 1.0 1 1
|
||||
51214 3316 200 1.0 1 1
|
||||
51215 3317 200 1.0 1 1
|
||||
51216 3318 200 1.0 1 1
|
||||
20001 10001 100 1.0 1 1
|
||||
20002 10002 100 1.0 1 1
|
||||
20003 10003 100 1.0 1 1
|
||||
20004 10004 100 1.0 1 1
|
||||
20005 10005 100 1.0 1 1
|
||||
20006 10006 100 1.0 1 1
|
||||
20007 10007 100 1.0 1 1
|
||||
20008 10008 100 1.0 1 1
|
||||
20009 10009 100 1.0 1 1
|
||||
20010 10010 100 1.0 1 1
|
||||
20011 10011 100 1.0 1 1
|
||||
20012 10012 100 1.0 1 1
|
||||
20013 10013 100 1.0 1 1
|
||||
20014 10014 100 1.0 1 1
|
||||
20015 10015 100 1.0 1 1
|
||||
20016 10016 100 1.0 1 1
|
||||
20017 10017 100 1.0 1 1
|
||||
20018 10018 100 1.0 1 1
|
||||
20019 10019 100 1.0 1 1
|
||||
20020 10020 100 1.0 1 1
|
||||
20021 10021 100 1.0 1 1
|
||||
20022 10022 100 1.0 1 1
|
||||
20023 10023 100 1.0 1 1
|
||||
20024 10024 100 1.0 1 1
|
||||
20025 10025 100 1.0 1 1
|
||||
20026 10026 100 1.0 1 1
|
||||
20027 10027 100 1.0 1 1
|
||||
20028 10028 100 1.0 1 1
|
||||
20029 10029 100 1.0 1 1
|
||||
20030 10030 100 1.0 1 1
|
||||
20031 10031 100 1.0 1 1
|
||||
20032 10032 100 1.0 1 1
|
||||
20033 10033 100 1.0 1 1
|
||||
20034 10034 100 1.0 1 1
|
||||
20035 10035 100 1.0 1 1
|
||||
20036 10036 100 1.0 1 1
|
||||
20037 10037 100 1.0 1 1
|
||||
20038 10038 100 1.0 1 1
|
||||
20039 10039 100 1.0 1 1
|
||||
20040 10040 100 1.0 1 1
|
||||
20041 10041 100 1.0 1 1
|
||||
20042 10042 100 1.0 1 1
|
||||
20043 10043 100 1.0 1 1
|
||||
20044 10044 100 1.0 1 1
|
||||
20045 10045 100 1.0 1 1
|
||||
20046 10046 100 1.0 1 1
|
||||
20047 10047 100 1.0 1 1
|
||||
20048 10048 100 1.0 1 1
|
||||
20049 10049 100 1.0 1 1
|
||||
20050 10050 100 1.0 1 1
|
||||
20051 10051 100 1.0 1 1
|
||||
20052 10052 100 1.0 1 1
|
||||
|
|
|
@ -662,93 +662,93 @@ int mut,float#float,2 mut,int#int,2 mut,float#float,2 float
|
|||
500108 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0
|
||||
500109 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0
|
||||
500110 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0
|
||||
500201 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500202 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500203 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500204 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500205 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500206 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500207 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500208 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500209 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500210 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
|
||||
500301 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500302 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500303 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500304 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500305 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500306 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500307 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500308 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500309 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500310 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
|
||||
500401 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500402 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500403 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500404 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500405 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500406 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500407 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500408 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500409 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500410 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
|
||||
500501 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500502 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500503 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500504 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500505 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500506 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500507 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500508 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500509 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500510 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
|
||||
500601 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500602 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500603 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500604 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500605 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500606 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500607 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500608 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500609 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500610 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
|
||||
500701 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500702 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500703 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500704 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500705 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500706 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500707 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500708 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500709 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500710 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
|
||||
500801 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500802 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500803 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500804 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500805 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500806 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500807 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500808 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500809 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500810 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
|
||||
500901 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500902 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500903 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500904 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500905 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500906 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500907 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500908 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500909 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
500910 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
|
||||
501001 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501002 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501003 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501004 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501005 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501006 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501007 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501008 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501009 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
501010 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
|
||||
500201 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500202 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500203 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500204 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500205 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500206 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500207 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500208 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500209 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500210 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2
|
||||
500301 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500302 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500303 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500304 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500305 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500306 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500307 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500308 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500309 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500310 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3
|
||||
500401 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500402 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500403 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500404 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500405 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500406 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500407 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500408 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500409 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500410 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4
|
||||
500501 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500502 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500503 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500504 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500505 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500506 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500507 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500508 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500509 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500510 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5
|
||||
500601 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500602 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500603 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500604 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500605 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500606 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500607 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500608 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500609 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500610 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6
|
||||
500701 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500702 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500703 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500704 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500705 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500706 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500707 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500708 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500709 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500710 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7
|
||||
500801 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500802 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500803 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500804 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500805 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500806 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500807 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500808 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500809 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500810 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8
|
||||
500901 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500902 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500903 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500904 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500905 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500906 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500907 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500908 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500909 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
500910 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9
|
||||
501001 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501002 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501003 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501004 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501005 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501006 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501007 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501008 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501009 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
501010 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10
|
||||
|
|
|
@ -25,14 +25,62 @@ local Random = Random
|
|||
local _fightData
|
||||
local _optionData
|
||||
|
||||
function PrintTable(tb)
|
||||
local function newPairs(tbl, func)
|
||||
if func == nil then
|
||||
return pairs(tbl)
|
||||
end
|
||||
|
||||
local ary = {}
|
||||
local lastUsed = 0
|
||||
for key --[[, val--]] in pairs(tbl) do
|
||||
if (lastUsed == 0) then
|
||||
ary[1] = key
|
||||
else
|
||||
local done = false
|
||||
for j=1,lastUsed do -- 进行插入排序
|
||||
if (func(key, ary[j]) == true) then
|
||||
arrayInsert( ary, key, j )
|
||||
done = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if (done == false) then
|
||||
ary[lastUsed + 1] = key
|
||||
end
|
||||
end
|
||||
lastUsed = lastUsed + 1
|
||||
end
|
||||
|
||||
-- 定义并返回迭代器
|
||||
local i = 0
|
||||
local iter = function ()
|
||||
i = i + 1
|
||||
if ary[i] == nil then
|
||||
return nil
|
||||
else
|
||||
return ary[i], tbl[ary[i]]
|
||||
end
|
||||
end
|
||||
return iter
|
||||
end
|
||||
|
||||
local function PrintTable(tb)
|
||||
local indent_str = "{"
|
||||
for k,v in pairs(tb) do
|
||||
indent_str = string.format("%s%s=%s", indent_str,
|
||||
type(k) == "number" and string.format("[%d]",k) or tostring(k),
|
||||
type(v) == "table" and "" or tostring(v)..",")
|
||||
for k=1, #tb do
|
||||
local v = tb[k]
|
||||
if type(v) == "table" then
|
||||
indent_str = indent_str .. PrintTable(v)
|
||||
else
|
||||
indent_str = indent_str .. tostring(v)..","
|
||||
end
|
||||
end
|
||||
for k,v in newPairs(tb) do
|
||||
if type(k) ~= "number" then
|
||||
if type(v) == "table" then
|
||||
indent_str = string.format("%s%s=%s", indent_str, tostring(k), PrintTable(v))
|
||||
else
|
||||
indent_str = string.format("%s%s=%s", indent_str, tostring(k), tostring(v)..",")
|
||||
end
|
||||
end
|
||||
end
|
||||
indent_str = indent_str .. "},"
|
||||
|
@ -48,19 +96,36 @@ local function error( err )
|
|||
os.date("%H"),
|
||||
os.date("%M"),
|
||||
os.date("%S"))
|
||||
local file = io.open("LogError/"..time..".txt", "a")
|
||||
file:write("fightData:\n"..PrintTable(_fightData).."\n")
|
||||
file:write("optionData:\n"..PrintTable(_optionData).."\n")
|
||||
local file = io.open("luafight/LogError/"..time..".txt", "a")
|
||||
--file:write("fightData:\n"..PrintTable(_fightData).."\n")
|
||||
--file:write("optionData:\n"..PrintTable(_optionData).."\n")
|
||||
file:write("error:\n"..debug.traceback(err).."\n")
|
||||
io.close(file)
|
||||
end
|
||||
|
||||
local function generateRecordFile()
|
||||
local time = string.format("%d-%d-%d-%d-%d-%d",
|
||||
os.date("%Y"),
|
||||
os.date("%m"),
|
||||
os.date("%d"),
|
||||
os.date("%H"),
|
||||
os.date("%M"),
|
||||
os.date("%S"))
|
||||
local file = io.open("luafight/BattleRecord/"..time..".txt", "a")
|
||||
local record = BattleLogic.GetRecord()
|
||||
for i=1, #record do
|
||||
file:write(record[i].."\n")
|
||||
end
|
||||
io.close(file)
|
||||
end
|
||||
|
||||
function BattleMain.Execute(seed, fightData, optionData)
|
||||
_fightData = fightData
|
||||
_optionData = optionData
|
||||
|
||||
print(PrintTable(fightData))
|
||||
--该开关用于输出战斗过程中的日志,用于验证前后端是否出现战斗不同步
|
||||
BattleLogic.IsOpenBattleRecord = false
|
||||
BattleLogic.IsOpenBattleRecord = true
|
||||
|
||||
if xpcall(function ()
|
||||
Random.SetSeed(seed)
|
||||
|
@ -86,7 +151,7 @@ function BattleMain.Execute(seed, fightData, optionData)
|
|||
resultList.result = BattleLogic.Result
|
||||
|
||||
if BattleLogic.IsOpenBattleRecord then
|
||||
BattleLogic.GenerateRecordFile()
|
||||
generateRecordFile()
|
||||
end
|
||||
|
||||
-- print -----------------------------------------
|
||||
|
@ -95,9 +160,12 @@ function BattleMain.Execute(seed, fightData, optionData)
|
|||
--end
|
||||
--print("最终运行帧数:"..BattleLogic.CurFrame())
|
||||
--print("result:"..BattleLogic.Result)
|
||||
|
||||
return resultList
|
||||
end
|
||||
return { result = -1 }
|
||||
end
|
||||
--BattleMain.Execute(1553167956, {playerData={{professionId=3,passivity={},type=1,skill={0,{40001,0.7,{1,2.3,2,},},{30011,0.7,{4,9,0.2,4,1,},{4,10,0.2,4,1,},},},superSkill={1.6,{20211,0.7,{1,3.3,2,},{15,1.98,2,1.98,},},},roleId=10022,camp=0,property={1,1676,1678,248,167,200,173,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=5,passivity={},type=1,skill={0,{40001,0.7,{11,0.93,2,2,0.2,},},},superSkill={3,{20000,0.7,{2,1.06,2,},{3,0.6,1,4,},},},roleId=10008,camp=0,property={1,2206,2208,221,193,232,130,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=4,passivity={},type=1,skill={0,{40001,0.7,{1,1.35,2,},},{30011,0.7,{3,0,0,5,},},},superSkill={2.5,{20000,0.7,{14,1.55,2,1,10023,0.2,},},},roleId=10023,camp=0,property={1,1439,1441,284,131,157,168,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=1,passivity={},type=1,skill={0,{40001,0.7,{1,1,1,},},{30011,0.7,{4,9,0.1,5,1,},{4,10,0.1,5,1,},},},superSkill={2.3,{20312,0.7,{19,1.35,1,0.5,5,},},},roleId=10013,camp=0,property={1,1678,1680,246,194,162,163,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=3,passivity={},type=1,skill={0,{40001,0.7,{1,2.3,2,},},{30011,0.7,{4,9,0.2,4,1,},{4,10,0.2,4,1,},},},superSkill={1.6,{20211,0.7,{1,3.3,2,},{15,1.98,2,1.98,},},},roleId=10022,camp=0,property={17,2732,2734,401,272,326,308,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},teamSkill={},},enemyData={{{professionId=0,passivity={},type=2,skill={0,{20013,0.7,{1,0.45,1,},},},superSkill={},roleId=1,camp=1,property={0,483,483,260,61,61,240,0,0,0.3,0.3,0.2,1.5,1,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=0,passivity={},type=2,skill={0,{20013,0.7,{1,0.45,1,},},},superSkill={},roleId=2,camp=1,property={0,483,483,260,61,61,80,0,0,0.3,0.3,0.2,1.5,1,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=0,passivity={},type=2,skill={0,{20013,0.7,{1,0.45,1,},},},superSkill={},roleId=3,camp=1,property={0,483,483,260,61,61,7,0,0,0.3,0.3,0.2,1.5,1,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},teamSkill={},},},})
|
||||
--BattleMain.Execute(1553167956, {playerData={{professionId=4,passivity={},type=1,skill={0,{40001,0.7,{1,1.35,2,},},{30011,0.7,{3,0,0,5,},},},superSkill={2.5,{20000,0.7,{14,1.55,2,1,10023,0.2,},},},roleId=10023,camp=0,property={1,1439,1441,284,131,157,168,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=3,passivity={},type=1,skill={0,{40001,0.7,{1,2.3,2,},},{30011,0.7,{4,9,0.2,4,1,},{4,9,0.2,4,1,},},},superSkill={1.6,{20211,0.7,{1,3.3,2,},{15,1.98,2,1.98,},},},roleId=10022,camp=0,property={1,1676,1678,248,167,200,173,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=2,passivity={},type=1,skill={0,{40001,0.7,{1,1.05,2,},{4,4,5,5,3,},},},superSkill={2.3,{20000,0.7,{2,1.89,2,},},{20012,0.7,{3,1,5,5,},},},roleId=10021,camp=0,property={1,1920,1922,209,170,204,178,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=5,passivity={},type=1,skill={0,{40001,0.7,{11,0.93,2,2,0.2,},},},superSkill={3,{20000,0.7,{2,1.06,2,},{3,0.6,1,4,},},},roleId=10008,camp=0,property={1,2206,2208,221,193,232,130,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=1,passivity={},type=1,skill={0,{40001,0.7,{1,1,1,},},{30011,0.7,{4,9,0.1,5,1,},{4,9,0.1,5,1,},},},superSkill={2.3,{20312,0.7,{19,1.35,1,0.5,5,},},},roleId=10013,camp=0,property={1,1678,1680,246,194,162,163,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},teamSkill={{3,{20012,0.7,{26,600,},{27,100,4,},},{10014,0.7,{25,2,0.1,4,},},},},},enemyData={{{professionId=0,passivity={},type=2,skill={0,{20011,0.7,{1,1,1,},{3,0.3,1,3,},},},superSkill={},roleId=14,camp=1,property={0,772,772,260,61,61,80,0,0,0.3,0.3,0.2,1.5,1,0,0,0,0,0,0,0,0,0,0,2,2,},quality=1,},{professionId=0,passivity={},type=2,skill={0,{20013,0.7,{1,0.45,1,},},},superSkill={},roleId=1,camp=1,property={0,483,483,260,61,61,240,0,0,0.3,0.3,0.2,1.5,1,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},{professionId=0,passivity={},type=2,skill={0,{20013,0.7,{1,0.45,1,},},},superSkill={},roleId=3,camp=1,property={0,483,483,260,61,61,7,0,0,0.3,0.3,0.2,1.5,1,0,0,0,0,0,0,0,0,0,0,0,0,},quality=1,},teamSkill={},},},})
|
||||
|
||||
return BattleMain
|
|
@ -42,30 +42,18 @@ function Buff.Create(caster, type, duration, ...)
|
|||
return buff
|
||||
end
|
||||
|
||||
local queuePool = BattleObjectPool.New(function ()
|
||||
return BattleQueue.New()
|
||||
end)
|
||||
local dicPool = BattleObjectPool.New(function ()
|
||||
return BattleDictionary.New()
|
||||
end)
|
||||
BuffManager = {}
|
||||
BuffManager.__index = BuffManager
|
||||
|
||||
function BuffManager.New()
|
||||
local instance = {owner=0, buffQueue = queuePool:Get(), buffList = dicPool:Get()}
|
||||
local instance = {owner=0, buffQueue = BattleQueue.New(), buffList = BattleDictionary.New()}
|
||||
setmetatable(instance, BuffManager)
|
||||
return instance
|
||||
end
|
||||
|
||||
function BuffManager:Init(owner)
|
||||
self.owner = owner
|
||||
end
|
||||
|
||||
function BuffManager:Dispose(owner)
|
||||
self.buffQueue:Clear()
|
||||
self.buffList:Clear()
|
||||
queuePool:Put(self.buffQueue)
|
||||
dicPool:Put(self.buffList)
|
||||
self.owner = owner
|
||||
end
|
||||
|
||||
|
|
|
@ -245,12 +245,13 @@ local effectList = {
|
|||
local f1 = args[1]
|
||||
local dt = args[2]
|
||||
local f2 = args[3]
|
||||
|
||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval)
|
||||
if caster.camp == 0 and target.camp == 1 then
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval)
|
||||
end
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local dmg = BattleUtil.CalDamage(caster, target, dt, f1)
|
||||
local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f1)
|
||||
if target.isDead then
|
||||
local arr = BattleLogic.Query(function (r) return r.camp ~= caster.camp and r.uid ~= target.uid end)
|
||||
for i=1, #arr do
|
||||
|
@ -314,25 +315,6 @@ local effectList = {
|
|||
end
|
||||
end)
|
||||
end,
|
||||
--造成[a]%的[b]伤害,若暴击,则减少下次发动技能CD[c]秒。
|
||||
--a[float],b[伤害类型],c[float]
|
||||
[18] = function(caster, target, args, interval)
|
||||
local f1 = args[1]
|
||||
local dt = args[2]
|
||||
local f2 = args[3]
|
||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval)
|
||||
if caster.camp == 0 and target.camp == 1 then
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval)
|
||||
end
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local d, crit = BattleUtil.CalDamage(caster, target, dt, f1)
|
||||
if crit then
|
||||
if target.skill then
|
||||
target.skill.sp = target.skill.sp + floor(f2 * BattleLogic.GameFrameRate)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end,
|
||||
--造成[a]%的[b]伤害,有[c]%的概率追加伤害,最多可追加[d]次。(0无限追加)
|
||||
--a[float],b[伤害类型],c[float],d[int]
|
||||
[19] = function(caster, target, args, interval)
|
||||
|
@ -486,6 +468,24 @@ local effectList = {
|
|||
target:AddBuff(Buff.Create(caster, BuffName.DOT, d2, 1, 0, d1, 1))
|
||||
end)
|
||||
end,
|
||||
--造成[a]%的[b]伤害,对[c]造成额外[d]%伤害
|
||||
--a[float],b[伤害类型,]c[持续伤害状态],d[float]
|
||||
[28] = function(caster, target, args, interval)
|
||||
local f1 = args[1]
|
||||
local dt = args[2]
|
||||
local dot = args[3]
|
||||
local f2 = args[4]
|
||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval)
|
||||
if caster.camp == 0 and target.camp == 1 then
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval)
|
||||
end
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
if target.BuffMgr:HasBuff(BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then
|
||||
f1 = f1 + f2
|
||||
end
|
||||
BattleUtil.CalDamage(caster, target, dt, f1)
|
||||
end)
|
||||
end,
|
||||
}
|
||||
|
||||
return effectList
|
|
@ -1,6 +1,7 @@
|
|||
RoleData = {}
|
||||
RoleData.__index = RoleData
|
||||
local max = math.max
|
||||
local floor = math.floor
|
||||
function RoleData.New()
|
||||
local instance = {role=0, data={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
|
||||
setmetatable(instance, RoleData)
|
||||
|
@ -10,7 +11,7 @@ end
|
|||
function RoleData:Init(role, data)
|
||||
self.role = role
|
||||
for i=1, #data do
|
||||
self.data[i] = data[i]
|
||||
self.data[i] = floor(data[i] * 100000 + 0.5) / 100000 --进行精度处理,避免前后端计算不一致
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -2,19 +2,19 @@ local effect = require("Modules/Battle/Logic/Base/Effect")
|
|||
local floor = math.floor
|
||||
local max = math.max
|
||||
local min = math.min
|
||||
local gameFrameRate = BattleLogic.GameFrameRate
|
||||
--local BattleConst = BattleConst
|
||||
--local RoleDataName = RoleDataName
|
||||
--local BattleEventName = BattleEventName
|
||||
|
||||
local chooseList = {}
|
||||
local function chooseTarget(role, chooseId, exceptList)
|
||||
local chooseType = floor(chooseId / 10000) % 10
|
||||
local chooseWeight = floor(chooseId / 100) % 10
|
||||
local sort = floor(chooseId / 10) % 10
|
||||
local exceptNum = #exceptList
|
||||
local exceptNum = exceptList.size
|
||||
local num = chooseId % 10
|
||||
|
||||
local arr = BattleLogic.Query()
|
||||
local arr
|
||||
if chooseType == 1 then
|
||||
arr = BattleLogic.Query(function (r)
|
||||
for i=1, exceptList.size do
|
||||
|
@ -26,8 +26,7 @@ local function chooseTarget(role, chooseId, exceptList)
|
|||
end)
|
||||
elseif chooseType == 2 then
|
||||
if role.lockTarget and num == 1 then
|
||||
arr[1] = role.lockTarget
|
||||
return arr
|
||||
return {role.lockTarget}
|
||||
end
|
||||
arr = BattleLogic.Query(function (r)
|
||||
for i=1, exceptList.size do
|
||||
|
@ -38,69 +37,69 @@ local function chooseTarget(role, chooseId, exceptList)
|
|||
return r.camp ~= role.camp
|
||||
end)
|
||||
elseif chooseType == 3 then
|
||||
arr[1] = role
|
||||
return arr
|
||||
return {role}
|
||||
elseif chooseType == 4 then
|
||||
return {BattleLogic.GetAggro(role.camp)}
|
||||
else
|
||||
arr = BattleLogic.Query()
|
||||
end
|
||||
|
||||
BattleUtil.RandomList(arr)
|
||||
if chooseWeight == 0 then
|
||||
BattleUtil.RandomList(arr)
|
||||
elseif chooseWeight == 1 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.Hp)
|
||||
local r2 = b:GetRoleData(RoleDataName.Hp)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
elseif chooseWeight == 2 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.Hp) / a:GetRoleData(RoleDataName.MaxHp)
|
||||
local r2 = b:GetRoleData(RoleDataName.Hp) / b:GetRoleData(RoleDataName.MaxHp)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
elseif chooseWeight == 3 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.Attack)
|
||||
local r2 = b:GetRoleData(RoleDataName.Attack)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
elseif chooseWeight == 4 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.PhysicalDefence)
|
||||
local r2 = b:GetRoleData(RoleDataName.PhysicalDefence)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
elseif chooseWeight == 5 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.PhysicalDefence)
|
||||
local r2 = b:GetRoleData(RoleDataName.PhysicalDefence)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
elseif chooseWeight == 6 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.MagicDefence)
|
||||
local r2 = b:GetRoleData(RoleDataName.MagicDefence)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
elseif chooseWeight == 7 then
|
||||
table.sort(arr, function(a, b)
|
||||
BattleUtil.Sort(arr, function(a, b)
|
||||
local r1 = a:GetRoleData(RoleDataName.MagicDefence)
|
||||
local r2 = b:GetRoleData(RoleDataName.MagicDefence)
|
||||
return sort == 1 and r1 < r2 or r1 > r2
|
||||
end)
|
||||
end
|
||||
|
||||
for i=1, #chooseList do
|
||||
chooseList[i] = nil
|
||||
if exceptNum > 0 then
|
||||
local count = #arr
|
||||
for i=1, min(exceptNum, count) do
|
||||
for j=count, i+1, -1 do
|
||||
arr[j] = arr[j-1]
|
||||
end
|
||||
arr[i] = exceptList.buffer[i]
|
||||
end
|
||||
end
|
||||
--local chooseList = {}
|
||||
for i=1, exceptNum do
|
||||
chooseList[i] = exceptList[i]
|
||||
end
|
||||
for i=1+exceptNum, num == 0 and #arr or min(#arr, num) do
|
||||
chooseList[i] = arr[i]
|
||||
end
|
||||
arr = chooseList
|
||||
return arr
|
||||
end
|
||||
local effectPool = BattleObjectPool.New(function ()
|
||||
|
@ -151,13 +150,14 @@ end
|
|||
|
||||
function Skill:Dispose()
|
||||
local effectGroup
|
||||
for i=1, self.effectList.size do
|
||||
effectGroup = self.effectList.buffer[i]
|
||||
while self.effectList.size > 0 do
|
||||
effectGroup = self.effectList.buffer[self.effectList.size]
|
||||
for k=1, #effectGroup[3] do
|
||||
effectPool:Put(effectGroup[3][k])
|
||||
effectGroup[3][k] = nil
|
||||
end
|
||||
effectGroupPool:Put(effectGroup)
|
||||
self.effectList:Remove(self.effectList.size)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -196,6 +196,12 @@ function Skill:ResetCD()
|
|||
BattleLogic.SetAggro(self.owner, 0)
|
||||
end
|
||||
|
||||
local function takeEffect(type, caster, target, args, interval)
|
||||
effect[type](caster, target, args, interval)
|
||||
if BattleLogic.IsOpenBattleRecord then
|
||||
BattleLogic.RecordEffect(caster, target, type, args, interval)
|
||||
end
|
||||
end
|
||||
function Skill:Cast()
|
||||
for i=1, self.effectList.size do
|
||||
local effectGroup = self.effectList.buffer[i]
|
||||
|
@ -217,7 +223,7 @@ function Skill:Cast()
|
|||
for j=1, #arr do
|
||||
for k=1, #effectGroup[3] do
|
||||
local v = effectGroup[3][k]
|
||||
effect[v[1]](self.owner, arr[j], v[2], duration)
|
||||
takeEffect(v[1], self.owner, arr[j], v[2], duration)
|
||||
end
|
||||
end
|
||||
elseif chooseId == 20000 then --敌方aoe
|
||||
|
@ -225,14 +231,14 @@ function Skill:Cast()
|
|||
for j=1, #arr do
|
||||
for k=1, #effectGroup[3] do
|
||||
local v = effectGroup[3][k]
|
||||
effect[v[1]](self.owner, arr[j], v[2], duration)
|
||||
takeEffect(v[1], self.owner, arr[j], v[2], duration)
|
||||
end
|
||||
end
|
||||
elseif nn == 1 or nn == 3 then
|
||||
for j=1, #arr do
|
||||
for k=1, #effectGroup[3] do
|
||||
local v = effectGroup[3][k]
|
||||
effect[v[1]](self.owner, arr[j], v[2], duration)
|
||||
takeEffect(v[1], self.owner, arr[j], v[2], duration)
|
||||
end
|
||||
end
|
||||
else
|
||||
|
@ -252,7 +258,7 @@ function Skill:Cast()
|
|||
r = arr[i]
|
||||
for k=1, #effectGroup[3] do
|
||||
local v = effectGroup[3][k]
|
||||
effect[v[1]](self.owner, r, v[2], cd)
|
||||
takeEffect(v[1], self.owner, r, v[2], cd)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
@ -265,7 +271,7 @@ function Skill:Cast()
|
|||
self.choosedList:Add(r)
|
||||
for k=1, #effectGroup[3] do
|
||||
local v = effectGroup[3][k]
|
||||
effect[v[1]](self.owner, r, v[2], cd)
|
||||
takeEffect(v[1], self.owner, r, v[2], cd)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
BattleLogic = {}
|
||||
|
||||
local floor = math.floor
|
||||
local min = math.min
|
||||
local max = math.min
|
||||
local objList = BattleDictionary.New()
|
||||
|
||||
local skillList
|
||||
|
||||
local curUid
|
||||
local curBuffId
|
||||
local curFrame
|
||||
|
@ -14,8 +14,6 @@ local enemyMP
|
|||
|
||||
local playerAggro
|
||||
local enemyAggro
|
||||
local playerAggroChangable
|
||||
local enemyAggroChangable
|
||||
|
||||
local playerSkillUsable
|
||||
local enemySkillUsable
|
||||
|
@ -74,8 +72,6 @@ function BattleLogic.Init(data, optionData)
|
|||
|
||||
BattleLogic.Clear()
|
||||
|
||||
skillList = {}
|
||||
|
||||
curUid = 0
|
||||
curBuffId = 0
|
||||
curFrame = 0
|
||||
|
@ -86,9 +82,6 @@ function BattleLogic.Init(data, optionData)
|
|||
playerTeamSkillIndex = 1
|
||||
enemyTeamSkillIndex = 1
|
||||
|
||||
playerAggroChangable = true
|
||||
enemyAggroChangable = true
|
||||
|
||||
playerSkillUsable = true
|
||||
enemySkillUsable = true
|
||||
|
||||
|
@ -147,9 +140,9 @@ end
|
|||
|
||||
function BattleLogic.AddMP(camp, mp)
|
||||
if camp == 0 then
|
||||
playerMP = math.min(playerMP + mp, 100)
|
||||
playerMP = min(playerMP + mp, 100)
|
||||
else
|
||||
enemyMP = math.min(playerMP + mp, 100)
|
||||
enemyMP = min(playerMP + mp, 100)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -165,7 +158,6 @@ end
|
|||
function BattleLogic.AddRole(roleData)
|
||||
curUid = curUid + 1
|
||||
local data = rolePool:Get()
|
||||
--rolePool:Get(curUid, roleData)
|
||||
data:Init(curUid, roleData)
|
||||
objList:Add(curUid, data)
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.AddRole, data)
|
||||
|
@ -188,24 +180,12 @@ end
|
|||
|
||||
function BattleLogic.SetAggro(role, duration)
|
||||
if role.camp == 1 then
|
||||
if playerAggroChangable then
|
||||
playerAggro = role
|
||||
if enemySkillUsable then
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, role, math.max(duration/2, 0.3))
|
||||
end
|
||||
playerAggroChangable = false
|
||||
BattleLogic.WaitForTrigger(duration-BattleLogic.GameDeltaTime, function () --减去一帧避免卡点
|
||||
playerAggroChangable = true
|
||||
end)
|
||||
playerAggro = role
|
||||
if enemySkillUsable then
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, role, max(duration/2, 0.3))
|
||||
end
|
||||
else
|
||||
if enemyAggroChangable then
|
||||
enemyAggro = role
|
||||
enemyAggroChangable = false
|
||||
BattleLogic.WaitForTrigger(duration-BattleLogic.GameDeltaTime, function () --减去一帧避免卡点
|
||||
enemyAggroChangable = true
|
||||
end)
|
||||
end
|
||||
enemyAggro = role
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -252,10 +232,15 @@ function BattleLogic.GetSkillUsable(camp)
|
|||
end
|
||||
|
||||
function BattleLogic.WaitForTrigger(delayTime, action)
|
||||
delayTime = floor(delayTime * 100000 + 0.5) / 100000 --进行精度处理,避免前后端计算不一致
|
||||
local delayFrame = floor(delayTime * BattleLogic.GameFrameRate + 0.5)
|
||||
local item = actionPool:Get()
|
||||
item[1] = curFrame + floor(delayTime * BattleLogic.GameFrameRate + 0.5)
|
||||
item[1] = curFrame + delayFrame
|
||||
item[2] = action
|
||||
tbActionList:Add(item)
|
||||
if BattleLogic.IsOpenBattleRecord then
|
||||
BattleLogic.RecordDelayTrigger(delayTime, curFrame + delayFrame)
|
||||
end
|
||||
end
|
||||
|
||||
function BattleLogic.AddOption(opType, opArg)
|
||||
|
@ -284,12 +269,8 @@ function BattleLogic.CurFrame()
|
|||
return curFrame
|
||||
end
|
||||
|
||||
local list = {}
|
||||
function BattleLogic.Query(func, inCludeDeadRole)
|
||||
for i=1, #list do
|
||||
list[i] = nil
|
||||
end
|
||||
--local list = {}
|
||||
local list = {}
|
||||
local index = 1
|
||||
if func then
|
||||
for i=1, objList.size do
|
||||
|
@ -310,24 +291,20 @@ function BattleLogic.BattleEnd(result)
|
|||
end
|
||||
|
||||
function BattleLogic.Clear()
|
||||
local index = 1
|
||||
while index <= objList.size do
|
||||
BattleLogic.RemoveObj(objList.vList[index].uid)
|
||||
while objList.size > 0 do
|
||||
BattleLogic.RemoveObj(objList.vList[objList.size].uid)
|
||||
end
|
||||
index = 1
|
||||
while index <= tbActionList.size do
|
||||
actionPool:Put(tbActionList.buffer[index])
|
||||
tbActionList:Remove(index)
|
||||
while tbActionList.size > 0 do
|
||||
actionPool:Put(tbActionList.buffer[tbActionList.size])
|
||||
tbActionList:Remove(tbActionList.size)
|
||||
end
|
||||
end
|
||||
|
||||
function BattleLogic.ClearOrder()
|
||||
local index = 1
|
||||
local count = objList.size
|
||||
while index <= count do
|
||||
while index <= objList.size do
|
||||
if objList.vList[index].camp == 1 then
|
||||
BattleLogic.RemoveObj(objList.vList[index].uid)
|
||||
count = count - 1
|
||||
else
|
||||
index = index + 1
|
||||
end
|
||||
|
@ -367,9 +344,7 @@ function BattleLogic.Update()
|
|||
index = 1
|
||||
while index <= tbActionList.size do
|
||||
if tbActionList.buffer[index][1] <= curFrame then
|
||||
if tbActionList.buffer[index][2] then
|
||||
tbActionList.buffer[index][2]()
|
||||
end
|
||||
tbActionList.buffer[index][2]()
|
||||
actionPool:Put(tbActionList.buffer[index])
|
||||
tbActionList:Remove(index)
|
||||
else
|
||||
|
@ -465,6 +440,22 @@ function BattleLogic.RecordRoleProperty(uid, camp, name, value, delta)
|
|||
table.insert(record, string.format("frame:%d, uid:%d, camp:%d, name:%s, value:%d, delta:%d", curFrame, uid, camp, name, value, delta))
|
||||
end
|
||||
|
||||
--Record专用
|
||||
function BattleLogic.RecordEffect(caster, target, type, args, interval)
|
||||
local cUid = tostring(caster.uid) or "cTeam"
|
||||
local tUid = tostring(target.uid) or "tTeam"
|
||||
local str = ""
|
||||
for i=1, #args do
|
||||
str = str..tostring(args[i]) .. (i == #args and "" or "#")
|
||||
end
|
||||
table.insert(record, string.format("frame:%d, caster:%s, target:%s, effectType:%d, args:%s, interval:%d", curFrame, cUid, tUid, type, str, interval))
|
||||
end
|
||||
|
||||
--Record专用
|
||||
function BattleLogic.RecordDelayTrigger(delayFrame, triggerFrame)
|
||||
table.insert(record, string.format("frame:%d, delayTime:%f, triggerFrame:%d", curFrame, delayFrame, triggerFrame))
|
||||
end
|
||||
|
||||
--Record专用
|
||||
function BattleLogic.GenerateRecordFile()
|
||||
local time = string.format("%d-%d-%d-%d-%d-%d",
|
||||
|
|
|
@ -175,6 +175,18 @@ function BattleUtil.RandomList(arr)
|
|||
end
|
||||
end
|
||||
|
||||
function BattleUtil.Sort(arr, comp)
|
||||
if #arr <= 1 then return arr end
|
||||
for i=1, #arr do
|
||||
for j = #arr, i+1, -1 do
|
||||
if comp(arr[j-1], arr[j]) then
|
||||
arr[j-1], arr[j] = arr[j], arr[j-1]
|
||||
end
|
||||
end
|
||||
end
|
||||
return arr
|
||||
end
|
||||
|
||||
function BattleUtil.GetPropertyName(type)
|
||||
if type == 1 then
|
||||
return RoleDataName.Strength
|
||||
|
|
|
@ -11,19 +11,10 @@ local Passivity = require("Modules/Battle/Logic/Base/Passivity")
|
|||
local skillPool = BattleObjectPool.New(function ()
|
||||
return Skill:New()
|
||||
end)
|
||||
local buffPool = BattleObjectPool.New(function ()
|
||||
return BuffManager.New()
|
||||
end)
|
||||
local eventPool = BattleObjectPool.New(function ()
|
||||
return BattleEvent:New()
|
||||
end)
|
||||
local dataPool = BattleObjectPool.New(function ()
|
||||
return RoleData.New()
|
||||
end)
|
||||
|
||||
function RoleLogic.New()
|
||||
local instance = {uid=0,roleData=0,data=0,camp=0,name=0,roleType=0,shield=BattleList.New(),exCalDmgList=BattleList.New(),
|
||||
BuffMgr=0,Event=0,passiveList=0,isDead=false,Auto=false,IsDebug=false,enable=false}
|
||||
local instance = {uid=0,roleData=0,data=RoleData.New(),camp=0,name=0,roleType=0,shield=BattleList.New(),exCalDmgList=BattleList.New(),
|
||||
BuffMgr=BuffManager.New(),Event=BattleEvent:New(),passiveList=0,isDead=false,Auto=false,IsDebug=false,enable=false}
|
||||
setmetatable(instance, RoleLogic)
|
||||
return instance
|
||||
end
|
||||
|
@ -32,7 +23,6 @@ function RoleLogic:Init(uid, data)
|
|||
self.uid = uid
|
||||
self.roleData = data
|
||||
|
||||
self.data = dataPool:Get()
|
||||
self.data:Init(self, data.property)
|
||||
|
||||
self.camp = data.camp --阵营 0:我方 1:敌方
|
||||
|
@ -42,10 +32,7 @@ function RoleLogic:Init(uid, data)
|
|||
self.shield:Clear() --护盾列表
|
||||
self.exCalDmgList:Clear() --额外计算伤害列表
|
||||
|
||||
self.BuffMgr = buffPool:Get()
|
||||
self.BuffMgr:Init(self)
|
||||
|
||||
self.Event = eventPool:Get()
|
||||
self.Event:ClearEvent()
|
||||
|
||||
self.passiveList = {}
|
||||
|
@ -84,9 +71,6 @@ function RoleLogic:AddBuff(buff)
|
|||
end
|
||||
|
||||
function RoleLogic:Dispose()
|
||||
eventPool:Put(self.Event)
|
||||
dataPool:Put(self.data)
|
||||
buffPool:Put(self.BuffMgr)
|
||||
if self.skill then
|
||||
self.skill:Dispose()
|
||||
skillPool:Put(self.skill)
|
||||
|
|
|
@ -26,26 +26,14 @@ public class SAdventureConfig implements BaseConfig {
|
|||
|
||||
private int[] randomRewardGroup;
|
||||
|
||||
private int[] recommendRewardGroup;
|
||||
|
||||
private int pooId;
|
||||
|
||||
private Set<Integer> recommendHeroSets;
|
||||
private int[][] recommendRewardGroup;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
Map<Integer, SAdventureConfig> config = STableManager.getConfig(SAdventureConfig.class);
|
||||
for(SAdventureConfig sAdventureConfig : config.values()){
|
||||
int[] recommendHeroIds = sAdventureConfig.getRecommendHeroIds();
|
||||
Set<Integer> recommendHeroSetTmp = new HashSet<>(recommendHeroIds.length);
|
||||
for(int i=0;i<recommendHeroIds.length;i++){
|
||||
recommendHeroSetTmp.add(recommendHeroIds[i]);
|
||||
}
|
||||
sAdventureConfig.setRecommendHeroSets(recommendHeroSetTmp);
|
||||
}
|
||||
sAdventureConfigMap = config;
|
||||
sAdventureConfigMap = STableManager.getConfig(SAdventureConfig.class);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -57,14 +45,6 @@ public class SAdventureConfig implements BaseConfig {
|
|||
return sAdventureConfigMap;
|
||||
}
|
||||
|
||||
public Set<Integer> getRecommendHeroSets() {
|
||||
return recommendHeroSets;
|
||||
}
|
||||
|
||||
public void setRecommendHeroSets(Set<Integer> recommendHeroSets) {
|
||||
this.recommendHeroSets = recommendHeroSets;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -93,11 +73,8 @@ public class SAdventureConfig implements BaseConfig {
|
|||
return randomRewardGroup;
|
||||
}
|
||||
|
||||
public int[] getRecommendRewardGroup() {
|
||||
public int[][] getRecommendRewardGroup() {
|
||||
return recommendRewardGroup;
|
||||
}
|
||||
|
||||
public int getPooId() {
|
||||
return pooId;
|
||||
}
|
||||
}
|
|
@ -33,8 +33,11 @@ public class SVipLevelConfig implements BaseConfig {
|
|||
for(int[] temp : privileges){
|
||||
privilegeMap.put(temp[0],temp[1]);
|
||||
}
|
||||
sVipLevelConfig.setPrivilegeMap(privilegeMap);
|
||||
|
||||
}
|
||||
}
|
||||
sVipLevelConfigMap =config;
|
||||
}
|
||||
|
||||
public static Map<Integer, SVipLevelConfig> getsVipLevelConfigMap() {
|
||||
|
@ -64,4 +67,8 @@ public class SVipLevelConfig implements BaseConfig {
|
|||
public Map<Integer, Integer> getPrivilegeMap() {
|
||||
return privilegeMap;
|
||||
}
|
||||
|
||||
public void setPrivilegeMap(Map<Integer, Integer> privilegeMap) {
|
||||
this.privilegeMap = privilegeMap;
|
||||
}
|
||||
}
|
|
@ -53,6 +53,7 @@ public class EventType {
|
|||
* 行为参数:任务id#地图id#坐标(不输入地图id和坐标而输入0代表回主城)
|
||||
* 20 战斗并销毁指定地图点
|
||||
*
|
||||
* 25 完成任务往下推一步,销毁当前地图点,服务器跳转地图点到指定状态,客户端不读取新事件, 任务id#地图点id#新事件id
|
||||
* 26 接受任务,可直接做的任务
|
||||
* 27 开启新任务,此任务需要激活
|
||||
*/
|
||||
|
@ -75,6 +76,7 @@ public class EventType {
|
|||
public static final int monitorMissionAndMove = 19;
|
||||
public static final int destroyPointAnd = 20;
|
||||
|
||||
public static final int twentyFive = 25;
|
||||
public static final int openAppointMission = 26;
|
||||
public static final int openNotDoMission = 27;
|
||||
|
||||
|
|
|
@ -107,18 +107,18 @@ public class MapLogic {
|
|||
if (mapId > mapManager.getCurMapId()) {
|
||||
return;
|
||||
}
|
||||
SCMapConfig scMapConfig = SCMapConfig.getsCMapSize().get(mapId);
|
||||
if (energy < scMapConfig.getEnergyConfused()) {
|
||||
LOGGER.info("enterMap() uid=>{} energy=>{} need=>{} energy not enough ", uid, energy, scMapConfig.getEnergyConfused());
|
||||
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
int leftEnergy = energy - scMapConfig.getEnergyConfused();
|
||||
user.getPlayerInfoManager().setEnergy(leftEnergy);
|
||||
if (mapId != mapManager.getCurMapId()) {
|
||||
initMap(mapManager, user);
|
||||
user.setMapManager(mapManager);
|
||||
}
|
||||
// SCMapConfig scMapConfig = SCMapConfig.getsCMapSize().get(mapId);
|
||||
// if (energy < scMapConfig.getEnergyConfused()) {
|
||||
// LOGGER.info("enterMap() uid=>{} energy=>{} need=>{} energy not enough ", uid, energy, scMapConfig.getEnergyConfused());
|
||||
// MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "");
|
||||
// return;
|
||||
// }
|
||||
// int leftEnergy = energy - scMapConfig.getEnergyConfused();
|
||||
// user.getPlayerInfoManager().setEnergy(leftEnergy);
|
||||
// if (mapId != mapManager.getCurMapId()) {
|
||||
// initMap(mapManager, user);
|
||||
// user.setMapManager(mapManager);
|
||||
// }
|
||||
}
|
||||
List<CommonProto.Cell> cells = new ArrayList<>(mapManager.getMapInfo().size());
|
||||
for (Map.Entry<Integer, Cell> entry : mapManager.getMapInfo().entrySet()) {
|
||||
|
@ -230,6 +230,7 @@ public class MapLogic {
|
|||
|
||||
|
||||
public void updateMap(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
LOGGER.info("updateMap() curXY=>{},triggerXY=>{}", curXY, triggerXY);
|
||||
if (triggerXY != curXY) {
|
||||
boolean isConnect = CellUtil.checkIsNextCell(curXY, triggerXY);
|
||||
if (!isConnect) {
|
||||
|
@ -270,14 +271,11 @@ public class MapLogic {
|
|||
}
|
||||
mapManager.setTotalStep(leftStep);
|
||||
}
|
||||
Cell cell = mapManager.getMapInfo().get(curXY);
|
||||
Cell cell = mapManager.getMapInfo().get(triggerXY);
|
||||
if (cell == null) {
|
||||
cell = mapManager.getMapInfo().get(triggerXY);
|
||||
if (cell == null) {
|
||||
LOGGER.info("xy is wrong =>{} triggerXY=>{}", curXY, triggerXY);
|
||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
LOGGER.info("xy is wrong =>{} triggerXY=>{}", curXY, triggerXY);
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
mapManager.setTriggerXY(triggerXY);
|
||||
mapManager.addWalkCells(new HashSet<>(cells));
|
||||
|
@ -305,14 +303,11 @@ public class MapLogic {
|
|||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
Cell cell = mapManager.getMapInfo().get(mapManager.getCurXY());
|
||||
Cell cell = mapManager.getMapInfo().get(mapManager.getTriggerXY());
|
||||
if (cell == null) {
|
||||
cell = mapManager.getMapInfo().get(mapManager.getTriggerXY());
|
||||
if (cell == null) {
|
||||
LOGGER.info("cell == null xy is wrong =>{} triggerXY=>{}", mapManager.getCurXY(), mapManager.getTriggerXY());
|
||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
LOGGER.info("cell == null xy is wrong =>{} triggerXY=>{}", mapManager.getCurXY(), mapManager.getTriggerXY());
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
int bigEventId = cell.getEventId();
|
||||
if (eventId != bigEventId) {
|
||||
|
@ -464,8 +459,8 @@ public class MapLogic {
|
|||
if (dropBuilder != null) {
|
||||
eventUpdateResponse.setDrop(dropBuilder);
|
||||
}
|
||||
// LOGGER.info("updateEvent =====>success<====== xy=>{}, getPointId=>{} eventId={}, mission=>{}, nextEventId=>{}, eventBehaviorCommon=>{}", mapManager.getCurXY(), cell == null ? 0 : cell.getPointId(),
|
||||
// cell == null ? 0 : cell.getEventId(), eventUpdateResponse.getMissionList(), nextEventId, eventBehaviorCommon);
|
||||
LOGGER.info("updateEvent =====>success<====== xy=>{}, getPointId=>{} eventId={}, mission=>{}, nextEventId=>{}, eventBehaviorCommon=>{}", mapManager.getCurXY(), cell == null ? 0 : cell.getPointId(),
|
||||
cell == null ? 0 : cell.getEventId(), eventUpdateResponse.getMissionList(), nextEventId, eventBehaviorCommon);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), eventUpdateResponse.build(), true);
|
||||
}
|
||||
|
||||
|
@ -723,10 +718,26 @@ public class MapLogic {
|
|||
LuaValue getOptionData = FightDataUtil.getOptionData(frames);
|
||||
|
||||
int[] checkResult = CheckFight.getInstance().checkFight(seed, getFightData, getOptionData);
|
||||
|
||||
List<Integer> remainHp = new ArrayList<>(5);
|
||||
for (int i = 1; i < checkResult.length; i++) {
|
||||
remainHp.add(checkResult[i]);
|
||||
}
|
||||
|
||||
//校验结果码 1:胜利
|
||||
int resultCode = checkResult[0];
|
||||
if (resultCode !=1){
|
||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "战斗失败");
|
||||
if (resultCode == -1){
|
||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "战斗异常!");
|
||||
return;
|
||||
}else if(resultCode == 0){
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
FightInfoProto.FightEndResponse fightEndResponse = FightInfoProto.FightEndResponse
|
||||
.newBuilder()
|
||||
.setResult(resultCode)
|
||||
.setDrop(dropBuilder)
|
||||
.addAllRemainHpList(remainHp)
|
||||
.build();
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse, true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -737,15 +748,11 @@ public class MapLogic {
|
|||
hero.setCurHp(checkResult[teamPosHeroInfo.getPosition()]);
|
||||
}
|
||||
|
||||
List<Integer> remainHp = new ArrayList<>(5);
|
||||
for (int i = 1; i < checkResult.length; i++) {
|
||||
remainHp.add(checkResult[i]);
|
||||
}
|
||||
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1);
|
||||
FightInfoProto.FightEndResponse fightEndResponse = FightInfoProto.FightEndResponse
|
||||
.newBuilder()
|
||||
.setDrop(drop)
|
||||
.setResult(resultCode)
|
||||
.addAllRemainHpList(remainHp)
|
||||
.build();
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse, true);
|
||||
|
|
|
@ -133,6 +133,7 @@ public class BehaviorUtil {
|
|||
|
||||
//设置战斗随机种子
|
||||
int seed = (int)(System.currentTimeMillis()/1000);
|
||||
// int seed = 1553167956;
|
||||
fightData.setFightSeed(seed);
|
||||
fightStartRespons.setFightData(fightData);
|
||||
|
||||
|
@ -167,4 +168,28 @@ public class BehaviorUtil {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 销毁当前点
|
||||
* @param user
|
||||
*/
|
||||
public static void destoryCurPoint(User user) {
|
||||
Map<Integer, Cell> mapInfo = user.getMapManager().getMapInfo();
|
||||
mapInfo.remove(user.getMapManager().getCurXY());
|
||||
}
|
||||
|
||||
/**
|
||||
* 改变其他点eventId
|
||||
* @param user
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void changeOtherPoint(User user, int pointId, int eventId) throws Exception {
|
||||
Map<Integer, Cell> mapInfo = user.getMapManager().getMapInfo();
|
||||
for (Cell cell : mapInfo.values()) {
|
||||
if (cell.getPointId() == pointId) {
|
||||
cell.setEventId(eventId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
package com.ljsd.jieling.handler.map.behavior;
|
||||
|
||||
import com.ljsd.jieling.handler.map.Cell;
|
||||
import com.ljsd.jieling.handler.map.EventType;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class DestroyPointBehavior extends BaseBehavior {
|
||||
@Override
|
||||
|
|
|
@ -21,16 +21,6 @@ public class MonitorMissionBehavior extends BaseBehavior {
|
|||
|
||||
@Override
|
||||
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions();
|
||||
Mission mission = doingMissions.get(behaviorTypeValues[0][0]);
|
||||
if (mission == null || !mission.isOpen()) {
|
||||
return false;
|
||||
}
|
||||
CheckMissionReturn checkMissionReturn = MissionLogic.getInstance().checkMission(mission, user);
|
||||
for (Mission cmission : checkMissionReturn.missions){
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(cmission);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
}
|
||||
return true;
|
||||
return BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package com.ljsd.jieling.handler.map.behavior;
|
||||
|
||||
import com.ljsd.jieling.handler.map.EventType;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class TwentyFiveBehavior extends BaseBehavior {
|
||||
@Override
|
||||
public int getBehaviorType() {
|
||||
return EventType.twentyFive;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
boolean flag = BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse);
|
||||
if (!flag) {
|
||||
return flag;
|
||||
}
|
||||
BehaviorUtil.destoryCurPoint(user);
|
||||
BehaviorUtil.changeOtherPoint(user, behaviorTypeValues[0][1], behaviorTypeValues[0][2]);
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -68,6 +68,7 @@ public class CheckFight {
|
|||
|
||||
/**
|
||||
* 单线程执行每次用时50ms,目前支持并发100以内,再大用线程池异步处理
|
||||
* http://www.luaj.org/luaj/3.0/examples/jse/SampleMultiThreaded.java
|
||||
* @param seed
|
||||
* @param fightData
|
||||
* @param optionData
|
||||
|
@ -77,13 +78,13 @@ public class CheckFight {
|
|||
LuaValue func = transCoderObj.get(LuaValue.valueOf("Execute"));
|
||||
LuaValue result = func.call(LuaValue.valueOf(seed),fightData,optionData);
|
||||
int status = result.get("result").toint();
|
||||
int[] resultCache = new int[6];
|
||||
int[] resultCache = new int[result.length()+1];
|
||||
resultCache[0]=status;
|
||||
LOGGER.info(" lua check test fight result : "+ status);
|
||||
if (status==1){
|
||||
for (int i = 1; i <= result.length(); i++) {
|
||||
resultCache[i] = result.rawget(i).toint();
|
||||
LOGGER.info(i+" --> 单位剩余血量 : "+ resultCache[i]);
|
||||
// LOGGER.info(i+" --> 单位剩余血量 : "+ resultCache[i]);
|
||||
}
|
||||
}
|
||||
return resultCache;
|
||||
|
|
|
@ -154,8 +154,7 @@ public class CombatLogic {
|
|||
return;
|
||||
}
|
||||
|
||||
int pooId = sAdventureConfig.getPooId();
|
||||
SAdventureSetting sAdventureSetting = SAdventureSetting.getsAdventureSetting(pooId);
|
||||
SAdventureSetting sAdventureSetting = SAdventureSetting.getsAdventureSetting(position);
|
||||
if(hourDuration > sAdventureSetting.getPerMapMaxHour()){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"超出时长");
|
||||
return;
|
||||
|
@ -173,7 +172,7 @@ public class CombatLogic {
|
|||
int allowTime =0;
|
||||
if(!adventureManager.getAllowTimeMap().containsKey(position)){
|
||||
int vipLevel = user.getPlayerInfoManager().getVipLevel();
|
||||
allowTime = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel).getPrivilegeMap().get(vipLevel) -hourDuration;
|
||||
allowTime = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel).getPrivilegeMap().get(1) -hourDuration;
|
||||
}else{
|
||||
Integer remainAllowTime = adventureManager.getAllowTimeMap().get(position);
|
||||
allowTime = remainAllowTime - hourDuration;
|
||||
|
@ -196,7 +195,7 @@ public class CombatLogic {
|
|||
HeroManager heroManager = user.getHeroManager();
|
||||
int myRecommendHeroSize=0;
|
||||
int totalForce=0;
|
||||
Set<Integer> recommendHeroSets = sAdventureConfig.getRecommendHeroSets();
|
||||
Set<Integer> recommendHeroSets =adventureSeasonInfoCache.getRecommendFinalHeroMap().get(position);
|
||||
Set<Integer> cacheHeroTid = new HashSet<>(recommendHeroSets.size());
|
||||
for(String heroId : heroIds){
|
||||
Hero hero = heroManager.getHero(heroId);
|
||||
|
@ -208,7 +207,7 @@ public class CombatLogic {
|
|||
totalForce += HeroLogic.getInstance().calHeoForce(user,hero);
|
||||
}
|
||||
|
||||
adventureManager.station(new AdventureStateInfo(position,heroIds,(int)(System.currentTimeMillis()),hourDuration,totalForce,myRecommendHeroSize),allowTime);
|
||||
adventureManager.station(new AdventureStateInfo(position,heroIds,(int)(System.currentTimeMillis()/1000),hourDuration,totalForce,myRecommendHeroSize),allowTime);
|
||||
|
||||
//发送成功
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,null,true);
|
||||
|
@ -235,8 +234,8 @@ public class CombatLogic {
|
|||
SAdventureConfig sAdventureConfig = SAdventureConfig.getsAdventureConfigByPosition(position);
|
||||
int recommendForce = sAdventureConfig.getRecommendForce();
|
||||
|
||||
int pooId = sAdventureConfig.getPooId();
|
||||
SAdventureSetting sAdventureSetting = SAdventureSetting.getsAdventureSetting(pooId);
|
||||
|
||||
SAdventureSetting sAdventureSetting = SAdventureSetting.getsAdventureSetting(position);
|
||||
|
||||
|
||||
float[][] baseRewardRatio = sAdventureSetting.getBaseRewardRatio();
|
||||
|
@ -251,13 +250,20 @@ public class CombatLogic {
|
|||
float baseRewardRatioTmp = calRatio(myForceRatio, baseRewardRatio) * hourRewardRatioTmp;
|
||||
float randomRewardRatioTmp = calRatio(myForceRatio, randomRewardRatio) * hourRewardRatioTmp;
|
||||
int[] baseRewardGroup = sAdventureConfig.getBaseRewardGroup();
|
||||
int[] recommendRewardGroup = sAdventureConfig.getRecommendRewardGroup();
|
||||
int[][] recommendRewardGroup = sAdventureConfig.getRecommendRewardGroup();
|
||||
int[] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||
Map<int[],Float> dropInfoMap = new HashMap<>();
|
||||
dropInfoMap.put(baseRewardGroup,baseRewardRatioTmp);
|
||||
dropInfoMap.put(randomRewardGroup,randomRewardRatioTmp);
|
||||
if(myRecommendHeroSize>0){
|
||||
dropInfoMap.put(new int[]{recommendRewardGroup[myRecommendHeroSize-1]},myRecommendHeroSize*1.0f);
|
||||
int[] recommendRewardGroupDetail = recommendRewardGroup[myRecommendHeroSize - 1];
|
||||
for(int i=0;i<recommendRewardGroupDetail.length;i=i+2){
|
||||
int hourLimit = recommendRewardGroupDetail[i];
|
||||
if(hourDuration<=hourLimit){
|
||||
dropInfoMap.put(new int[]{recommendRewardGroupDetail[i+1]},1.0f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropInfoMap);
|
||||
//清除占领
|
||||
|
|
|
@ -741,6 +741,7 @@ public class HeroLogic {
|
|||
|
||||
public int calHeoForce(User user, Hero hero){
|
||||
Map<Integer, Integer> heroAllAttribute = calHeroFinalAttribute(user, hero);
|
||||
heroAllAttribute.remove(0);
|
||||
double result = 0;
|
||||
for(Map.Entry<Integer, Integer> item : heroAllAttribute.entrySet()){
|
||||
Integer propertyId = item.getKey();
|
||||
|
|
|
@ -84,7 +84,8 @@ public class CBean2Proto {
|
|||
if(adventureStateInfo!=null){
|
||||
int startTime = adventureStateInfo.getStartTime();
|
||||
int now = (int)(System.currentTimeMillis()/1000);
|
||||
builder.setPositionId(adventureStateInfo.getPosition())
|
||||
builder.addAllHeroIdList(adventureStateInfo.getHeroIds())
|
||||
.setHourDuration(adventureStateInfo.getHourDuration())
|
||||
.setRemainTime((now - startTime ));
|
||||
}
|
||||
return builder.build();
|
||||
|
|
|
@ -154,6 +154,9 @@ public class ItemUtil {
|
|||
Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) {
|
||||
for (int i = 0 ; i < randomItemNum;i++){
|
||||
int index = MathUtils.randomForStrArray(weightArr);
|
||||
if (index == -1) {
|
||||
continue;
|
||||
}
|
||||
int id = Integer.parseInt(rewardArr[index]);
|
||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id);
|
||||
int itemNum = getItemNum(sRewardItem);
|
||||
|
|
Loading…
Reference in New Issue