Shooter

Blitz3D Forums/Blitz3D Programming/Shooter

Does somebody know how to shoot? The sight targets the person and you click to fire.
AppTitle "Internet Game"

SetBuffer BackBuffer()

SeedRnd MilliSecs()

Game = StartNetGame()	

Graphics3D 1024,768,32,1

Global Name$ = Input$("Enter Your Name: ")

id = CreateNetPlayer(Name$)

If Game = 1 Then
	SendNetMsg 1,Name$,id,0,False
EndIf

Cls

Cls

Dim sight(2)

sight(0) = LoadImage("Sight.bmp")
sight(1) = 0

Building = LoadMesh("Building.b3d")

enemy = LoadMesh("Person.3ds")

players = 0

If Building = 0 Then
	RuntimeError "File: 'Building.b3d' Not Found"
EndIf

Collisions 1,2,2,2

Global player = CreatePivot()
PositionEntity player,0,1,0
EntityRadius player,.3
EntityType player,1

Global box = CreateCube()
ResizeMesh(box,1,1,1)

Randomize()		

Global camera = CreateCamera(player)
CameraRange camera,.1,200

Global light = CreateLight()
LightColor light,32,32,32
TurnEntity light,45,-45,0

EntityFX Building,1
EntityType Building,2

sp#=.05
ey#=EntityY(player)

While Not KeyHit(1)
	
	yv#=EntityY(player)-ey
	ey=EntityY(player)
	
	If KeyHit(57) yv=.1

	MoveEntity player,0,yv-.005,0
	
	If KeyHit(31) sight(1) = Not sight(1)
	
	If KeyDown(30) TurnEntity camera,-2,0,0
	If KeyDown(44) TurnEntity camera,+2,0,0
	
	If KeyDown(203) TurnEntity player,0,2,0
	If KeyDown(205) TurnEntity player,0,-2,0
	
	If KeyDown(200) MoveEntity player,0,0,sp
	If KeyDown(208) MoveEntity player,0,0,-sp
	
	Distance = EntityDistance(player,box)
	
	SendNetMsg 2,EntityX(player) + "," + EntityY(player) + "|" + EntityZ(player),id
	RecvNetMsg()
	
	If NetMsgType() = 2 Then
		start = Instr(NetMsgData(),",")
		x = Left(NetMsgData(),start - 1)
		start2 = Instr(NetMsgData(),"|")
		y = Mid(NetMsgData(),start + 1,start2 - 1)
		z = Right(NetMsgData(),Len(NetMsgData()) - start2)
		PositionEntity enemy,x,y,z
	EndIf
		
	CheckMail()
	
	CheckBox()
	
	Locate 0,0
	Print EntityDistance(player,box)
	
	UpdateWorld
	RenderWorld
	If sight(1) = 1 Then
		DrawImage sight(0),MouseX(),MouseY(),0
	EndIf
	Flip
Wend

EndGame()

End

Function ResizeMesh(mesh,width#,height#,depth#)
   
ScaleMesh mesh,1/MeshWidth#(mesh)*width#,1/MeshHeight#(mesh)*height#,(1/MeshDepth#(mesh))*depth#

End Function

Function CheckBox()

RecvNetMsg()

If NetMsgType() = 99 And Left(NetMsgData$(),3) = "Win" Then
	Cls
	Locate 0,0
	Print "You lost."
	EndGame()
EndIf

If EntityDistance(player,box) < 1 Then
	Cls
	Locate 0,0
	Print "You Won!!!"
	SendNetMsg 99,"Win " + Name$,id,0,0
	EndGame()
EndIf

End Function	

Function EndGame()

FreeEntity Building
FreeEntity box
FreeImage sight(0)

EndGraphics

End

End Function

Function CheckMail()

RecvNetMsg()

If NetMsgType() = 1
	Locate 0,0
	Print NetMsgData() + " has joined"
	Delay 500
	players = players + 1
EndIf

End Function

Function Randomize()

Select Rand(1,6)
	Case 1
		PositionEntity box,-7,0,-7
	Case 2
		PositionEntity box,19,0,-18
	Case 3
		PositionEntity box,18,4,-18
	Case 4
		PositionEntity box,25,-3,-10
	Case 5
		PositionEntity box,5,-2,22
	Case 6
		PositionEntity box,Rand(-8,30),0,Rand(-22,26)
End Select	

End Function


Does somebody know how to shoot?
Yeah, pull the trigger.

I didn't see any code in there for gathering mouse input so you must be looking for this:
If MouseDown(1) and Fire = False
  ;create a bullet (usually copy a bullet entity)
  ;point it in the camera's direction
  ;give it a velocity
  Fire = True
  FireTime = Millisecs()
EndIF
If Fire = True
  If Millisecs() > FireTime + 300 Then Fire = False
EndIf


I did a simple First Person Shooter code a few months ago. You can find it at my website here.

Is there a way to use the sight (a 2d image) and fire it like that?

Your last statement didn't make any sense.

Try rephrasing it. DESCRIBE the problem. Don't be afraid to type type type type type type type ...

He wants to use the sight to aim, ie: fire in the direction the sight is pointing.

It was a pretty clear statement Wolron :)


Blitz Programmer, you'll have to use the picking commands to do that.

Tracer

Yeah, although if the target goes beyond vision (ie there is no target) the bullet will flay randomly, so make sure to set up a system for checking that case...

fire in the direction the sight is pointing.

Ahh, but that's not what HE said.


Anyways, the code I showed you will still do that, just aim the bullet at the target behind the crosshairs.

As Tracer said, you can use the picking commands (LinePick, EntityPick, etc.).

I'm not that good at Blitz3D especially doing picking. How could I do that using LinePick?

I changed my code to be like yours but it says 'Varible Type Mismatch.'
Graphics3D 1280,1024,32

AppTitle "Gun Shooter"

Collisions 1,2,2,2

SetBuffer BackBuffer()

Type BulletType
	Field mesh
End Type

Global player = CreatePivot()
PositionEntity player,0,1,1
EntityRadius player,.6
EntityType player,1

camera = CreateCamera( player )
CameraRange camera,.1,200

light = CreateLight()
LightColor light,32,32,32
TurnEntity light,45,45,0

Sight = LoadImage("Sight.bmp")
Global GunFire = LoadSound("gunfire.wav")
Gun = LoadMesh("Weapons\WALTRGUN.3DS",player)
Global Bullet = LoadMesh("Weapons\Bullet.3ds")

Levels = OpenFile("Levels.dat")

ReadLine(Levels)

leveloc$ = ReadLine$(Levels)

Levelfile = OpenFile("Levels" + leveloc)

LevelType$ = ReadLine$(Levelfile)

If LevelType$ = "Terrain" Then
	Level = LoadTerrain("Levels" + ReadLine(Levelfile))
	tex = LoadTexture("Levels" + ReadLine(LevelFile))
	EntityTexture Level,tex
ElseIf LevelType$ = "Maplet" Then
	Level = LoadMesh("Levels" + ReadLine(LevelFile))
EndIf

;CameraFogMode camera,1

;CameraFogColor camera,255,255,255

;CameraFogRange camera,1,10

If Level = 0 RuntimeError "File: 'L1Field.jpg' not found"

If GunFire = 0 Then
	RuntimeError "File: '9mm.wav' not found"
EndIf

HideEntity Bullet

Dim Bullets(4)

ScaleEntity Gun,0.9999,0.9999,0.9999

SoundVolume GunFire,1
MaskImage Sight,255,255,255
MidHandle Sight

LoadSkyBox("World")

MoveEntity Gun,.1,-.1,0

EntityFX Level,1
EntityType Level,2

sp# = .05
ey# = EntityY(player)

PositionEntity Gun,EntityX(player),EntityY(player) - 2,EntityZ(player) - 1

WireFrame True

While Not KeyHit(1)

	yv# = EntityY(player) - ey
	ey = EntityY(player)
	
	If KeyHit(57) yv=.1

	MoveEntity player,0,yv-.005,0
	
	If KeyDown(30) TurnEntity camera,-2,0,0
	If KeyDown(44) TurnEntity camera,+2,0,0
	
	If KeyDown(203) TurnEntity player,0,2,0
	If KeyDown(205) TurnEntity player,0,-2,0
	
	If KeyDown(200) MoveEntity player,0,0,sp
	If KeyDown(208) MoveEntity player,0,0,-sp
	
	;RotateEntity Gun,EntityPitch(player),EntityYaw(player),EntityRoll(player)
	;PositionEntity Gun,EntityX(player),EntityY(player),EntityZ(player)
	
	If KeyHit(156)
		PointEntity player,Gun
	EndIf
	
	If MouseHit(1)
		ShowEntity Bullet
		RotateEntity Bullet,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		bullet.BulletType = New BulletType
		bullet\mesh = CopyMesh(bullet)
		Bullets(0) = 1
		PlaySound GunFire
		PositionEntity Bullet,EntityX(Gun),EntityY(Gun),EntityZ(Gun)
	EndIf
	
	If MouseDown(2)
		Fire()
	EndIf
	
	TurnEntity player,0,-MouseXSpeed(),0
	;TurnEntity player,MouseYSpeed(),0,0
	
	UpdateWorld
	RenderWorld
	
	Locate 0,0
	;Print TrisRendered()
	
	DrawImage Sight,GraphicsWidth() / 2,GraphicsHeight() / 2
	
	For biter.BulletType = Each BulletType
		MoveEntity biter\mesh,0,0,1
	Next
	
	Color 0,0,0
	Locate 0,0
	Print EntityDistance(player,Gun)
	
	Flip
Wend

FreeEntity Level
FreeEntity Gun
FreeEntity Camera
FreeEntity Bullet
FreeEntity player
FreeEntity light
FreeImage Sight
FreeSound GunFire
FreeTexture tex
CloseFile Levels
CloseFile Levelfile

End

Function Fire()

ShowEntity Bullet

RotateEntity Bullet,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)

Bullet.Bullet = New Bullet
bullet\mesh = CopyMesh(bullet)

Bullets(0) = 1

PlaySound GunFire

PositionEntity Bullet,EntityX(Gun),EntityY(Gun),EntityZ(Gun)

End Function

Function CreateTree(file$,width#,Height)

tree = CreateMesh()
surf1 = CreateSurface(tree)

v0 = AddVertex(surf1,-1.0,-1.0,0,0,0)
v1 = AddVertex(surf1,1.0,-1.0,0,1,0)
v2 = AddVertex(surf1,1.0,1.0,0,1,0)
v3 = AddVertex(surf1,-1.0,1.0,0,0,1)

tri0 = AddTriangle(surf1,v0,v1,v2)
tri1 = AddTriangle(surf1,v0,v2,v3)

v4 = AddVertex(surf1,-1.0,0,-1.0,0,0)
v5 = AddVertex(surf1,1.0,0,-1.0,1,0)
v6 = AddVertex(surf1,1.0,0,1.0,1,1)
v7 = AddVertex(surf1,-1.0,0,1.0,0,1)

tri2 = AddTriangle(surf1,v4,v5,v6)
tri3 = AddTriangle(surf1,v4,v6,v7)

UpdateNormals tree

tex = LoadBrush(file$,4) ; using masked flag (4)

PaintMesh tree,tex

EntityFX tree,16 ; make visible from both sides

Return tree

End Function 

Function LoadSkyBox( file$ )
	m=CreateMesh()
	;front face
	b=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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,100,100,100
	FlipMesh m
	EntityFX m,1
	Return m
End Function


Yes, but on which line? Take note of which line the cursor is on when you receive that alarm. That will tell you which variable is the culprit.

A 'Variable Type Mismatch' is caused by something such as the following:
a# = 3

;later on...
a$ = "hello"

a$ can't exist because a has already been declared as a float (a#)


By the way, I see that you are closing your opened files after the program ends. It's probably best to close them as soon as you are done using them.

On this line:
bullet.BulletType = New BulletType


See, you've already assigned Bullet/bullet as an integer in this statement:
Global Bullet = LoadMesh("Weapons\Bullet.3ds")
Just use a different variable name.

I can't get my bullet-Enemy collision working. I'm trying to get it to delete the enemy and delete the bullet when they collide.
Graphics3D 1280,1024,32

AppTitle "Gun Shooter"

Collisions 1,2,2,2

SetBuffer BackBuffer()

Type BulletType
	Field mesh
End Type

Type EnemyType
	Field mesh
End Type

Global player = CreatePivot()
PositionEntity player,0,1,1
EntityRadius player,.6
EntityType player,1

camera = CreateCamera( player )
CameraRange camera,.1,200

light = CreateLight()
LightColor light,32,32,32
TurnEntity light,45,45,0

Sight = LoadImage("Sight.bmp")
Global GunFire = LoadSound("gunfire.wav")
Gun = LoadMesh("Weapons\SWATRifle.3ds",player)
Global EnemyMesh = CreateCube()
Global BulletMesh = LoadMesh("Weapons\Bullet.3ds")

EntityType BulletMesh,3

HideEntity BulletMesh

Levels = OpenFile("Levels.dat")

ReadLine(Levels)

leveloc$ = ReadLine$(Levels)

Levelfile = OpenFile("Levels" + leveloc)

LevelType$ = ReadLine$(Levelfile)

If LevelType$ = "Terrain" Then
	Pos = FilePos(Levelfile)
	Level = LoadTerrain("Levels" + ReadLine(Levelfile))
	SeekFile(Levelfile,pos)
	terrain = LoadImage("Levels" + ReadLine(Levelfile))
	tex = LoadTexture("Levels" + ReadLine(LevelFile))
	EntityTexture Level,tex
ElseIf LevelType$ = "Maplet" Then
	Level = LoadMesh("Levels" + ReadLine(LevelFile))
Else
	RuntimeError "Invalid Level Type Code: L295"
EndIf

For i = 1 To 10 
	EnemyType.EnemyType = New EnemyType
	EnemyType\mesh = CopyMesh(EnemyMesh)
	EntityType EnemyType\mesh,4
Next

;CameraFogMode camera,1

;CameraFogColor camera,255,255,255

;CameraFogRange camera,1,10

If Level = 0 RuntimeError "File: 'L1Field.jpg' not found"

If GunFire = 0 Then
	RuntimeError "File: '9mm.wav' not found"
EndIf

ScaleEntity Gun,0.9999,0.9999,0.9999

SoundVolume GunFire,1
MaskImage Sight,255,255,255
MidHandle Sight

For EnemyType.EnemyType = Each EnemyType
	If LevelType$ = "Terrain" Then
		PositionEntity EnemyType\mesh,Rand(0,ImageWidth(terrain)),0,Rand(0,ImageHeight(terrain))
	ElseIf LevelType$ = "Maplet
		PositionEntity EnemyType\mesh,Rand(0,MeshWidth(Level)),0,Rand(0,MeshHeight(Level))
	EndIf
Next

FreeImage terrain

LoadSkyBox("World")

MoveEntity Gun,.1,-.1,0

EntityFX Level,1
EntityType Level,2

sp# = .05
ey# = EntityY(player)

PositionEntity Gun,EntityX(player) + .3,EntityY(player) - 1,EntityZ(player) - 1

;WireFrame True

While Not KeyHit(1)

	yv# = EntityY(player) - ey
	ey = EntityY(player)
	
	If KeyHit(57) yv=.1
	
	If sp# = .05 And KeyHit(42) Or KeyHit(54) Then
		sp# = 1
	ElseIf sp# = 1 And KeyHit(42) Or KeyHit(54) Then
		sp# = .05
	EndIf
	
	MoveEntity player,0,yv-.005,0
	
	If KeyDown(30)
		TurnEntity camera,-2,0,0
		TurnEntity Gun,-2,0,0
	EndIf
	
	If KeyDown(44)
		TurnEntity camera,+2,0,0
		TurnEntity Gun,+2,0,0
	EndIf
	
	If KeyDown(203) TurnEntity player,0,2,0
	If KeyDown(205) TurnEntity player,0,-2,0
	
	If KeyDown(200) MoveEntity player,0,0,sp
	If KeyDown(208) MoveEntity player,0,0,-sp
	
	RotateEntity Gun,EntityPitch(player),0,0
	
	If KeyHit(156)
		PointEntity player,Gun
	EndIf
	
	If MouseDown(1)
		bulletType.BulletType = New BulletType
		bulletType\mesh = CopyMesh(bulletMesh)
		RotateEntity BulletType\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		PlaySound GunFire
		PositionEntity BulletType\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8
		EntityType BulletType\Mesh,3
	EndIf
	
	TurnEntity player,0,-MouseXSpeed(),0
	;TurnEntity player,MouseYSpeed(),0,0
	
	UpdateWorld
	RenderWorld
	
	Locate 0,0
	;Print TrisRendered()
	
	DrawImage Sight,GraphicsWidth() / 2,GraphicsHeight() / 2
	
	For biter.BulletType = Each BulletType
		MoveEntity biter\mesh,0,0,1
		If Abs(EntityX(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityY(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityZ(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		EndIf
	Next
	
	For EnemyType.EnemyType = Each EnemyType
		For biter.BulletType = Each BulletType
			If EntityCollided(biter\mesh,3) = EnemyType\mesh Then
				FreeEntity EnemyType\mesh
				FreeEntity Biter\mesh
				Delete EnemyType
				Delete biter
			EndIf
		Next
	Next
	
	Color 0,0,0
	Locate 0,0
	Print EntityDistance(player,Gun)
	
	Flip
Wend

FreeEntity Level
FreeEntity Gun
FreeEntity Camera
FreeEntity Bullet
FreeEntity player
FreeEntity light
FreeImage Sight
FreeSound GunFire
FreeTexture tex
CloseFile Levels
CloseFile Levelfile

For bulletType.BulletType = Each BulletType
	FreeEntity bulletType\mesh
	Delete bulletType
Next

For EnemyType.EnemyType = Each EnemyType
	FreeEntity EnemyType\mesh
	Delete EnemyType
Next

End

Function CreateTree(file$,width#,Height)

tree = CreateMesh()
surf1 = CreateSurface(tree)

v0 = AddVertex(surf1,-1.0,-1.0,0,0,0)
v1 = AddVertex(surf1,1.0,-1.0,0,1,0)
v2 = AddVertex(surf1,1.0,1.0,0,1,0)
v3 = AddVertex(surf1,-1.0,1.0,0,0,1)

tri0 = AddTriangle(surf1,v0,v1,v2)
tri1 = AddTriangle(surf1,v0,v2,v3)

v4 = AddVertex(surf1,-1.0,0,-1.0,0,0)
v5 = AddVertex(surf1,1.0,0,-1.0,1,0)
v6 = AddVertex(surf1,1.0,0,1.0,1,1)
v7 = AddVertex(surf1,-1.0,0,1.0,0,1)

tri2 = AddTriangle(surf1,v4,v5,v6)
tri3 = AddTriangle(surf1,v4,v6,v7)

UpdateNormals tree

tex = LoadBrush(file$,4) ; using masked flag (4)

PaintMesh tree,tex

EntityFX tree,16 ; make visible from both sides

Return tree

End Function 

Function LoadSkyBox( file$ )
	m=CreateMesh()
	;front face
	b=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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,100,100,100
	FlipMesh m
	EntityFX m,1
	Return m
End Function

Function Mid3dHandle(mesh)
 ux#=-100000
 uy#=-100000
 uz#=-100000
 lx#=100000
 ly#=100000
 lz#=100000
 cs=CountSurfaces(mesh)
 For s=1 To cs
  surf=GetSurface(mesh,s)
  cv=CountVertices(surf)-1
  For v=0 To cv
   vx#=VertexX#(surf,v)
   vy#=VertexY#(surf,v)
   vz#=VertexZ#(surf,v)
   If vx#<lx# Then lx#=vx#
   If vx#>ux# Then ux#=vx#
   If vy#<ly# Then ly#=vy#
   If vy#>uy# Then uy#=vy#
   If vz#<lz# Then lz#=vz#
   If vz#>uz# Then uz#=vz#
  Next
 Next
 ax#=(ux#+lx#)/2
 ay#=(uy#+ly#)/2
 az#=(uz#+lz#)/2
 PositionMesh mesh,-ax#,-ay#,-az#
End Function


Quickly looking through your code, I only see one Collisions command
Collisions 1,2,2,2
(so you have collisions set up for entitytypes 1 and 2)
But it looks like your EntityTypes for bullets and enemies are 3s and 4s, so you need to set up collisions between them as well.

By the way, why don't you go back and edit your previous posts and change them all from [code] commands to [codebox} commands :)

I did what you said but it doesn't work.
Graphics3D 1280,1024,32

AppTitle "Gun Shooter"

Collisions 1,2,2,2
Collisions 3,4,3,1

SetBuffer BackBuffer()

Type BulletType
	Field mesh
End Type

Type EnemyType
	Field mesh
End Type

Global player = CreatePivot()
PositionEntity player,0,1,1
EntityRadius player,.6
EntityType player,1

camera = CreateCamera( player )
CameraRange camera,.1,200

light = CreateLight()
LightColor light,32,32,32
TurnEntity light,45,45,0

Sight = LoadImage("Sight.bmp")
Global GunFire = LoadSound("gunfire.wav")
Gun = LoadMesh("Weapons\SWATRifle.3ds",player)
Global EnemyMesh = CreateCube()
Global BulletMesh = LoadMesh("Weapons\Bullet.3ds")

EntityType BulletMesh,3

HideEntity BulletMesh

Levels = OpenFile("Levels.dat")

ReadLine(Levels)

leveloc$ = ReadLine$(Levels)

Levelfile = OpenFile("Levels" + leveloc)

LevelType$ = ReadLine$(Levelfile)

If LevelType$ = "Terrain" Then
	Pos = FilePos(Levelfile)
	Level = LoadTerrain("Levels" + ReadLine(Levelfile))
	SeekFile(Levelfile,pos)
	terrain = LoadImage("Levels" + ReadLine(Levelfile))
	tex = LoadTexture("Levels" + ReadLine(LevelFile))
	EntityTexture Level,tex
ElseIf LevelType$ = "Maplet" Then
	Level = LoadMesh("Levels" + ReadLine(LevelFile))
Else
	RuntimeError "Invalid Level Type Code: L295"
EndIf

For i = 1 To 10 
	EnemyType.EnemyType = New EnemyType
	EnemyType\mesh = CopyMesh(EnemyMesh)
	EntityType EnemyType\mesh,4
Next

;CameraFogMode camera,1

;CameraFogColor camera,255,255,255

;CameraFogRange camera,1,10

If Level = 0 RuntimeError "File: 'L1Field.jpg' not found"

If GunFire = 0 Then
	RuntimeError "File: '9mm.wav' not found"
EndIf

ScaleEntity Gun,0.9999,0.9999,0.9999

SoundVolume GunFire,1
MaskImage Sight,255,255,255
MidHandle Sight

For EnemyType.EnemyType = Each EnemyType
	If LevelType$ = "Terrain" Then
		PositionEntity EnemyType\mesh,Rand(0,ImageWidth(terrain)),0,Rand(0,ImageHeight(terrain))
	ElseIf LevelType$ = "Maplet
		PositionEntity EnemyType\mesh,Rand(0,MeshWidth(Level)),0,Rand(0,MeshHeight(Level))
	EndIf
	EntityType EnemyType\mesh,4
Next

FreeImage terrain

LoadSkyBox("World")

MoveEntity Gun,.1,-.1,0

EntityFX Level,1
EntityType Level,2

sp# = .05
ey# = EntityY(player)

PositionEntity Gun,EntityX(player) + .3,EntityY(player) - 1,EntityZ(player) - 1

;WireFrame True

While Not KeyHit(1)

	yv# = EntityY(player) - ey
	ey = EntityY(player)
	
	If KeyHit(57) yv=.1
	
	If sp# = .05 And KeyHit(42) Or KeyHit(54) Then
		sp# = 1
	ElseIf sp# = 1 And KeyHit(42) Or KeyHit(54) Then
		sp# = .05
	EndIf
	
	MoveEntity player,0,yv-.005,0
	
	If KeyDown(30)
		TurnEntity camera,-2,0,0
		TurnEntity Gun,-2,0,0
	EndIf
	
	If KeyDown(44)
		TurnEntity camera,+2,0,0
		TurnEntity Gun,+2,0,0
	EndIf
	
	If KeyDown(203) TurnEntity player,0,2,0
	If KeyDown(205) TurnEntity player,0,-2,0
	
	If KeyDown(200) MoveEntity player,0,0,sp
	If KeyDown(208) MoveEntity player,0,0,-sp
	
	RotateEntity Gun,EntityPitch(player),0,0
	
	If KeyHit(156)
		PointEntity player,Gun
	EndIf
	
	If MouseDown(1)
		bulletType.BulletType = New BulletType
		bulletType\mesh = CopyMesh(bulletMesh)
		RotateEntity BulletType\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		PlaySound GunFire
		PositionEntity BulletType\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8
		EntityType BulletType\Mesh,3
	EndIf
	
	TurnEntity player,0,-MouseXSpeed(),0
	;TurnEntity player,MouseYSpeed(),0,0
	
	UpdateWorld
	RenderWorld
	
	Locate 0,0
	;Print TrisRendered()
	
	DrawImage Sight,GraphicsWidth() / 2,GraphicsHeight() / 2
	
	For biter.BulletType = Each BulletType
		MoveEntity biter\mesh,0,0,1
		If Abs(EntityX(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityY(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityZ(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		EndIf
	Next
	
	For EnemyType.EnemyType = Each EnemyType
		For BulletType.BulletType = Each BulletType
			If EntityCollided(BulletType\mesh,3) = EnemyType\mesh Then
				FreeEntity EnemyType\mesh
				FreeEntity BulletType\mesh
				Delete EnemyType
				Delete BulletType
			EndIf
		Next
	Next
	
	Color 0,0,0
	Locate 0,0
	Print EntityDistance(player,Gun)
	
	Flip
Wend

FreeEntity Level
FreeEntity Gun
FreeEntity Camera
FreeEntity Bullet
FreeEntity player
FreeEntity light
FreeImage Sight
FreeSound GunFire
FreeTexture tex
CloseFile Levels
CloseFile Levelfile

For bulletType.BulletType = Each BulletType
	FreeEntity bulletType\mesh
	Delete bulletType
Next

For EnemyType.EnemyType = Each EnemyType
	FreeEntity EnemyType\mesh
	Delete EnemyType
Next

End

Function CreateTree(file$,width#,Height)

tree = CreateMesh()
surf1 = CreateSurface(tree)

v0 = AddVertex(surf1,-1.0,-1.0,0,0,0)
v1 = AddVertex(surf1,1.0,-1.0,0,1,0)
v2 = AddVertex(surf1,1.0,1.0,0,1,0)
v3 = AddVertex(surf1,-1.0,1.0,0,0,1)

tri0 = AddTriangle(surf1,v0,v1,v2)
tri1 = AddTriangle(surf1,v0,v2,v3)

v4 = AddVertex(surf1,-1.0,0,-1.0,0,0)
v5 = AddVertex(surf1,1.0,0,-1.0,1,0)
v6 = AddVertex(surf1,1.0,0,1.0,1,1)
v7 = AddVertex(surf1,-1.0,0,1.0,0,1)

tri2 = AddTriangle(surf1,v4,v5,v6)
tri3 = AddTriangle(surf1,v4,v6,v7)

UpdateNormals tree

tex = LoadBrush(file$,4) ; using masked flag (4)

PaintMesh tree,tex

EntityFX tree,16 ; make visible from both sides

Return tree

End Function 

Function LoadSkyBox( file$ )
	m=CreateMesh()
	;front face
	b=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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,100,100,100
	FlipMesh m
	EntityFX m,1
	Return m
End Function

Function Mid3dHandle(mesh)
 ux#=-100000
 uy#=-100000
 uz#=-100000
 lx#=100000
 ly#=100000
 lz#=100000
 cs=CountSurfaces(mesh)
 For s=1 To cs
  surf=GetSurface(mesh,s)
  cv=CountVertices(surf)-1
  For v=0 To cv
   vx#=VertexX#(surf,v)
   vy#=VertexY#(surf,v)
   vz#=VertexZ#(surf,v)
   If vx#<lx# Then lx#=vx#
   If vx#>ux# Then ux#=vx#
   If vy#<ly# Then ly#=vy#
   If vy#>uy# Then uy#=vy#
   If vz#<lz# Then lz#=vz#
   If vz#>uz# Then uz#=vz#
  Next
 Next
 ax#=(ux#+lx#)/2
 ay#=(uy#+ly#)/2
 az#=(uz#+lz#)/2
 PositionMesh mesh,-ax#,-ay#,-az#
End Function


Please, BlitzProgrammer, try to EXPLAIN the problem. Don't just write 'it doesn't work'.

Dude, I think you messed up big. I'm not even sure if this is possible:
	For EnemyType.EnemyType = Each EnemyType
		For BulletType.BulletType = Each BulletType
			If EntityCollided(BulletType\mesh,3) = EnemyType\mesh Then
				FreeEntity EnemyType\mesh
				FreeEntity BulletType\mesh
				Delete EnemyType
				Delete BulletType
			EndIf
		Next
	Next

You set the variable names in these loops to equal the names of the variable types. As far as I know, that's not possible (and I'd be surprised if you didn't get compiling error messages).

Change the EnemyType and BulletType variable names to something else, for instance like this:
	For thisEnemy.EnemyType = Each EnemyType
		For thisBullet.BulletType = Each BulletType
			If EntityCollided(thisBullet\mesh,4) = thisEnemy\mesh Then
				FreeEntity thisEnemy\mesh
				FreeEntity thisBullet\mesh
				Delete thisEnemy
				Delete thisBullet
			EndIf
		Next
	Next
By the way, did you notice above that I changed the entitytype from 3 to 4? It appears that you were checking for collisions between thisBullet and all the other bullets...

When I shoot the box(enemy), it pops up with an error that says 'Memory Access Violation'.

That might be due to the problem I noted above. Did you try making the changes I described?

Yes I did. It still does the mem access violation.
Sometimes it goes right through the enemy
Graphics3D 1280,1024,32

AppTitle "Gun Shooter"

Collisions 1,2,2,2
Collisions 3,4,2,1

SetBuffer BackBuffer()

Type BulletType
	Field mesh
End Type

Type EnemyType
	Field mesh
End Type

Global player = CreatePivot()
PositionEntity player,0,1,1
EntityRadius player,.6
EntityType player,1

camera = CreateCamera( player )
CameraRange camera,.1,200

light = CreateLight()
LightColor light,32,32,32
TurnEntity light,45,45,0

Sight = LoadImage("Sight.bmp")
Global GunFire = LoadSound("gunfire.wav")
Gun = LoadMesh("Weapons\SWATRifle.3ds",player)
Global EnemyMesh = CreateCube()
Global BulletMesh = LoadMesh("Weapons\Bullet.3ds")

Dim Trees(5)

Trees(0) = CreateTree("Levels\LeyLand Cypress.png",130,317)

RotateEntity Trees(0),90,90,90

PositionEntity(Trees(0),10,1,10)

EntityType BulletMesh,3

HideEntity BulletMesh

Levels = OpenFile("Levels.dat")

ReadLine(Levels)

leveloc$ = ReadLine$(Levels)

Levelfile = OpenFile("Levels" + leveloc)

LevelType$ = ReadLine$(Levelfile)

If LevelType$ = "Terrain" Then
	Pos = FilePos(Levelfile)
	Level = LoadTerrain("Levels" + ReadLine(Levelfile))
	SeekFile(Levelfile,pos)
	terrain = LoadImage("Levels" + ReadLine(Levelfile))
	tex = LoadTexture("Levels" + ReadLine(LevelFile))
	EntityTexture Level,tex
ElseIf LevelType$ = "Maplet" Then
	Level = LoadMesh("Levels" + ReadLine(LevelFile))
Else
	RuntimeError "Invalid Level Type Code: L295"
EndIf

For i = 1 To 10 
	EnemyType.EnemyType = New EnemyType
	EnemyType\mesh = CopyMesh(EnemyMesh)
	EntityType EnemyType\mesh,4
Next

;CameraFogMode camera,1

;CameraFogColor camera,255,255,255

;CameraFogRange camera,1,10

If Level = 0 RuntimeError "File: 'L1Field.jpg' not found"

If GunFire = 0 Then
	RuntimeError "File: '9mm.wav' not found"
EndIf

ScaleEntity Gun,0.9999,0.9999,0.9999

SoundVolume GunFire,1
MaskImage Sight,255,255,255
MidHandle Sight

For EnemyType.EnemyType = Each EnemyType
	If LevelType$ = "Terrain" Then
		PositionEntity EnemyType\mesh,Rand(0,ImageWidth(terrain)),0,Rand(0,ImageHeight(terrain))
	ElseIf LevelType$ = "Maplet
		PositionEntity EnemyType\mesh,Rand(0,MeshWidth(Level)),0,Rand(0,MeshHeight(Level))
	EndIf
	EntityType EnemyType\mesh,4
Next

FreeImage terrain

LoadSkyBox("World")

MoveEntity Gun,.1,-.1,0

EntityFX Level,1
EntityType Level,2

sp# = .05
ey# = EntityY(player)

PositionEntity Gun,EntityX(player) + .3,EntityY(player) - 1,EntityZ(player) - 1

;WireFrame True

While Not KeyHit(1)

	yv# = EntityY(player) - ey
	ey = EntityY(player)
	
	If KeyHit(57) yv=.1
	
	If sp# = .05 And KeyHit(42) Or KeyHit(54) Then
		sp# = 1
	ElseIf sp# = 1 And KeyHit(42) Or KeyHit(54) Then
		sp# = .05
	EndIf
	
	MoveEntity player,0,yv-.005,0
	
	If KeyDown(30)
		TurnEntity camera,-2,0,0
		TurnEntity Gun,-2,0,0
	EndIf
	
	If KeyDown(44)
		TurnEntity camera,+2,0,0
		TurnEntity Gun,+2,0,0
	EndIf
	
	If KeyDown(203) TurnEntity player,0,2,0
	If KeyDown(205) TurnEntity player,0,-2,0
	
	If KeyDown(200) MoveEntity player,0,0,sp
	If KeyDown(208) MoveEntity player,0,0,-sp
	
	RotateEntity Gun,EntityPitch(player),0,0
	
	If KeyHit(156)
		PointEntity player,Gun
	EndIf
	
	If MouseDown(1)
		bulletType.BulletType = New BulletType
		bulletType\mesh = CopyMesh(bulletMesh)
		RotateEntity BulletType\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		PlaySound GunFire
		PositionEntity BulletType\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8
		EntityType BulletType\Mesh,3
	EndIf
	
	TurnEntity player,0,-MouseXSpeed(),0
	;TurnEntity player,MouseYSpeed(),0,0
	
	UpdateWorld
	RenderWorld
	
	Locate 0,0
	;Print TrisRendered()
	
	DrawImage Sight,GraphicsWidth() / 2,GraphicsHeight() / 2
	
	For biter.BulletType = Each BulletType
		MoveEntity biter\mesh,0,0,1
		If Abs(EntityX(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityY(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityZ(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		EndIf
	Next
	
	For thisEnemy.EnemyType = Each EnemyType
		For thisBullet.BulletType = Each BulletType
			If EntityCollided(thisBullet\mesh,4) = thisEnemy\mesh Then
				FreeEntity thisEnemy\mesh
				FreeEntity thisBullet\mesh
				Delete thisEnemy
				Delete thisBullet
			EndIf
		Next
	Next
	
	Color 0,0,0
	Locate 0,0
	Print EntityDistance(player,Gun)
	
	Flip
Wend

FreeEntity Level
FreeEntity Gun
FreeEntity Camera
FreeEntity Bullet
FreeEntity player
FreeEntity light
FreeImage Sight
FreeSound GunFire
FreeTexture tex
CloseFile Levels
CloseFile Levelfile

For bulletType.BulletType = Each BulletType
	FreeEntity bulletType\mesh
	Delete bulletType
Next

For EnemyType.EnemyType = Each EnemyType
	FreeEntity EnemyType\mesh
	Delete EnemyType
Next

End

Function CreateTree(file$,width#,Height)

tree = CreateMesh()
surf1 = CreateSurface(tree)

v0 = AddVertex(surf1,-1.0,-1.0,0,0,0)
v1 = AddVertex(surf1,1.0,-1.0,0,1,0)
v2 = AddVertex(surf1,1.0,1.0,0,1,0)
v3 = AddVertex(surf1,-1.0,1.0,0,0,1)

tri0 = AddTriangle(surf1,v0,v1,v2)
tri1 = AddTriangle(surf1,v0,v2,v3)

v4 = AddVertex(surf1,-1.0,0,-1.0,0,0)
v5 = AddVertex(surf1,1.0,0,-1.0,1,0)
v6 = AddVertex(surf1,1.0,0,1.0,1,1)
v7 = AddVertex(surf1,-1.0,0,1.0,0,1) 

tri2 = AddTriangle(surf1,v4,v5,v6)
tri3 = AddTriangle(surf1,v4,v6,v7)

UpdateNormals tree

tex = LoadBrush(file$,4) ; using masked flag (4)

RotateTexture tex,180
PaintMesh tree,tex

EntityFX tree,16 ; make visible from both sides

Return tree

End Function

Function LoadSkyBox( file$ )
	m=CreateMesh()
	;front face
	b=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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,100,100,100
	FlipMesh m
	EntityFX m,1
	Return m
End Function

Function Mid3dHandle(mesh)
 ux#=-100000
 uy#=-100000
 uz#=-100000
 lx#=100000
 ly#=100000
 lz#=100000
 cs=CountSurfaces(mesh)
 For s=1 To cs
  surf=GetSurface(mesh,s)
  cv=CountVertices(surf)-1
  For v=0 To cv
   vx#=VertexX#(surf,v)
   vy#=VertexY#(surf,v)
   vz#=VertexZ#(surf,v)
   If vx#<lx# Then lx#=vx#
   If vx#>ux# Then ux#=vx#
   If vy#<ly# Then ly#=vy#
   If vy#>uy# Then uy#=vy#
   If vz#<lz# Then lz#=vz#
   If vz#>uz# Then uz#=vz#
  Next
 Next
 ax#=(ux#+lx#)/2
 ay#=(uy#+ly#)/2
 az#=(uz#+lz#)/2
 PositionMesh mesh,-ax#,-ay#,-az#
End Function


Dude, you did the same thing in this section of code:
	If MouseDown(1)
		bulletType.BulletType = New BulletType
		bulletType\mesh = CopyMesh(bulletMesh)
		RotateEntity BulletType\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		PlaySound GunFire
		PositionEntity BulletType\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8
		EntityType BulletType\Mesh,3
	EndIf

You already used the variable named BulletType as the name of a TYPE. You can't use it again (even lowercase bulletType) as a type-instance-handle.

Change it to this:
	If MouseDown(1)
		thisbullet.BulletType = New BulletType
		thisbullet\mesh = CopyMesh(bulletMesh)
		RotateEntity thisBullet\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		PlaySound GunFire
		PositionEntity thisBullet\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8
		EntityType thisbullet\Mesh,3
	EndIf


And here you did it again:
For bulletType.BulletType = Each BulletType
	FreeEntity bulletType\mesh
	Delete bulletType
Next

For EnemyType.EnemyType = Each EnemyType
	FreeEntity EnemyType\mesh
	Delete EnemyType
Next

Do you see what you're doing wrong in the above two loops?

I still have that problem. It still says Mem access violation. In the blitz debugger it says that thisEnemy.EnemyType (Null)
Graphics3D 1024,768,32

AppTitle "Gun Shooter"

Collisions 1,2,2,2
Collisions 3,4,2,1

SetBuffer BackBuffer()

Type BulletType
	Field mesh
End Type

Type EnemyType
	Field mesh
End Type

Global player = CreatePivot()
PositionEntity player,0,1,1
EntityRadius player,.6
EntityType player,1

camera = CreateCamera( player )
CameraRange camera,.1,200

light = CreateLight()
LightColor light,32,32,32
TurnEntity light,45,45,0

Global Sight = LoadImage("Sight.bmp")
Global GunFire = LoadSound("gunfire.wav")
Global Gun = LoadMesh("Weapons\SWATRifle.3ds",player)
Global EnemyMesh = CreateCube()
Global BulletMesh = LoadMesh("Weapons\Bullet.3ds")

If Sight = 0 Then RuntimeError "File: 'Sight.bmp' not found"
If GunFire = 0 Then RuntimeError "File: 'gunfire.wav' not found"
If Gun = 0 Then RuntimeError "File: 'SwatRifle.3ds' not found"
If BulletMesh = 0 Then RuntimeError "File: 'Bullet.3ds' not found"

Dim Trees(5)

;Trees(0) = CreateTree("Levels\Leyland Cypress.jpg",130,317)

;RotateEntity Trees(0),90,90,90

;PositionEntity(Trees(0),10,1,10)

EntityType BulletMesh,3

HideEntity BulletMesh

Levels = OpenFile("Levels.dat")

ReadLine(Levels)

leveloc$ = ReadLine$(Levels)

Levelfile = OpenFile("Levels" + leveloc)

LevelType$ = ReadLine$(Levelfile)

If LevelType$ = "Terrain" Then
	Pos = FilePos(Levelfile)
	Level = LoadTerrain("Levels" + ReadLine(Levelfile))
	SeekFile(Levelfile,pos)
	terrain = LoadImage("Levels" + ReadLine(Levelfile))
	tex = LoadTexture("Levels" + ReadLine(LevelFile))
	EntityTexture Level,tex
ElseIf LevelType$ = "Maplet" Then
	Level = LoadMesh("Levels" + ReadLine(LevelFile))
Else
	RuntimeError "Invalid Level Type Code: L295"
EndIf

For i = 1 To 10 
	EnemyType.EnemyType = New EnemyType
	EnemyType\mesh = CopyMesh(EnemyMesh)
	EntityType EnemyType\mesh,4
Next

;CameraFogMode camera,1

;CameraFogColor camera,255,255,255

;CameraFogRange camera,1,10

If Level = 0 RuntimeError "File: 'L1Field.jpg' not found"

If GunFire = 0 Then
	RuntimeError "File: '9mm.wav' not found"
EndIf

ScaleEntity Gun,0.9999,0.9999,0.9999

MaskImage Sight,255,255,255
MidHandle Sight

For EnemyType.EnemyType = Each EnemyType
	If LevelType$ = "Terrain" Then
		PositionEntity EnemyType\mesh,Rand(0,ImageWidth(terrain)),0,Rand(0,ImageHeight(terrain))
	ElseIf LevelType$ = "Maplet
		PositionEntity EnemyType\mesh,Rand(0,MeshWidth(Level)),0,Rand(0,MeshHeight(Level))
	EndIf
	EntityType EnemyType\mesh,4
Next

FreeImage terrain

LoadSkyBox("World")

MoveEntity Gun,.1,-.1,0

EntityFX Level,1
EntityType Level,2

sp# = .05
ey# = EntityY(player)

PositionEntity Gun,EntityX(player) + .3,EntityY(player) - 1,EntityZ(player) - 1

;WireFrame True

While Not KeyHit(1)

	yv# = EntityY(player) - ey
	ey = EntityY(player)
	
	If KeyHit(57) yv=.1
	
	If KeyDown(54) Then
		sp# = 2
	ElseIf KeyDown(42) Then
		sp# = .2
	Else
		sp# = .05
	EndIf
	
	MoveEntity player,0,yv-.005,0
	
	If KeyDown(30)
		TurnEntity camera,-2,0,0
		TurnEntity Gun,-2,0,0
	EndIf
	
	If KeyDown(44)
		TurnEntity camera,+2,0,0
		TurnEntity Gun,+2,0,0
	EndIf
	
	If KeyDown(203) TurnEntity player,0,2,0
	If KeyDown(205) TurnEntity player,0,-2,0
	
	If KeyDown(200) MoveEntity player,0,0,sp
	If KeyDown(208) MoveEntity player,0,0,-sp
	
	RotateEntity Gun,EntityPitch(player),0,0
	
	If KeyHit(156)
		PointEntity player,Gun
	EndIf
	
	If MouseDown(1)
		thisbullet.BulletType = New BulletType
		thisbullet\mesh = CopyMesh(bulletMesh)
		RotateEntity thisBullet\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1)
		;PlaySound GunFire
		PositionEntity thisBullet\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8
		EntityType thisbullet\Mesh,3
	EndIf 

	
	TurnEntity player,0,-MouseXSpeed(),0
	;TurnEntity player,MouseYSpeed(),0,0
	
	UpdateWorld
	RenderWorld
	
	Locate 0,0
	;Print TrisRendered()
	
	DrawImage Sight,GraphicsWidth() / 2,GraphicsHeight() / 2
	
	For biter.BulletType = Each BulletType
		MoveEntity biter\mesh,0,0,1
		If Abs(EntityX(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityY(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		ElseIf Abs(EntityZ(biter\mesh,1)) > 1000
			FreeEntity biter\mesh
			Delete biter
		EndIf
	Next
	
	For thisEnemy.EnemyType = Each EnemyType
		For thisBullet.BulletType = Each BulletType
			If EntityCollided(thisBullet\mesh,3) = thisEnemy\mesh Then
				FreeEntity thisEnemy\mesh
				FreeEntity thisBullet\mesh
				Delete thisEnemy
				Delete thisBullet
			EndIf
		Next
	Next
	
	Color 0,0,0
	Locate 0,0
	Print EntityDistance(player,Gun)
	
	Flip
Wend

FreeEntity Level
FreeEntity Gun
FreeEntity Camera
FreeEntity Bullet
FreeEntity player
FreeEntity light
FreeImage Sight
FreeSound GunFire
FreeTexture tex
CloseFile Levels
CloseFile Levelfile

For bulletType.BulletType = Each BulletType
	FreeEntity bulletType\mesh
	Delete bulletType
Next

For EnemyType.EnemyType = Each EnemyType
	FreeEntity EnemyType\mesh
	Delete EnemyType
Next

End

Function CreateTree(file$,width#,Height)

tree = CreateMesh()
surf1 = CreateSurface(tree)

v0 = AddVertex(surf1,0,-1.0,1.0,0,0)
v1 = AddVertex(surf1,0,-1.0,-1.0,1,0)
v2 = AddVertex(surf1,0,1.0,-1.0,1,0)
v3 = AddVertex(surf1,0,1.0,1.0,0,1)

tri0 = AddTriangle(surf1,v0,v1,v2)
tri1 = AddTriangle(surf1,v0,v2,v3)

v4 = AddVertex(surf1,-1.0,0,-1.0,0,0)
v5 = AddVertex(surf1,1.0,0,-1.0,1,0)
v6 = AddVertex(surf1,1.0,0,1.0,1,1)
v7 = AddVertex(surf1,-1.0,0,1.0,0,1) 

tri2 = AddTriangle(surf1,v4,v5,v6)
tri3 = AddTriangle(surf1,v4,v6,v7)

UpdateNormals tree

tex = LoadBrush(file$,4) ; using masked flag (4)

RotateTexture tex,180
PaintMesh tree,tex

EntityFX tree,16 ; make visible from both sides

Return tree

End Function

Function LoadSkyBox( file$ )
	m=CreateMesh()
	;front face
	b=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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=CreateBrush(0,0,0)
	s=CreateSurface( m,b )
	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,100,100,100
	FlipMesh m
	EntityFX m,1
	Return m
End Function

Function Mid3dHandle(mesh)
 ux#=-100000
 uy#=-100000
 uz#=-100000
 lx#=100000
 ly#=100000
 lz#=100000
 cs=CountSurfaces(mesh)
 For s=1 To cs
  surf=GetSurface(mesh,s)
  cv=CountVertices(surf)-1
  For v=0 To cv
   vx#=VertexX#(surf,v)
   vy#=VertexY#(surf,v)
   vz#=VertexZ#(surf,v)
   If vx#<lx# Then lx#=vx#
   If vx#>ux# Then ux#=vx#
   If vy#<ly# Then ly#=vy#
   If vy#>uy# Then uy#=vy#
   If vz#<lz# Then lz#=vz#
   If vz#>uz# Then uz#=vz#
  Next
 Next
 ax#=(ux#+lx#)/2
 ay#=(uy#+ly#)/2
 az#=(uz#+lz#)/2
 PositionMesh mesh,-ax#,-ay#,-az#
End Function

The error occurs on this line:
If EntityCollided(thisBullet\mesh,3) = thisEnemy\mesh Then


Did you even read my posts above???????


You still haven't changed the two loops I mentioned in the post just above your last post.


And look at this:
For EnemyType.EnemyType = Each EnemyType
	If LevelType$ = "Terrain" Then
		PositionEntity EnemyType\mesh,Rand(0,ImageWidth(terrain)),0,Rand(0,ImageHeight(terrain))
	ElseIf LevelType$ = "Maplet
		PositionEntity EnemyType\mesh,Rand(0,MeshWidth(Level)),0,Rand(0,MeshHeight(Level))
	EndIf
	EntityType EnemyType\mesh,4
Next
YOU DID THE SAME THING!
You can't do this:
For EnemyType.EnemyType = Each EnemyType
EnemyType is a TYPE. You can't use it as a variable.
variable    type
   |          |
   |          |
   V          V
EnemyType.EnemyType


Change the variable to something else, like 'thisEnemy'.

I didn't see that in my code.