|
13.05.2012, 11:27
|
#16
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Отдаю свою "типо игру" ))
Сообщение от tirarex
и ещё вопрос
я нашёл код простого мультиплеера
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
думаю теперь норм кстати у меня такой вопрос
как сделать ботов ну зомби
к примеру
этож не игрок но должен быть видемым для всех и его все чтоб могли убивать я пока как сделать не понимаю
|
Ну на стороне клиента можно ничего почти не изменять, только задать PlayerType, допустим игрок = 0, бот = 1 и когда передаеш серверу что ты типо атакуеш когото, отсылать что ты типо атаковал игрока или бота с ИД-шкой такойто, а на серваке надо уже шаманить там все зависит от того что у тебя за игра и что в ней должны "уметь" боты...
|
(Offline)
|
|
13.05.2012, 17:34
|
#17
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Отдаю свою "типо игру" ))
[quote=Crayzi;227899]1. Твой друг не находится в твоей локальной сети?
Если нет, то из этого:
2. Ты заказываеш у своего провайдера "выделенный айпи адрес"?
друг итак не в локалке а из другово города но всёравно охото поиграть и кстати игра по типу клиент клиент а как клиент сервер сделать я даже себе не представляю
|
(Offline)
|
|
14.05.2012, 11:38
|
#18
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Отдаю свою "типо игру" ))
Сообщение от tirarex
друг итак не в локалке а из другово города но всёравно охото поиграть и кстати игра по типу клиент клиент а как клиент сервер сделать я даже себе не представляю
|
1. У тебя явно нет "внешнего" айпи адреса, можеш попробовать пошаманить через программу Hamachi, она создает локальную сеть из тех кто к ней подключается...
2. Ну ты говориш: клиент-клиент... в данном случае сервером является тот к кому подключаются... Ну, а вообще, рассмотрим пример моей игры, у меня сервер выполняет функции логин сервера, потом проссчитует движения игроков (и многого другово) параллельно с клиентом и отсылает пакеты синхронизации примерно 2 раза в секунду, чтобы все игроки видели примерно одну и туже картину, потом еще, все переменные, на каких можно "жульничать" надо рассчитывать либо только на сервере, либо проссчитывать "четко" на клиенте и параллельно "упрощенно" на сервере и синхронизировать результат.
П.с. Кто несогласен может выдвинуть свои выводы.
И вообще, если ты задаеш вопросы просто по поводу сетевой составляющей игры, лучше бы ты создал другую тему, ато имхо оффтоп вроде не приветствуется
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:44.
|