back_recharge
wangyuan 2019-02-14 17:54:50 +08:00
parent 409e11e308
commit 760ce77dfe
24 changed files with 1235 additions and 137 deletions

View File

@ -1,119 +1,119 @@
Id 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
3001 1501 1 2#42 2#70 1 0 0 0 0
3002 1501 1 2#42 2#70 1 0 0 0 0
3003 1502 1 2#42 2#70 1 0 0 0 0
3004 1502 1 2#42 2#70 1 0 0 0 0
3005 1503 1 2#42 2#70 1 0 0 0 0
3006 1503 1 2#42 2#70 1 0 0 0 0
3007 1504 1 2#42 2#70 1 0 0 0 0
3008 1504 1 2#42 2#70 1 0 0 0 0
3009 1505 1 2#42 2#70 1 0 0 0 0
3010 1505 1 2#42 2#70 1 0 0 0 0
3011 0 2 3#43 3#72 1 0 0 0 0
3012 0 2 3#43 3#72 1 0 0 0 0
3013 0 2 4#40 4#67 1 0 0 0 0
3014 0 2 4#40 4#67 1 0 0 0 0
3015 0 4 5#24 5#28 1 0 0 0 0
3016 0 4 5#24 5#28 1 0 0 0 0
3017 0 3 1#460 1#767 1 0 0 0 0
3018 0 3 1#460 1#767 1 0 0 0 0
3101 1501 1 2#56 2#93 1 0 1 0 0
3102 1501 1 2#56 2#93 1 0 1 0 0
3103 1502 1 2#56 2#93 1 0 1 0 0
3104 1502 1 2#56 2#93 1 0 1 0 0
3105 1503 1 2#56 2#93 1 0 1 0 0
3106 1503 1 2#56 2#93 1 0 1 0 0
3107 1504 1 2#56 2#93 1 0 1 0 0
3108 1504 1 2#56 2#93 1 0 1 0 0
3109 1505 1 2#56 2#93 1 0 1 0 0
3110 1505 1 2#56 2#93 1 0 1 0 0
3111 0 2 3#58 3#96 2 0 1 0 0
3112 0 2 3#58 3#96 2 0 1 0 0
3113 0 2 4#54 4#90 2 0 1 0 0
3114 0 2 4#54 4#90 2 0 1 0 0
3115 0 4 5#48 5#56 3 0 1 0 0
3116 0 4 5#48 5#56 3 0 1 0 0
3117 0 3 1#616 1#1027 4 0 1 0 0
3118 0 3 1#616 1#1027 4 0 1 0 0
3201 1501 1 2#72 2#120 5 1 3 0 1
3202 1501 1 2#72 2#120 5 1 3 0 1
3203 1502 1 2#72 2#120 5 1 3 0 1
3204 1502 1 2#72 2#120 5 1 3 0 1
3205 1503 1 2#72 2#120 5 1 3 0 1
3206 1503 1 2#72 2#120 5 1 3 0 1
3207 1504 1 2#72 2#120 5 1 3 0 1
3208 1504 1 2#72 2#120 5 1 3 0 1
3209 1505 1 2#72 2#120 5 1 3 0 1
3210 1505 1 2#72 2#120 5 1 3 0 1
3211 0 2 3#74 3#124 6 1 3 0 1
3212 0 2 3#74 3#124 6 1 3 0 1
3213 0 2 4#70 4#116 6 1 3 0 1
3214 0 2 4#70 4#116 6 1 3 0 1
3215 0 4 5#72 5#84 7 1 3 0 1
3216 0 4 5#72 5#84 7 1 3 0 1
3217 0 3 1#792 1#1320 8 1 3 0 1
3218 0 3 1#792 1#1320 8 1 3 0 1
3301 1501 1 2#383 2#638 9 2 4 0 1
3302 1501 1 2#383 2#638 9 2 4 0 1
3303 1502 1 2#383 2#638 9 2 4 0 1
3304 1502 1 2#383 2#638 9 2 4 0 1
3305 1503 1 2#383 2#638 9 2 4 0 1
3306 1503 1 2#383 2#638 9 2 4 0 1
3307 1504 1 2#383 2#638 9 2 4 0 1
3308 1504 1 2#383 2#638 9 2 4 0 1
3309 1505 1 2#383 2#638 9 2 4 0 1
3310 1505 1 2#383 2#638 9 2 4 0 1
3311 0 2 3#396 3#659 10 2 4 0 1
3312 0 2 3#396 3#659 10 2 4 0 1
3313 0 2 4#370 4#617 10 2 4 0 1
3314 0 2 4#370 4#617 10 2 4 0 1
3315 0 4 5#96 5#113 11 2 4 0 1
3316 0 4 5#96 5#113 11 2 4 0 1
3317 0 3 1#4212 1#7020 12 2 4 0 1
3318 0 3 1#4212 1#7020 12 2 4 0 1
3319 1501 1 2#383 2#638 9 2 4 0 1
3320 1501 1 2#383 2#638 9 2 4 0 1
3321 1502 1 2#383 2#638 9 2 4 0 1
3322 1502 1 2#383 2#638 9 2 4 0 1
3323 1503 1 2#383 2#638 9 2 4 0 1
3324 1503 1 2#383 2#638 9 2 4 0 1
3325 1504 1 2#383 2#638 9 2 4 0 1
3326 1504 1 2#383 2#638 9 2 4 0 1
3327 1505 1 2#383 2#638 9 2 4 0 1
3328 1505 1 2#383 2#638 9 2 4 0 1
3329 0 2 3#396 3#659 10 2 4 0 1
3330 0 2 3#396 3#659 10 2 4 0 1
3331 0 2 4#370 4#617 10 2 4 0 1
3332 0 2 4#370 4#617 10 2 4 0 1
3333 0 4 5#96 5#113 11 2 4 0 1
3334 0 4 5#96 5#113 11 2 4 0 1
3335 0 3 1#4212 1#7020 12 2 4 0 1
3336 0 3 1#4212 1#7020 12 2 4 0 1
4001 1501 1 2#72 2#120 5 1 3 0 0
4002 1502 1 2#72 2#120 5 1 3 0 0
4003 1503 1 2#72 2#120 5 1 3 0 0
4004 1504 1 2#72 2#120 5 1 3 0 0
4005 1505 1 2#72 2#120 5 1 3 0 0
4006 0 2 3#74 3#124 6 1 3 0 0
4007 0 2 4#70 4#116 6 1 3 0 0
4008 0 4 5#72 5#84 7 1 3 0 0
4009 0 3 1#792 1#1320 8 1 3 0 0
4101 1501 1 2#383 2#638 9 2 4 0 0
4102 1501 1 2#383 2#638 9 2 4 0 0
4103 1502 1 2#383 2#638 9 2 4 0 0
4104 1502 1 2#383 2#638 9 2 4 0 0
4105 1503 1 2#383 2#638 9 2 4 0 0
4106 1503 1 2#383 2#638 9 2 4 0 0
4107 1504 1 2#383 2#638 9 2 4 0 0
4108 1504 1 2#383 2#638 9 2 4 0 0
4109 1505 1 2#383 2#638 9 2 4 0 0
4110 1505 1 2#383 2#638 9 2 4 0 0
4111 0 2 3#396 3#659 10 2 4 0 0
4112 0 2 3#396 3#659 10 2 4 0 0
4113 0 2 4#370 4#617 10 2 4 0 0
4114 0 2 4#370 4#617 10 2 4 0 0
4115 0 4 5#96 5#113 11 2 4 0 0
4116 0 4 5#96 5#113 11 2 4 0 0
4117 0 3 1#4212 1#7020 12 2 4 0 0
4118 0 3 1#4212 1#7020 12 2 4 0 0
Id Quality ProfessionLimit Position PropertyMin PropertyMax Pool SecondNumMin SecondNumMax SkillId IfClear
int int int int mut,int#int,1 mut,int#int,1 int int int int int
3001 1 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 1 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 1 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 1 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 1 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 1 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 1 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 1 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 1 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 2 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 2 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 2 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 2 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 2 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 2 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 2 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 2 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 2 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 3 1501 1 2#72 2#120 5 1 3 0 0
4002 3 1502 1 2#72 2#120 5 1 3 0 0
4003 3 1503 1 2#72 2#120 5 1 3 0 0
4004 3 1504 1 2#72 2#120 5 1 3 0 0
4005 3 1505 1 2#72 2#120 5 1 3 0 0
4006 3 0 2 3#74 3#124 6 1 3 0 0
4007 3 0 2 4#70 4#116 6 1 3 0 0
4008 3 0 4 5#72 5#84 7 1 3 0 0
4009 3 0 3 1#792 1#1320 8 1 3 0 0
4101 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 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 4 0 3 1#4212 1#7020 12 2 4 0 0
4118 4 0 3 1#4212 1#7020 12 2 4 0 0

View File

@ -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

View File

@ -0,0 +1,2 @@
id PropertyId Min Max PoolNum Weight
int int int int int int

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -28,6 +28,8 @@ public class SEquipConfig implements BaseConfig {
private int skillId;
private int quality;
private int ifClear;
@ -80,5 +82,7 @@ public class SEquipConfig implements BaseConfig {
return ifClear;
}
public int getQuality() {
return quality;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -1,8 +1,7 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.SEquipConfig;
import com.ljsd.jieling.config.SEquipPropertyPool;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.util.KeyGenUtils;
import com.ljsd.jieling.util.MathUtils;
import com.ljsd.jieling.util.UUIDEnum;
@ -23,21 +22,17 @@ public class Equip extends MongoBase {
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){
this.id = KeyGenUtils.produceIdByModule(UUIDEnum.EQUIP,uid);
public Equip(String uid, int equipTid) {
this.id = KeyGenUtils.produceIdByModule(UUIDEnum.EQUIP, uid);
this.equipId = equipTid;
this.propertyValueByIdMap = new HashMap<>();
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipTid);
@ -45,11 +40,83 @@ public class Equip extends MongoBase {
int properMinNum = sEquipConfig.getPropertyMin()[1];
int properMaxNum = sEquipConfig.getPropertyMax()[1];
int finalProperValue = MathUtils.random(properMinNum, properMaxNum);
this.propertyValueByIdMap.put(properTyId,finalProperValue);
this.propertyValueByIdMap.put(properTyId, finalProperValue);
int secondNumMin = sEquipConfig.getSecondNumMin();
int secondNumMax = sEquipConfig.getSecondNumMax();
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){
@ -75,6 +142,36 @@ public class Equip extends MongoBase {
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() {
return id;
}

View File

@ -2,12 +2,17 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import java.util.HashMap;
import java.util.Map;
public class EquipManager extends MongoBase {
private Map<String,Equip> equipMap;
public EquipManager() {
this.equipMap = new HashMap<>();
}
public void addEquip(Equip equip) throws Exception {
updateString("equipMap." + equip.getId(),equip);
equipMap.put(equip.getId(),equip);

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.SWorkShopSetting;
import com.ljsd.jieling.util.MathUtils;
public class PlayerManager extends MongoBase {
@ -27,10 +29,39 @@ public class PlayerManager extends MongoBase {
private int mapId;
private int workShopLevel;
private int workShopExp;
private long createTime; //创建时间
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() {
return openId;
@ -147,4 +178,22 @@ public class PlayerManager extends MongoBase {
updateString("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;
}
}

View File

@ -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 "";
}
}

View File

@ -19,6 +19,8 @@ public class CBean2Proto {
.setVipLevel(playerManager.getVipLevel())
.setFamilyId(playerManager.getFamilyId())
.setHead(playerManager.getHead())
.setWorkLevel(playerManager.getWorkShopLevel())
.setWorkExp(playerManager.getWorkShopExp())
.build();
return player;
}

View File

@ -94,4 +94,22 @@ public class MathUtils {
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;
}
}

View File

@ -14,11 +14,14 @@ import io.netty.channel.socket.nio.NioSocketChannel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
public class NettyClient {
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 token=543242;
@ -45,9 +48,23 @@ public class NettyClient {
// 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(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));
// }
// }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){
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;
}
/**
*
*/
private static PlayerInfoProto.WorkShopEquipCreateRequest createEquip(int equipTid){
return PlayerInfoProto.WorkShopEquipCreateRequest.newBuilder().setEquipTid(equipTid).build();
}
}