I've seen a couple of posts that players are not happy with NPCs causing a raid block.
For me I could solve it like that. Please remember that we are changing the plugin here and the developer has a different version. As soon as he brings out an update it may be that we will be raidblocked again.
But he may also implement it.
Just overide the whole BlockAll function, the only addition in the code are that i check if the dmg source are a NPC
if(!source.IsNpc)Maybe we need to edit another function too, now you know how to do
void BlockAll (BasePlayer source, BaseEntity targetEntity, List<string> sourceMembers = null)
{
if(!source.IsNpc)
{
if (ShouldBlockEscape (targetEntity.OwnerID, source.userID, sourceMembers)) {
StartRaidBlocking (source, targetEntity.transform.position);
}
var checkSourceMembers = false;
if (targetEntity.OwnerID == source.userID || (sourceMembers is List<string> && sourceMembers.Contains (targetEntity.OwnerID.ToString ()))) {
checkSourceMembers = true;
}
var nearbyTargets = Pool.GetList<BasePlayer> ();
Vis.Entities (targetEntity.transform.position, raidDistance, nearbyTargets, blockLayer);
if (nearbyTargets.Count > 0) {
RaidBlock blocker;
foreach (BasePlayer nearbyTarget in nearbyTargets) {
if (nearbyTarget.IsNpc) continue;
if (nearbyTarget.userID == source.userID) continue;
if (TryGetBlocker (nearbyTarget, out blocker) && blocker.Active) {
StartRaidBlocking (nearbyTarget, targetEntity.transform.position);
} else if (ShouldBlockEscape (nearbyTarget.userID, source.userID, checkSourceMembers ? sourceMembers : null)) {
StartRaidBlocking (nearbyTarget, targetEntity.transform.position);
}
}
}
Pool.FreeList (ref nearbyTargets);
}
}