玩家的随机数生成器独立为四个,尝试避免联网对战时不同步错误,整理代码
This commit is contained in:
@@ -12,12 +12,12 @@ return{
|
||||
local D=P.modeData
|
||||
if D.wave<20 then
|
||||
local t=1500-30*D.wave--1500~900
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=12,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(3,8)),amount=10,countdown=t,cd0=t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(4,7)),amount=12,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(3,8)),amount=10,countdown=t,cd0=t,time=0,sent=false,lv=4})
|
||||
else
|
||||
local t=900-10*(D.wave-20)--900~600
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=8,countdown=t,cd0=t,time=0,sent=false,lv=5})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(4,7)),amount=8,countdown=t,cd0=t,time=0,sent=false,lv=5})
|
||||
end
|
||||
P.atkBufferSum=P.atkBufferSum+22
|
||||
P.stat.recv=P.stat.recv+22
|
||||
|
||||
@@ -12,16 +12,16 @@ return{
|
||||
local s
|
||||
local t=800-10*D.wave--800~700~600~500
|
||||
if D.wave<10 then
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(5,6)),amount=9,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=11,countdown=t,cd0=t+62,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(5,6)),amount=9,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(4,7)),amount=11,countdown=t,cd0=t+62,time=0,sent=false,lv=4})
|
||||
s=20
|
||||
elseif D.wave<20 then
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(3,8)),amount=11,countdown=t,cd0=t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=13,countdown=t,cd0=t+62,time=0,sent=false,lv=5})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(3,8)),amount=11,countdown=t,cd0=t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(4,7)),amount=13,countdown=t,cd0=t+62,time=0,sent=false,lv=5})
|
||||
s=24
|
||||
else
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(2)*9-8),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=5})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(3,8)),amount=14,countdown=t+62,cd0=t,time=0,sent=false,lv=5})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(2)*9-8),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=5})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(3,8)),amount=14,countdown=t+62,cd0=t,time=0,sent=false,lv=5})
|
||||
s=28
|
||||
end
|
||||
P.atkBufferSum=P.atkBufferSum+s
|
||||
|
||||
@@ -5,7 +5,7 @@ return{
|
||||
freshLimit=15,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,60,generateLine(P:RND(10)))
|
||||
P:receive(nil,P.lastPiece.atk,60,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win('finish')
|
||||
|
||||
@@ -5,7 +5,7 @@ return{
|
||||
freshLimit=15,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,30,generateLine(P:RND(10)))
|
||||
P:receive(nil,P.lastPiece.atk,30,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win('finish')
|
||||
|
||||
@@ -4,7 +4,7 @@ return{
|
||||
drop=30,lock=60,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,120,generateLine(P:RND(10)))
|
||||
P:receive(nil,P.lastPiece.atk,120,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win('finish')
|
||||
|
||||
@@ -5,7 +5,7 @@ return{
|
||||
freshLimit=10,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,0,generateLine(P:RND(10)))
|
||||
P:receive(nil,P.lastPiece.atk,0,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win('finish')
|
||||
|
||||
@@ -37,18 +37,18 @@ return{
|
||||
P.visTime[i]=FREEROW.get(20)
|
||||
for x=4,7 do F[i][x]=0 end
|
||||
end
|
||||
if P:RND()<.6 then
|
||||
if P.holeRND:random()<.6 then
|
||||
local initCell={11,14,12,13,21,24}
|
||||
for _=1,3 do
|
||||
_=rem(initCell,P:RND(#initCell))
|
||||
_=rem(initCell,P.holeRND:random(#initCell))
|
||||
F[math.floor(_/10)][3+_%10]=20
|
||||
end
|
||||
else
|
||||
local initCell={11,12,13,14,21,22,23,24}
|
||||
rem(initCell,P:RND(5,8))
|
||||
rem(initCell,P:RND(1,4))
|
||||
rem(initCell,P.holeRND:random(5,8))
|
||||
rem(initCell,P.holeRND:random(1,4))
|
||||
for _=1,6 do
|
||||
_=rem(initCell,P:RND(#initCell))
|
||||
_=rem(initCell,P.holeRND:random(#initCell))
|
||||
F[math.floor(_/10)][3+_%10]=20
|
||||
end
|
||||
end
|
||||
|
||||
@@ -35,18 +35,18 @@ return{
|
||||
P.visTime[i]=FREEROW.get(20)
|
||||
for x=4,7 do F[i][x]=0 end
|
||||
end
|
||||
if P:RND()<.6 then
|
||||
if P.holeRND:random()<.6 then
|
||||
local initCell={11,14,12,13,21,24}
|
||||
for _=1,3 do
|
||||
_=rem(initCell,P:RND(#initCell))
|
||||
_=rem(initCell,P.holeRND:random(#initCell))
|
||||
F[math.floor(_/10)][3+_%10]=20
|
||||
end
|
||||
else
|
||||
local initCell={11,12,13,14,21,22,23,24}
|
||||
rem(initCell,P:RND(5,8))
|
||||
rem(initCell,P:RND(1,4))
|
||||
rem(initCell,P.holeRND:random(5,8))
|
||||
rem(initCell,P.holeRND:random(1,4))
|
||||
for _=1,6 do
|
||||
_=rem(initCell,P:RND(#initCell))
|
||||
_=rem(initCell,P.holeRND:random(#initCell))
|
||||
F[math.floor(_/10)][3+_%10]=20
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,7 +16,7 @@ return{
|
||||
if D.counter>=t then
|
||||
D.counter=0
|
||||
for _=1,4 do
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=5*t,cd0=5*t,time=0,sent=false,lv=2})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=1,countdown=5*t,cd0=5*t,time=0,sent=false,lv=2})
|
||||
end
|
||||
P.atkBufferSum=P.atkBufferSum+4
|
||||
P.stat.recv=P.stat.recv+4
|
||||
|
||||
@@ -16,7 +16,7 @@ return{
|
||||
if D.counter>=t then
|
||||
D.counter=0
|
||||
for _=1,3 do
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=2*t,cd0=2*t,time=0,sent=false,lv=1})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=1,countdown=2*t,cd0=2*t,time=0,sent=false,lv=1})
|
||||
end
|
||||
P.atkBufferSum=P.atkBufferSum+3
|
||||
P.stat.recv=P.stat.recv+3
|
||||
|
||||
@@ -71,7 +71,7 @@ return{
|
||||
end
|
||||
|
||||
FREEROW.discard(height)
|
||||
P:getNext(wei[P:RND(#wei)])
|
||||
P:getNext(wei[P.seqRND:random(#wei)])
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
@@ -9,7 +9,7 @@ local function check_rise(P)
|
||||
end
|
||||
end
|
||||
for _=1,8-L do
|
||||
P:garbageRise(13,1,generateLine(P:RND(10)))
|
||||
P:garbageRise(13,1,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
else
|
||||
if L==0 then
|
||||
@@ -17,7 +17,7 @@ local function check_rise(P)
|
||||
SFX.play('clear')
|
||||
BG.send(26)
|
||||
for _=1,8 do
|
||||
P:garbageRise(13,1,generateLine(P:RND(10)))
|
||||
P:garbageRise(13,1,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
else
|
||||
BG.send(#P.clearedRow)
|
||||
@@ -38,7 +38,7 @@ return{
|
||||
PLY.newPlayer(1)
|
||||
local P=PLAYERS[1]
|
||||
for _=1,8 do
|
||||
P:garbageRise(13,1,generateLine(P:RND(10)))
|
||||
P:garbageRise(13,1,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
P.fieldBeneath=0
|
||||
end,
|
||||
|
||||
@@ -45,17 +45,17 @@ return{
|
||||
end
|
||||
end
|
||||
for _=1,5 do
|
||||
P.field[i][P:RND(10)]=0
|
||||
P.field[i][P.holeRND:random(10)]=0
|
||||
end
|
||||
else
|
||||
P.field[i]=FREEROW.get(0)
|
||||
P.visTime[i]=FREEROW.get(30)
|
||||
for j=1,10 do
|
||||
if P:RND()>.9 then
|
||||
if P.holeRND:random()>.9 then
|
||||
P.field[i][j]=math.random(16)
|
||||
end
|
||||
end
|
||||
P.field[i][P:RND(10)]=0
|
||||
P.field[i][P.holeRND:random(10)]=0
|
||||
end
|
||||
P.field[i].garbage=true
|
||||
end
|
||||
|
||||
@@ -11,7 +11,7 @@ local function task_PC(P)
|
||||
D.counter=D.counter+1
|
||||
if D.counter==26 then
|
||||
local base=PCbase[D.type]
|
||||
P:pushLineList(base[P:RND(#base)],D.symmetry)
|
||||
P:pushLineList(base[P.holeRND:random(#base)],D.symmetry)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -23,8 +23,8 @@ local function check(P)
|
||||
end
|
||||
else
|
||||
local type=P.stat.pc<10 and 4 or 5
|
||||
local L=PClist[type][P:RND(#PClist[type])]
|
||||
local symmetry=P:RND()>.5
|
||||
local L=PClist[type][P.holeRND:random(#PClist[type])]
|
||||
local symmetry=P.holeRND:random()>.5
|
||||
P.modeData.type=type
|
||||
P.modeData.symmetry=symmetry
|
||||
P:pushNextList(L,symmetry)
|
||||
|
||||
@@ -13,7 +13,7 @@ local function task_PC(P)
|
||||
D.counter=D.counter+1
|
||||
if D.counter==26 then
|
||||
local base=PCbase[D.type]
|
||||
P:pushLineList(base[P:RND(#base)],D.symmetry)
|
||||
P:pushLineList(base[P.holeRND:random(#base)],D.symmetry)
|
||||
end
|
||||
YIELD()
|
||||
end
|
||||
@@ -26,8 +26,8 @@ local function check(P)
|
||||
end
|
||||
else
|
||||
local type=PCtype[P.stat.pc+1]or 3
|
||||
local L=PClist[type][P:RND(#PClist[type])]
|
||||
local symmetry=P:RND()>.5
|
||||
local L=PClist[type][P.holeRND:random(#PClist[type])]
|
||||
local symmetry=P.holeRND:random()>.5
|
||||
P.modeData.type=type
|
||||
P.modeData.symmetry=symmetry
|
||||
P:pushNextList(L,symmetry)
|
||||
|
||||
@@ -10,7 +10,7 @@ return{
|
||||
local D=P.modeData
|
||||
D.timer=D.timer+1
|
||||
if D.timer>=math.max(60,150-2*D.wave)and P.atkBufferSum<4 then
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=30,cd0=30,time=0,sent=false,lv=1})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=1,countdown=30,cd0=30,time=0,sent=false,lv=1})
|
||||
P.atkBufferSum=P.atkBufferSum+1
|
||||
P.stat.recv=P.stat.recv+1
|
||||
if D.wave==45 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end
|
||||
|
||||
@@ -12,10 +12,10 @@ return{
|
||||
if D.timer>=math.max(60,180-2*D.wave)and P.atkBufferSum<15 then
|
||||
local s
|
||||
if D.wave%3<2 then
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=0,cd0=0,time=0,sent=false,lv=1})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=1,countdown=0,cd0=0,time=0,sent=false,lv=1})
|
||||
s=1
|
||||
else
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=3,countdown=60,cd0=60,time=0,sent=false,lv=2})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=3,countdown=60,cd0=60,time=0,sent=false,lv=2})
|
||||
s=3
|
||||
end
|
||||
P.atkBufferSum=P.atkBufferSum+s
|
||||
|
||||
@@ -11,7 +11,7 @@ return{
|
||||
D.timer=D.timer+1
|
||||
if D.timer>=math.max(60,150-D.wave)and P.atkBufferSum<20 then
|
||||
local t=math.max(60,90-D.wave)
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
P.atkBufferSum=P.atkBufferSum+4
|
||||
P.stat.recv=P.stat.recv+4
|
||||
if D.wave==60 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end
|
||||
|
||||
@@ -12,10 +12,10 @@ return{
|
||||
if D.timer>=math.max(90,180-2*D.wave)and P.atkBufferSum<8 then
|
||||
local d=D.wave+1
|
||||
table.insert(P.atkBuffer,
|
||||
d%4==0 and{line=generateLine(P:RND(10)),amount=1,countdown=60,cd0=60,time=0,sent=false,lv=1}or
|
||||
d%4==1 and{line=generateLine(P:RND(10)),amount=2,countdown=70,cd0=70,time=0,sent=false,lv=1}or
|
||||
d%4==2 and{line=generateLine(P:RND(10)),amount=3,countdown=80,cd0=80,time=0,sent=false,lv=2}or
|
||||
d%4==3 and{line=generateLine(P:RND(10)),amount=4,countdown=90,cd0=90,time=0,sent=false,lv=3}
|
||||
d%4==0 and{line=generateLine(P.holeRND:random(10)),amount=1,countdown=60,cd0=60,time=0,sent=false,lv=1}or
|
||||
d%4==1 and{line=generateLine(P.holeRND:random(10)),amount=2,countdown=70,cd0=70,time=0,sent=false,lv=1}or
|
||||
d%4==2 and{line=generateLine(P.holeRND:random(10)),amount=3,countdown=80,cd0=80,time=0,sent=false,lv=2}or
|
||||
d%4==3 and{line=generateLine(P.holeRND:random(10)),amount=4,countdown=90,cd0=90,time=0,sent=false,lv=3}
|
||||
)
|
||||
P.atkBufferSum=P.atkBufferSum+d%4+1
|
||||
P.stat.recv=P.stat.recv+d%4+1
|
||||
|
||||
@@ -13,10 +13,10 @@ return{
|
||||
D.timer=D.timer+1
|
||||
if D.timer>=math.max(300,600-10*D.wave)and P.atkBufferSum<20 then
|
||||
local t=math.max(300,480-12*D.wave)
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=2})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=6,countdown=1.2*t,cd0=1.2*t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=6,countdown=1.5*t,cd0=1.5*t,time=0,sent=false,lv=5})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=2})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=6,countdown=1.2*t,cd0=1.2*t,time=0,sent=false,lv=4})
|
||||
table.insert(P.atkBuffer,{line=generateLine(P.holeRND:random(10)),amount=6,countdown=1.5*t,cd0=1.5*t,time=0,sent=false,lv=5})
|
||||
P.atkBufferSum=P.atkBufferSum+20
|
||||
P.stat.recv=P.stat.recv+20
|
||||
if D.wave==31 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end
|
||||
|
||||
Reference in New Issue
Block a user