RandomDistChoose
- comment
- patch
1.00
- Source
- Blizzard.j
- return type
integer
- Source code
function RandomDistChoose takes nothing returns integer local integer sum = 0 local integer chance = 0 local integer index local integer foundID = -1 local boolean done // No items? if (bj_randDistCount == 0) then return -1 endif // Find sum of all chances set index = 0 loop set sum = sum + bj_randDistChance[index] set index = index + 1 exitwhen index == bj_randDistCount endloop // Choose random number within the total range set chance = GetRandomInt(1, sum) // Find ID which corresponds to this chance set index = 0 set sum = 0 set done = false loop set sum = sum + bj_randDistChance[index] if (chance <= sum) then set foundID = bj_randDistID[index] set done = true endif set index = index + 1 if (index == bj_randDistCount) then set done = true endif exitwhen done == true endloop return foundID endfunction