From b3df179f705b0a4fe99b0d6e81878251692843f1 Mon Sep 17 00:00:00 2001 From: Emistry Date: Sat, 13 Aug 2016 00:47:41 +0800 Subject: Added atcommand config Based on @Lemongrass3110's commit https://github.com/rathena/rathena/commit/9157318ee9939728b8d332a5668c13d4ad0a6f8b: Added a configuration to enable the atcommands baselevel and joblevel to trigger their respective npc events. This will help you guys with testing your custom scripts that are listening to OnPCBaseLvUpEvent or OnPCJobLvUpEvent. For safety reasons we only trigger the events on level increase. --- src/map/atcommand.c | 10 ++++++++-- src/map/battle.c | 1 + src/map/battle.h | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/map') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index de79ae0c4..8d4aa317f 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1398,6 +1398,7 @@ ACMD(baselevelup) sd->status.base_level -= level; clif->message(fd, msg_fd(fd,22)); // Base level lowered. status_calc_pc(sd, SCO_FORCE); + level *= -1; } sd->status.base_exp = 0; clif->updatestatus(sd, SP_STATUSPOINT); @@ -1407,7 +1408,9 @@ ACMD(baselevelup) pc->baselevelchanged(sd); if(sd->status.party_id) party->send_levelup(sd); - npc->script_event(sd, NPCE_BASELVUP); // Trigger OnPCBaseLvUpEvent + + if (level > 0 && battle_config.atcommand_levelup_events) + npc->script_event(sd, NPCE_BASELVUP); // Trigger OnPCBaseLvUpEvent return true; } @@ -1450,6 +1453,7 @@ ACMD(joblevelup) else sd->status.skill_point -= level; clif->message(fd, msg_fd(fd,25)); // Job level lowered. + level *= -1; } sd->status.job_exp = 0; clif->updatestatus(sd, SP_JOBLEVEL); @@ -1457,7 +1461,9 @@ ACMD(joblevelup) clif->updatestatus(sd, SP_NEXTJOBEXP); clif->updatestatus(sd, SP_SKILLPOINT); status_calc_pc(sd, SCO_FORCE); - npc->script_event(sd, NPCE_JOBLVUP); // Trigger OnPCJobLvUpEvent + + if (level > 0 && battle_config.atcommand_levelup_events) + npc->script_event(sd, NPCE_JOBLVUP); // Trigger OnPCJobLvUpEvent return true; } diff --git a/src/map/battle.c b/src/map/battle.c index 79048457c..908f0364b 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -7248,6 +7248,7 @@ static const struct battle_data { { "max_body_style", &battle_config.max_body_style, 4, 0, SHRT_MAX, }, { "save_body_style", &battle_config.save_body_style, 0, 0, 1, }, { "player_warp_keep_direction", &battle_config.player_warp_keep_direction, 0, 0, 1, }, + { "atcommand_levelup_events", &battle_config.atcommand_levelup_events, 0, 0, 1, }, }; #ifndef STATS_OPT_OUT /** diff --git a/src/map/battle.h b/src/map/battle.h index 1a23870e7..e04a713ae 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -542,6 +542,8 @@ struct Battle_Config { // Warp Face Direction int player_warp_keep_direction; + + int atcommand_levelup_events; // Enable atcommands trigger level up events for NPCs }; /* criteria for battle_config.idletime_critera */ -- cgit v1.2.3-60-g2f50