# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: /home/lighta/Documents/Myscript/RO/Servs/rathena
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: src/map/skill.c
--- src/map/skill.c Base (BASE)
+++ src/map/skill.c Locally Modified (Based On LOCAL)
@@ -6582,8 +6582,8 @@
case SC_DONTFORGETME:
case SC_FORTUNE:
case SC_SERVICE4U:
- if( tsc->data[i]->val4 ) //val4 = out-of-song-area
- continue;
+ if(tsc->data[i]->val4==0)
+ continue; //if in song-area don't end it
break;
case SC_ASSUMPTIO:
if( bl->type == BL_MOB )
@@ -11369,11 +11369,10 @@
if (!sc) return 0;
if (!sce)
sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
- else if (sce->val4 == 1) {
- //Readjust timers since the effect will not last long.
- sce->val4 = 0;
+ else if (sce->val4 == 1) { //Readjust timers since the effect will not last long.
+ sce->val4 = 0; //remove the mark that we stepped out
delete_timer(sce->timer, status_change_timer);
- sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type);
+ sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min
}
break;
@@ -12214,6 +12213,7 @@
struct status_change_entry *sce;
enum sc_type type;
+ ShowDebug("skill_unit_onleft skill_id=%d\n",skill_id);
sc = status_get_sc(bl);
if (sc && !sc->count)
sc = NULL;
@@ -12326,6 +12326,7 @@
*------------------------------------------*/
static int skill_unit_effect (struct block_list* bl, va_list ap)
{
+
struct skill_unit* unit = va_arg(ap,struct skill_unit*);
struct skill_unit_group* group = unit->group;
unsigned int tick = va_arg(ap,unsigned int);
@@ -12342,6 +12343,7 @@
//Necessary in case the group is deleted after calling on_place/on_out [Skotlex]
skill_id = group->skill_id;
+ ShowDebug("skill_unit_effect, skill_id=%d, flag=%d\n",skill_id,flag);
//Target-type check.
if( !(group->bl_flag&bl->type && battle_check_target(&unit->bl,bl,group->target_flag)>0) && (flag&4) ) {
if( group->state.song_dance&0x1 || (group->src_id == bl->id && group->state.song_dance&0x2) )
@@ -15855,7 +15857,10 @@
static int skill_unit_temp[20]; // temporary storage for tracking skill unit skill ids as players move in/out of them
/*==========================================
- *
+ * flag :
+ * 1 : store that skill_unit in array
+ * 2 : clear that skill_unit
+ * 4 : call_on_left
*------------------------------------------*/
int skill_unit_move_sub (struct block_list* bl, va_list ap)
{
@@ -15915,7 +15920,7 @@
}
}
-
+ ShowDebug("skill_unit_move_sub, skill_id=%d, flag=%d\n",skill_id,flag);
if( flag&4 )
skill_unit_onleft(skill_id,target,tick);
}
@@ -15954,6 +15959,7 @@
//cells do not get deleted within them. [Skotlex]
if( dissonance ) skill_dance_switch(unit, 1);
+ ShowDebug("skill_unit_move_sub2, skill_id=%d flag=%d\n",skill_id,flag);
if( flag&4 )
skill_unit_onleft(skill_id,target,tick);
@@ -15987,9 +15993,11 @@
{ //Onplace, check any skill units you have left.
int i;
for( i = 0; i < ARRAYLENGTH(skill_unit_temp); i++ )
- if( skill_unit_temp[i] )
+ if( skill_unit_temp[i] ) {
+ ShowDebug("skill_unit_move, skill_id=%d\n",skill_unit_temp[i]);
skill_unit_onleft(skill_unit_temp[i], bl, tick);
}
+ }
return 0;
}
Index: src/map/status.c
--- src/map/status.c Base (BASE)
+++ src/map/status.c Locally Modified (Based On LOCAL)
@@ -338,8 +338,8 @@
add_sc( BA_FROSTJOKER , SC_FREEZE );
set_sc( BA_WHISTLE , SC_WHISTLE , SI_BLANK , SCB_FLEE|SCB_FLEE2 );
set_sc( BA_ASSASSINCROSS , SC_ASSNCROS , SI_BLANK , SCB_ASPD );
- add_sc( BA_POEMBRAGI , SC_POEMBRAGI );
- set_sc( BA_APPLEIDUN , SC_APPLEIDUN , SI_BLANK , SCB_MAXHP );
+ set_sc( BA_POEMBRAGI , SC_POEMBRAGI ,SI_FIREWEAPON ,SCB_NONE);
+ set_sc( BA_APPLEIDUN , SC_APPLEIDUN , SI_WATERWEAPON , SCB_MAXHP );
add_sc( DC_SCREAM , SC_STUN );
set_sc( DC_HUMMING , SC_HUMMING , SI_BLANK , SCB_HIT );
set_sc( DC_DONTFORGETME , SC_DONTFORGETME , SI_BLANK , SCB_SPEED|SCB_ASPD );
@@ -9033,6 +9033,7 @@
if( opt_flag&2 && sd && sd->touching_id )
npc_touchnext_areanpc(sd,false); // run OnTouch_ on next char in range
+ ShowInfo("Status %d started with %d,%d,%d,%d\n\t tick=%d, flag=%d\n",type,val1,val2,val3,val4,tick,flag);
return 1;
}
@@ -9829,6 +9830,7 @@
npc_touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event.
ers_free(sc_data_ers, sce);
+ ShowInfo("Status %d ended\n",type);
return 1;
}