getmonsterinfo update (#7227)
* Added the constant MOB_ID to getmonsterinfo script command * Added the possibility to use the monster name as argument Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
parent
a2ce09fd56
commit
177d57ee68
@ -3583,14 +3583,15 @@ This command does not count skills which are set as flag 4 (permament granted) (
|
||||
---------------------------------------
|
||||
|
||||
*getmonsterinfo(<mob ID>,<type>)
|
||||
*getmonsterinfo(<mob name>,<type>)
|
||||
|
||||
This function will look up the monster with the specified ID number in the
|
||||
mob database and return the info set by TYPE argument.
|
||||
This function will look up the monster with the specified <mob ID> or <mob name> in the
|
||||
mob database and return the info set by <type> argument.
|
||||
It will return -1 if there is no such monster (or the type value is invalid),
|
||||
or "null" if you requested the monster's name.
|
||||
|
||||
Valid types are:
|
||||
MOB_NAME - monster's name, if there is no such monster "null" is returned
|
||||
MOB_NAME - monster's japanese name, if there is no such monster "null" is returned
|
||||
MOB_LV - monster's level
|
||||
MOB_MAXHP - monster's maximum hp
|
||||
MOB_BASEEXP - monster's base experience
|
||||
@ -3615,6 +3616,7 @@ Valid types are:
|
||||
MOB_ELEMENT - monster's element(doesn't return the element level, only the element ID)
|
||||
MOB_MODE - monster's mode
|
||||
MOB_MVPEXP - monster's mvp experience
|
||||
MOB_ID - monster's ID
|
||||
|
||||
For more details, see the sample in 'doc/sample/getmonsterinfo.txt'.
|
||||
|
||||
|
@ -18067,24 +18067,32 @@ BUILDIN_FUNC(delmonsterdrop)
|
||||
* Returns some values of a monster [Lupus]
|
||||
* Name, Level, race, size, etc...
|
||||
getmonsterinfo(monsterID,queryIndex);
|
||||
getmonsterinfo(monsterName,queryIndex);
|
||||
*------------------------------------------*/
|
||||
BUILDIN_FUNC(getmonsterinfo)
|
||||
{
|
||||
int mob_id;
|
||||
std::shared_ptr<s_mob_db> mob = nullptr;
|
||||
|
||||
mob_id = script_getnum(st,2);
|
||||
if (!mobdb_checkid(mob_id)) {
|
||||
if (script_isstring(st, 2))
|
||||
mob = mobdb_search_aegisname(script_getstr(st, 2));
|
||||
else {
|
||||
uint16 mob_id = script_getnum(st, 2);
|
||||
|
||||
if (!mob_is_clone(mob_id)) {
|
||||
mob = mob_db.find(mob_id);
|
||||
}
|
||||
}
|
||||
|
||||
if (mob == nullptr) {
|
||||
//ShowError("buildin_getmonsterinfo: Wrong Monster ID: %i\n", mob_id);
|
||||
if ( script_getnum(st,3) == MOB_NAME ) // requested the name
|
||||
script_pushconststr(st,"null");
|
||||
if (script_getnum(st, 3) == MOB_NAME) // requested the name
|
||||
script_pushconststr(st, "null");
|
||||
else
|
||||
script_pushint(st,-1);
|
||||
script_pushint(st, -1);
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
|
||||
std::shared_ptr<s_mob_db> mob = mob_db.find(mob_id);
|
||||
|
||||
switch ( script_getnum(st,3) ) {
|
||||
switch ( script_getnum(st, 3) ) {
|
||||
case MOB_NAME: script_pushstrcopy(st,mob->jname.c_str()); break;
|
||||
case MOB_LV: script_pushint(st,mob->lv); break;
|
||||
case MOB_MAXHP: script_pushint(st,mob->status.max_hp); break;
|
||||
@ -18110,6 +18118,7 @@ BUILDIN_FUNC(getmonsterinfo)
|
||||
case MOB_ELEMENT: script_pushint(st,mob->status.def_ele); break;
|
||||
case MOB_MODE: script_pushint(st,mob->status.mode); break;
|
||||
case MOB_MVPEXP: script_pushint(st,mob->mexp); break;
|
||||
case MOB_ID: script_pushint(st,mob->id); break;
|
||||
default: script_pushint(st,-1); //wrong Index
|
||||
}
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
@ -26724,7 +26733,7 @@ struct script_function buildin_func[] = {
|
||||
BUILDIN_DEF(setitemscript,"is?"), //Set NEW item bonus script. Lupus
|
||||
BUILDIN_DEF(disguise,"i?"), //disguise player. Lupus
|
||||
BUILDIN_DEF(undisguise,"?"), //undisguise player. Lupus
|
||||
BUILDIN_DEF(getmonsterinfo,"ii"), //Lupus
|
||||
BUILDIN_DEF(getmonsterinfo,"vi"), //Lupus
|
||||
BUILDIN_DEF(addmonsterdrop,"vii??"), //Akinari [Lupus]
|
||||
BUILDIN_DEF(delmonsterdrop,"vi"), //Akinari [Lupus]
|
||||
BUILDIN_DEF(axtoi,"s"),
|
||||
|
@ -379,7 +379,8 @@ enum monsterinfo_types {
|
||||
MOB_RACE,
|
||||
MOB_ELEMENT,
|
||||
MOB_MODE,
|
||||
MOB_MVPEXP
|
||||
MOB_MVPEXP,
|
||||
MOB_ID,
|
||||
};
|
||||
|
||||
enum petinfo_types {
|
||||
|
@ -4462,6 +4462,7 @@
|
||||
export_constant(MOB_ELEMENT);
|
||||
export_constant(MOB_MODE);
|
||||
export_constant(MOB_MVPEXP);
|
||||
export_constant(MOB_ID);
|
||||
|
||||
/* petinfo types */
|
||||
export_constant(PETINFO_ID);
|
||||
|
Loading…
x
Reference in New Issue
Block a user