修复玩家模块的重大问题

This commit is contained in:
MrZ626
2021-05-07 02:37:28 +08:00
parent 6a335d9c31
commit 177edbf7d6
4 changed files with 19 additions and 28 deletions

View File

@@ -10,9 +10,9 @@ return{
},
load=function()
PLY.newPlayer(1)
PLAYERS[1].sid=netPLY.getSID(1)
PLAYERS[1].sid=netPLY.getSID(USER.uid)
for i=2,netPLY.getCount()do
PLY.newRemotePlayer(i,false,netPLY.getUID(i))
PLY.newRemotePlayer(i,false,netPLY.getPLY(i))
end
end,
}

View File

@@ -85,9 +85,7 @@ local function freshPosList()
end
end
function netPLY.clear()
while PLY[1]do rem(PLY)end
end
function netPLY.clear()for _=1,netPLY.getCount()do rem(PLY)end end
function netPLY.add(p)
ins(PLY,p.uid==USER.uid and 1 or #PLY+1,p)
p.x,p.y,p.w,p.h=2600,2600,0,0
@@ -104,20 +102,13 @@ function netPLY.remove(sid)
end
function netPLY.getCount()return #PLY end
function netPLY.getUID(i)return PLY[i].uid end
function netPLY.getPLY(i)return PLY[i]end
function netPLY.getUsername(uid)return PLY[uid].username end
function netPLY.getSID(i)return PLY[i].sid end
function netPLY.getReady(i)return PLY[i].ready end
function netPLY.getConfig(i)return PLY[i].config end
function netPLY.getSID(uid)return PLY[uid].sid end
function netPLY.getSelfReady()return PLY[1].ready end
function netPLY.setPlayerObj(uid,p)
PLY[uid].p=p
end
function netPLY.setConf(uid,config)
if tostring(USER.uid)~=uid then
PLY[uid].config=config
end
end
function netPLY.setPlayerObj(ply,p) ply.p=p end
function netPLY.setConf(uid,config)PLY[uid].config=config end
function netPLY.setReady(uid,ready)
for i,p in next,PLY do
if p.uid==uid then

View File

@@ -373,7 +373,7 @@ function PLY.newDemoPlayer(id)
}
P:popNext()
end
function PLY.newRemotePlayer(id,mini,uid)
function PLY.newRemotePlayer(id,mini,ply)
local P=newEmptyPlayer(id,mini)
P.type='remote'
P.update=PLY.update.remote_alive
@@ -383,11 +383,11 @@ function PLY.newRemotePlayer(id,mini,uid)
P.stream={}
P.streamProgress=1
netPLY.setPlayerObj(uid,P)
P.uid=uid
P.username=netPLY.getUsername(uid)
P.sid=netPLY.getSID(uid)
loadRemoteEnv(P,netPLY.getConfig(uid))
netPLY.setPlayerObj(ply,P)
P.uid=ply.uid
P.username=ply.username
P.sid=ply.sid
loadRemoteEnv(P,ply.config)
applyGameEnv(P)
end

View File

@@ -95,9 +95,9 @@ function scene.keyDown(key)
end
else
if key=="space"then
NET.signal_ready(not netPLY.getReady(1))
NET.signal_ready(not netPLY.getSelfReady())
elseif key=="s"then
if not(netPLY.getReady(1)or NET.getlock('ready'))then
if not(netPLY.getSelfReady()or NET.getlock('ready'))then
SCN.go('setting_game')
end
end
@@ -276,13 +276,13 @@ function scene.draw()
end
scene.widgetList={
textBox,
WIDGET.newKey{name="setting",fText=TEXTURE.setting,x=1200,y=160,w=90,h=90,code=pressKey"s",hide=function()return playing or netPLY.getReady(1)or NET.getlock('ready')end},
WIDGET.newKey{name="setting",fText=TEXTURE.setting,x=1200,y=160,w=90,h=90,code=pressKey"s",hide=function()return playing or netPLY.getSelfReady()or NET.getlock('ready')end},
WIDGET.newKey{name="ready",x=1060,y=630,w=300,h=80,color='lB',font=40,code=pressKey"space",
hide=function()
return
playing or
NET.serverGaming or
netPLY.getReady(1)or
netPLY.getSelfReady()or
NET.getlock('ready')
end},
WIDGET.newKey{name="cancel",x=1060,y=630,w=300,h=80,color='H',font=40,code=pressKey"space",
@@ -290,7 +290,7 @@ scene.widgetList={
return
playing or
NET.serverGaming or
not netPLY.getReady(1)or
not netPLY.getSelfReady()or
NET.getlock('ready')
end},
WIDGET.newKey{name="hideChat",fText="...",x=380,y=35,w=60,font=35,code=pressKey"\\"},