|
3D-программирование Вопросы, касающиеся программирования 3D мира |
05.12.2010, 19:09
|
#1
|
Нуждающийся
Регистрация: 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
|
Знающий
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений (для 257 пользователей)
|
Ответ: Помогите найти ошипко
Разные порты забинди
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.12.2010, 17:38
|
#3
|
Нуждающийся
Регистрация: 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
|
Оператор ЭВМ
Регистрация: 13.08.2009
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите найти ошипко
А что эта функция делает? или должна делать по твоему?
|
(Offline)
|
|
06.12.2010, 18:15
|
#5
|
Нуждающийся
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений (для 4 пользователей)
|
Ответ: Помогите найти ошипко
Создает Меня! Ну моего игрока!
|
(Offline)
|
|
06.12.2010, 18:49
|
#6
|
Оператор ЭВМ
Регистрация: 13.08.2009
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите найти ошипко
Ты вот создал бессмысленный Type и Function которая не может себя исполнить потому что не знает что ей делать, ты сам себя запутал, и я не магу понять по какому принципу ты кодишь.
Ты можешь построчно объяснить, что делает каждая строка этой функции?
|
(Offline)
|
|
06.12.2010, 18:54
|
#7
|
Нуждающийся
Регистрация: 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
|
Нуждающийся
Регистрация: 12.11.2010
Адрес: Нашли чо спросить
Сообщений: 51
Написано 3 полезных сообщений (для 4 пользователей)
|
Ответ: Помогите найти ошипко
Все, разобрался! Спасибо всем!
|
(Offline)
|
|
27.12.2010, 14:21
|
#9
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Помогите найти ошипко
Пишешь для вдохновения?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2010, 15:34
|
#10
|
Дэвелопер
Регистрация: 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: Когда уже запомнишь, что мне похуй на то, что похуй тебе?
|
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо Reks888 за это полезное сообщение:
|
|
27.12.2010, 16:07
|
#11
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Помогите найти ошипко
|
(Offline)
|
|
29.12.2010, 15:03
|
#12
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Помогите найти ошипко
Сообщение от Reks888
Синдром Батона:
Вести неведомую хуйнюблог в общественных местах с целью показать свой несравненный гений и т.д.
|
Ещё один.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:13.
|