diff options
Diffstat (limited to 'npc/items/mercenary.txt')
-rw-r--r-- | npc/items/mercenary.txt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/npc/items/mercenary.txt b/npc/items/mercenary.txt index 15060795d..65ffededd 100644 --- a/npc/items/mercenary.txt +++ b/npc/items/mercenary.txt @@ -57,4 +57,50 @@ function script cond_mercboxset { } */ +// Get mercenary ID +// merc_randid(5★, 4★, 3★, 2★, 1★) +function script merc_randid { + .@s5=getarg(0,0); + .@s4=getarg(1,0); + .@s3=getarg(2,0); + .@s2=getarg(3,0); + .@s1=getarg(4,0); + + .@sumup=.@s5+.@s4+.@s3+.@s2+.@s1; + /* I wonder if this is needed...? + .@s4+=.@s5; + .@s3+=.@s4; + .@s2+=.@s3; + .@s1+=.@s2; + */ + + // Make the seed. More level and luck increases odds of higher rarity + .@seed=max(0, rand(0, .@sumup)-BaseLevel-readparam(bLuk)); + + // 5 ★ + if (.@seed < .@s5) { + setarray .@r, 1192, 1191, 1193, 1210; + .@n=any_of(.@r); + // 4 ★ + } else if (.@seed < .@s4) { + setarray .@r, 1194, 1195, 1209, 1205; + .@n=any_of(.@r); + // 3 ★ + } else if (.@seed < .@s3) { + setarray .@r, 1196, 1197, 1198, 1208; + .@n=any_of(.@r); + // 2 ★ + } else if (.@seed < .@s2) { + if (.@mode) + setarray .@r, 1200, 1201, 1199, 1207; + .@n=any_of(.@r); + // 1 ★ + } else { + setarray .@r, 1203, 1204, 1202, 1206; + .@n=any_of(.@r); + } + + debugmes "Return: %d ([%d, %d, %d])", .@n, .@r[0], .@r[1], .@r[2]; + return .@n; +} |