#include #include #include #include "../map/pc.h" #include "../map/guild.h" #include "../map/battle.h" #include "../common/HPMi.h" #include "../common/HPMDataCheck.h" // should always be the last file included! (if you don't make it last, it'll intentionally break compile time) HPExport struct hplugin_info pinfo = { "antagonism", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; int battle_check_target_antagonism( int retVal, struct block_list *src, struct block_list *target,int flag ) { if ( retVal != -1 ) return retVal; else { struct block_list *s_bl = src, *t_bl = target; if( (t_bl = battle->get_master(target)) == NULL ) t_bl = target; if( (s_bl = battle->get_master(src)) == NULL ) s_bl = src; if ( s_bl->type == BL_PC && t_bl->type == BL_PC ) { TBL_PC *sd = BL_CAST( BL_PC, s_bl ); if ( guild->check_alliance( sd->status.guild_id, ((TBL_PC*)t_bl)->status.guild_id, 1 ) && !map->list[sd->bl.m].flag.town && !map->list[sd->bl.m].flag.nowarpto ) return 1; } } return -1; } HPExport void plugin_init (void) { battle = GET_SYMBOL("battle"); guild = GET_SYMBOL("guild"); map = GET_SYMBOL("map"); addHookPost("battle->check_target", battle_check_target_antagonism); }