Тема: Лифт
Показать сообщение отдельно
Старый 25.06.2011, 23:41   #8
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Лифт

Type lift
Field x%,y%,z%
Field ent
Field size#
Field spd#
Field maxh
End Type

Function createlift(x,y,z,size,spd#,maxh)
li.lift = New lift
li\x=x
li\y=y
li\z=z
li\ent=CreateCube()

li\size=size
li\size=size
ScaleEntity li\ent,li\size,.1,li\size
PositionEntity li\ent,x,y,z,1
li\spd=spd
li\maxh=maxh

End Function


TheLift = createlift(20,1,20,8,.1,10)

цикл


For li.lift = Each lift
If EntityY(li\ent,1)=>li\maxh
li\spd=-li\spd
EndIf
If EntityY(li\ent,1)=<0
li\spd=-li\spd
EndIf


If EntityX(player,1)<EntityX(li\ent,1)+li\size And EntityX(player,1)>EntityX(li\ent,1)-li\size And EntityZ(player,1)<EntityZ(li\ent,1)+li\size And EntityZ(player,1)>EntityZ(li\ent,1)-li\size

If EntityY(player,1)=> EntityY(li\ent) And EntityY(player,1)=< EntityY(li\ent)+8
;TranslateEntity player,0,li\spd*2,0,1
PositionEntity player,EntityX(player,1),EntityY(li\ent)+8,EntityZ (player,1),1
EndIf

EndIf

TranslateEntity li\ent,0,li\spd,0,1


Next
Попробуй вот так, например. Блицевые коллизии это отстой - не пользуй их.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо NitE за это полезное сообщение:
Angel_Online (06.07.2011), Crayzi (26.06.2011), Gector (25.06.2011)