That's a good idea, and it wouldn't be difficult to implement either. I've changed the names of those config options.
Open src/map/battle.c and find:
{ "case_sensitive_aegisnames", &battle_config.case_sensitive_aegisnames, 1, 0, 1, },Add below:
Code:
{ "guild_castle_invite", &battle_config.guild_castle_invite, 0, 0, 1, },{ "guild_castle_expulsion", &battle_config.guild_castle_expulsion, 0, 0, 1, },
Open src/map/battle.h and find:
Code:
int case_sensitive_aegisnames;
Add below:
Code:
int guild_castle_invite; int guild_castle_expulsion;
Finally open src/map/guild.c and find (@guild_invite):
Code:
if( tsd->status.guild_id > 0 || tsd->guild_invite > 0 || ((map->agit_flag || map->agit2_flag) && map->list[tsd->bl.m].flag.gvg_castle)
Replace it with:
Code:
if( tsd->status.guild_id > 0 || tsd->guild_invite > 0 || ((map->agit_flag || map->agit2_flag) && map->list[tsd->bl.m].flag.gvg_castle && !battle_config.guild_castle_invite)
Find (@guild_leave):
Code:
if( sd->status.account_id != account_id || sd->status.char_id != char_id || sd->status.guild_id != guild_id || ((map->agit_flag || map->agit2_flag) && map->list[sd->bl.m].flag.gvg_castle)
Replace it with:
Code:
if( sd->status.account_id != account_id || sd->status.char_id != char_id || sd->status.guild_id != guild_id // Can't leave inside castles || ((map->agit_flag || map->agit2_flag) && map->list[sd->bl.m].flag.gvg_castle && !battle_config.guild_castle_expulsion)
Find (@guild_expulsion):
Code:
if ((tsd = map->id2sd(account_id)) && tsd->status.char_id == char_id && ((map->agit_flag || map->agit2_flag) && map->list[tsd->bl.m].flag.gvg_castle)
Replace it with:
Code:
if ((tsd = map->id2sd(account_id)) && tsd->status.char_id == char_id && ((map->agit_flag || map->agit2_flag) && map->list[sd->bl.m].flag.gvg_castle && !battle_config.guild_castle_expulsion)
In your conf/battle/guild.conf add:
Code:
// Can guild members invite/expel members inside guild castles in WoE/GvG? (Note 1)// default noguild_castle_invite: noguild_castle_expulsion: no