Показать сообщение отдельно
Старый 12.05.2012, 19:26   #15
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Отдаю свою "типо игру" ))

и ещё вопрос
я нашёл код простого мультиплеера

Type Info
Field txt$
End Type


NetGame=StartNetGame ()

Graphics3D 800,600,16,2
SetBuffer BackBuffer ()

Global cam
Global myent
Global myid
Global myname$

Type Player
Field name$,id,ent
End Type

cam=CreateCamera ()
PositionEntity cam,0,2,-5

light=CreateLight()

p.Player=New Player
p\name=Input ("Enter to name : ")
p\id=CreateNetPlayer (p\name)
p\ent=CreateCube ()
myname=p\name
myid=p\id
myent=p\ent

While Not KeyHit (1)
updatePlayer()
RenderWorld
updateNetwork()
RenderAll()
Flip
Wend



Function UpdatePlayer()
If KeyHit(57) Then info("всё ок")
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$())
info( NetPlayerName$( NetMsgFrom() )+": "+NetMsgData$() )
End Select
Wend
End Function

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))
dat$=Right(dat$,Len(dat$)-zp)
yaw=Float(Left(dat$,Len(dat$)))
PositionEntity ent,x,0,z
RotateEntity ent,0,yaw,0
End Function

Function LabelEntity(entity%,camera,txt$,px%,py%,near#,far# )
CameraProject(camera%,EntityX(entity%),EntityY(ent ity%),EntityZ(entity%))
dist#=EntityDistance(entity%,camera)
If EntityInView(entity%,camera%) Then Text ProjectedX#()+px%,ProjectedY#()+py%,txt$
End Function


Function info(t$)
i.Info=New Info
i\txt$=t$
Insert i Before First Info
End Function

Function RenderAll()
Text 10,10,chat$
y=FontHeight()*2
r=0;255
For i.Info=Each Info
If r<15;максимальное количество ctpok
Text 8,y,i\txt$
y=y+FontHeight()
r=r+1
Else
Delete i
EndIf
Next
End Function

создаю сервак на свой ип
другие компы в локальной сети видят мой сервак а комп друга невидет мой серв

когда он создаёт серв таже история
(Offline)
 
Ответить с цитированием