Map server crashes whenever an enemy such as Osiris or Tatacho casts Quagmire on a Player.
I am sure this happens because I've made modifications to the script and activated PvP mode on the server.
What I modified (or what I remember I modified):
NOTE: These modifications were made in order to implement a command to switch between PKmode ON/OFF, plus enabling players to cast Party Buffs such as Magnificat within parties without the need to be in pkmode, since it did not worked if the players were not in pkmode. Now it works, players can cast party buffs regardless if the pkmode safety is on or off.
NOTE2: Skills such as Quagmire, Hunter traps, Demonstration also damages the caster. This probably also affects the enemy and this is why it crashes (assumption).
NOTE3: As a temporary "fix", we've disabled Quagmire skill on all mobs, although I would like this to be fixed instead.
switch( t_bl->type ) { //Checks on target master
case BL_PC: {
struct map_session_data *ssd=BL_CAST(BL_PC,s_bl);//custom; added ssd for enabling use of support skills on party members in pvp maps, stores map_session_data for source of attack/skill
struct map_session_data *sd;
struct status_change *sc = NULL;
if( t_bl == s_bl )
break;
sd = BL_CAST(BL_PC, t_bl);
sc = status_get_sc(t_bl);
if( (sd->state.monster_ignore || (sc->data[SC_KINGS_GRACE] && s_bl->type != BL_PC)) && flag&BCT_ENEMY )
return 0; // Global immunity only to Attacks
if( map[m].flag.pvp && sd->state.pk_mode==1 && flag&BCT_ENEMY && s_bl->type != BL_MOB ){
if(sd->status.party_id==ssd->status.party_id)
state|=BCT_PARTY;
else
return 0;}//end custom //Desperado RO pkmode
//return 0;
if( sd->status.karma && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->status.karma )
state |= BCT_ENEMY; // Characters with bad karma may fight amongst them
if( sd->state.killable ) {
state |= BCT_ENEMY; // Everything can kill it
strip_enemy = 0;
}
break;
}
skill.c
case AL_ANGELUS:
case PR_MAGNIFICAT:
case PR_GLORIA:
case SN_WINDWALK:
case CASH_BLESSING:
case CASH_INCAGI:
case CASH_ASSUMPTIO:
case WM_FRIGG_SONG:
//Desperado RO edit
if( sd == NULL || sd->status.party_id == 0 || (flag & 1) )
clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
else if( sd )
party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
break;
//line 12175
case WZ_QUAGMIRE: //The target changes to "all" if used in a gvg map. [Skotlex]
case AM_DEMONSTRATION:
case GN_HELLS_PLANT:
if( skill_id == GN_HELLS_PLANT && map_getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) )
return NULL;
if (map_flag_vs(src->m) && battle_config.vs_traps_bctall
&& (src->type&battle_config.vs_traps_bctall))
target = BCT_ALL;
break;
If there's anything I am missing, please let me know and I'll post the code.
Question
OscarScorp
Map server crashes whenever an enemy such as Osiris or Tatacho casts Quagmire on a Player.
I am sure this happens because I've made modifications to the script and activated PvP mode on the server.
What I modified (or what I remember I modified):
NOTE: These modifications were made in order to implement a command to switch between PKmode ON/OFF, plus enabling players to cast Party Buffs such as Magnificat within parties without the need to be in pkmode, since it did not worked if the players were not in pkmode. Now it works, players can cast party buffs regardless if the pkmode safety is on or off.
NOTE2: Skills such as Quagmire, Hunter traps, Demonstration also damages the caster. This probably also affects the enemy and this is why it crashes (assumption).
NOTE3: As a temporary "fix", we've disabled Quagmire skill on all mobs, although I would like this to be fixed instead.
atcommand.c
battle.c
skill.c
If there's anything I am missing, please let me know and I'll post the code.
Your help will be greatly appreciated.
Thanks in advance!
Edited by OscarScorpLink to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.