On Mon, 13 Apr 1998, Del (Panther) wrote:
>George wrote:
>> I 'solved' that problem by limiting the dice size in the dice() function.
>> So if you go over the limit, the damage becomes 1. :)
>>
>> A 1000000d20 weapon may cause your MUD to checkpoint crash unless you have
>> a fast machine.
>>
>
>Can you show how you did this? or give some idea please?
Um, ok, sure. The easiest way is:
/* simulates dice roll */
int dice(int number, int size)
{
int sum = 0;
- if (size <= 0 || number <= 0)
- return 0;
+ if (size <= 0 || number <= 0 || size > 99 || number > 99)
+ return 0;
while (number-- > 0)
sum += ((circle_random() % size) + 1);
return sum;
}
Thinking takes less time than posting though. :)
--
George Greer - Me@Null.net | Genius may have its limitations, but stupidity
http://www.van.ml.org/~greerga | is not thus handicapped. -- Elbert Hubbard
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST