Edit the "names" list, add a new pushlist for each member and run the macro.
Code: Select all
// Author: Di
// Description: dice roller
// Names
@createlist 'names'
if not @findalias 'draw'
@clearlist 'names'
pushlist! 'names' 'Player A'
pushlist! 'names' 'Player B'
pushlist! 'names' 'Player C'
pushlist! 'names' 'Player D'
if list 'names' == 0
sysmsg 'No registered players!' 25
stop
endif
else
msg 'Tiebreaker...' 80
pause 2000
endif
// Lists
@createlist 'winners'
@createlist 'rank'
@createlist 'scores'
@createlist 'sum'
if not listexists 'values'
createlist 'values'
// 6
pushlist 'values' '6, 6'
pushlist 'values' '5, 6'
pushlist 'values' '6, 5'
pushlist 'values' '4, 6'
pushlist 'values' '6, 4'
pushlist 'values' '3, 6'
pushlist 'values' '6, 3'
pushlist 'values' '2, 6'
pushlist 'values' '6, 2'
pushlist 'values' '1, 6'
pushlist 'values' '6, 1'
// 5
pushlist 'values' '5, 5'
pushlist 'values' '4, 5'
pushlist 'values' '5, 4'
pushlist 'values' '3, 5'
pushlist 'values' '5, 3'
pushlist 'values' '2, 5'
pushlist 'values' '5, 2'
pushlist 'values' '1, 5'
pushlist 'values' '5, 1'
// 4
pushlist 'values' '4, 4'
pushlist 'values' '3, 4'
pushlist 'values' '4, 3'
pushlist 'values' '2, 4'
pushlist 'values' '4, 2'
pushlist 'values' '1, 4'
pushlist 'values' '4, 1'
// 3
pushlist 'values' '3, 3'
pushlist 'values' '2, 3'
pushlist 'values' '3, 2'
pushlist 'values' '1, 3'
pushlist 'values' '3, 1'
// 2
pushlist 'values' '2, 2'
pushlist 'values' '1, 2'
pushlist 'values' '2, 1'
pushlist 'values' '1, 1'
endif
// Dice and cup
while not @findtype 0xfa7 0 'ground' 1 2
headmsg '* No dice *' 25
pause 1500
endwhile
@setalias 'dice' 'found'
// Start
@clearlist 'scores'
msg '* * * * * * *'
msg 'Rolling...' 60
pause 2000
// Roll
for 0 to 'names'
clearjournal
useobject! 'dice'
waitforjournal 'rolls' 25000 'system'
if @injournal 'rolls' 'system'
@clearlist 'sum'
pushlist 'sum' 12
pushlist 'sum' 11
pushlist 'sum' 11
pushlist 'sum' 10
pushlist 'sum' 10
pushlist 'sum' 9
pushlist 'sum' 9
pushlist 'sum' 8
pushlist 'sum' 8
pushlist 'sum' 7
pushlist 'sum' 7
pushlist 'sum' 10
pushlist 'sum' 9
pushlist 'sum' 9
pushlist 'sum' 8
pushlist 'sum' 8
pushlist 'sum' 7
pushlist 'sum' 7
pushlist 'sum' 6
pushlist 'sum' 6
pushlist 'sum' 8
pushlist 'sum' 7
pushlist 'sum' 7
pushlist 'sum' 6
pushlist 'sum' 6
pushlist 'sum' 5
pushlist 'sum' 5
pushlist 'sum' 6
pushlist 'sum' 5
pushlist 'sum' 5
pushlist 'sum' 4
pushlist 'sum' 4
pushlist 'sum' 4
pushlist 'sum' 3
pushlist 'sum' 3
pushlist 'sum' 2
for 0 to 'values'
if @injournal 'values[]' 'system'
msg 'names[]' 33
msg 'values[]' 60
msg 'sum[0]' 90
pushlist 'scores' 'sum[0]'
break
endif
poplist 'sum' 'front'
endfor
endif
pause 1000
endfor
// Compute results
msg 'Checking results...' 60
pause 2000
@clearlist 'winners'
@removetimer 'winners'
for 0 to 'names'
if list 'winners' != 0
@settimer 'winners' 'winners[1]'
endif
if not @timerexists 'winners' or @timer 'winners' <= 'scores[0]'
if not @inlist 'winners' 'scores[0]'
@clearlist 'winners'
endif
pushlist 'winners' 'names[]'
pushlist 'winners' 'scores[0]'
endif
poplist 'scores' 'front'
pause 100
endfor
// Display winners
if list 'winners' == 2
msg 'Winner:' 60
@unsetalias 'draw'
else
msg 'Tied:' 60
@setalias 'draw' 'self'
@clearlist 'names'
endif
@unsetalias 'jump'
for 0 to 'winners'
if @findalias 'jump'
@unsetalias 'jump'
continue
elseif @findalias 'draw'
pushlist! 'names' 'winners[]'
endif
msg 'winners[]' 33
@setalias 'jump' 'self'
endfor
if @findalias 'draw'
replay
endif