Me and saikoro (mainly me) have been pulling out our hair recently on this uber crappy problem. Basically, like in the container demo, we want an enemy to follow us, and be directed at us. We can move around, but the stupid thing just sits there and does jack. Frame reducing jack.
Basically this is the whole source:
rem Ballistic: A Doom Remake
`ObjectNumbers
`fine steve we wont use fscking object numbers :(
`ok matty, thats good, because your gf was shouting all those numbers last night, and it would have caused errors.
`Initial Setup
sync on : sync rate 60 : AI start : AI Set Radius 2.5
set display mode 800, 600, 32
temp = make vector3(1)
dim shootTimer(3) as float
phy start
`Media-Objects
Level1=B3D load object(\"Media\\Models\\debuglevel.x\",1)
Gun1=B3D load object(\"Media\\Models\\assaultrifle.x\",1)
Player1=B3D make object box(10,80,10)
lmLevel1=B3D load object(\"Media\\Models\\debuglevel_lm.x\",1)
`Setup-Level
ghost object on lmLevel1,1
set ambient light 100
phy make rigid body static mesh Level1
phy make rigid body static mesh lmLevel1
texBlueKey=IMG load image(\"Media\\Images\\star.jpg\")
GUI=IMG load image(\"Media\\Images\\gui.png\",1)
`Position-Camera
set camera range 1,10000
autocam off
`Position-Player
position object Player1,20,175,20
`Position-Gun
lock object on Gun1
position object Gun1,object position x(Player1)+5,object position y(Player1)-10,object position z(Player1)
disable object zdepth Gun1
`Position-Level
position object Level1,0,0,0
position object lmLevel1,0,0,0
`Setup-Player
phy make capsule character controller Player1,20,175,20,10,80,1,60,0.0
AI Add Player Player1
`Scale-Gun
scale object Gun1,10,10,20
`First KeyCard
BlueKey=B3D make object plain(32,32)
ghost object on BlueKey
set object light BlueKey,0
set object ambient BlueKey,0
set object fog BlueKey,0
texture object BlueKey,texBlueKey
position object BlueKey,140,32,950
B3D object to billboard BlueKey
phy make trigger sphere 1,140,32,950,32
enemy1=B3D load object(\"Media/Models/Characters/Colonel-X.x\",1)
scale object enemy1,140,200,140
phy make capsule character controller enemy1,200,0,200,80,200,1,60,0.0
AI Add Enemy enemy1,1,0
AI Set Entity Speed enemy1,125
AI Set Entity View Arc enemy1,90,170
AI Set Entity View Range enemy1,50
AI Set Entity Can Strafe enemy1,1
AI Set Entity Aggressive enemy1
position object enemy1,200,0,200
do
paste image GUI,0,0,1
`Camera/Gun Movement
position camera object position x(Player1),object position y(Player1)+75,object position z(Player1)
position object Gun1,0,-1.5,3
camAngY#=camera angle y(0)
if upkey()=1
move object Player1,125
phy move character controller Player1,125
else
phy move character controller Player1,0
endif
if downkey()=1
move object Player1,-125
phy move character controller Player1,-125
else
phy move character controller Player1,0
endif
if leftkey()=1
camAngY#=camAngY#-.75
yrotate camera camAngY#
yrotate object Player1,camAngY#
endif
if rightkey()=1
camAngY#=camAngY#+.75
yrotate camera camAngY#
yrotate object Player1,camAngY#
endif
remstart
`KeycardPickup
if phy trigger exist(1)=1
null=phy get trigger data (1)
idKey=phy get trigger object a( )
idEntity=phy get trigger object b( )
if idKey=1 and idEntity=Player1
phy delete trigger 1
delete object BlueKey
endif
endif
remend
`Fire Gun
if reloadTime=0
if mouseclick()=1
`SetReloadTime
reloadTime=10
`MakeBullet
bulletNum=GetNextFreeObject()
make object sphere bulletNum,1
position object bulletNum,camera position x(),camera position y()-5,camera position z()
phy make rigid body dynamic sphere bulletNum
phy set rigid body mass bulletNum,10
`Fire with force
oldx#=camera position x()
oldy#=camera position y()
oldz#=camera position z()
move camera 1
set vector3 1,camera position x()-oldx#,camera position y()-oldy#,camera position z()-oldz#
normalize vector3 1,1
move camera -1
force#=10000
move object bulletNum,20
phy add rigid body force bulletNum,x vector3(1)*force#,0,z vector3(1)*force#,3
`phy add rigid body force bulletNum,x vector3(1)*force#,y vector3(1)*force#,z vector3(1)*force#,3
endif
else
dec reloadTime,1
endif
phy update
B3D update billboards
sync
loop
function GetNextFreeObject()
obj=1
while object exist(obj)=1
inc obj,1
endwhile
endfunction obj
phy end
Function Useless()
NULL = EXT Initialized()
NULL = BMP Initialized() : NULL = IMG Initialized()
NULL = SPR Initialized() : NULL = STR Initialized()
REM X = Memblock Exist( 1 )
If Bitmap Exist( 0 ) = 1 Then Null = 0
If File Exist(\"\") = 1 Then Null = 0
If Object Exist(1) = 1 Then Null = 0
If Image Exist(1) = 1 Then Null = 0
If Sprite Exist(1) = 1 Then Null = 0
d=mouseclick()
EndFunction
the parts giving me trouble are:
enemy1=B3D load object(\"Media/Models/Characters/Colonel-X.x\",1)
scale object enemy1,140,200,140
phy make capsule character controller enemy1,200,0,200,80,200,1,60,0.0
AI Add Enemy enemy1,1,0
AI Set Entity Speed enemy1,125
AI Set Entity View Arc enemy1,90,170
AI Set Entity View Range enemy1,50
AI Set Entity Can Strafe enemy1,1
AI Set Entity Aggressive enemy1
position object enemy1,200,0,200
I dont see why, but maybe I am doing something. It doesnt give errors, just a stupid looking guy sitting there.