Prevent Spell-casting by Certain Monsters

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. You may Image to help finance the hosting costs of this forum.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

CSBuild 1.65 and CSBwin 9.8v18 and documentation should fix these problems.

See &GLOBAL@

A nonsense spell never disabled action because the disable time was
in the spell's definition. However, if you have overridden the disable time
then I honor your request even if the spell is nonsense.
User avatar
Florent
Um Master
Posts: 457
Joined: Sun Nov 14, 2004 5:03 pm
Location: Paris, France
Contact:

Post by Florent »

Pardon me sirs :wink: , I'd like to know if I should upgrade to the latest version v18, or if I should just carry on with v14 and wait until Paul posts a new message in the "*** DOWNLOAD LATEST CSBWIN & CSBUILD HERE ***" thread ?
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Unless you need the features in later versions you should
probably save yourself the trouble of downloading a new
'micro-version' every day.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Look at this trace:

Code: Select all

 LOAD Parameter A = 6508 (6508)
  LOAD INTEGER 0  (6508 0)
  LOAD INTEGER 5  (6508 0 5)
  &Cell@ { 4 19 5 0 1} ()            &&parameter 2 is 5(=bashed)
  LOAD INTEGER 2  (2)
  &Fetch  (5)                              &&parameter 2 is 5(=bashed)
  LOAD INTEGER 0  (5 0)
  LOAD INTEGER 2  (5 0 2)
  &Store  (5)                              &&change parameter 2 to 0 (=opened)
  LOAD Parameter A = 6508 (5 6508)
  LOAD INTEGER 0  (5 6508 0)
  LOAD INTEGER 5  (5 6508 0 5)
  &Cell!  (5)                                &&implement the changes
  MESSAGE CLEAR delay=0, 6(11,12)0
000034 timer create         049 06 DLY=0000 0a 00 0b 0c 00 01 92feff7f
 (5)
  LOAD INTEGER 2  (5 2)
  &Fetch  (5 0)                          &&parameter 2 is 0(=opened)
  LOAD Parameter A = 6508 (5 0 6508)
  LOAD INTEGER 0  (5 0 6508 0)
  LOAD INTEGER 5  (5 0 6508 0 5)
  &Cell@ { 4 19 5 0 1} (5 0)       &&parameter 2 WAS NOT CHANGED!
(0)RETURN (5 0)
Also, if I change the disable time of a spell, it only works if I set the action to anything but value 1(no action). Logical. But then I need a working action with no message. Because a nonsense spell, if working will say "... mumbles a meaningless spell".

By the way, here's a list of the current possible values for the action (parameter 0):
L0: normal action, normal message
L1: no action, no message
L2: this spell is too difficult. study it
L3: the spell fizzles
L4: the spell fizzles and dies
L5: this spell is too difficult.
L6: %caster% needs more practice with this spell.
L7: this spell requires a component.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I fixed one problem with the &CELL!. There may be others.
Let me know.

I arranged that any of the Spell actions that terminate the spell
will honor the DelayTime parameter if it is not minus one.
User avatar
Des
Um Master
Posts: 461
Joined: Wed Jun 11, 2003 11:58 pm
Location: Southampton, UK

Post by Des »

Paul,

I've only just noticed that you are now a Grand Master - remember that with great power comes great responsibility (and it is not just hitting people over the head with black puddings).

Image
User avatar
PaulH
Ghastly gastropod
Posts: 3763
Joined: Wed Aug 07, 2002 10:27 pm
Location: Level 6

Post by PaulH »

Well, I couldn't have put that any better if I tried.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

just hitting people over the head with black puddings
Does your head hurt?
User avatar
Des
Um Master
Posts: 461
Joined: Wed Jun 11, 2003 11:58 pm
Location: Southampton, UK

Post by Des »

As a Grand Master you get to wear an unfeasably large flat cap, so no.

Someone better get this thread back on topic - Ecky Thump has no connection with Dungeon Master, although it could be an interesting alternative Ninja attack mode, and there was a Black Pudding monster in D&D which I seem to remember divides into two smaller puddings if you lightning bolt it.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Hello, should we expect some new features for the days to come? Or are you on holidays?

I was thinking, maybe you could put a sticky thread listing your cards?
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

There really are no new features in my deck of cards.
There are things that might be nice but seem unessential or not
worth too much effort right now. Like provide a program icon for
the PocketPC version.

The things I have done recently are mostly responses to your
urgent requests. I think i will keep it that way for a while.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

In this case may I recall you two requests for the monster attack filter?
-access to the Hitpoints of individual creatures
-other missiles like rocks, daggers, etc, and deathclouds
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

may I recall you two requests
You may. And you probably should.

I think I can do some things along these lines. The first should
be easy. The second I will have to decide how to approach.
Right now I am thinking that a &THROW command might be in order.
It could be used anywhere, not just in the Monster Attack Filter.
It would create a missile and put into the missile an object found
in the dungeon.
Something like: &THROW
with parameters
launch site
direction
object location (perhas negative could be spells like fireball)
speed
energy
delta speed
delta energy
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

An excellent idea.
Maybe you could add a "double missile" option.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Add it yourself. Throw two of them. Three if you like.

You see? By making it more general I put the work where it
belongs; in your hands. ;-)
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Ok, but how do I choose the position of the missile inside a tile? Will it be the same position from the object location?
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

The "Launch Site" contains the location and position.

Remember.....all of this has not been decided. These are
my preliminary ideas and are subject to discussion and
modification. That will help me get it right the first time and
not have to fiddle with it later (with backward compatibility problems).
I have not yet written any code or even decided where it will go.

*** EDIT ***

One thing you have to watch out for is to throw from the
front of the monster tile (closest to the direction the missile
will fly) or it will hit any monster in the front position of the
tile on that side. The FTL code takes great pains to do
this so that a monster in the rear does not attack his
companion in the front.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

&THROW and &MONSTER@ have been implemented.

Size4Demo has CSBwin 9.8v20 and a demo of &THROW.
CSBuild1.66 implements the two DSA commands.
The DSA documentation tells how to use the commands.

All tested (but not very well).
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

&throw doesn't leave a trace
what is the first parameter of &throw (type)? It works with 0, but are there other values?

Did you already implement a spell/cloud possibility for &throw? I couldn't find the way to make one.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Weird! I managed to have monsters throwing themselves! They could break free from a caging teleporter this way, very funny. (except CSBwin crashed right after that: it seems that the monsters have no sprite when in missile form....).

I think you should replace the "objectLocation" parameter by an "objectID" in the &throw operation, so we can filter precisely which object we want to throw.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

The DSA documentation tells how to use the commands.
http://www.dianneandpaul.net/CSBwin/doc ... guage.html
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

so we can filter precisely which object we want to throw.
Your plan makes it harder for the beginner to use. Using the location
makes it easy as in my demo. Simply throw the object at A from location
B. It works like the standard missile launcheers.

My plan was that the advanced user (like yourself) would be able to
either move the correct object to an empty location (or create a copy
if you wanted there to be an infinite number) and then launch it from
that location.

The biggest problem is that knowning the object ID does not tell me
the location. And without knowing the location I cannot delete it from
the cell it is currently in. In fact, it may be in a player's backpack or
in a chest or in a monster's possessions or in the cursor or in another
missile or ............??????

Having said all of this, we could add an optional ID so that you would
provide the location and the ID. (-1 means not used). Would you like
me to do that?

Sorry, I left out the line that differentiates between 'throwable' objects
and doors, teleporters, monsters, etc.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I fixed your crash by limiting the object-types that can be thrown.
I added &THROW trace.

CSBwin98v21.rar (So you don't have to download that big file)
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

It's OK for the location instead of the ID, then, with the Fetch, &ADD and &DEL operations I can do what I want. So leave it as it is.
Thank you for the update.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Will you implement a &MONSTER! ? (Is is possible to change the type of monster, the hitpoints?)

Will you implement a &GLOBAL! ? (I'd like to teleport the party this way.)


Another thing, it seems RNMonsterDeath is not a missile but a cloud.
Here's what I found in Code11f52.cpp:

Code: Select all

CreateCloud(RN(RNMonsterDeath), D5W, D7W, D6W, w_20);
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

up
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Teleporting the party is not a simple matter of changing
a couple of numbers. I'll figure some way for you to move the
party but I don't know exactly how yet.

Changing Monster hitpoints is easy. Changing monster
type (or even the number on the group) might be a bit touchy.
What if there are four in the group and you change them to Worms?
Thinking of four Worms frightens me. What if a levitating monster
is over a pit and you change it to a non-levitating monster? It is
easy to sy what should happen but I am not sure how to incorporate
such things into the code. Maybe we could use existing techniques to
kill them, trigger a monster generator, and arrange to teleport the
new monsters to the proper location. If you want three distinct groups
of monsters maybe we could arrange to teleport the three groups
in a cycle. A->B->C->A. Teleporting a monster is not as simple as it
sounds but code exists that I can copy with some assurance that it
will work (Just like the party problem in the first paragraph above).
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Teleporting the party, changing monster hitpoints, and monsters casting deathclouds are the only features I would really want.
I was curious about the possibilty of changing the monster type, but since it is too complex and since I don't have specific plans with it, we can happily forget it, unless some other designers state their opinion.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Try Size4Demo and CSBuild1.68.

You will find demo of &MONSTER! and &TELEPORTPARTY

Good Luck!
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Yessssssssssss! I was getting bored with my player doll full of needles.
Post Reply

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