Merge branch 'master_test_gn' into master_test_gn_endless

# Conflicts:
#	serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java
#	serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java
#	serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java
#	serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java
lvxinran 2021-07-03 01:25:41 +08:00
commit 4e969510f5
56 changed files with 822 additions and 185 deletions

View File

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

View File

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

View File

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

View File

@ -27,5 +27,6 @@ public interface GlobalGm {
int JOURNEY_GM = 24;//逍遥游GM操作
// int TECNOLOGY_MAX = 21;//科技树一键满级
// int POKEMAN_MAX = 22;//一键获得所有满级异妖
int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡
}

View File

@ -111,7 +111,8 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
String challengeContent = "";
PlayerManager playerInfoManager = UserManager.getUser(challeageId).getPlayerInfoManager();
String challengeName = playerInfoManager.getNickName();
String challengeNameColor = playerInfoManager.getNameColor();
String nameColor = user.getPlayerInfoManager().getNameColor();
if(fight==-1){
throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION);
}
@ -130,11 +131,15 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
}
}
}
content = SErrorCodeEerverConfig.getI18NMessage("worldboss_battle_win",new Object[]{challengeName,gainScore});
challengeContent = SErrorCodeEerverConfig.getI18NMessage("worldboss_grab_win",new Object[]{user.getPlayerInfoManager().getNickName(),gainScore});
content = SErrorCodeEerverConfig.getI18NMessage("worldboss_battle_win",
new Object[]{challengeNameColor,challengeName,gainScore});
challengeContent = SErrorCodeEerverConfig.getI18NMessage("worldboss_grab_win",
new Object[]{nameColor,user.getPlayerInfoManager().getNickName(),gainScore});
}else{
content = SErrorCodeEerverConfig.getI18NMessage("worldboss_battle_lose",new Object[]{challengeName,gainScore});
challengeContent = SErrorCodeEerverConfig.getI18NMessage("worldboss_grab_lose",new Object[]{user.getPlayerInfoManager().getNickName(),gainScore});
content = SErrorCodeEerverConfig.getI18NMessage("worldboss_battle_lose",
new Object[]{challengeNameColor,challengeName,gainScore});
challengeContent = SErrorCodeEerverConfig.getI18NMessage("worldboss_grab_lose",
new Object[]{nameColor,user.getPlayerInfoManager().getNickName(),gainScore});
}
hurt = (int) fightResult.getCheckResult()[1];
String key = RedisUtil.getInstence().getKey(RedisKey.CAR_CHALLENGE_RECORD, String.valueOf(uid));

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.handler.GameGM;
import com.fasterxml.jackson.databind.deser.impl.CreatorCandidate;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig;
@ -16,6 +17,7 @@ import com.ljsd.jieling.handler.map.*;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.hardStage.HardStageLogic;
import com.ljsd.jieling.logic.mission.main.VipMissionIdsType;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
@ -444,6 +446,12 @@ public class GMRequestHandler extends BaseHandler{
}
cUser.getMapManager().updateJourneyInfoByMapId(prarm2,pathInfo);
break;
case GlobalGm.HARD_STAGE:
//通关山河社稷图特定关卡的之前所有关卡
int id = prarm1;
HardStageLogic.test(cUser,id);
HardStageLogic.sendHardStageIndication(cUser);
break;
default:
break;
}

View File

@ -112,7 +112,10 @@ public class GetLuckWheelRandHandler extends BaseHandler<PlayerInfoProto.GetLuck
SItem sItem = SItem.getsItemMap().get(drops[i][0]);
if(sItem.getQuantity()>=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);
}

View File

@ -44,7 +44,7 @@ public class ExchangeCdkHandler extends BaseHandler<PlayerInfoProto.ExchangeCdkR
int uid = session.getUid();
User user = UserManager.getUser(session.getUid());
Map<Integer, SCdkInfo> sCdkInfosCacheMap = CoreLogic.getInstance().getsCdkInfosCacheMap();
if (cdk.length() != 18 || sCdkInfosCacheMap == null || sCdkInfosCacheMap.isEmpty()) {
if (sCdkInfosCacheMap == null || sCdkInfosCacheMap.isEmpty()) {
throw new ErrorCodeException(ErrorCode.CDK_FAIL);
}

View File

@ -60,7 +60,11 @@ public class GuildHelpGetAllRequestHandler extends BaseHandler<Family.GuildHelpG
for (Map.Entry<Integer, Integer> 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);
}

View File

@ -101,11 +101,13 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler<Family.GuildHe
for (Map.Entry<Integer, Integer> 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()

View File

@ -81,7 +81,11 @@ public class GuildSendHelpRequestHandler extends BaseHandler<Family.GuildSendHel
}
//notify all change
Family.GuildHelpInfoIndication build = builder.setUid(user.getId()).setName(user.getPlayerInfoManager().getNickName()).build();
Family.GuildHelpInfoIndication build = builder
.setUid(user.getId())
.setName(user.getPlayerInfoManager().getNickName())
.setPracticeLevel(user.getHeroManager().getPracticeLevel())
.build();
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build);

View File

@ -0,0 +1,21 @@
package com.ljsd.jieling.handler.family;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.MessageTypeProto;
import rpc.protocols.PlayerInfoProto;
public class WelfareRedPacketRequestHandler extends BaseHandler<PlayerInfoProto.WelfareRedPacketRequest> {
@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);
}
}

View File

@ -30,13 +30,13 @@ public class HardStageReportRequsetHandler extends BaseHandler<PlayerInfoProto.H
//首次通关记录
ArenaRecord firstPassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(id),ArenaRecord.class);
if(firstPassRecord != null){
CommonProto.HardStagePlayerInfo first = CBean2Proto.getHardStagePlayerInfo(firstPassRecord,1);
CommonProto.HardStagePlayerInfo first = CBean2Proto.getHardStagePlayerInfo(firstPassRecord,1,user);
response.addPlayer(first);
}
// 最低战力通关记录记录
ArenaRecord minForcePassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(id),ArenaRecord.class);
if(minForcePassRecord!=null){
CommonProto.HardStagePlayerInfo min = CBean2Proto.getHardStagePlayerInfo(minForcePassRecord,2);
CommonProto.HardStagePlayerInfo min = CBean2Proto.getHardStagePlayerInfo(minForcePassRecord,2,user);
response.addPlayer(min);
}
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.HARD_STAGE_REPORT_RESPONSE.getNumber(), response.build(), true);

View File

@ -21,6 +21,7 @@ import com.ljsd.jieling.logic.fight.FightUtil;
import com.ljsd.jieling.logic.hardStage.HardStageChapter;
import com.ljsd.jieling.logic.hardStage.HardStageLogic;
import com.ljsd.jieling.logic.hardStage.HardStageNode;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.FightDataUtil;
import com.ljsd.jieling.util.MessageUtil;
@ -55,7 +56,6 @@ public class StartHardStageRequestHandler extends BaseHandler<PlayerInfoProto.Ha
Map<Integer, HardStageChapter> 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 BaseHandler<PlayerInfoProto.Ha
if (resultCode == -1) {
throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION);
}
if (resultCode == 1) {//通过
HardStageLogic.passNode(iSession, nodeConfig, resultNum, dropList);
}
String fightId = FightUtil.getFightId(user.getId(), FightType.HardStage.getType());
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
.setFightType(FightType.HardStage.getType())
@ -135,45 +132,59 @@ public class StartHardStageRequestHandler extends BaseHandler<PlayerInfoProto.Ha
.build();
fightStartResponse.setFightData(fightData);
FightRecordLogic.getInstance().addRecordMap(user, fightData);
//战斗回放
int force = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
// 首次通关记录
ArenaRecord firstPassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), ArenaRecord.class);
if (firstPassRecord == null) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), arenaRecord);
}
// 最低战力通关记录记录
ArenaRecord minForcePassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), ArenaRecord.class);
if (minForcePassRecord == null || force < minForcePassRecord.getAttackForce()) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), arenaRecord);
if (resultCode == 1) {//通过
HardStageLogic.passNode(iSession, nodeConfig, resultNum, dropList);
//战斗回放
int force = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
// 首次通关记录
ArenaRecord firstPassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), ArenaRecord.class);
if (firstPassRecord == null) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), arenaRecord);
}
// 最低战力通关记录记录
ArenaRecord minForcePassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), ArenaRecord.class);
if (minForcePassRecord == null || force < minForcePassRecord.getAttackForce()) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), arenaRecord);
}
//排行榜星级
int starSum = HardStageLogic.getHardStageStarsSum(user);
if(starSum >0){
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<Integer, HardStageChapter> chapt = user.getHardStageManager().getChapterMap(user);

View File

@ -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<HeroInfoProto.R
PurpleMansionSeal oldSeal = sealMap.get(oneSeal);
if (oldSeal != null){
oldSeal.setState(0);
user.getHeroManager().putPurpleMansionSeal(oldSeal);
}
// 新神印状态修改
seal.setState(1);
@ -99,6 +97,8 @@ public class ReplacePurpleMansionSealHandler extends BaseHandler<HeroInfoProto.R
seal.setSubId(heroId);
}
user.getHeroManager().putPurpleMansionSeal(seal);
// 返回最新神印列表
List<CommonProto.PurpleMansionSeal> sealInfo = CBean2Proto.getPurpleMansionSealInfo(user);
HeroInfoProto.ReplacePrupleMansionSealResponse build = HeroInfoProto.ReplacePrupleMansionSealResponse.newBuilder().addAllSealList(sealInfo).build();

View File

@ -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<HeroInfoProto.UpPractice
// 升级
user.getHeroManager().setPracticeLevel(xiuXian2.getId());
user.getPlayerInfoManager().setNameColor(xiuXian2.getNameFontColor());
// 添加技能
if (xiuXian2.getTeamSkill() != null){
@ -83,9 +85,7 @@ public class UpPracticeLevelHandler extends BaseHandler<HeroInfoProto.UpPractice
}
// 推送神印信息
List<CommonProto.PurpleMansionSeal> 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());
}
// 升级返回

View File

@ -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<FightInfoProto.SweepDemonRequest>{
@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<Integer> dropList = Lists.newArrayList();
boolean isOnekey= proto.getOnkeySweep();
boolean isSuccess = false;
CommonProto.Drop.Builder drop = null;
//判断是否挑战过
if(user.getMapManager().getLastMonsterAttack()<id){
return;
}
int privilageType = SSpecialConfig.getIntegerValue(SSpecialConfig.SWEEP_ONEKEY);
if(isOnekey){
int times = PlayerLogic.getInstance().checkAndConsumeAllPrivilegeTimes(user,privilageType);
if(times>0){
int[][] reward = new int[times*sFloodConfig.getReward().length][2];
for(int i =0;i<reward.length;){
for (int [] a :sFloodConfig.getReward()) {
reward[i] = a;
i++;
}
}
drop = ItemUtil.drop(user, reward, BIReason.MONSTERATTACK_REWARD);
}
}else{
//扫荡一次
isSuccess = PlayerLogic.getInstance().checkAndUpdate(user,privilageType,1);
if(isSuccess){
drop = ItemUtil.drop(user, sFloodConfig.getReward(), BIReason.MONSTERATTACK_REWARD);
}
}
if(drop == null){
drop = CommonProto.Drop.newBuilder();
}
FightInfoProto.SweepDemonResponse.Builder res = FightInfoProto.SweepDemonResponse.newBuilder();
res.setDrop(drop);
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.SWEEP_DEMON_RESPONSE.getNumber(), res.build(), true);
}
}

View File

@ -24,9 +24,10 @@ public class VipLevelRewardHandler extends BaseHandler<PlayerInfoProto.VipLevelS
User user = UserManager.getUser(iSession.getUid());
PlayerInfoProto.VipLevelStateResponse.Builder response = PlayerInfoProto.VipLevelStateResponse.newBuilder();
Map<Integer,Integer> 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());

View File

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

View File

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

View File

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

View File

@ -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<Integer> itemId = new ArrayList<>(reward.length);
List<Integer> itemNum = new ArrayList<>(reward.length);
Arrays.stream(reward).forEach(n->{itemId.add(n[0]);itemNum.add(n[1]);});

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -29,7 +29,7 @@ public class HardStageManager extends MongoBase {
return chapterMap;
}
private Map<Integer, HardStageChapter> initChapterMap(User user) throws Exception {
public Map<Integer, HardStageChapter> initChapterMap(User user) throws Exception {
Map<Integer, HardStageChapter> 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())){

View File

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

View File

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

View File

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

View File

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

View File

@ -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<Integer,Integer>());
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<Integer,Integer>());
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<Integer, Integer> 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());

View File

@ -25,7 +25,7 @@ public class HardStageChapter extends MongoBase {
this.chapterId = chapterId;
}
public List<HardStageNode> getNodeList() {
public List<HardStageNode> getNodeList() {
return nodeList;
}

View File

@ -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<Integer, HardStageChapter> 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());
}
}

View File

@ -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<Integer> 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<CommonProto.PurpleMansionSeal> 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);
}
}

View File

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

View File

@ -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,//山河社稷图通关章节
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception;
void getAllRewards(List<int[][]> itemAttrs){}
/**
*
* @param missionType
* @param itemAttrs
*/
void getAllRewards(AbstractMissionType missionType, List<int[][]> itemAttrs){
// 可领取任务
Set<Integer> finishMissionIds = missionType.getFinishMissionIds();
// 已完成任务
BitSet bitSet = missionType.getRewardedMissionIds();
if (finishMissionIds == null || finishMissionIds.isEmpty()){
return;
}
// 遍历
Iterator<Integer> 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;

View File

@ -24,6 +24,11 @@ public class CowFlySkyMissionType extends AbstractMissionType {
return arroGantFly.getReward();
}
@Override
public void getAllRewards(List<int[][]> itemAttrs){
super.getAllRewards(this, itemAttrs);
}
@Override
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
// 进行中得任务

View File

@ -266,12 +266,20 @@ public class PlayerLogic {
playerInfoManager.setVipLevel(vipLevel+1);
//特权等级奖励
Map<Integer, Integer>rewardMap = 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<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo();
if(privilageTypeId == 0){
return 0;
}
List<SPrivilegeTypeConfig> sPrivilegeTypeConfigs = SPrivilegeTypeConfig.privilegeByType.get(privilageTypeId);
List<Integer> 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<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo();
// if(privilageTypeId == 0){

View File

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

View File

@ -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<itemNum;i++){
for(int privilege:openPrivilege){
// int privilegeType = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilege).getPrivilegeType();
// if(privilegeType== VipPrivilegeType.ADVENTURE_BASE_REWARD||privilegeType==VipPrivilegeType.FAST_MAP_LIMIT){
// CombatLogic.getInstance().getNewAdventureReward(user,true);
@ -522,8 +524,10 @@ public class StoreLogic implements IEventHandler {
// user.getPlayerInfoManager().addVipInfo(privilege);
// VipInfo vipInfo = user.getPlayerInfoManager().getVipInfo().get(privilege);
// indication.addInfos(CommonProto.Privilege.newBuilder().setId(privilege).setUsedTimes(vipInfo.getCount()).setEffectTime(vipInfo.getEffectTime()).build());
BuyGoodsNewLogic.addNewPrivilege(user,privilege,indication);
}
BuyGoodsNewLogic.addNewPrivilege(user,privilege,indication);
}
}
ISession sessionByUid = OnlineUserManager.getSessionByUid(uid);
MessageUtil.sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.PRIVILLEGE_ADD_INDICATION_VALUE,indication.build(),true);

View File

@ -785,7 +785,7 @@ public class CBean2Proto {
return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(pokemon.getId()).setHeroTid(pokemon.getTmpId()).setLevel(pokemon.getLevel()).setStar(pokemon.getStar()).setPosition(position).build();
}
public static CommonProto.HardStagePlayerInfo getHardStagePlayerInfo(ArenaRecord arenaRecord,int type)throws Exception {
public static CommonProto.HardStagePlayerInfo getHardStagePlayerInfo(ArenaRecord arenaRecord,int type,User user)throws Exception {
CommonProto.FightData fightDataProto = CommonProto.FightData.parseFrom(arenaRecord.getFightData());
return CommonProto.HardStagePlayerInfo.newBuilder()
.setUid(arenaRecord.getAttackId())
@ -793,7 +793,7 @@ public class CBean2Proto {
.setHead(arenaRecord.getHead())
.setUserName(arenaRecord.getUserName())
.setHeadFrame(arenaRecord.getHeadFrame())
.setFightData(fightDataProto).setPower(arenaRecord.getAttackForce()).setType(type).build();
.setFightData(fightDataProto).setPower(arenaRecord.getAttackForce()).setType(type).setPracticeLevel(user.getHeroManager().getPracticeLevel()).build();
}
/**
@ -828,28 +828,18 @@ public class CBean2Proto {
values.forEach(v->{
// 使用中的神印
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;

View File

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

View File

@ -185,7 +185,7 @@ public class MonsterUtil {
for(int j = 0; j<contents.length;j++){
for(int k = 0;k<contents[j].length;k++){
SMonsterConfig monster = integerSMonsterConfigMap.get(contents[j][k]);
int monsterForce = (int)(monster.getAttack()+(monster.getAttack()*20<monster.getHp()?monster.getAttack()*20*0.15:monster.getHp()*0.15)+monster.getPhysicalDefence()*3+monster.getMagicDefence()*3);
int monsterForce = (int)(monster.getAttack()+(monster.getAttack()*20<monster.getHp()?monster.getAttack()*20*0.3:monster.getHp()*0.3)+monster.getPhysicalDefence()*3+monster.getMagicDefence()*3);
monsterCount++;
totalMonsterForce+=monsterForce;
}

View File

@ -17,6 +17,8 @@ public class SHardStage implements BaseConfig {
private int section;
private int bigStageNumber;
private String picture;
private int repeat;
@ -44,6 +46,7 @@ public class SHardStage implements BaseConfig {
private static Map<Integer, SHardStage> configMap;
private static Map<Integer, List<SHardStage>> preConfigMap;
private static Map<Integer, Map<Integer,SHardStage>> chapterNodeMapConfig;//<章节id<节点id,数据>>
private static Map<Integer, Integer> bigMap;//<表id,第几个大关卡>
@ -52,6 +55,7 @@ public class SHardStage implements BaseConfig {
Map<Integer, SHardStage> tempConfig = STableManager.getConfig(SHardStage.class);
Map<Integer, List<SHardStage>> tempPreConfigMap = new HashMap<>();
Map<Integer, Map<Integer,SHardStage>> chapterNodeMap = new HashMap<Integer, Map<Integer,SHardStage>>();
Map<Integer, Integer> 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<Integer,SHardStage> chapterMap = chapterNodeMap.computeIfAbsent(stage.getChapter(),k-> new HashMap<Integer,SHardStage>());
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;
}
}

View File

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

View File

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