同步本地战斗

back_recharge
lvxinran 2021-08-03 17:27:36 +08:00
parent 0d7dde1926
commit 3867ce735c
19 changed files with 1443 additions and 343 deletions

View File

@ -1,13 +1,13 @@
local HardStage = { local HardStage = {
__count = 76, __count = 475,
__indexs = {1.91,82,1.81,2.1,2.1}, __indexs = {1.91,82,1.81,2.1,4.1,8.1,16.1,16.1},
__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}, __values = {-719,-2.2,3,10,5,10,4,6,3,5,16,2,5,-6.2,36,1,10,29,8,41,39,3,17,3,9,3,1,3,1,5,1,-2.2,4,-2.2,7,2,1,4,1,3,3.1,1,9.4,12,1,4,2,7,1,5,30.3,2,13,1,9,3,7,2,12,4,6,1,7,2,6,22.3,4,3,4,2,6,8,5,6,1,5,2,58.3,2,5,53.3,3,1,14,-2.2,49.3,6,1,2,4,1.5,4,7,3,1,11,5,8,1,3,1.2,4,3,8,12,4,7,-4.2,2,10,1,9,13,40.3,1.152,6,3,4,-3.2,2,6,1.3,5,4,1,2,1.2,7,1.4,4.2,-2.5,4,1,6,37.2,2,7,6,7,57.3,5,10,1,6,-4.3,1.2,-2.4,1.2,23.2,82.3,2,8,5.3,4,6,10,4,3,21,7,3,-2.6,1.2,158.2,1.2,6,51.3,1.3,10,4,14,13,3,12,2,1.4,-2.6,82,1.4,-2.7,3.1,82,-2.9,81,1,-2.5,1.8,6.2,2.1,4.1,8.1,12.11,-2.8,1288,6295,1.42,2,1.9,82.3,1.5,27,60.2,1,2,1,2,3911,237.5,987,1,2,999,4,994,1.5,5,22989,-5000.2,-10000.2,20000,30000,10006,-2.2,996,4,2.1,4996,-2.2,12990,-30000.2,20000,7000,3000,6000,-4000.2,3000,4000,3000,8000,3000,7000,13000,9000,1000,1.973,621,-2.9,1,2.1,4.1,8.1,16.1,8.7,40.1,40.1,11621,10000,-20000.3,139.2,70000,-40000.2,60000,50000,60000,10000,20000,-30000.3,10000,50000,30000,60000,140000,100000,-50000.4,20000,-30000.2,-20000.2,13.2,-50000.2,40000,4.2,30000,-50000.3,30000,20000,10000,-20000.2,100000,-50000.2,9.2,6.2,-40000.3,20.2,30000,-60000.3,-30000.3,-15000.2,36.2,5000,15000,5000,25000,-50000.3,20000,4.2,10000,40000,-80000.3,-40000.2,50000,16.2,-15000.4,2.1,4.3,-15000.2,30000,120000,60000,180000,20000,160000,48000,42000,90000,180000,104000,136000,20000,300000,256000,359000,25000,128000,192000,30000,300000,260000,190000,150000,90000,135000,209000,161000,355000,130000,42000,258000,88000,582000,194000,291000,615000,19210001,-100.51,8500,2.1,4.1,8.1,16.1,18.71,14748504,1.3,-2.2,8,10,20,100,-50.3,100,200,-100.11,200,100,-200.2,-100.3,4.2,300,-100.2,400},
__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'}, __exVals = {325,nil,-183.56,-685.71,-552.79,-664.62,-450.46,-443.08,-400.88,-310.15,-37.98,-92.84,130.81,217.32,417.76,352.35,409.32,620.31,607.65,450.46,-630.1,-645.7,-722.6,605.54,262.68,7.38,-366.07,-119.21,-341.80,123.43,368.18,289.05,48.53,-401.93,-79.12,-425.14,-197.27,13.71,297.49,213.10,340.75,169.85,-152.97,86.5,-77.2,-184.4,-237.3,-298.9,458.9,29.54,-262.68,-7.38,366.07,119.21,-341.8,-123.43,-368.18,-289.05,-48.53,401.93,79.12,425.14,197.27,-13.71,-297.49,213.1,-340.75,-169.85,152.97,-86.5,77.2,184.4,237.3,298.9,-458.9,-29.54,'1-1','1-2','1-3','1-4','1-5','1-6','1-7','1-8','1-9','2-1','2-2','2-3','2-4','2-5','2-6','2-7','2-8','2-9','3-1','3-2','3-3','3-4','3-5','3-6','3-7','3-8','3-9','4-1','4-2','4-3','4-4','4-5','4-6','4-7','4-8','4-9','5-1','5-2','5-3','5-4','5-5','5-6','5-7','5-8','5-9','6-1','6-2','6-3','6-4','6-5','6-6','6-7','6-8','6-9','7-1','7-2','7-3','7-4','7-5','7-6','7-7','7-8','7-9','8-1','8-2','8-3','8-4','8-5','8-6','8-7','8-8','8-9','9-1','9-2','9-3','9-4','9-5','9-6','9-7','9-8','9-9','10-1','10-2','10-3','10-4','10-5','10-6','10-7','10-8','10-9','11-1','11-2','11-3','11-4','11-5','11-6','11-7','11-8','11-9','12-1','12-2','12-3','12-4','12-5','12-6','12-7','12-8','12-9','13-1','13-2','13-3','13-4','13-5','13-6','13-7','13-8','13-9','14-1','14-2','14-3','14-4','14-5','14-6','14-7','14-8','14-9','15-1','15-2','15-3','15-4','15-5','15-6','15-7','15-8','15-9','16-1','16-2','16-3','16-4','16-5','16-6','16-7','16-8','16-9','17-1','17-2','17-3','17-4','17-5','17-6','17-7','17-8','17-9','18-1','18-2','18-3','18-4','18-5','18-6','18-7','18-8','18-9','19-1','19-2','19-3','19-4','19-5','19-6','19-7','19-8','19-9','20-1','20-2','20-3','20-4','20-5','20-6','20-7','20-8','20-9','21-1','21-2','21-3','21-4','21-5','21-6','21-7','21-8','21-9','22-1','22-2','22-3','22-4','22-5','22-6','22-7','22-8','22-9','23-1','23-2','23-3','23-4','23-5','23-6','23-7','23-8','23-9','24-1','24-2','24-3','24-4','24-5','24-6','24-7','24-8','24-9','25-1','25-2','25-3','25-4','25-5','25-6','25-7','25-8','25-9','1-10','2-10','3-10','4-10','5-10','6-10','7-10','8-10','9-10','10-10','11-10','12-10','13-10','14-10','15-10','16-10','17-10','18-10','19-10','20-10','21-10','22-10','23-10','24-10','25-10'},
__fields = { __fields = {
'Id', 'Id',
'Chapter', 'Chapter',
'Section', 'Section',
'Picture', 'BigStageNumber',
'Name', 'Name',
'LevelPointPosition', 'LevelPointPosition',
'UselessPoint', 'UselessPoint',
@ -35,10 +35,10 @@ __defaults = {
nil, nil,
nil, nil,
nil, nil,
6,
1,
nil, nil,
1, 143,
nil,
143,
nil, nil,
nil, nil,
nil, nil,
@ -47,25 +47,25 @@ __defaults = {
nil nil
}, },
__refs = { __refs = {
{2,.81,1,2.1,4.3}, {144,.81,1,2.1,4.1,8.1,16.1,18.71},
{2,1.81,-18,2.1,4.3}, {144,1.81,-18,2.1,4.1,8.1,16.1,18.71},
{374,1.7,8,-4,-11,4.1,8.5,4,7.1,7.6}, {144,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,-8,9,-9,10,1,-11,12,-12,13,-13,14,-14,15,-15,16,-16,17,-17,18,-18,19,-19,20,1,-21,22,-22,23,-23,24,-24,25,-25,26,-26,27,-27,28,-28,29,-29,30,1,-31,32,-32,33,-33,34,-34,35,-35,36,-36,37,-37,38,-38,39,-39,40,1,-41,42,-42,43,-43,44,-44,45,-45,46,-46,47,-47,48,-48,49,-49,50,1,-51,52,-52,53,-53,54,-54,55,-55,56,-56,57,-57,58,-58,59,-59,60,1,-61,62,-62,63,-63,64,-64,65,-65,66,-66,67,-67,68,-68,69,-69,70,1,-71,72,-72,73,-73,74,-74,75,-75,76,-76,77,-77,78,-78,79,-79,80,1,-81,82,-82,83,-83,84,-84,85,-85,86,-86,87,-87,88,-88,89,-89,90,1,-91,92,-92,93,-93,94,-94,95,-95,96,-96,97,-97,98,-98,99,-99,100,1,-101,102,-102,103,-103,104,-104,105,-105,106,-106,107,-107,108,-108,109,-109,110,1,-111,112,-112,113,-113,114,-114,115,-115,116,-116,117,-117,118,-118,119,-119,120,1,-121,122,-122,123,-123,124,-124,125,-125,126,-126,127,-127,128,-128,129,-129,130,1,-131,132,-132,133,-133,134,-134,135,-135,136,-136,137,-137,138,-138,139,-139,140,1,-141,142,-142,143,-143,144,-144,145,-145,146,-146,147,-147,148,-148,149,-149,150,1,-151,152,-152,153,-153,154,-154,155,-155,156,-156,157,-157,158,-158,159,-159,160,1,-161,162,-162,163,-163,164,-164,165,-165,166,-166,167,-167,168,-168,169,-169,170,1,-171,172,-172,173,-173,174,-174,175,-175,176,-176,177,-177,178,-178,179,-179,180,1,-181,182,-182,183,-183,184,-184,185,-185,186,-186,187,-187,188,-188,189,-189,190,1,-191,192,-192,193,-193,194,-194,195,-195,196,-196,197,-197,198,-198,199,-199,200,1,-201,202,-202,203,-203,204,-204,205,-205,206,-206,207,-207,208,-208,209,-209,210,1,-211,212,-212,213,-213,214,-214,215,-215,216,-216,217,-217,218,-218,219,-219,220,1,-221,222,-222,223,-223,224,-224,225,-225,226,-226,227,-227,228,-228,229,-229,230,1,-231,232,-232,233,-233,234,-234,235,-235,236,-236,237,-237,238,-238,239,-239,240,1,-241,242,-242,243,-243,244,-244,245,-245,246,-246,247,-247,248,-248,249,-249,250},
{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}, {2456,0,1,0,1,4.1,8.1,0,217,-216,19.71,209,-208,19.71,201,-200,19.71,193,-192,19.71,185,-184,19.71,177,-176,19.71,169,-168,19.71,161,-160,19.71,153,-152,19.71,145,-144,19.71,137,-136,19.71,129,-128,19.71,121,-120,19.71,113,-112,19.71,105,-104,19.71,97,-96,19.71,89,-88,19.71,81,-80,19.71,73,-72,19.71,65,-64,19.71,57,-56,19.71,49,-48,19.71,41,-40,19.71,33,-32,19.71,25},
{{{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},{2404,1.2,-20,21,2,1.3,-2308,2309,1.5,2,1.2,8,1.2,-33,34,11.2,-2136,2137,11.3,-44,22.1,44.1,88.1,44.23,-2365,69,152,165,-43,-244,-68,-61,56,112,231,-168,-133,189,126,-88,-218,-61,-32,2389,41.1,41.12}},{{2},{2383,1.2,2,21,-20,1.3,-2269,2260,10,1.3,24,-23,1.2,-15,13.2,47,-46,13.5,50,-49,13.4,26.1,52.1,104.1,52.63,-2387,1,4,3,20,19,-6,26,54,-20,23,141,112,37,36,35,-4,-24,-52,1967,45.1,45.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}}}, {{{1,1},{361,2063,-2388,7,88,216,102,-108,-203,-57,-25,44,-54,71,121,196,-29,-170,-149,2364,-1998,-11,-239,-112,-52,54,73,221,46,-111,118,-172,-144,-70,17,54,237,36.1,72.1,144.1,72.35,-159,66,211,110,-142,-195,-57,-18,58,182,112,-217,-47,258,30,-185,-131,-46,21,54.1,54.53},{1,-19.42}},{{1,2},{2,2399,-2394,20,10,-6,29,58,-14,-6,2284,-2137,98,87,-36,-55,99,56,-492,18.1,36.1,72.1,144.1,54.35,-490,692,-688,10,11,4,1,46,35,-13,97,65,99,45,51,24,-19,-29,-433,54.1,54.53},{1,-19.42}},{{2,1},{338,-222,-90,31,82,257,2003,-2103,-167,-58,-7,21,-31,74,152,164,-43,2028,-2335,180,188,-31,-279,-76,2310,-2280,112,186,19,-57,67,-207,-113,-73,33,2382,-2117,36.1,72.1,144.1,72.35,-2338,106,201,57,-185,-158,-51,-2,62,237,19,-238,63,220,-15,-228,-83,-41,39,54.1,54.53},{1,-19.42}},{{2,2},{10,-1,5,25,-10,9,29,46,-8,-18,32,156,119,22,-48,9,80,1946,-2393,18.1,36.1,72.1,144.1,54.35,-2402,-4.2,12,14,-5,15,46,12,7,31,139,104,40,43,12,-19,-38,-412,53.1,53.53},{1,-19.42}},{{3,1},{290,2135,-2401,44,117,234,2009,-2176,-190,12,-2,-8,72,193,127,-60,-259,-30,2344,-1986,-53,-277,-69,2388,-2334,309,-30,3,21,-248,-78,-65,44,98,116,34.1,68.1,136.1,68.05,284,15,-392,24,65,187,-213,40.1,40.33},{1,9,10,2.1,4.1,8.1,16.1,6.1,1.2,3,1,4,2,1.7,10.1,10.3}},{{3,2},{15,-9,11,30,-22,23,33,27,-26,48,156,126,-3,-69,66,59,30,-480,17.1,34.1,68.1,136.1,51.05,-482,9,32,47,-2,77,-161,40.1,40.33},{1,9,10,2.1,4.1,8.1,16.1,6.1,1.2,3,1,4,2,1.7,10.1,10.3}},{{4,1},{2423,3,-2403,56,379,-369,-26,12,299,21,-268,2322,3,-1986,-73,-365,321,79,-30,-314,-7,152,2194,22.1,44.1,88.1,88.67},{1,5,1,2,1.2,4,2,3,7.1,14.1,28.1,56.1,21.1,1.91,15.1,15.31}},{{4,2},{2400,-2397,17,29,46,45,148,139,-102,149,19,1907,11.1,22.1,44.1,88.1,77.67},{1,5,1,2,1.2,4,2,3,7.1,14.1,28.1,56.1,21.1,1.91,15.1,15.31}},{{5,1},{2427,-2334,344,-329,274,2071,-2113,-290,239,-207,2345,10.1,20.1,40.1,40.43},{3,2,3,4,6,4,5.1,10.1,20.1,40.1,15.41,23,10.1,10.9}},{{5,2},{2402,-2360,72,59,318,1911,5.1,10.1,20.1,40.1,35.43},{3,2,3,4,6,4,5.1,10.1,20.1,40.1,15.41,23,10.1,10.9}}},
{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}, {742,0,1,-1,-21,21,-31,31,-13,13,-1,1,-33,33,2,-2,-5,5,-32,0,32,-7,7,-43,43,-19,19,-35,35,-26,26,-9,9,-42,42,-40,40,-36,17,19,-37,37,4,-4,-23,23,38.2,-4,4,46.2,-5,5,-18,18,-29,-11,40,34.2,-11,11,-39,39,-41,41,-32,32,42.2,-20,20,-22,22,-13,-13,26,-17,17,-30,30,17.2,4.2,-24,24,44.2,23.2,-7,7,-42,4,38,-29,29,53.2,89.2,53.2,27.2,4,-4,-36,36,-15,15,-30,-1,31,-27,27,83.2,-16,16,93.2,36.2,57.2,55.2,-5,5,-31,-2,33,4,-4,-6,6,-28,28,-44,44,59.2,105.2,25.2,40.2,-39,36,3,93.2,123.2,15.2,-38,38,8.2,93.2,69.4,-18,11,7,91.2,51.2,17.2,-34,34,-5,5,44.2,-7,7,-3,3,-36,-6,42,15.2,135.2,190.2,95.2,25.2,61.2,181.2,57.2,-17,4,13,-5,5,-7,7,99.2,97.4,-5,5,-9,9,67.2,-11,-17,28,74.2,127.2,-7,7,-5,5,175.2,34.2,4,-4,-4,4,-23,-18,41,6,-6,106.2,-25,25,-10,10,61.2,169.2,93.2,6,-6,-3,-21,180.3,87.2,-6,6,57.2,222.2,48.2,-3,3,5,-5,-21,-21,42,36.2,-5,5,30.2,101.2,129.2,57.2,-2,2,86.2,-25,-6,31,28.2,-8,8,220.4,59.2,25.2,50.2,122.2,-30,20,10,28.2,123.2,-6,6,245.2,-14,14,207.2,12.2,-4,4,-7,-19,26,106.2,-2,2,55.2,34.2,63.4,230.2,133.2,-26,-13,39,49.2,-5,5,47.2,38.2,76.2,25.2,211.2,-3,3,-37,2,35,-6,6,182.2,76.2,-5,5,72.2,34.2,137.2,8.2,-30,4,26,114.2,3,-3,186.2,-12,12,4.2,76.2,7,-7,371.3,-29,42,114.2,36.2,224.4,-7,7,6,-6,12.2,90.2,-23,-19,42,-7,-7.2,-7,31.2,20.2,39.2,4.2,-6,6,30.2,-31,5,26,86.2,9.2,86.2,69.2,39.2,66.2,8.2,218.2,-38},
{2,-1,1,2.1,4.1,8.1,2.1,0,19.1,38.73}, {144,-1,1,2.1,4.1,8.1,2.1,0,19.1,38.1,76.1,152.1,171.071},
{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}, {143,1,0,2,0,2,4.1,8.1,0,2,82,19.1,19.81,48,7.5,63.4,1,6.3,4.1,1,20,13.11,27.7,15,30.01,44.8,17,9.5,55.11,0,1.2,16.51,18.1,18.4,14.21,6.5,33.21,149.7,36.71,56.91,18.1,36.1,72.1,90.1},
{161,.73,4,.81,2.1,4.1,8.1,16.1,14.1},
nil, nil,
nil, {1942,1.2,-1801,1802,1.4,-1806,1807,1.4,-1811,1812,1.5,-1817,1818,1.4,-1822,1823,1.4,-1827,1828,1.5,-1833,1834,1.4,-1838,1839,1.4,-1843,1844,1.5,-1849,1850,1.4,-1854,1855,1.4,-1859,1860,1.5,-1865,1866,1.4,-1870,1871,1.4,-1875,1876,1.5,-1881,1882,1.4,-1886,1887,1.4,-1891,1892,1.5,-1897,1898,1.4,-1902,1903,1.4,-1907,1908,1.5,-1913,1914,1.4,-1918,1919,1.4,-1923,1924,1.5,-1929,1930,1.4,-1934,1935,1.4,-1939,1940,1.5,-1945,1946,1.4,-1950,1951,1.4,-1955,1956,1.5,-1961,1962,1.4,-1966,1967,1.4,-1971,1972,1.5,-1977,1978,1.4,-1982,1983,1.4,-1987,1988,1.5,-1993,1994,1.4,-1998,1999,1.4,-2003,2004,1.5,-2009,2010,1.4,-2014,2015,1.4,-2019,2020,1.5,-2025,2026,1.4,-2030,2031,1.4,-2035,2036,1.5,-2041,2042,1.4,-2046,2047,1.4,-2051,2052,1.5,-2057,2058,1.4,-2062,2063,1.4,-2067,2068,1.5,-2073,2074,1.4,-2078,2079,1.4,-2083,2084,1.5,-2089,2090,1.4,-2094,2095,1.4,-2099,2100,1.5,-2105,2106,1.4,-2110,2111,1.4,-2115,2116,1.5,-2121,2122,1.4,-2126,2127,1.4,-2131,2132,1.5,-2137,2138,1.4,-2142,2143,1.4,-2147,2148,1.5,-2153,2154,1.4,-2158,2159,1.4,-2163,2164,1.5,-2169,2170,1.4,-2174,2175,1.4,-2179,2180,1.5,-2185,2186,1.4,-2190,2191,1.4,-2195,2196,1.2},
{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}, {698,5,-152,-3,150,-148,147,-145,146,0,5,-148,144,-146,146,-148,-1,4,-5,149,2,-152,153,1,-4,6,-6,7,1.3,.2,-5,5,2.1,5.1,10.1,5.1,7,-7,-5,10,-10,5,3,-3,-5,14,-14,5,8,-8,12.4,1,-1,-5,12,-12,-5.2,-5,-5,8,-8,17.4,7,-7,29.4,23.2,17.3,13,-13,5,-159,159,-5,-152,152,5,-158,158,-5,-155,155,17.2,-156,157,5,-6,2,-2,-155,145,17,-7,6,-6,-154,159,-14,9,8,-8,-153,156,-13,10,-160,160,-156,165,-4},
{82,-5,6,0,5,-8,4,-6,6,-8,-1,4,-5,9,2,-12,13,1,-4,6,-6,7,1.2}, {768,0,1,-626,627,0,1,0,1,-629,630,6.3,11,-642,643,0,1.2,0,1,-646,647,18.4,-649,650,6.4,-652,653,18.4,-656,657,12.3,981,-1639,1640,18.4,-1642,1643,18.2,.2,-1645,1646,11.4,-1648,1649,6.4,-1651,1653,0,2,-3,0,2,-1654,1655,13.4,-1657,1658,6.4,-1660,1661,0,1,.3,-1662,1664,0,-1,0,2,-1665,6.2,17.3,-1666,1665,0,2,-1,0,1,-1667,1669,19.3,3,-1671,1670,19.3,2,-1673,1672,0,2,.2,1,-1675,1676,18.4,-1678,1677,18.4,-1680,1679,37.5,-1681,1683,19.4,-1685,6.2,1,0,3,-1687,1686,0,2,-5,0,5,-1688,1690,19.3,4,-1693,1691,19.4,-1695,1694,0,2,-2,0,1,-1695,1698,38.4,-1700,1699,94.4,-1701,1701,130.5,-1702,1705,19.4,-1707,1706,19.4,-1708,1708,0,3,38.3,-1710,1713,57.4,-1716,1714,0,2,0,1,-1717,1717,0,2,-4,0,3,-1718,1721,19.4,-1724,1722,19.4,-1725,1725,19.5,-1726,1729,57.4,-1731,1730,57.4,-1732,1732,57.5,-1734,1737,19.4,-1739,1738,19.4,-1740,1740,114.5,-1741,1744,19.4,-1746,1745,19.4,-1747,1747,19.5,-1748,1751,19.4,-1753,1752,19.4,-1754,1754,19.5,-1755,1758,19.4,-1760,1759,19.4,-1761,1761,0,1,-8,0,4,-1758,1765,19.3,5,-1769,1767,114.4,-1770,1770,19.4,3,-1766,1772,0,-6,0,8,-1774,1766,19.3,6,-1774,1771,0,7,-5,0,2,-1775,1779,0,-4,0,5,-1780,1775,57.3,4,-1780,1778,0,6,-7,0,4,-1781,1785,19.3,6,-1787,1781,19.3,5,-1787,1784,19.4,3,-1786,1792,57.3,7,-1793,1786,57.3,5,-1793,1790,0,5,-6,0,2,-1791,1796,0,-5,0,6,-1797,1791,0,3,0,3,-1797,1795,4.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},{802,1.973,-18,1.81,2.1,4.1,2.1}}},
{{{1},{138,1.65,-18,1.81}}}, {144,2,-2,1,-1,4.2,6.1,6.1,0,19.1,38.1,76.1,152.1,171.071},
{-2.2,-2,1,-1,2,-2,2.1,6.1,6.4,0,13.21,19.1,38.52}, {146,-3,3,2.1,4.1,8.1,2.1,0,19.1,38.1,76.1,152.1,171.071},
{4,-3,3,2.1,4.1,8.1,2.1,0,19.1,38.73}, {{{1},{243,.2,104,65,-169,104,151,-151,0,-104,9.2,1,-105,105,-1,0,5.2,241,-137,1,-1,151,-148,-2,-1,.2,162,-11,-151,152,-1,3.2,-152,151,-255,170,-66,.2,2002,-1826,-176,163,-12,-255,104,-104,237,31,-164,.4,-104,7.2,104,161,-33,-128,.3,8.4,0,141,-141,8.5,162,-25,15,-152,.2,9.4,153,-12,17.6,8.1,153,-20,-133,8.6,-25,49.6,153,-16,-137,32.1,32.71,428,-428,-104,520,-263,278,-431,.2,413,2,-10,-509,17.2,267,-353,-67,409,-5,27,-431,409,-409,153,282,-368,-67,0,436,-1,-435,-104,521,-264,280,-366,352,1610,-1611,15,-433,407,-407,153,255,-341,20.2,411},{-2.9,3,-2.8,2.1,4.1,8.1,16.1,16.1}},{{2},{347,151,-151,151,1844,-1866,1869,-1856,9,12,-162,-1,0,66,.2,1933,-1934,1935,-1837,-162,151,9,-95,87,-86,1934,-1935,0,86,23,-1,-39,17,-85,-1,95,-94,1936,-1937,-67,1,161,12,-21,-153,175,-34,36,10,-187,2005,-1940,2,0,1,85,-87,73,1868,-2007,2007,-1942,3,-1,0,86,-87,78,1864,-2008,2008,-1943,3,85,-86,73,-74,87,1856,-2009,10.3,-1,0,144,-145,10.6,95,-96,30.2,87,1857,-2010,2010,-1945,10.6,1858,-2011,10.8,1859,-2012,2011,-1946,10.6,1861,-2014,2013,-1948,10.6,1862,-2015,2014,-1949,10.6,1864,-2017,2016,-1951,10.6,1867,-2020,2018,-1953,10.6,1868,-2021,2020,-1955,10.6,1866,-2019,2022,-1957,10.6,1873,-2026,2024,-1959,3,95,1861,-1871,10.2,1876,-2029,409,-344,3,95,1864,-1874,10.2,1878,-2031,20.2,350,-253,1865,10.3,1879,-1628,1621,-1960,3,96,1863,10.3,1880,-2033,2027,-1962,3,97,1863,-1875,20.3,-2032,2029,-1964,354,-256,1867,-1877,10.2,1881},{-2.9,3,-2.8,2.1,4.1,8.1,16.1,16.1}},{{3},{481,4,-72,0,96,1833,-1930,1932,-1931,86,1844,-1929,1931,0,-1836,1837,-1934,110,-109,86,1849,-1791,-77,1868,-1837,-23,-4,14,0,22,-21,-153,2003,-1841,-161,161,-95,110,-25,11,-96,85,-18,1870,-1870,20,0,-2,2,-87,0,86,-149,2002,-1854,1,-23,21,1.2,-86,9.2,149,-152,2007,-1874,17,2,0,10.4,-24,1880,-1856,-2,-21,23,20.6,0,-1857,-15,17,10.4,23,1834,-1879,20,-11,13,10.4,21,1836,-1848,-11,60,-58,10.4,22,1836,-1849,10.7,23,1836,-1850,10.7,24,1836,-1851,10.7,21,1840,-1852,40.8,1842,-1855,40.8,1843,-1857,40.8,1844,-1859,40.8,1849,-1861,40.8,-108,95,10.9,340,13,-9,-258,50.5,-109,364,-280,20.5,412,-242,-107,366,-282,279,-277,43,-43,60.3,-110,368,-284,20.2,260,-260,40.4,371,-287,-83,85},{-2.9,3,-2.8,2.1,4.1,8.1,16.1,16.1}}},
{{{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},{1182,1.991,-9,1.9,2.1,4.1,2.1},{-2.9,3,-2.8,2.1,4.1,8.1,16.1,16.1}},{{2},{1382,1.991,-9,1.9,2.1,4.1,2.1},{-2.9,3,-2.8,2.1,4.1,8.1,16.1,16.1}},{{3},{1582,1.991,-9,1.9,2.1,4.1,2.1},{-2.9,3,-2.8,2.1,4.1,8.1,16.1,16.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 = { __refPoss = {
nil, nil,
@ -80,7 +80,7 @@ __refPoss = {
nil, nil,
nil, nil,
nil, nil,
{2,4,2.1,2,4,3,6.1,12.11}, {2,4,2.1,2,4,3,6.1,12.1,24.1,48.1,54.35},
nil, nil,
nil, nil,
nil, nil,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -218,7 +218,11 @@ function BuffManager:GetAllBuffByFunc(checkFunc)
end end
function BuffManager:HasBuff(target, type, checkFunc) function BuffManager:HasBuff(target, type, checkFunc,caster,dotType)
--如果当前是判断燃烧buff and 当前目标是攻击的主目标则直接返回true
if type== BuffName.DOT and caster and dotType and dotType==1 and caster.curMainTarget==target then
return true
end
if self.buffDic.kvList[type] then if self.buffDic.kvList[type] then
local buffList = self.buffDic.kvList[type] local buffList = self.buffDic.kvList[type]
for i=1, buffList.size do for i=1, buffList.size do
@ -242,15 +246,16 @@ function BuffManager:ClearBuff(target, func)
while idx <= list.size do while idx <= list.size do
local buff = list.buffer[idx] local buff = list.buffer[idx]
if buff.target == target and (not func or (func and buff.clear and func(buff))) then if buff.target == target and (not func or (func and buff.clear and func(buff))) then
if func and func(buff) then if not buff.target:IsRealDead() then
if buff.type== BuffName.Shield then if buff.type== BuffName.Shield then
buff.target.Event:DispatchEvent(BattleEventName.ShowHintText, BattleArtFontType.Shield) buff.target.Event:DispatchEvent(BattleEventName.ShowHintText, BattleArtFontType.Shield)
elseif buff.type== BuffName.DOT or buff.type==BuffName.Control or buff.type==BuffName.Immune then elseif buff.type== BuffName.DOT or buff.type==BuffName.Control then
buff.target.Event:DispatchEvent(BattleEventName.ShowHintText, BattleArtFontType.clear) buff.target.Event:DispatchEvent(BattleEventName.ShowHintText, BattleArtFontType.clear)
end end
end end
buff:OnEnd() buff:OnEnd()
buff.target.Event:DispatchEvent(BattleEventName.BuffEnd, buff) buff.target.Event:DispatchEvent(BattleEventName.BuffEnd, buff)
BattleLogic.Event:DispatchEvent(BattleEventName.BuffEnd, buff)
putBuff(buff) putBuff(buff)
list:Remove(idx) list:Remove(idx)
else else
@ -319,6 +324,7 @@ function BuffManager:Update()
buffList:Add(buff) buffList:Add(buff)
buff:OnStart() buff:OnStart()
buff.target.Event:DispatchEvent(BattleEventName.BuffStart, buff) buff.target.Event:DispatchEvent(BattleEventName.BuffStart, buff)
BattleLogic.Event:DispatchEvent(BattleEventName.BuffStart, buff)
end end
-- 清除过期buff -- 清除过期buff
@ -331,6 +337,7 @@ function BuffManager:Update()
if buff.disperse then if buff.disperse then
buff:OnEnd() buff:OnEnd()
buff.target.Event:DispatchEvent(BattleEventName.BuffEnd, buff) buff.target.Event:DispatchEvent(BattleEventName.BuffEnd, buff)
BattleLogic.Event:DispatchEvent(BattleEventName.BuffEnd, buff)
putBuff(buff) putBuff(buff)
buffList:Remove(index) buffList:Remove(index)
else else

View File

@ -391,7 +391,7 @@ local effectList = {
local f3 = args[6] local f3 = args[6]
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
BattleUtil.CalDamage(skill, caster, target, dt, f1) BattleUtil.CalDamage(skill, caster, target, dt, f1)
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end,caster,dot) then
BattleUtil.RandomControl(f1, ct, caster, target, f3) BattleUtil.RandomControl(f1, ct, caster, target, f3)
end end
end) end)
@ -404,7 +404,7 @@ local effectList = {
local dot = args[3] local dot = args[3]
local f2 = args[4] local f2 = args[4]
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end,caster,dot) then
f1 = f1*(1+f2) f1 = f1*(1+f2)
end end
BattleUtil.CalDamage(skill, caster, target, dt, f1) BattleUtil.CalDamage(skill, caster, target, dt, f1)
@ -445,7 +445,7 @@ local effectList = {
local trigger = function(defRole, damageFunc, damage) local trigger = function(defRole, damageFunc, damage)
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff)
return dot == 0 or buff.damageType == dot return dot == 0 or buff.damageType == dot
end) then end,caster,dot) then
damage = damage + floor(damage * f1) damage = damage + floor(damage * f1)
end end
damageFunc(damage) damageFunc(damage)
@ -486,7 +486,7 @@ local effectList = {
local f2 = args[4] local f2 = args[4]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end,caster,dot) then
f1 = f1*(1+f2) f1 = f1*(1+f2)
end end
BattleUtil.CalDamage(skill, caster, target, dt, f1) BattleUtil.CalDamage(skill, caster, target, dt, f1)
@ -2027,7 +2027,7 @@ local effectList = {
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local OnPassiveDamaging = function(damagingFunc, defRole, damage) local OnPassiveDamaging = function(damagingFunc, defRole, damage)
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end,caster,dot) then
if damagingFunc then if damagingFunc then
damagingFunc(-floor(damage * f2)) damagingFunc(-floor(damage * f2))
end end
@ -2072,7 +2072,7 @@ local effectList = {
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local isSecKill = false local isSecKill = false
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end,caster,dot) then
-- 检测被动技能对秒杀参数得影响 -- 检测被动技能对秒杀参数得影响
f2, f3 = BattleUtil.CheckSeckill(f2, f3, caster, target) f2, f3 = BattleUtil.CheckSeckill(f2, f3, caster, target)
-- --
@ -2204,7 +2204,7 @@ local effectList = {
-- caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) -- caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
BattleUtil.CalDamage(skill, caster, target, dt, f1) BattleUtil.CalDamage(skill, caster, target, dt, f1)
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) return dot == 0 or buff.damageType == dot end,caster,dot) then
BattleUtil.RandomControl(f2, ct, caster, target, f3) BattleUtil.RandomControl(f2, ct, caster, target, f3)
end end
end) end)
@ -2220,7 +2220,7 @@ local effectList = {
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local index, tran local index, tran
if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function(buff) return buff.damageType == dot end) then if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function(buff) return buff.damageType == dot end,caster,dot) then
index, tran = caster:AddPropertyTransfer(RoleDataName.Crit, f2, RoleDataName.Crit, 1) index, tran = caster:AddPropertyTransfer(RoleDataName.Crit, f2, RoleDataName.Crit, 1)
end end
BattleUtil.CalDamage(skill, caster, target, dt, f1) BattleUtil.CalDamage(skill, caster, target, dt, f1)

View File

@ -125,6 +125,9 @@ function EffectCaster:Cast()
if count == 0 then if count == 0 then
count = #arr count = #arr
end end
table.sort(arr, function(a, b)
return a.position < b.position
end)
-- 全部同时生效 -- 全部同时生效
for j=1, count do for j=1, count do
if arr[j] and not arr[j]:IsRealDead() then if arr[j] and not arr[j]:IsRealDead() then

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@ local function random()
return r return r
end end
function Random.SetSeed(sd) function Random.SetSeed(sd)
seed = sd seed = tonumber(tostring(sd):reverse():sub(1, 6))
end end
function Random.GetSeed() function Random.GetSeed()

View File

@ -27,6 +27,7 @@ local allEnemyDamage=0
--关卡星级记录 --关卡星级记录
local levelStarRecord local levelStarRecord
local hardStageId =0 local hardStageId =0
local insertSkillRole=nil
--是否开启战斗日志 --是否开启战斗日志
BattleLogic.IsOpenBattleRecord = false BattleLogic.IsOpenBattleRecord = false
--逻辑帧频 --逻辑帧频
@ -53,6 +54,7 @@ function BattleLogic.Init(data, _userData, maxRound)
fightData = data fightData = data
userData = _userData userData = _userData
hardStageId=data.nodeId hardStageId=data.nodeId
insertSkillRole=nil
BattleLogic.CurOrder = 0 BattleLogic.CurOrder = 0
BattleLogic.TotalOrder = #data.enemyData BattleLogic.TotalOrder = #data.enemyData
BattleLogic.Clear() BattleLogic.Clear()
@ -195,6 +197,8 @@ function BattleLogic.GetCurTurn()
return CurCamp, CurSkillPos[CurCamp] return CurCamp, CurSkillPos[CurCamp]
end end
-- 设置是否是debug -- 设置是否是debug
function BattleLogic.SetIsDebug(isDebug) function BattleLogic.SetIsDebug(isDebug)
_IsDebug = isDebug _IsDebug = isDebug
@ -267,7 +271,9 @@ function BattleLogic.TurnRound(debugTurn)
--轮数变化后延时0.2秒用于初始化监听回合数被动的初始化 --轮数变化后延时0.2秒用于初始化监听回合数被动的初始化
BattleLogic.WaitForTrigger(0.2,function() BattleLogic.WaitForTrigger(0.2,function()
-- 切换阵营 -- 切换阵营
if not insertSkillRole then
CurCamp = (CurCamp + 1) % 2 CurCamp = (CurCamp + 1) % 2
end
BattleLogic.CheckBattleLogic() BattleLogic.CheckBattleLogic()
end) end)
end) end)
@ -284,15 +290,35 @@ function BattleLogic.CheckBattleLogic()
"Camp Change", "Camp Change",
"camp", CurCamp "camp", CurCamp
) )
-- 当前阵营下一释放技能的位置
local cpos = CurSkillPos[CurCamp] + 1
-- 找到下一个释放技能的人 -- 找到下一个释放技能的人
local SkillRole local SkillRole
local lastPos
--如果有插入行动的英雄,就先让插入的英雄行动
if insertSkillRole then
SkillRole =insertSkillRole
insertSkillRole=nil
--记录下正常执行行动的英雄的位置,插入英雄行动完,再按照正常顺序执行
lastPos=CurSkillPos[CurCamp]
CurSkillPos[CurCamp]=SkillRole.position
-- 如果当前位置不能释放技能也需要走buff轮转
BattleLogic.BuffMgr:TurnUpdate(1) -- 计算恢复血量
BattleLogic.BuffMgr:TurnUpdate(2) -- 计算持续伤害(除去流血)
BattleLogic.BuffMgr:TurnUpdate(3) -- 计算持续伤害(流血)
BattleLogic.BuffMgr:TurnUpdate(4) -- 计算其他buff
BattleLogic.BuffMgr:PassUpdate() -- 计算buff轮数
BattleLogic.BuffMgr:PassUpdateNoDead() -- 计算buff不灭
CurSkillPos[CurCamp]=lastPos
end
if not SkillRole then
-- 当前阵营下一释放技能的位置
local cpos = CurSkillPos[CurCamp] + 1
for p = cpos, 6 do for p = cpos, 6 do
-- 保存当前位置 -- 保存当前位置
CurSkillPos[CurCamp] = p CurSkillPos[CurCamp] = p
-- 自己阵营中的位置 + 自己阵营的ID * 6 = 自己在PosList中的位置 -- 自己阵营中的位置 + 自己阵营的ID * 6 = 自己在PosList中的位置
local role = RoleManager.GetRole(CurCamp, p) --PosList[p + (CurCamp * 6)] local role = RoleManager.GetRole(CurCamp, p) --PosList[p + (CurCamp * 6)]
--角色如果被放逐不能行动 by:wangzhenxing 2020/12/23 11:35 --角色如果被放逐不能行动 by:wangzhenxing 2020/12/23 11:35
if role and not role:IsRealDead() and not role.isExile then if role and not role:IsRealDead() and not role.isExile then
SkillRole = role SkillRole = role
@ -307,6 +333,8 @@ function BattleLogic.CheckBattleLogic()
BattleLogic.BuffMgr:PassUpdate() -- 计算buff轮数 BattleLogic.BuffMgr:PassUpdate() -- 计算buff轮数
BattleLogic.BuffMgr:PassUpdateNoDead() -- 计算buff不灭 BattleLogic.BuffMgr:PassUpdateNoDead() -- 计算buff不灭
end end
end
-- 如果找不到下一个人,直接交换阵营 -- 如果找不到下一个人,直接交换阵营
if not SkillRole then if not SkillRole then
BattleLogManager.Log( "No Skill Position" ) BattleLogManager.Log( "No Skill Position" )
@ -363,6 +391,9 @@ function BattleLogic.WaitForTrigger(delayTime, action)
tbActionList:Add(item) tbActionList:Add(item)
end end
function BattleLogic.InsertSkillRole(role)
insertSkillRole=role
end
function BattleLogic.CurFrame() function BattleLogic.CurFrame()
return curFrame return curFrame

View File

@ -13,13 +13,11 @@ end
local immune3 = function(buff) local immune3 = function(buff)
return buff.type == BuffName.Shield and buff.shieldType == ShieldTypeName.AllReduce return buff.type == BuffName.Shield and buff.shieldType == ShieldTypeName.AllReduce
end end
--自定义免疫
local immune4=nil
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function Immune:SetData(type,func) function Immune:SetData(type,func)
self.immuneType = type self.immuneType = type
immune4=func self.immune4 = func
self.isBuff = true self.isBuff = true
-- 刷新排序等级 -- 刷新排序等级
@ -38,8 +36,8 @@ function Immune:OnStart()
elseif self.immuneType == 3 then --免疫无敌盾 elseif self.immuneType == 3 then --免疫无敌盾
self.target.buffFilter:Add(immune3) self.target.buffFilter:Add(immune3)
elseif self.immuneType==4 then--自定义免疫 elseif self.immuneType==4 then--自定义免疫
if immune4 then if self.immune4 then
self.target.buffFilter:Add(immune4) self.target.buffFilter:Add(self.immune4)
end end
end end
if condition then if condition then
@ -66,8 +64,7 @@ function Immune:OnEnd()
elseif self.immuneType == 3 then --免疫无敌盾 elseif self.immuneType == 3 then --免疫无敌盾
immune = immune3 immune = immune3
elseif self.immuneType == 4 then--自定义免疫 elseif self.immuneType == 4 then--自定义免疫
immune=immune4 immune = self.immune4
immune4=nil
end end
for i = 1, self.target.buffFilter.size do for i = 1, self.target.buffFilter.size do
if self.target.buffFilter.buffer[i] == immune then if self.target.buffFilter.buffer[i] == immune then

View File

@ -8,13 +8,29 @@ function NoDead:SetData(...)
self.cover = true --控制效果可被覆盖 self.cover = true --控制效果可被覆盖
-- 刷新排序等级 -- 刷新排序等级
self.sort = 4 self.sort = 4
self.recordDamage=0
end end
-- 伤害降低 -- 伤害降低
function NoDead:onPassiveDamaging(func, target, damage, skill) function NoDead:onPassiveDamaging(func, target, damage, skill)
if skill and skill.type == BattleSkillType.Special then if skill and skill.type == BattleSkillType.Special then
local dd = BattleUtil.CountValue(damage, self.damageFactor, self.factorCT) - damage local dd = BattleUtil.CountValue(damage, self.damageFactor, self.factorCT) - damage
if func then func(-math.floor(BattleUtil.ErrorCorrection(dd))) end if func then
func(-math.floor(BattleUtil.ErrorCorrection(dd))-self.recordDamage)
end
end
end
-- 记录承受伤害
function NoDead:OnRoleBeHit(atkRole, damage, bCrit, finalDmg, damageType, skill,isDirect)
if skill and (skill.type == BattleSkillType.Special or skill.type==BattleSkillType.Extra or skill.type==BattleSkillType.DeadSkill ) and atkRole.camp~=self.target.camp then
self.recordDamage=self.recordDamage+math.floor(damage*0.1)
end
end
function NoDead:OnSkillCastEnd(skill)
if skill and (skill.type == BattleSkillType.Special or skill.type==BattleSkillType.Extra ) then
self.recordDamage=0
end end
end end
@ -22,6 +38,10 @@ end
function NoDead:OnStart() function NoDead:OnStart()
-- --
self.target.Event:AddEvent(BattleEventName.PassiveDamaging, self.onPassiveDamaging, self) self.target.Event:AddEvent(BattleEventName.PassiveDamaging, self.onPassiveDamaging, self)
self.target.Event:AddEvent(BattleEventName.SkillCastEnd,self.OnSkillCastEnd,self)
if self.target.star>=11 then
self.target.Event:AddEvent(BattleEventName.RoleBeHit,self.OnRoleBeHit,self)
end
self.target:SetDeadFilter(false) self.target:SetDeadFilter(false)
self.target:SetReliveFilter(self.isCanRelive) self.target:SetReliveFilter(self.isCanRelive)
@ -36,7 +56,12 @@ end
--效果结束时调用一次 --效果结束时调用一次
function NoDead:OnEnd() function NoDead:OnEnd()
self.target.Event:AddEvent(BattleEventName.PassiveDamaging, self.onPassiveDamaging, self) self.target.Event:RemoveEvent(BattleEventName.PassiveDamaging, self.onPassiveDamaging, self)
self.target.Event:RemoveEvent(BattleEventName.SkillCastEnd,self.OnSkillCastEnd,self)
if self.target.star>=11 then
self.target.Event:RemoveEvent(BattleEventName.RoleBeHit,self.OnRoleBeHit,self)
end
--self.target.Event
self.target:SetDeadFilter(true) self.target:SetDeadFilter(true)
-- self.target:SetIsCanAddSkill(false) -- self.target:SetIsCanAddSkill(false)

View File

@ -32,13 +32,15 @@ local _ConditionConfig = {
local v1 = condition[1] local v1 = condition[1]
local v2 = condition[2] local v2 = condition[2]
local record = HardStageEventManager.GetRoundDamageRecord() local record = HardStageEventManager.GetRoundDamageRecord()
if record then
if record then if record then
for key, value in pairs(record) do for key, value in pairs(record) do
if key<=v1 and value[2]>=v2 then if key<=v1 and value>=v2 then
return 1 return 1
end end
end end
end end
end
return 0 return 0
end, end,
--使用指定[a]系神将[b]名 --使用指定[a]系神将[b]名
@ -86,7 +88,7 @@ local _ConditionConfig = {
return 0 return 0
end end
for i = 1, #list do for i = 1, #list do
local isHave=list[i]:CheckHavePassive(v1) local isHave=list[i]:CheckHavePassiveId(v1)
if isHave then if isHave then
return 1 return 1
end end
@ -124,15 +126,95 @@ local _ConditionConfig = {
[13]=function(condition) [13]=function(condition)
local v1 = condition[1] local v1 = condition[1]
local v2 = condition[2] local v2 = condition[2]
local list=HardStageEventManager.GetCtrlNumList() local list=HardStageEventManager.GetCtrlNumList()
if list and list[v1] then if list then
if list[v1]>=v2 then if v1==0 then
local num=0
for key, value in pairs(list) do
num=num+value
end
if num>=v2 then
return 1
end
else
if list[v1] and list[v1]>=v2 then
return 1
end
end
end
return 0
end,
--持续伤害[a]杀死[b]人
--a[int 0:所有 1:燃烧 2:毒死]
[14]=function(condition)
local v1 = condition[1]
local v2 = condition[2]
local firing,poison=HardStageEventManager.GetDotDieNum()
if v1==0 then
if firing+poison>=v2 then
return 1
end
end
if v1==1 then
if firing>=v2 then
return 1
end
elseif v1==2 then
if poison>=v2 then
return 1 return 1
end end
end end
return 0 return 0
end, end,
--追击击杀[a]人,击杀[b]号位敌方(填b 就不会判断 a)
--a[int] b[int]
[15]=function(condition)
local v1 = condition[1]
local v2 = condition[2]
local list=HardStageEventManager.GetAddSkillDieList()
if v2 then
local isHave=BattleUtil.ChecklistIsContainValue(list,v2)
if isHave then
return 1
else
return 0
end
else
local num=BattleUtil.LengthOfTable(list)
if num>=v1 then
return 1
end
end
return 0
end,
--回复血量[a]次
[16]=function(condition)
local v1=condition[1]
local time=HardStageEventManager.GetAllTreatTime()
if time>=v1 then
return 1
end
return 0
end,
--第[a]个击杀敌方[b]号位
--a[int 0:是最后],b[int]
[17]=function(condition)
local v1=condition[1]
local v2=condition[2]
local list=HardStageEventManager.GetDeadSortList()
local isHave=BattleUtil.ChecklistIsContainValue(list,v2)
if not isHave then
return 0
end
if v1==0 then
v1=#list
end
if list[v1]==v2 then
return 1
end
return 0
end,
} }

View File

@ -12,18 +12,35 @@ local recordAddKill
local seckKillNum=0 local seckKillNum=0
--控制次数集合 --控制次数集合
local ctrlNumList local ctrlNumList
--毒死的人数
local poisonDieNum=0
--烧死的人数
local firingDieNum=0
local allTreatTime=0
--追击技能击杀任务集合
local addSkillDieList
--死亡顺序集合
local deadSortList
function this.Init() function this.Init()
recordRound=1 recordRound=1
roundDamage=0 roundDamage=0
seckKillNum=0 seckKillNum=0
CurRound=0 CurRound=0
poisonDieNum=0
firingDieNum=0
allTreatTime=0
recordRoundDamage={} recordRoundDamage={}
recordAddKill={} recordAddKill={}
ctrlNumList={} ctrlNumList={}
addSkillDieList={}
deadSortList={}
BattleLogic.Event:AddEvent(BattleEventName.RecordDamage,this.OnRecordDamage) BattleLogic.Event:AddEvent(BattleEventName.RecordDamage,this.OnRecordDamage)
BattleLogic.Event:AddEvent(BattleEventName.Seckill,this.OnSeckill) BattleLogic.Event:AddEvent(BattleEventName.Seckill,this.OnSeckill)
BattleLogic.Event:AddEvent(BattleEventName.BuffRoundChange,this.OnRoundChange) BattleLogic.Event:AddEvent(BattleEventName.BuffRoundChange,this.OnRoundChange)
BattleLogic.Event:AddEvent(BattleEventName.RecordBuff,this.OnBuffAdd) BattleLogic.Event:AddEvent(BattleEventName.RecordBuff,this.OnBuffAdd)
BattleLogic.Event:AddEvent(BattleEventName.BattleRoleDead,this.OnRoleDead)
BattleLogic.Event:AddEvent(BattleEventName.BuffStart,this.OnBuffStar)
BattleLogic.Event:AddEvent(BattleEventName.RecordTreat,this.OnRecordTreat)
end end
function this.ClearEvent() function this.ClearEvent()
@ -31,6 +48,65 @@ function this.ClearEvent()
BattleLogic.Event:RemoveEvent(BattleEventName.Seckill,this.OnSeckill) BattleLogic.Event:RemoveEvent(BattleEventName.Seckill,this.OnSeckill)
BattleLogic.Event:RemoveEvent(BattleEventName.BuffRoundChange,this.OnRoundChange) BattleLogic.Event:RemoveEvent(BattleEventName.BuffRoundChange,this.OnRoundChange)
BattleLogic.Event:RemoveEvent(BattleEventName.RecordBuff,this.OnBuffAdd) BattleLogic.Event:RemoveEvent(BattleEventName.RecordBuff,this.OnBuffAdd)
BattleLogic.Event:RemoveEvent(BattleEventName.BattleRoleDead,this.OnRoleDead)
BattleLogic.Event:RemoveEvent(BattleEventName.BuffStart,this.OnBuffStar)
BattleLogic.Event:AddEvent(BattleEventName.RecordTreat,this.OnRecordTreat)
end
--记录治疗
function this.OnRecordTreat(castRole,targetRole,baseTreat)
if targetRole.camp~=0 then
return
end
allTreatTime=allTreatTime+1
end
function this.GetAllTreatTime()
return allTreatTime
end
--buff被添加
function this.OnBuffStar(buff)
if not buff then
return
end
end
--某人死亡
function this.OnRoleDead(defRole, atkRole,skill,damageType)
if defRole.camp==0 then
return
end
table.insert(deadSortList,defRole.position)
--追击击杀敌方数据
if skill and skill.isAdd then
table.insert(addSkillDieList,defRole.position)
end
if defRole.camp==1 and damageType and damageType~=0 then
if damageType==1 then
firingDieNum=firingDieNum+1
elseif damageType==2 then
poisonDieNum=poisonDieNum+1
end
end
end
--获取死亡顺序集合
function this.GetDeadSortList()
return deadSortList
end
--获取追加技能击杀的敌方集合
function this.GetAddSkillDieList()
return addSkillDieList
end
--获取持续伤害死亡的人数
function this.GetDotDieNum()
return firingDieNum,poisonDieNum
end end
--buff添加成功 --buff添加成功
@ -41,7 +117,7 @@ function this.OnBuffAdd(caster,target,buff)
if ctrlNumList[type] then if ctrlNumList[type] then
ctrlNumList[type]=ctrlNumList[type]+1 ctrlNumList[type]=ctrlNumList[type]+1
else else
table.insert(ctrlNumList,type) --table.insert(ctrlNumList,type)
ctrlNumList[type]=1 ctrlNumList[type]=1
end end
end end
@ -82,20 +158,12 @@ function this.OnRecordDamage(atkRole,defRole,damage)
end end
local curRound,maxRound=BattleLogic.GetCurRound() local curRound,maxRound=BattleLogic.GetCurRound()
CurRound=curRound CurRound=curRound
--如果进入下一回合,记录上一回合的伤害
if CurRound==recordRound+1 then
table.insert(recordRoundDamage,{recordRound,roundDamage})
recordRound=CurRound
end
roundDamage=roundDamage+damage roundDamage=roundDamage+damage
recordRoundDamage[CurRound] = roundDamage
end end
--获取回合伤害记录 --获取回合伤害记录
function this.GetRoundDamageRecord() function this.GetRoundDamageRecord()
--如果一回合就结束战斗了,就直接把记录的回合数伤害加进去
if CurRound==1 then
table.insert(recordRoundDamage,{recordRound,roundDamage})
end
return recordRoundDamage return recordRoundDamage
end end

View File

@ -81,7 +81,7 @@ BattleEventName = {
BeHitMiss = indexAdd(), BeHitMiss = indexAdd(),
CritDamageReduceFactor = indexAdd(), -- 暴击伤害减免系数 CritDamageReduceFactor = indexAdd(), -- 暴击伤害减免系数
SkillCastBefore = indexAdd(), -- 技能攻击前再往前
SkillCast = indexAdd(), -- 技能攻击前 SkillCast = indexAdd(), -- 技能攻击前
SkillCastEnd = indexAdd(), -- 技能攻击结束 SkillCastEnd = indexAdd(), -- 技能攻击结束
BeSkillCast = indexAdd(), -- 被技能攻击前 BeSkillCast = indexAdd(), -- 被技能攻击前
@ -167,6 +167,9 @@ BattleEventName = {
RoleBeExile = indexAdd(),--角色被放逐 RoleBeExile = indexAdd(),--角色被放逐
RoleExileEnd = indexAdd(),--角色放逐结束 RoleExileEnd = indexAdd(),--角色放逐结束
RoleAddBuffFail = indexAdd(),--角色添加buff失败 RoleAddBuffFail = indexAdd(),--角色添加buff失败
RecordRageChange = indexAdd(), -- 怒气改变时
ActionOperateAngerAfter =indexAdd(),--角色行动操作怒气后
HitRoleInBurn = indexAdd(), --击中在燃烧状态得敌人
} }
BattleMaxFrame = 1000000 BattleMaxFrame = 1000000

View File

@ -327,7 +327,7 @@ function BattleUtil.ChooseTarget(role, chooseId)
elseif chooseLimit == 4 then -- 处于灼烧状态 elseif chooseLimit == 4 then -- 处于灼烧状态
local tempArr = {} local tempArr = {}
for i = 1, #arr do for i = 1, #arr do
if BattleLogic.BuffMgr:HasBuff(arr[i], BuffName.DOT, function (buff) return buff.damageType == DotType.Burn end) then if BattleLogic.BuffMgr:HasBuff(arr[i], BuffName.DOT, function (buff) return buff.damageType == DotType.Burn end,role,1) then
table.insert(tempArr, arr[i]) table.insert(tempArr, arr[i])
end end
end end
@ -515,7 +515,7 @@ function BattleUtil.Seckill(skill, atkRole, defRole)
local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage) local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage)
if finalDmg >= 0 then if finalDmg >= 0 then
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
defRole:SetDead() defRole:SetDead(damage)
defRole.Event:DispatchEvent(BattleEventName.RoleDead, atkRole,skill) defRole.Event:DispatchEvent(BattleEventName.RoleDead, atkRole,skill)
atkRole.Event:DispatchEvent(BattleEventName.RoleKill, defRole,skill) atkRole.Event:DispatchEvent(BattleEventName.RoleKill, defRole,skill)
BattleLogic.Event:DispatchEvent(BattleEventName.BattleRoleDead, defRole, atkRole) BattleLogic.Event:DispatchEvent(BattleEventName.BattleRoleDead, defRole, atkRole)
@ -547,7 +547,7 @@ function BattleUtil.SeckillHP(skill, atkRole, defRole, pro)
local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage) local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage)
if finalDmg >= 0 then if finalDmg >= 0 then
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
defRole:SetDead() defRole:SetDead(damage)
defRole.Event:DispatchEvent(BattleEventName.RoleDead, atkRole) defRole.Event:DispatchEvent(BattleEventName.RoleDead, atkRole)
atkRole.Event:DispatchEvent(BattleEventName.RoleKill, defRole,skill) atkRole.Event:DispatchEvent(BattleEventName.RoleKill, defRole,skill)
BattleLogic.Event:DispatchEvent(BattleEventName.BattleRoleDead, defRole, atkRole) BattleLogic.Event:DispatchEvent(BattleEventName.BattleRoleDead, defRole, atkRole)
@ -592,9 +592,9 @@ function BattleUtil.ApplyDamage(skill, atkRole, defRole, damage, bCrit, damageTy
local damagingFunc = function(dmgDeduction) local damagingFunc = function(dmgDeduction)
damage = damage - dmgDeduction damage = damage - dmgDeduction
end end
atkRole.Event:DispatchEvent(BattleEventName.PassiveDamaging, damagingFunc, defRole, damage, skill, dotType, bCrit) atkRole.Event:DispatchEvent(BattleEventName.PassiveDamaging, damagingFunc, defRole, damage, skill, dotType, bCrit,damageType, dotType,isDirect)
defRole.Event:DispatchEvent(BattleEventName.PassiveBeDamaging, damagingFunc, atkRole, damage, skill, dotType, bCrit) defRole.Event:DispatchEvent(BattleEventName.PassiveBeDamaging, damagingFunc, atkRole, damage, skill, dotType, bCrit)
BattleLogic.Event:DispatchEvent(BattleEventName.PassiveDamaging, damagingFunc, atkRole, defRole, damage, skill, dotType, bCrit) BattleLogic.Event:DispatchEvent(BattleEventName.PassiveDamaging, damagingFunc, atkRole, defRole, damage, skill, dotType, bCrit,damageType, dotType,isDirect)
-- 计算护盾减伤 -- 计算护盾减伤
@ -624,9 +624,10 @@ function BattleUtil.CalRage(caster, target, value, countType)
then then
return return
end end
local lastRage=target.Rage
-- 操作怒气 -- 操作怒气
local deltaRage = target:AddRage(value, countType) local deltaRage = target:AddRage(value, countType)
BattleLogic.Event:DispatchEvent(BattleEventName.RecordRageChange, caster, target, deltaRage,countType,value,lastRage)
-- 用于记录统计 -- 用于记录统计
BattleLogic.Event:DispatchEvent(BattleEventName.RecordRage, caster, target, deltaRage) BattleLogic.Event:DispatchEvent(BattleEventName.RecordRage, caster, target, deltaRage)
end end
@ -678,10 +679,10 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy
local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage) local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage)
if finalDmg >= 0 then if finalDmg >= 0 then
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
defRole:SetDead() defRole:SetDead(damage)
defRole.Event:DispatchEvent(BattleEventName.RoleDead, atkRole) defRole.Event:DispatchEvent(BattleEventName.RoleDead, atkRole)
atkRole.Event:DispatchEvent(BattleEventName.RoleKill, defRole,skill) atkRole.Event:DispatchEvent(BattleEventName.RoleKill, defRole,skill)
BattleLogic.Event:DispatchEvent(BattleEventName.BattleRoleDead, defRole, atkRole,skill) BattleLogic.Event:DispatchEvent(BattleEventName.BattleRoleDead, defRole, atkRole,skill,dotType)
end end
atkRole.Event:DispatchEvent(BattleEventName.RoleDamage, defRole, damage, bCrit, finalDmg, damageType, dotType, skill) atkRole.Event:DispatchEvent(BattleEventName.RoleDamage, defRole, damage, bCrit, finalDmg, damageType, dotType, skill)
@ -695,6 +696,10 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy
if skill then if skill then
atkRole.Event:DispatchEvent(BattleEventName.RoleHit, defRole, damage, bCrit, finalDmg, damageType, skill,isDirect) atkRole.Event:DispatchEvent(BattleEventName.RoleHit, defRole, damage, bCrit, finalDmg, damageType, skill,isDirect)
defRole.Event:DispatchEvent(BattleEventName.RoleBeHit, atkRole, damage, bCrit, finalDmg, damageType, skill,isDirect) defRole.Event:DispatchEvent(BattleEventName.RoleBeHit, atkRole, damage, bCrit, finalDmg, damageType, skill,isDirect)
--如果目标是主燃烧目标 or 目标身上有燃烧效果
if atkRole.curMainTarget==defRole or BattleLogic.BuffMgr:HasBuff(defRole, BuffName.DOT,function(buff) return buff.damageType == 1 end) then
atkRole.Event:DispatchEvent(BattleEventName.HitRoleInBurn,skill,defRole)
end
end end
--如果不是技能带的伤害,并且是直接伤害就,,,,, --如果不是技能带的伤害,并且是直接伤害就,,,,,
--用于处理不触发特性并且是直接伤害的伤害 isDirect 暂时先为bool值后期可根据需求做修改扩展 by:王振兴 2020/10/12 16:18 --用于处理不触发特性并且是直接伤害的伤害 isDirect 暂时先为bool值后期可根据需求做修改扩展 by:王振兴 2020/10/12 16:18
@ -702,6 +707,7 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy
atkRole.Event:DispatchEvent(BattleEventName.RoleHit, defRole, damage, bCrit, finalDmg, damageType, skill,isDirect) atkRole.Event:DispatchEvent(BattleEventName.RoleHit, defRole, damage, bCrit, finalDmg, damageType, skill,isDirect)
defRole.Event:DispatchEvent(BattleEventName.RoleBeHit, atkRole, damage, bCrit, finalDmg, damageType, skill,isDirect) defRole.Event:DispatchEvent(BattleEventName.RoleBeHit, atkRole, damage, bCrit, finalDmg, damageType, skill,isDirect)
end end
end end
-- 战斗记录用 -- 战斗记录用
@ -794,7 +800,6 @@ function BattleUtil.CalDamage(skill, atkRole, defRole, damageType, baseFactor, i
-- 计算额外暴击伤害 -- 计算额外暴击伤害
critDamageFactor = 1.3 + atkRole:GetRoleData(RoleDataName.CritDamageFactor) - critDamageReduceFactor critDamageFactor = 1.3 + atkRole:GetRoleData(RoleDataName.CritDamageFactor) - critDamageReduceFactor
--加入被动效果 触发暴击被动 --加入被动效果 触发暴击被动
local critFunc = function(critEx) critDamageFactor = critEx end local critFunc = function(critEx) critDamageFactor = critEx end
atkRole.Event:DispatchEvent(BattleEventName.PassiveCriting, critFunc,skill) atkRole.Event:DispatchEvent(BattleEventName.PassiveCriting, critFunc,skill)
@ -933,6 +938,9 @@ end
--获取table的长度 --获取table的长度
function BattleUtil.LengthOfTable(table) function BattleUtil.LengthOfTable(table)
if not table then
return 0
end
local length = 0 local length = 0
for i, v in pairs(table) do for i, v in pairs(table) do
length = length + 1 length = length + 1

View File

@ -28,7 +28,7 @@ function RoleLogic:Init(uid, data, position)
self.data:Init(self, data.property) self.data:Init(self, data.property)
self.isDead = self:GetRoleData(RoleDataName.Hp) <= 0 self.isDead = self:GetRoleData(RoleDataName.Hp) <= 0
self.isRealDead = self.isDead self.isRealDead = self.isDead
self.killDamage = 0 --致死伤害
self.camp = data.camp --阵营 0我方 1敌方 self.camp = data.camp --阵营 0我方 1敌方
self.name = data.name self.name = data.name
self.element = data.element self.element = data.element
@ -83,6 +83,7 @@ function RoleLogic:Init(uid, data, position)
self.ignoreShara = false --忽略敌方分摊 self.ignoreShara = false --忽略敌方分摊
self.type = BattleUnitType.Role self.type = BattleUnitType.Role
self.isNormalAttackAddRage=true --普攻是否回复怒气 self.isNormalAttackAddRage=true --普攻是否回复怒气
self.curMainTarget=nil --当前主目标
self.passiveList = {} self.passiveList = {}
if data.passivity and #data.passivity > 0 then if data.passivity and #data.passivity > 0 then
table.sort(data.passivity,function(a,b)return a[1] < b[1] end) table.sort(data.passivity,function(a,b)return a[1] < b[1] end)
@ -144,7 +145,7 @@ function RoleLogic:CanCastSkill()
return self.sp >= self.spPass and not self.IsDebug return self.sp >= self.spPass and not self.IsDebug
end end
--检测是否有某被动 --检测是否有某被动类型
function RoleLogic:CheckHavePassive(id) function RoleLogic:CheckHavePassive(id)
if self.passiveList then if self.passiveList then
for index, value in ipairs(self.passiveList) do for index, value in ipairs(self.passiveList) do
@ -157,6 +158,19 @@ function RoleLogic:CheckHavePassive(id)
return false return false
end end
--检测是否有某被动
function RoleLogic:CheckHavePassiveId(id)
if self.passiveList then
for index, value in ipairs(self.passiveList) do
if value and value[3] and value[3]==id then
return true
end
end
return false
end
return false
end
-- 废弃的方法 -- 废弃的方法
function RoleLogic:GetSkillCD() function RoleLogic:GetSkillCD()
return max(self.spPass - self.sp, 0) return max(self.spPass - self.sp, 0)
@ -201,7 +215,7 @@ function RoleLogic:AddRage(value, type)
elseif type == 4 then --乘减算(百分比属性减算) elseif type == 4 then --乘减算(百分比属性减算)
delta = -floor(value * self.SuperSkillRage) delta = -floor(value * self.SuperSkillRage)
end end
self.Event:DispatchEvent(BattleEventName.RoleRageChange, delta) self.Event:DispatchEvent(BattleEventName.RoleRageChange, delta,self.Rage)
--怒气值不可为负值 --怒气值不可为负值
self.Rage = max(self.Rage + delta, 0) self.Rage = max(self.Rage + delta, 0)
@ -295,7 +309,11 @@ end
-- 判断角色是否可以释放技能 -- 判断角色是否可以释放技能
function RoleLogic:IsAvailable() function RoleLogic:IsAvailable(skill)
--角色没有真正死亡 在 被眩晕/沉默的 情况下 任然能释放死亡技能
if (self.ctrl_dizzy or self.ctrl_slient) and self:IsDead() and skill and skill.type==BattleSkillType.DeadSkill then
return true
end
-- 眩晕 -- 死亡 -- 眩晕 -- 死亡
if self.ctrl_dizzy or self:IsRealDead() then if self.ctrl_dizzy or self:IsRealDead() then
return false return false
@ -321,7 +339,8 @@ function RoleLogic:SkillCast(skill, func)
end end
-- 角色不可用直接结束技能释放 -- 角色不可用直接结束技能释放
if not skill or not self:IsAvailable() then if not skill or not self:IsAvailable(skill) then
self.Event:DispatchEvent(BattleEventName.ActionOperateAngerAfter,self)
_CastDone() _CastDone()
return return
end end
@ -342,17 +361,19 @@ function RoleLogic:SkillCast(skill, func)
self.Rage = self.Rage + grow self.Rage = self.Rage + grow
end end
-- 释放完成 -- 释放完成
self.Event:DispatchEvent(BattleEventName.ActionOperateAngerAfter,self)
_CastDone() _CastDone()
end end
-- 释放普技 -- 释放普技
skill:Cast(_CheckRage) skill:Cast(_CheckRage)
-- 没有沉默,释放大技能 -- 没有沉默,释放大技能
elseif (skill.type == BattleSkillType.Special or skill.type==BattleSkillType.Extra or skill.type==BattleSkillType.DeadSkill) and not self.ctrl_slient then elseif (skill.type == BattleSkillType.Special or skill.type==BattleSkillType.Extra or skill.type==BattleSkillType.DeadSkill) and (not self.ctrl_slient or skill.type==BattleSkillType.DeadSkill) then
-- 先消耗怒气 -- 先消耗怒气
if skill.isRage then if skill.isRage then
if self.Rage < self.SuperSkillRage then if self.Rage < self.SuperSkillRage then
-- 怒气值不足不能释放技能 -- 怒气值不足不能释放技能
self.Event:DispatchEvent(BattleEventName.ActionOperateAngerAfter,self)
_CastDone() _CastDone()
return return
end end
@ -372,12 +393,13 @@ function RoleLogic:SkillCast(skill, func)
self.Rage = self.Rage - costRage self.Rage = self.Rage - costRage
end) end)
end end
self.Event:DispatchEvent(BattleEventName.ActionOperateAngerAfter,self)
-- 释放绝技 -- 释放绝技
skill:Cast(_CastDone) skill:Cast(_CastDone)
-- 没有符合条件的技能直接进入下一个技能检测 -- 没有符合条件的技能直接进入下一个技能检测
else else
self.Event:DispatchEvent(BattleEventName.ActionOperateAngerAfter,self)
_CastDone() _CastDone()
end end
@ -420,12 +442,14 @@ function RoleLogic:InsertExtraSkill(id,type)
if effectData then if effectData then
local skillType=BattleSkillType.Extra local skillType=BattleSkillType.Extra
--如果type为1则按绝技处理,不为1的话按额外技能处理额外技能因为被动判断会判断是否是绝技类型所以不会触发 --如果type为1则按绝技处理,不为1的话按额外技能处理额外技能因为被动判断会判断是否是绝技类型所以不会触发
local isTrigger=true
if type==1 then if type==1 then
skillType=BattleSkillType.Special skillType=BattleSkillType.Special
else
isTrigger=false
end end
--和老史,佳琦确认果 附加技能算绝技 被沉默无法释放 可以套娃 递归触发 by:王振兴 --和老史,佳琦确认果 附加技能算绝技 被沉默无法释放 可以套娃 递归触发 by:王振兴
SkillManager.InsertSkill(self, effectData, skillType, nil, true, false,true) SkillManager.InsertSkill(self, effectData, skillType, nil, true, false,isTrigger)
BattleLogManager.Log( BattleLogManager.Log(
"Insert Extra Skill", "Insert Extra Skill",
"camp", self.camp, "camp", self.camp,
@ -528,6 +552,7 @@ function RoleLogic:GoDead()
if self:IsCanDead() then if self:IsCanDead() then
self.isRealDead = true self.isRealDead = true
self.Rage = 0 self.Rage = 0
self.curMainTarget=nil
BattleLogic.BuffMgr:ClearBuff(self) BattleLogic.BuffMgr:ClearBuff(self)
self.Event:DispatchEvent(BattleEventName.RoleRealDead, self) self.Event:DispatchEvent(BattleEventName.RoleRealDead, self)
BattleLogic.Event:DispatchEvent(BattleEventName.RoleRealDead, self) BattleLogic.Event:DispatchEvent(BattleEventName.RoleRealDead, self)
@ -541,8 +566,9 @@ function RoleLogic:SetDeadFilter(filter)
self.deadFilter = filter self.deadFilter = filter
end end
-- 要死了 -- 要死了
function RoleLogic:SetDead() function RoleLogic:SetDead(damage)
self.isDead = true self.isDead = true
self.killDamage=damage
RoleManager.AddDeadRole(self) RoleManager.AddDeadRole(self)
end end
-- 判断是否死亡 -- 判断是否死亡

View File

@ -23,6 +23,7 @@ function Skill:Init(role, effectData, type, targets, isAdd, isRage,isTriggerJudg
self.isKill = false --是否技能击杀目标 self.isKill = false --是否技能击杀目标
self.isAdd = isAdd self.isAdd = isAdd
self.isRage = isRage self.isRage = isRage
self.isNotLoop= false
if isTriggerJudge~=nil then if isTriggerJudge~=nil then
self.isTriggerJudge=isTriggerJudge self.isTriggerJudge=isTriggerJudge
else else
@ -76,7 +77,7 @@ function Skill:Cast(func)
--end --end
self.effectCaster:Cast() self.effectCaster:Cast()
end end
self.owner.Event:DispatchEvent(BattleEventName.SkillCastBefore, self)
-- 释放技能开始 -- 释放技能开始
self.owner.Event:DispatchEvent(BattleEventName.SkillCast, self) self.owner.Event:DispatchEvent(BattleEventName.SkillCast, self)
BattleLogic.Event:DispatchEvent(BattleEventName.SkillCast, self) BattleLogic.Event:DispatchEvent(BattleEventName.SkillCast, self)
@ -87,7 +88,11 @@ function Skill:Cast(func)
--技能的施法时间计算根据当前目标id关联的持续时间取其中时间最长的一个 --技能的施法时间计算根据当前目标id关联的持续时间取其中时间最长的一个
local duration = self.hitTime + self.continueTime local duration = self.hitTime + self.continueTime
-- 结算时间向后延长0.2秒,避免在效果结算完成前就结束了技能释放 -- 结算时间向后延长0.2秒,避免在效果结算完成前就结束了技能释放
BattleLogic.WaitForTrigger(duration + 0.8, function() local time=0.8
if self.id==1282 then
time=2.5
end
BattleLogic.WaitForTrigger(duration + time, function()
self.owner.Event:DispatchEvent(BattleEventName.SkillCastEnd, self) self.owner.Event:DispatchEvent(BattleEventName.SkillCastEnd, self)
BattleLogic.Event:DispatchEvent(BattleEventName.SkillCastEnd, self) BattleLogic.Event:DispatchEvent(BattleEventName.SkillCastEnd, self)

View File

@ -59,21 +59,25 @@ function this.AddSkill(caster, effectData, type, targets, isAdd, isRage,isTrigge
return skill return skill
end end
-- 插入技能到技能列表首位 -- 插入技能到技能列表首位
function this.InsertSkill(caster, effectData, type, targets, isAdd, isRage,isTriggerJudge) function this.InsertSkill(caster, effectData, type, targets, isAdd, isRage,isTriggerJudge,isLoop)
-- 如果超出最大限制则不再追加技能 -- 如果超出最大限制则不再追加技能
if not this.CheckMaxCount() then if not this.CheckMaxCount() then
return return
end end
local skill = skillPool:Get() local skill = skillPool:Get()
--角色被混乱后 --角色被混乱后
if isTriggerJudge==nil then
isTriggerJudge=true isTriggerJudge=true
end
if caster.ctrl_chaos and type~=BattleSkillType.DeadSkill then if caster.ctrl_chaos and type~=BattleSkillType.DeadSkill then
type=BattleSkillType.ChaosNormal type=BattleSkillType.ChaosNormal
--混乱普攻使用普攻特效 --混乱普攻使用普攻特效
effectData={caster.skill[1],caster.skill[2],caster.skill[3],caster.skill[4],{100001,{1,1,1}}} effectData={caster.skill[1],caster.skill[2],caster.skill[3],caster.skill[4],{100001,{1,1,1}}}
isTriggerJudge=false isTriggerJudge=false
end end
skill:Init(caster, effectData, type, targets, isAdd, isRage) skill:Init(caster, effectData, type, targets, isAdd, isRage,isTriggerJudge)
skill.isNotLoop=isLoop
if type == BattleSkillType.DeadSkill then -- 死亡技能加入单独的对列 if type == BattleSkillType.DeadSkill then -- 死亡技能加入单独的对列
table.insert(this.DeadSkillList, 1, skill) table.insert(this.DeadSkillList, 1, skill)
else else

View File

@ -1,3 +1,54 @@
master_zh_test同步数据表2021_08_02_19_27_29
v1.0.53
1. 随机种子修改
master_zh_test同步数据表2021_07_31_17_55_16
master_zh_test同步数据表2021_07_31_17_54_20
v1.0.52
1. 死亡技能不会被控制
2.追加技能是否触发特性修改
master_zh_test同步数据表2021_07_26_11_10_56
v1.0.51
1. 被动292 修改
v1.0.50
1. 被动292 319修改
master_zh_test同步数据表2021_07_13_18_19_09
master_zh_test同步数据表2021_07_10_20_33_05
v1.0.49
1. 同步客户端逻辑
v1.0.48
1. 新增紫府神印被动效果
v1.0.47
1. 新增英雄觉醒被动 及 困难副本被动 效果
master_zh_test同步数据表2021_06_30_07_33_23
master_zh_test同步数据表2021_06_28_13_40_30
v1.0.46
1、同步数据表
v1.0.45
1. 【战斗】修改免疫控制效果清除提示
v1.0.44
1. 【战斗】修复群体性的免疫效果不会正常消失的问题
v1.0.43
1. 被动200修改
v1.0.42
1. 困难副本关卡表修改
v1.0.41
1. 同步客户端战斗消息号
2. 同步苦难关卡数据
v1.0.40
1、回滚v1.0.39
v1.0.39
1、删除LogGreen方法
v1.0.38
1. 同步客户端困难关卡表逻辑
v1.0.37
1. 通关星级条件检测逻辑4修改
v1.0.36
1. 同步表数据
v1.0.35
1. rolelogic添加查找被动id接口
2.通关星级条件检测逻辑9修改
v1.0.34 v1.0.34
1. 战斗去除log 1. 战斗去除log
v1.0.33 v1.0.33