Monster moving filter (CSBwin)
Moderator: Zyx
Forum rules
Please read the Forum rules and policies before posting.
Please read the Forum rules and policies before posting.
Monster moving filter (CSBwin)
I almost cleared my autonomous "to do" list. But I have other ideas relying on some possible features, like a monster moving filter.
I'd like to have a chance to trigger a DSA when a monster plans to move, with some other possibilities like:
cancel the movement
choose the direction of facing
choose the tile aimed
Is it possible?
I'd like to have a chance to trigger a DSA when a monster plans to move, with some other possibilities like:
cancel the movement
choose the direction of facing
choose the tile aimed
Is it possible?
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
That is difficult. I have worked on the Monster AI business for
many hours and have not figured out very much. I am afraid that
anything we do in this area will cause bugs for some time to come.
I'll look at it with just the movements in mind to see if there is
anything at all that can be implemented safely.
many hours and have not figured out very much. I am afraid that
anything we do in this area will cause bugs for some time to come.
I'll look at it with just the movements in mind to see if there is
anything at all that can be implemented safely.
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
One thing worries me. There can be thousands of monsters in a
dungeon. DSAs are not too efficient. If we fire up a DSA every time
a monster is about to move we could eaily overwhelm the CPU. I don't
know what to do about this. Restrict to one level. Restrict to particular
monsters. Restrict to particular ?????.
It occured to me that even though I do not know how monsters work I
could relatively easily add code that 'pretends' that there are walls adjacent
to the monster to restrict its movements. Or to restrict its vision. Your DSA
could say:
"Prevent movement to the south and east." (Pretend there are stone walls).
"Prevent vision to the north, west, and south." (As if the party were far away).
"Pretend the party is at relative location (1,2)." (relative to the monster)
I don't quite know what these statements mean exactly. Especially
the 2nd one. But it seems likely we could get them to do some useful
things without breaking the MonsterAI itself.
dungeon. DSAs are not too efficient. If we fire up a DSA every time
a monster is about to move we could eaily overwhelm the CPU. I don't
know what to do about this. Restrict to one level. Restrict to particular
monsters. Restrict to particular ?????.
It occured to me that even though I do not know how monsters work I
could relatively easily add code that 'pretends' that there are walls adjacent
to the monster to restrict its movements. Or to restrict its vision. Your DSA
could say:
"Prevent movement to the south and east." (Pretend there are stone walls).
"Prevent vision to the north, west, and south." (As if the party were far away).
"Pretend the party is at relative location (1,2)." (relative to the monster)
I don't quite know what these statements mean exactly. Especially
the 2nd one. But it seems likely we could get them to do some useful
things without breaking the MonsterAI itself.
Restricting to the current level would be a start, since otherwise I would have added checkups in the DSA to ensure the moving monsters are on the same level as the party.
You could also restrict to a certain distance from the party, like a maximum of 10 tiles away.
The three functions you suggested look very interesting.
You could also restrict to a certain distance from the party, like a maximum of 10 tiles away.
The three functions you suggested look very interesting.
Last edited by Zyx on Sun Mar 13, 2005 11:52 pm, edited 1 time in total.
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
I hope you're asking a question you want to be answered...
PARTY ATTACK FILTER:
Possibility to trigger a DSA, etc.
Access to the action used (from the combo, like punch/kick,warcry)
Possibility to change damage to be done.
Possibility to change time of recovery.
EXAMINING FILTER: (when putting an object on the eye in the inventory screen)
Possibility to trigger a DSA, etc.
Possibility to add other lines of information.
SHOW COMPLETE INFORMATION:
When examining an item, like an apple, you currently don't see if it's broken or poisonned, or cursed.
ADD EXISTING TAGS:
All the objects don't share the same tags, but could. (except maybe chests and potions)
ADD NEW TAGS:
To be discussed... There is already a thread mentionning it. Not sure I need it.
PARTY ATTACK FILTER:
Possibility to trigger a DSA, etc.
Access to the action used (from the combo, like punch/kick,warcry)
Possibility to change damage to be done.
Possibility to change time of recovery.
EXAMINING FILTER: (when putting an object on the eye in the inventory screen)
Possibility to trigger a DSA, etc.
Possibility to add other lines of information.
SHOW COMPLETE INFORMATION:
When examining an item, like an apple, you currently don't see if it's broken or poisonned, or cursed.
ADD EXISTING TAGS:
All the objects don't share the same tags, but could. (except maybe chests and potions)
ADD NEW TAGS:
To be discussed... There is already a thread mentionning it. Not sure I need it.
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
There ain't no such thing as a poisoned apple or a broken apple.When examining an item, like an apple, you currently don't see if it's broken or poisonned, or cursed.
The code sets a 'Cursed' bit for MISC items ( when a Deth Knight
creates an apple upon death..,..of course it never happens .. only
cursed swords ) but it NEVER looks at the cursed bit in MISC items.
You can set an apple 'Cursed' using a DSA. But the graphics.dat file
says that apples cannot be cursed so it does not get printed. You can
fix that by changing the graphics.dat. The code that prints the apple's
characteristics also says that apples cannot be cursed. I fixed that.
If we add poisoned and broken flags to MISC items then I am going to
have to be careful about loading old dungeons in which the bits were
not used and may contain random values. Also, I don't know what the
original graphics.dat file has for these bits. But these problems are
surmountable.
At any rate, I am not going to do anything more right away. I am just
letting you know where things stand and would like feedback from you as
to what you think we should do. The code could ignore the graphics.dat
but that would mean that all MISC items are treated identically as far as
the broken, cursed, and poisoned flags are concerned. It also would mean
that the designer could not plant a 'poisoned' apple without the player
being able to examine the 'poison' flag. If we use the flags in the graphics.dat
then an apple could be poisoned but that would not be printed.
Do you mean additional info between the parentheses? Or aPossibility to add other lines of information
line at the bottom of the current text? Where do you envision that
this text would come from? From a text object in an unused cell
of the dungeon?
Possibility to add other lines of information:
I meant "a line at the bottom of the current text", and I was thinking about "a text object in an unused cell of the dungeon", like with &SAY.
I think the cursed flag should be treated identically for all the items: this flag was already displayed for weapons and armors, and there's no reason curses on other items couldn't be identified.
As for broken and poisonned tags, since they were never displayed and could be used for hidden flags, let's the designer choose by design if he wants to display it or no in the "Examine filter". So don't do anything to display them.
How many supplementary lines of information would fit in the examine window? (Considering a consumable, cursed object which would already use two more lines.) 3 or 4, no?
I meant "a line at the bottom of the current text", and I was thinking about "a text object in an unused cell of the dungeon", like with &SAY.
I think the cursed flag should be treated identically for all the items: this flag was already displayed for weapons and armors, and there's no reason curses on other items couldn't be identified.
As for broken and poisonned tags, since they were never displayed and could be used for hidden flags, let's the designer choose by design if he wants to display it or no in the "Examine filter". So don't do anything to display them.
How many supplementary lines of information would fit in the examine window? (Considering a consumable, cursed object which would already use two more lines.) 3 or 4, no?
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Each line can be in its own color easily. But the parenthesised
list counts as one line an is all in the same color. If you want
individual phrases within the parenthesised list to be in different
colors then we are going to have to do a lot of work to rewrite
the existing code that does the drawing.
list counts as one line an is all in the same color. If you want
individual phrases within the parenthesised list to be in different
colors then we are going to have to do a lot of work to rewrite
the existing code that does the drawing.
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Get the latest 'ViewFilter.rar'It would be enough to be able to color each line
The 'Party Attack' filter is quite possible. But it is going to require a
lot of study on my part to decide a consistent interface and then to
wiggle it into the existing code. In order for it to be less than totally ugly,
I am going to have to rearrange the existing code.
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Mostly possible, I think. Some not as clean as the
other filters because too many parameters come into
play. Its 'ugliness' is one reason I have been putting
it off. If you really need it we can work on it.
But right now I am trying to set up a demonstration of
the custom backgrounds as a proof-of-concept. That
interests me more than the attack filter so that is what I am
doing. When (if?) I finish the demo and nobody needs
me to proceed with it (like doing the walls) then I can get
to your party attack filter business.
other filters because too many parameters come into
play. Its 'ugliness' is one reason I have been putting
it off. If you really need it we can work on it.
But right now I am trying to set up a demonstration of
the custom backgrounds as a proof-of-concept. That
interests me more than the attack filter so that is what I am
doing. When (if?) I finish the demo and nobody needs
me to proceed with it (like doing the walls) then I can get
to your party attack filter business.
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Oh, WOW!!! If you have enough strength to publish aI'll work on the hints
decent Hint File then ConfluxII will become the Grand
Master of all DM-derived games.....The original DM
and CSB will most definitely have to take a back seat.
I cannot imagine the amount of work you have and
will have put into this. It is staggering.
I hope you also put a lot of the history and interesting
facts about your game into the 'Game Information' so
that it will be sure to survive as long as the game itself
survives. I will for sure be showing off ConfluxII as
THE example of what someone managed to accomplish
using my programs.
What the internet has made possible!
Well, I've been working hard on this damned hints file and after formatting 3854 locations, 218 hints and 570 pages, I'm getting weary.
The worst part is linking locations to the hints, and checking there's no error in the location.
Here's an example:
But I realize it wouldn't be so hard for you to read these hints and locations from a .txt file with CSBuild, creating a list of hints and displaying their locations on the maps, with red spots for example, allowing adding or removing a location, and saving back to the hint file (a simple txt file. There is a tool for converting to a .htc file).
It would be save weeks of hard work!
Could you do it?
The worst part is linking locations to the hints, and checking there's no error in the location.
Here's an example:
Code: Select all
JUST A ROOM
(2,8,24)(2,9,24)(2,10,24)(2,8,25)(2,9,25)(2,10,25)(3,1,21)
(3,0,21)(3,0,22)(3,2,22)(3,0,23)(3,1,23)(3,2,23)(5,3,14)(5,2,14)
(5,1,15)(5,2,15)(5,3,15)(5,2,16)(5,30,5)(5,30,4)(5,31,4)(5,29,3)
(5,30,3)(5,31,3)(6,30,0)(6,31,0)(6,29,1)(6,30,1)(6,31,1)(6,30,2)
(6,31,2)(6,30,11)(6,30,12)(6,31,12)(6,30,13)(6,31,13)(6,19,8)
(6,20,8)(6,17,9)(6,18,9)(6,19,9)(6,20,9)(6,19,10)(6,20,10)
(6,19,11)(6,20,11)(6,4,18)(6,5,18)(6,4,19)(6,5,19)(6,3,8)
(6,4,8)(6,3,9)(6,4,9)(10,26,24)(10,27,24)(10,26,25)(10,27,25)
(10,27,26)(12,27,10)(12,28,10)(12,26,11)(12,28,11)(12,29,11)
(12,30,11)(12,25,12)(12,26,12)(12,27,12)(12,28,12)(12,29,12)
(12,30,12)(12,28,13)(12,29,13)(12,30,13)(12,31,13)(12,29,14)
(12,30,14)(12,31,14)(12,28,15)(12,29,15)(12,30,15)(12,31,15)
(12,18,24)(12,19,24)(12,20,24)(12,21,24)(12,23,24)(12,19,25)
(12,20,25)(12,21,25)(12,22,25)(12,23,25)(12,21,26)(12,23,26)
(12,25,25)(12,26,25)(12,27,25)(12,28,25)(12,29,25)(12,30,25)
(12,31,25)(12,27,24)(12,30,24)(12,31,24)(12,31,23)(12,26,26)
(12,27,26)(12,28,26)(12,28,27)(12,30,26)(12,31,26)(12,30,27)
(13,15,28)(13,16,28)(13,15,29)(13,16,29)(13,15,30)(13,16,30)
(13,10,12)(13,11,12)(13,11,11)(13,9,13)(13,10,13)(13,11,13)
(13,12,13)(13,9,14)(13,10,14)(13,11,14)(13,10,15)(13,11,15)
(13,12,15)
A treasureless, puzzleless room. Watch for monsters and pits.
It would be save weeks of hard work!
Could you do it?
- Paul Stevens
- CSBwin Guru
- Posts: 4319
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
I think the hint file is extremely important. I want you to be able
to make the very best possible. I am willing to help. Let us
discuss this off-line. We can probably do something even
more helpful than what you suggest. Perhaps it should be
a formal, permanent part of CSBuild.
to make the very best possible. I am willing to help. Let us
discuss this off-line. We can probably do something even
more helpful than what you suggest. Perhaps it should be
a formal, permanent part of CSBuild.
That is easy for you to say!!!!it wouldn't be so hard for you
I think I already reported, this but I can't find it anymore:
when I set a monster to "poisonned", it becomes invisible!
Also, I think that a jump instruction to a line without operation changes the state of the DSA. For example, J10 set the state to 10 if there's nothing at line 10S0. If I put the operation "N", it works fine.
when I set a monster to "poisonned", it becomes invisible!
Also, I think that a jump instruction to a line without operation changes the state of the DSA. For example, J10 set the state to 10 if there's nothing at line 10S0. If I put the operation "N", it works fine.
finally I dig into this thread! I wonder why it is in Archives section?
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)