|
@@ -6358,18 +6358,29 @@ BUILDIN_FUNC(getcharid)
|
|
|
*------------------------------------------*/
|
|
|
BUILDIN_FUNC(getnpcid)
|
|
|
{
|
|
|
- int num;
|
|
|
-
|
|
|
- switch (num = script_getnum(st,2)) {
|
|
|
+ int num = script_getnum(st,2);
|
|
|
+ struct npc_data* nd;
|
|
|
+
|
|
|
+ if( script_hasdata(st,3) )
|
|
|
+ {// unique npc name
|
|
|
+ if( ( nd = npc_name2id(script_getstr(st,3)) ) == NULL )
|
|
|
+ {
|
|
|
+ ShowError("buildin_getnpcid: No such NPC '%s'.\n", script_getstr(st,3));
|
|
|
+ script_pushint(st,0);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (num) {
|
|
|
case 0:
|
|
|
- script_pushint(st,st->oid);
|
|
|
+ script_pushint(st,nd ? nd->bl.id : st->oid);
|
|
|
break;
|
|
|
default:
|
|
|
ShowError("buildin_getnpcid: invalid parameter (%d).\n", num);
|
|
|
script_pushint(st,0);
|
|
|
- break;
|
|
|
+ return 1;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
/*==========================================
|
|
@@ -15932,7 +15943,7 @@ struct script_function buildin_func[] = {
|
|
|
BUILDIN_DEF(checkweight,"vi"),
|
|
|
BUILDIN_DEF(readparam,"i?"),
|
|
|
BUILDIN_DEF(getcharid,"i?"),
|
|
|
- BUILDIN_DEF(getnpcid,"i"),
|
|
|
+ BUILDIN_DEF(getnpcid,"i?"),
|
|
|
BUILDIN_DEF(getpartyname,"i"),
|
|
|
BUILDIN_DEF(getpartymember,"i?"),
|
|
|
BUILDIN_DEF(getpartyleader,"i?"),
|