Axe Software Forums
  Quest Developer Forum
  Does Quest have a built in battle engine


Author Topic:   Does Quest have a built in battle engine
Gokuden posted 14-07-2001 22:18 GMT     
if not do you know any engine that does?
MaDbRiT posted 14-07-2001 22:27 GMT          
No, Quest doesn't have a built in battle engine, but I believe several users (who contribute here) have made / are making their own battle engines for Quest.

I hope one of them decides to complete a battle engine and implement it as a library - that would be a popular addition I think.

In the meantime Campbell Wild's ADRIFT program already has a battle engine - but I don't personally think it it anything like as nice a product as Quest in any other area.


Al

Tyrant posted 15-07-2001 06:08 GMT          
Well I may implement my engine in a library when my game is completed, but not until then. It's pretty simple, but I feel it could be greatly improved and include more detail and features. I think Wizard and/or Computer Whizz is making one too.
carlii posted 15-07-2001 06:20 GMT          
Well I would like to create SOME sort of engine but I don't know how to write ASL. Is there some way of making an engine by just using QDK?
Computer Whizz posted 15-07-2001 14:49 GMT          
Yes. What I really need to know is how to check a player's stats.....

I remember reading a while back about putting in properties to characters (NPC's) by adding something into the define block..... now I have discussed this before, and didn't really understand it or something. Now with each NPC I want to add the property "HP;100" and other values like that. Do I HAVE to change the value name or what not for each character? Or can I have the same name and call the HP in some way?
Even I'm confused now!

--CW (development halted for now!)

Tyrant posted 15-07-2001 18:13 GMT          
Carlii, yes you can create one with QDK as QDK works just like ASL. However, I don't recommend it. Using QDK to create a battle engine, especially one as big as mine, can be a very time consuming effort. It can also be very confusing if you don't have things in the right order... but anyway, yes it is possible.

Computer Whizz, could you give an example of what you're trying to say? I think I know what you're talking about, and I ran into a similar problem with my "engine".

Computer Whizz posted 17-07-2001 01:12 GMT          
ok.... say:

you are a player and you run into 3 enemies in one room.
One enemy has HP; 15 in it's properties;
The other has HP; 20 in it's properties.
Now I want it so that when you type "Shoot #enemy#" it would check that enemies properties and take down their HP by whatever! Then after killing both, they then go into the next room and run into another 3 enemies.
E1= HP; 20
E2= HP; 10
E3= HP; 13

Now can I do this? Or do I need to do something VERY complicated with adding stuff, and checking all this other stuff?
I'm sure I've read it somewhere but I can't remember....
Thank you!

--CW

sweetguy posted 18-07-2001 21:36 GMT          
ok it's no really that hard. i'll do it in proc.s:

'this is the command to fight

command <hit #person#> do <fight proc.>

'this is the fighting room

define room <ring>
look <a ring where you fight>
define character <boxer>
gender <he>
look <a boxer>
say <hit me>
end define
end define

'this is the proc to fight

define procedure <fight proc>
'first you want to give the person some hp
' you can do that by seting var.s like this

if here <#person#> then do <hp proc>

'ok i'll show that in the next proc
'now i show you how to take hp
'you just type hit #person# so take some hp

set <#personhp#; -1>
'now when he dies take him out
if has <#personhp#; = 0> then hidechar <#person#>

end define

'this is to give them hp

define procedure <hp proc>
if is <#person#; boxer> then <personhp; 2>
end define

ok i was in a rush so it's messy but it should be right though i haven't tryed it yet. you can add a random gen. to see if he hits blocks or you miss. and if he hits you back.

Computer Whizz posted 18-07-2001 22:37 GMT          
So you're saying:

if there's a room with 2 monsters (a clown and a cow) and to hit them it would be:

Attack #enemy#
do #enemy#_proc

===enemy_proc===
setvar <#enemy#hp; -1> (or random)
if is <#enemy#hp; =0> then <remove object #enemy# from play> else <>
===end proc===

now is that it? I know how to set it up, but is this it?
I'm just off to re-read the ASL-284 documents and hope it's in there!

--CW

sweetguy posted 26-07-2001 08:41 GMT          
yeah that's right. sorry took so long but i've been busy.
Computer Whizz posted 26-07-2001 21:13 GMT          
Actually it isn't...... it's something like $objectproperty(#object#;#properyname#)$ to get it... and property (#object#;#name&data#) but I'm using it in this demo program I'm setting up :)
It should be done some time tomorrow..

--CW