Implemented /resetcooltime (#8613)

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
AoShinHo
2024-09-14 14:26:49 -03:00
committed by GitHub
parent 6c41f9bb3f
commit 70e8518a32
6 changed files with 72 additions and 3 deletions

View File

@@ -1150,6 +1150,51 @@ ACMD_FUNC(hide)
return 0;
}
ACMD_FUNC(resetcooltime)
{
nullpo_retr(-1, sd);
for( size_t i = 0; i < ARRAYLENGTH( sd->scd ); i++ ){
if( sd->scd[i] != nullptr ) {
sprintf( atcmd_output, msg_txt( sd, 1537 ), skill_db.find( sd->scd[i]->skill_id )->name ); // Found skill '%s', unblocking...
clif_displaymessage( sd->fd, atcmd_output );
if (battle_config.display_status_timers)
clif_skill_cooldown( *sd, sd->scd[i]->skill_id, 0 );
delete_timer(sd->scd[i]->timer, skill_blockpc_end);
aFree(sd->scd[i]);
sd->scd[i] = nullptr;
}
}
if( sd->hd != nullptr && hom_is_active( sd->hd ) ){
for( const uint16& skill_id : sd->hd->blockskill ){
sprintf( atcmd_output, msg_txt( sd, 1537 ), skill_db.find( skill_id )->name ); // Found skill '%s', unblocking...
clif_displaymessage( sd->fd, atcmd_output );
if (battle_config.display_status_timers)
clif_skill_cooldown( *sd, skill_id, 0 );
}
sd->hd->blockskill.clear();
}
if( sd->md != nullptr ){
for( const uint16& skill_id : sd->md->blockskill ){
sprintf( atcmd_output, msg_txt( sd, 1537 ), skill_db.find( skill_id )->name ); // Found skill '%s', unblocking...
clif_displaymessage( sd->fd, atcmd_output );
if (battle_config.display_status_timers)
clif_skill_cooldown( *sd, skill_id, 0 );
}
sd->md->blockskill.clear();
}
return 0;
}
/*==========================================
* Changes a character's class
*------------------------------------------*/
@@ -11019,6 +11064,7 @@ void atcommand_basecommands(void) {
ACMD_DEF(guildstorage),
ACMD_DEF(option),
ACMD_DEF(hide), // + /hide
ACMD_DEF(resetcooltime), // + /resetcooltime
ACMD_DEFR(jobchange, ATCMD_NOCONSOLE),
ACMD_DEF(kill),
ACMD_DEF(alive),