|
11.01.2008, 18:18
|
#31
|
Нуждающийся
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
ошубку понял спс =)
а если всыстрелы мутить то это же надо не тупо шот писать и еще через поток дабавлять ?
и последнее плиз как можно его чутка оптимизировать што б не так сильено лаголо я знаю што надоел ну ...
|
(Offline)
|
|
11.01.2008, 18:22
|
#32
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: коллизии в дерект плей
код в студию.
ПИШИ ВСЕ В ОДНОМ СООБЩЕНИИ !!
на крайняк есть кнопка "правка"
|
(Offline)
|
|
11.01.2008, 18:27
|
#33
|
Нуждающийся
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Re: коллизии в дерект плей
Type Player
Field name$,id,ent,GRAVITY#
End Type
Global cam
Global myent
Global myid
Global myname$
Global GRAVITY#=-3
Include "E:\AB8A~1\1570~1\-9955~1\Data\script\26C9~1.TXT"
SetBuffer BackBuffer()
Const Typeplayer = 1, TypeWall = 2
terrain=LoadMesh ("E:\AB8A~1\1570~1\-9955~1\7056~1\DATAFA~1\maps\3ADA~1.B3D")
EntityType terrain,TypeWall
jng=JoinNetGame("World Arena","127.0.0.1")
p.Player=New Player
p\name=Input("Enter your name:")
p\id=CreateNetPlayer(p\name)
p\ent=CreateCube()
myname=p\name
myid=p\id
myent=p\ent
EntityRadius myent, 20
EntityType myent, TypePlayer
cam=CreateCamera(myent)
PositionEntity cam, 0,5,-20
EntityRadius cam, 10
CameraClsColor Cam,10,10,50
CameraRange cam,1,250000
Collisions Typeplayer, TypeWall, 2, 3
While Not KeyHit(1)
UpdatePlayer()
UpdateNetwork()
UpdateWorld
RenderWorld
Flip
Wend
Function UpdatePlayer()
If KeyDown(17) MoveEntity myent,0,0,10
If KeyDown(31) MoveEntity myent,0,0,-10
If KeyDown(30) TurnEntity myent,0,1,0
If KeyDown(32) TurnEntity myent,0,-1,0
TranslateEntity myent,0,gravity#,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$())
End Select
Wend
End Function
Function FindPlayer.Player( id )
For p.Player=Each Player
TranslateEntity p\ent,0,gravity#,0
If p\id=id Then Return p
Next
End Function
Function PackMsg$(ent)
Return EntityX(ent)+"|"+EntityZ(ent)+"|"+EntityYaw(ent)+"|"+EntityY(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)
yawp=Instr(dat$,"|")
yaw=Float(Left(dat$,yawp))
dat$=Right(dat$,Len(dat$)-yawp)
y=Float(dat$)
PositionEntity ent,x,y,z
RotateEntity ent,0,yaw,0
ScaleEntity ent,5,5,5
End Function
Последний раз редактировалось HolyDel, 11.01.2008 в 18:52.
|
(Offline)
|
|
11.01.2008, 18:51
|
#34
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: коллизии в дерект плей
Type Player
Field name$,id,ent,GRAVITY#
End Type
Dim ps$(16) ; Для системы парсинга
Global cam
Global myent
Global myid
Global myname$
Global GRAVITY#=-3
const size#=10 ;Чем больше - тем больше игрок (должно быть больше нуля)
Include "E:\AB8A~1\1570~1\-9955~1\Data\script\26C9~1.TXT"
SetBuffer BackBuffer()
Const Typeplayer = 1, TypeWall = 2
terrain=LoadMesh ("E:\AB8A~1\1570~1\-9955~1\7056~1\DATAFA~1\maps\3ADA~1.B3D")
EntityType terrain,TypeWall
jng=JoinNetGame("World Arena","127.0.0.1")
p.Player=New Player
p\name=Input("Enter your name:")
p\id=CreateNetPlayer(p\name)
p\ent=CreateCube()
scaleentity p\ent,size,size,size
myname=p\name
myid=p\id
myent=p\ent
EntityRadius myent, 20
EntityType myent, TypePlayer
cam=CreateCamera(myent)
scaleentity cam,1.0/size,1.0/size,1.0/size
PositionEntity cam, 0,5,-20
EntityRadius cam, 10
CameraClsColor Cam,10,10,50
CameraRange cam,1,250000
Collisions Typeplayer, TypeWall, 2, 3
While Not KeyHit(1)
UpdatePlayer()
UpdateNetwork()
UpdateWorld
RenderWorld
Flip
Wend
Function UpdatePlayer()
If KeyDown(17) MoveEntity myent,0,0,10
If KeyDown(31) MoveEntity myent,0,0,-10
If KeyDown(30) TurnEntity myent,0,1,0
If KeyDown(32) TurnEntity myent,0,-1,0
TranslateEntity myent,0,gravity#,0
SendNetMsg 2,PackMsg$(myent),myid,0,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$())
End Select
Wend
End Function
Function FindPlayer.Player( id )
For p.Player=Each Player
TranslateEntity p\ent,0,GRAVITY#,0
If p\id=id Then Return p
Next
End Function
Function PackMsg$(ent)
Return EntityX(ent)+":"+EntityZ(ent)+":"+EntityYaw(ent)+":"+EntityY(ent)
End Function
Function UnpackMsg(ent,dat$)
parse(dat)
PositionEntity ent,float(ps(1)),float(ps(2)),float(ps(4))
RotateEntity ent,0,float(ps(3)),0
End Function
;Функция парсит строку
Function parse(st$)
For i=0 To 16
ps(i)=""
Next
c=1
For i=1 To Len(st)
If Mid(st,i,1)=":" Then c=c+1 Else ps(c)=ps(c)+Mid(st,i,1)
Next
Return c
End Function
попробуй так
|
(Offline)
|
|
11.01.2008, 18:59
|
#35
|
Нуждающийся
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
холи дей респек офигеный ты бы мне еще показал 2 вещи как сделать штоб над ними гик был и стрельба и описал помаги я на недельку кот всеь изучать помаги чайнику =(
страно в тваем коде когда конекчусь сак к себе жалуется на p.Player=New Player
Последний раз редактировалось Diplomat, 11.01.2008 в 19:12.
|
(Offline)
|
|
11.01.2008, 19:35
|
#36
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: коллизии в дерект плей
HolyDel
Ты просто святой
Жаль все усилия впустую - ему азы нужно изучать. Синтаксис, приемы, отладка.
А он на такое сложнейшее дело замахнулся.
__________________
|
(Offline)
|
|
11.01.2008, 20:17
|
#37
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: коллизии в дерект плей
не щас Серег, у меня дофига дел, надо делать свой проект.
вот здесь:
http://likosoft.ucoz.ru/load/23-1-0-41
есть все, и высвечивающийся ник над головой, и подсоединение хитрым способом, и оружие и смерть, и даже кипящая лава. качай и разбирайся.
tormoz(lucky), угу, наверное на самом деле впустую, но может хоть кому то будет полезно.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1000 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
|
(Offline)
|
|
11.01.2008, 20:31
|
#38
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: коллизии в дерект плей
сергей, пожалей мосх людей Ты сам то можешь прочитать то, что написал?
|
(Offline)
|
|
11.01.2008, 21:02
|
#39
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: коллизии в дерект плей
конечно ввести ф-ии, типа
GetNextValue(str$) можно было бы.
|
это и будет верхом - а внизу циклы.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
11.01.2008, 21:46
|
#40
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: коллизии в дерект плей
какие циклы?
мы получаем разные значения.
так чтоли?
done=0
i=0
while not done
i=i+1
select i
case 1
x=val
case 2
y=val
case 3
z=val
case 4
yaw=val
end select
каким то макаром опрделим все или нет
wend
positioenntity ent,x,y,z
roatateentity ent,0,yaw,0
имхо некрасиво и смешно
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:45.
|