Battles

Hey guys, ive been gone for a while, doing some favorite program hopping. I must admit that it was the screenshots that brought me back to working on my game. Good job guys :)! Well, anway, in my game, which just so happens to be The Fellowship of the Ring, there naturally will have to be big battles. I've thought about various ways to do it and I know that it has been discussed earlier. I played around with it a little, and at first i used stamps (having a soldier stamp constantly attacking a goblin stamp). That looks okay, but i think it would leave the user somewhat confused on which enemies they can attack or not. Then, one morning, I got an idea on how to do a battle with killable NPCs. Here is what I have so far:
1: Create a Passive NPC with it's stand animation being an orc attacking in the correct position.
2: Create a Gimli NPC " " "
3 :Do this: Place them next to each other, so that they constantly attack each other. On Gimli's animation, every time he strikes, have a global (i.e. gb_orchealth) add 1.
4: When the global reaches say, 10, kill the orc NPC. On the death event of the orc NPC, do the following:
A: Delete Gimli NPC, and replace with a new one that has a target location of your choice.
B: When reaching location, create a new orc at an entrance or something, In the case of Balin's Tomb, that has a target of Gimli's current position (will probably require some more globals).
😄 When the orc gets to Gimli, replace both gimli and the orc with the same Gimli and orc used above (the attacking ones).
😧 Reset gb_orchealth to 0.
5: Repeat steps, depending on how complex you want it to be, you could have 2-10 or so different Gimlis that go to different locations to fight, and eventually it will loop.

That is my idea. Also, since the orc NPC is passive, you also have the choice of helping out your buddy Gimli and killing the orc. Now, this would be a little too complex for a huge battle, but if you wanted to do something like, say, Amon Hen, where you have a group of characters fighting, it should work.

Let me know what you think.

------------------
I'm not laughing at you,
I'm laughing with you in
mind

hm so you want to make a game you don't intend to show anyone, just for practice, using a world not from your own mind, liscenced characters? cool....i guess you save a real idea that is your own for a real game.
good idea!

------------------
Maybe once a year we should hold hands in a circle, dance around the phallus, and bow to the moon - Michael Savage

(This message has been edited by exilechamp (edited 03-27-2003).)

sounds good. ill have to forward the link to my friend, see if he can play with the idea a bit. might come in handy for the future making games more dynamic.

------------------
Morvera ner Morden

uh, exile, I think that was a little uncalled for. I'm not stupid, I know that they are liscensed characters, etc. I absoluteley did not intend on selling this game. and maybe next time you could be a little bit nicer about it, and not so much sarcasm. The only intntion I had was helping the community.

------------------
I'm not laughing at you,
I'm laughing with you in
mind

i know, you are making a world and cast of characters and story to work with, to further your CGE programming technique and more technically oriented design rather than dealing with a story yourself.

practice is important, i think. i am gonna use the base graphics and stuff for my first "game", just gonna practice the engine, maybe give it to my friends.

------------------
Maybe once a year we should hold hands in a circle, dance around the phallus, and bow to the moon - Michael Savage

and your idea's for this passive NPC stuff that i am so not good at this engine to understand seems awesome, i see alot of cool techniques here, and ideas, and things being developed. your is one of em. it's really cool

i'm a practical kid, i'd go into my first relationship thinking "good practice for social skills"

------------------
Maybe once a year we should hold hands in a circle, dance around the phallus, and bow to the moon - Michael Savage

furthermore, i understand recreating events from a story/world/franchise that already exists gives you the idea's with which you bend the engine to do "things (they) never dreamed of"

------------------
Maybe once a year we should hold hands in a circle, dance around the phallus, and bow to the moon - Michael Savage

Hey, thanks OgreBob! What a great idea! It seems to me that your process should work. I really appreciate you telling us about this. I'm a LOR fan myself. I'd be interested in seeing it, if you intend to. Thanks again!

------------------
-- Debra
Danillitphil Productions

Heya OgreBob, welcome back! Nice to see you returning; your house builder set saved me much time. 🙂

On your idea, the premise is good but there are a few kinks that you need to be aware of so that you can overcome them: (numbers corresponding with the numbers you originally posted)

  1. You can not find NPC coordinates unless its death event or "target reached" event is triggered. Thus you won't be able to just spawn Gimli next to an orc of your choice unless you first figure out a way to make one of the orcs events trigger first so you can grab the coordinates of where it is. If you are just planning on making 1 orc at a time that will appear when Gimli reaches a location, then this will work. For an epic battle, it will have problems.

4b) Remember that if you delete an NPC that it deletes the last NPC of that name that was placed. Thus if this is an epic battle with multiple orcs(all the same NPC), then there is no way of telling which orc to replace.

"Also, since the orc NPC is passive, you also have the choice of helping out your buddy Gimli and killing the orc." ) No, you won't have this choice. You can't attack a passive NPC, only a hostile one. Clicking on a passive NPC will open up its dialog box if it exists, otherwise nothing happens.

Anyways, this was just a food for thought, not a rain on your parade.

Good luck!

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url) | (url="http://"http://ucplugs.evula.net/pog.html")PoG Upcoming Plug-Ins Directory(/url)

Thanks for the input, guys. No hard feelings, Exile. Thanks Stark, I have thought about these things and have ways to fix them:

Originally posted by Stark:
4b) Remember that if you delete an NPC that it deletes the last NPC of that name that was placed. Thus if this is an epic battle with multiple orcs(all the same NPC), then there is no way of telling which orc to replace.

well, since the orc will be one with a constant attacking animation, it won't really be like all of the others. It will be a special one, the other, normal orcs would be the guys that you yourself deal with.

"Also, since the orc NPC is passive, you also have the choice of helping out your buddy Gimli and killing the orc." ) No, you won't have this choice. You can't attack a passive NPC, only a hostile one. Clicking on a passive NPC will open up its dialog box if it exists, otherwise nothing happens.

Actually, Stark, by passive NPC I did mean hostile. If you make a hostile NPC, and then set his battle AI (I.e. berserker, agressive fighter, ranged, etc.) to a choice called "passive" then it should work. The description for passive is something to this affect: "A passive NPC will not try to cast a spell or attack the player unless attacked first." So, I know this would work, because I have used it before, and it's exactly what we're looking for. 🙂

As for the other one, not quite sure what you mean. I guess I'd have to read through my own post again. 😄

Thanks again!

------------------
I'm not laughing at you,
I'm laughing with you in
mind

<b>3) You can not find NPC coordinates unless its death event or "target reached" event is triggered. Thus you won't be able to just spawn Gimli next to an orc of your choice unless you first figure out a way to make one of the orcs events trigger first so you can grab the coordinates of where it is. If you are just planning on making 1 orc at a time that will appear when Gimli reaches a location, then this will work. For an epic battle, it will have problems.</b> (Okay, so how DO you bold?)

It seems to me that he can place a local event in the map. When the Player steps on the event, it could trigger several (differently named) orcs coming to a target. Once the target is reached, then he could do his change-to-animation thing.

He could also place the animation on a timer (Stark developed a timer) or, as he said (I think), a global in the animation, which probably would be a better idea. It hits the end of the global and it could trigger the NPC's death, which then would indicate where the NPC is to do something else.

I'm not really comfortable yet enough with Coldstone to really try to help people, so I may be wrong.

------------------
-- Debra
Danillitphil Productions

(This message has been edited by Debra (edited 03-28-2003).)

Quote

Originally posted by OgreBob:
Actually, Stark, by passive NPC I did mean hostile. If you make a hostile NPC, and then set his battle AI (I.e. berserker, agressive fighter, ranged, etc.) to a choice called "passive" then it should work. The description for passive is something to this affect: "A passive NPC will not try to cast a spell or attack the player unless attacked first." So, I know this would work, because I have used it before, and it's exactly what we're looking for.

Ok...

So are you going to give the orc a movement of 0 so it doesn't wander away from the gimli NPC? What if the player whacks on the NPC a few times and it wimpies and runs away... Gimli NPC will continue to stand there whacking at thin air.

A couple more possible problems. 🙂

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url) | (url="http://"http://ucplugs.evula.net/pog.html")PoG Upcoming Plug-Ins Directory(/url)

Originally posted by Stark Bledfast:

Ok...

So are you going to give the orc a movement of 0 so it doesn't wander away from the gimli NPC? What if the player whacks on the NPC a few times and it wimpies and runs away... Gimli NPC will continue to stand there whacking at thin air.

A couple more possible problems. 🙂

I see your point. Firstly, you give him a morale of 0, so that he doesn't run away. As for the second part, I guess i never thought of that. I guess that you could just give the orc low HP, so that he dies in 1-2 hits. (I was planning on doing this in my game, anyway, since there's gonna be so many orcs running around). Hmm, if I remember correctly, if a hostile NPC commences combat with the player, this launches a sort of global within the game that's called "encounter in progress" or something like that, right? I guess what you could do is make it so that, If encounter in progress, then delete the attacking gimli and just place the Gimli that goes to the next step of the battle script. This way, if the orc runs after you, then Gimli shrugs and runs off to fight the next orc.

Again, thanks Stark for your input. (Hey, my idea is just a brainstorm, anyway). I'd like to see some other people's suggestions too.

Thanks again!

------------------
I'm not laughing at you,
I'm laughing with you in
mind

Quote

Originally posted by Debra:
**< b> ~snip~</b> (Okay, so how DO you bold?)

**

Ooh, ooh I know!!

the answer is use brackets "(--)" not <--> carrot thingys.

stray

{edit- forgot a helpful link (url="http://"http://www.ambrosiasw.com/webboard/ubbcode.html")http://www.ambrosias...rd/ubbcode.html(/url) }

------------------
Coldstone_Dev Resource: (url="http://"http://homepage.mac.com/straytoaster/")Coldstone_Dev Resource(/url)

See Coldstone_Tips at: (url="http://"http://coldroom.150m.com/CGE_Stuff/CGE_Tips.html")CGE_Tips(/url)

(This message has been edited by straytoaster (edited 03-28-2003).)