PDA

View Full Version : Large Dice Problem



Face
April 4th, 2006, 14:32
I just realized that by burying my question on the second page of another post I probably won't get too much of a response....

I have done up quite a few custom dice for my Hackmaster game, including a special set of dice looking like stopwatches to represent combat segments, set of "partial" dice so a (1d6-2)+3 isn't weighted the same as a 1d6+1, and some more "normal" dice: d2, d3, d5, d7, d9, d14, d24, d50, d100, d1000, d5000, d6000, d7000, d8000, d9000, & d10000.

Ok, I have my XML all done up and even did a whole new range of dice .png (s) so they would be somewhat consistent. The problem I have now is that I cannot get a roll above about 280. I tried my d1000, d5000, d6000, and my d10000. Nothing about that number. I looked at the XML file and can't see anything wrong. I'm checking it again, but thought I'd see if there was some kind of limit I didn't know about.

Anybody have a clue they could share with me?

Trauma
April 4th, 2006, 18:37
Might be tied in with the same problem I had..

I started rolling dice one day and takin the total and adding it to the modifyer spot.. then rolling again, then adding that to the modifyer.. after about 28k modifyer, and another dice roll, It crashed FG.

Maybe somthing prevents the use of large numbers?

Snikle
April 4th, 2006, 18:43
Is there a field that has a limiter of 280 on it? Like interger or whatever.
/me not a coder. ;-)

Daeghrefn
April 4th, 2006, 18:53
Is there a field that has a limiter of 280 on it? Like interger or whatever.
/me not a coder. ;-)

There usually is. But it also depends on if it's a signed or unsigned integer. 280 is an odd number I think, because it's not a power of 2 (or 1/2 of a power of 2, and yes, I realize that doesn't make a lot of sense).

Usually integers are in the range of -x to x. So if the range is 65536 (which is typical), it ends up being -37268 to 37267. Unless it's unsigned at which point it's 0 to 65535. That is standard, in my programming experience.

From what I've played with, and what I've read on the forums, I would not be surprised if FG has a memory management bug, or lack of error checking.

joshuha
April 4th, 2006, 20:52
The only thing I can think of even close are things like TINYINT and what not that are smaller footprints for memory management. 280 is an odd number though.
------------------------------------
TINYINT [UNSIGNED]

Integer data. The signed range is -128 to 127. The unsigned range is 0 to 255. Storage size is 1 byte.

Face
April 4th, 2006, 23:50
Usually integers are in the range of -x to x. So if the range is 65536 (which is typical), it ends up being -37268 to 37267. Unless it's unsigned at which point it's 0 to 65535. That is standard, in my programming experience.


Well my biggest die is a d10,000, so I'm within those perameters. When/If we get some function that allows for multiple dice to be thrown at once, in a special order I'd just make some custom d10's. The d8000 would just be a d8 and a couple of d10's.

Daeghrefn
April 5th, 2006, 14:52
The only thing I can think of even close are things like TINYINT and what not that are smaller footprints for memory management. 280 is an odd number though.
------------------------------------
TINYINT [UNSIGNED]

Integer data. The signed range is -128 to 127. The unsigned range is 0 to 255. Storage size is 1 byte.

Yeah, and if the max die roll was 255 that would make sense. Which is why the max of 280 doesn't make any sense. In C, an unsigned int of 0 to 255 is typically called a "char". And my understanding is that FG was written in C? I thought I read that somewhere...

A dev would be able to answer this question for certain. And perhaps, unless it was a serious memory management issue (which it may be) get a patch to up the size limitation.

Toadwart
April 5th, 2006, 22:14
Well my biggest die is a d10,000, so I'm within those perameters. When/If we get some function that allows for multiple dice to be thrown at once, in a special order I'd just make some custom d10's. The d8000 would just be a d8 and a couple of d10's.

Hi Face, could ya post up the definition for the d1000. Haven't played with setting up different dice types myself yet but woud like to have a look at this and see if it behaves the same for me.

Face
April 6th, 2006, 00:26
Do you mean this?:

<die name="d1000">
<values list="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 ,37,38,39,
40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56 ,57,58,59,
60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76 ,77,78,79,
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96 ,97,98,99,100,
101,102,103,104,105,106,107,108,109,110,111,112,11 3,114,115,116,117,118,119,
120,121,122,123,124,125,126,127,128,129,130,131,13 2,133,134,135,136,137,138,139,
140,141,142,143,144,145,146,147,148,149,150,151,15 2,153,154,155,156,157,158,159,
160,161,162,163,164,165,166,167,168,169,170,171,17 2,173,174,175,176,177,178,179,
180,181,182,183,184,185,186,187,188,189,190,191,19 2,193,194,195,196,197,198,199,200,
201,202,203,204,205,206,207,208,209,210,211,212,21 3,214,215,216,217,218,219,
220,221,222,223,224,225,226,227,228,229,230,231,23 2,233,234,235,236,237,238,239,
240,241,242,243,244,245,246,247,248,249,250,251,25 2,253,254,255,256,257,258,259,
260,261,262,263,264,265,266,267,268,269,270,271,27 2,273,274,275,276,277,278,279,
280,281,282,283,284,285,286,287,288,289,290,291,29 2,293,294,295,296,297,298,299,300,
301,302,303,304,305,306,307,308,309,310,311,312,31 3,314,315,316,317,318,319,
320,321,322,323,324,325,326,327,328,329,330,331,33 2,333,334,335,336,337,338,339,
340,341,342,343,344,345,346,347,348,349,350,351,35 2,353,354,355,356,357,358,359,
360,361,362,363,364,365,366,367,368,369,370,371,37 2,373,374,375,376,377,378,379,
380,381,382,383,384,385,386,387,388,389,390,391,39 2,393,394,395,396,397,398,399,400,
401,402,403,404,405,406,407,408,409,410,411,412,41 3,414,415,416,417,418,419,
420,421,422,423,424,425,426,427,428,429,430,431,43 2,433,434,435,436,437,438,439,
440,441,442,443,444,445,446,447,448,449,450,451,45 2,453,454,455,456,457,458,459,
460,461,462,463,464,465,466,467,468,469,470,471,47 2,473,474,475,476,477,478,479,
480,481,482,483,484,485,486,487,488,489,490,491,49 2,493,494,495,496,497,498,499,500,
501,502,503,504,505,506,507,508,509,510,511,512,51 3,514,515,516,517,518,519,
520,521,522,523,524,525,526,527,528,529,530,531,53 2,533,534,535,536,537,538,539,
540,541,542,543,544,545,546,547,548,549,550,551,55 2,553,554,555,556,557,558,559,
560,561,562,563,564,565,566,567,568,569,570,571,57 2,573,574,575,576,577,578,579,
580,581,582,583,584,585,586,587,588,589,590,591,59 2,593,594,595,596,597,598,599,600,
601,602,603,604,605,606,607,608,609,610,611,612,61 3,614,615,616,617,618,619,
620,621,622,623,624,625,626,627,628,629,630,631,63 2,633,634,635,636,637,638,639,
640,641,642,643,644,645,646,647,648,649,650,651,65 2,653,654,655,656,657,658,659,
660,661,662,663,664,665,666,667,668,669,670,671,67 2,673,674,675,676,677,678,679,
680,681,682,683,684,685,686,687,688,689,690,691,69 2,693,694,695,696,697,698,699,700,
701,702,703,704,705,706,707,708,709,710,711,712,71 3,714,715,716,717,718,719,
720,721,722,723,724,725,726,727,728,729,730,731,73 2,733,734,735,736,737,738,739,
740,741,742,743,744,745,746,747,748,749,750,751,75 2,753,754,755,756,757,758,759,
760,761,762,763,764,765,766,767,768,769,770,771,77 2,773,774,775,776,777,778,779,
780,781,782,783,784,785,786,787,788,789,790,791,79 2,793,794,795,796,797,798,799,800,
801,802,803,804,805,806,807,808,809,810,811,812,81 3,814,815,816,817,818,819,
820,821,822,823,824,825,826,827,828,829,830,831,83 2,833,834,835,836,837,838,839,
840,841,842,843,844,845,846,847,848,849,850,851,85 2,853,854,855,856,857,858,859,
860,861,862,863,864,865,866,867,868,869,870,871,87 2,873,874,875,876,877,878,879,
880,881,882,883,884,885,886,887,888,889,890,891,89 2,893,894,895,896,897,898,899,900,
901,902,903,904,905,906,907,908,909,910,911,912,91 3,914,915,916,917,918,919,
920,921,922,923,924,925,926,927,928,929,930,931,93 2,933,934,935,936,937,938,939,
940,941,942,943,944,945,946,947,948,949,950,951,95 2,953,954,955,956,957,958,959,
960,961,962,963,964,965,966,967,968,969,970,971,97 2,973,974,975,976,977,978,979,
980,981,982,983,984,985,986,987,988,989,990,991,99 2,993,994,995,996,997,998,999,1000" />
<icon file="rulesets\HM\icons\d1000.png" />
<position point="110,680" />
</die>

I tried deleting any carrage returns so that the list would only loop back when the XML editor/viewer made it loop back. That didn't help. At this point I'm just doing dumb things systimatically to see if stuff changes. That's how I figured out that FG doesn;t like dice that don't start with the letter "d". I've never gotten any milage out of making the position point any particular place (but I have changed it as part of my systematic testing), so I don't know if I'm missing something there. I'm going to post my other dice next and when I get a chance upload my custom dice and die result font.

Daeghrefn
April 6th, 2006, 00:46
Hey Face,

Not sure if you copy/pasted, but there's a space in your column that contains 13,32,etc. If that's in your code, that might be a problem.... Just thought I'd mention it to you.

Face
April 6th, 2006, 04:31
That's just something from the cut & paste. It kind of looks like there are some spaces in the original xml, but there aren't any. Instead of typing everything out I did a lot of cut & paste and used find & replace quite liberally..

I wish my problem was so easily solved......

Toadwart
April 6th, 2006, 20:56
I tried deleting any carrage returns so that the list would only loop back when the XML editor/viewer made it loop back. That didn't help. At this point I'm just doing dumb things systimatically to see if stuff changes. That's how I figured out that FG doesn;t like dice that don't start with the letter "d". I've never gotten any milage out of making the position point any particular place (but I have changed it as part of my systematic testing), so I don't know if I'm missing something there. I'm going to post my other dice next and when I get a chance upload my custom dice and die result font.

I'll try this out tonight and see if I run into the same problem.
I think the position just specifies where the dice image sits on the desktop but custom dice like this don't have an image on the desktop(?)

I tried playing with the position of the dice and found that any location off the screen (or near the edges results in the dice 'throwing' themselves onto the desktop everytime you reset them. Funny, but not very useful :D

Face
April 6th, 2006, 22:21
I think the position just specifies where the dice image sits on the desktop but custom dice like this don't have an image on the desktop(?)

No that you mention it, I remember accidentally changing the position of the d6 and it ended up on top of the d20. It didn't hurt anything, I just had to move one to get to the other, and everytime I auto-arranged the dice they would reset on top of each other. Easily fixed....

Toadwart
April 7th, 2006, 23:00
I get the same behaviour with that d1000 code.
Max roll was 283 for me. If I remove the first 283 records the max roll becomes 536 (255th value of the new list)
Looks like there is some limit on the number of values in the list (or possibly a limit on the number of characters in the string)