Recent Posts

Pages: [1] 2 3 ... 10
1
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by Paul R. Stevens on September 19, 2017, 10:31:22 PM »
Engine Version 3.18 is released.
Documentation for Change Class hooks updated.

Neither the modified color escape character nor the
new Change Class Hooks are tested.

I have no idea how to document the escape character feature.
2
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by Paul R. Stevens on September 19, 2017, 07:41:09 PM »
I will have that (and the new colored font escape
character) tomorrow.  Thankfully, hooks are easy to
implement.  Easier to implement than to use, I bet.

AND.....

All those numbers.  They probably belong as parameters
in the SpecialAbility definition.  But I won't insist that it
is better that way.

Also, I notice that your script does not make any checks
for character alignment or race.
3
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by manikus on September 19, 2017, 07:18:23 PM »
I was (as in the past tense) concerned about the naming of the SAs, since now we are required to use ChangeClass. IF there were required SA names for the new scheme, that would be a step in the wrong direction.

What you propose makes perfect sense to me, and I will be happy to write the scripts for when implemented.

As to the factoring, no arguing with that. Take my comment as snarky if you like, since you now were offereing short scripts after I had written a (relatively) long one. ;)
4
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by Paul R. Stevens on September 19, 2017, 06:47:58 PM »
Quote
bunch of little scripts

It is called 'factoring'.  Commonly thought of
as a good thing.

See:
https://en.wikipedia.org/wiki/Decomposition_(computer_science)
5
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by Paul R. Stevens on September 19, 2017, 06:11:58 PM »
My vision:

Every class that allowed 'to' or 'from' changes
would have a Special Ability.  I would call it
'ChangeClass<class>'.  For example, "ChangeClassRanger".
I would not give such a Special Ability to '$$Help'.

The Special ability for Cleric, for example, would
have a script named 'CanChangeClassTo' and a script
named 'CanChangeClassFrom'.

That seems to make reasonable, intuitive sense.
Changing to or from a class is an ability of that class.
Cleric has ability "ChangeClassCleric" and bard has
ability "ChangeClassBard", etc.  The scripts are
very simple, easily understandable, and easy for a
newcomer to extrapolate into a newly defined class.

Now, when a fighter wants to change to a cleric, the
engine will first call any fighter's scripts named
'CanChangeClassFrom'("Cleric") and, if successful, will
call any cleric's scripts named 'CanChangeClassTo'("Fighter").
Notice the plural.....'scripts'.  You could have additional
Special Abilities (perhaps added temporarily during
gameplay) that would modify the ability to change class.
You cannot do that now.

And we would change the return parameter to be positive
("Y") instead of negative ("N") so that the absence of a
script implies a negative response (So $$Help is
automatically not legal).

Notice that the parameter (in parenthesis) is not used in
your scheme.  But I included it so that someone could
define more complex algorithms that might have restrictions
based on both the 'from' and 'to' classes.  Such 'class interactions'
would wind up extremely messy in the present scheme.
For example, a fighter could change to a ranger only if the
sum of the primary abilities is be 28 or more and only if the
fighter is at least 34 years old.  But he could change to a
Cleric without the age restriction.

Special Abilities are wonderful.  If you can wrap your head
around  them.  A challenge for me.
6
Dungeon Craft - Module Previews / Re: PREVIEW? Some Screenshots Anyway
« Last post by steve_mcdee on September 19, 2017, 04:26:02 PM »
They look great. My first critical thought was that perhaps the elements seem a bit too separate, rather than being an organic whole. That can often be an issue when elements are combined in DC, with its relatively high resolution. The misting and crags would address that issue.
7
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by manikus on September 19, 2017, 04:20:45 PM »
Whatever you think is best.

Personally, I think it looks like more work to do a bunch of little scripts , declaring the same variable many times instead of once.

The other issue that comes to mind, and I can't tell what you are intending from your examples, would we then have a bunch of scripts since ther are only two Hooks? How would the event know to look at all of these new SAs? Would the event just look for all SAs that have the appropriate Hooks?

I am not trying to nix your idea, just pointing out what comes to mind. I can just copy-and-paste, so it is not really any extra work for me at all. :D

8
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by Paul R. Stevens on September 19, 2017, 03:23:13 PM »
Now that I see what you have proposed, I think we
should re-think.

There should be two hooks:

CLASS/CanChangeToClass
CLASS/CanChangeFromClass

That would get rid of ALL those '$IF" statements
and five of six of the $GET_CHAR...() statements.

Eg:  to change to Cleric
Code: [Select]
$VAR me;
$VAR WIS;
me = $IndexOf($CharacterContext());
WIS = $GET_CHAR_LIMITED_WIS(me);
$IF (WIS <# 15) {$RETURN "N";};

To change from Fighter:
Code: [Select]
$VAR me;
$VAR STR;
me = $IndexOf($CharacterContext());
STR = $GET_CHAR_LIMITED_STR(me);
$IF (STR <# 17) {$RETURN "N";};

And the engine would call both.
9
Dungeon Craft - Module Previews / Re: PREVIEW? Some Screenshots Anyway
« Last post by manikus on September 19, 2017, 01:42:02 PM »
@Adam
Those look really cool. I was picturing something similar in my mind's eye, but didn't know how to describe it accurately, and you did a much better job with a graphic representation than I could have done.

@Uatu:
If you wanted to do something like this, you could draw backdrops without skies are any area that is not part of the ground to be shown, and then Dinonykos or I could show you how to turn them into floor-walls. In fact, something like this might be a good impetus to get either him or I to do a tutorial on converting backdrops into florr-walls/ceiling-walls.
As for the mist, not sure how it would look, but you could do an overlay wall that uses the checkerboard pattern with one color the mist color and the other color the transparent color.

Just throing out ideas. 8) You guys have inspired me to mess around with something like this.
10
Dungeon Craft - Troubleshooting / Re: Dual class not working
« Last post by manikus on September 19, 2017, 01:28:55 PM »
Paul has added a new Hook that allows for a script to control the list of classes that can be changed to. I've written a script to work with the new engine. I'm still testing it, so not quite ready for a "new as of engine 3.17 post", but thought that I would share it in case somebody else want to play with it. ;)

You need engine 3.17
http://www.dianneandpaul.net/UAF/DungeonCraft_317.7z
You also need editor 3.15
http://www.dianneandpaul.net/UAF/DungeonCraftEditor_315.7z

Now, add a new Special Ability called "ChangeClass".
Give this SA a script called "CanChangeToClass".
Enter the following code:
Code: [Select]
$VAR me; $VAR cls; $VAR cur; $VAR align;
$VAR STR; $VAR INT; $VAR WIS; $VAR DEX; $VAR CON; $VAR CHA;
me = $IndexOf($CharacterContext());cls = $GET_CHAR_CLASS(me);cur = $ClassContext();
STR = $GET_CHAR_LIMITED_STR(me);INT = $GET_CHAR_LIMITED_INT(me);
WIS = $GET_CHAR_LIMITED_WIS(me);DEX = $GET_CHAR_LIMITED_DEX(me);
CON = $GET_CHAR_LIMITED_CON(me);CHA = $GET_CHAR_LIMITED_CHA(me);
align = $GET_CHAR_ALIGNMENT(me);
// basic
$IF ($GREP("/",$ClassContext()) || $GREP("Help",$ClassContext()) || (cls == cur))
{$RETURN "N";};
// check of current prime req -> must be 15 or higher
$IF ((cls == "Cleric") && (WIS <# 15)) {$RETURN "N";};
$IF (cls == "Druid")
{$IF ((WIS <# 15) || (CHA <# 15)) {$RETURN "N";};};
$IF ((cls == "Fighter") && (STR <# 15)) {$RETURN "N";};
$IF ((cls == "Magic User") && (INT <# 15)) {$RETURN "N";};
$IF ((cls == "Paladin") && (STR <# 15)) {$RETURN "N";}; // CHA not checked as must be 17+
$IF (cls == "Ranger")
{$IF ((STR <# 15) || (INT <# 15) || (WIS <# 15)) {$RETURN "N";};};
$IF ((cls == "Thief") && (DEX <# 15)) {$RETURN "N";};
// check of proposed prime req -> must be 17 or higher
$IF ((cur == "Cleric") && (WIS <# 17)) {$RETURN "N";};
$IF (cur == "Druid")
{$IF ((WIS <# 17) || (CHA <# 17)) {$RETURN "N";};};
$IF ((cur == "Fighter") && (STR <# 17)) {$RETURN "N";};
$IF ((cur == "Magic User") && (INT <# 17)) {$RETURN "N";};
$IF (cur == "Paladin")
{$IF ((align != "0") || (STR <# 17) || (WIS <# 17)) {$RETURN "N";};};
$IF (cur == "Ranger")
{$IF ((STR <# 17) || (INT <# 17) || (WIS <# 17)) {$RETURN "N";};};
$IF ((cur == "Thief") && (DEX <# 17)) {$RETURN "N";};

When this script is worked out, I will tackle the issue with changing to a Magic User and not getting any spells. I suspect it is a script issue.

Of special interest to at least Steve, this script can easily be modified to show special class options for a setting such as Dragonlance. :D
This should also allow me to add the Thief-Acrobat as it was intended and may even be the start of the real solution to adding Bards...but will need to do some thinknig and testing.
Pages: [1] 2 3 ... 10