Lone Wolf Development Forums

Lone Wolf Development Forums (http://forums.wolflair.com/index.php)
-   HL - Pathfinder Roleplaying Game (http://forums.wolflair.com/forumdisplay.php?f=62)
-   -   Having trouble using the ROUND function. (http://forums.wolflair.com/showthread.php?t=59700)

Bob G December 4th, 2017 01:12 PM

Having trouble using the ROUND function.
 
I’m writing an eval script that grants a 5’ bonus to base speed. This ability scales with level. The first 5’ bonus is granted at 1st level, and then again at every 4 class levels (i.e. 4th, 8th, 12th, etc.)
The script I first came up with was:

field[abValue].value += round(field[xTotalLev].value / 4, 0, -1) + 5

It worked for 1st level (changed 30’ speed to 35’ speed), but at 4th level the speed became 36’. So I changed the script to:

field[abValue].value += round(field[xTotalLev].value / 4, 0, -1) * 5

This worked at all levels except 1st.

Then I thought “What if I round up instead of down?”:
field[abValue].value += round(field[xTotalLev].value / 4, 0, 1) + 5

This resulted in a +6’ movement speed at 1st level.

field[abValue].value += round(field[xTotalLev].value / 4, 0, 1) * 5

This resulted in a 5’ increase at 1st level, but no increase at 4th.

What is the magic formula to make this work?
Thanks^7

Mathias December 4th, 2017 01:48 PM

At 1st level, level/4 = 0, but you want to add +5 at 1st level, so you want to add 1 to the total you're calculating, and then multiply it.

Code:

field[abValue].value += (round(field[xTotalLev].value / 4, 0, -1) + 1) * 5

Bob G December 4th, 2017 09:10 PM

Quote:

Originally Posted by Mathias (Post 259825)
At 1st level, level/4 = 0, but you want to add +5 at 1st level, so you want to add 1 to the total you're calculating, and then multiply it.

Code:

field[abValue].value += (round(field[xTotalLev].value / 4, 0, -1) + 1) * 5

Yes! That made it work. You guys must work on this a lot :D

Bob G December 7th, 2017 10:31 PM

Another Round function challenge for you all: Ability that grants +1 to perception skill at 3rd level, and gains an additional +1 at 7th, 11th, 15th and 19th levels.

field[abValue].value += round(field[xTotalLev].value-2 / 4, 0, -1) + 1

~Apply bonus to Perception skill
hero.child[skPercep].field[Bonus].value += field[abValue].value

Somehow, the bonus at 3rd level delivers a result of +3. I am baffled as to how it arrived at that result. Any ideas?

Farling December 8th, 2017 12:51 AM

Well, I suspect it is doing 3 - 2 / 4; so that becomes 3 - 0.

You need the field...value - 2 in parentheses so that the minus gets done before the divide.

BODMAS

EightBitz December 8th, 2017 04:13 AM

Quote:

Originally Posted by Bob G (Post 259976)
Another Round function challenge for you all: Ability that grants +1 to perception skill at 3rd level, and gains an additional +1 at 7th, 11th, 15th and 19th levels.

field[abValue].value += round(field[xTotalLev].value-2 / 4, 0, -1) + 1

~Apply bonus to Perception skill
hero.child[skPercep].field[Bonus].value += field[abValue].value

Somehow, the bonus at 3rd level delivers a result of +3. I am baffled as to how it arrived at that result. Any ideas?

I would also put the value you want to round in a variable first. Then round the variable. I've found that to eliminate a lot of issues.

Code:

var bonus as number
var roundbonus as number

bonus = field[xTotalLev].value-2
roundbonus = round(bonus/4,0,-1) + 1

field[abValue].value += roundbonus

~Apply bonus to Perception skill
hero.child[skPercep].field[Bonus].value += field[abValue].value

It's a few more lines, but it makes things more readable.


All times are GMT -8. The time now is 02:14 AM.

Powered by vBulletin® - Copyright ©2000 - 2018, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.