|
@@ -19784,6 +19784,32 @@ BUILDIN_FUNC(mercenary_create)
|
|
return SCRIPT_CMD_SUCCESS;
|
|
return SCRIPT_CMD_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+BUILDIN_FUNC(mercenary_delete)
|
|
|
|
+{
|
|
|
|
+ struct map_session_data *sd;
|
|
|
|
+ int type = 0;
|
|
|
|
+
|
|
|
|
+ if( !script_charid2sd(2, sd) )
|
|
|
|
+ return SCRIPT_CMD_FAILURE;
|
|
|
|
+
|
|
|
|
+ if( sd->md == nullptr ) {
|
|
|
|
+ ShowWarning("buildin_mercenary_delete: Tried to delete a non existant mercenary from player '%s' (AID: %u, CID: %u)\n", sd->status.name, sd->status.account_id, sd->status.char_id);
|
|
|
|
+ return SCRIPT_CMD_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if( script_hasdata(st, 3) ) {
|
|
|
|
+ type = script_getnum(st, 3);
|
|
|
|
+ if( type < 0 || type > 3 ) {
|
|
|
|
+ ShowWarning("buildin_mercenary_delete: invalid type value of %d.\n", type);
|
|
|
|
+ return SCRIPT_CMD_FAILURE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ mercenary_delete(sd->md, type);
|
|
|
|
+
|
|
|
|
+ return SCRIPT_CMD_SUCCESS;
|
|
|
|
+}
|
|
|
|
+
|
|
BUILDIN_FUNC(mercenary_heal)
|
|
BUILDIN_FUNC(mercenary_heal)
|
|
{
|
|
{
|
|
struct map_session_data *sd;
|
|
struct map_session_data *sd;
|
|
@@ -25790,6 +25816,7 @@ struct script_function buildin_func[] = {
|
|
BUILDIN_DEF(checkwall,"s"),
|
|
BUILDIN_DEF(checkwall,"s"),
|
|
BUILDIN_DEF(searchitem,"rs"),
|
|
BUILDIN_DEF(searchitem,"rs"),
|
|
BUILDIN_DEF(mercenary_create,"ii"),
|
|
BUILDIN_DEF(mercenary_create,"ii"),
|
|
|
|
+ BUILDIN_DEF(mercenary_delete,"??"),
|
|
BUILDIN_DEF(mercenary_heal,"ii"),
|
|
BUILDIN_DEF(mercenary_heal,"ii"),
|
|
BUILDIN_DEF(mercenary_sc_start,"iii"),
|
|
BUILDIN_DEF(mercenary_sc_start,"iii"),
|
|
BUILDIN_DEF(mercenary_get_calls,"i"),
|
|
BUILDIN_DEF(mercenary_get_calls,"i"),
|