getmobdrops()
¶
Warning
This page may contain outdated information, incompatible with the current version of Hercules and its coding standards.
Syntax¶
Description¶
This command will find all drops of the specified mob and return the item IDs and drop percentages into arrays of temporary global variables.
getmobdrops()
returns 1 if successful and 0 if the mob ID doesn't exist.
Upon executing this,
Array | Description |
---|---|
$@MobDrop_item[] |
is a global temporary number array which contains the item IDs of the monster's drops. |
$@MobDrop_rate[] |
is a global temporary number array which contains the drop percentages of each item. (1 = .01%) |
$@MobDrop_count |
is the number of item drops found. |
Be sure to use $@MobDrop_count
to go through the arrays, and not getarraysize()
, because the temporary global arrays are not cleared between runs of getmobdrops()
. If a mob with 7 item drops is looked up, the arrays would have 7 elements. But if another mob is looked up and it only has 5 item drops, the server will not clear the arrays for you, overwriting the values instead. So in addition to returning the 5 item drops, the 6th and 7th elements from the last call remain, and you will get 5+2 item drops, of which the last 2 don't belong to the new mob.
$@MobDrop_count
will always contain the correct number (5), unlike getarraysize()` which would return 7 in this case.
Examples¶
// get a Mob ID from the user
input(.@mob_id);
if (getmobdrops(.@mob_id)) { // 'getmobdrops' returns 1 on success
// immediately copy global temporary variables into scope
// variables, since we don't know when 'getmobdrops' will get
// called again for another mob, overwriting your global temporary
// variables.
set(.@count, $@MobDrop_count);
copyarray(.@item[0], $@MobDrop_item[0], .@count);
copyarray(.@rate[0], $@MobDrop_rate[0], .@count);
mes(getmonsterinfo(.@mob_id, MOB_NAME) + " - " + .@count + " drops found:");
for (set(.@i, 0); .@i < .@count; set(.@i, .@i +1)) {
mes(.@item[.@i]
+ " (" + getitemname(.@item[.@i]) + ") "
+ .@rate[.@i] / 100 + ((.@rate[.@i] % 100 < 10) ? ".0" : ".") + .@rate[.@i] % 100 + "%"
);
}
} else {
mes("Unknown monster ID.");
}
close();