help with DSAs!

Discuss Chaos Strikes Back for Windows and Linux, an unofficial port of Chaos Strikes Back to PC by Paul Stevens, as well as CSBuild, an associated dungeon editor.

Moderator: Zyx

Forum rules
Please read the Forum rules and policies before posting.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

yay! thank you for that! now I can teleport monsters from:
-opened doors,
-closed pits,
-opened and closed fake walls, visible and invicible

wchich was undoable, because ordinary teleporter couldn`t lay on them
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

If this is a duplicate, I apologize. I cannot find
the original post anywhere.

Adamo wrote privately:
DSA "move_monster from A to B" doesn`t work.
I'll reply publicly because it might help someone else.

You cannot simply place the DSA somewhere in the
dungeon and expect it to move monsters around.
You must trigger the DSA. An easy way is to put an
invisible pressure pad at location A, operated by a
monster, and directed to the DSA as a target. When the
monster steps on the pad a message will be sent to the
DSA and the monster will be moved from A to B. Does
that make sense?

Moreover, you put a "Swap Empty Flask To Potion"
DSA there. Not a "Move Monster" DSA. So there are a
couple of thing that need repair.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Adamo wrote:
sometemes giggler (one) generator generates mummies
(four) instead of one giggler.
Again, a public reply to clear up any confusion.

Adamo: For some reason, you copied a Mummy Generator
from 11(16,24) on top of your Giggler Generator. That is
why Mummies are generated there. Your DSA "Monster_
Leaves_Objects" did the damage when I killed the Giggler.
When a giggler dies in a place with a floor decoration, that decoration disappears.
Same problem. You copied a Mummy Generator on top
of the Giggler Generator. The Mummy Generator was last
on the list and had no graphic. If you want the graphic to
remain then you need to add a graphic to your Mummy
Generator. Watch out!!!!! The floor graphics have different
indexes on different levels!!!! You may need to put a
'Square Drain' graphic on the Mummy Generator in order
to get a 'Firepot' graphic on a different level.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Adamo wrote privately:
Sometimes game crashes on level 4 near the stairs
Your Pushbutton at 4(16,36) has a wall decoration with
inconsistent sizes. I think you confused width in pixels versus
width in bytes. At any rate it is a factor of 2 too large.

CSBwin 9.959 (in CSBwin-CSBuild.zip) checks for this
being too large and simply draws trash instead of crashing.
I cannot guarantee that bug wil appear. At least on my computer it happens
sometimes
It would help greatly if you would simply turn on
recording and send the recordnnn.log file along with
everything else. Then I am pretty much guaranteed to
be able to reproduce the problem.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Adamo wrote:
I don`t have any idea how "mummy generator" comes there. When I open my dungeon.dat file by the editor, there is only "giggler (0) generator (fire pot)" actuator at 05(17,38 ). Turning on "reverse target line direction" shows, that the only one order for this tile comes from 05(17,35) (wchich is a preesure pad, that sets this gererator). Could you check it in CSbuilder editor? It seems that the engine does something, wchich is not builded by me.
As I said in my previous reply...Your DSA named
"Monster_Leaves_Objects" put it there. I even told you
where it copied it from. Have you done
any debugging? Turn on 'Timer Trace' and 'DSA Trace'
just as you are about to kill the giggler on that Firepot.
Then turn it off again, save, and quit. Look at the trace file
and you will see what your DSA has done. It copied that
Mummy Generator on top of the Giggler Generator.
I really don't want to debug your DSA for you.
User avatar
beowuuf
Archmastiff
Posts: 20687
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Post by beowuuf »

It sounds like there may be some basic assumption about DSA / CSBwin operation that is being made that is wrong somewhere.

Adamo, exactly what do you think your DSA does and how?
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

that DSA, wchich is responsible for leaving additional objects by the monsters worked that way:
added an object, wchich monster leaved after death. If there was nothing in the tile of the given monster type, added nothing. BUT except doing this, the DSA choosed one tile from the level, where I put that DSA (in this case lvl 11) and added also the contents of that tile. If there was an empty wall, then no problem. But if there was a floor decoration, a generator, etc then engine tried to add this as the second "object" after the first one; that`s why, if the giggler leaved falchion, for example, and also DSA choosed a tile with, say, round grid, the giggler leaved falchion after death. When you picked up a falchion from a floor, then a decoration appeared (or an existing decoration was replaced by new one, wchich may also mean by decoration= none). Of course, if there was no additional object in the "proper" giggler tile, then a decoration was replaced instantly.
That`s why a DSA also copied a mummy generator into the new tile; but a mummy appeared only, when a giggler was killed by a giggler generator tile. It`s because only there is a destination of a pressure pad, wchich sets that generator.

I really don`t have idea, why the engine choosed these tiles, wchich were choosen. For each monster there was different tile, but I couldn`t see any order of it. I was going to check all the "special" tiles on level 11 by each of the monster using timer and DSA traces and then replace these tiles by ordinary walls without any decorations etc., but that would require a LOT of efforts. Besides I would have to partially rebuild the level.. :x So I decided to make a new, standard level (32x32 tiles) especially for the "monster death filter" and this DSA, all filled with walls (except horizontal line of objects, of course). I`m sure that DSA still checks for the new tiles, but in almost empty level won`t find anything except empty walls! :)
However, everything works fine now. :D

So my advice to everyone, who uses this DSA is: make a special, empty level for this one
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
beowuuf
Archmastiff
Posts: 20687
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Post by beowuuf »

So you are sayign the DSA is droppign the correct items AND dropping the wrong items too? M first guess, as you have done this before, is that you have two or more DSAs, one of which is coded wrongly, on the same tile as the 'monster drop' DSA location and so every time a monster dies a few DSAs are operating...the correcto one droppign the falchion, and a different one that is grabbing other items - if it is random, maybe two or three!

The engine is doing NOTHING wrong adamo...this is purely your DSA is doing somethign weird. Dont' adjust your dungeon, adjust your DSA. Check that there isn't multiple DSAs being operated, THEN trace the DSA operation as Paul described
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

I have two DSAs on one tile; they have to be there because of the "monster death filter", wchich both of them are using. MDF destinates them.
But the second DSA, responsible for other thing (checks, when a worm dies on lvl 5), has one parameter (B) at lvl 5 tile, wchich is proper, and another one somewhere on the MDF level.
So maybe you`re right !!
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

ok. As I nearly reached the limit of monsters (thanx to Paul Stevens for AltMonstersGraphics feature & thanx to Kentaro for his AMG tools !), some old DSAs I used with Monster Death Filter and Monster Attack Filter are a bit outdated now: some alternate monsters I`m using should leave different objects depending on the graphics version it uses; for example, the white skeleton (alternate graphics=0) should leave falchion, but a black skeleton (alternate graphisc=3) should leave, for example, a helmet, etc. Is it possible to update the DSA, responsible for leaving objects by monsters, to it`s alternates, depending of an AMG monster version (skeleton AMG=0 leaves object X, skeleton AMG=1 leaves object Y, skeleton AMG=2 leaves object Z, skeleton AMG=3 leaves object Q)?

Right now the DSA is:

Code: Select all

S0: L8 L0 &PARAM@ L4 &@ ??{(3,C0)}
C0: L0 &@ L10 L2 &MONSTER@ L0 L20 &! LA L11 &@ &+ L21 &! L1 &@ L32 &* L2 &@ &+ L32 &* L3 &@ &+ L22 &! JT0
T0: L15 L22 &@ L20 &@ &DUP &1+ L20 &! L21 &@ L15 L65535 F &DUP L1 &NEG &= ?JT3 &%ADD JT0
T3: N
it seems that parameter B is not used (?)
mon0AMG0 leaves object 01
mon0AMG1 leaves object 02
mon0AMG2 leaves object 03
mon0AMG3 leaves object 04
mon1AMG0 leaves object 05
mon1AMG1 leaves object 06
mon1AMG2 leaves object 07
mon1AMG3 leaves object 08
mon2AMG0 leaves object 09
mon2AMG1 leaves object 10
mon2AMG2 leaves object 11
mon2AMG3 leaves object 12
mon3AMG0 leaves object 13
mon3AMG1 leaves object 14
mon3AMG2 leaves object 15
mon3AMG3 leaves object 16
mon4AMG0 leaves object 17
...etc...

Thanx for help !
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
beowuuf
Archmastiff
Posts: 20687
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Post by beowuuf »

Yes, you can use the north, east, west and south facing of each tile to drop alternate items for alt1, alt2 alt3 versions of monsters
. Nothing to do with parameter B

It's late and I'm in bed, I will amend the DSA tomorrow for you if no one else does it tonight

Basically you would need to
- increase the L2 to L9 just before &MONSTER@ (to catch more monster parameters including the graphics value)
Adjust the L15 to L1 at the start of T0 (so you are only initially looking at the north face of the tile for objects to drop)
Create an addition factor based on the value in array 18 (the monster alternate graphics value) that either adds nothing if 0 (normal version) 1 if 1, 3 if 2 and 7 if 3 (as 1 = north, 2 = east, 4 = south and 8 = west)
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

hey, thanx Beo !! Thiat`ll be helpfull !! :D
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Sophia
Concise and Honest
Posts: 4239
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Post by Sophia »

Is storing the alternate graphics in parameter 8 something that has been added to very recent versions of CSB?

It's not in the documentation for &MONSTER@ and when I try to do something that should work (I think) in my dungeon, it says there is nothing there.

This should work in theory, according to what beo has said, but I haven't tested it:

Code: Select all

S0 = L8 L0 &PARAM@ L4 &@ ??{(3,C0)}

C0 = L0 &@ L10 L9 &MONSTER@ L0 L20 &! LA L11 &@ &+ L21 &! L1 &@ L32 &* L2 &@ &+ L32 &* L3 &@ &+ L22 &! L1 L18 &@ &SHIFT L90 &! JT0

T0 = L15 L22 &@ L20 &@ &DUP &1+ L20 &! L21 &@ L90 &@ L65535 F &DUP L1 &NEG &= ?JT3 &%ADD JT0
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

big Thanx Sophia, I`ll check it out !
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

It's not in the documentation for &MONSTER@
Is the page cached on your machine? I just looked
and it is in the page:

http://www.dianneandpaul.net/CSBwin/doc ... guage.html
User avatar
Sophia
Concise and Honest
Posts: 4239
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Post by Sophia »

So it is.

Ok, Adamo, I was able to actually try it and debug it. I had the parameter wrong-- it turned out I had been looking for one too many, which is why it wasn't there.

Anyway, this one has been tested and works:

Code: Select all

S0 = L8 L0 &PARAM@ L4 &@ ??{(3,C0)}

C0 = L0 &@ L10 L8 &MONSTER@ L0 L20 &! LA L11 &@ &+ L21 &! L1 &@ L32 &* L2 &@ &+ L32 &* L3 &@ &+ L22 &! L1 L17 &@ &SHIFT L90 &! JT0

T0 = L15 L22 &@ L20 &@ &DUP &1+ L20 &! L21 &@ L90 &@ L65535 F &DUP L1 &NEG &= ?JT3 &%ADD JT0
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

Thanx!!! You`re saving my dungeon from total chaos ! ;)
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

hello! I need another DSA help..!
I`m using an "overlay" DSA, wchich starts and stops showing overlays by activating (toggling)/disactivating (closing) a DSA:

Code: Select all

0S0: LB &1+ L16 &% SB L0 L50 L0 L0 LB &1+ &OVERLAY M1S
0C0: 1L0 L100 L0 L0 L1 &OVERLAY
0T0: J
1T0: 0J0
But I changed my mind. I made a lot of overlays wchich I want to tie each of them with a proper level; for example - when you`re on level 4th, overlay frames from 1 to 16 are shown; when you`re on level 5th, overlay frames from 17 to 22 are shown; when you`re on level 9th, overlay frames from 23 to 27 are shown; on level 10th frames from 28 to 57... etc.

Like this:
level 0: frames A to B
level 1: frames C to D
level 2: -
level 3: frames E to F
level 4: -
level 5: frames G to H
(...) etc

What I need is when a party comes to, say, 9th level, an overlay in CSBgraphics.dat (wievport overlay) from frames X to Y starts running automaticly (=without toggling/setting a DSA by actuators on the stairs/pits/teleporters destinations). I need this because I want to make special overlays for some levels and I have a lot of stairs/pits/teleporters in a dungeon; I had to put an actuator on each stair, on each teleporter destination and below each pit to change an overlay.

If I have a level filled with a water, where leads, say, 40 pits from higher level, I would have to make 40 actuators, wchich sets proper DSA on each pit destination. And when a whole level uses that overlay, moreover levels below and above uses different overlays, that`d be a really hard task to do.
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

What you need is a 'Party Move' Filter.
first/old x/old y/old level -- last/new x/new y/new level

This would be for information only...you could
not affect the movement and it would occur at
each intermediate location in the case of multiple
teleports/pits. The 'first' would be true on the
first step of the multiple movement and the 'last'
would be true at the final destination. So normally
'first' and 'last' would both be true.

In the case where the final destination has a
Pressure-Pad that activates a pit under the party
or a teleporter at the party's location.......this
would result in two separate moves, each with
its 'first' and 'last'.

Does this sound like it would work for you? You
could make your own 'Entering Level' filter by
using the 'last' and 'new level' flags to send a
message to the new level. In that way, each level
could have its own 'Entering This Level' actuator.
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

Paul Stevens wrote:
Does this sound like it would work for you? You
could make your own 'Entering Level' filter by
using the 'last' and 'new level' flags to send a
message to the new level. In that way, each level
could have its own 'Entering This Level' actuator.
Thank you the explanation. Especially the quoted part.
I was thinking of a DSA, wchich checks, wchich level the party is on, and, due to that, turn on appriopriate overlay frames. How to build an "Entering This Level" actuator? Do I have to put it in every stairs/teleporter/pit destination or only once per level?

I think it would work. I`ve got a bit of multiply teleporters and other oddities, but I could eventually rebuild a dungeon a bit.

I guess that DSA I was thinking about would look like (if doable) similar to the others, where first display state would be responsible for level 0, second - level 1, third - level 2, fourth - level 3, etc., each state with instruction wchich overlay frames to show. For example in state 1 ( for level 0) - instruction to show frames 1 - 32; in state 2 (for level 1) - instruction to show frames 33 - 64; in state 3 - frames 65 - 98; etc, etc. So when entering from level 0 to 1, old 1st state (1-32 frames) is closed and new 2nd state (33-64 frames) is opened.

So - that DSA would have to check wchich level party is and, due to that, turn on appriopriate state.
But I`m ignorant in DSAying so cannot write it.. I don`t even know if that I wrote is sensible.. :oops:
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Well, everything you want to do is easy
with existing tools. EXCEPT you do not
know when the party changes levels.
You have to put pressure pads at every
possible entrance to a level.

Is that correct? Do you agree?

Therefore, I suggested a 'Party Move' filter
to activate your DSA whenever the party
moves. (Step events in other engines).

My suggestion of a 'Entering This Level'
DSA would work as follows:

The 'Party Move' DSA would be activated
every time the party moved. Then it
would decide what level the party was
on and, if it changed, send a message to
the party's new level. In your case, you
could put a DSA on each level to receive
the message and activate whatever
overlays you needed. The DSA on each
level was the 'Entering This Level' filter
that I mentioned.

You may also need a 'Leaving This Level'
notification, depending on your application.
That would be done the same way.
================================
Actually, all of this could be done with existing
tools by having a DSA that simply sits and
activates itself every tick (sends itself messages
wth delay of 1). It examines the party's location
and if it changes levels then it sends a message
to the new level.

It is not as 'Event Driven' as one would
like (it sits and polls rather than
responding to events), but it is not too bad.
The overhead of a single DSA every tick of
the clock is pretty negligible. I will write such
a DSA and post it for you. I was not anxious to
make a new release of CSBwin, anyway!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Go to:

http://www.dianneandpaul.net/CSBwin/DSA_Library/

and you will find a demo of the 'Enter Level'
filter capability implemented with existing
tools.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

At Adamo's request:

I posted a new EnterLevelDemo that
demonstrates the capability to display
an overlay on level two so that the
level appears to be under water.
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

Big thanx for an overlay demonstration!

I`ve got another problem..
Paul Stevens wrote (DSA party fetch):
results [10] through [16] are encoded in four 8-bit bytes: zero, minimum, maximum, current
result[10] = Luck
result[11] = Strength
result[12] = Dexterity
result[13] = Wisdom
result[14] = Vitality
result[15] = Anti-Magic
result[16] = Anti-Fire
By operating on these values, I would like to make seven DSAs, each affecting one of the party attributes:
- strenght,
- dexterity,
- wisdom,
- vitality,
- anti-magic
- anti-fire
- luck
and increase them to the maximum (or just a bit). Or decrease them. Is that doable? For example, I want to make a DSA, wchich (when enabled), increases party`s strenght to the maximum (or up by 30 points, for example) and (when disabled) decreases it to the "normal" (ordinary) state; it should be operated by actuators.. When a party steps on a first pressure pad, that pad sends a SET message to the "affect strenght" DSA and party`s strenght is increased. When a party steps on a second pressure pad, that pad sends a CLEAR message to the "affect strenght" DSA and party`s strenght goes back to the previous state.

By operating these DSAs by pressure pads I could make a few very special places, where party`s strenght, vitality etc. could be highly increased using that way.
Then I could, for example, increase party`s anti-fire in a hall full of shooters (along with an information like "YOUR STRENGHT HAS BEEN INCREASED SOMEHOW" or "YOU ARE IN A BERSERK STATE") or decrease party`s dexterity in a giggler`s room.. etc, etc.

It gives a lot of possibilities for a designer = the game could be yet more complicated. Or it could be used as a hidden mechanisms in a dungeon planned by a designer (when party`s luck is increased by 30 on 9th level, for example).

Is that doable? Please help!
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I don't know any way to change things like strength.
Only the items marked with '*' can be modified.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Are you sure? I think I could modify the attributes. The catterpillar decreases vitality in conflux. I don't have the dungeon.dat to check at the moment how I did it, but maybe the documentation about &CHAR! isn't accurate anymore.

BTW Adamo, it would be easier to change the current stat value instead of the max value for your purpose. You would avoid problems such has what would happen if the character increases his strength through gaining a level while under the boost effect.
User avatar
Adamo
Italodance spammer
Posts: 1534
Joined: Fri Apr 22, 2005 11:59 am
Location: Poland
Contact:

Post by Adamo »

atributtes like strenght, vitality, anti-magic, luck etc. are already modified by some existing items, like rabbit`s foot.
Zyx wrote:
Adamo, it would be easier to change the current stat value instead of the max value for your purpose.
you`re right! I think I misunderstood the meaning of "maximum" in the quoted part (I though it`s 170 points).
What I need: when a normal strenght state is, say, 40, I would like to increase it to, say, by 30 for a moment and, when party goes back to normal state, decrease it back by 30.. just like the rabbit`s foot works (or some other items); increases character`s luck when worn and decreases back when dropped.

There are also potions, wchich increases these values (and increased value starts to glow in the inventory screen using this method).
Spoiler
(\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/) (\__/)
Spoiler
(@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@) (@.@)
Spoiler
(>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<) (>s<)
Post Reply

Return to “Chaos Strikes Back for Windows & Linux (CSBWin) / CSBuild”