• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Class skill code... need some help

Since I did manage to find the correct tab to play in.... heheh
This does prose a different question since I have a semi-captive" audience...
In skills there is a "linked Attribute" that will add that bonus to the skill. But with this particular skill it grants +1% per point of intelligence not the modifier. So how would I approach that in an eval script?
 
Since I did manage to find the correct tab to play in.... heheh
This does prose a different question since I have a semi-captive" audience...
In skills there is a "linked Attribute" that will add that bonus to the skill. But with this particular skill it grants +1% per point of intelligence not the modifier. So how would I approach that in an eval script?

Does this mean if my character has a 10 INT, he would gain a 10% increase in his skill? If so, 10% of what?

Regardless, an eval script seems more than capable of handling this. You'll probably want to use hero.child[aINT].field[aFinalVal].value as your percentage score than multiply it by whatever your base is and add the result to the skill as a bonus.
 
Does this mean if my character has a 10 INT, he would gain a 10% increase in his skill? If so, 10% of what?

Sorry I left you in the dark.. Since the bulk of The World of Greyhawk setting was written based on a 2e platform, rolls were set to a percentage...
For simplicity sake I have made a table decision in this case to "convert" that value one for one as an ability modifier to be in sync with the spirit of the 2e history yet modernizing to use a 3.5 skill /DC guideline...

So in this case, the original 2e had that chance to successfully understand set at 30% +1% per point of intelligence. Making even a genius level of intelligence have just under 50/50 chance of success.
So to mimic in 3.5e An 18 in intelligence would add 18 skill points yielding 9 skill points to add to the cross class skill Gnarley Secret Sign.
To conclude, this would make the wizard with the same intelligence in both 2e & 3.5e with no ranks in Gnarely Secret Sign to have just slightly less than 50% if the DC was set at DC20.

So that defines where I would like to end up, now to reverse engineer.

Regardless, an eval script seems more than capable of handling this. You'll probably want to use hero.child[aINT].field[aFinalVal].value as your percentage score than multiply it by whatever your base is and add the result to the skill as a bonus.
And with the above what phase and priority would be best?
I presume post attribute (since user phases are presumably being phased out?) and maybe 10,000?

Thanks again for rapid feedback
 
And with the above what phase and priority would be best?
I presume post attribute (since user phases are presumably being phased out?) and maybe 10,000?

Thanks again for rapid feedback

Yes, post-attributes/10000 should work.

PS. This feels more like it being just a secret language than a skill. If a character has a percentage chance to learn it, then either they learn it or they don't....kinda like the druid language.
 
Ok, Set Phase and Priority as noted above but still getting tripped up by something minor.
Getting an error when testing from "eval" script for Thing KGHGnScSgn (Skill Greyhawk Gnarley Secret Sign ID) on line 2 > Unspecified error parsing script.

Below is the script, not seeing the obvious I guess

~Modifier to account for additional Intelligence~~
[Totals].hero.child[aINT].field[aFinalVal].value + round(field[kUserPts].value, 0, -1)
 
PS. This feels more like it being just a secret language than a skill. If a character has a percentage chance to learn it, then either they learn it or they don't....kinda like the druid language.
True can see that perspective, and is called a "language of sorts" in 2e, yet is one of few that had a % roll to discern what was being communicated... Hind sight for the 2e bunch would have been to make it a form of communication as apposed to a fully-blown language, but they at the time (talking with Eric Mona & Skip Willaims) didn't consider that when the mechanics changed and verbage became cloudy.
The full context description of the "Skill" is as follows:
Gnarley rangers have an equally complex set of signals in the form of terrain markers: scratches left on trees, a wedge cut out of a capped fungus, interweaving of small branches or ferns, and the like.
These signals generally indicate fairly simple things, often warnings relating to dangerous terrain, crossings, traps or monsters (kech, orcs, etc.).

Gnarley rangers of any level are proficient in this signaling system, and nonGnarley rangers will not be able to recognize it unless taught by one of their brethren who knows it well.

Most Gnarley woodsmen know something of this signaling system (A successful Know Local: Verbobonc, Dyvers, Celene, Wildcoast DC15) , since rangers often leave signs to warn them of perils and hazards.
Red text added to bring to a 3.5e game mechanic.

It would be akin to calling stop signs, oneway street, safe camp ahead, or water source this way.... a language...

Plus it also works with a Spot check if noticed, but meaning may not be known.
 
Last edited:
Ok, Set Phase and Priority as noted above but still getting tripped up by something minor.
Getting an error when testing from "eval" script for Thing KGHGnScSgn (Skill Greyhawk Gnarley Secret Sign ID) on line 2 > Unspecified error parsing script.

Below is the script, not seeing the obvious I guess

~Modifier to account for additional Intelligence~~
[Totals].hero.child[aINT].field[aFinalVal].value + round(field[kUserPts].value, 0, -1)

Red text looks fishy to me. Blue text should be += perhaps?
 
It would be akin to calling stop signs, oneway street, safe camp ahead, or water source this way.... a language...

Plus it also works with a Spot check if noticed, but meaning may not be known.

I guess that all makes sense well enough then. As much as anything from 2e makes sense anyway.
 
Red text looks fishy to me. Blue text should be += perhaps?

I tossed in the [Totals] from another script trying to get the two to sum. Removing it and adding the = as suggested removes the error, but doesn't seem to acknowledge the add of the intelligence attribute points to the skillpoints.:confused:
 
I tossed in the [Totals] from another script trying to get the two to sum. Removing it and adding the = as suggested removes the error, but doesn't seem to acknowledge the add of the intelligence attribute points to the skillpoints.:confused:

Can you give me the entire script? I feel like there should be more to this that I'm not seeing.
 
Can you give me the entire script? I feel like there should be more to this that I'm not seeing.


Phase:Post-attributes Priority: 10000 Index: 3
~Modifier to account for additional Intelligence~~
hero.child[aINT].field[aFinalVal].value += round(field[kUserPts].value, 0, -1)

attachment.php
 

Attachments

  • Gnarley SecretSign.PNG
    Gnarley SecretSign.PNG
    178.3 KB · Views: 26
Phase:Post-attributes Priority: 10000 Index: 3
~Modifier to account for additional Intelligence~~
hero.child[aINT].field[aFinalVal].value += round(field[kUserPts].value, 0, -1)

Ok. What field are you trying to modify? Right now, it's aFinalVal on INT, which is likely not correct.

PS. I think you must be trying to add these two numbers together, which you can do with a variable:

Code:
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value + round(field[kUserPts].value, 0, -1)

Then it's a matter of what you do with that number, which is what my question was alluding to.
 
Last edited:
I presume the KUserPts?

We should be taking the total that the Intelligence attribute (instead of just the modifier by checking the box) lets say 12, and adding the Points in the Secret Sign Skill points assigned, lets say 6, totaling that number and dividing it by 2 to account for cross class skill to get the modifier.

(12+6)/2=9 ranks in the skill
 
I presume the KUserPts?

We should be taking the total that the Intelligence attribute (instead of just the modifier by checking the box) lets say 12, and adding the Points in the Secret Sign Skill points assigned, lets say 6, totaling that number and dividing it by 2 to account for cross class skill to get the modifier.

(12+6)/2=9 ranks in the skill

kUserPts = points spent in skill. this isn't a field you want to be modifying in general. I'm not even sure it's the field you want for finding your modifier. Assuming you want to add this modifier as a bonus, I would do this:

Code:
~Modifier to account for additional Intelligence~~
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value + round(field[kUserRanks].value, 0, -1)

field[Bonus].value += bonus
 
kUserPts = points spent in skill. this isn't a field you want to be modifying in general. I'm not even sure it's the field you want for finding your modifier. Assuming you want to add this modifier as a bonus, I would do this:

Code:
~Modifier to account for additional Intelligence~~
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value + round(field[kUserRanks].value, 0, -1)

field[Bonus].value += bonus
I thought about that but was under the impression that kuserranks was after all calculations took place for that skill which is why I attempted to go upstream to the points feeding it...
The script above is close, but does not cross class the intelligence points. Seems to add them down stream of the Cross Class Calculations...

So I just added a / 2 behind the aFinalVal Value and that seems to work
 
I thought about that but was under the impression that kuserranks was after all calculations took place for that skill which is why I attempted to go upstream to the points feeding it...
The script above is close, but does not cross class the intelligence points. Seems to add them down stream of the Cross Class Calculations...

So I just added a / 2 behind the aFinalVal Value and that seems to work

hmm.....looking more closely at it, I think you may have intended to do the /2 in the round equation, thusly:

Code:
~Modifier to account for additional Intelligence~~
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value + round(field[kUserRanks].value/2, 0, -1)

field[Bonus].value += bonus

Otherwise, the equation "round(field[kUserRanks].value, 0, -1)" just equals "field[kUserRanks].value", making the round unnecessary.

PS. Check that. Based on your equation above ((12+6)/2=9), it should be:

Code:
~Modifier to account for additional Intelligence~~
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value + field[kUserRanks].value
bonus = round(bonus/2, 0, -1)

field[Bonus].value += bonus
 
Last edited:
hmm.....looking more closely at it, I think you may have intended to do the /2 in the round equation, thusly:


PS. Check that. Based on your equation above ((12+6)/2=9), it should be:

Code:
~Modifier to account for additional Intelligence~~
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value + field[kUserRanks].value
bonus = round(bonus/2, 0, -1)

field[Bonus].value += bonus
Oddly when road testing it does as designed.. at first....
adding 1 point gives the result 6 1/2 as it should
adding 2 point gives the result 7 as it should
adding 3 point gives the result 7 1/2 as it should
adding 4 point gives the result 9 which is not as it should
adding 5 point gives the result 9 1/2 which is not as it should
adding 6 point gives the result 10 which is not as it should

Not sure where 8 went or what is causing the skip
 
Oddly when road testing it does as designed.. at first....
adding 1 point gives the result 6 1/2 as it should
adding 2 point gives the result 7 as it should
adding 3 point gives the result 7 1/2 as it should
adding 4 point gives the result 9 which is not as it should
adding 5 point gives the result 9 1/2 which is not as it should
adding 6 point gives the result 10 which is not as it should

Not sure where 8 went or what is causing the skip

Yes, that's actually correct, which I will show below.

Incidentally, kUserRanks is already accounting for cross-class skill. Looking at the fields on the skill, I see the following when adding 8 points to the skill:

kUserPts = 8
kUserRanks = 4

This means we probably don't want to divide that number again, so I've modified the script to this:

Code:
~Modifier to account for additional Intelligence~~
var bonus as number
bonus = hero.child[aINT].field[aFinalVal].value/2 + field[kUserRanks].value
bonus = round(bonus, 0, -1)

field[Bonus].value += bonus

As for the math, let's look at it this way:

User Points - User Ranks - Bonus - Total
1 - 0 - 6 - 6
2 - 1 - 7 - 8
3 - 1 - 7 - 8
4 - 2 - 8 - 10
5 - 2 - 8 - 10
6 - 3 - 9 - 12

User Points = total points applied to this skill by player
User Ranks = 1/2 User Points
Bonus = 1/2 INT score + User Ranks
Total = Bonus + Ranks

PS Sorry the table isn't cleaner. Let me know if it's confusing.
 
Last edited:
Not really sure what you guys are doing.

I'm assuming that the Gnarley Secret Sign is actually a skill, correct?

Then this line kinda bugs me.

Code:
field[Bonus].value += bonus

Taking the kUserRanks from the skill, and then adding them back into the skill total, seems to add half of its ranks back in again.

This code probably only needs to add half the INT into the bonus, and nothing more than that. There is no need to round if the kUserRanks are already cross class.

Code:
~Modifier to account for additional Intelligence~~
field[Bonus].value += hero.child[aINT].field[aFinalVal].value/2

Therefore, with an Intelligence of 12/2 returning 6, we get the following:
  • adding 1 point gives the result 6 1/2 (6 + 1/2 rank)
  • adding 2 point gives the result 7 (6 + 1 rank)
  • adding 3 point gives the result 7 1/2 (6 + 1 1/2 rank)
  • adding 4 point gives the result 8 (6 + 2 rank)
  • adding 5 point gives the result 8 1/2 (6 + 2 1/2 rank)
  • adding 6 point gives the result 9 (6 + 3 rank)

I believe this is what you are trying to get to, or am I misunderstanding this?
 
Therefore, with an Intelligence of 12/2 returning 6, we get the following:
  • adding 1 point gives the result 6 1/2 (6 + 1/2 rank)
  • adding 2 point gives the result 7 (6 + 1 rank)
  • adding 3 point gives the result 7 1/2 (6 + 1 1/2 rank)
  • adding 4 point gives the result 8 (6 + 2 rank)
  • adding 5 point gives the result 8 1/2 (6 + 2 1/2 rank)
  • adding 6 point gives the result 9 (6 + 3 rank)

I believe this is what you are trying to get to, or am I misunderstanding this?
*** Somewhat long winded response** :D
Kendall,
Yes, Spot on.... the intent is to make it a "language" that is applied as a skill.
As mentioned it originated as a 2e "language" with a % roll to determine success. While I "could" choose to say its all or none like a "druid secret language" I Was trying to remain faithful to the origins that had some degree of variable that could be modified with a greater degree of intelligence on the character's part AND bring that application to a usable mechanic in a D20 3.5 Rule structure.

This is the reasoning behind taking the 1/2 value of the whole of intelligence and not just the modifier (since origin applied the actual attribute number not just the bonus). This approach puts the character with an 18 in intelligence and NO additional skill points at slightly less than 50/50% chance in 3.5e just like 2e. (Base 30% +18= 40% for 2e vs Skill Ranks untrained (18/2=)9 vs DC20 (45% for 3.5e)) And then allows the player a chance to improve the skill with anything after allowing the character to improve their chance of success by adding ranks as a cross class for everyone EXCEPT a Ranger (which I will handle independent of this part of the code once it works).

The reason I employ "language" as a moniker is because it is how it was viewed originally in 2e AND I add some code to have it show up in Herolab on personal tab under the languages for the player out of convenience as a reminder it's there for use.

The snap shot provided below ( {text 00FF} )also adds some HTML color coding to the text descriptor that tells the player items in "Green" are not core rules but additional "homebrew or previous edition rules" not in 3.5e PHB.

**Sidebar not anything to do with this piece of code but bigger picture of why I'm doing this. **

Generally, IMC we take language knowledge to a progressive level. While you can learn a language, you also develop a degree of expertise in that language. So to Speak Quenya (a form of elven in our campaign) you gain a basic conversational understanding (in this case a Language>Quenya - Ranks[1] shows in skills to go along with the language itself in the personal tab.

This allows the character the ability to have some basic communication skills in the language, but not proficient in writing it or speaking without an accent. Mastery of reading and writing it is at [5] ranks in that language. For basic communication this is a non-impact other than some roleplay confusions to word choices at times.

But when it comes to writings, and ancient languages this really comes into play.

With bards, and scholars become far more valuable when going through old tomes and maps when ancient dialects have old forgotten languages. So mastery of base languages as a prerequisite to read them (with a reasonable DC), makes those classes invaluable to access special spells and lost info that might not be known to the less learned. Without the additional training in those language skills, the DC to read the item becomes increasingly difficult.

Hope that clarifies.
 
Back
Top