Ответ: Отдаю свою "типо игру" ))
Цитата:
Сообщение от tirarex
(Сообщение 227866)
и ещё вопрос
я нашёл код простого мультиплеера
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
создаю сервак на свой ип
другие компы в локальной сети видят мой сервак а комп друга невидет мой серв
когда он создаёт серв таже история
|
1. Твой друг не находится в твоей локальной сети?
Если нет, то из этого:
2. Ты заказываеш у своего провайдера "выделенный айпи адрес"?
-------------------------------------------------------------------------
Цитата:
Сообщение от tirarex
(Сообщение 227865)
думаю теперь норм кстати у меня такой вопрос
как сделать ботов ну зомби
к примеру
этож не игрок но должен быть видемым для всех и его все чтоб могли убивать я пока как сделать не понимаю
|
Ну на стороне клиента можно ничего почти не изменять, только задать PlayerType, допустим игрок = 0, бот = 1 и когда передаеш серверу что ты типо атакуеш когото, отсылать что ты типо атаковал игрока или бота с ИД-шкой такойто, а на серваке надо уже шаманить :-D там все зависит от того что у тебя за игра и что в ней должны "уметь" боты...
|