back_recharge
parent
409e11e308
commit
760ce77dfe
|
|
@ -1,119 +1,119 @@
|
||||||
Id ProfessionLimit Position PropertyMin PropertyMax Pool SecondNumMin SecondNumMax SkillId IfClear
|
Id Quality ProfessionLimit Position PropertyMin PropertyMax Pool SecondNumMin SecondNumMax SkillId IfClear
|
||||||
int int int mut,int#int,1 mut,int#int,1 int int int int int
|
int int int int mut,int#int,1 mut,int#int,1 int int int int int
|
||||||
3001 1501 1 2#42 2#70 1 0 0 0 0
|
3001 1 1501 1 2#42 2#70 1 0 0 0 0
|
||||||
3002 1501 1 2#42 2#70 1 0 0 0 0
|
3002 1 1501 1 2#42 2#70 1 0 0 0 0
|
||||||
3003 1502 1 2#42 2#70 1 0 0 0 0
|
3003 1 1502 1 2#42 2#70 1 0 0 0 0
|
||||||
3004 1502 1 2#42 2#70 1 0 0 0 0
|
3004 1 1502 1 2#42 2#70 1 0 0 0 0
|
||||||
3005 1503 1 2#42 2#70 1 0 0 0 0
|
3005 1 1503 1 2#42 2#70 1 0 0 0 0
|
||||||
3006 1503 1 2#42 2#70 1 0 0 0 0
|
3006 1 1503 1 2#42 2#70 1 0 0 0 0
|
||||||
3007 1504 1 2#42 2#70 1 0 0 0 0
|
3007 1 1504 1 2#42 2#70 1 0 0 0 0
|
||||||
3008 1504 1 2#42 2#70 1 0 0 0 0
|
3008 1 1504 1 2#42 2#70 1 0 0 0 0
|
||||||
3009 1505 1 2#42 2#70 1 0 0 0 0
|
3009 1 1505 1 2#42 2#70 1 0 0 0 0
|
||||||
3010 1505 1 2#42 2#70 1 0 0 0 0
|
3010 1 1505 1 2#42 2#70 1 0 0 0 0
|
||||||
3011 0 2 3#43 3#72 1 0 0 0 0
|
3011 1 0 2 3#43 3#72 1 0 0 0 0
|
||||||
3012 0 2 3#43 3#72 1 0 0 0 0
|
3012 1 0 2 3#43 3#72 1 0 0 0 0
|
||||||
3013 0 2 4#40 4#67 1 0 0 0 0
|
3013 1 0 2 4#40 4#67 1 0 0 0 0
|
||||||
3014 0 2 4#40 4#67 1 0 0 0 0
|
3014 1 0 2 4#40 4#67 1 0 0 0 0
|
||||||
3015 0 4 5#24 5#28 1 0 0 0 0
|
3015 1 0 4 5#24 5#28 1 0 0 0 0
|
||||||
3016 0 4 5#24 5#28 1 0 0 0 0
|
3016 1 0 4 5#24 5#28 1 0 0 0 0
|
||||||
3017 0 3 1#460 1#767 1 0 0 0 0
|
3017 1 0 3 1#460 1#767 1 0 0 0 0
|
||||||
3018 0 3 1#460 1#767 1 0 0 0 0
|
3018 1 0 3 1#460 1#767 1 0 0 0 0
|
||||||
3101 1501 1 2#56 2#93 1 0 1 0 0
|
3101 2 1501 1 2#56 2#93 1 0 1 0 0
|
||||||
3102 1501 1 2#56 2#93 1 0 1 0 0
|
3102 2 1501 1 2#56 2#93 1 0 1 0 0
|
||||||
3103 1502 1 2#56 2#93 1 0 1 0 0
|
3103 2 1502 1 2#56 2#93 1 0 1 0 0
|
||||||
3104 1502 1 2#56 2#93 1 0 1 0 0
|
3104 2 1502 1 2#56 2#93 1 0 1 0 0
|
||||||
3105 1503 1 2#56 2#93 1 0 1 0 0
|
3105 2 1503 1 2#56 2#93 1 0 1 0 0
|
||||||
3106 1503 1 2#56 2#93 1 0 1 0 0
|
3106 2 1503 1 2#56 2#93 1 0 1 0 0
|
||||||
3107 1504 1 2#56 2#93 1 0 1 0 0
|
3107 2 1504 1 2#56 2#93 1 0 1 0 0
|
||||||
3108 1504 1 2#56 2#93 1 0 1 0 0
|
3108 2 1504 1 2#56 2#93 1 0 1 0 0
|
||||||
3109 1505 1 2#56 2#93 1 0 1 0 0
|
3109 2 1505 1 2#56 2#93 1 0 1 0 0
|
||||||
3110 1505 1 2#56 2#93 1 0 1 0 0
|
3110 2 1505 1 2#56 2#93 1 0 1 0 0
|
||||||
3111 0 2 3#58 3#96 2 0 1 0 0
|
3111 2 0 2 3#58 3#96 2 0 1 0 0
|
||||||
3112 0 2 3#58 3#96 2 0 1 0 0
|
3112 2 0 2 3#58 3#96 2 0 1 0 0
|
||||||
3113 0 2 4#54 4#90 2 0 1 0 0
|
3113 2 0 2 4#54 4#90 2 0 1 0 0
|
||||||
3114 0 2 4#54 4#90 2 0 1 0 0
|
3114 2 0 2 4#54 4#90 2 0 1 0 0
|
||||||
3115 0 4 5#48 5#56 3 0 1 0 0
|
3115 2 0 4 5#48 5#56 3 0 1 0 0
|
||||||
3116 0 4 5#48 5#56 3 0 1 0 0
|
3116 2 0 4 5#48 5#56 3 0 1 0 0
|
||||||
3117 0 3 1#616 1#1027 4 0 1 0 0
|
3117 2 0 3 1#616 1#1027 4 0 1 0 0
|
||||||
3118 0 3 1#616 1#1027 4 0 1 0 0
|
3118 2 0 3 1#616 1#1027 4 0 1 0 0
|
||||||
3201 1501 1 2#72 2#120 5 1 3 0 1
|
3201 3 1501 1 2#72 2#120 5 1 3 0 1
|
||||||
3202 1501 1 2#72 2#120 5 1 3 0 1
|
3202 3 1501 1 2#72 2#120 5 1 3 0 1
|
||||||
3203 1502 1 2#72 2#120 5 1 3 0 1
|
3203 3 1502 1 2#72 2#120 5 1 3 0 1
|
||||||
3204 1502 1 2#72 2#120 5 1 3 0 1
|
3204 3 1502 1 2#72 2#120 5 1 3 0 1
|
||||||
3205 1503 1 2#72 2#120 5 1 3 0 1
|
3205 3 1503 1 2#72 2#120 5 1 3 0 1
|
||||||
3206 1503 1 2#72 2#120 5 1 3 0 1
|
3206 3 1503 1 2#72 2#120 5 1 3 0 1
|
||||||
3207 1504 1 2#72 2#120 5 1 3 0 1
|
3207 3 1504 1 2#72 2#120 5 1 3 0 1
|
||||||
3208 1504 1 2#72 2#120 5 1 3 0 1
|
3208 3 1504 1 2#72 2#120 5 1 3 0 1
|
||||||
3209 1505 1 2#72 2#120 5 1 3 0 1
|
3209 3 1505 1 2#72 2#120 5 1 3 0 1
|
||||||
3210 1505 1 2#72 2#120 5 1 3 0 1
|
3210 3 1505 1 2#72 2#120 5 1 3 0 1
|
||||||
3211 0 2 3#74 3#124 6 1 3 0 1
|
3211 3 0 2 3#74 3#124 6 1 3 0 1
|
||||||
3212 0 2 3#74 3#124 6 1 3 0 1
|
3212 3 0 2 3#74 3#124 6 1 3 0 1
|
||||||
3213 0 2 4#70 4#116 6 1 3 0 1
|
3213 3 0 2 4#70 4#116 6 1 3 0 1
|
||||||
3214 0 2 4#70 4#116 6 1 3 0 1
|
3214 3 0 2 4#70 4#116 6 1 3 0 1
|
||||||
3215 0 4 5#72 5#84 7 1 3 0 1
|
3215 3 0 4 5#72 5#84 7 1 3 0 1
|
||||||
3216 0 4 5#72 5#84 7 1 3 0 1
|
3216 3 0 4 5#72 5#84 7 1 3 0 1
|
||||||
3217 0 3 1#792 1#1320 8 1 3 0 1
|
3217 3 0 3 1#792 1#1320 8 1 3 0 1
|
||||||
3218 0 3 1#792 1#1320 8 1 3 0 1
|
3218 3 0 3 1#792 1#1320 8 1 3 0 1
|
||||||
3301 1501 1 2#383 2#638 9 2 4 0 1
|
3301 4 1501 1 2#383 2#638 9 2 4 0 1
|
||||||
3302 1501 1 2#383 2#638 9 2 4 0 1
|
3302 4 1501 1 2#383 2#638 9 2 4 0 1
|
||||||
3303 1502 1 2#383 2#638 9 2 4 0 1
|
3303 4 1502 1 2#383 2#638 9 2 4 0 1
|
||||||
3304 1502 1 2#383 2#638 9 2 4 0 1
|
3304 4 1502 1 2#383 2#638 9 2 4 0 1
|
||||||
3305 1503 1 2#383 2#638 9 2 4 0 1
|
3305 4 1503 1 2#383 2#638 9 2 4 0 1
|
||||||
3306 1503 1 2#383 2#638 9 2 4 0 1
|
3306 4 1503 1 2#383 2#638 9 2 4 0 1
|
||||||
3307 1504 1 2#383 2#638 9 2 4 0 1
|
3307 4 1504 1 2#383 2#638 9 2 4 0 1
|
||||||
3308 1504 1 2#383 2#638 9 2 4 0 1
|
3308 4 1504 1 2#383 2#638 9 2 4 0 1
|
||||||
3309 1505 1 2#383 2#638 9 2 4 0 1
|
3309 4 1505 1 2#383 2#638 9 2 4 0 1
|
||||||
3310 1505 1 2#383 2#638 9 2 4 0 1
|
3310 4 1505 1 2#383 2#638 9 2 4 0 1
|
||||||
3311 0 2 3#396 3#659 10 2 4 0 1
|
3311 4 0 2 3#396 3#659 10 2 4 0 1
|
||||||
3312 0 2 3#396 3#659 10 2 4 0 1
|
3312 4 0 2 3#396 3#659 10 2 4 0 1
|
||||||
3313 0 2 4#370 4#617 10 2 4 0 1
|
3313 4 0 2 4#370 4#617 10 2 4 0 1
|
||||||
3314 0 2 4#370 4#617 10 2 4 0 1
|
3314 4 0 2 4#370 4#617 10 2 4 0 1
|
||||||
3315 0 4 5#96 5#113 11 2 4 0 1
|
3315 4 0 4 5#96 5#113 11 2 4 0 1
|
||||||
3316 0 4 5#96 5#113 11 2 4 0 1
|
3316 4 0 4 5#96 5#113 11 2 4 0 1
|
||||||
3317 0 3 1#4212 1#7020 12 2 4 0 1
|
3317 4 0 3 1#4212 1#7020 12 2 4 0 1
|
||||||
3318 0 3 1#4212 1#7020 12 2 4 0 1
|
3318 4 0 3 1#4212 1#7020 12 2 4 0 1
|
||||||
3319 1501 1 2#383 2#638 9 2 4 0 1
|
3319 4 1501 1 2#383 2#638 9 2 4 0 1
|
||||||
3320 1501 1 2#383 2#638 9 2 4 0 1
|
3320 4 1501 1 2#383 2#638 9 2 4 0 1
|
||||||
3321 1502 1 2#383 2#638 9 2 4 0 1
|
3321 4 1502 1 2#383 2#638 9 2 4 0 1
|
||||||
3322 1502 1 2#383 2#638 9 2 4 0 1
|
3322 4 1502 1 2#383 2#638 9 2 4 0 1
|
||||||
3323 1503 1 2#383 2#638 9 2 4 0 1
|
3323 4 1503 1 2#383 2#638 9 2 4 0 1
|
||||||
3324 1503 1 2#383 2#638 9 2 4 0 1
|
3324 4 1503 1 2#383 2#638 9 2 4 0 1
|
||||||
3325 1504 1 2#383 2#638 9 2 4 0 1
|
3325 4 1504 1 2#383 2#638 9 2 4 0 1
|
||||||
3326 1504 1 2#383 2#638 9 2 4 0 1
|
3326 4 1504 1 2#383 2#638 9 2 4 0 1
|
||||||
3327 1505 1 2#383 2#638 9 2 4 0 1
|
3327 4 1505 1 2#383 2#638 9 2 4 0 1
|
||||||
3328 1505 1 2#383 2#638 9 2 4 0 1
|
3328 4 1505 1 2#383 2#638 9 2 4 0 1
|
||||||
3329 0 2 3#396 3#659 10 2 4 0 1
|
3329 4 0 2 3#396 3#659 10 2 4 0 1
|
||||||
3330 0 2 3#396 3#659 10 2 4 0 1
|
3330 4 0 2 3#396 3#659 10 2 4 0 1
|
||||||
3331 0 2 4#370 4#617 10 2 4 0 1
|
3331 4 0 2 4#370 4#617 10 2 4 0 1
|
||||||
3332 0 2 4#370 4#617 10 2 4 0 1
|
3332 4 0 2 4#370 4#617 10 2 4 0 1
|
||||||
3333 0 4 5#96 5#113 11 2 4 0 1
|
3333 4 0 4 5#96 5#113 11 2 4 0 1
|
||||||
3334 0 4 5#96 5#113 11 2 4 0 1
|
3334 4 0 4 5#96 5#113 11 2 4 0 1
|
||||||
3335 0 3 1#4212 1#7020 12 2 4 0 1
|
3335 4 0 3 1#4212 1#7020 12 2 4 0 1
|
||||||
3336 0 3 1#4212 1#7020 12 2 4 0 1
|
3336 4 0 3 1#4212 1#7020 12 2 4 0 1
|
||||||
4001 1501 1 2#72 2#120 5 1 3 0 0
|
4001 3 1501 1 2#72 2#120 5 1 3 0 0
|
||||||
4002 1502 1 2#72 2#120 5 1 3 0 0
|
4002 3 1502 1 2#72 2#120 5 1 3 0 0
|
||||||
4003 1503 1 2#72 2#120 5 1 3 0 0
|
4003 3 1503 1 2#72 2#120 5 1 3 0 0
|
||||||
4004 1504 1 2#72 2#120 5 1 3 0 0
|
4004 3 1504 1 2#72 2#120 5 1 3 0 0
|
||||||
4005 1505 1 2#72 2#120 5 1 3 0 0
|
4005 3 1505 1 2#72 2#120 5 1 3 0 0
|
||||||
4006 0 2 3#74 3#124 6 1 3 0 0
|
4006 3 0 2 3#74 3#124 6 1 3 0 0
|
||||||
4007 0 2 4#70 4#116 6 1 3 0 0
|
4007 3 0 2 4#70 4#116 6 1 3 0 0
|
||||||
4008 0 4 5#72 5#84 7 1 3 0 0
|
4008 3 0 4 5#72 5#84 7 1 3 0 0
|
||||||
4009 0 3 1#792 1#1320 8 1 3 0 0
|
4009 3 0 3 1#792 1#1320 8 1 3 0 0
|
||||||
4101 1501 1 2#383 2#638 9 2 4 0 0
|
4101 4 1501 1 2#383 2#638 9 2 4 0 0
|
||||||
4102 1501 1 2#383 2#638 9 2 4 0 0
|
4102 4 1501 1 2#383 2#638 9 2 4 0 0
|
||||||
4103 1502 1 2#383 2#638 9 2 4 0 0
|
4103 4 1502 1 2#383 2#638 9 2 4 0 0
|
||||||
4104 1502 1 2#383 2#638 9 2 4 0 0
|
4104 4 1502 1 2#383 2#638 9 2 4 0 0
|
||||||
4105 1503 1 2#383 2#638 9 2 4 0 0
|
4105 4 1503 1 2#383 2#638 9 2 4 0 0
|
||||||
4106 1503 1 2#383 2#638 9 2 4 0 0
|
4106 4 1503 1 2#383 2#638 9 2 4 0 0
|
||||||
4107 1504 1 2#383 2#638 9 2 4 0 0
|
4107 4 1504 1 2#383 2#638 9 2 4 0 0
|
||||||
4108 1504 1 2#383 2#638 9 2 4 0 0
|
4108 4 1504 1 2#383 2#638 9 2 4 0 0
|
||||||
4109 1505 1 2#383 2#638 9 2 4 0 0
|
4109 4 1505 1 2#383 2#638 9 2 4 0 0
|
||||||
4110 1505 1 2#383 2#638 9 2 4 0 0
|
4110 4 1505 1 2#383 2#638 9 2 4 0 0
|
||||||
4111 0 2 3#396 3#659 10 2 4 0 0
|
4111 4 0 2 3#396 3#659 10 2 4 0 0
|
||||||
4112 0 2 3#396 3#659 10 2 4 0 0
|
4112 4 0 2 3#396 3#659 10 2 4 0 0
|
||||||
4113 0 2 4#370 4#617 10 2 4 0 0
|
4113 4 0 2 4#370 4#617 10 2 4 0 0
|
||||||
4114 0 2 4#370 4#617 10 2 4 0 0
|
4114 4 0 2 4#370 4#617 10 2 4 0 0
|
||||||
4115 0 4 5#96 5#113 11 2 4 0 0
|
4115 4 0 4 5#96 5#113 11 2 4 0 0
|
||||||
4116 0 4 5#96 5#113 11 2 4 0 0
|
4116 4 0 4 5#96 5#113 11 2 4 0 0
|
||||||
4117 0 3 1#4212 1#7020 12 2 4 0 0
|
4117 4 0 3 1#4212 1#7020 12 2 4 0 0
|
||||||
4118 0 3 1#4212 1#7020 12 2 4 0 0
|
4118 4 0 3 1#4212 1#7020 12 2 4 0 0
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
Id MainPool MainNum Pool SecondNumMin SecondNumMax
|
||||||
|
int int int int int int
|
||||||
|
8001 0 0 0 0 0
|
||||||
|
8002 0 0 0 0 0
|
||||||
|
8003 0 0 0 0 0
|
||||||
|
8004 0 0 0 0 0
|
||||||
|
8005 0 0 0 0 0
|
||||||
|
8006 0 0 0 0 0
|
||||||
|
8007 0 0 0 0 0
|
||||||
|
8008 0 0 0 0 0
|
||||||
|
8009 0 0 0 0 0
|
||||||
|
8010 0 0 0 0 0
|
||||||
|
8011 0 0 0 0 0
|
||||||
|
8012 0 0 0 0 0
|
||||||
|
8013 0 0 0 0 0
|
||||||
|
8014 0 0 0 0 0
|
||||||
|
8015 0 0 0 0 0
|
||||||
|
8016 0 0 0 0 0
|
||||||
|
8017 0 0 0 0 0
|
||||||
|
8018 0 0 0 0 0
|
||||||
|
8019 0 0 0 0 0
|
||||||
|
8020 0 0 0 0 0
|
||||||
|
8021 0 0 0 0 0
|
||||||
|
8022 0 0 0 0 0
|
||||||
|
8023 0 0 0 0 0
|
||||||
|
8024 0 0 0 0 0
|
||||||
|
8025 0 0 0 0 0
|
||||||
|
8026 0 0 0 0 0
|
||||||
|
8027 0 0 0 0 0
|
||||||
|
8028 0 0 0 0 0
|
||||||
|
8029 0 0 0 0 0
|
||||||
|
8030 0 0 0 0 0
|
||||||
|
8031 0 0 0 0 0
|
||||||
|
8032 0 0 0 0 0
|
||||||
|
8033 0 0 0 0 0
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
id PropertyId Min Max PoolNum Weight
|
||||||
|
int int int int int int
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
Id OpenRules Mineral RunesNum SpecialRunes Exp
|
||||||
|
int mut,int#int,1 mut,int#int,1 int mut,int#int,1 int
|
||||||
|
3001 null 1007#1 1 null 0
|
||||||
|
3002 null 1007#1 2 null 0
|
||||||
|
3003 null 1007#1 1 null 0
|
||||||
|
3004 null 1007#1 2 null 0
|
||||||
|
3005 null 1007#1 1 null 0
|
||||||
|
3006 null 1007#1 2 null 0
|
||||||
|
3007 null 1007#1 1 null 0
|
||||||
|
3008 null 1007#1 2 null 0
|
||||||
|
3009 null 1007#1 1 null 0
|
||||||
|
3010 null 1007#1 2 null 0
|
||||||
|
3011 null 1007#1 1 null 0
|
||||||
|
3012 null 1007#1 2 null 0
|
||||||
|
3013 null 1007#1 1 null 0
|
||||||
|
3014 null 1007#1 2 null 0
|
||||||
|
3015 null 1007#1 1 null 0
|
||||||
|
3016 null 1007#1 2 null 0
|
||||||
|
3017 null 1007#1 1 null 0
|
||||||
|
3018 null 1007#1 2 null 0
|
||||||
|
3101 null 1007#1 1 null 0
|
||||||
|
3102 null 1007#1 2 null 0
|
||||||
|
3103 null 1007#1 1 null 0
|
||||||
|
3104 null 1007#1 2 null 0
|
||||||
|
3105 null 1007#1 1 null 0
|
||||||
|
3106 null 1007#1 2 null 0
|
||||||
|
3107 null 1007#1 1 null 0
|
||||||
|
3108 null 1007#1 2 null 0
|
||||||
|
3109 null 1007#1 1 null 0
|
||||||
|
3110 null 1007#1 2 null 0
|
||||||
|
3111 null 1007#1 1 null 0
|
||||||
|
3112 null 1007#1 2 null 0
|
||||||
|
3113 null 1007#1 1 null 0
|
||||||
|
3114 null 1007#1 2 null 0
|
||||||
|
3115 null 1007#1 1 null 0
|
||||||
|
3116 null 1007#1 2 null 0
|
||||||
|
3117 null 1007#1 1 null 0
|
||||||
|
3118 null 1007#1 2 null 0
|
||||||
|
3201 null 1008#1 1 null 0
|
||||||
|
3202 null 1008#1 2 null 0
|
||||||
|
3203 null 1008#1 1 null 0
|
||||||
|
3204 null 1008#1 2 null 0
|
||||||
|
3205 null 1008#1 1 null 0
|
||||||
|
3206 null 1008#1 2 null 0
|
||||||
|
3207 null 1008#1 1 null 0
|
||||||
|
3208 null 1008#1 2 null 0
|
||||||
|
3209 null 1008#1 1 null 0
|
||||||
|
3210 null 1008#1 2 null 0
|
||||||
|
3211 null 1008#1 1 null 0
|
||||||
|
3212 null 1008#1 2 null 0
|
||||||
|
3213 null 1008#1 1 null 0
|
||||||
|
3214 null 1008#1 2 null 0
|
||||||
|
3215 null 1008#1 1 null 0
|
||||||
|
3216 null 1008#1 2 null 0
|
||||||
|
3217 null 1008#1 1 null 0
|
||||||
|
3218 null 1008#1 2 null 0
|
||||||
|
3301 null 1009#1 1 null 0
|
||||||
|
3302 null 1009#1 2 null 0
|
||||||
|
3303 null 1009#1 1 null 0
|
||||||
|
3304 null 1009#1 2 null 0
|
||||||
|
3305 null 1009#1 1 null 0
|
||||||
|
3306 null 1009#1 2 null 0
|
||||||
|
3307 null 1009#1 1 null 0
|
||||||
|
3308 null 1009#1 2 null 0
|
||||||
|
3309 null 1009#1 1 null 0
|
||||||
|
3310 null 1009#1 2 null 0
|
||||||
|
3311 null 1009#1 1 null 0
|
||||||
|
3312 null 1009#1 2 null 0
|
||||||
|
3313 null 1009#1 1 null 0
|
||||||
|
3314 null 1009#1 2 null 0
|
||||||
|
3315 null 1009#1 1 null 0
|
||||||
|
3316 null 1009#1 2 null 0
|
||||||
|
3317 null 1009#1 1 null 0
|
||||||
|
3318 null 1009#1 2 null 0
|
||||||
|
4001 2#7001 1008#1 2 null 0
|
||||||
|
4002 2#7002 1008#1 2 null 0
|
||||||
|
4003 2#7003 1008#1 2 null 0
|
||||||
|
4004 2#7004 1008#1 2 null 0
|
||||||
|
4005 2#7005 1008#1 2 null 0
|
||||||
|
4006 2#7006 1008#1 2 null 0
|
||||||
|
4007 2#7007 1008#1 2 null 0
|
||||||
|
4008 2#7008 1008#1 2 null 0
|
||||||
|
4009 2#7009 1008#1 2 null 0
|
||||||
|
4101 2#7101 1009#1 2 null 0
|
||||||
|
4102 2#7102 1009#1 2 null 0
|
||||||
|
4103 2#7103 1009#1 2 null 0
|
||||||
|
4104 2#7104 1009#1 2 null 0
|
||||||
|
4105 2#7105 1009#1 2 null 0
|
||||||
|
4106 2#7106 1009#1 2 null 0
|
||||||
|
4107 2#7107 1009#1 2 null 0
|
||||||
|
4108 2#7108 1009#1 2 null 0
|
||||||
|
4109 2#7109 1009#1 2 null 0
|
||||||
|
4110 2#7110 1009#1 2 null 0
|
||||||
|
4111 2#7111 1009#1 2 null 0
|
||||||
|
4112 2#7112 1009#1 2 null 0
|
||||||
|
4113 2#7113 1009#1 2 null 0
|
||||||
|
4114 2#7114 1009#1 2 null 0
|
||||||
|
4115 2#7115 1009#1 2 null 0
|
||||||
|
4116 2#7116 1009#1 2 null 0
|
||||||
|
4117 2#7117 1009#1 2 null 0
|
||||||
|
4118 2#7118 1009#1 2 null 0
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
Id OpenRules Cost Exp
|
||||||
|
int mut,int#int,1 mut,int#int,2 int
|
||||||
|
1007 null null 0
|
||||||
|
1008 null null 0
|
||||||
|
1009 null null 0
|
||||||
|
0 null null 0
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
Id Quality MainCostQuality SecondaryCost
|
||||||
|
int int mut,int#int,1 mut,int#int,2
|
||||||
|
1 1 1#1 1007#100
|
||||||
|
2 2 2#1 1007#101
|
||||||
|
3 3 3#1 1007#102
|
||||||
|
4 4 4#1 1007#103
|
||||||
|
0 0 null null
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
Id Exp Promote
|
||||||
|
int int mut,int#int,1
|
||||||
|
0 0 null
|
||||||
|
1 1000 1#1
|
||||||
|
2 1500 2#1
|
||||||
|
3 2000 3#1
|
||||||
|
4 2500 4#1
|
||||||
|
5 2500 5#1
|
||||||
|
6 3500 1#3
|
||||||
|
7 4000 2#3
|
||||||
|
8 4500 3#3
|
||||||
|
9 5000 4#3
|
||||||
|
10 5500 5#3
|
||||||
|
11 6000 1#6
|
||||||
|
12 6500 2#6
|
||||||
|
13 7000 3#6
|
||||||
|
14 7500 4#6
|
||||||
|
15 8000 5#6
|
||||||
|
16 8500 1#10
|
||||||
|
17 9000 2#10
|
||||||
|
18 9500 3#10
|
||||||
|
19 10000 4#10
|
||||||
|
20 10500 5#10
|
||||||
|
21 11000 1#15
|
||||||
|
22 11500 2#15
|
||||||
|
23 12000 3#15
|
||||||
|
24 12500 4#15
|
||||||
|
25 13000 5#15
|
||||||
|
26 13500 1#21
|
||||||
|
27 14000 2#21
|
||||||
|
28 14500 3#21
|
||||||
|
29 15000 4#21
|
||||||
|
30 15500 5#21
|
||||||
|
31 16000 1#28
|
||||||
|
32 16500 2#28
|
||||||
|
33 17000 3#28
|
||||||
|
34 17500 4#28
|
||||||
|
35 18000 5#28
|
||||||
|
36 18500 1#36
|
||||||
|
37 19000 2#36
|
||||||
|
38 19500 3#36
|
||||||
|
39 20000 4#36
|
||||||
|
40 20500 5#36
|
||||||
|
41 21000 1#45
|
||||||
|
42 21500 2#45
|
||||||
|
43 22000 3#45
|
||||||
|
44 22500 4#45
|
||||||
|
45 23000 5#45
|
||||||
|
46 23500 1#55
|
||||||
|
47 24000 2#55
|
||||||
|
48 24500 3#55
|
||||||
|
49 25000 4#55
|
||||||
|
50 25500 5#55
|
||||||
|
51 26000 1#65
|
||||||
|
52 26500 2#65
|
||||||
|
53 27000 3#65
|
||||||
|
54 27500 4#65
|
||||||
|
55 28000 5#65
|
||||||
|
56 28500 1#76
|
||||||
|
57 29000 2#76
|
||||||
|
58 29500 3#76
|
||||||
|
59 30000 4#76
|
||||||
|
60 30500 5#76
|
||||||
|
61 31000 1#88
|
||||||
|
62 31500 2#88
|
||||||
|
63 32000 3#88
|
||||||
|
64 32500 4#88
|
||||||
|
65 33000 5#88
|
||||||
|
66 33500 1#101
|
||||||
|
67 34000 2#101
|
||||||
|
68 34500 3#101
|
||||||
|
69 35000 4#101
|
||||||
|
70 35500 5#101
|
||||||
|
71 36000 1#115
|
||||||
|
72 36500 2#115
|
||||||
|
73 37000 3#115
|
||||||
|
74 37500 4#115
|
||||||
|
75 38000 5#115
|
||||||
|
76 38500 1#130
|
||||||
|
77 39000 2#130
|
||||||
|
78 39500 3#130
|
||||||
|
79 40000 4#130
|
||||||
|
80 40500 5#130
|
||||||
|
81 41000 1#146
|
||||||
|
82 41500 2#146
|
||||||
|
83 42000 3#146
|
||||||
|
84 42500 4#146
|
||||||
|
85 43000 5#146
|
||||||
|
86 43500 1#163
|
||||||
|
87 44000 2#163
|
||||||
|
88 44500 3#163
|
||||||
|
89 45000 4#163
|
||||||
|
90 45500 5#163
|
||||||
|
91 46000 1#181
|
||||||
|
92 46500 2#181
|
||||||
|
93 47000 3#181
|
||||||
|
94 47500 4#181
|
||||||
|
95 48000 5#181
|
||||||
|
96 48500 1#200
|
||||||
|
97 49000 2#200
|
||||||
|
98 49500 3#200
|
||||||
|
99 50000 4#200
|
||||||
|
100 50500 5#200
|
||||||
|
|
@ -28,6 +28,8 @@ public class SEquipConfig implements BaseConfig {
|
||||||
|
|
||||||
private int skillId;
|
private int skillId;
|
||||||
|
|
||||||
|
private int quality;
|
||||||
|
|
||||||
private int ifClear;
|
private int ifClear;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -80,5 +82,7 @@ public class SEquipConfig implements BaseConfig {
|
||||||
return ifClear;
|
return ifClear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getQuality() {
|
||||||
|
return quality;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
package com.ljsd.jieling.config;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="RunesConfig")
|
||||||
|
public class SRunesConfig implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int mainPool;
|
||||||
|
|
||||||
|
private int mainNum;
|
||||||
|
|
||||||
|
private int pool;
|
||||||
|
|
||||||
|
private int secondNumMin;
|
||||||
|
|
||||||
|
private int secondNumMax;
|
||||||
|
|
||||||
|
private static Map<Integer,SRunesConfig> sRunesConfigMap;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
sRunesConfigMap = STableManager.getConfig(SRunesConfig.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SRunesConfig getsRunesConfigById(int runneId) {
|
||||||
|
return sRunesConfigMap.get(runneId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMainPool() {
|
||||||
|
return mainPool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMainNum() {
|
||||||
|
return mainNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPool() {
|
||||||
|
return pool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSecondNumMin() {
|
||||||
|
return secondNumMin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSecondNumMax() {
|
||||||
|
return secondNumMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package com.ljsd.jieling.config;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="RunesPoolConfig")
|
||||||
|
public class SRunesPoolConfig implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int propertyId;
|
||||||
|
|
||||||
|
private int min;
|
||||||
|
|
||||||
|
private int max;
|
||||||
|
|
||||||
|
private int poolNum;
|
||||||
|
|
||||||
|
private int weight;
|
||||||
|
|
||||||
|
private static Map<Integer,List<SRunesPoolConfig>> sRunesPoolConfigsByPoolNum;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
Map<Integer,List<SRunesPoolConfig>> sRunesPoolConfigsByPoolNumTmp = new HashMap<>();
|
||||||
|
Map<Integer, SRunesPoolConfig> config = STableManager.getConfig(SRunesPoolConfig.class);
|
||||||
|
for(SRunesPoolConfig sRunesPoolConfig : config.values()){
|
||||||
|
int poolNum = sRunesPoolConfig.getPoolNum();
|
||||||
|
if(!sRunesPoolConfigsByPoolNumTmp.containsKey(poolNum)){
|
||||||
|
sRunesPoolConfigsByPoolNumTmp.put(poolNum,new ArrayList<>());
|
||||||
|
}
|
||||||
|
sRunesPoolConfigsByPoolNumTmp.get(poolNum).add(sRunesPoolConfig);
|
||||||
|
}
|
||||||
|
sRunesPoolConfigsByPoolNum = sRunesPoolConfigsByPoolNumTmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<SRunesPoolConfig> getsRunesPoolConfigsByPoolNum(int poolNum) {
|
||||||
|
return sRunesPoolConfigsByPoolNum.get(poolNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPropertyId() {
|
||||||
|
return propertyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMin() {
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMax() {
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPoolNum() {
|
||||||
|
return poolNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWeight() {
|
||||||
|
return weight;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
package com.ljsd.jieling.config;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="WorkShopEquipmentConfig")
|
||||||
|
public class SWorkShopEquipmentConfig implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int[] openRules;
|
||||||
|
|
||||||
|
private int[] mineral;
|
||||||
|
|
||||||
|
private int runesNum;
|
||||||
|
|
||||||
|
private int[] specialRunes;
|
||||||
|
|
||||||
|
private int exp;
|
||||||
|
|
||||||
|
private static Map<Integer,SWorkShopEquipmentConfig> sWorkShopEquipmentConfigMap;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
sWorkShopEquipmentConfigMap = STableManager.getConfig(SWorkShopEquipmentConfig.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<Integer, SWorkShopEquipmentConfig> getsWorkShopEquipmentConfigMap() {
|
||||||
|
return sWorkShopEquipmentConfigMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getOpenRules() {
|
||||||
|
return openRules;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getMineral() {
|
||||||
|
return mineral;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRunesNum() {
|
||||||
|
return runesNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getSpecialRunes() {
|
||||||
|
return specialRunes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExp() {
|
||||||
|
return exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.ljsd.jieling.config;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="WorkShopFoundationConfig")
|
||||||
|
public class SWorkShopFoundationConfig implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int[] openRules;
|
||||||
|
|
||||||
|
private int[][] cost;
|
||||||
|
|
||||||
|
private int exp;
|
||||||
|
|
||||||
|
private static Map<Integer,SWorkShopFoundationConfig> shopFoundationConfigMap;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
shopFoundationConfigMap = STableManager.getConfig(SWorkShopFoundationConfig.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<Integer, SWorkShopFoundationConfig> getShopFoundationConfigMap() {
|
||||||
|
return shopFoundationConfigMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getOpenRules() {
|
||||||
|
return openRules;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[][] getCost() {
|
||||||
|
return cost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExp() {
|
||||||
|
return exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
package com.ljsd.jieling.config;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="WorkShopRebuildConfig")
|
||||||
|
public class SWorkShopRebuildConfig implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int quality;
|
||||||
|
|
||||||
|
private int[] mainCostQuality;
|
||||||
|
|
||||||
|
private int[][] secondaryCost;
|
||||||
|
|
||||||
|
private static Map<Integer,SWorkShopRebuildConfig> sWorkShopRebuildConfigMap;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
Map<Integer,SWorkShopRebuildConfig> result = new HashMap<>();
|
||||||
|
Map<Integer, SWorkShopRebuildConfig> config = STableManager.getConfig(SWorkShopRebuildConfig.class);
|
||||||
|
for(SWorkShopRebuildConfig item : config.values()){
|
||||||
|
int quality = item.getQuality();
|
||||||
|
result.put(quality,item);
|
||||||
|
}
|
||||||
|
sWorkShopRebuildConfigMap = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SWorkShopRebuildConfig getsWorkShopRebuildConfigByQulity(int quality) {
|
||||||
|
return sWorkShopRebuildConfigMap.get(quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getQuality() {
|
||||||
|
return quality;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getMainCostQuality() {
|
||||||
|
return mainCostQuality;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[][] getSecondaryCost() {
|
||||||
|
return secondaryCost;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
package com.ljsd.jieling.config;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="WorkShopSetting")
|
||||||
|
public class SWorkShopSetting implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int exp;
|
||||||
|
|
||||||
|
private int[] promote;
|
||||||
|
|
||||||
|
private Map<Integer,Integer> promoteMap;
|
||||||
|
|
||||||
|
private static int maxExp;
|
||||||
|
|
||||||
|
|
||||||
|
private static Map<Integer,SWorkShopSetting> sWorkShopSettingMap;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
Map<Integer, SWorkShopSetting> sWorkShopSettingMapTmp = sWorkShopSettingMap = STableManager.getConfig(SWorkShopSetting.class);
|
||||||
|
Map<Integer,Integer> promoteMapTmp = new HashMap<>();
|
||||||
|
int maxExpTmp = 0;
|
||||||
|
int exp =0;
|
||||||
|
for(SWorkShopSetting sWorkShopSetting : sWorkShopSettingMapTmp.values()){
|
||||||
|
if(sWorkShopSetting.getId() == 0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
exp+=sWorkShopSetting.getExp();
|
||||||
|
int[] promote = sWorkShopSetting.getPromote();
|
||||||
|
promoteMapTmp.put(promote[0],promote[1]);
|
||||||
|
sWorkShopSetting.setPromoteMap(promoteMapTmp);
|
||||||
|
maxExpTmp+=sWorkShopSetting.getExp();
|
||||||
|
sWorkShopSetting.setExp(exp);
|
||||||
|
}
|
||||||
|
sWorkShopSettingMap = sWorkShopSettingMapTmp;
|
||||||
|
maxExp = maxExpTmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getMaxExp() {
|
||||||
|
return maxExp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SWorkShopSetting getsWorkShopSettingByLevel(int levle) {
|
||||||
|
return sWorkShopSettingMap.get(levle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExp() {
|
||||||
|
return exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getPromote() {
|
||||||
|
return promote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Integer, Integer> getPromoteMap() {
|
||||||
|
return promoteMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPromoteMap(Map<Integer, Integer> promoteMap) {
|
||||||
|
this.promoteMap = promoteMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExp(int exp) {
|
||||||
|
this.exp = exp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.ljsd.jieling.handler.workshop;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.item.WorkShopLogic;
|
||||||
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class WorkShopEquipCreateHandler extends BaseHandler {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||||
|
byte[] bytes = netData.parseClientProtoNetData();
|
||||||
|
PlayerInfoProto.WorkShopEquipCreateRequest workShopEquipCreateRequest = PlayerInfoProto.WorkShopEquipCreateRequest.parseFrom(bytes);
|
||||||
|
int equipTid = workShopEquipCreateRequest.getEquipTid();
|
||||||
|
List<Integer> runneIdsList = workShopEquipCreateRequest.getRunneIdsList();
|
||||||
|
WorkShopLogic.getInstance().createEquipByUser(iSession,equipTid,runneIdsList);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.ljsd.jieling.handler.workshop;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.item.WorkShopLogic;
|
||||||
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class WorkShopFoundationHandler extends BaseHandler {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||||
|
byte[] bytes = netData.parseClientProtoNetData();
|
||||||
|
PlayerInfoProto.WorkShopFoundationRequest workShopFoundationRequest = PlayerInfoProto.WorkShopFoundationRequest.parseFrom(bytes);
|
||||||
|
int materialId = workShopFoundationRequest.getMaterialId();
|
||||||
|
int nums = workShopFoundationRequest.getNums();
|
||||||
|
WorkShopLogic.getInstance().createMaterialByUser(iSession,materialId,nums);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.ljsd.jieling.handler.workshop;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.item.WorkShopLogic;
|
||||||
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class WorkShopRebuildHandler extends BaseHandler {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.WORKSHOP_REBUILD_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||||
|
byte[] bytes = netData.parseClientProtoNetData();
|
||||||
|
PlayerInfoProto.WorkShopRebuildRequest workShopRebuildRequest = PlayerInfoProto.WorkShopRebuildRequest.parseFrom(bytes);
|
||||||
|
List<String> consumeEquipIdsList = workShopRebuildRequest.getConsumeEquipIdsList();
|
||||||
|
String equipId = workShopRebuildRequest.getEquipId();
|
||||||
|
WorkShopLogic.getInstance().rebuildEquip(iSession,equipId,consumeEquipIdsList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
package com.ljsd.jieling.logic.dao;
|
package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
import com.ljsd.jieling.config.SEquipConfig;
|
import com.ljsd.jieling.config.*;
|
||||||
import com.ljsd.jieling.config.SEquipPropertyPool;
|
|
||||||
import com.ljsd.jieling.util.KeyGenUtils;
|
import com.ljsd.jieling.util.KeyGenUtils;
|
||||||
import com.ljsd.jieling.util.MathUtils;
|
import com.ljsd.jieling.util.MathUtils;
|
||||||
import com.ljsd.jieling.util.UUIDEnum;
|
import com.ljsd.jieling.util.UUIDEnum;
|
||||||
|
|
@ -23,21 +22,17 @@ public class Equip extends MongoBase {
|
||||||
|
|
||||||
private String heroId;
|
private String heroId;
|
||||||
|
|
||||||
private Map<Integer,Integer> propertyValueByIdMap; //主属性 key 对应PropertyConfig id
|
private Map<Integer, Integer> propertyValueByIdMap; //主属性 key 对应PropertyConfig id
|
||||||
|
|
||||||
private Map<Integer,Integer> secondValueByIdMap; //副属性
|
private Map<Integer, Integer> secondValueByIdMap; //副属性
|
||||||
|
|
||||||
|
|
||||||
|
public Equip() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Equip(){
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Equip(String uid,int equipTid){
|
public Equip(String uid, int equipTid) {
|
||||||
this.id = KeyGenUtils.produceIdByModule(UUIDEnum.EQUIP,uid);
|
this.id = KeyGenUtils.produceIdByModule(UUIDEnum.EQUIP, uid);
|
||||||
this.equipId = equipTid;
|
this.equipId = equipTid;
|
||||||
this.propertyValueByIdMap = new HashMap<>();
|
this.propertyValueByIdMap = new HashMap<>();
|
||||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipTid);
|
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipTid);
|
||||||
|
|
@ -45,11 +40,83 @@ public class Equip extends MongoBase {
|
||||||
int properMinNum = sEquipConfig.getPropertyMin()[1];
|
int properMinNum = sEquipConfig.getPropertyMin()[1];
|
||||||
int properMaxNum = sEquipConfig.getPropertyMax()[1];
|
int properMaxNum = sEquipConfig.getPropertyMax()[1];
|
||||||
int finalProperValue = MathUtils.random(properMinNum, properMaxNum);
|
int finalProperValue = MathUtils.random(properMinNum, properMaxNum);
|
||||||
this.propertyValueByIdMap.put(properTyId,finalProperValue);
|
this.propertyValueByIdMap.put(properTyId, finalProperValue);
|
||||||
int secondNumMin = sEquipConfig.getSecondNumMin();
|
int secondNumMin = sEquipConfig.getSecondNumMin();
|
||||||
int secondNumMax = sEquipConfig.getSecondNumMax();
|
int secondNumMax = sEquipConfig.getSecondNumMax();
|
||||||
int secondValue = MathUtils.random(secondNumMin, secondNumMax);
|
int secondValue = MathUtils.random(secondNumMin, secondNumMax);
|
||||||
this.secondValueByIdMap = getSecondValue(sEquipConfig.getPool(),secondValue);
|
this.secondValueByIdMap = getSecondValue(sEquipConfig.getPool(), secondValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
//锻造
|
||||||
|
public Equip(String uid, int equipTid,int workShopLevle,List<Integer> runneIds) {
|
||||||
|
this.id =KeyGenUtils.produceIdByModule(UUIDEnum.EQUIP,uid);
|
||||||
|
this.equipId = equipTid;
|
||||||
|
this.propertyValueByIdMap = new HashMap<>();
|
||||||
|
this.secondValueByIdMap = new HashMap<>();
|
||||||
|
SWorkShopSetting sWorkShopSetting = SWorkShopSetting.getsWorkShopSettingByLevel(workShopLevle);
|
||||||
|
Map<Integer, Integer> promoteMap = new HashMap<>();
|
||||||
|
if( sWorkShopSetting != null && sWorkShopSetting.getPromoteMap()!=null){
|
||||||
|
promoteMap = sWorkShopSetting.getPromoteMap();
|
||||||
|
}
|
||||||
|
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipTid);
|
||||||
|
int properTyId = sEquipConfig.getPropertyMin()[0];
|
||||||
|
Integer propertyPromote = promoteMap.get(properTyId);
|
||||||
|
if(propertyPromote == null){
|
||||||
|
propertyPromote = 0;
|
||||||
|
}
|
||||||
|
int properMinNum = sEquipConfig.getPropertyMin()[1];
|
||||||
|
int properMaxNum = sEquipConfig.getPropertyMax()[1];
|
||||||
|
int finalProperValue = MathUtils.random(properMinNum * (100 + propertyPromote) / 100, properMaxNum* (100 + propertyPromote) / 100);
|
||||||
|
this.propertyValueByIdMap.put(properTyId,finalProperValue);
|
||||||
|
setForRunnes(runneIds);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setForRunnes(List<Integer> runneIds){
|
||||||
|
Map<Integer,Integer> result = new HashMap<>();
|
||||||
|
for(Integer runneId : runneIds ){
|
||||||
|
SRunesConfig sRunesConfig = SRunesConfig.getsRunesConfigById(runneId);
|
||||||
|
int secondPool = sRunesConfig.getPool();
|
||||||
|
int secondNumMin = sRunesConfig.getSecondNumMin();
|
||||||
|
int secondNumMax = sRunesConfig.getSecondNumMax();
|
||||||
|
int secondValue = MathUtils.random(secondNumMin, secondNumMax);
|
||||||
|
randomForRunne(secondPool,secondValue,result);
|
||||||
|
|
||||||
|
int mainPool = sRunesConfig.getMainPool();
|
||||||
|
int mainNum = sRunesConfig.getMainNum();
|
||||||
|
|
||||||
|
randomForRunne(mainPool,mainNum,result);
|
||||||
|
}
|
||||||
|
secondValueByIdMap = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void randomForRunne(int poolId,int nums,Map<Integer,Integer> secondValueByIdMap){
|
||||||
|
List<SRunesPoolConfig> sRunesPoolConfigs = SRunesPoolConfig.getsRunesPoolConfigsByPoolNum(poolId);
|
||||||
|
Map<Integer,Integer> result = new HashMap<>();
|
||||||
|
int totalWeight = 0;
|
||||||
|
for(SRunesPoolConfig sRunesPoolConfig: sRunesPoolConfigs){
|
||||||
|
totalWeight+=sRunesPoolConfig.getWeight();
|
||||||
|
}
|
||||||
|
while (result.size()<nums){
|
||||||
|
int weight = 0;
|
||||||
|
int randomWeight = MathUtils.randomInt(totalWeight) +1;
|
||||||
|
for(SRunesPoolConfig sRunesPoolConfig : sRunesPoolConfigs){
|
||||||
|
weight+=sRunesPoolConfig.getWeight();
|
||||||
|
if(randomWeight<weight){
|
||||||
|
int random = MathUtils.random(sRunesPoolConfig.getMin(), sRunesPoolConfig.getMax());
|
||||||
|
result.put(sRunesPoolConfig.getId(),random);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(Integer propertyId : result.values()){
|
||||||
|
Integer value = result.get(propertyId);
|
||||||
|
if(secondValueByIdMap.containsKey(propertyId)){
|
||||||
|
secondValueByIdMap.put(propertyId,secondValueByIdMap.get(propertyId)+value);
|
||||||
|
}else{
|
||||||
|
secondValueByIdMap.put(propertyId,value);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<Integer,Integer> getSecondValue(int poolId,int nums){
|
private Map<Integer,Integer> getSecondValue(int poolId,int nums){
|
||||||
|
|
@ -75,6 +142,36 @@ public class Equip extends MongoBase {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void rebuildEquip(int workShopLevle){
|
||||||
|
SWorkShopSetting sWorkShopSetting = SWorkShopSetting.getsWorkShopSettingByLevel(workShopLevle);
|
||||||
|
if( null == sWorkShopSetting ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<Integer, Integer> promoteMap = sWorkShopSetting.getPromoteMap();
|
||||||
|
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(this.equipId);
|
||||||
|
int properTyId = sEquipConfig.getPropertyMin()[0];
|
||||||
|
Integer propertyPromote = promoteMap.get(properTyId);
|
||||||
|
int properMinNum = sEquipConfig.getPropertyMin()[1];
|
||||||
|
int properMaxNum = sEquipConfig.getPropertyMax()[1];
|
||||||
|
int finalProperValue = MathUtils.random(properMinNum * (100 + propertyPromote) / 100, properMaxNum* (100 + propertyPromote) / 100);
|
||||||
|
this.propertyValueByIdMap.put(properTyId,finalProperValue);
|
||||||
|
|
||||||
|
List<SEquipPropertyPool> sEquipPropertyPoolList = SEquipPropertyPool.getSEquipPropertyPool(sEquipConfig.getPool());
|
||||||
|
for(SEquipPropertyPool sEquipPropertyPool : sEquipPropertyPoolList){
|
||||||
|
Integer secondPropertyId = secondValueByIdMap.get(sEquipPropertyPool.getId());
|
||||||
|
if(secondPropertyId == null ){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Integer secondPropertyPromote = promoteMap.get(secondPropertyId);
|
||||||
|
if(secondPropertyPromote == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int value = MathUtils.random(sEquipPropertyPool.getMin() * (100 + secondPropertyPromote) / 100, sEquipPropertyPool.getMax()* (100 + secondPropertyPromote) / 100);
|
||||||
|
secondValueByIdMap.put(secondPropertyId,value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,17 @@ package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class EquipManager extends MongoBase {
|
public class EquipManager extends MongoBase {
|
||||||
|
|
||||||
private Map<String,Equip> equipMap;
|
private Map<String,Equip> equipMap;
|
||||||
|
|
||||||
|
public EquipManager() {
|
||||||
|
this.equipMap = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
public void addEquip(Equip equip) throws Exception {
|
public void addEquip(Equip equip) throws Exception {
|
||||||
updateString("equipMap." + equip.getId(),equip);
|
updateString("equipMap." + equip.getId(),equip);
|
||||||
equipMap.put(equip.getId(),equip);
|
equipMap.put(equip.getId(),equip);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
|
import com.ljsd.jieling.config.SWorkShopSetting;
|
||||||
|
import com.ljsd.jieling.util.MathUtils;
|
||||||
|
|
||||||
public class PlayerManager extends MongoBase {
|
public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
|
|
@ -27,10 +29,39 @@ public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
private int mapId;
|
private int mapId;
|
||||||
|
|
||||||
|
private int workShopLevel;
|
||||||
|
|
||||||
|
private int workShopExp;
|
||||||
|
|
||||||
private long createTime; //创建时间
|
private long createTime; //创建时间
|
||||||
|
|
||||||
private String clientVersion;
|
private String clientVersion;
|
||||||
|
|
||||||
|
public void addWorkShopExp(int addExp) throws Exception {
|
||||||
|
int maxExp = SWorkShopSetting.getMaxExp();
|
||||||
|
if(this.workShopExp >= maxExp){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SWorkShopSetting sWorkShopSetting = SWorkShopSetting.getsWorkShopSettingByLevel(this.workShopLevel + 1);
|
||||||
|
int needLevelExp;
|
||||||
|
if (sWorkShopSetting == null) {
|
||||||
|
needLevelExp = maxExp;
|
||||||
|
} else {
|
||||||
|
needLevelExp = sWorkShopSetting.getExp();
|
||||||
|
}
|
||||||
|
int curExp = MathUtils.setBetweenWithMax(this.workShopExp + addExp, 0, maxExp);
|
||||||
|
while(curExp>=needLevelExp && curExp <= maxExp){
|
||||||
|
setWorkShopLevel(this.workShopLevel++);
|
||||||
|
sWorkShopSetting = SWorkShopSetting.getsWorkShopSettingByLevel(this.workShopLevel + 1);
|
||||||
|
if(null == sWorkShopSetting){
|
||||||
|
needLevelExp = Integer.MAX_VALUE;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
needLevelExp = sWorkShopSetting.getExp();
|
||||||
|
}
|
||||||
|
setWorkShopExp(curExp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getOpenId() {
|
public String getOpenId() {
|
||||||
return openId;
|
return openId;
|
||||||
|
|
@ -147,4 +178,22 @@ public class PlayerManager extends MongoBase {
|
||||||
updateString("clientVersion", clientVersion);
|
updateString("clientVersion", clientVersion);
|
||||||
this.clientVersion = clientVersion;
|
this.clientVersion = clientVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getWorkShopLevel() {
|
||||||
|
return workShopLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkShopLevel(int workShopLevel) throws Exception {
|
||||||
|
updateString("workShopLevel", workShopLevel);
|
||||||
|
this.workShopLevel = workShopLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWorkShopExp() {
|
||||||
|
return workShopExp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkShopExp(int workShopExp) throws Exception {
|
||||||
|
updateString("workShopExp", workShopExp);
|
||||||
|
this.workShopExp = workShopExp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
package com.ljsd.jieling.logic.item;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.config.SEquipConfig;
|
||||||
|
import com.ljsd.jieling.config.SWorkShopEquipmentConfig;
|
||||||
|
import com.ljsd.jieling.config.SWorkShopFoundationConfig;
|
||||||
|
import com.ljsd.jieling.config.SWorkShopRebuildConfig;
|
||||||
|
import com.ljsd.jieling.logic.dao.Equip;
|
||||||
|
import com.ljsd.jieling.logic.dao.EquipManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.User;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工坊相关
|
||||||
|
*/
|
||||||
|
public class WorkShopLogic {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(WorkShopLogic.class);
|
||||||
|
|
||||||
|
private WorkShopLogic(){}
|
||||||
|
|
||||||
|
public static class Instance {
|
||||||
|
public final static WorkShopLogic instance = new WorkShopLogic();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WorkShopLogic getInstance() {
|
||||||
|
return WorkShopLogic.Instance.instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void times2Array(int [][] array,int times){
|
||||||
|
for(int[] a :array){
|
||||||
|
a[1] =a[1]*times;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//基础打造
|
||||||
|
public void createMaterialByUser(ISession session, int materialId, int nums) throws Exception {
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
SWorkShopFoundationConfig sWorkShopFoundationConfig = SWorkShopFoundationConfig.getShopFoundationConfigMap().get(materialId);
|
||||||
|
int[][] cost = sWorkShopFoundationConfig.getCost();
|
||||||
|
times2Array(cost,nums);
|
||||||
|
if( !ItemUtil.itemCost(user, cost)){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,"道具不足");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<Integer,Integer> finalMaterial = new HashMap<>();
|
||||||
|
finalMaterial.put(materialId,nums);
|
||||||
|
ItemUtil.addItem(user,finalMaterial,null);
|
||||||
|
|
||||||
|
//熟练度提升
|
||||||
|
int addExp = sWorkShopFoundationConfig.getExp();
|
||||||
|
user.getPlayerInfoManager().addWorkShopExp(addExp);
|
||||||
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,null,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//装备打造
|
||||||
|
public void createEquipByUser(ISession session, int equipTid, List<Integer> runneIdsList) throws Exception {
|
||||||
|
int uid=session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
SWorkShopEquipmentConfig sWorkShopEquipmentConfig = SWorkShopEquipmentConfig.getsWorkShopEquipmentConfigMap().get(equipTid);
|
||||||
|
int runesNum = sWorkShopEquipmentConfig.getRunesNum();
|
||||||
|
int[] specialRunes = sWorkShopEquipmentConfig.getSpecialRunes();
|
||||||
|
int needNums = runesNum - specialRunes.length;
|
||||||
|
if(runneIdsList.size()!=needNums){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_RESPONSE_VALUE,"符文错误");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int costLength = runesNum + 1;
|
||||||
|
int[][] costs = new int[costLength][];
|
||||||
|
if(runneIdsList.size() ==0){
|
||||||
|
runneIdsList =new ArrayList<>(specialRunes.length);
|
||||||
|
}
|
||||||
|
for(Integer runneId : runneIdsList){
|
||||||
|
costs[--costLength] = new int[]{runneId,1};
|
||||||
|
}
|
||||||
|
for(Integer specialRunneId : specialRunes){
|
||||||
|
costs[--costLength] = new int[]{specialRunneId,1};
|
||||||
|
runneIdsList.add(specialRunneId);
|
||||||
|
}
|
||||||
|
costs[--costLength] = sWorkShopEquipmentConfig.getMineral();
|
||||||
|
/* boolean enoughCost = ItemUtil.itemCost(user,costs);
|
||||||
|
if(!enoughCost){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_RESPONSE_VALUE,"道具不足");
|
||||||
|
return;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
//熟练度提升
|
||||||
|
int addExp = sWorkShopEquipmentConfig.getExp();
|
||||||
|
user.getPlayerInfoManager().addWorkShopExp(addExp);
|
||||||
|
Equip equip = new Equip(Integer.toString(uid), equipTid, user.getPlayerInfoManager().getWorkShopLevel(),runneIdsList);
|
||||||
|
user.getEquipManager().addEquip(equip);
|
||||||
|
|
||||||
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_RESPONSE_VALUE,null,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//装备重铸
|
||||||
|
public void rebuildEquip(ISession session, String equipId, List<String> consumeEquipIds) throws Exception {
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
EquipManager equipManager = user.getEquipManager();
|
||||||
|
Map<String, Equip> equipMap = equipManager.getEquipMap();
|
||||||
|
Equip equip = equipMap.get(equipId);
|
||||||
|
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equip.getEquipId());
|
||||||
|
if(sEquipConfig.getIfClear() == 0){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_REBUILD_RESPONSE_VALUE,"");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String err = checkForRebuildEquip(user, consumeEquipIds, sEquipConfig);
|
||||||
|
if(!"".equals(err)){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_REBUILD_RESPONSE_VALUE,err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
equip.rebuildEquip(user.getPlayerInfoManager().getWorkShopLevel());
|
||||||
|
equipManager.addEquip(equip);
|
||||||
|
|
||||||
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_REBUILD_RESPONSE_VALUE,null,true);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private String checkForRebuildEquip( User user,List<String> consumeEquipIds,SEquipConfig sEquipConfig) throws Exception {
|
||||||
|
EquipManager equipManager = user.getEquipManager();
|
||||||
|
Map<String, Equip> equipMap = equipManager.getEquipMap();
|
||||||
|
SWorkShopRebuildConfig sWorkShopRebuildConfig = SWorkShopRebuildConfig.getsWorkShopRebuildConfigByQulity(sEquipConfig.getQuality());
|
||||||
|
//重铸祭品
|
||||||
|
boolean costResult = true;
|
||||||
|
int[] mainCostQuality = sWorkShopRebuildConfig.getMainCostQuality();
|
||||||
|
int[][] secondaryCost = sWorkShopRebuildConfig.getSecondaryCost();
|
||||||
|
Set<String> cacheEquipIdsd = new HashSet<>();
|
||||||
|
if(consumeEquipIds.size()!=mainCostQuality[1]){
|
||||||
|
return "祭品数量不对";
|
||||||
|
}
|
||||||
|
for(String consumeEquipId : consumeEquipIds){
|
||||||
|
Equip consumeEquip = equipMap.get(consumeEquipId);
|
||||||
|
if(consumeEquip == null){
|
||||||
|
costResult = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SEquipConfig consumeSEquipConfig = SEquipConfig.getsEquipConfigById(consumeEquip.getEquipId());
|
||||||
|
if(consumeSEquipConfig.getQuality()!=mainCostQuality[0]){
|
||||||
|
costResult = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(cacheEquipIdsd.contains(consumeEquipId)){
|
||||||
|
costResult = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cacheEquipIdsd.add(consumeEquipId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!costResult){
|
||||||
|
return "祭品错误";
|
||||||
|
}
|
||||||
|
costResult = ItemUtil.itemCost(user,secondaryCost);
|
||||||
|
if(!costResult){
|
||||||
|
return "道具不足";
|
||||||
|
}
|
||||||
|
for(String equipRemoveId : consumeEquipIds){
|
||||||
|
equipManager.remove(equipRemoveId);
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -19,6 +19,8 @@ public class CBean2Proto {
|
||||||
.setVipLevel(playerManager.getVipLevel())
|
.setVipLevel(playerManager.getVipLevel())
|
||||||
.setFamilyId(playerManager.getFamilyId())
|
.setFamilyId(playerManager.getFamilyId())
|
||||||
.setHead(playerManager.getHead())
|
.setHead(playerManager.getHead())
|
||||||
|
.setWorkLevel(playerManager.getWorkShopLevel())
|
||||||
|
.setWorkExp(playerManager.getWorkShopExp())
|
||||||
.build();
|
.build();
|
||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,4 +94,22 @@ public class MathUtils {
|
||||||
return Math.round(num);
|
return Math.round(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 限置为 >=min <= max的值
|
||||||
|
*
|
||||||
|
* @param original
|
||||||
|
* @param min
|
||||||
|
* @param max
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static int setBetweenWithMax(int original, int min, int max) {
|
||||||
|
if (original >= max) {
|
||||||
|
original = max;
|
||||||
|
}
|
||||||
|
if (original < min) {
|
||||||
|
original = min;
|
||||||
|
}
|
||||||
|
return original;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,14 @@ import io.netty.channel.socket.nio.NioSocketChannel;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class NettyClient {
|
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 = 10000061;
|
private static int uid = 40000072;
|
||||||
private static int msgIndex = 1;
|
private static int msgIndex = 1;
|
||||||
private static int token=543242;
|
private static int token=543242;
|
||||||
|
|
||||||
|
|
@ -45,9 +48,23 @@ public class NettyClient {
|
||||||
// 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));
|
||||||
// handler.sendRequest_jieling(makeFinalMessage(gmRequest(11001), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
// handler.sendRequest_jieling(makeFinalMessage(gmRequest(11001), 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(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));
|
// handler.sendRequest_jieling(makeFinalMessage(heroComperRequest(1001,10), MessageTypeProto.MessageType.HERO_COMPOSE_REQUEST_VALUE));
|
||||||
// }
|
// }10052
|
||||||
|
// handler.sendRequest_jieling(makeFinalMessage(gmRequest(10052), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
||||||
|
// handler.sendRequest_jieling(makeFinalMessage(gmRequest(10052), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
||||||
|
// handler.sendRequest_jieling(makeFinalMessage(upHeroLevel("10000072010015487337620000"), MessageTypeProto.MessageType.UP_HERO_LEVEL_REQUEST_VALUE));
|
||||||
|
/* try {
|
||||||
|
Map<Integer, SCHero> config = STableManager.getConfig(SCHero.class);
|
||||||
|
for(Integer heroId : config.keySet()){
|
||||||
|
handler.sendRequest_jieling(makeFinalMessage(gmRequest(heroId), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}*/
|
||||||
|
handler.sendRequest_jieling(makeFinalMessage(createEquip(3001), MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_REQUEST_VALUE));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -91,7 +108,21 @@ public class NettyClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CommonProto.GMCommand gmRequest(int itemId){
|
public static CommonProto.GMCommand gmRequest(int itemId){
|
||||||
return CommonProto.GMCommand.newBuilder().setCommand("1#"+itemId+"#10").build();
|
return CommonProto.GMCommand.newBuilder().setCommand("2#"+itemId+"#1").build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HeroInfoProto.UpHeroStarRequest upHeroStar(){
|
||||||
|
String heroId = "";
|
||||||
|
List<HeroInfoProto.ConsumeMaterial> consumeMaterialsList = new ArrayList<>();
|
||||||
|
consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(1).addHeroIds("").build());
|
||||||
|
consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(2).addHeroIds("").build());
|
||||||
|
consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(3).addHeroIds("").build());
|
||||||
|
consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(4).addHeroIds("").build());
|
||||||
|
return HeroInfoProto.UpHeroStarRequest.newBuilder().setHeroId(heroId).addAllConsumeMaterials(consumeMaterialsList).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HeroInfoProto.UpHeroLevelRequest upHeroLevel(String heroId){
|
||||||
|
return HeroInfoProto.UpHeroLevelRequest.newBuilder().setHeroId(heroId).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -107,4 +138,12 @@ public class NettyClient {
|
||||||
return registerRequest;
|
return registerRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工坊
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static PlayerInfoProto.WorkShopEquipCreateRequest createEquip(int equipTid){
|
||||||
|
return PlayerInfoProto.WorkShopEquipCreateRequest.newBuilder().setEquipTid(equipTid).build();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue