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; *end;
This command will stop the execution for this particular script. The two This command will stop the execution for this particular script. The two

View File

@ -752,15 +752,6 @@ function script F_GetPlatinumSkills {
return; 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. // 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 // close
case CLOSE: case CLOSE:
sd->st->state = END; sd->st->state = END;
if (sd->st->clear_cutin)
clif_cutin(sd,"",255);
break; break;
// close2 // close2
case STOP: case STOP:

View File

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

View File

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