Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Newcomers DBPro Corner / a looping problem with my battle engine

Author
Message
gothboy 101
20
Years of Service
User Offline
Joined: 31st May 2004
Location: Watonga, ok, usa
Posted: 3rd Oct 2004 03:46
why does this say command out of place at line 102, someone please help me.


www.dragonseige.tk
http://dragonseige.tk
Jac
20
Years of Service
User Offline
Joined: 9th Nov 2003
Location:
Posted: 3rd Oct 2004 04:11
Hi,

The way in which you set up if and endif was out of place at some points in the code.

for every if statement you need and endif

hope I've set it up the way you intended if not post again and we'll try and run through it step by step



HeadlessJC
gothboy 101
20
Years of Service
User Offline
Joined: 31st May 2004
Location: Watonga, ok, usa
Posted: 3rd Oct 2004 04:54
thanks!

www.dragonseige.tk
http://dragonseige.tk
gothboy 101
20
Years of Service
User Offline
Joined: 31st May 2004
Location: Watonga, ok, usa
Posted: 3rd Oct 2004 05:00
[/code]why wont the spheres move?
[code]sync on:sync rate 30
color backdrop rgb(50,50,255)
ink rgb(0,0,0),rgb(0,0,0)
randomize timer()

dim key(256)

type enem
health as integer
startx as integer
startz as integer
endx as integer
endz as integer
move as integer
scale as integer
endtype

dim enemy(100) as enem

make object box 9,500,4,500
move object down 9,5
color object 9,rgb(100,255,100)

for a=10 to 100
make object sphere, a,3,6,6
position objectrnd(1000),0,rnd(1000) a,
color object a,rgb(255,0,0)
enemy(a).health=100
enemy(a).startx=object position x(a)
enemy(a).startz=object position z(a)
enemy(a).endx=object position x(a)+rnd(60)
enemy(a).endz=object position z(a)+rnd(60)
enemy(a).scale=100
next a

load object "dwarf1.x",1
scale object 1,50,50,50
set object ambient 1, 0
set object speed 1, 30
loop object 1, 327, 360
playerhealth=100
`This is needed for the health bar Gothboy
max_hp = 100

do
`Gothboy, this is very easy, I just inserted Tifu's code and it worked perfectly
`It's just you needed the max_hp variable
`first, set the colour to white
INK RGB(0,0,0),0
` now, draw the background box. White box, at bottom of screen, which will be as big as the 'maxhealth' variable
box 0,440,max_hp+1,460

` now for your actual health, colour change to red
INK RGB(250,0,0),0
` and then draw a box, 1 pixel smaller than the previous one in each direction (so that the white box will be an outline) and this box is as long as your health bariable
box 1,441,playerhealth,459
`End Healthbar
if upkey()=1
move object 1,1,
loop object 1, 2, 14
endif
if downkey()=1
move object 1,-1,
loop object 1, 2, 14
endif
if leftkey()=1
loop object 1, 2, 14
yrotate object 1,object angle y(1)-5
endif
if rightkey()=1
loop object 1, 2, 14
yrotate object 1,object angle y(1)+5
endif
if returnkey()=1 and attack=0
attack=16
endif
if attack>0
attack=attack-1
loop object 1, 112, 126
for a=10 to 100
if object exist(a)=1
if object collision(1,a)=1
enemy(a).health=enemy(a).health-30
move object a,-20
enemy(a).scale=enemy(a).scale-20
scale object a,enemy(a).scale,enemy(a).scale,enemy(a).scale
endif
if enemy(a).health<10
delete object a
endif
endif
next a
endif
if attack=1
for a=10 to 100
if object exist(a)=1
if distance(1,a)>50
patrol(a)
else
point object a,object position x(1),0,object position z(1)
move object a,.5
if object collision(a,1)=1
playerhealth=playerhealth-5
move object a,-15
endif
endif
endif
next a
endif
position camera (object position x(1)-sin(object angle y(1))*10),object position y(1)+4,(object position z(1)-cos(object angle y(1))*10)
point camera object position x(1),object position y(1),object position z(1)
text 1,1,str$(playerhealth)

sync
loop



function patrol(object)
if threeD_distance(object position x(object),enemy(object).endx,0,0,object position z(object),enemy(object).endz)<2 then enemy(object).move=1
if threeD_distance(object position x(object),enemy(object).startx,0,0,object position z(object),enemy(object).startz)<2 then enemy(object).move=0
if enemy(object).move=0
point object object,enemy(object).endx,0,enemy(object).endz
move object object,1
endif
if enemy(object).move=1
point object object,enemy(object).startx,0,enemy(object).startz
move object object,1
endif
endfunction




function distance(obj1,obj2)
dist=sqrt(((object position x(obj1)-object position x(obj2))*(object position x(obj1)-object position x(obj2)))+((object position z(obj1)-object position z(obj2))*(object position z(obj1)-object position z(obj2))))
endfunction dist

FUNCTION threeD_distance(x1# AS float, x2# AS float, y1# AS float, y2# AS float, z1# AS float, z2# AS float)

temp = 1
null = make vector3(temp)
set vector3 temp, x1# - x2#, y1# - y2#, z1# - z2#
length_vector = abs(length vector3(temp))
null = delete vector3(temp)

ENDFUNCTION length_vector

function keyready(keyz)
vl=0
if keystate(keyz)=1 and key(keyz) = 0
key(keyz) = 1
vl=1
endif
if keystate(keyz)=0
key(keyz) = 0
vl = 0
endif
endfunction vl

www.dragonseige.tk
http://dragonseige.tk

Login to post a reply

Server time is: 2024-09-23 02:31:11
Your offset time is: 2024-09-23 02:31:11