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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 05.12.2010, 19:09   #1
Diffuse13
Нуждающийся
 
Аватар для Diffuse13
 
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений
(для 4 пользователей)
Вопрос Помогите найти ошипко

Клиент:
 Graphics3D 640,480,32,2
SetBuffer BackBuffer()
Global stream=CreateUDPStream(448)
Global stream2=CreateUDPStream(49170)
Global cam
Global my_entity
Global my_ip
Global my_x#
Global my_y#
Global my_z#
Global server_order$
Global main_order#=-1
Global order$

Type player
 Field entity
 Field ip
 Field command
 Field class
 Field weapon
 Field x
 Field y
 Field z
 Field pitch
 Field yaw
 Field roll
End Type

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\menu
Function Main_Menu()

 Print "1.Myltiplayer"
 Print "2.Exit"
 main_menu_select#=Input("Press 1 or 2...")
 Select main_menu_select
 Case 1
 Multiplayer_Menu()
 Cls
 Case 2
 End
 Default
 End Select
End Function

Function Multiplayer_Menu()
 Print "1.Join server"
 Print "2.Exit"
 multiplayer_menu_select#=Input("Press 1 or 2...")
 Select multiplayer_menu_select
 Case 1
 join("127.0.0.1")
 Cls
 Case 2
 End
 Default
 End Select
End Function


;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\playter



Function Upd_my_player()
 If KeyDown(200) MoveEntity my_entity,0,0,.1
 If KeyDown(208) MoveEntity my_entity,0,0,-.1
 If KeyDown(203) MoveEntity my_entity,-.1,0,0
 If KeyDown(205) MoveEntity my_entity,.1,0,0
 my_x#=EntityX(my_entity)
 my_y#=EntityY(my_entity)
 my_z#=EntityZ(my_entity)
End Function
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\i-met


Function Upd_network()
End Function


Function Join(ipadress$)
main_order#=0
order$="join..."
WriteLine stream,order$
WriteLine stream,my_ip
ip=Int_IP(ipadress$)
SendUDPMsg stream,ip,53424
If RecvUDPMsg(stream2) Then
 map$=ReadLine$(stream2)
 country$=ReadLine$(stream2)
 If map$=True And country$=True Then Connect()
EndIf
End Function





Function Connect()
main_order#=1
order$="connecting..."
WriteLine stream,order$
WriteLine stream,my_ip
SendUDPMsg stream,ip,53424
order$="connecting end"
WriteLine stream,order$
 If RecvUDPMsg(stream2) Then
  server_order$=ReadLine$(stream2)
   If server_order$="OK!" Then
    Multiplayer_Game
   EndIf
 EndIf 
End Function


Function Multiplayer_Game()
main_order#=2
user.player=New player
user\ip=GetMyIP()
user\entity=CreateCube()
my_entity=user\entity
my_ip=user\ip
cam=CreateCamera(my_entity)
PositionEntity cam,0,2,-5
End Function

Function Int_IP(IP$)
  d1%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
  d2%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
  d3%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
  d4%=IP$
 Return (d1 Shl 24) + (d2 Shl 16) + (d3 Shl 8 ) +d4
End Function



Function GetMyIP$()
    Return DottedIP$(HostIP(CountHostIPs("")))
End Function



Main_Menu()

While KeyHit(1)=0
Select main_order#
Case 0
  Join("127.0.0.1")
 Case 1
  Connect()
 Case 2
  Upd_my_player()
Text 100,100,""+my_x#+""+my_z#
 Default
End Select
 

RenderWorld()

Flip
Wend
End
Сервер:
Global stream2=CreateUDPStream(49170)
Global map$
Global country$
Global status

Type Player
Field ip
Field command
Field class
Field weapon
Field x
Field y
Field z
Field pitch
Field yaw
Field roll
End Type
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\server
Function Create_Server()
map$=Input("Choose map...")
county$=Input("Choose country...")

End Function


Function UpdateNetwork()

  If RecvUDPMsg(stream2) Then
   order$=ReadLine$(stream2)
 
    If order$="join..." Then
     p.Player=New Player
      p\ip=Int_IP(ReadLine$(stream2))
     WriteLine stream,map$
     WriteLine stream,country$
     SendUDPMsg stream,p\ip,49170

    ElseIf order="conecting..." Then

    ElseIf order$="connecting end" Then
    For p.player=Each player
    status="OK!"
    WriteLine stream,status
    SendUDPMsg stream,p\ip,49170 
    Next

    ElseIf order="game..." Then
     For p.player=Each player
      p\command=ReadFloat(stream2)
      p\class=ReadFloat(stream2)
      p\weapon=ReadFloat(stream2)
      p\x=ReadFloat(stream2)
      p\y=ReadFloat(stream2)
      p\z=ReadFloat(stream2)
      p\pitch=ReadFloat(stream2)
      p\yaw=ReadFloat(stream2)
      p\roll=ReadFloat(stream2)
     Next
    EndIf
 EndIf

End Function

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\IP

Function Int_IP(IP$)
    d1%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
    d2%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
    d3%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
    d4%=IP$
    Return (d1 Shl 24) + (d2 Shl 16) + (d3 Shl 8 ) +d4
End Function



Create_Server()


;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\WHILE
While Not KeyDown(1)
        Cls
        For p.Player=Each Player
        Locate 5,5
        Print DottedIP$(p\ip)
        Next 
        UpdateNetwork()
Wend
При включеном сервере в клиенте(при включении) не создается stream.
(Offline)
 
Ответить с цитированием
Старый 05.12.2010, 20:42   #2
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: Помогите найти ошипко

Разные порты забинди
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Diffuse13 (06.12.2010)
Старый 06.12.2010, 17:38   #3
Diffuse13
Нуждающийся
 
Аватар для Diffuse13
 
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Помогите найти ошипко

О да! Но почемуто не создается эта часть кода!
Function Multiplayer_Game()
main_order#=2
user.player=New player
user\ip=GetMyIP()
user\entity=CreateCube()
my_entity=user\entity
my_ip=user\ip
cam=CreateCamera(my_entity)
PositionEntity cam,0,2,-5
End Function
(Offline)
 
Ответить с цитированием
Старый 06.12.2010, 18:00   #4
GoddoG
Оператор ЭВМ
 
Регистрация: 13.08.2009
Сообщений: 22
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите найти ошипко

А что эта функция делает? или должна делать по твоему?
(Offline)
 
Ответить с цитированием
Старый 06.12.2010, 18:15   #5
Diffuse13
Нуждающийся
 
Аватар для Diffuse13
 
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Помогите найти ошипко

Создает Меня! Ну моего игрока!
(Offline)
 
Ответить с цитированием
Старый 06.12.2010, 18:49   #6
GoddoG
Оператор ЭВМ
 
Регистрация: 13.08.2009
Сообщений: 22
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите найти ошипко

Ты вот создал бессмысленный Type и Function которая не может себя исполнить потому что не знает что ей делать, ты сам себя запутал, и я не магу понять по какому принципу ты кодишь.

Ты можешь построчно объяснить, что делает каждая строка этой функции?
(Offline)
 
Ответить с цитированием
Старый 06.12.2010, 18:54   #7
Diffuse13
Нуждающийся
 
Аватар для Diffuse13
 
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Помогите найти ошипко

Есть продвижения! Я создал отладочные записи!
И вот в клиенте-
Function Join(ipadress$)
DebugLog "Поиск"
main_order#=0
order$="join..."
WriteLine stream,order$
WriteLine stream,my_ip
ip=Int_IP(ipadress$)
SendUDPMsg stream,ip,53424
If RecvUDPMsg(stream2) Then
 map$=ReadLine$(stream2)
 country$=ReadLine$(stream2)
 If map$=True And country$=True Then Connect()
EndIf
End Function
Дальше поиска не уходит!
Значит:
If RecvUDPMsg(stream2) Then
 map$=ReadLine$(stream2)
 country$=ReadLine$(stream2)
 If map$=True And country$=True Then Connect()
Не пашет. А это значит что не выполняется в сервере:
  If RecvUDPMsg(stream2) Then
   order$=ReadLine$(stream2)
 
    If order$="join..." Then
DebugLog "Поиск"
     p.Player=New Player
      p\ip=Int_IP(ReadLine$(stream2))
     WriteLine stream,map$
     WriteLine stream,country$
     SendUDPMsg stream,p\ip,49170

Ну так вот, дальше разобрался:
Влиент:
Function Join(ipadress$)
DebugLog "Поиск"
main_order#=0
order$="join..."
ip=Int_IP(ipadress$)
my_ip#=GetMyIP()
WriteLine stream,order$
WriteLine stream,my_ip#
SendUDPMsg stream,ip,58001
If RecvUDPMsg(stream2) Then
 map$=ReadLine$(stream2)
 country$=ReadLine$(stream2)
 If map$=True And country$=True Then Connect()
EndIf
End Function
Сервер:
  If RecvUDPMsg(stream2) Then
   order$=ReadLine$(stream2)
 
    If order$="join..." Then
DebugLog "Поиск"
     p.Player=New Player
      p\ip=Int_IP(ReadLine$(stream2))
     WriteLine stream,map$
     WriteLine stream,country$
     SendUDPMsg stream,p\ip,59265
Выделенная строчка-не может расшивровать мой IP
Функция расшифровки:
Function Int_IP(IP$)
d1%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
d2%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) ;(ошипка!!!)
d3%=Left(IP$,Instr(IP$,".")-1):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
d4%=IP$
Return (d1 Shl 24) + (d2 Shl 16) + (d3 Shl 8 ) +d4
End Function
(Offline)
 
Ответить с цитированием
Старый 07.12.2010, 12:21   #8
Diffuse13
Нуждающийся
 
Аватар для Diffuse13
 
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Помогите найти ошипко

Все, разобрался! Спасибо всем!
(Offline)
 
Ответить с цитированием
Старый 27.12.2010, 14:21   #9
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Помогите найти ошипко

Пишешь для вдохновения?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Program23 (27.12.2010)
Старый 27.12.2010, 15:34   #10
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Помогите найти ошипко

Синдром Батона:
Вести неведомую хуйнюблог в общественных местах с целью показать свой несравненный гений и т.д.
[20.12.2010 18:24:29] Baton4ik: Кстати, шкуры на сушилке тоже остались
[20.12.2010 18:24:34] Baton4ik: Так 3 дня и провисели
[20.12.2010 18:24:50] Baton4ik: о
[20.12.2010 18:24:53] Baton4ik: Закончилась еда
[20.12.2010 18:24:58] Baton4ik: Долго шёл по лесу
[20.12.2010 18:25:10] Baton4ik: Наконец-то поймал зайца и 4рёх крыс
[20.12.2010 18:25:19] Baton4ik: го ко мне
[20.12.2010 18:25:24] Baton4ik: о
[20.12.2010 18:25:25] Baton4ik: курочки
[22.12.2010 15:54:26] Baton4ik: блин
[22.12.2010 15:54:35] Baton4ik: мне писать ман-работу на пятницу
[22.12.2010 15:54:56] Baton4ik: А написать надо
[22.12.2010 15:54:59] Baton4ik: Столько сделано
[22.12.2010 15:55:02] Baton4ik: Опросы
[22.12.2010 15:55:14] Baton4ik: Проведённый мною урок с робокотом
[22.12.2010 15:57:44] reks888: когда ты уже запомнишь что мне похуй?
[22.12.2010 15:58:14] Baton4ik: Я помню
[22.12.2010 15:58:25] Baton4ik: А вот ты
[22.12.2010 15:58:40] Baton4ik: Когда уже запомнишь, что мне похуй на то, что похуй тебе?
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Reks888 за это полезное сообщение:
Android (29.12.2010), Arton (08.05.2016), Dream (27.12.2010), Program23 (27.12.2010)
Старый 27.12.2010, 16:07   #11
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Помогите найти ошипко

перенеси в ICQ
(Offline)
 
Ответить с цитированием
Старый 29.12.2010, 15:03   #12
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Помогите найти ошипко

Сообщение от Reks888 Посмотреть сообщение
Синдром Батона:
Вести неведомую хуйнюблог в общественных местах с целью показать свой несравненный гений и т.д.
Ещё один.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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