View unanswered posts | View active topics It is currently Thu Mar 28, 2024 4:50 pm



Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
 Dice Rollers and documentation 
Author Message

Joined: Sat Dec 12, 2009 4:14 pm
Posts: 9
Post Dice Rollers and documentation
I am currently redesigning the roller system and would like to convert all of the current rollers, but several of them are very complex and I have no clue about the system, or I think they are broken as implemented but have no method of verification.

Anyone who uses or knows the gurps, hero, runequest, savage or sr4 rollers could you write up some documentation on how all the options should work that would be very helpful. As of right now I am thinking of just removing these rollers and adding them to an old_rollers plugin so if people want them they can still use them. If I get decent documentation and examples for each option of a roller I will convert it, if not it goes to the old_rollers plugin.

Documentation should be something like the following, which is the documentation I generated for the std roller. The more complex the roller method the more examples I would like to see.
std roller
Basic roller designed to accept any combination of dice & sides, the results of each die are added up at the and providing a result total for the roll

ascending
Sort the results of each die in ascending order

descending
Sort the result of each die in descending order

takeHighest(num)
Take the highest `num` results of the roll
eg [4d6.takeHighest(3)] => [4, 4, 6] = (14)

takeLowest
Take the lowest `num` results of the roll
eg [5d6.takeLowest(3)] => [1, 2, 3] = (6)

extra(num)
Add an extra die for each current roll larger then `num`
eg [1d6.extra(2)] => [[3, 4]] = (7)

open(num)
Similar to extra, but it keeps looping over the roll and doing more rolls until no new rolls are larger then `num`
eg [1d6.open(2)] => [[3, 4, 5, 3, 2]] = (17)

minroll(num)
Ensure that no die roll is less then `num`
eg [3d6.minroll(2)] => [2, 5, 3] = (10)

each(num)
Add `num` to each die of the original roll, die added by extra or open are not included in this
eg [4d6.each(2)] => [[3, 2], [2, 2], [5, 2], [4, 2]] = (22)
eg [4d6.extra(4)] => [[3, 2], [2, 2], [5, 1, 2], [4, 6, 2]] = (29)

vs(target)
Checks each roll against `target` and set 1 for sucess 0 for failure, this results in the total being the number of successes.
eg [5d10.vs(7)] => [1, 0, 0, 1, 0] = (2)
eg [5d20.vs(10)] => [1, 1, 0, 1, 1] = (4)


==========
I took a look at the gurps roller and either it is broken or I dont understand it since I got the following results when testing the current implementation (all failures, even though it says the target is 52 or less, it results in failure even when it is less). I bolded the ones that look wrong to me.

Quote:
(0) No Name: [10d10.skill(50, 2)] => [10,10,6,6,7,3,3,4,1,3] = 53 vs (52) or less Failure! by 1
(0) No Name: [10d10.skill(50, 2)] => [3,4,10,6,6,2,8,9,8,5] = 61 vs (52) or less Failure! by 9
(0) No Name: [10d10.skill(50, 2)] => [5,9,2,6,6,3,8,9,8,9] = 65 vs (52) or less Critical Failure! by 13 [B556]
(0) No Name: [10d10.skill(50, 2)] => [9,6,7,4,2,6,10,10,4,1] = 59 vs (52) or less Failure! by 7
(0) No Name: [10d10.skill(50, 2)] => [6,6,7,4,10,1,9,10,6,8] = 67 vs (52) or less Critical Failure! by 15 [B556]
(0) No Name: [10d10.skill(50, 2)] => [8,2,4,8,3,9,7,3,4,6] = 54 vs (52) or less Failure! by 2
(0) No Name: [10d10.skill(50, 2)] => [6,9,3,4,2,10,4,5,9,9] = 61 vs (52) or less Failure! by 9
(0) No Name: [10d10.skill(50, 2)] => [6,1,6,2,10,2,6,1,2,5] = 41 vs (52) or less Critical Failure! by 11 [B556]
(0) No Name: [10d10.skill(55, 2)] => [2,1,3,5,6,4,8,6,7,10] = 52 vs (57) or less Failure! by 5
(0) No Name: [10d10.skill(55, 2)] => [2,9,10,4,8,5,9,4,4,8] = 63 vs (57) or less Failure! by 6
(0) No Name: [10d10.skill(55, 2)] => [3,2,10,8,7,1,4,4,7,1] = 47 vs (57) or less Critical Failure! by 10 [B556]
(0) No Name: [10d10.skill(55, 2)] => [8,10,9,9,3,4,7,6,4,6] = 66 vs (57) or less Failure! by 9
(0) No Name: [10d10.skill(55, 2)] => [4,6,4,6,7,2,8,1,1,6] = 45 vs (57) or less Critical Failure! by 12 [B556]
(0) No Name: [10d10.skill(55, 2)] => [6,7,10,10,5,10,5,9,3,3] = 68 vs (57) or less Critical Failure! by 11 [B556]
(0) No Name: [10d10.skill(55, 2)] => [7,7,1,6,10,8,5,4,9,8] = 65 vs (57) or less Failure! by 8
(0) No Name: [10d10.skill(55, 2)] => [9,1,6,3,1,7,5,9,10,4] = 55 vs (57) or less Failure! by 2
(0) No Name: [10d10.skill(55, 2)] => [1,5,2,1,4,1,3,1,1,2] = 21 vs (57) or less Critical Failure! by 36 [B556]


Mon Mar 22, 2010 7:39 pm
Profile
User avatar

Joined: Wed Dec 09, 2009 9:39 pm
Posts: 712
Post Re: Dice Rollers and documentation
Because you are doing it wrong. Gurps uses six sided dice, and I believe the user only rolls 3d6 for a skill check.

_________________
I ate your Death Knell.
The Traipse Movement
Please show your support for Traipse OpenRPG http://www.facebook.com/MadMathLabs
Send me Traipse OpenRPG Ideas, Bugs, Complaints, Praises here: https://getsatisfaction.com/mml


Tue Mar 23, 2010 12:31 am
Profile YIM WWW

Joined: Fri Apr 23, 2010 11:11 pm
Posts: 7
Post Re: Dice Rollers and documentation
I am currently working on the wodex roller code that is in the current version of orpg. version 1.8.0. It has a flaw in the .wod() code, and implements the New world of darkness incorrectly even if the code wasn't flawed. New world of darkness no longer subtracts out 1's from the total success, and it fails to properly handle the re rolled die for 10's. Once I get it fixed where would you like me to send a copy of my new version of wodex.py?

Or would you like me to just post it in here.


Fri Apr 23, 2010 11:15 pm
Profile

Joined: Sat Dec 12, 2009 4:14 pm
Posts: 9
Post Re: Dice Rollers and documentation
you can e-mail it to me digitalxero |at| gmail |dot| com


Sat Apr 24, 2010 1:35 am
Profile

Joined: Fri Apr 23, 2010 11:11 pm
Posts: 7
Post Re: Dice Rollers and documentation
Thanks. I am almost finished. I have dealt with both re-rolling and not re-rolling 10's. But I still have some minor work to do. on the non re rolled, rolls. While the 1's don't subtract on the normal roll, in the VtR rules, by clan the clan weaknesses do force a subtraction of 1's and no re-rolling of 10's. But I am almost there. I will continue to search through the other rulesets for other die roll modifications. I am hoping what I have so far is it.

Edit -- Okay new version of wodex.py is on it way to your email box.
Edit #2 -- I am still not quite happy with my code. It works but I ended up creating 4 new options in the dieroller wodex.py So if I come up with what I think is a cleaner solution I will email that to you.


Sat Apr 24, 2010 3:00 am
Profile

Joined: Tue Oct 05, 2010 8:30 pm
Posts: 14
Post Re: Dice Rollers and documentation
I want to know how i can find these die roller plugins by you authors, and then how i add them to my OpenRPG program so that i can use them.
I have OpenRPG version 1.8.0.5 and no experience with Python...I even suck at C++ so please don't ask me to code unless you tell me what to type and where.
I like the std die roller it comes with, i can use it for my white wolf games but the ones you guys are talking about seem geared toward the games my group plays and would be of great use to me and my friends. so if you could tell me how to manipulate the program so that i may use them i would be very grateful!


Tue Oct 05, 2010 8:40 pm
Profile

Joined: Tue Oct 05, 2010 8:30 pm
Posts: 14
Post Re: Dice Rollers and documentation
Ok, I see now that what you were talking about in the forum start is coded in, so we just have to type out "[5d10.vs(6)]" for example in WoD.
I like it. My wish, though, would be to see it built into the GUI so you can set the target for a success and then have it deduct 1's for you or tell you about a botch if your net success against 1's is below 0. or if you get more 1's than success in, say, Exalted.
Perhaps wishful thinking from a non-programmer, but think about it, or help me understand how i could do it for myself ^_^


Tue Oct 05, 2010 8:58 pm
Profile

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Re: Dice Rollers and documentation
Don't know much about the various dierollers details as I am unfamiliar with the games systems (so I don't know what they are trying to do) and mostly unfamiliar with the code for them (so I don't know what they actually do and how it might differ).

However there are a couple of dierollers for WoD. one is called wod and the other wodex.

Code:
/dieroller wod
/dieroller wodex


will change you to the respective custom die rollers and to get back to standard

Code:
/dieroller std


The comment under wod says,
"This roller is designed for d10's only and always expects a vs target
use the .vs method to set the target, all future rolls will use that
target, unless you use .vs again"

Experimenting suggests that indeed if you once roll [1d10.vs(5)] then after that you can just roll a d10 or hit the d10 button and it assumes you mean .vs(5) That seems just what you want except that any natural roll of 1 counts as a -1 on the number of hits.

It does something similar for a function called .thr() but I don't know what that does. It appears to make the first x successes not count where x is the number passed to thr()

eg [5d10.vs(8).thr(1)] counts the number of the dice at 8 or higher with 1 counting as -1 hit and the first normal hit doesn't count. The vs and thr numbers are then remembered for future rolls until changed.

[hr]

wodex seems to lack that hand remember the last vs taregt thing but has some other stuff.

[5d10.vs(8,6,10)] rolls the dice against each target in the range 6 to 10 (and bolds the results for target 8). a natural roll of 1 counts as a -1 on the number of hits. [5d10.vswide(x,y)] is the same as [5d10.vs(x,2,y)]

[5d10.wod(8,6,10)] does the same but rolls the natural 10s again and they count as hits except that natural 1s from the natural 10s don't count as -1 hit.

[5d10.exalt(8)] rolls against target 8 and each 10 counts as double the number of hits (ie 2) but does not cause extra rolls. a 1 is not anything special.

[5d10.exaltDmg(8)] counts hits against the target, 8, and doesn't do anything on a 10 or a 1.


Wed Oct 06, 2010 4:47 am
Profile

Joined: Tue Oct 05, 2010 8:30 pm
Posts: 14
Post Re: Dice Rollers and documentation
That's so awesome! thank you, dude. We just played Vampire: The Masquerade and used the /dieroller wod and it help SO much.

The only change I would make if I knew how would be to make the wodex roller sum the ones on a roll and compare the sum to the sum of successes so it could tell you if you botched, like how the wod roller tells you if the score is negative.
It seems to only tell you "Result: BOTCH!" if you score NO success and at least one 1. However, this is actually a Critical Botch.
If you score one success and, say, two 1's it just says "Result: 1 Success" and that should be a botch...

Is this at all a forum for having modifications made to the program to accommodate new demands? If not, where can one go to ask for functions to be added?


Sat Oct 09, 2010 6:44 am
Profile

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Re: Dice Rollers and documentation
Wah. I am reluctant to change that dieroller as I know a big fat zero about its intended uses. I don't know enough to know what is intended (and what people may be relying on) and what is a bug. I'll see if I can find some other wod / wodex dieroller users at the Mayhem site. I've posted a thread about it at their forum here:

http://s9.zetaboards.com/Mayhem_Gaming/ ... 588/1/#new



Btw when you said the bug is with the wodex dieroller, you meant the wod dieroller, right?


Mon Oct 11, 2010 3:38 am
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next


Who is online

Users browsing this forum: No registered users and 30 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.