|
@@ -6429,7 +6429,7 @@ int status_change_clear(struct block_list* bl, int type)
|
|
|
/*==========================================
|
|
|
* ƒXƒe�[ƒ^ƒXˆÙ�í�I—¹
|
|
|
*------------------------------------------*/
|
|
|
-int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|
|
+int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const char* file, int line)
|
|
|
{
|
|
|
struct map_session_data *sd;
|
|
|
struct status_change *sc;
|
|
@@ -6588,10 +6588,27 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|
|
break;
|
|
|
case SC_DANCING:
|
|
|
{
|
|
|
+ const char* prevfile = "<unknown>";
|
|
|
+ int prevline = 0;
|
|
|
struct map_session_data *dsd;
|
|
|
struct status_change_entry *dsc;
|
|
|
struct skill_unit_group *group;
|
|
|
|
|
|
+ if( sd )
|
|
|
+ {
|
|
|
+ if( sd->delunit_prevfile )
|
|
|
+ {// initially this is NULL, when a character logs in
|
|
|
+ prevfile = sd->delunit_prevfile;
|
|
|
+ prevline = sd->delunit_prevline;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ prevfile = "<none>";
|
|
|
+ }
|
|
|
+ sd->delunit_prevfile = file;
|
|
|
+ sd->delunit_prevline = line;
|
|
|
+ }
|
|
|
+
|
|
|
if(sce->val4 && sce->val4 != BCT_SELF && (dsd=map_id2sd(sce->val4)))
|
|
|
{// end status on partner as well
|
|
|
dsc = dsd->sc.data[SC_DANCING];
|
|
@@ -6608,10 +6625,12 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|
|
|
|
|
if( group == NULL )
|
|
|
{
|
|
|
- ShowDebug("status_change_end: SC_DANCING is missing skill unit group (val1=%d, val2=%d, val3=%d, val4=%d, timer=%d, tid=%d, char_id=%d, map=%s, x=%d, y=%d). Please report this! (#3504)\n",
|
|
|
+ ShowDebug("status_change_end: SC_DANCING is missing skill unit group (val1=%d, val2=%d, val3=%d, val4=%d, timer=%d, tid=%d, char_id=%d, map=%s, x=%d, y=%d, prev=%s:%d, from=%s:%d). Please report this! (#3504)\n",
|
|
|
sce->val1, sce->val2, sce->val3, sce->val4, sce->timer, tid,
|
|
|
sd ? sd->status.char_id : 0,
|
|
|
- mapindex_id2name(map_id2index(bl->m)), bl->x, bl->y);
|
|
|
+ mapindex_id2name(map_id2index(bl->m)), bl->x, bl->y,
|
|
|
+ prevfile, prevline,
|
|
|
+ file, line);
|
|
|
}
|
|
|
|
|
|
sce->val2 = 0;
|