Added close3 script command (#7439)

Thanks to @aleos89 @Lemongrass3110 @vstumpf !
This commit is contained in:
Atemo 2022-11-18 15:39:00 +01:00 committed by GitHub
parent eb8587f5b5
commit 526a3fa048
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 11 deletions

View File

@ -1229,6 +1229,12 @@ Don't expect things to run smoothly if you don't make your scripts 'end'.
---------------------------------------
*close3;
The command is similar to 'close' but the cutin (if any) is cleared after closing.
---------------------------------------
*end;
This command will stop the execution for this particular script. The two

View File

@ -752,15 +752,6 @@ function script F_GetPlatinumSkills {
return;
}
//////////////////////////////////////////////////////////////////////////////////
// Shortcut : close button and clear cutin.
//////////////////////////////////////////////////////////////////////////////////
function script close3 {
close2;
cutin "",255;
end;
}
//////////////////////////////////////////////////////////////////////////////////
// Return true if the card is a charm (enchant card), false otherwise.
//////////////////////////////////////////////////////////////////////////////////

View File

@ -2286,6 +2286,8 @@ bool npc_scriptcont(struct map_session_data* sd, int id, bool closing){
// close
case CLOSE:
sd->st->state = END;
if (sd->st->clear_cutin)
clif_cutin(sd,"",255);
break;
// close2
case STOP:

View File

@ -4977,20 +4977,26 @@ BUILDIN_FUNC(clear)
/// close;
BUILDIN_FUNC(close)
{
TBL_PC* sd;
struct map_session_data* sd;
if( !script_rid2sd(sd) )
return SCRIPT_CMD_SUCCESS;
const char* command = script_getfuncname( st );
if( !st->mes_active ) {
st->state = END; // Keep backwards compatibility.
ShowWarning("Incorrect use of 'close' command!\n");
ShowWarning("buildin_close: Incorrect use of '%s' command!\n", command);
script_reportsrc(st);
} else {
st->state = CLOSE;
st->mes_active = 0;
}
if( !strcmp(command, "close3") ){
st->clear_cutin = true;
}
clif_scriptclose(sd, st->oid);
return SCRIPT_CMD_SUCCESS;
}
@ -26890,6 +26896,7 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(clear,""),
BUILDIN_DEF(close,""),
BUILDIN_DEF(close2,""),
BUILDIN_DEF2(close, "close3", ""),
BUILDIN_DEF(menu,"sl*"),
BUILDIN_DEF(select,"s*"), //for future jA script compatibility
BUILDIN_DEF(prompt,"s*"),

View File

@ -328,6 +328,7 @@ struct script_state {
unsigned op2ref : 1;// used by op_2
unsigned npc_item_flag : 1;
unsigned mes_active : 1; // Store if invoking character has a NPC dialog box open.
unsigned clear_cutin : 1;
char* funcname; // Stores the current running function name
unsigned int id;
};