Показать сообщение отдельно
Старый 08.07.2015, 12:05   #100
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Сообщение от softcrasoft Посмотреть сообщение
если верно то, что я не перемещался блин. так понятно? я не нууууууууб. а вы просто сооброжалку включите
У меня в отличии от тебя соображалка включена
Держи, надеюсь разберешься, целый шутер от первого лица
HidePointer
Global weapon,weapon_1,xw#,yw#,zw#,rxw#,ryw#,zyw#
Global camera
Global player,mxs,mys,grav#,y_cam
Global run,runChannel ,running#
Const  playertype=1,TypePol=2,TypeStena=3,TypeTons=4,TypeBalke=5,TypeLuk=5,TypeBox=6,TypeCar=7
Global fire_01,car

Global zs#,zo#
Global x_weapon#,y_weapon#,z_weapon#,rx_weapon#,ry_weapon#,rz_weapon#
Global Not_fire

Type Obj_Data
    Field handler            
    Field Name
$                
    
Field key$[8]            
    
Field value$[8]            
    
Field rawdata$[16]        
End Type

Type OutFlare 
    Field sprite
    Field flare
    Field time_out
    Field TimeTolive
End Type


Global fl


Graphics3D 1024
,768,32,2

SetBuffer BackBuffer
()
Global 
gfxCross LoadImage("models\gfx\cross.bmp")
CreatePlayer()
UpdateCollisions()

sky=LoadSkyBox("sky\")

level=LoadAnimMesh("
models\scene.b3d")
RotateEntity level,180,0,0
ScaleEntity level,0.2,0.2,0.2
RecurseSeek(level)
Global flare_weapon=LoadSprite("
shot.jpg")

bool=LoadAnimMesh("
bool.b3d")
PositionEntity bool,0,0,-240
box_1=FindChild(bool,"
box")
EntityType box_1,TypeBox,1
LoadWeapon_1()
InitSounds()

car=CreateCube()
PositionEntity car,0,40,-30
ScaleEntity car,18,3,7
EntityType car,TypeCar
Patron=20
CarTrue=0

Global PlayerID
PlayerID=1


Repeat


PositionEntity sky,EntityX(player),EntityY(player),EntityZ(player)

pick=CameraPick (camera,mx,my)


If Patron>0
If MouseDown(1)
If MilliSecs()> time+200
time=MilliSecs()
CreateFlareOut(weapon,flare_weapon,50)
Patron=Patron-1
PlaySound (fire_01)
   If Not lModeShoot
     Animate weapon, 1,1,2
   EndIf
   lModeShoot = True
Else
   If lModeShoot
     Animate weapon, 1,1,1
     lModeShoot = False
  EndIf    
EndIf
EndIf
EndIf
If MouseDown(1)
If MilliSecs()> time+500
time=MilliSecs()
If Patron<1
Animate weapon,3,1
PlaySound Not_fire
EndIf
EndIf
EndIf
;-----------------------------------------------------------

UpdateFlareOut()

;___________________________________

If EntityDistance(player,car)<30
If KeyDown(33)

EntityParent player,car

CarTrue=1
PlayerID=0
EndIf
EndIf

If CarTrue=1
If KeyDown(17) MoveEntity car,1,0,0
If KeyDown(31) MoveEntity car,-1,0,0

EndIf

UpdatePlayer()
FlushMouse()



UpdateWorld()
RenderWorld()
DrawImage(gfxCross, GraphicsWidth()/2-16, GraphicsHeight()/2-16 )

If EntityDistance(player,bool)<30
Text 10,10,"
??????? ???? ????? ???????!"
If KeyHit(18)
Animate bool,3,1
Patron=+40
EndIf
EndIf

Text 10,GraphicsHeight()-50,"
???????::"+Patron

Flip 

Until KeyHit(1)


End



Include "
loader\scm.BB"

Function CreatePlayer()
        player=CreatePivot() ;??????? ???????? ??????. ??? ????? ?????
        PositionEntity player,0,10,0 ;????????????? ???
        EntityType player,PlayerType ;??????????? ??? ??? ?????????. ??? ????? ??? ????????.
        EntityRadius player,10
        camera=CreateCamera(player)
        PositionEntity camera,0,30,0 ;??????????? ??.
        CameraRange camera,1,10000
        spac=0
End Function

Function UpdatePlayer()
running#= 0
RandCamera=0
;???????? ????
If PlayerID=1
If Abs(EntityPitch(camera)+mys)<55
TurnEntity camera, mys*.3,0,0
EndIf
TurnEntity player,0,-MouseXSpeed()*.3,0
EndIf
mxs=MouseXSpeed()
mys=MouseYSpeed()

MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
;???????????
If PlayerID=1
If KeyDown(17) Then
MoveEntity player,px+0,py+0,pz+1
MoveEntity player,-Sin(MilliSecs()/2)*.08*3,Sin(MilliSecs())*.1,0
running = Rnd (0.35, 0.75)
Else If KeyDown(31)
MoveEntity player,px+0,py+0,pz-1
running = Rnd (0.55, 0.95)
EndIf
If KeyDown(30) Then
MoveEntity player,px-1,py+0,pz+0
running = Rnd (0.35, 0.75)
Else If KeyDown(32)
MoveEntity player,px+1,py+0,pz+0
running = Rnd (0.55, 0.95)
EndIf
EndIf
TranslateEntity player,0,grav#-1,0
    TranslateEntity car,0,grav#-1,0
        If running > 0
            ChannelPitch runChannel, Rnd (80000, 14000)
        EndIf
        ChannelVolume runChannel, running

;??????
x#=EntityX(player) 
y#=EntityY(player) 
z#=EntityZ(player) 
If KeyHit(57) Then
yv#=20
PositionEntity Player,x#,y#+yv#,z# 
yv#=EntityY(player)-ey 
ey=EntityY(player) 
EndIf
;-------------------------------
        If zs#<zo Then zs#=zs#+.025
        If zs#>zo Then zs#=zs#-.025
        If zs#<=0 Then zs#=1
        If xw#<x_weapon# Then xw#=xw#+.2
        If xw#>x_weapon# Then xw#=xw#-.2
        If yw#<y_weapon# Then yw#=yw#+.2
        If yw#>y_weapon# Then yw#=yw#-.2
        If zw#<z_weapon# Then zw#=zw#+.2
        If zw#>z_weapon# Then zw#=zw#-.2
        If rxw#<rx_weapon# Then rxw#=rxw#+.2
        If rxw#>rx_weapon# Then rxw#=rxw#-.2
        If ryw#<ry_weapon# Then ryw#=ryw#+.2
        If ryw#>ry_weapon# Then ryw#=ryw#-.2
        If rzw#<rz_weapon# Then rzw#=rzw#+.2
        If rzw#>rz_weapon# Then rzw#=rzw#-.2
        If MouseDown(2) Then
        x_weapon#=-5.1
        y_weapon#=-7.25
        z_weapon#=-3
        rx_weapon#=0
        ry_weapon#=82
        rz_weapon#=0
        zo#=2.5
        Else
        zo#=1
        x_weapon#=3
        y_weapon#=-12
        z_weapon#=6
        rx_weapon#=0
        ry_weapon#=90
        rz_weapon#=0

        EndIf
        CameraZoom camera,zs#
        PositionEntity weapon,xw#,yw#,zw#
        RotateEntity weapon,rxw#,ryw#,zyw#
;??????????

;???
If KeyDown(17) And KeyDown(42)
MoveEntity player,0,0,1.5
Else If KeyDown(31) And KeyDown(42)
MoveEntity player,0,0,-1.5
EndIf

If KeyDown(30) And KeyDown(42)
MoveEntity player,-1.1,0,0
Else If KeyDown(32) And KeyDown(42)
MoveEntity player,1.1,0,0
EndIf
;????? ??????

End Function


Function UpdateCollisions()
        Collisions playertype,TypePol,2,3
        Collisions playertype,TypeStena,2,3
        Collisions playertype,TypeTons,2,3
        Collisions playertype,TypeBalke,2,3
        Collisions playertype,TypeLuk,2,3
        Collisions TypeBox,TypePol,2,3
        Collisions PlayerType,TypeBox,2,3
        Collisions PlayerType,TypeCar,2,3
        Collisions TypeCar,TypePol,2,3
End Function

Function RecurseSeek(ent)
    tab=tab+4
    For i=1 To CountChildren(ent)    
        child=GetChild(ent,i)
        name$=Lower(EntityName(child))
        If Instr(name$,"
pol")
           EntityType child, TypePol
        EndIf
        If Instr(name$,"
stena")
           EntityType child, TypeStena
        EndIf
        If Instr(name$,"
tons")
           EntityType child, TypeTons
           EntityFX child,1
        EndIf
        If Instr(name$,"
balka")
           EntityType child, TypeBalke
        EndIf
        If Instr(name$,"
luk")
           EntityType child, TypeLuk
           tex_child=LoadTexture("
models\TEX23.bmp",3)
           EntityTexture child,tex_child
           ScaleTexture tex_child,0.5,0.5
        EndIf
    Next
    tab=tab-4
End Function


Function LoadWeapon_1()
   weapon = LoadAnimMesh("
models\gun\MP5.b3d",camera) 
   ExtractAnimSeq(weapon,1,1 ) ; 1- idle
   ExtractAnimSeq(weapon,2,8 ) ; 2- shoot 
   Animate weapon, 1,0, 1
   ;EntityPickMode weapon, 2 
  PositionEntity weapon,xw#,yw#,zw#
  RotateEntity weapon,rxw#,ryw#,rzw#
              xw#=3
            yw#=-12
            zw#=6
            rxw#=0
            ryw#=90
            rzw#=0
   EntityParent weapon, camera
   EntityRadius weapon,1
   EntityOrder weapon,-1
End Function

Function LoadWeapon_2()
    weapon_1 = LoadMesh("
models\gun\gun_1.b3d",camera) 
   EntityPickMode weapon_1, 2 
   PositionEntity weapon_1,xw#+3,yw#-12,zw#+6
   RotateEntity weapon_1,rxw#+0,ryw#+90,rzw#+0
   EntityParent weapon_1, camera
   EntityRadius weapon_1,1
   EntityOrder weapon_1,-1

End Function

Function InitSounds()
fire_01=LoadSound("
sound\fire_01.ogg")
run=LoadSound("
sound\dirt.wav")
Not_fire=LoadSound("
sound\RifleReload.wav")
SoundVolume run, 0
LoopSound run
runChannel = PlaySound (run)
End Function

Function LoadB3D(FileName$)
;load map & count children
;TextureFilter "",2
TextureFilter "
MSK",4
TextureFilter "
TRN",2
map=LoadAnimMesh(FileName)
cc=CountChildren(map)


For ent=1 To cc;for each entity

    
    ;get Handle & 'name' of child
    chi=GetChild (map,ent) 
    attr$=EntityName(chi)
    ;create record & store handle
    If attr<>"" 
    
        ;new record
        obj.obj_data = New obj_data
        obj\handler  = chi
        
        ;string parser to delete unwanted chars & separate lines
        attr$=Replace$(attr$,Chr(34),"")
        attr$=Replace$(attr$,Chr(10),"
#")
        
currentstr=1
        
For b=1 To Len(attr)
            If 
Mid(attr,b,1)="#" Then 
                currentstr
=currentstr+1
            
Else
                
obj\rawdata[currentstr]=obj\rawdata[currentstr]+Mid(attr,b,1)
            EndIf
        
Next    

        
;string parser 2 divide into Data segs For fields
        
For dat=1 To 8
            
switch=0
            attr
=obj\rawdata[dat]
            For 
b=1 To Len(attr)    
                
                If 
Mid(attr,b,1)="=" Then 
                    
switch=1
                
Else
                    If switch=
0 Then obj\key[dat]   = obj\key[dat]   + Mid(attr,b,1)
                    If switch=
1 Then obj\value[dat] = obj\value[dat] + Mid(attr,b,1)
                EndIf
            
Next    
            
;extract real name value using the CS4 key 'NAME'
            
If Upper(obj\key[dat])="NAME" 
                
obj\name Upper(obj\value[dat])
                
            EndIf    
        
Next            

        
;reset raw Data
        
For dat=1 To 16
            obj
\rawdata[dat]=""
        
Next

        
;TESTCODE remove this ################################
        
Print "-------------------------------------------------"
        
Print "NAME: "+obj\name+"     Handle:"+Str(obj\handler)
        For 
dat=1 To 8
            
Print "DATA: "+obj\key[dat]+"<=>"+obj\value[dat]
        
Next    
        Delay
(100)
        ;
########################################################

        
;alpha
        
For a=1 To 8
            
If     Upper(obj\key[a])="ALPHA" Then EntityAlpha obj\handler,Float(obj\value[a])        
        
Next
        
;create lights
        
If Upper(obj\key[1])="CLASSNAME" And Upper(obj\Value[1])="LIGHT"
            
lh=CreateLight(2)
            ;
testcode remove this ################
            
lb=CreateSphere(10):EntityFX lb,1
            
;#######################################            
            
For a=1 To 8
                PositionEntity lh
,EntityX(obj\handler),EntityY(obj\handler),EntityZ(obj\handler)
                ;
testcode remove this ###############
                
PositionEntity lb,EntityX(obj\handler),EntityY(obj\handler),EntityZ(obj\handler)
                ;
#######################################            
                
obj\handler=lh
                
If Upper(obj\key[a])="RANGE"
                    
LightRange lhFloat(obj\value[a])
                EndIf
                If 
Upper(obj\key[a])="COLOR"
                    
;parse colors
                    cR
$="":cG$="":cB$="":switch=1
                    
For ch=1 To Len(obj\value[a])
                        If 
Mid (obj\value[a],ch,1)=" "
                            
switch=switch+1
                        
Else
                            If switch=
1 Then cR=cR+Mid (obj\value[a],ch,1)
                            If switch=
2 Then cg=cg+Mid (obj\value[a],ch,1)
                            If switch=
3 Then cb=cb+Mid (obj\value[a],ch,1)
                        EndIf
                    
Next
                    
                    LightColor lh
Float(cr),Float(cg),Float(cb)
                    ;
testcode remove this ################
                    
EntityColor lbFloat(cr),Float(cg),Float(cb)
                    ;
#######################################            
                
EndIf
        
                
            
Next
        
EndIf
        
    EndIf
    
    ;
Set Surfaces For receiving hardware lights
    nv
=CountSurfaces(chi)
    
EntityFX chi,0
    
Print nv:Delay(100)

    If 
nv>0 Then 
        surf
=GetSurface (chi,1)
        
brsh=GetSurfaceBrush(surf)
        
BrushFX brsh,0
        tex
=GetBrushTexture(brsh,1)
        
TextureBlend tex,;USE 0 to toggle LM on-off 2 TO ADD, USE 3 TO MULTIPLY
        BrushTexture brsh
,tex,0,1
        PaintMesh chi
,brsh
        FreeBrush brsh
        FreeTexture tex
        
;PaintEntity chi,brsh
        
    
EndIf
    
UpdateNormals chi
        
    
Next
;object

Return map
End 
Function

Function 
LoadSkyBox(file$)
    
m=CreateMesh()
    ;
front face
    b
=LoadBrushfile$+"mercury512_bk.jpg",49 )
    
s=CreateSurfacem,)
    
AddVertex s,+1,+1,-1,0,0:AddVertex s,-1,+1,-1,1,0
    AddVertex s
,-1,-1,-1,1,1:AddVertex s,+1,-1,-1,0,1
    AddTriangle s
,0,1,2:AddTriangle s,0,2,3
    FreeBrush b
    
;right face
    b
=LoadBrushfile$+"mercury512_lf.jpg",49 )
    
s=CreateSurfacem,)
    
AddVertex s,+1,+1,+1,0,0:AddVertex s,+1,+1,-1,1,0
    AddVertex s
,+1,-1,-1,1,1:AddVertex s,+1,-1,+1,0,1
    AddTriangle s
,0,1,2:AddTriangle s,0,2,3
    FreeBrush b
    
;back face
    b
=LoadBrushfile$+"mercury512_ft.jpg",49 )
    
s=CreateSurfacem,)
    
AddVertex s,-1,+1,+1,0,0:AddVertex s,+1,+1,+1,1,0
    AddVertex s
,+1,-1,+1,1,1:AddVertex s,-1,-1,+1,0,1
    AddTriangle s
,0,1,2:AddTriangle s,0,2,3
    FreeBrush b
    
;left face
    b
=LoadBrushfile$+"mercury512_rt.jpg",49 )
    
s=CreateSurfacem,)
    
AddVertex s,-1,+1,-1,0,0:AddVertex s,-1,+1,+1,1,0
    AddVertex s
,-1,-1,+1,1,1:AddVertex s,-1,-1,-1,0,1
    AddTriangle s
,0,1,2:AddTriangle s,0,2,3
    FreeBrush b
    
;top face
    b
=LoadBrushfile$+"mercury512_up.jpg",49 )
    
s=CreateSurfacem,)
    
AddVertex s,-1,+1,-1,0,1:AddVertex s,+1,+1,-1,0,0
    AddVertex s
,+1,+1,+1,1,0:AddVertex s,-1,+1,+1,1,1
    AddTriangle s
,0,1,2:AddTriangle s,0,2,3
    FreeBrush b
    
;bottom face    
    b
=LoadBrushfile$+"mercury512_dn.jpg",49 )
    
s=CreateSurfacem,)
    
AddVertex s,-1,-1,+1,1,0:AddVertex s,+1,-1,+1,1,1
    AddVertex s
,+1,-1,-1,0,1:AddVertex s,-1,-1,-1,0,0
    AddTriangle s
,0,1,2:AddTriangle s,0,2,3
    FreeBrush b
    ScaleMesh m
,5000,5000,5000
    
;FlipMesh m
    EntityFX m
,1+8
    
Return m
    FreeEntity m    
End 
Function


Function 
CreateFlareOut(ent,sprite,TimeTolive
     
flare.OutFlare=New OutFlare 
        flare
\time_out=TimeTolive
           flare
\sprite CopyEntity(sprite
    
PositionEntity flare\sprite,EntityX(ent,1),EntityY(ent,1),EntityZ(ent,1)
    
RotateSprite flare\sprite,Rand(-90,90) ; ???? ????? ?????? ??????? ??????? ?? ??? ???????? ??? 
End Function

Function 
UpdateFlareOut() 
    For 
flare.OutFlareEach OutFlare 
       flare
\TimeTolive flare\TimeTolive 
       
If flare\time_out 0  
           FreeEntity flare
\sprite 
           Delete flare 
       
EndIf 
    
Next 
End 
Function


Function 
BotUpdat()

End Function 
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tormoz (08.07.2015)