diff --git a/luafight/Modules/Battle/Config/Data/HardStage.lua b/luafight/Modules/Battle/Config/Data/HardStage.lua index 84c321aef..bfdcceb65 100644 --- a/luafight/Modules/Battle/Config/Data/HardStage.lua +++ b/luafight/Modules/Battle/Config/Data/HardStage.lua @@ -1,8 +1,8 @@ local HardStage = { __count = 76, __indexs = {1.91,82,1.81,2.1,2.1}, -__values = {-588,-66.2,64,2,66,20,46,42,24,7.4,40,1.91,7,-2.3,-4.8,8,28,1,-2.9,17,2,63,2,1.2,-2.7,5,46,31,6.2,-2.3,1.2,-2.2,19,28.3,55,2,7,1.2,8,1,57,3,1.3,95,1.3,97,1.3,98,1,108,1.7,83,8899,1.01,34996,-2.3,8,10,20,164950,27000,3000,6000,-4000.2,3000,4000,3000,8000,3000,7000,13000,9000,1000,1.65,944,-2.9,62.2,2.1,6.1,6.1,11944,10000,-20000.3,-30000.2,20000,70000,-40000.2,60000,50000,60000,10000,20000,-30000.3,10000,50000,30000,60000,140000,28810010,1,99,100,3.2,5.1,5.1,9100,16.1,32.13}, -__exVals = {87,nil,'x_xiaoyaoyou_ditu_longzi','x_xiaoyaoyou_ditu_huangzi','x_xiaoyaoyou_ditu_luzi','x_xiaoyaoyou_ditu_hezi','x_xiaoyaoyou_ditu_shengzi','x_xiaoyaoyou_ditu_buzi','x_xiaoyaoyou_ditu_dizi','x_xiaoyaoyou_ditu_xuezi','x_xiaoyaoyou_ditu_xianzi','x_xiaoyaoyou_ditu_jingzi','困难副本1-1','困难副本1-1.5','困难副本1-2','困难副本1-2.5','困难副本1-3','困难副本1-3.5','困难副本1-4','困难副本1-4.5','困难副本1-5','困难副本1-5.5','困难副本1-6','困难副本1-6.5','困难副本1-7','困难副本1-7.5','困难副本1-8','困难副本1-8.5','困难副本1-9','困难副本1-9.5','困难副本1-10','困难副本2-1','困难副本2-1.5','困难副本2-2','困难副本2-2.5','困难副本2-3','困难副本2-3.5','困难副本2-4','困难副本2-4.5','困难副本2-5','困难副本2-5.5','困难副本2-6','困难副本2-6.5','困难副本2-7','困难副本2-7.5','困难副本2-8','困难副本2-8.5','困难副本2-9','困难副本2-9.5','困难副本2-10','困难副本3-1','困难副本3-1.5','困难副本3-2','困难副本3-2.5','困难副本3-3','困难副本3-3.5','困难副本3-4','困难副本3-4.5','困难副本3-5','困难副本3-5.5','困难副本3-6','困难副本3-6.5','困难副本3-7','困难副本3-7.5','困难副本3-8','困难副本3-8.5','困难副本3-9','困难副本3-9.5','困难副本3-10','困难副本4-1','困难副本4-1.5','困难副本4-2','困难副本4-2.5','困难副本4-3','困难副本4-3.5','困难副本4-4','困难副本4-4.5','困难副本4-5','困难副本4-5.5','困难副本4-6','困难副本4-6.5','困难副本4-7','困难副本4-7.5','困难副本4-8','困难副本4-8.5','困难副本4-9','困难副本4-9.5','困难副本4-10'}, +__values = {0,1.91,81,1,-2.9,82,2,1.2,-2.7,4.3,-2.4,1.2,2,197,9,1.2,8,1,9,1,60,1.2,95,1.3,97,1.3,207,1.7,83,8899,1.01,23.2,2,-3.2,3.2,1.2,5,6.2,2,1,29,1.3,11,34918,1.3,-2.2,8,10,20,164950,27000,3000,6000,-4000.2,3000,4000,3000,8000,3000,7000,13000,9000,1000,1.65,944,-2.9,68.2,2.1,6.1,6.1,11944,10000,-20000.3,-30000.2,20000,70000,-40000.2,60000,50000,60000,10000,20000,-30000.3,10000,50000,30000,60000,140000,28810010,1,99,100,3.2,5.1,5.1,9100,16.1,32.13}, +__exVals = {198,nil,'x_xiaoyaoyou_ditu_longzi','x_xiaoyaoyou_ditu_huangzi','x_xiaoyaoyou_ditu_luzi','x_xiaoyaoyou_ditu_hezi','x_xiaoyaoyou_ditu_shengzi','x_xiaoyaoyou_ditu_buzi','x_xiaoyaoyou_ditu_dizi','x_xiaoyaoyou_ditu_xuezi',417.76,-681.87,-111.82,'x_xiaoyaoyou_ditu_xianzi',-306.99,4.22,-120.26,'x_xiaoyaoyou_ditu_jingzi',-685.71,-552.79,-664.62,-450.46,-443.08,-119.21,-400.88,-310.15,-37.98,-92.84,-137.09,-401.93,130.81,217.32,352.35,409.32,620.31,607.65,450.46,119.21,-622.79,-643.89,-715.63,-652.33,-565.45,-424.09,-384.37,-419.87,-402.99,-310.53,458.9,-194.48,-132.92,-210.99,-23.21,100.9,-294.33,126.22,252.81,316.11,348.13,238.42,221.54,280.62,537.65,306.99,580.22,605.54,577.74,294.33,262.68,7.38,-366.07,-341.80,123.43,368.18,289.05,48.53,-147.25,-183.56,-79.12,-425.14,-197.27,13.71,297.49,213.10,340.75,169.85,-152.97,-262.68,-7.38,366.07,-341.8,-123.43,-368.18,-289.05,-48.53,147.25,387.16,-156.13,79.12,425.14,197.27,-13.71,-297.49,213.1,-340.75,-169.85,152.97,182.51,-74.9,-161.41,-258.46,-418.81,-458.90,-370.29,-407.58,-209.93,242.64,386.11,160.35,-43.25,-247.91,-336.53,-200.44,-167.74,-378.73,-117.10,-77.01,120.26,175.12,319.65,412.48,401.93,29.54,-60.13,-182.51,74.9,161.41,258.46,418.81,370.29,209.93,-4.22,-242.64,-458.9,-386.11,-160.35,43.25,247.91,336.53,200.44,167.74,378.73,117.1,77.01,-175.12,-319.65,-412.48,-29.54,60.13,'1-1','1-2','1-3','1-4','1-5','1-6','1-7','1-8','1-9','1-10','2-1','2-2','2-3','2-4','2-5','2-6','2-7','2-8','2-9','2-10','3-1','3-2','3-3','3-4','3-5','3-6','3-7','3-8','3-9','3-10','4-1','4-2','4-3','4-4','4-5','4-6','4-7','4-8','4-9','4-10'}, __fields = { 'Id', 'Chapter', @@ -10,6 +10,8 @@ __fields = { 'Picture', 'Name', 'LevelPointPosition', + 'UselessPoint', + 'Head', 'Repeat', 'NextLevel', 'LevelLimit', @@ -32,9 +34,11 @@ __defaults = { nil, nil, nil, - 15, nil, - 15, + 6, + 1, + nil, + 1, nil, nil, nil, @@ -43,23 +47,25 @@ __defaults = { nil }, __refs = { - {16,.81,1,2.1,4.3}, - {16,1.81,-18,2.1,4.3}, - {388,1.7,2,-1,-8,4.1,4.1,1.8,6.1,16.6}, - {398,1.57}, - {{{1},{86,-5,-9,-13,-17,-28,-3,-2,-2,-3,3,-2.2,3,28,17,13,9,5,0,18.1,36.53}},{{2},{96,-3,-5,-1,-2,-12,-10,-3,-13,-26,-8,8.2,-2,-2,4.2,-1,-1,95,19.1,38.73}}}, - {16,-1,1,2.1,4.1,8.1,2.1,0,19.1,38.73}, - {15,1,0,2,0,2,4.1,8.1,0,2,15,0,1,0,1,4.1,8.1,0,1,3,5.3,2,19.1,13.7,8.6}, - {35,.7,1,2.1,.6,1,.5,2.1,6.1,12.7,.2}, + {2,.81,1,2.1,4.3}, + {2,1.81,-18,2.1,4.3}, + {374,1.7,8,-4,-11,4.1,8.5,4,7.1,7.6}, + {531,-158,159,-159,160,-160,161,-161,162,-162,163,-163,164,-164,165,-165,166,-166,167,1,-168,169,-169,170,-170,171,-171,172,-172,173,-173,174,-174,175,-175,176,-176,177,1,-178,179,-179,180,-180,181,-181,182,-182,183,-183,184,-184,185,-185,186,-186,187,1,-188,189,-189,190,-190,191,-191,192,-192,193,-193,194,-194,195,-195,196,-196,197}, + {{{1},{440,1.2,-49,2,49,1.4,-47,3.2,2,1.5,-53,1,54,1.5,2,8.2,1.2,-38,19.81}},{{2},{390,1.2,2,49,-47,1.4,3.2,1,-21,22,51,-50,1.2,-17,14.2,68,-66,1.4,69,-67,14.3,71,-70,14.4,28.52}}}, + {{{1,1},{479,1,3,2,-98,101,-80,82,1.3,2,1.2,-2.2,1,2.1,3,1,2,1,-121,124,13.3,-136,139,1.2,-50,27.62},{1,-19.3}},{{1,2},{383,28,-2.3,1.2,-35,0,39,-35,37,3,2,1,2,-51,55,-54,15.1,30.92},{1,-19.3}},{{2,1},{409,72,3,-98,34,-34,40,0,72,2,3,2,-110,113,-88,92,3,-80,4,0,86,1,-125,129,-121,24.32},{1,5,1,2,1.2,6,3,6.1,12.11}},{{2,2},{410,-27,31,72,-65,-3.2,2,-378,381,2,4,-28,11.2,2,5,11.9,22.91},{1,5,1,2,1.2,6,3,6.1,12.11}},{{3,1},{482,5,2,5,-59,74,7,5,-135,96,9.8},{3,2,3,4,6,4,5,4.3,9.8}},{{3,2},{412,4,6,-35,49,-24,10,4.3,9.8},{3,2,3,4,6,4,5,4.3,9.8}}}, + {111,-110,111,-111,99,-99,94,-94,103,-103,109,-109,92,-92,112,-112,107,-107,93,0,-93,106,-106,83,-83,101,-101,91,-91,96,-96,105,-105,84,-84,86,-86,90,11,-101,89,-89,113,-113,97,-97,38.2,108,-108,46.2,36.2,102,-102,95,-9,-86,34.2,104,-104,87,-87,85,-85,93,-93,42.2,100,-100,98,-98,103}, + {2,-1,1,2.1,4.1,8.1,2.1,0,19.1,38.73}, + {1.2,0,2,0,2,4.1,8.1,0,-2.2,0,1,0,1,4.1,8.1,0,36.2,1,24.3,18.1,14.8,10.4}, nil, - {323,1.2,-310,311,1.4,-315,316,1.4,-320,321,1.5,-326,327,1.4,-331,332,1.4,-336,337,1.5,-342,343,1.4,-347,348,1.4,-352,353,1.5,-358,359,1.4,-363,364,1.4,-368,369,1.2}, - {120,-5,6,0,5,-8,4,-6,6,-8,-1,4,-5,9,2,-12,13,1,-4,6,-6,7,1.2}, - {138,0,1,-124,125,0,1,0,1,-127,128,6.4,-130,131,0,1.2,0,1,-134,135,12.3,148,-284,285,18.4,-287,288,18.2,.2,-290,291,11.4,-293,294,6.4,-296,298,0,2,-3,0,2,-299,300,13.4,-302,303,6.4,-305,306,4.2}, - {{{1},{152,1.65,-18,1.81}}}, - {16,2,-2,1,-1,4.2,6.1,6.1,0,19.1,38.73}, - {18,-3,3,2.1,4.1,8.1,2.1,0,19.1,38.73}, - {{{1},{48,.2,15,1,-16,16,-1,0,5.2,44,-29,1,-1,35,-33,-1,-1,.2,39,-4,-35,36,-1,3.2,-36,35,-35,13,-1,-12,43,30,-73,.2,35},{-2.9,3,-2.8,2.1,2.1}},{{2},{64,-1,0,13,.2,57,-58,59,-31,-39,35,2,-25,24,-23,58,-59,0,23,8,-1,-16,9,-22,-1,25,-24,60,-61,32,-45,34,8,-6,-36,46,-15,-3,19},{-2.9,3,-2.8,2.1,2.1}},{{3},{131,-54,55,0,-30,31,-58,32,-31,23,36,-16,-30,46,-31,-9,-3,6,0,7,-6,-37,74,-35,-38,38,-25,32,-10,4,29,-33,-35,74,-74,37,-2,0,1,-23},{-2.9,3,-2.8,2.1,2.1}}}, - {{{1},{209,1.92,-9,1.9},{-2.9,3,-2.8,2.1,2.1}},{{2},{239,1.92,-9,1.9},{-2.9,3,-2.8,2.1,2.1}},{{3},{269,1.92,-9,1.9},{-2.9,3,-2.8,2.1,2.1}}} + nil, + {309,1.2,-310,311,1.4,-315,316,1.4,-320,321,1.5,-326,327,1.4,-331,332,1.4,-336,337,1.5,-342,343,1.4,-347,348,1.4,-352,353,1.5,-358,359,1.4,-363,364,1.4,-368,369,1.2}, + {82,-5,6,0,5,-8,4,-6,6,-8,-1,4,-5,9,2,-12,13,1,-4,6,-6,7,1.2}, + {124,0,1,-124,125,0,1,0,1,-127,128,6.4,-130,131,0,1.2,0,1,-134,135,12.3,148,-284,285,18.4,-287,288,18.2,.2,-290,291,11.4,-293,294,6.4,-296,298,0,2,-3,0,2,-299,300,13.4,-302,303,6.4,-305,306,4.2}, + {{{1},{138,1.65,-18,1.81}}}, + {-2.2,-2,1,-1,2,-2,2.1,6.1,6.4,0,13.21,19.1,38.52}, + {4,-3,3,2.1,4.1,8.1,2.1,0,19.1,38.73}, + {{{1},{21,.2,13,10,-23,13,28,-28,0,-13,9.2,1,-14,14,-1,0,5.2,37,-24,1,-1,28,-26,-1,-1,.2,32,-4,-28,29,-1,3.2,-29,28},{-2.9,3,-2.8,2.1,2.1}},{{2},{34,28,-28,28,53,-61,64,-57,1,5,-32,-1,0,11,.2,74,-75,76,-53,-32,28,2,-20,19,-18,75,-76,0,18,8,-1,-13,6,-17,-1,20,-19,77,-78},{-2.9,3,-2.8,2.1,2.1}},{{3},{56,3,-14,0,21,49,-71,73,-72,18,53,-70,72,0,-52,53,-75,27,-26,18,58,-40,-26,66,-53,-8,-2,4,0,7,-6,-30,89,-57,-31,31,-20,27,-10,4},{-2.9,3,-2.8,2.1,2.1}}}, + {{{1},{195,1.92,-9,1.9},{-2.9,3,-2.8,2.1,2.1}},{{2},{225,1.92,-9,1.9},{-2.9,3,-2.8,2.1,2.1}},{{3},{255,1.92,-9,1.9},{-2.9,3,-2.8,2.1,2.1}}} }, __refPoss = { nil, @@ -72,6 +78,8 @@ __refPoss = { nil, nil, nil, + nil, + nil, {2,4,2.1,2,4,3,6.1,12.11}, nil, nil, diff --git a/luafight/Modules/Battle/Config/Data/HardStageCondition.lua b/luafight/Modules/Battle/Config/Data/HardStageCondition.lua index 436f32f20..ebf056a66 100644 --- a/luafight/Modules/Battle/Config/Data/HardStageCondition.lua +++ b/luafight/Modules/Battle/Config/Data/HardStageCondition.lua @@ -1,8 +1,8 @@ local HardStageCondition = { -__count = 63, -__indexs = {100,101,1.8,92,1.4,207,1.3,7,2.1,4.3,56,1.5,95,1.3,97,2.1,1.2,97,101,1.3,43902,-2.7,10,20}, -__values = {0,1.11,59989,-20000.7,100000,200000,500003,43,1}, -__exVals = {63,'通过关卡','2回合内通过关卡','3回合内通过关卡','4回合内通过关卡','5回合内通过关卡','6回合内通过关卡','7回合内通过关卡','8回合内通过关卡','9回合内通过关卡','10回合内通过关卡','最多上阵1个神将通过关卡','最多上阵2个神将通过关卡','最多上阵3个神将通过关卡','最多上阵4个神将通过关卡','最多上阵5个神将通过关卡','至少上阵人系神将2个','至少上阵人系神将3个','至少上阵人系神将4个','至少上阵人系神将5个','至少上阵佛系神将2个','至少上阵佛系神将3个','至少上阵佛系神将4个','至少上阵佛系神将5个','至少上阵妖系神将2个','至少上阵妖系神将3个','至少上阵妖系神将4个','至少上阵妖系神将5个','至少上阵道系神将2个','至少上阵道系神将3个','至少上阵道系神将4个','至少上阵道系神将5个','存活1个人','存活2个人','存活3个人','存活4个人','存活5个人','存活6个人','不上阵输出神将通过关卡','不上阵辅助神将通过关卡','不上阵肉盾神将通过关卡','不上阵控制神将通过关卡','不上阵人系神将通过关卡','不上阵佛系神将通过关卡','不上阵妖系神将通过关卡','不上阵道系神将通过关卡','佩戴普贤菩萨魂印通过关卡','佩戴辟邪守护魂印通关关卡','佩戴破军魂印通关关卡','不使用灵兽通过关卡','全部上阵输出职业神将通过关卡','全部上阵辅助职业神将通过关卡','全部上阵肉盾职业神将通过关卡','全部上阵控制职业神将通过关卡','5回合内造成6万伤害','5回合内造成8万伤害','5回合内造成10万伤害','5回合内造成12万伤害','5回合内造成14万伤害','5回合内造成16万伤害','5回合内造成18万伤害','5回合内造成20万伤害','5回合内造成30万伤害','5回合内造成50万伤害'}, +__count = 109, +__indexs = {100,101,1.8,92,1.4,207,1.3,7,2.1,4.3,56,1.5,95,1.3,97,2.1,1.83,61,101,1.3,43901,1.3,-2.6,10,20,30,20,-50.6}, +__values = {0,1.11,49989,-10000.3,-20000.6,100000,200000,300000,200000,9,1,2,1.2,2,1.6,3,4.2,2.1,1.61,2,1.3,499946,-500000.5}, +__exVals = {109,'通过关卡','2回合内通过关卡','3回合内通过关卡','4回合内通过关卡','5回合内通过关卡','6回合内通过关卡','7回合内通过关卡','8回合内通过关卡','9回合内通过关卡','10回合内通过关卡','最多上阵1个神将通过关卡','最多上阵2个神将通过关卡','最多上阵3个神将通过关卡','最多上阵4个神将通过关卡','最多上阵5个神将通过关卡','至少上阵人系神将2个','至少上阵人系神将3个','至少上阵人系神将4个','至少上阵人系神将5个','至少上阵佛系神将2个','至少上阵佛系神将3个','至少上阵佛系神将4个','至少上阵佛系神将5个','至少上阵妖系神将2个','至少上阵妖系神将3个','至少上阵妖系神将4个','至少上阵妖系神将5个','至少上阵道系神将2个','至少上阵道系神将3个','至少上阵道系神将4个','至少上阵道系神将5个','存活1个人','存活2个人','存活3个人','存活4个人','存活5个人','存活6个人','不上阵输出神将通过关卡','不上阵辅助神将通过关卡','不上阵肉盾神将通过关卡','不上阵控制神将通过关卡','不上阵人系神将通过关卡','不上阵佛系神将通过关卡','不上阵妖系神将通过关卡','不上阵道系神将通过关卡','佩戴舍身济世魂印通过关卡','佩戴辟邪守护魂印通过关卡','佩戴破军魂印通过关卡','佩戴妲己魂印通过关卡','佩戴猪八戒魂印通过关卡','佩戴精卫魂印通过关卡','佩戴百花仙子魂印通过关卡','佩戴唐僧魂印通过关卡','佩戴孙悟空魂印通过关卡','佩戴降龙罗汉魂印通过关卡','佩戴孔雀明王魂印通过关卡','佩戴燃灯魂印通过关卡','佩戴月光菩萨魂印通过关卡','佩戴女儿国王魂印通过关卡','佩戴九命猫魂印通过关卡','佩戴娥皇魂印通过关卡','佩戴冥毒邪宴魂印通过关卡','佩戴太阴星君魂印通过关卡','佩戴通天教主魂印通过关卡','佩戴罗刹魂印通过关卡','佩戴夜叉魂印通过关卡','佩戴瘟癀疫病魂印通过关卡','佩戴蚀骨火毒魂印通过关卡','佩戴神女庇佑魂印通过关卡','佩戴姑获鸟魂印通过关卡','佩戴敖丙魂印通过关卡','佩戴义结金兰魂印通过关卡','佩戴青鸟传信魂印通过关卡','佩戴火烧连城魂印通过关卡','佩戴破邪怒斩魂印通过关卡','佩戴狂噬戮兽魂印通过关卡','佩戴哪吒魂印通过关卡','佩戴失心暴怒魂印通过关卡','佩戴起死回生魂印通过关卡','佩戴破阵穿心魂印通过关卡','佩戴饕餮吞鲸魂印通过关卡','佩戴羲农之佑魂印通过关卡','佩戴除妖斩魔魂印通过关卡','佩戴历战之躯魂印通过关卡','不使用灵兽通过关卡','全部上阵输出职业神将通过关卡','全部上阵辅助职业神将通过关卡','全部上阵肉盾职业神将通过关卡','全部上阵控制职业神将通过关卡','5回合内造成5万伤害','5回合内造成6万伤害','5回合内造成7万伤害','5回合内造成8万伤害','5回合内造成10万伤害','5回合内造成12万伤害','5回合内造成14万伤害','5回合内造成16万伤害','5回合内造成18万伤害','5回合内造成20万伤害','5回合内造成30万伤害','5回合内造成50万伤害','5回合内造成80万伤害','5回合内造成100万伤害','5回合内造成150万伤害','5回合内造成200万伤害','5回合内造成250万伤害','5回合内造成300万伤害','5回合内造成350万伤害','5回合内造成400万伤害'}, __fields = { 'Id', 'ConditionType', @@ -15,9 +15,9 @@ __defaults = { nil }, __refs = { - {2,1,.8,1,.4,2,.51,1,.5,1,.3,2.1,1,.2,1.2,.3,-7,.9}, - {{{1},{2,1.9,-9,1.4,-4,.3,1,2.1,4.3,-3,1.5,-4,2,-3,2,-2,1.3,18,2,-1,-23,-2.2,-3,-2.2,.9}},{{2},{3,1.3,-3,2.1,4.3,7,1.9},{16,1.51,23,1.9}}}, - {26,1.26} + {2,1,.8,1,.4,2,.51,1,.5,1,.3,2.1,1,.83,1.2,.3,-7,.91}, + {{{1},{2,1.9,-9,1.4,-4,.3,1,2.1,4.3,-3,1.5,-4,2,-3,2,-2,1.3,60,-6,-1,-31,1.03,3,1.4,-63,-2.2,-3,-2.2,.91}},{{2},{3,1.3,-3,2.1,4.3,7,1.31,40,1.5},{16,1.51,59,1.91}}}, + {72,1.801} }, __refPoss = { nil, diff --git a/serverlogic/src/main/java/com/ljsd/GmService.java b/serverlogic/src/main/java/com/ljsd/GmService.java index 9a6fc4d03..6c93d1f77 100644 --- a/serverlogic/src/main/java/com/ljsd/GmService.java +++ b/serverlogic/src/main/java/com/ljsd/GmService.java @@ -115,19 +115,8 @@ public class GmService implements RPCRequestGMIFace.Iface { } else { LOGGER.info("gm________________________start:"+cmd); obj.exec(parameters); - - // 获取玩家战报系统 - if (cmd.contains("fightrecord")) { - if (cmd.contains("delete")) { - FightRecordLogic.getInstance().delete(); - } else if (cmd.contains("all")){ - String allValue = FightRecordLogic.getInstance().getAll(Integer.parseInt(parameters[1])); - result.setResultMsg(allValue); - } else { - String oneRecord = FightRecordLogic.getInstance().getOneRecord(parameters[0]); - result.setResultMsg(oneRecord); - } - } + String exec2 = obj.exec2(parameters); + result.setResultMsg(exec2); LOGGER.info("gm________________________end:"+cmd); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 4e3a34fea..8105dbd55 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -27,5 +27,6 @@ public interface GlobalGm { int JOURNEY_GM = 24;//逍遥游GM操作 // int TECNOLOGY_MAX = 21;//科技树一键满级 // int POKEMAN_MAX = 22;//一键获得所有满级异妖 + int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java index 2bae884d7..056f2dda3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java @@ -111,7 +111,8 @@ public class FastChallengeHandler extends BaseHandler=5){ String nickName = user.getPlayerInfoManager().getNickName(); - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("Dial_Reward_txt", new Object[]{nickName, sItem.getName()},new int[]{0,1}); + String nameColor = user.getPlayerInfoManager().getNameColor(); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("Dial_Reward_txt", + new Object[]{nameColor, nickName, sItem.getName()}, + new int[]{0,0,1}); int sysType = sGlobalActivity.getType() == 30 ? Global.LUCKWHEEL : Global.LUCKWHEEL_ADVANCE; ChatLogic.getInstance().sendSysChatMessage(message, sysType, "0", 0, 0, 0, 0, 0); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/core/ExchangeCdkHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/core/ExchangeCdkHandler.java index 4ea5fba98..411344a22 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/core/ExchangeCdkHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/core/ExchangeCdkHandler.java @@ -44,7 +44,7 @@ public class ExchangeCdkHandler extends BaseHandler sCdkInfosCacheMap = CoreLogic.getInstance().getsCdkInfosCacheMap(); - if (cdk.length() != 18 || sCdkInfosCacheMap == null || sCdkInfosCacheMap.isEmpty()) { + if (sCdkInfosCacheMap == null || sCdkInfosCacheMap.isEmpty()) { throw new ErrorCodeException(ErrorCode.CDK_FAIL); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java index 2aa81ebcb..f30c5a2f0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java @@ -60,7 +60,11 @@ public class GuildHelpGetAllRequestHandler extends BaseHandler entry : entries) { builder.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(user.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)).setHadtakenum(guidHelpHadTakeInfo.getOrDefault(entry.getKey(),0)).setNum(entry.getValue())); } - Family.GuildHelpInfoIndication build = builder.setUid(target.getId()).setName(target.getPlayerInfoManager().getNickName()).build(); + Family.GuildHelpInfoIndication build = builder + .setUid(target.getId()) + .setName(target.getPlayerInfoManager().getNickName()) + .setPracticeLevel(target.getHeroManager().getPracticeLevel()) + .build(); builder1.addGuildHelpInfoIndication(build); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java index 52baa29a9..578a6e4cc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java @@ -101,11 +101,13 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler entry : target.getGuildMyInfo().getGuidHelpInfo().entrySet()) { build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(target.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)).setNum(entry.getValue())); } - build.setName(target.getPlayerInfoManager().getNickName()).setUid(target.getId()); + build.setName(target.getPlayerInfoManager().getNickName()).setUid(target.getId()).setPracticeLevel(target.getHeroManager().getPracticeLevel()); GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build()); - GuildHelpLog guildHelpLog = new GuildHelpLog(uid, target.getId(), user.getPlayerInfoManager().getNickName(), target.getPlayerInfoManager().getNickName(), (int) (System.currentTimeMillis() / 1000), proto.getType()); + GuildHelpLog guildHelpLog = new GuildHelpLog(uid, target.getId(), user.getPlayerInfoManager().getNickName(), + target.getPlayerInfoManager().getNickName(), (int) (System.currentTimeMillis() / 1000), proto.getType(), + user.getHeroManager().getPracticeLevel(), target.getHeroManager().getPracticeLevel()); guildInfo.addGuildHelpLog(guildHelpLog); //notify all log Family.GuildHelpLogIndication build1 = Family.GuildHelpLogIndication.newBuilder() diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java index 58101f9a6..2c2708bd0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java @@ -81,7 +81,11 @@ public class GuildSendHelpRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.WELFARE_RED_PACKET_REQUEST; + } + @Override + public void processWithProto(ISession iSession, PlayerInfoProto.WelfareRedPacketRequest proto) throws Exception { + User user = UserManager.getUser(iSession.getUid()); + GuildLogic.sendWelfareRedPacketInfo(user); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageReportRequsetHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageReportRequsetHandler.java index 64a3c041c..eed43c879 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageReportRequsetHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageReportRequsetHandler.java @@ -30,13 +30,13 @@ public class HardStageReportRequsetHandler extends BaseHandler chapterMap = user.getHardStageManager().getChapterMap(user); if (!chapterMap.containsKey(nodeConfig.getChapter()) ||chapterMap.get(nodeConfig.getChapter()).getNode(nodeId) == null) { //上一个节点 - String a; SHardStage preNodeConfig = SHardStage.getConfigMap().get(nodeConfig.getNextLevel()); if(preNodeConfig != null){ if(chapterMap.containsKey(preNodeConfig.getChapter())){ @@ -121,9 +121,6 @@ public class StartHardStageRequestHandler extends BaseHandler0){ + Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 2, starSum)); + //成就任务 + user.getUserMissionManager().onGameEvent(user, GameEvent.HARSTAGE_STARS,starSum); + } + //大关卡通过成就+1 + if(nodeConfig.getStageType() == 1){ + //nodeConfig + int bigStageNumber = SHardStage.getBigStageNumberById(nodeConfig.getId()); + if( bigStageNumber>0 ){ + user.getUserMissionManager().onGameEvent(user, GameEvent.HARSTAGE_NODE,bigStageNumber); + } + } } } - //排行榜 + //排行榜章节 int hardStageId = SHardStage.getStageIdByChapterAndSection(user.getHardStageManager().getCurChapter(), user.getHardStageManager().getCurNode()); Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 1, hardStageId)); - int starSum = HardStageLogic.getHardStageStarsSum(user); - if(starSum >0){ - Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 2, starSum)); - } + ItemUtil.drop(user, dropList.stream().mapToInt(Integer::intValue).toArray(), drop, 1, 0, BIReason.HARD_STAGE_GET); fightStartResponse.setDrop(drop); Map chapt = user.getHardStageManager().getChapterMap(user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java index 4507b917f..ccf52a61d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/ReplacePurpleMansionSealHandler.java @@ -1,10 +1,8 @@ package com.ljsd.jieling.handler.hero; -import com.google.protobuf.GeneratedMessage; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; -import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.PurpleMansionSeal; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -18,7 +16,6 @@ import rpc.protocols.MessageTypeProto; import java.util.List; import java.util.Map; -import java.util.Objects; /** * @Author hj @@ -73,6 +70,7 @@ public class ReplacePurpleMansionSealHandler extends BaseHandler sealInfo = CBean2Proto.getPurpleMansionSealInfo(user); HeroInfoProto.ReplacePrupleMansionSealResponse build = HeroInfoProto.ReplacePrupleMansionSealResponse.newBuilder().addAllSealList(sealInfo).build(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java index 6fab497c0..e4ac44510 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/UpPracticeLevelHandler.java @@ -9,6 +9,7 @@ import com.ljsd.jieling.logic.dao.PurpleMansionSeal; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hardStage.HardStageLogic; +import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.CBean2Proto; import com.ljsd.jieling.util.ItemUtil; @@ -72,6 +73,7 @@ public class UpPracticeLevelHandler extends BaseHandler sealInfo = CBean2Proto.getPurpleMansionSealInfo(user); - HeroInfoProto.PurpleMansionSealIndication build2 = HeroInfoProto.PurpleMansionSealIndication.newBuilder().addAllSealList(sealInfo).build(); - MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.PurpleMansionSealIndication_VALUE,build2,true); + HeroLogic.sendMessageBySeal(user.getId()); } // 升级返回 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java new file mode 100644 index 000000000..13355eb8b --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepBattleRequestHandler.java @@ -0,0 +1,80 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.SweepLogic; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.family.GuildFightLogic; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import com.sun.deploy.util.ArrayUtil; +import com.sun.tools.javac.util.ArrayUtils; +import config.SFloodConfig; +import config.SSpecialConfig; +import manager.STableManager; +import org.assertj.core.util.Lists; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.FightInfoProto; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +import java.util.List; +import java.util.Map; + +@Component +public class SweepBattleRequestHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.SWEEP_DEMON_REQUEST; + } + + + @Override + public void processWithProto(ISession iSession, FightInfoProto.SweepDemonRequest proto) throws Exception { + User user = UserManager.getUser(iSession.getUid()); + int id =proto.getId(); + SFloodConfig sFloodConfig = STableManager.getConfig(SFloodConfig.class).get(id); + if(sFloodConfig == null){ + return; + } + List dropList = Lists.newArrayList(); + boolean isOnekey= proto.getOnkeySweep(); + boolean isSuccess = false; + CommonProto.Drop.Builder drop = null; + //判断是否挑战过 + if(user.getMapManager().getLastMonsterAttack()0){ + int[][] reward = new int[times*sFloodConfig.getReward().length][2]; + for(int i =0;i vipRewardMap = user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap(); + //针对已有特权等级玩家的兼容 for(int i = user.getPlayerInfoManager().getVipLevel();i>=1;i--){ if(!vipRewardMap.containsKey(i) && i!=0){ - vipRewardMap.put(i,0); + vipRewardMap.put(i,1); } } user.getUserMissionManager().setVipMissionIdsType(user.getUserMissionManager().getVipMissionIdsType()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fightrecord.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fightrecord.java index 6ac29876f..0aaf1bf7c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fightrecord.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fightrecord.java @@ -1,12 +1,37 @@ package com.ljsd.jieling.kefu; +import com.ljsd.jieling.logic.fight.FightRecordLogic; + +import java.util.Optional; + public class Cmd_fightrecord extends GmAbstract { @Override public boolean exec(String[] args) throws Exception { - if (args.length < 2) { - return false; - } return true; } + + @Override + public String exec2(String[] args){ + if (args.length < 2){ + return ""; + } + // 获取玩家战报系统 + String content = Optional.ofNullable(args[0]).orElse(""); + String parm = Optional.ofNullable(args[1]).orElse(""); + String result = ""; + if (content.equals("delete")){ + FightRecordLogic.getInstance().delete(); + } + else if (content.equals("all")){ + result = FightRecordLogic.getInstance().getAll(Integer.parseInt(parm)); + System.out.printf("战报信息,all:{%s}",result); + } + else { + result = FightRecordLogic.getInstance().getOneRecord(content); + System.out.printf("战报信息,OneRecord:{%s}",result); + } + + return result; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_updateguild.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_updateguild.java new file mode 100644 index 000000000..16e109ce4 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_updateguild.java @@ -0,0 +1,49 @@ +package com.ljsd.jieling.kefu; + +import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.logic.dao.GuilidManager; +import com.ljsd.jieling.logic.dao.root.GuildInfo; +import com.ljsd.jieling.logic.family.GuildLogic; + +import java.util.Optional; + +public class Cmd_updateguild extends GmAbstract { + + @Override + public boolean exec(String[] args) throws Exception { + + int guildId = Optional.of(Integer.parseInt(args[0])).orElse(0); + GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId); + if (guildInfo == null) { + throw new ErrorCodeException("修改公会,公会不存在,公会id:"+guildId); + } + + String parm = Optional.ofNullable(args[1]).orElse(""); + + String content; + switch (parm) { + case "name": + // 修改公会名字 + content = Optional.ofNullable(args[2]).orElse(""); + guildInfo.setName(content); + break; + case "announce": + // 修改公会宣言 + content = Optional.ofNullable(args[2]).orElse(""); + guildInfo.setAnnounce(content); + break; + case "dissolution": + guildInfo.setLevelTime(1); + GuilidManager.addGuildToRelease(guildInfo); + break; + default: + throw new ErrorCodeException("修改公会,类型错误,公会id:"+guildId+",类型:"+parm); + } + GuildLogic.sendFamilyBaseUpdateIndication(guildInfo); + + //非用户线程更新玩家数据 + MongoUtil.getLjsdMongoTemplate().lastUpdate(); + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/GmInterface.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/GmInterface.java index d894a1467..6d6a913f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/GmInterface.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/GmInterface.java @@ -4,5 +4,10 @@ package com.ljsd.jieling.kefu; public interface GmInterface { boolean exec(String[] args) throws Exception; - String usage(); + + default String exec2(String[] args) throws Exception { + return ""; + } + + String usage(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index f20049408..2c2b9d6e4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -171,7 +171,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); return true; } - protected void reportTakeActivityReward(User user, int[][] reward, int missionId) throws Exception { + protected void reportTakeActivityReward(User user, int[][] reward, int missionId) throws Exception { List itemId = new ArrayList<>(reward.length); List itemNum = new ArrayList<>(reward.length); Arrays.stream(reward).forEach(n->{itemId.add(n[0]);itemNum.add(n[1]);}); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java index a71a85566..e57ffa285 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java @@ -3,25 +3,29 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.main.CowFlySkyMissionType; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; import config.SArroGantFly; +import config.SErrorCodeEerverConfig; import config.SGlobalActivity; import manager.STableManager; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; +import util.TimeUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; +import java.util.*; public class CowFlySkyActivity extends AbstractActivity { @@ -65,7 +69,7 @@ public class CowFlySkyActivity extends AbstractActivity { } // 是否满足领取条件值 - if (!checkValue(user,config.getValues())) { + if (!takeRewardsProcess(session,config,progressInfo)) { LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), config.getId(), progressInfo.getProgrss(), config.getValues()); throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件")); } @@ -84,9 +88,12 @@ public class CowFlySkyActivity extends AbstractActivity { return true; } - private boolean checkValue(User user,int[][] value){ - Item item = user.getItemManager().getItem(value[0][0]); - return item.getItemNum() >= value[1][0]; + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + User user = UserManager.getUser(session.getUid()); + int[][] values = sActivityRewardConfig.getValues(); + Long num = Optional.ofNullable(user.getItemManager().getItem(values[0][0])).map(Item::getItemNum).orElse(0L); + return num >= values[1][0]; } @Override @@ -100,4 +107,37 @@ public class CowFlySkyActivity extends AbstractActivity { ItemUtil.itemCost(user, cost, BIReason.EXCHANGE_ACTIVITY_CLOSE, id); } } + + @Override + public void onActivityEndDealReward(User user) throws Exception { + LOGGER.info("牛气冲天活动结束,发送未领取奖励..........."); + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + if (session == null){ + return; + } + takeAllReward(session); + } + + @Override + void takeAllReward(ISession session) throws Exception { + User user = UserManager.getUser(session.getUid()); + List itemArrs = new LinkedList<>(); + // 活动奖励 + getAllMissRewards(user, session, itemArrs); + // 任务奖励 + user.getUserMissionManager().getCowFlySkyMissionType().getAllRewards(itemArrs); + + if (itemArrs.size() == 0){ + return; + } + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (null == sGlobalActivity) { + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } + String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("receive_activity_title", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); + String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); + String mailReward = ItemUtil.getMailReward(itemArrs); + int nowTime = (int) (TimeUtils.now() / 1000); + MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java index 6661e1e95..42de97613 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java @@ -113,8 +113,10 @@ public class LuckyCatActivity extends AbstractActivity { KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); String nickName = user.getPlayerInfoManager().getNickName(); SItem sItem = SItem.getsItemMap().get(temp2[0]); - - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("luck_cat_take_reward_content", new Object[]{nickName, sItem.getName(), temp2[1]},new int[]{0,1,0}); + String nameColor = user.getPlayerInfoManager().getNameColor(); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("luck_cat_take_reward_content", + new Object[]{nameColor, nickName, sItem.getName(), temp2[1]}, + new int[]{0,0,1,0}); ChatLogic.getInstance().sendSysChatMessage(message, Global.LUCKCAT, "", 0, 0, 0, 0, 0); reportTakeActivityReward(user,reward,missionId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java index 127735ec5..4b3f46c8c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RemoveEventHeroHandler.java @@ -3,11 +3,17 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent; -import com.ljsd.jieling.logic.dao.Hero; -import com.ljsd.jieling.logic.dao.PropertyItem; -import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.util.CBean2Proto; +import com.ljsd.jieling.util.MessageUtil; +import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; +import java.util.Collection; +import java.util.List; import java.util.Map; public class RemoveEventHeroHandler implements IEventHandler{ @@ -35,6 +41,20 @@ public class RemoveEventHeroHandler implements IEventHandler{ endlessHeroInfo.remove(heroId); userInMem.getMapManager().updateEndlessHero(endlessHeroInfo); } + + // 紫府神印处理 + HeroManager heroManager = userInMem.getHeroManager(); + Collection values = heroManager.getPurpleMansionSeal().values(); + for (PurpleMansionSeal v : values) { + if (v.getType() == 1 && v.getSubId().equals(heroId)){ + v.setSubId(""); + v.setState(0); + heroManager.putPurpleMansionSeal(v); + // 推送神印消息 + HeroLogic.sendMessageBySeal(uid); + break; + } + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/PokemonFiveStarGetEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/PokemonFiveStarGetEvent.java new file mode 100644 index 000000000..ce61b44a8 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/PokemonFiveStarGetEvent.java @@ -0,0 +1,32 @@ +package com.ljsd.jieling.logic.activity.event; + +/** + * Description: 五星灵兽获得事件 + * Author: zsx + * CreateDate: 2019/11/25 10:36 + */ +public class PokemonFiveStarGetEvent implements IEvent { + private int uid; + private int star; + private int num; + + public PokemonFiveStarGetEvent(int uid, int star, int num) { + this.uid = uid; + this.star = star; + this.num = num; + } + + public int getNum(){return num;} + + public int getStar() { + return star; + } + + public PokemonFiveStarGetEvent(int uid) { + this.uid = uid; + } + + public int getUid() { + return uid; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/PokemonFiveStarGetEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/PokemonFiveStarGetEventHandler.java new file mode 100644 index 000000000..bd470701c --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/PokemonFiveStarGetEventHandler.java @@ -0,0 +1,25 @@ +package com.ljsd.jieling.logic.activity.eventhandler; + +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.IEventHandler; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.PokemonFiveStarGetEvent; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; +import com.ljsd.jieling.network.session.ISession; + +public class PokemonFiveStarGetEventHandler implements IEventHandler { + + @Override + public void onEvent(IEvent event) throws Exception { + if (!(event instanceof PokemonFiveStarGetEvent)) + return; + //动态控制购买数量 + User user = UserManager.getUser(((PokemonFiveStarGetEvent) event).getUid()); + int star = ((PokemonFiveStarGetEvent) event).getStar(); + int num = ((PokemonFiveStarGetEvent) event).getNum(); + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + BuyGoodsNewLogic.openPush(session,user,8,star,num); + } +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index 330c78ea8..04b03de0b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -185,6 +185,11 @@ public class CumulationData { //地图探索度达到 public int mapOpenPercent; + //山河社稷星星数 + public int hardstage_stars; + //山河社稷章节数 + public int hardstage_node; + public Result updateData(MissionType missionType, Object...parm) throws Exception { return DataManagerDistributor.updateData(this, missionType,parm); } @@ -411,4 +416,20 @@ public class CumulationData { public void setHongmeng_tablet_level(int hongmeng_tablet_level) { this.hongmeng_tablet_level = hongmeng_tablet_level; } + + public int getHardstage_stars() { + return hardstage_stars; + } + + public void setHardstage_stars(int hardstage_stars) { + this.hardstage_stars = hardstage_stars; + } + + public int getHardstage_node() { + return hardstage_node; + } + + public void setHardstage_node(int hardstage_node) { + this.hardstage_node = hardstage_node; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java index 2d535f9eb..1892cbced 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java @@ -29,7 +29,7 @@ public class HardStageManager extends MongoBase { return chapterMap; } - private Map initChapterMap(User user) throws Exception { + public Map initChapterMap(User user) throws Exception { Map map = new HashMap<>(); SHardStage nodeOne = SHardStage.getConfigMap().get(1);//第一个节点 if (user.getPlayerInfoManager().getLevel() < nodeOne.getLevelLimit()) { @@ -86,6 +86,10 @@ public class HardStageManager extends MongoBase { } HardStageChapter chapter; chapter = chapterMap.computeIfAbsent(config.getChapter(), k -> initChapter(config.getChapter())); + + if(chapter.getNodeList().stream().anyMatch(n->n.getId() == config.getId())){ + return; + } HardStageNode node = initNode(config); chapter.addNodeList(node); /*if(chapterMap.containsKey(config.getChapter())){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 5bd4e4ae2..9d88959e4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -38,6 +38,8 @@ public class PlayerManager extends MongoBase { private String nickName; + private String nameColor; + private int sex; private int level; @@ -199,6 +201,19 @@ public class PlayerManager extends MongoBase { this.nickName = nickName; } + public String getNameColor() { + if (nameColor == null || "".equals(nameColor)){ + // 默认名字颜色 + setNameColor("F6E1B6"); + } + return nameColor; + } + + public void setNameColor(String nameColor) { + updateString("nameColor", nameColor); + this.nameColor = nameColor; + } + public int getLevel() { return level; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java index aa6d7a44e..20ad5be99 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PurpleMansionSeal.java @@ -7,10 +7,7 @@ package com.ljsd.jieling.logic.dao; * @Param $ * @return $ **/ - -import com.ljsd.common.mogodb.MongoBase; - -public class PurpleMansionSeal extends MongoBase { +public class PurpleMansionSeal{ /** * 印章id @@ -18,6 +15,8 @@ public class PurpleMansionSeal extends MongoBase { private int sealId; /** * 印章类型 + * 0:通用 + * 1:附身 */ private int type; /** @@ -44,7 +43,6 @@ public class PurpleMansionSeal extends MongoBase { public void setSealId(int sealId) { this.sealId = sealId; - updateString("sealId", sealId); } public int getType() { @@ -53,7 +51,6 @@ public class PurpleMansionSeal extends MongoBase { public void setType(int type) { this.type = type; - updateString("type", type); } public String getSubId() { @@ -62,7 +59,6 @@ public class PurpleMansionSeal extends MongoBase { public void setSubId(String subId) { this.subId = subId; - updateString("subId", subId); } public int getState() { @@ -71,6 +67,5 @@ public class PurpleMansionSeal extends MongoBase { public void setState(int state) { this.state = state; - updateString("state", state); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index f3b64b898..fc9ffb206 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -107,6 +107,7 @@ public class UserManager { PlayerManager playerManager = user.getPlayerInfoManager(); long now = TimeUtils.now(); playerManager.setNickName(Integer.toString(user.getId())); + playerManager.setNameColor("F6E1B6"); playerManager.setOpenId(openId); playerManager.setLevel(1); playerManager.setExp(0); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildHelpLog.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildHelpLog.java index 5a5e87afe..8134da878 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildHelpLog.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildHelpLog.java @@ -8,14 +8,18 @@ public class GuildHelpLog { private String targetName; private int logTime; // time private int type; // 援助类型 + private int helpPracticeLevel; + private int targetPracticeLevel; - public GuildHelpLog(int helpId, int targetId, String helperName, String targetName, int logTime, int type) { + public GuildHelpLog(int helpId, int targetId, String helperName, String targetName, int logTime, int type, int helpPracticeLevel, int targetPracticeLevel) { this.helpId = helpId; this.targetId = targetId; this.helperName = helperName; this.targetName = targetName; this.logTime = logTime; this.type = type; + this.helpPracticeLevel = helpPracticeLevel; + this.targetPracticeLevel = targetPracticeLevel; } public static String getCollectionName() { @@ -45,4 +49,12 @@ public class GuildHelpLog { public int getType() { return type; } + + public int getHelpPracticeLevel() { + return helpPracticeLevel; + } + + public int getTargetPracticeLevel() { + return targetPracticeLevel; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index f6cb55778..8df644f7e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -609,9 +609,12 @@ public class GuildLogic { } //notify all change - Family.GuildHelpInfoIndication build = builder.setUid(targetUser.getId()).setName(targetUser.getPlayerInfoManager().getNickName()).build(); + Family.GuildHelpInfoIndication build = builder + .setUid(targetUser.getId()) + .setName(targetUser.getPlayerInfoManager().getNickName()) + .setPracticeLevel(targetUser.getHeroManager().getPracticeLevel()) + .build(); GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildInfo.getId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build); -// targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY); }finally { RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId)); } @@ -666,6 +669,7 @@ public class GuildLogic { guildInfo.removeDefendInfo(targetUid); } targetUser.getPlayerInfoManager().setGuildId(0); + targetUser.getPlayerInfoManager().setWelfareRedPackets(new HashMap()); targetUser.getGuildMyInfo().clearOfLevelGuild(); addGuildLog(guildInfo.getId(),GuildDef.Log.KICK,targetUser.getPlayerInfoManager().getNickName()); // Family.FamilyKickIndication build = Family.FamilyKickIndication.newBuilder().setType(1).build(); @@ -940,6 +944,7 @@ public class GuildLogic { RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(uid),cache); guildInfo.removeMember(uidType,uid); user.getPlayerInfoManager().setGuildId(0); + user.getPlayerInfoManager().setWelfareRedPackets(new HashMap()); user.getGuildMyInfo().clearOfLevelGuild(); addGuildLog(guildInfo.getId(),GuildDef.Log.LEVEL,user.getPlayerInfoManager().getNickName()); MessageUtil.sendMessage(session,1,msgId,null,true); @@ -1377,7 +1382,7 @@ public class GuildLogic { User user = UserManager.getUser(uid); int dailyGet = user.getPlayerInfoManager().getDailyWelfareRedPacket(); int maxGet = SSpecialConfig.getIntegerValue(SSpecialConfig.WELFAREREDPACKET_LIMIT); - if(dailyGet < maxGet){ + if(dailyGet <= maxGet){ user.getPlayerInfoManager().setDailyWelfareRedPacket(dailyGet+1); }else{ throw new ErrorCodeException(ErrorCode.REDPACKET_DAILY_LIMIT); @@ -1418,16 +1423,18 @@ public class GuildLogic { .setItemId(already.getValue().getItemId()) .setCount(already.getValue().getCount()) .setPosition(already.getValue().getPosition()) - .setUserTitle(playerInfoManager.getUserTitle()); + .setUserTitle(playerInfoManager.getUserTitle()) + .setPracticeLevel(UserManager.getUser(already.getValue().getUid()).getHeroManager().getPracticeLevel()); builder.addInfo(detail.build()); } } RedPackage packInfo = RedisUtil.getInstence().getMapValue(RedisKey.FAMILY_RED_PACKAGE, String.valueOf(guildId), String.valueOf(redId), RedPackage.class); - PlayerManager playerInfoManager = UserManager.getUser(packInfo.getUid()).getPlayerInfoManager(); + PlayerManager playerInfoManager = UserManager.getUser(session.getUid()).getPlayerInfoManager(); builder.setSendName(playerInfoManager.getNickName()) .setHead(playerInfoManager.getHead()) .setHeadFrame(playerInfoManager.getHeadFrame()) - .setRemainTime(packInfo.getSendTime()+packInfo.getEffectTime()-(int)(TimeUtils.now()/1000)); + .setRemainTime(packInfo.getSendTime()+packInfo.getEffectTime()-(int)(TimeUtils.now()/1000)) + .setPracticeLevel(UserManager.getUser(packInfo.getUid()).getHeroManager().getPracticeLevel()); MessageUtil.sendMessage(session,1,messageType.getNumber(),builder.build(),true); } @@ -1616,7 +1623,10 @@ public class GuildLogic { .setHelpername(log.getHelperName()) .setTargetname(log.getTargetName()) .setTime(log.getLogTime()) - .setType(log.getType()).build(); + .setType(log.getType()) + .setHelpPracticeLevel(log.getHelpPracticeLevel()) + .setTargetPracticeLevel(log.getTargetPracticeLevel()) + .build(); } @@ -1641,6 +1651,7 @@ public class GuildLogic { for (Map.Entry entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) { //通知前端清除公会成员援助信息 build.setUid(user.getId()); + build.setPracticeLevel(user.getHeroManager().getPracticeLevel()); build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setNum(-1)); } GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java index aea8c5114..7cf1ae70c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java @@ -25,7 +25,7 @@ public class HardStageChapter extends MongoBase { this.chapterId = chapterId; } - public List getNodeList() { + public List getNodeList() { return nodeList; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java index afeb133bc..4a89db61d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java @@ -12,6 +12,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemMap; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import com.sun.codemodel.internal.JForEach; import config.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,6 +21,7 @@ import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; import util.StringUtil; +import javax.swing.text.StyledEditorKit; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -330,4 +332,48 @@ public class HardStageLogic { } return 0; } -} + + + /** + * gm测试 + * + * @param + */ + public static void test(User user,int id) throws Exception{ + user.getHardStageManager().getChapterMap(user); + + for(int i=1;i<=id;i++){ + SHardStage config = SHardStage.getConfigMap().get(i); + if(config != null){ + user.getHardStageManager().openNewNode(user,config); + if(i == id){ + user.getHardStageManager().setCurChapter(config.getChapter()); + user.getHardStageManager().setCurNode(config.getSection()); + } + } + } + //user.getHardStageManager().updateString("hardStageManager", user.getHardStageManager()); + Map map = user.getHardStageManager().getChapterMap(user); + //Set key = map.keySet(); + for(Integer key:map.keySet()){ + HardStageChapter chapter = map.get(key); + chapter.getNodeList().stream().forEach(n-> + { + if(!n.isHasPass()){ + if(n.getType()== 1){ + n.setState(7); + chapter.addStars(3); + user.getHardStageManager().updateString("chapterMap." + chapter.getChapterId(), chapter); + //user.getHardStageManager().updateString("chapterMap",user.getHardStageManager().getChapterMap()); + + }else { + n.setState(1); + } + n.setHasPass(true); + } + + }); + } + //user.getHardStageManager().updateString("", user.getHardStageManager()); + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 04c7608ae..aa928b0a9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -22,6 +22,7 @@ import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.activity.eventhandler.HeroFiveStarGetEventHandler; +import com.ljsd.jieling.logic.activity.eventhandler.PokemonFiveStarGetEventHandler; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; @@ -57,6 +58,7 @@ public class HeroLogic{ public HeroLogic(){ //英雄事件监听 Poster.getPoster().listenEvent(new HeroFiveStarGetEventHandler(), HeroFiveStarGetEvent.class); + Poster.getPoster().listenEvent(new PokemonFiveStarGetEventHandler(), PokemonFiveStarGetEvent.class); } public static List transTemplate = new ArrayList<>(); @@ -1164,10 +1166,14 @@ public class HeroLogic{ MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,baseBuilder.build(),true); // 觉醒飘字 if (targetHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_awaken_hero_content_parm)) { - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_awaken_broadcast_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName()},new int[]{0,1}); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_awaken_broadcast_content", + new Object[]{user.getPlayerInfoManager().getNameColor(), user.getPlayerInfoManager().getNickName(), scHero.getReadingName()}, + new int[]{0,0,1}); ChatLogic.getInstance().sendSysChatMessage(message, Global.DILIGENT, String.valueOf(targetHero.getTemplateId()), 0, 0, 0, 0, 0); } else if (targetHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_hero_content_parm)) { - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_rankup_hero_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName(), targetHero.getStar()},new int[]{0,1,0}); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_rankup_hero_content", + new Object[]{user.getPlayerInfoManager().getNameColor(), user.getPlayerInfoManager().getNickName(), scHero.getReadingName(), targetHero.getStar()}, + new int[]{0,0,1,0}); ChatLogic.getInstance().sendSysChatMessage(message, Global.DILIGENT,String.valueOf(targetHero.getTemplateId()), 0, 0, 0, 0, 0); } @@ -2488,7 +2494,7 @@ public class HeroLogic{ fiveStarPushByCombine(user,drop.getHero(0).getHeroId(), composeNum); } if(drop.getPokemonList().size()>0){ - fiveStarPokemonPushByCombine(user,drop.getPokemonList().get(0).getTempId()); + fiveStarPokemonPushByCombine(user,drop.getPokemonList().get(0).getTempId(),composeNum); } HeroInfoProto.HeroComposeResponse heroComposeResponse = HeroInfoProto.HeroComposeResponse .newBuilder() @@ -3667,7 +3673,10 @@ public class HeroLogic{ Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); } if(animal.getQuality() >= SSpecialConfig.getIntegerValue(SSpecialConfig.ANIMAL_BROADCAST_QUALITY)) { //策划资质改成星级 - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_starup_broadcast_content", new Object[]{user.getPlayerInfoManager().getNickName(),animal.getName(),pokemon.getStar()},new int[]{0,1,0}); + String nameColor = user.getPlayerInfoManager().getNameColor(); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_starup_broadcast_content", + new Object[]{nameColor, user.getPlayerInfoManager().getNickName(),animal.getName(),pokemon.getStar()}, + new int[]{0,0,1,0}); if (!message.isEmpty()){ ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,"0",0,0,0,0,0); } @@ -4603,26 +4612,40 @@ public class HeroLogic{ public static void fiveStarPokemonPushByRandom(User user,int[][] getHeros) throws Exception{ int fiveStarNum = 0; for(int[] i : getHeros){ - SSpiritAnimal ssa = SSpiritAnimal.mapConfig.get(i); + SSpiritAnimal ssa = SSpiritAnimal.mapConfig.get(i[0]); if(ssa != null && ssa.getQuality()==5){ - fiveStarNum = 1; + fiveStarNum++; Poster.getPoster().dispatchEvent(new WelfareRedPackEvent(user.getId(), WelfareRedPacketType.random_pokemon.getType(),1)); } } if(fiveStarNum > 0){ - ISession session = OnlineUserManager.getSessionByUid(user.getId()); - BuyGoodsNewLogic.openPush(session,user,8,5,fiveStarNum); + Poster.getPoster().dispatchEvent(new PokemonFiveStarGetEvent(user.getId(),5,fiveStarNum)); } } /** *五星灵兽合成推送 */ - public static void fiveStarPokemonPushByCombine(User user,int itemId) throws Exception{ + public static void fiveStarPokemonPushByCombine(User user,int itemId,int num) throws Exception{ SSpiritAnimal ssa = SSpiritAnimal.mapConfig.get(itemId); if(ssa != null && ssa.getQuality()==5){ - ISession session = OnlineUserManager.getSessionByUid(user.getId()); - BuyGoodsNewLogic.openPush(session,user,8,5,1); + Poster.getPoster().dispatchEvent(new PokemonFiveStarGetEvent(user.getId(),5,num)); } } + + /** + * 推送紫府神印消息 + * @param uid + * @throws Exception + */ + public static void sendMessageBySeal(int uid) throws Exception { + User user = UserManager.getUser(uid); + // 获取神印信息 + List sealInfo = CBean2Proto.getPurpleMansionSealInfo(user); + HeroInfoProto.PurpleMansionSealIndication build2 = HeroInfoProto.PurpleMansionSealIndication.newBuilder().addAllSealList(sealInfo).build(); + + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.PurpleMansionSealIndication_VALUE,build2,true); + + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 20ef6ff12..1b76ce222 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -714,7 +714,10 @@ public class ItemLogic { if (hero.getEspecialEquipLevel() % value[1] != 0) { return; } - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_rankup_equiptalisman_content", new Object[]{user.getPlayerInfoManager().getNickName(), sItem.getName(), hero.getEspecialEquipLevel()},new int[]{0,1,0}); + String nameColor = user.getPlayerInfoManager().getNameColor(); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_rankup_equiptalisman_content", + new Object[]{nameColor, user.getPlayerInfoManager().getNickName(), sItem.getName(), hero.getEspecialEquipLevel()}, + new int[]{0,0,1,0}); ChatLogic.getInstance().sendSysChatMessage(message, Global.DILIGENT, String.valueOf(sItem.getId()), 0, 0, 0, 0, 0); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java index 631eaeb88..7c765444c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java @@ -117,5 +117,8 @@ public enum GameEvent { ENDLESS_KILL_MONTER,//无尽杀小怪 ENDLESS_KILL_SMALL_BOSS,//无尽杀小boss ENDLESS_KILL_LAST_BOSS,//无尽击杀最终boss - ENDLESS_OPEN_MAP//无尽提升探索度 + ENDLESS_OPEN_MAP,//无尽提升探索度 + + HARSTAGE_STARS,//山河社稷图星数 + HARSTAGE_NODE,//山河社稷图通关章节 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index b33095880..4652f9437 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -968,6 +968,12 @@ public class MissionLoigc { case EXPEDITION_FLOOR_TIMES: count = cumulationData.expedition_floor_times.get(missionSubType[0]); break; + case HARSTAGE_STARS: + count = cumulationData.hardstage_stars; + break; + case HARSTAGE_NODE: + count = cumulationData.hardstage_node; + break; //100以后类型继承 AbstractDataManager default: count = 0; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java index a93dc5fee..0c907520c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java @@ -126,6 +126,8 @@ public enum MissionType { HONGMENG_RESONANCE_LATTICE(119),//鸿蒙阵共鸣格子 HONGMENG_TABLET_LEVEL(120),// 鸿蒙碑等级 + HARSTAGE_STARS(121),//山河社稷图获得总星星数 + HARSTAGE_NODE(122),//山河社稷图通关章节 ENDLESS_MORALE(123), ENDLESS_MONSTER_KILL(124), ENDLESS_BOSS_KILL(125), diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java index 33a223568..1ebcbdfb0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java @@ -152,6 +152,10 @@ public class DataManagerDistributor { judges.put(MissionType.ENDLESS_LAST_BOSS,new EndlessLastBossKillManager()); judges.put(MissionType.ENDLESS_OPEN_PERCENT,new EndlessOpenPercentManager()); + //山河社稷图 + judges.put(MissionType.HARSTAGE_STARS, new HardStageStarsDataManager()); + judges.put(MissionType.HARSTAGE_NODE, new HardStageNodeDataManager()); + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java new file mode 100644 index 000000000..cd29aaa59 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageNodeDataManager.java @@ -0,0 +1,18 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +/** + * 山河社稷章节数 + */ +public class HardStageNodeDataManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + int nums = (int)parm[0]; + if(data.getHardstage_node()< nums){ + data.setHardstage_node(nums); + } + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java new file mode 100644 index 000000000..4494c2ec9 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HardStageStarsDataManager.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +/** + * 山河社稷星数 + */ +public class HardStageStarsDataManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + int nums = (int)parm[0]; + data.setHardstage_stars(nums); + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index cbadec217..12500c012 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -463,6 +463,16 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.ENDLESS_OPEN_MAP, new CumulationDataEventProcessor()); + //山河社稷图 + typeList = new ArrayList<>(); + typeList.add(MissionType.HARSTAGE_STARS); + eventEnumListMap.put(GameEvent.HARSTAGE_STARS, typeList); + eventProcessor.put(GameEvent.HARSTAGE_STARS, new CumulationDataEventProcessor()); + + typeList = new ArrayList<>(); + typeList.add(MissionType.HARSTAGE_NODE); + eventEnumListMap.put(GameEvent.HARSTAGE_NODE, typeList); + eventProcessor.put(GameEvent.HARSTAGE_NODE, new CumulationDataEventProcessor()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java index 951f7924e..83b21ff40 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AbstractMissionType.java @@ -2,12 +2,12 @@ package com.ljsd.jieling.logic.mission.main; import com.google.common.collect.Sets; import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.MissionState; +import com.ljsd.jieling.network.session.ISession; -import java.util.BitSet; -import java.util.List; -import java.util.Set; +import java.util.*; public abstract class AbstractMissionType { //开启的任务,在可控范围内,使用map存储,利于查找 @@ -38,6 +38,33 @@ public abstract class AbstractMissionType { public abstract void calCumulationDataResult(User user,CumulationData.Result result,List missionStateChangeInfos, CumulationData cumulationData) throws Exception; + void getAllRewards(List itemAttrs){} + /** + * 获取全部奖励 + * @param missionType + * @param itemAttrs + */ + void getAllRewards(AbstractMissionType missionType, List itemAttrs){ + // 可领取任务 + Set finishMissionIds = missionType.getFinishMissionIds(); + // 已完成任务 + BitSet bitSet = missionType.getRewardedMissionIds(); + if (finishMissionIds == null || finishMissionIds.isEmpty()){ + return; + } + // 遍历 + Iterator iterator = finishMissionIds.iterator(); + while (iterator.hasNext()){ + Integer next = iterator.next(); + // 添加奖励 + itemAttrs.add(reward(next)); + // 存入已完成 + bitSet.set(next); + // + iterator.remove(); + } + } + public boolean checkIsNew(int missionId){ if(doingMissionIds.contains(missionId)){ return false; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java index dace6d767..1a8127dc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -24,6 +24,11 @@ public class CowFlySkyMissionType extends AbstractMissionType { return arroGantFly.getReward(); } + @Override + public void getAllRewards(List itemAttrs){ + super.getAllRewards(this, itemAttrs); + } + @Override public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { // 进行中得任务 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index e8382c74e..02e0ab4b2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -266,12 +266,20 @@ public class PlayerLogic { playerInfoManager.setVipLevel(vipLevel+1); //特权等级奖励 MaprewardMap = user.getUserMissionManager().getVipMissionIdsType().getVipRewardMap(); - if(!rewardMap.containsKey(playerInfoManager.getVipLevel())){ + + for(int i = user.getPlayerInfoManager().getVipLevel();i>=1;i--){ + if(!rewardMap.containsKey(i) && i!=0){ + rewardMap.put(i,1); + } + } + + + /*if(!rewardMap.containsKey(playerInfoManager.getVipLevel())){ rewardMap.put(playerInfoManager.getVipLevel(),0); } if(rewardMap.get(playerInfoManager.getVipLevel())==0){ rewardMap.put(playerInfoManager.getVipLevel(),1); - } + }*/ user.getUserMissionManager().setVipMissionIdsType(user.getUserMissionManager().getVipMissionIdsType()); PlayerInfoProto.VipLevelStateResponse.Builder vipLevelStateResponse = PlayerInfoProto.VipLevelStateResponse.newBuilder(); @@ -838,6 +846,44 @@ public class PlayerLogic { } return false; } + //消耗完所有特权次数 + public int checkAndConsumeAllPrivilegeTimes(User user, int privilageTypeId){ + Map vipInfo = user.getPlayerInfoManager().getVipInfo(); + if(privilageTypeId == 0){ + return 0; + } + List sPrivilegeTypeConfigs = SPrivilegeTypeConfig.privilegeByType.get(privilageTypeId); + List typePrivileges = new ArrayList<>(); + for(SPrivilegeTypeConfig config:sPrivilegeTypeConfigs){ + if(!vipInfo.containsKey(config.getId())){ + continue; + } + typePrivileges.add(config.getId()); + } + if(typePrivileges.isEmpty()){ + return 0; + } + int levelUpdateCount = 0; + for(Integer privilageId:typePrivileges){ + VipInfo info = vipInfo.get(privilageId); + if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){ + continue; + } + int mCount = getMaxCountByPrivilege(user,privilageId); + if(mCount==-1){ + return 0; + } + if(info.getCount()>= mCount){ + continue; + } + if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){ + continue; + } + levelUpdateCount+=mCount-info.getCount(); + user.getPlayerInfoManager().updateVipPrivilage(privilageId, mCount-info.getCount()); + } + return levelUpdateCount; + } // private boolean priviliageCheck(User user, int privilageTypeId, int checkNum,boolean isUpdate){ // Map vipInfo = user.getPlayerInfoManager().getVipInfo(); // if(privilageTypeId == 0){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 1234142b1..df777ed77 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -758,6 +758,9 @@ public class BuyGoodsNewLogic { break; } } + if(con.getPersonas()[index] > rr){ + return -1; + } return con.getPacks()[index]; } @@ -856,6 +859,9 @@ public class BuyGoodsNewLogic { if(id == 21 || id == 400 || id == 401 || id == 402 ){ return true; } + if(id >= 7300 && id <= 7304){ + return true; + } return false; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index ec4962334..c19e611d5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -514,7 +514,9 @@ public class StoreLogic implements IEventHandler { if(sStoreConfig.getOpenPrivilege()!=null){ PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder(); int[] openPrivilege = sStoreConfig.getOpenPrivilege(); - for(int privilege:openPrivilege){ + + for(int i=0;i{ // 使用中的神印 if (v.getState() == 1){ - CommonProto.PurpleSealShowInfo builder; - // 通用神印 - if (v.getType() == 0){ - builder = CommonProto.PurpleSealShowInfo.newBuilder() - .setId(v.getSealId()) - .setType(v.getType()) - .setHeroTId(0) - .build(); - list.add(builder); - } - // 附身神印需要 - else if (v.getType() == 1) { - if (heroIds.contains(v.getSubId()) && !"".equals(v.getSubId()) && v.getSubId() != null){ - Hero hero = user.getHeroManager().getHero(v.getSubId()); - builder = CommonProto.PurpleSealShowInfo.newBuilder() - .setId(v.getSealId()) - .setType(v.getType()) - .setHeroTId(hero.getTemplateId()) - .build(); - list.add(builder); - } + int heroTid = 0; + if (v.getType() == 1){ + Hero hero = user.getHeroManager().getHero(v.getSubId()); + heroTid = hero.getTemplateId(); } + + CommonProto.PurpleSealShowInfo builder = CommonProto.PurpleSealShowInfo.newBuilder() + .setId(v.getSealId()) + .setType(v.getType()) + .setHeroTId(heroTid) + .build(); + list.add(builder); } }); return list; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 45fc24dc1..71067c541 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1193,7 +1193,10 @@ public class ItemUtil { } if (item.getQuantity() >= SSpecialConfig.getIntegerValue(msgTem+"_parm")) { String nickName = user.getPlayerInfoManager().getNickName(); - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert(msgTem, new Object[]{nickName, equipQulityNameMap.get(item.getQuantity()), item.getName()},new int[]{0,1,1}); + String nameColor = user.getPlayerInfoManager().getNameColor(); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert(msgTem, + new Object[]{nameColor, nickName, equipQulityNameMap.get(item.getQuantity()), item.getName()}, + new int[]{0,0,1,1}); ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(equipId),0,0,0,0,0); } @@ -1276,7 +1279,7 @@ public class ItemUtil { heroList.add(CBean2Proto.getHero(hero)); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,1}); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); if (!message.isEmpty()){ ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); } @@ -1664,7 +1667,10 @@ public class ItemUtil { // } ReportUtil.onReportEvent(user,ReportEventEnum.GET_BEAST.getType(),entry.getKey(),animal.getQuality(),reason); if (animal.getQuality() >= SSpecialConfig.getIntegerValue(SSpecialConfig.ANIMAL_BROADCAST_QUALITY)&&reason!=BIReason.COMPOS_HERO_REWARD) { //策划资质改成星级 - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_get_broadcast_content", new Object[]{user.getPlayerInfoManager().getNickName(), animal.getName()},new int[]{0,1}); + String nameColor = user.getPlayerInfoManager().getNameColor(); + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("animal_get_broadcast_content", + new Object[]{nameColor,user.getPlayerInfoManager().getNickName(), animal.getName()}, + new int[]{0,0,1}); if (!message.isEmpty()){ ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,"0",0,0,0,0,0); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MonsterUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MonsterUtil.java index 60dea1f2f..5e5b1f2fa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MonsterUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MonsterUtil.java @@ -185,7 +185,7 @@ public class MonsterUtil { for(int j = 0; j configMap; private static Map> preConfigMap; private static Map> chapterNodeMapConfig;//<章节id,<节点id,数据>> + private static Map bigMap;//<表id,第几个大关卡> @@ -52,6 +55,7 @@ public class SHardStage implements BaseConfig { Map tempConfig = STableManager.getConfig(SHardStage.class); Map> tempPreConfigMap = new HashMap<>(); Map> chapterNodeMap = new HashMap>(); + Map bmap = new HashMap<>(); for (SHardStage stage : tempConfig.values()) { if (stage.getNextLevel() > 0) { if (tempPreConfigMap.containsKey(stage.getNextLevel())) { @@ -66,11 +70,16 @@ public class SHardStage implements BaseConfig { Map chapterMap = chapterNodeMap.computeIfAbsent(stage.getChapter(),k-> new HashMap()); chapterMap.computeIfAbsent(stage.getSection(),k ->stage); + if(!bmap.containsKey(stage.getId())&& stage.getBigStageNumber()!=0){ + bmap.put(stage.getId(),stage.getBigStageNumber()); + } + } if (null == configMap) { configMap = tempConfig; preConfigMap = tempPreConfigMap; chapterNodeMapConfig = chapterNodeMap; + bigMap = bmap; } } @@ -148,7 +157,15 @@ public class SHardStage implements BaseConfig { return preConfigMap.get(id); } - public static int getStageIdByChapterAndSection(int chapter,int section){ + public int getBigStageNumber() { + return bigStageNumber; + } + + public void setBigStageNumber(int bigStageNumber) { + this.bigStageNumber = bigStageNumber; + } + + public static int getStageIdByChapterAndSection(int chapter, int section){ if(chapterNodeMapConfig.containsKey(chapter)){ if(chapterNodeMapConfig.get(chapter).containsKey(section)){ return chapterNodeMapConfig.get(chapter).get(section).getId(); @@ -156,4 +173,10 @@ public class SHardStage implements BaseConfig { } return 0; } + public static int getBigStageNumberById(int id){ + if(bigMap.containsKey(id)){ + return bigMap.get(id); + } + return 0; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SSpecialConfig.java b/tablemanager/src/main/java/config/SSpecialConfig.java index 0d1a6e6cd..49cc8fd6c 100644 --- a/tablemanager/src/main/java/config/SSpecialConfig.java +++ b/tablemanager/src/main/java/config/SSpecialConfig.java @@ -101,6 +101,7 @@ public class SSpecialConfig implements BaseConfig { public static final String FU_XING_STORE = "FuXingStore";//福星高照购买解锁奖励 public static final String YIJIANGOUMAI = "YiJianGouMai";//一件购买 public static final String WELFAREREDPACKET_LIMIT = "RedPackMaxGainNum";//每日领取红包数量上限 + public static final String SWEEP_ONEKEY = "floodprivilegeid";//一键扫荡 @Override public void init() throws Exception { diff --git a/tablemanager/src/main/java/config/SXiuXian.java b/tablemanager/src/main/java/config/SXiuXian.java index 91b389231..f69173c97 100644 --- a/tablemanager/src/main/java/config/SXiuXian.java +++ b/tablemanager/src/main/java/config/SXiuXian.java @@ -18,6 +18,8 @@ public class SXiuXian implements BaseConfig { private int[][] totalPros; + private String nameFontColor; + private int needStarNum; private int[] teamSkill; @@ -57,5 +59,7 @@ public class SXiuXian implements BaseConfig { return teamSkill; } - + public String getNameFontColor() { + return nameFontColor; + } } \ No newline at end of file