diff --git a/conf/server/LevelDifficultyConfig.txt b/conf/server/LevelDifficultyConfig.txt index 92f670719..0d567b573 100644 --- a/conf/server/LevelDifficultyConfig.txt +++ b/conf/server/LevelDifficultyConfig.txt @@ -1,152 +1,152 @@ Id Precondition LevelLimit MonsterGroup Cost PreLevelCost Exp RandomReward RankTime MaxCountPerDay RecommendFightAbility int int int int mut,int#int,2 mut,int#int,2 int mut,int#int,1 int int int -1011 0 0 51011 2#6 2#1 6 2000#2001 300 0 100 -1021 1011 0 51012 2#6 2#1 6 2000#2001 300 0 100 -1031 1021 0 51013 2#6 2#1 6 2000#2001 300 0 100 -1041 1031 0 51014 2#6 2#1 6 2000#2001 300 0 100 -1051 1041 0 51015 2#6 2#1 6 2000#2001 300 0 100 -2011 1051 0 51021 2#6 2#1 6 2000#2001 300 0 100 -2021 2011 0 51022 2#6 2#1 6 2000#2001 300 0 100 -2031 2021 0 51023 2#6 2#1 6 2000#2001 300 0 100 -2041 2031 0 51024 2#6 2#1 6 2000#2001 300 0 100 -2051 2041 0 51025 2#6 2#1 6 2000#2001 300 0 100 -3011 2051 0 51031 2#6 2#1 6 2000#2001 300 0 100 -3021 3011 0 51032 2#6 2#1 6 2000#2001 300 0 100 -3031 3021 0 51033 2#6 2#1 6 2000#2001 300 0 100 -3041 3031 0 51034 2#6 2#1 6 2000#2001 300 0 100 -3051 3041 0 51035 2#6 2#1 6 2000#2001 300 0 100 -4011 3051 0 51041 2#6 2#1 6 2000#2001 300 0 100 -4021 4011 0 51042 2#6 2#1 6 2000#2001 300 0 100 -4031 4021 0 51043 2#6 2#1 6 2000#2001 300 0 100 -4041 4031 0 51044 2#6 2#1 6 2000#2001 300 0 100 -4051 4041 0 51045 2#6 2#1 6 2000#2001 300 0 100 -5011 4051 0 51051 2#6 2#1 6 2000#2001 300 0 100 -5021 5011 0 51052 2#6 2#1 6 2000#2001 300 0 100 -5031 5021 0 51053 2#6 2#1 6 2000#2001 300 0 100 -5041 5031 0 51054 2#6 2#1 6 2000#2001 300 0 100 -5051 5041 0 51055 2#6 2#1 6 2000#2001 300 0 100 -6011 5051 0 51061 2#6 2#1 6 2000#2001 300 0 100 -6021 6011 0 51062 2#6 2#1 6 2000#2001 300 0 100 -6031 6021 0 51063 2#6 2#1 6 2000#2001 300 0 100 -6041 6031 0 51064 2#6 2#1 6 2000#2001 300 0 100 -6051 6041 0 51065 2#6 2#1 6 2000#2001 300 0 100 -7011 6051 0 51071 2#6 2#1 6 2000#2001 300 0 100 -7021 7011 0 51072 2#6 2#1 6 2000#2001 300 0 100 -7031 7021 0 51073 2#6 2#1 6 2000#2001 300 0 100 -7041 7031 0 51074 2#6 2#1 6 2000#2001 300 0 100 -7051 7041 0 51075 2#6 2#1 6 2000#2001 300 0 100 -8011 7051 0 51081 2#6 2#1 6 2000#2001 300 0 100 -8021 8011 0 51082 2#6 2#1 6 2000#2001 300 0 100 -8031 8021 0 51083 2#6 2#1 6 2000#2001 300 0 100 -8041 8031 0 51084 2#6 2#1 6 2000#2001 300 0 100 -8051 8041 0 51085 2#6 2#1 6 2000#2001 300 0 100 -9011 8051 0 51091 2#6 2#1 6 2000#2001 300 0 100 -9021 9011 0 51092 2#6 2#1 6 2000#2001 300 0 100 -9031 9021 0 51093 2#6 2#1 6 2000#2001 300 0 100 -9041 9031 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9051 9041 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10011 9051 0 51094 2#6 2#1 6 2000#2001 300 0 100 -10021 10011 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10031 10021 0 51094 2#6 2#1 6 2000#2001 300 0 100 -10041 10031 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10051 10041 0 51094 2#6 2#1 6 2000#2001 300 0 100 -1012 1011 0 51095 2#6 2#1 6 2000#2001 300 0 100 -1022 1012 0 51094 2#6 2#1 6 2000#2001 300 0 100 -1032 1022 0 51095 2#6 2#1 6 2000#2001 300 0 100 -1042 1032 0 51094 2#6 2#1 6 2000#2001 300 0 100 -1052 1042 0 51095 2#6 2#1 6 2000#2001 300 0 100 -2012 1052 0 51094 2#6 2#1 6 2000#2001 300 0 100 -2022 2012 0 51095 2#6 2#1 6 2000#2001 300 0 100 -2032 2022 0 51094 2#6 2#1 6 2000#2001 300 0 100 -2042 2032 0 51095 2#6 2#1 6 2000#2001 300 0 100 -2052 2042 0 51094 2#6 2#1 6 2000#2001 300 0 100 -3012 2052 0 51095 2#6 2#1 6 2000#2001 300 0 100 -3022 3012 0 51094 2#6 2#1 6 2000#2001 300 0 100 -3032 3022 0 51095 2#6 2#1 6 2000#2001 300 0 100 -3042 3032 0 51094 2#6 2#1 6 2000#2001 300 0 100 -3052 3042 0 51095 2#6 2#1 6 2000#2001 300 0 100 -4012 3052 0 51094 2#6 2#1 6 2000#2001 300 0 100 -4022 4012 0 51095 2#6 2#1 6 2000#2001 300 0 100 -4032 4022 0 51094 2#6 2#1 6 2000#2001 300 0 100 -4042 4032 0 51095 2#6 2#1 6 2000#2001 300 0 100 -4052 4042 0 51094 2#6 2#1 6 2000#2001 300 0 100 -5012 4052 0 51095 2#6 2#1 6 2000#2001 300 0 100 -5022 5012 0 51094 2#6 2#1 6 2000#2001 300 0 100 -5032 5022 0 51095 2#6 2#1 6 2000#2001 300 0 100 -5042 5032 0 51094 2#6 2#1 6 2000#2001 300 0 100 -5052 5042 0 51095 2#6 2#1 6 2000#2001 300 0 100 -6012 5052 0 51094 2#6 2#1 6 2000#2001 300 0 100 -6022 6012 0 51095 2#6 2#1 6 2000#2001 300 0 100 -6032 6022 0 51094 2#6 2#1 6 2000#2001 300 0 100 -6042 6032 0 51095 2#6 2#1 6 2000#2001 300 0 100 -6052 6042 0 51094 2#6 2#1 6 2000#2001 300 0 100 -7012 6052 0 51095 2#6 2#1 6 2000#2001 300 0 100 -7022 7012 0 51094 2#6 2#1 6 2000#2001 300 0 100 -7032 7022 0 51095 2#6 2#1 6 2000#2001 300 0 100 -7042 7032 0 51094 2#6 2#1 6 2000#2001 300 0 100 -7052 7042 0 51095 2#6 2#1 6 2000#2001 300 0 100 -8012 7052 0 51094 2#6 2#1 6 2000#2001 300 0 100 -8022 8012 0 51095 2#6 2#1 6 2000#2001 300 0 100 -8032 8022 0 51094 2#6 2#1 6 2000#2001 300 0 100 -8042 8032 0 51095 2#6 2#1 6 2000#2001 300 0 100 -8052 8042 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9012 8052 0 51095 2#6 2#1 6 2000#2001 300 0 100 -9022 9012 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9032 9022 0 51095 2#6 2#1 6 2000#2001 300 0 100 -9042 9032 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9052 9042 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10012 9052 0 51094 2#6 2#1 6 2000#2001 300 0 100 -10022 10012 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10032 10022 0 51094 2#6 2#1 6 2000#2001 300 0 100 -10042 10032 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10052 10042 0 51094 2#6 2#1 6 2000#2001 300 0 100 -1013 1011 0 51095 2#6 2#1 6 2000#2001 300 0 100 -1023 1013 0 51094 2#6 2#1 6 2000#2001 300 0 100 -1033 1023 0 51095 2#6 2#1 6 2000#2001 300 0 100 -1043 1033 0 51094 2#6 2#1 6 2000#2001 300 0 100 -1053 1043 0 51095 2#6 2#1 6 2000#2001 300 0 100 -2013 1053 0 51094 2#6 2#1 6 2000#2001 300 0 100 -2023 2013 0 51095 2#6 2#1 6 2000#2001 300 0 100 -2033 2023 0 51094 2#6 2#1 6 2000#2001 300 0 100 -2043 2033 0 51095 2#6 2#1 6 2000#2001 300 0 100 -2053 2043 0 51094 2#6 2#1 6 2000#2001 300 0 100 -3013 2053 0 51095 2#6 2#1 6 2000#2001 300 0 100 -3023 3013 0 51094 2#6 2#1 6 2000#2001 300 0 100 -3033 3023 0 51095 2#6 2#1 6 2000#2001 300 0 100 -3043 3033 0 51094 2#6 2#1 6 2000#2001 300 0 100 -3053 3043 0 51095 2#6 2#1 6 2000#2001 300 0 100 -4013 3053 0 51094 2#6 2#1 6 2000#2001 300 0 100 -4023 4013 0 51095 2#6 2#1 6 2000#2001 300 0 100 -4033 4023 0 51094 2#6 2#1 6 2000#2001 300 0 100 -4043 4033 0 51095 2#6 2#1 6 2000#2001 300 0 100 -4053 4043 0 51094 2#6 2#1 6 2000#2001 300 0 100 -5013 4053 0 51095 2#6 2#1 6 2000#2001 300 0 100 -5023 5013 0 51094 2#6 2#1 6 2000#2001 300 0 100 -5033 5023 0 51095 2#6 2#1 6 2000#2001 300 0 100 -5043 5033 0 51094 2#6 2#1 6 2000#2001 300 0 100 -5053 5043 0 51095 2#6 2#1 6 2000#2001 300 0 100 -6013 5053 0 51094 2#6 2#1 6 2000#2001 300 0 100 -6023 6013 0 51095 2#6 2#1 6 2000#2001 300 0 100 -6033 6023 0 51094 2#6 2#1 6 2000#2001 300 0 100 -6043 6033 0 51095 2#6 2#1 6 2000#2001 300 0 100 -6053 6043 0 51094 2#6 2#1 6 2000#2001 300 0 100 -7013 6053 0 51095 2#6 2#1 6 2000#2001 300 0 100 -7023 7013 0 51094 2#6 2#1 6 2000#2001 300 0 100 -7033 7023 0 51095 2#6 2#1 6 2000#2001 300 0 100 -7043 7033 0 51094 2#6 2#1 6 2000#2001 300 0 100 -7053 7043 0 51095 2#6 2#1 6 2000#2001 300 0 100 -8013 7053 0 51094 2#6 2#1 6 2000#2001 300 0 100 -8023 8013 0 51095 2#6 2#1 6 2000#2001 300 0 100 -8033 8023 0 51094 2#6 2#1 6 2000#2001 300 0 100 -8043 8033 0 51095 2#6 2#1 6 2000#2001 300 0 100 -8053 8043 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9013 8053 0 51095 2#6 2#1 6 2000#2001 300 0 100 -9023 9013 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9033 9023 0 51095 2#6 2#1 6 2000#2001 300 0 100 -9043 9033 0 51094 2#6 2#1 6 2000#2001 300 0 100 -9053 9043 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10013 9053 0 51094 2#6 2#1 6 2000#2001 300 0 100 -10023 10013 0 51095 2#6 2#1 6 2000#2001 300 0 100 -10033 10023 0 51094 2#6 2#1 6 2000#2001 300 0 100 -10043 10033 0 51095 2#6 2#1 6 2000#2001 300 0 100 +1011 0 0 51011 2#5 2#1 6 2000#2001 300 0 100 +1021 1011 0 51012 2#5 2#1 6 2000#2001 300 0 100 +1031 1021 0 51013 2#5 2#1 6 2000#2001 300 0 100 +1041 1031 0 51014 2#5 2#1 6 2000#2001 300 0 100 +1051 1041 0 51015 2#5 2#1 6 2000#2001 300 0 100 +2011 1051 0 51021 2#5 2#1 6 2000#2001 300 0 100 +2021 2011 0 51022 2#5 2#1 6 2000#2001 300 0 100 +2031 2021 0 51023 2#5 2#1 6 2000#2001 300 0 100 +2041 2031 0 51024 2#5 2#1 6 2000#2001 300 0 100 +2051 2041 0 51025 2#5 2#1 6 2000#2001 300 0 100 +3011 2051 0 51031 2#5 2#1 6 2000#2001 300 0 100 +3021 3011 0 51032 2#5 2#1 6 2000#2001 300 0 100 +3031 3021 0 51033 2#5 2#1 6 2000#2001 300 0 100 +3041 3031 0 51034 2#5 2#1 6 2000#2001 300 0 100 +3051 3041 0 51035 2#5 2#1 6 2000#2001 300 0 100 +4011 3051 0 51041 2#5 2#1 6 2000#2001 300 0 100 +4021 4011 0 51042 2#5 2#1 6 2000#2001 300 0 100 +4031 4021 0 51043 2#5 2#1 6 2000#2001 300 0 100 +4041 4031 0 51044 2#5 2#1 6 2000#2001 300 0 100 +4051 4041 0 51045 2#5 2#1 6 2000#2001 300 0 100 +5011 4051 0 51051 2#5 2#1 6 2000#2001 300 0 100 +5021 5011 0 51052 2#5 2#1 6 2000#2001 300 0 100 +5031 5021 0 51053 2#5 2#1 6 2000#2001 300 0 100 +5041 5031 0 51054 2#5 2#1 6 2000#2001 300 0 100 +5051 5041 0 51055 2#5 2#1 6 2000#2001 300 0 100 +6011 5051 0 51061 2#5 2#1 6 2000#2001 300 0 100 +6021 6011 0 51062 2#5 2#1 6 2000#2001 300 0 100 +6031 6021 0 51063 2#5 2#1 6 2000#2001 300 0 100 +6041 6031 0 51064 2#5 2#1 6 2000#2001 300 0 100 +6051 6041 0 51065 2#5 2#1 6 2000#2001 300 0 100 +7011 6051 0 51071 2#5 2#1 6 2000#2001 300 0 100 +7021 7011 0 51072 2#5 2#1 6 2000#2001 300 0 100 +7031 7021 0 51073 2#5 2#1 6 2000#2001 300 0 100 +7041 7031 0 51074 2#5 2#1 6 2000#2001 300 0 100 +7051 7041 0 51075 2#5 2#1 6 2000#2001 300 0 100 +8011 7051 0 51081 2#5 2#1 6 2000#2001 300 0 100 +8021 8011 0 51082 2#5 2#1 6 2000#2001 300 0 100 +8031 8021 0 51083 2#5 2#1 6 2000#2001 300 0 100 +8041 8031 0 51084 2#5 2#1 6 2000#2001 300 0 100 +8051 8041 0 51085 2#5 2#1 6 2000#2001 300 0 100 +9011 8051 0 51091 2#5 2#1 6 2000#2001 300 0 100 +9021 9011 0 51092 2#5 2#1 6 2000#2001 300 0 100 +9031 9021 0 51093 2#5 2#1 6 2000#2001 300 0 100 +9041 9031 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9051 9041 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10011 9051 0 51094 2#5 2#1 6 2000#2001 300 0 100 +10021 10011 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10031 10021 0 51094 2#5 2#1 6 2000#2001 300 0 100 +10041 10031 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10051 10041 0 51094 2#5 2#1 6 2000#2001 300 0 100 +1012 1011 0 51095 2#5 2#1 6 2000#2001 300 0 100 +1022 1012 0 51094 2#5 2#1 6 2000#2001 300 0 100 +1032 1022 0 51095 2#5 2#1 6 2000#2001 300 0 100 +1042 1032 0 51094 2#5 2#1 6 2000#2001 300 0 100 +1052 1042 0 51095 2#5 2#1 6 2000#2001 300 0 100 +2012 1052 0 51094 2#5 2#1 6 2000#2001 300 0 100 +2022 2012 0 51095 2#5 2#1 6 2000#2001 300 0 100 +2032 2022 0 51094 2#5 2#1 6 2000#2001 300 0 100 +2042 2032 0 51095 2#5 2#1 6 2000#2001 300 0 100 +2052 2042 0 51094 2#5 2#1 6 2000#2001 300 0 100 +3012 2052 0 51095 2#5 2#1 6 2000#2001 300 0 100 +3022 3012 0 51094 2#5 2#1 6 2000#2001 300 0 100 +3032 3022 0 51095 2#5 2#1 6 2000#2001 300 0 100 +3042 3032 0 51094 2#5 2#1 6 2000#2001 300 0 100 +3052 3042 0 51095 2#5 2#1 6 2000#2001 300 0 100 +4012 3052 0 51094 2#5 2#1 6 2000#2001 300 0 100 +4022 4012 0 51095 2#5 2#1 6 2000#2001 300 0 100 +4032 4022 0 51094 2#5 2#1 6 2000#2001 300 0 100 +4042 4032 0 51095 2#5 2#1 6 2000#2001 300 0 100 +4052 4042 0 51094 2#5 2#1 6 2000#2001 300 0 100 +5012 4052 0 51095 2#5 2#1 6 2000#2001 300 0 100 +5022 5012 0 51094 2#5 2#1 6 2000#2001 300 0 100 +5032 5022 0 51095 2#5 2#1 6 2000#2001 300 0 100 +5042 5032 0 51094 2#5 2#1 6 2000#2001 300 0 100 +5052 5042 0 51095 2#5 2#1 6 2000#2001 300 0 100 +6012 5052 0 51094 2#5 2#1 6 2000#2001 300 0 100 +6022 6012 0 51095 2#5 2#1 6 2000#2001 300 0 100 +6032 6022 0 51094 2#5 2#1 6 2000#2001 300 0 100 +6042 6032 0 51095 2#5 2#1 6 2000#2001 300 0 100 +6052 6042 0 51094 2#5 2#1 6 2000#2001 300 0 100 +7012 6052 0 51095 2#5 2#1 6 2000#2001 300 0 100 +7022 7012 0 51094 2#5 2#1 6 2000#2001 300 0 100 +7032 7022 0 51095 2#5 2#1 6 2000#2001 300 0 100 +7042 7032 0 51094 2#5 2#1 6 2000#2001 300 0 100 +7052 7042 0 51095 2#5 2#1 6 2000#2001 300 0 100 +8012 7052 0 51094 2#5 2#1 6 2000#2001 300 0 100 +8022 8012 0 51095 2#5 2#1 6 2000#2001 300 0 100 +8032 8022 0 51094 2#5 2#1 6 2000#2001 300 0 100 +8042 8032 0 51095 2#5 2#1 6 2000#2001 300 0 100 +8052 8042 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9012 8052 0 51095 2#5 2#1 6 2000#2001 300 0 100 +9022 9012 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9032 9022 0 51095 2#5 2#1 6 2000#2001 300 0 100 +9042 9032 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9052 9042 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10012 9052 0 51094 2#5 2#1 6 2000#2001 300 0 100 +10022 10012 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10032 10022 0 51094 2#5 2#1 6 2000#2001 300 0 100 +10042 10032 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10052 10042 0 51094 2#5 2#1 6 2000#2001 300 0 100 +1013 1011 0 51095 2#5 2#1 6 2000#2001 300 0 100 +1023 1013 0 51094 2#5 2#1 6 2000#2001 300 0 100 +1033 1023 0 51095 2#5 2#1 6 2000#2001 300 0 100 +1043 1033 0 51094 2#5 2#1 6 2000#2001 300 0 100 +1053 1043 0 51095 2#5 2#1 6 2000#2001 300 0 100 +2013 1053 0 51094 2#5 2#1 6 2000#2001 300 0 100 +2023 2013 0 51095 2#5 2#1 6 2000#2001 300 0 100 +2033 2023 0 51094 2#5 2#1 6 2000#2001 300 0 100 +2043 2033 0 51095 2#5 2#1 6 2000#2001 300 0 100 +2053 2043 0 51094 2#5 2#1 6 2000#2001 300 0 100 +3013 2053 0 51095 2#5 2#1 6 2000#2001 300 0 100 +3023 3013 0 51094 2#5 2#1 6 2000#2001 300 0 100 +3033 3023 0 51095 2#5 2#1 6 2000#2001 300 0 100 +3043 3033 0 51094 2#5 2#1 6 2000#2001 300 0 100 +3053 3043 0 51095 2#5 2#1 6 2000#2001 300 0 100 +4013 3053 0 51094 2#5 2#1 6 2000#2001 300 0 100 +4023 4013 0 51095 2#5 2#1 6 2000#2001 300 0 100 +4033 4023 0 51094 2#5 2#1 6 2000#2001 300 0 100 +4043 4033 0 51095 2#5 2#1 6 2000#2001 300 0 100 +4053 4043 0 51094 2#5 2#1 6 2000#2001 300 0 100 +5013 4053 0 51095 2#5 2#1 6 2000#2001 300 0 100 +5023 5013 0 51094 2#5 2#1 6 2000#2001 300 0 100 +5033 5023 0 51095 2#5 2#1 6 2000#2001 300 0 100 +5043 5033 0 51094 2#5 2#1 6 2000#2001 300 0 100 +5053 5043 0 51095 2#5 2#1 6 2000#2001 300 0 100 +6013 5053 0 51094 2#5 2#1 6 2000#2001 300 0 100 +6023 6013 0 51095 2#5 2#1 6 2000#2001 300 0 100 +6033 6023 0 51094 2#5 2#1 6 2000#2001 300 0 100 +6043 6033 0 51095 2#5 2#1 6 2000#2001 300 0 100 +6053 6043 0 51094 2#5 2#1 6 2000#2001 300 0 100 +7013 6053 0 51095 2#5 2#1 6 2000#2001 300 0 100 +7023 7013 0 51094 2#5 2#1 6 2000#2001 300 0 100 +7033 7023 0 51095 2#5 2#1 6 2000#2001 300 0 100 +7043 7033 0 51094 2#5 2#1 6 2000#2001 300 0 100 +7053 7043 0 51095 2#5 2#1 6 2000#2001 300 0 100 +8013 7053 0 51094 2#5 2#1 6 2000#2001 300 0 100 +8023 8013 0 51095 2#5 2#1 6 2000#2001 300 0 100 +8033 8023 0 51094 2#5 2#1 6 2000#2001 300 0 100 +8043 8033 0 51095 2#5 2#1 6 2000#2001 300 0 100 +8053 8043 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9013 8053 0 51095 2#5 2#1 6 2000#2001 300 0 100 +9023 9013 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9033 9023 0 51095 2#5 2#1 6 2000#2001 300 0 100 +9043 9033 0 51094 2#5 2#1 6 2000#2001 300 0 100 +9053 9043 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10013 9053 0 51094 2#5 2#1 6 2000#2001 300 0 100 +10023 10013 0 51095 2#5 2#1 6 2000#2001 300 0 100 +10033 10023 0 51094 2#5 2#1 6 2000#2001 300 0 100 +10043 10033 0 51095 2#5 2#1 6 2000#2001 300 0 100 10053 10043 0 0 null null 0 null 0 0 0 diff --git a/serverlogic/src/main/java/com/ljsd/GameApplication.java b/serverlogic/src/main/java/com/ljsd/GameApplication.java index 860a2f631..8d582c96d 100644 --- a/serverlogic/src/main/java/com/ljsd/GameApplication.java +++ b/serverlogic/src/main/java/com/ljsd/GameApplication.java @@ -10,6 +10,7 @@ import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.dao.MailingSystemManager; import com.ljsd.jieling.logic.fight.CheckFight; +import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.netty.server.NettyGameServer; import com.ljsd.jieling.network.NettyProperties; import com.ljsd.jieling.network.NettyServerAutoConfiguration; @@ -73,6 +74,8 @@ public class GameApplication { MongoUtil.getInstence().init(configurableApplicationContext); + CombatLogic.getInstance().checkAdventureFlush(); + STableManager.initialize("com.ljsd.jieling.config"); //初始化邮件 MailingSystemManager.init(configurableApplicationContext); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 1115bafea..41029086e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -1183,26 +1183,43 @@ public class MapLogic { return; } SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); - if ( sLevelDifficultyConfig.getMaxCountPerDay() != 0 && levelDifficulty.getChallengeTimes() >= sLevelDifficultyConfig.getMaxCountPerDay()){ + if ( sLevelDifficultyConfig.getMaxCountPerDay() != 0 && levelDifficulty.getChallengeTimes() >= sLevelDifficultyConfig.getMaxCountPerDay()){ LOGGER.info("startLevelDifficultyFight==>uid={},fightId={} challengeTimes={},MaxTime={}",uid,fightId,levelDifficulty.getChallengeTimes(),sLevelDifficultyConfig.getMaxCountPerDay()); MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "次数不足"); return; } -// boolean flag = ItemUtil.fightItemCost(user, sLevelDifficultyConfig.getCost()); -// if (!flag){ -// MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "道具不足"); -// return; -// } + boolean flag = ItemUtil.fightItemCost(user, getCost(sLevelDifficultyConfig,1)); + if (!flag){ + MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "道具不足"); + return; + } String fightInfo = fightId +"#" +teamId; String key = RedisKey.getKey(RedisKey.LEVE_DIFFICULTY_INFO, String.valueOf(uid), false); RedisUtil.getInstence().set(key, fightInfo, sLevelDifficultyConfig.getRankTime()+100); //扣除预先道具 -// ItemUtil.fightItemCost(user,sLevelDifficultyConfig.getPreLevelCost()); + ItemUtil.fightItemCost(user,sLevelDifficultyConfig.getPreLevelCost()); FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder(); BehaviorUtil.getLevelDifficultyifficuFightInfo(user,sLevelDifficultyConfig.getMonsterGroup(),teamId,fightStartResponse); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true); } + public int[][] getCost(SLevelDifficultyConfig sLevelDifficultyConfig,int sweepTimes) { + StringBuilder cost = new StringBuilder(); + int[][] costArr = sLevelDifficultyConfig.getCost(); + int[][] preLevelCostArr = sLevelDifficultyConfig.getPreLevelCost(); + for (int i= 0; i < costArr.length; i++){ + int[] ints = costArr[i]; + int[] ints1 = preLevelCostArr[i]; + int itemNum = ints[1] * sweepTimes + ints1[1] * sweepTimes; + if (cost.length() == 0){ + cost = new StringBuilder(ints[0] + "#" + itemNum); + }else{ + cost.append("|").append(ints[0]).append("#").append(itemNum); + } + } + return StringUtil.parseFiledInt2(cost.toString()) ; + } + /** * 关卡结束战斗 @@ -1285,10 +1302,11 @@ public class MapLogic { PlayerManager playerInfoManager = user.getPlayerInfoManager(); ItemUtil.itemCost(user, sLevelDifficultyConfig.getCost()); //玩家升级 -// userLevelUp(playerInfoManager,sLevelDifficultyConfig.getExp()); + userLevelUp(playerInfoManager,sLevelDifficultyConfig.getExp()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 1); LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); levelDifficulty.setState(Global.FIGHT_CLEARANCE); + levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +1); //开启关卡 openNextFightIds(levelDifficultyManager,playerInfoManager,fightId); FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder(); @@ -1330,7 +1348,7 @@ public class MapLogic { if (addExp <= 0) { return; } - int maxExp = 11; + int maxExp = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(SPlayerLevelConfig.getsPlayerLevelConfigMap().size()).getExp(); if (playerInfoManager.getExp() >= maxExp) { return; } @@ -1345,14 +1363,17 @@ public class MapLogic { } while (curExp >= levelUpExp && curExp <= maxExp) { playerInfoManager.setLevel(playerInfoManager.getLevel() + 1); - sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(oldLevel + 1); + sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel() + 1); if (sPlayerLevelConfig == null) { levelUpExp = Integer.MAX_VALUE; } else { levelUpExp = sPlayerLevelConfig.getExp(); + if (curExp >= sPlayerLevelConfig.getExp()){ + curExp = curExp - sPlayerLevelConfig.getExp(); + } } } - playerInfoManager.setExp(levelUpExp); + playerInfoManager.setExp(curExp); if (playerInfoManager.getLevel() > oldLevel) { for (int level = oldLevel + 1; level <= playerInfoManager.getLevel(); level++) { sPlayerLevelConfig= SPlayerLevelConfig.getsPlayerLevelConfigMap().get(level); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java index 1f6685e7b..0b8762b36 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java @@ -22,7 +22,7 @@ public class StartFightRequestHandler extends BaseHandler{ FightInfoProto.FightStartRequest fightStartRequest = FightInfoProto.FightStartRequest.parseFrom(message); int type = fightStartRequest.getType(); int fightId = fightStartRequest.getFightId(); - int teamId = 1; + int teamId = fightStartRequest.getTeamId(); if (type ==1){ MapLogic.getInstance().startLevelDifficultyFight(iSession,fightId,teamId,type,MessageTypeProto.MessageType.FIGHT_START_RESPONSE); }else{ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java new file mode 100644 index 000000000..511607b11 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java @@ -0,0 +1,95 @@ +package com.ljsd.jieling.handler.map; + +import com.ljsd.jieling.config.SLevelDifficultyConfig; +import com.ljsd.jieling.globals.Global; +import com.ljsd.jieling.handler.map.behavior.BaseBehavior; +import com.ljsd.jieling.logic.dao.*; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.FightInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ConfigurableApplicationContext; + +import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; + +public class SweepLogic { + + private static final Logger LOGGER = LoggerFactory.getLogger(SweepLogic.class); + + private Map baseBehaviorMap = new HashMap<>(); + + public void init(ConfigurableApplicationContext configurableApplicationContext) { + Map beansOfType = configurableApplicationContext.getBeansOfType(BaseBehavior.class); + for (BaseBehavior baseBehavior : beansOfType.values()) { + baseBehaviorMap.put(baseBehavior.getBehaviorType(), baseBehavior); + } + } + + private SweepLogic() { + + } + + /** + * 获取单例 + * + * @return + */ + public static SweepLogic getInstance() { + return Instance.instance; + } + + + public static class Instance { + public final static SweepLogic instance = new SweepLogic(); + } + + /** + * 关卡扫荡 + * @param session + * @param fightId + * @param sweepTimes + */ + public void sweepFight(ISession session, int fightId, int sweepTimes,MessageTypeProto.MessageType messageType) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + LevelDifficultyManager levelDifficultyManager = user.getLevelDifficultyManager(); + LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); + if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE){ + LOGGER.info("startLevelDifficultyFight==> uid={},fightId, levelDifficulty is null ",uid,fightId); + MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "该地图未通关"); + return; + } + SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); + if (sLevelDifficultyConfig.getMaxCountPerDay() != 0 && levelDifficulty.getChallengeTimes() +sweepTimes > sLevelDifficultyConfig.getMaxCountPerDay()){ + LOGGER.info("startLevelDifficultyFight==>uid={},fightId={} challengeTimes={},MaxTime={}",uid,fightId,levelDifficulty.getChallengeTimes(),sLevelDifficultyConfig.getMaxCountPerDay()); + MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "次数不足"); + return; + } + int[][] cost = MapLogic.getInstance().getCost(sLevelDifficultyConfig, sweepTimes); + boolean flag = ItemUtil.fightItemCost(user,cost); + if (!flag){ + MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "道具不足"); + return; + } + //扣除道具 + ItemUtil.fightItemCost(user, cost); + List dropList = new CopyOnWriteArrayList<>(); + for (int i = 0 ; i < sweepTimes ;i++){ + CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0); + dropList.add(drop.build()); + } + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + MapLogic.getInstance().userLevelUp(playerInfoManager,sLevelDifficultyConfig.getExp() * sweepTimes); + FightInfoProto.SweepRightResponse.Builder builder = FightInfoProto.SweepRightResponse.newBuilder(); + builder.addAllDrop(dropList); + levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +sweepTimes); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepRightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepRightRequestHandler.java new file mode 100644 index 000000000..b565b3b49 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepRightRequestHandler.java @@ -0,0 +1,28 @@ +package com.ljsd.jieling.handler.map; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.FightInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class SweepRightRequestHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.SWEEP_RIGHT_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] message = netData.parseClientProtoNetData(); + FightInfoProto.SweepRightRequest sweepRightRequest = FightInfoProto.SweepRightRequest.parseFrom(message); + int type = sweepRightRequest.getType(); + int fightId = sweepRightRequest.getFightId(); + int sweepTimes = sweepRightRequest.getNum(); + if (type == 1){ //关卡扫荡 + SweepLogic.getInstance().sweepFight(iSession,fightId,sweepTimes, MessageTypeProto.MessageType.SWEEP_RIGHT_RESPONSE); + } + } +}