NetGame=StartNetGame () Graphics3D 1024,768,32,1
SetBuffer BackBuffer ()
Global cam
Global myent
Global myid
Global myname$
Type Player
Field name$,id,ent
End Type
Light=CreateLight()
terrain=CreatePlane()
PositionEntity terrain,0,0,-1
tex=LoadTexture( "lmap_256.bmp" )
EntityTexture terrain,tex,0,0
cam=CreateCamera (myid)
PositionEntity cam,0,10,-5
p.Player=New Player
p\id=CreateNetPlayer (p\name)
p\ent=CreateCube()
tex2=LoadTexture( "tex.bmp" )
EntityTexture p\ent,tex2,0,0
myname=p\name
myid=p\id
myent=p\ent
Function UpdatePlayer()
If KeyDown(17) MoveEntity myent,0,0,.1
If KeyDown(31) MoveEntity myent,0,0,-.1
If KeyDown(30) TurnEntity myent,0,1,0
If KeyDown(32) TurnEntity myent,0,-1,0
SendNetMsg 2,PackMsg$(myent),myid,0
End Function
Function UpdateNetwork()
While RecvNetMsg()
Select NetMsgType()
Case 100
p.Player=New Player
p\id=NetMsgFrom()
p\name=NetPlayerName(p\id)
p\ent=CreateCube()
Case 101
p.Player=FindPlayer(NetMsgFrom())
FreeEntity p\ent
Delete p
Case 2
p.Player=FindPlayer(NetMsgFrom())
UnpackMsg(p\ent,NetMsgData$())
End Select
Wend
End Function
EntityType p\ent,2
EntityType myent,2
Collisions 2,2,2,2
Function FindPlayer.Player( id )
For p.Player=Each Player
If p\id=id Then Return p
Next
End Function
Function PackMsg$(ent)
Return EntityX(ent)+"|"+EntityZ(ent)+"|"+EntityYaw(ent)
End Function
Function UnpackMsg(ent,dat$)
xp=Instr(dat$,"|")
x=Float(Left(dat$,xp))
dat$=Right(dat$,Len(dat$)-xp)
zp=Instr(dat$,"|")
z=Float(Left(dat$,zp))
d at$=Right(dat$,Len(dat$)-zp)
yaw=Float(Left(dat$,Len(dat$)))
PositionEntity ent,x,0,z
RotateEntity ent,0,yaw,0
End Function
While Not KeyHit (1)
updatePlayer()
updateNetwork()
UpdateWorld()
RenderWorld
Flip
Wend
На первый взгляд все просто ,но меши не работают и колизии тоже(((