Re: Грузить модели по ходу игры
Вот выкладываю свой код смены и т.д оружия!
Код:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Type Shot
Field alpha#,num
End Type
;камера
cam=CreateCamera ()
;Пистолет МАКАРОВА
gun1=LoadAnimMesh("weapons\pm\model.b3d")
PositionEntity gun1,0,-10,0
ScaleEntity gun1,.5,.5,.5
RotateEntity gun1,-90,0,-180
LoadAnimSeq gun1, "weapons\pm\idle.b3d"
LoadAnimSeq gun1, "weapons\pm\shot.b3d"
LoadAnimSeq gun1, "weapons\pm\reload.b3d"
Animate gun1, 1,.3, 1
EntityParent gun1,cam
;Пистолет КОЛЬТ
gun2=LoadAnimMesh("weapons\colt\model.b3d")
PositionEntity gun2,0,-10,0
ScaleEntity gun2,.5,.5,.5
RotateEntity gun2,-90,0,-180
LoadAnimSeq gun2, "weapons\colt\idle.b3d"
LoadAnimSeq gun2, "weapons\colt\shot.b3d"
LoadAnimSeq gun2, "weapons\colt\reload.b3d"
Animate gun2, 1,.3, 1
EntityParent gun2,cam
;AK 47
gun3=LoadAnimMesh("weapons\ak74\model.b3d")
PositionEntity gun3,0,-10,0
ScaleEntity gun3,.5,.5,.5
RotateEntity gun3,-90,0,-180
LoadAnimSeq gun3, "weapons\ak74\idle.b3d"
LoadAnimSeq gun3, "weapons\ak74\shot.b3d"
LoadAnimSeq gun3, "weapons\ak74\reload.b3d"
Animate gun3, 1,.3, 1
HideEntity gun3
HideEntity gun3
HideEntity gun3
EntityParent gun3,cam
;Наличие оруий у игрока
gun1_pickup=1
gun2_pickup=1
gun3_pickup=1
;каоличество патронов у оружий
gun1_patron=42
gun2_patron=20
gun3_patron=96
;Патронов в обойме у оружий
gun1_magazin=12
gun2_magazin=8
gun3_magazin=30
;звуки
pistol_shot=LoadSound("shot.ogg")
reload=LoadSound("reload.ogg")
;необходимая переменная
relaod_delay_gun1=0
relaod_delay_gun2=0
relaod_delay_gun3=0
;ВЫбранное оружие
gun_select=1
While Not KeyHit(1)
MHIT=MouseHit(1)
RELOAD_KEY=KeyHit(19)
MDOWN=MouseDown(1)
;апдейт огонька
For s.shot =Each shot
s\alpha#=s\alpha#=-.001
EntityAlpha s\num,s\alpha#
If s\alpha#=<0 Then
FreeEntity s\num :Delete s
EndIf
Next
;Востановление анимации дыхания!!!
If relaod_delay_gun1=0 And relaod_delay_gun2=0 And relaod_delay_gun3=0 Then player_dblxanie=player_dblxanie+1
If player_dblxanie=>200 Then player_dblxanie=1
If player_dblxanie=190 Then Animate gun1, 1,.3, 1
If player_dblxanie=190 Then Animate gun2, 1,.3, 1
If player_dblxanie=190 Then Animate gun3, 1,.3, 1
If relaod_delay_gun1>0 Then relaod_delay_gun1=relaod_delay_gun1-1
If relaod_delay_gun2>0 Then relaod_delay_gun2=relaod_delay_gun2-1
If relaod_delay_gun3>0 Then relaod_delay_gun3=relaod_delay_gun3-1
;АПДЕЙТ ПИСТОЛЕТА(GUN1)//////////////////////////////
;перезарядка пистолета
If gun_select=1 And gun1_patron>0 And gun1_magazin=0 And RELOAD_KEY=1 And gun1_pickup=1 Then
If gun1_patron>12 Then gun1_magazin=12
If gun1_patron<12 Then
gun1_magazin=gun1_patron
gun1_patron=0
EndIf
PlaySound reload
Animate gun1, 3,.65,3
relaod_delay_gun1=140
EndIf
;стрельба из пистолета
If gun_select=1 And MHIT=1 And gun1_magazin>0 And gun1_pickup=1 And relaod_delay_gun1=0 Then
If gun1_patron>0 Then gun1_patron=gun1_patron-1
gun1_magazin=gun1_magazin-1
PlaySound pistol_shot
Animate gun1, 3,1, 2
;огонек у писотлета
s.shot = New shot
s\num=LoadSprite ("shot.jpg",1)
PositionEntity s\num,-12,-20,88
ScaleSprite s\num,20,20
RotateSprite s\num,Rnd(360)
s\alpha#=.6
EndIf
;АПДЕЙТ ПИСТОЛЕТА(GUN1)//////////////////////////////
;АПДЕЙТ ПИСТОЛЕТА(GUN2)//////////////////////////////
;перезарядка пистолета
If gun_select=2 And gun2_patron>0 And gun2_magazin=0 And RELOAD_KEY=1 And gun2_pickup=1 Then
If gun2_patron>8 Then gun2_magazin=8
If gun2_patron<8 Then
gun2_magazin=gun2_patron
gun2_patron=0
EndIf
PlaySound reload
Animate gun2, 3,.65,3
relaod_delay_gun2=110
EndIf
;стрельба из пистолета
If gun_select=2 And MHIT=1 And gun2_magazin>0 And gun2_pickup=1 And relaod_delay_gun2=0 Then
If gun2_patron>0 Then gun2_patron=gun2_patron-1
gun2_magazin=gun2_magazin-1
PlaySound pistol_shot
Animate gun2, 3,1, 2
;огонек у писотлета
s.shot = New shot
s\num=LoadSprite ("shot.jpg",1)
PositionEntity s\num,-12,-20,88
ScaleSprite s\num,20,20
RotateSprite s\num,Rnd(360)
EntityParent s\num,cam
s\alpha#=.6
EndIf
;АПДЕЙТ ПИСТОЛЕТА(GUN2)//////////////////////////////
;АПДЕЙТ АВТОМАТА(GUN3)//////////////////////////////
;ZOOM(ПРИКОЛ)!!!!!
gun3_zoom=0
gun3_zoom=MouseDown(2)
If gun_select=3 And gun3_zoom=1 Then PositionEntity gun3,5.5,-.25,-11
If gun_select=3 And gun3_zoom=0 Then PositionEntity gun3,0,-10,0
;необходимо для звука(чтоб не зациклевался)
GUN3_LOOPSOUND=GUN3_LOOPSOUND+1
If GUN3_LOOPSOUND>8 Then GUN3_LOOPSOUND=1
;перезарядка автомата
If gun_select=3 And gun3_patron>0 And gun3_magazin=0 And RELOAD_KEY=1 And gun3_pickup=1 Then
If gun3_patron>30 Then gun3_magazin=30
If gun3_patron<30 Then
gun3_magazin=gun3_patron
gun3_patron=0
EndIf
PlaySound reload
Animate gun3, 3,.55,3
relaod_delay_gun3=190
EndIf
;стрельба из автомата
If gun_select=3 And MDOWN=1 And GUN3_LOOPSOUND=1 And gun3_magazin>0 And gun3_pickup=1 And relaod_delay_gun3=0 Then
If gun3_patron>0 Then gun3_patron=gun3_patron-1
gun3_magazin=gun3_magazin-1
PlaySound pistol_shot
Animate gun3, 3,1, 2
;огонек у автомата
s.shot = New shot
s\num=LoadSprite ("shot.jpg",1)
PositionEntity s\num,-7,-19,88
ScaleSprite s\num,30,30
RotateSprite s\num,Rnd(360)
EntityParent s\num,cam
s\alpha#=.6
EndIf
;АПДЕЙТ АВТОМАТА(GUN3)//////////////////////////////
;Смена оружий
If gun_select=1 And gun1_pickup=1 Then
ShowEntity gun1
HideEntity gun2
HideEntity gun3
EndIf
If gun_select=2And gun2_pickup=1 Then
ShowEntity gun2
HideEntity gun1
HideEntity gun3
EndIf
If gun_select=3And gun3_pickup=1 Then
ShowEntity gun3
HideEntity gun1
HideEntity gun2
EndIf
If KeyHit(2)=1 Then gun_select=1
If KeyHit(3)=1 Then gun_select=2
If KeyHit(4)=1 Then gun_select=3
If KeyDown( 205 )=True Then TurnEntity cam,0,-1,0
If KeyDown( 203 )=True Then TurnEntity cam,0,1,0
If KeyDown( 208 )=True Then MoveEntity cam,0,0,-0.05
If KeyDown( 200 )=True Then MoveEntity cam,0,0,0.05
UpdateWorld
RenderWorld
;ТЕКСТ
If gun_select=1 Then Text 10,500,"выбранное оружие: МАКАРОВ"
If gun_select=1 Then
Text 10,530,"патронов:"+gun1_magazin+"/"+gun1_patron
EndIf
If gun_select=2 Then Text 10,500,"выбранное оружие: КОЛЬТ"
If gun_select=2 Then
Text 10,530,"патронов:"+gun2_magazin+"/"+gun2_patron
EndIf
If gun_select=3 Then Text 10,500,"выбранное оружие: КАЛАШ"
If gun_select=3 Then
Text 10,530,"патронов:"+gun3_magazin+"/"+gun3_patron
EndIf
Text 270,260,"Weapon module special for project - ЗОНА ОТЧУЖДЕНИЯ"
Flip
Wend
|