[eAthena]Okay after fiddling for hours, I figured it out. It turns out that this behavior is controlled by the ragexe.exe, not the SRC in particular.
if(map[sd->bl.m].flag.pvp) {
if(!battle_config.pk_mode) { // remove pvp stuff for pk_mode [Valaris]
if (!map[sd->bl.m].flag.pvp_nocalcrank)
sd->pvp_timer = add_timer(gettick()+200, pc_calc_pvprank_timer, sd->bl.id, 0);
sd->pvp_rank = 0;
sd->pvp_lastusers = 0;
sd->pvp_point = 5;
sd->pvp_won = 0;
sd->pvp_lost = 0;
}
clif_set0199(sd,1);
I changed that last line to 'clif_set0199(sd,3);'. It sends a packet to your client that makes it think you're in a GvG map, but without actually making GvG damage and restrictions apply(like disabling pushback or using guild.conf WoE damage options apply). It effectively did what I wanted but with two drawbacks:
1) No Visible Damage
2) No /nc
Fixing the first issue was easy, I just had to hex my client to show WoE damage and it worked. The problem is the /nc not working, which is not something anybody has ever bothered to hex before(to my knowledge). If we can figure out a way to hex this, it could be made into a feature.
Edit: This is eAthena code, not Hercules. Apparently in Hercules/rAthena this function is called clif_map_property.