Bug Fixes
* Fixed Guild Auras applying to other guilds. (bugreport:7073) (Hercules 81caf70, 7fc0697, eb53067) * Fixed wrong packet being used for storages on 20071002 and older clients.
This commit is contained in:
parent
df1b99212b
commit
5aa2f17fc1
@ -5,7 +5,7 @@
|
||||
//
|
||||
// layout = -1:special, 0:1*1, 1:3*3, 2:5*5, up to 5:11*11
|
||||
// target = friend (party +guildmates +neutral players) / party / guild
|
||||
// ally (party +guildmates) / all / enemy
|
||||
// ally (party +guildmates) / all / sameguild (guild but no allies) / enemy
|
||||
// flag 0x0001(UF_DEFNOTENEMY) If 'defunit_not_enemy' is set, the target is changed to 'friend'
|
||||
// 0x0002(UF_NOREITERRATION) Spell cannot be stacked
|
||||
// 0x0004(UF_NOFOOTSET) Spell cannot be cast near/on targets
|
||||
|
@ -5,7 +5,7 @@
|
||||
//
|
||||
// layout = -1:special, 0:1*1, 1:3*3, 2:5*5, up to 5:11*11
|
||||
// target = friend (party +guildmates +neutral players) / party / guild
|
||||
// ally (party +guildmates) / all / enemy
|
||||
// ally (party +guildmates) / all / sameguild (guild but no allies) / enemy
|
||||
// flag 0x0001(UF_DEFNOTENEMY) If 'defunit_not_enemy' is set, the target is changed to 'friend'
|
||||
// 0x0002(UF_NOREITERRATION) Spell cannot be stacked
|
||||
// 0x0004(UF_NOFOOTSET) Spell cannot be cast near/on targets
|
||||
|
@ -6879,7 +6879,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
|
||||
{
|
||||
int s_guild = status_get_guild_id(s_bl);
|
||||
int t_guild = status_get_guild_id(t_bl);
|
||||
if( !(map[m].flag.pvp && map[m].flag.pvp_noguild) && s_guild && t_guild && (s_guild == t_guild || guild_isallied(s_guild, t_guild)) && (!map[m].flag.battleground || sbg_id == tbg_id) )
|
||||
if( !(map[m].flag.pvp && map[m].flag.pvp_noguild) && s_guild && t_guild && (s_guild == t_guild || (!(flag&BCT_SAMEGUILD) && guild_isallied(s_guild, t_guild))) && (!map[m].flag.battleground || sbg_id == tbg_id) )
|
||||
state |= BCT_GUILD;
|
||||
else
|
||||
state |= BCT_ENEMY;
|
||||
@ -6912,7 +6912,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
|
||||
{
|
||||
int s_guild = status_get_guild_id(s_bl);
|
||||
int t_guild = status_get_guild_id(t_bl);
|
||||
if(s_guild && t_guild && (s_guild == t_guild || guild_isallied(s_guild, t_guild)))
|
||||
if(s_guild && t_guild && (s_guild == t_guild || (!(flag&BCT_SAMEGUILD) && guild_isallied(s_guild, t_guild))))
|
||||
state |= BCT_GUILD;
|
||||
}
|
||||
} //end non pvp/gvg chk rivality
|
||||
|
@ -33,16 +33,18 @@ enum { // Flag of the final calculation
|
||||
|
||||
enum e_battle_check_target
|
||||
{//New definitions [Skotlex]
|
||||
BCT_ENEMY = 0x020000,
|
||||
BCT_NOENEMY = 0x1d0000, //This should be (~BCT_ENEMY&BCT_ALL)
|
||||
BCT_PARTY = 0x040000,
|
||||
BCT_NOPARTY = 0x1b0000, //This should be (~BCT_PARTY&BCT_ALL)
|
||||
BCT_GUILD = 0x080000,
|
||||
BCT_NOGUILD = 0x170000, //This should be (~BCT_GUILD&BCT_ALL)
|
||||
BCT_ALL = 0x1f0000,
|
||||
BCT_NOONE = 0x000000,
|
||||
BCT_SELF = 0x010000,
|
||||
BCT_ENEMY = 0x020000,
|
||||
BCT_PARTY = 0x040000,
|
||||
BCT_GUILDALLY = 0x080000, // Only allies, NOT guildmates
|
||||
BCT_NEUTRAL = 0x100000,
|
||||
BCT_SAMEGUILD = 0x200000, // No Guild Allies
|
||||
BCT_GUILD = 0x280000, // Guild AND Allies (BCT_SAMEGUILD|BCT_GUILDALLY)
|
||||
BCT_NOGUILD = 0x170000, // This should be (~BCT_GUILD&BCT_ALL)
|
||||
BCT_NOPARTY = 0x3b0000, // This should be (~BCT_PARTY&BCT_ALL)
|
||||
BCT_NOENEMY = 0x3d0000, // This should be (~BCT_ENEMY&BCT_ALL)
|
||||
BCT_ALL = 0x3f0000,
|
||||
};
|
||||
|
||||
// dammage structure
|
||||
|
@ -2554,7 +2554,7 @@ void clif_storagelist(struct map_session_data* sd, struct item* items, int items
|
||||
#if PACKETVER < 20071002
|
||||
const int se = 20; //entry size equip
|
||||
const int sidxe = 4; //start itemlist idx
|
||||
const int cmde = 0x2d1;
|
||||
const int cmde = 0xa6;
|
||||
#elif PACKETVER < 20100629
|
||||
const int se = 26;
|
||||
const int sidxe = 4;
|
||||
|
@ -12211,7 +12211,7 @@ static int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, un
|
||||
case UNT_GD_GLORYWOUNDS:
|
||||
case UNT_GD_SOULCOLD:
|
||||
case UNT_GD_HAWKEYES:
|
||||
if ( !sce )
|
||||
if ( !sce && battle_check_target(&sg->unit->bl, bl, sg->target_flag) > 0 )
|
||||
sc_start4(ss, bl,type,100,sg->skill_lv,0,0,0,1000);
|
||||
break;
|
||||
}
|
||||
@ -18990,6 +18990,7 @@ static bool skill_parse_row_unitdb(char* split[], int columns, int current) {
|
||||
else if( strcmpi(split[6],"all")==0 ) skill_db[idx].unit_target = BCT_ALL;
|
||||
else if( strcmpi(split[6],"enemy")==0 ) skill_db[idx].unit_target = BCT_ENEMY;
|
||||
else if( strcmpi(split[6],"self")==0 ) skill_db[idx].unit_target = BCT_SELF;
|
||||
else if( strcmpi(split[6],"sameguild"==0 ) skill_db[idx].unit_target = BCT_GUILD|BCT_SAMEGUILD;
|
||||
else if( strcmpi(split[6],"noone")==0 ) skill_db[idx].unit_target = BCT_NOONE;
|
||||
else skill_db[idx].unit_target = strtol(split[6],NULL,16);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user