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

привет всем , перевел пример онлайн игрушки на ксорс и вот беда , клиент не видит сервер , и создает всегда новый .

если у кого есть пример онлайн игры на ксорс скиньте пожалуйста

Почему так ?
код

Include "xors3d.bb"

Type Player
Field name$,id,ent
End Type


Global cam
Global myent
Global myid
Global myname$

SeedRnd xMillisecs()
xGraphics3D 800, 600, 32, False, False
xSetBuffer xBackBuffer()

jng=JoinNetGame("game,"127.0.0.1")

If Not jng Then HostNetGame("game")

p.Player=New Player
p\name="namettdft"+rand(0,100)
p\id=CreateNetPlayer(p\name)
p\ent=xCreateCube()
myname=p\name
myid=p\id
myent=p\ent


cam=xCreateCamera()
xPositionEntity cam,0,2,-5


While Not xKeyHit(1)
UpdatePlayer()
UpdateNetwork()
xRenderWorld
xFlip
Wend


Function UpdatePlayer()
If xKeyDown(17) xMoveEntity myent,0,0,.1
If xKeyDown(31) xMoveEntity myent,0,0,-.1
If xKeyDown(30) xTurnEntity myent,0,1,0
If xKeyDown(32) xTurnEntity 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=xCreateCube()
Case 101
p.Player=FindPlayer(NetMsgFrom())
xFreeEntity p\ent
Delete p
Case 2
p.Player=FindPlayer(NetMsgFrom())
UnpackMsg(p\ent,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 xEntityX#(ent)+"|"+xEntityZ#(ent)+"|"+xEntityYaw#( 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$)))
xPositionEntity ent,x#,0,z#
xRotateEntity ent,0,yaw#,0
End Function
(Offline)
 
Ответить с цитированием