-------------------------------------------------------------------------- DICE! PLUS -------------------------------------------------------------------------- DICE! PLUS is a die rolling program for Windows 3.1 that is unlike any other die rolling program that you have ever tried. There are no artificial restraints on the number and type of dice you can roll, no unnecessary pointing and clicking all over the screen just to roll 3d6 one time and 3d4+3 the next. If you want to roll 3d6 + 3d4 + 2d8, you can. How about 2d20 - 1d30? You can roll that too. 99d3? 11d9 + 14d13+5? Yes, these too. Unlike most die rolling programs, you are not limited to the types, numbers, and combinations of dice and bonuses/penalties that *I* decided you will probably be needing. You can roll the types, numbers, and combinations of dice, along with the bonuses/penalties for each, that you *actually* need. There's More ------------ Better yet, you can also define custom types of dice, so that you can make up dice to roll any range or arbitrary sequence of numbers. DICE! PLUS does not consider custom dice to be anything as ridiculously mundane as a simple range of one to the number of sides the die has, since this is handled automatically as a normal die. So, a die written like d9 would be considered a normal die with 9 sides, and a die written like d33 would be considered a normal die with 33 sides. Custom dice are reserved for dice that should return results from ranges outside of 1 to something, or that should return results that use a set of numbers that isn't a consecutive sequence. See below for more info on custom dice. DICE! PLUS also has a variety of functions to perform additional tasks, such as: @BEST which will take the best of some number of dice, @WORST which will take the worst of some number of dice, @WILD which will reroll and add on to the total every time the max result comes up, and more. There is also a scripting language, which allows you to expand what DICE! PLUS is capable of, even if I haven't provided the exact function you need. DICE! PLUS is simply the most versatile, most powerful die rolling program that you are ever likely to find. Read on for more details. If you feel that you don't have any need for the functions provided by DICE! PLUS, and the script language doesn't interest you, please try my freeware program DICE! instead. DICE! lacks only the functions and script language, so you may find it to be the perfect die roller for your needs. -------------------------------------------------------------------------- How It Works -------------------------------------------------------------------------- The way it works is very straight forward: you just type in the roll you want to make, just the way it appears in most game books. Those example rolls from a couple paragraphs up show you exactly what you'd type into the program to get just those rolls. No need to click around for a few minutes just to change your roll parameters; just type it in. Also, unlike some of the other die rollers that I tested before creating this one, DICE! PLUS actually generates a number for every single die rolled; it does not just roll a random number in the possible range of results. This means that any bell curve results are retained when using DICE!, just as if you had actually rolled real dice. By checking the See All check box, you can see a text box which contains the sequence of rolls that gives the final result. The See All check box also allows you to see the Script edit box and the Load and Save buttons, which allow you to Load scripts and Save scripts, respectively. NOTE: The box containing the expanded results, such as the sequence of rolls and calculations that gives the final result, that you see when you check the See All check box is called the See All box, or the Long Results box, interchangeably. Each part of the sequence is shown totaled on a separate line of the text box, so you can see the total for each individual part of the roll. This means that a roll of 3d6-1d6 would appear in the text box something like this: 3d6= +3+2+4= 9 1d6= +3= 3 Calc: 9-3= 6 The total result of each die roll is shown on at the end of the line, and the total of the whole sequence is shown at the end of the Calc: line at the bottom of the text box. The Calc: line at the end of the text box shows how the results of the rolls are put together, along with any other calculations, to get the final result. You may also do simple calculations from the Die Value combo box, including calculations that involve one or more die rolls. To perform a calculation, just type it into the Die Value combo box, and hit the Roll button, just like you would roll some dice. This will find the result of your calculation. You can combine calculations with die rolls, so you can now have a die sequence like this one: (2d6-2)*2+2*d6 DICE! PLUS will roll all dice first, before anything else, putting the results back into the calculation, and will then perform any other calculations following the standard order of operations, which is: parenthesis: () exponentiation: ^ multiplication and division: */\ addition and subtraction: +- If you use nested parenthesis, they will be evaluated from the innermost set to the outermost set. When more than one set of operators of the same level of importance are involved, they are evaluated left to right. DICE! PLUS also allows a random number of dice, by using a die value similar to this: 1d6d6 This will give you 1d6 rolls of a d6. The See All results from this roll might look something like this: 1d6= +3= 3 3d6= +1+6+4= 11 Calc: 11= 11 From this you can see that the program first rolled 1d6, came up with a result of 3, and then used the 3 to roll 3d6. This will not work if either of the die types is enclosed in parenthesis. You can now also roll each digit of a multi-digit number if you wish to do so. However, because DICE! PLUS will roll a random number of the die type if you just put the die types side by side, you need to put every other die type (at least) in parenthesis; this will cause DICE! PLUS to see each result as a separate digit. For example, if you wish to generate a three digit number that has a range of 1-4 for the first digit, 1-6 for the second digit, and 1-10 for the last digit, you would enter: d4(d6)d10 This would give you a See All result that might look like this: d4= +2= 2 d6= +5= 5 d10= +7= 7 Calc: 2(5)7= 257 Using this same method, you could put any digit you wish at the front of a result just by putting it at the front of the Die Value text, with the rest of the Die Value text in parenthesis, which might look like this: 2(2d6) with possible long results of: 2d6= +4+5= 9 Calc: 2(9)= 29 NOTE: As you may notice, you must use a multiplication sign (*) to get DICE! PLUS to multiply. Unlike standard math, DICE! PLUS does not see a number before a set of parenthesis as meaning multiply that number by the number inside the parenthesis. If there is some reason DICE! PLUS can not complete a calculation, such as an unbalanced set of parenthesis (you must have the same number of left and right parenthesis), then DICE! PLUS will give you a result of . Custom Dice ----------- You can also define custom dice, with each die type being defined as an arbitrary range or list of numbers. For example, you could define a die called 'd00' as being a range from 0 to 99, a die called 'dSwing' as being a range from -49 to 49, or a die called 'dBit' as a list of possible numbers like '0,1,2,4,8,16,32,64,128'. While the range can be simulated in many cases by using the calculation abilities of DICE! PLUS, it is often more convenient to define a new die type than to constantly type in a calculation to get the range or list of numbers that you want. You create a defined die by using the Define Die Types dialog, accessible from the Preferences dialog, as discussed below. -------------------------------------------------------------------------- Preferences Dialog -------------------------------------------------------------------------- The Preferences dialog is broken down into two main frames, with a couple of items that don't fall into either frame. When you click on the Okay button, all changes will be saved and you will be returned to DICE! PLUS. If you change your mind, you can click on the Cancel button to return to DICE! PLUS with no changes of any kind saved or used by the program. The first frame is where you add, edit, and remove custom die definitions. To add a new die definition, click on the Add button and the Define Die Types dialog will come up with a blank name and sample entries for Range and Number List definitions. Enter a Die Name, then click on Range to define a range of numbers, or click on Number List to define a list of possible results. Enter the Low end and High end of the range for a range, or enter a list of numbers separated by commas for a number list. Then click on the Okay button to accept the new die definition. If you change your mind, click on the Cancel button to return without changing anything. Only the values in the section that is active will be used for the definition of the new die, so don't worry if there is something in the Range section if you are entering a Number List definition; it will be ignored. To edit a current die definition, click on the definition to edit, then click on the Edit button. The Define Die Types dialog will come up, with the information for the die definition you selected filled in the appropriate areas. Change what you need to, then click on Okay to save the changes and return to the Preferences dialog. If you change your mind, click on the Cancel button to return without changing anything. To remove a current die definition, click on the definition to remove, then click on the Remove button. Please note that the die definitions are displayed in a list box, so they can not be edited without using one of the editing buttons. The second frame is where you control how DICE! PLUS handles adding items to the Die Value drop down list. If you check the Auto add Die Value entries check box, entries that you enter in the Die Value box will be added to the drop down list. If you check the List new entries first check box, newly added entries in the drop down list will be added to the top of the list of items, otherwise they will be added to the bottom of the list. The scrollbar allows you to change how many items DICE! PLUS should keep in the drop down list. Setting this value to 0 will make DICE! PLUS not bother to add new items to the list, but it will not affect any items that may have been added from the Always Add on startup box. The Always Add on startup text box allows you to enter values that you always want to add into the drop down list when the program starts. The first item in this box is the one that will automatically be rolled when the program starts. Since this is a text box, you can edit the text in the box as you see fit, and cut and paste bits of text within the box. If you check the Keep Always Add items in list check box, then DICE! PLUS will try to keep all of the Always Add items in the drop down list box all the time. The order in the drop down list will be the same as the order they are entered in the Always Add on startup box. If the List new entries first check box is also checked, the Always Add items will stay in the bottom positions of the drop down list, otherwise they will stay in the top positions of the list. In the lower left corner of the Preferences dialog is the Stay on Top check box. Checking this box will have DICE! PLUS stay on top of any other windows you may have open, except other DICE! PLUS windows (so you can see what you are changing, of course). Next to the Stay on Top check box is the Long Results check box. If you have the Long Results check box turned on, then long results will be generated as normal. If you turn it off, however, most long results will no longer show up in the Long Results box, which will allow for faster rolling and running of scripts, and will make it less likely that a looping script will run out of memory. In most cases, the output of a function will still appear in the Long Results box, even with this check box turned off. Below the Stay on Top check box is the Current default die type box. Enter a valid die type here to change the default die type (what DICE! uses if you only enter a 'd' with no type). Any valid die type can be used. Be aware that entering an invalid type may not crash the program, but will probably cause some unusual and potentially irritating problems. -------------------------------------------------------------------------- Functions -------------------------------------------------------------------------- You can get additional, specialized results by using one or more of the functions that are available from within DICE! PLUS. These functions perform a variety of different tasks, from rolling wild dice to limiting the results of a roll on one or more dice. Functions are noted by using the @ symbol before the function name, and enclosing the parameters required by the function in parenthesis after the function name. For example, the WILD function would be written as @WILD(3d6) where @ denotes a function, WILD is the name of the function, and 3d6 is the parameter of the function, enclosed by parenthesis. You could use any valid die roll as the parameter of this particular function, but some functions have specific requirements that their parameters must satisfy. A function can be used in a script, where the result of the function is used in place of the function as if it were a die roll, or a function can be used from the Die Value / Script entry box. To use a function in the Die Value / Script entry box, you must precede the entry by an equals sign (=) so that DICE! PLUS knows that it needs to treat the line as if it was a script. By using the equals sign, the entire line will be evaluated and the result will be automatically entered into the Result box. For example, entering a Die Value of =@wild(3d6) would tell DICE! PLUS to perform the WILD function on 3d6, and display the result in the Result box. You can evaluate any entry by preceding it with an equals sign, but you don't need to do this unless you are using a function, because DICE! PLUS will automatically evaluate any die rolls and normal math functions without calling the script handler. For a complete description of the functions currently available to DICE! PLUS, please see the REF.TXT file. -------------------------------------------------------------------------- Scripts -------------------------------------------------------------------------- You can add features and enhanced functionality to DICE! PLUS by using its script language to write scripts. Scripts are lists of commands, much like a programming language, that evaluate expressions and perform functions. By running a script, you can perform a variety of useful tasks that have not been programmed into DICE! PLUS. This means you can write scripts to handle some of the more tedious die rolling chores, or even write scripts to provide functions that haven't been implemented in DICE! PLUS. Scripts are a very powerful addition to the the basic die rolling functionality found in DICE! You can see the Script edit box and the script Load and Save buttons when the See All box is checked. The Script edit box allows you to write a script, view the current script, or edit the current script. The Load and Save buttons allow you to Load scripts from your disk, or save them to your disk. These buttons call up the Windows common dialog box for these functions so you should already be quite familiar with the way they work. There are a variety of sample scripts included with DICE! PLUS, most of which are designed to show you how the functions work. Taking a look at some of the more complete scripts included, such as GET.DIE, SHDWRUN.DIE, and STARWARS.DIE will show you the powerful potential behind the script language. (If you are a programmer, you may want to take a look at ARRAY.DIE as well, since it shows how to simulate the use of arrays in the script language.) A script writing tutorial is included only with the registered version of the program, but the script reference material is available in the REF.TXT file, which is included in the shareware version. Some things that are important to remember when writing scripts: * You must use 'result=' or 'winresult=' to send the result of a script to the result box or the result window, when the script ends. DISPLAY will cause the results to be updated immediately, even if the end of the script hasn't been reached yet. This should be clear from the sample scripts. * It is usually a very good idea to include an easy way to break out of a script. Pressing the ESC key while a script is running is supposed to end the script, but this does not work when a window, either from GET or WINRESULT, is on the screen. * Anything following a semi-colon (;) *on the same line only* is considered a comment and ignored. * When doing a lot of looping in your script, it is important to include the CLEARLOG command inside the loop (unless Long Results is turned off), or use the LOGOFF command, otherwise you will run out of string space and crash the script, because DICE! PLUS will keep putting stuff into the Long Results box until it runs out of memory. -------------------------------------------------------------------------- The Splitter Bar -------------------------------------------------------------------------- When you have the See All box checked, you can see the Scripts section on the right side of the window, and the Dice and Results section on the left side of the window. You can change how much of each section you see by adjusting the splitter bar, which is the gray line running down the window between the two sections. The splitter bar can only be adjusted by dragging it from side to side with the mouse. You are limited to how small you can make each side of the window, but at least you have some control over how much space you have to give to each section. -------------------------------------------------------------------------- About... -------------------------------------------------------------------------- You can get to the About dialog (for version and other information) inside DICE! by clicking on the icon or copyright information at the bottom of the main window. -------------------------------------------------------------------------- Your Scripts -------------------------------------------------------------------------- If you write scripts for DICE! PLUS, why not share them? If you would like to share your scripts, you can send them to me, and I will include them in the next distribution archive of the program. You should also feel free to share scripts with anyone else who uses DICE! PLUS. It is usually a good idea to include a comment or two at the top of your script to make it easy to see what the purpose of the script is. You may also want to include your name in the comments, so that everyone will know who deserves the credit for your efforts. -------------------------------------------------------------------------- Additional Files -------------------------------------------------------------------------- This program requires VBRUN300.DLL, which is not included in the .ZIP file that you downloaded. VBRUN300.DLL is required by a large number of free and shareware Windows programs, so chances are good that you already have a copy. If you don't, it is freely available from many BBSes and all the major online services. This program also requires the COMMDLG.DLL and CMDIALOG.VBX files. These files should already be found in your WINDOWS\SYSTEM directory, but if they are not, they are included inside the .ZIP file that you downloaded. In any case, you only need one copy of each, which should be in your WINDOWS\SYSTEM directory, so if you have them, delete the ones that came with this program, otherwise copy them into that directory. -------------------------------------------------------------------------- DICE! PLUS is freeware, not public domain. -------------------------------------------------------------------------- I have made this program available free of charge, but I do retain all rights pertaining to this program and its code. Please respect my rights. -------------------------------------------------------------------------- That's All! -------------------------------------------------------------------------- That's everything there is, so thank you for trying out DICE! PLUS. If you have comments, problems, or suggestions, please feel free to drop me a line at the e-mail address listed below. Armin D. Sykes armin@misersoft.com