Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 13.05.2012, 11:27   #16
Crayzi
ПроЭктировщик
 
Регистрация: 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
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Отдаю свою "типо игру" ))

[quote=Crayzi;227899]1. Твой друг не находится в твоей локальной сети?
Если нет, то из этого:
2. Ты заказываеш у своего провайдера "выделенный айпи адрес"?

друг итак не в локалке а из другово города но всёравно охото поиграть и кстати игра по типу клиент клиент а как клиент сервер сделать я даже себе не представляю
(Offline)
 
Ответить с цитированием
Старый 14.05.2012, 11:38   #18
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Отдаю свою "типо игру" ))

Сообщение от tirarex Посмотреть сообщение
друг итак не в локалке а из другово города но всёравно охото поиграть и кстати игра по типу клиент клиент а как клиент сервер сделать я даже себе не представляю
1. У тебя явно нет "внешнего" айпи адреса, можеш попробовать пошаманить через программу Hamachi, она создает локальную сеть из тех кто к ней подключается...
2. Ну ты говориш: клиент-клиент... в данном случае сервером является тот к кому подключаются... Ну, а вообще, рассмотрим пример моей игры, у меня сервер выполняет функции логин сервера, потом проссчитует движения игроков (и многого другово) параллельно с клиентом и отсылает пакеты синхронизации примерно 2 раза в секунду, чтобы все игроки видели примерно одну и туже картину, потом еще, все переменные, на каких можно "жульничать" надо рассчитывать либо только на сервере, либо проссчитывать "четко" на клиенте и параллельно "упрощенно" на сервере и синхронизировать результат.
П.с. Кто несогласен может выдвинуть свои выводы.

И вообще, если ты задаеш вопросы просто по поводу сетевой составляющей игры, лучше бы ты создал другую тему, ато имхо оффтоп вроде не приветствуется
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com