Unhardcoded faction guards, fixed aggro and various improvements.
This commit is contained in:
parent
945e0d7b50
commit
2b9c79367e
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1090,7 +1090,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1099,8 +1098,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2467,7 +2464,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2479,8 +2475,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8355,6 +8355,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1097,7 +1097,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1106,8 +1105,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2483,7 +2480,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2495,8 +2491,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8362,6 +8362,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1105,7 +1105,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1114,8 +1113,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2498,7 +2495,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2510,8 +2506,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8364,6 +8364,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1098,7 +1098,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1107,8 +1106,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2484,7 +2481,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2496,8 +2492,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8362,6 +8362,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1098,7 +1098,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1107,8 +1106,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2484,7 +2481,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2496,8 +2492,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8364,6 +8364,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1098,7 +1098,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1107,8 +1106,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2484,7 +2481,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2496,8 +2492,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8364,6 +8364,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
@ -19,7 +19,6 @@ package custom.FactionSystem;
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
@ -32,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -49,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addSeeCreatureId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -169,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && creature.isPlayer() && ((creature.getActingPlayer().isGood() && (npc.getId() == EVIL_GUARD)) || (creature.getActingPlayer().isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, creature);
|
||||
}
|
||||
return super.onSeeCreature(npc, creature, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1278,7 +1278,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1287,8 +1286,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2798,7 +2795,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2810,8 +2806,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -225,6 +225,11 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && ((L2Npc) _actor).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && ((L2Npc) _actor).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player.isInParty() && player.getParty().isInDimensionalRift())
|
||||
{
|
||||
final byte riftType = player.getParty().getDimensionalRift().getType();
|
||||
|
@ -51,6 +51,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8469,6 +8469,15 @@ public final class L2PcInstance extends L2Playable
|
||||
}
|
||||
}
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getKarma() > 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
// Check if the L2PcInstance has Karma
|
||||
if ((getKarma() > 0) || (_pvpFlag > 0))
|
||||
{
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
4
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/guard/501.htm
vendored
Normal file
4
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/guard/501.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Sentinel:<br>
|
||||
You must use extreme caution, sir! There have been reports of roaming thugs in this area, who think nothing of killing for the sheer pleasure of it. Please let me know if you see any of them. My bow will protect you from these murderers.<br>
|
||||
May the divine protection of Eva be with you always.
|
||||
</body></html>
|
3
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/guard/502.htm
vendored
Normal file
3
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/html/guard/502.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Centurion:<br>
|
||||
I am sworn by the will of Paagrio to destroy all evildoers! If you see any of them, tell me. My bow will put an end to their treachery!
|
||||
</body></html>
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/npcs.xsd">
|
||||
<npc id="500" displayId="34210" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<npc id="500" displayId="9000" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<race>ELF</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats>
|
||||
|
@ -1043,7 +1043,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1052,8 +1051,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2379,7 +2376,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2391,8 +2387,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8307,6 +8307,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
4
L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/guard/501.htm
vendored
Normal file
4
L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/guard/501.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Sentinel:<br>
|
||||
You must use extreme caution, sir! There have been reports of roaming thugs in this area, who think nothing of killing for the sheer pleasure of it. Please let me know if you see any of them. My bow will protect you from these murderers.<br>
|
||||
May the divine protection of Eva be with you always.
|
||||
</body></html>
|
3
L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/guard/502.htm
vendored
Normal file
3
L2J_Mobius_Classic_2.1_Zaken/dist/game/data/html/guard/502.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Centurion:<br>
|
||||
I am sworn by the will of Paagrio to destroy all evildoers! If you see any of them, tell me. My bow will put an end to their treachery!
|
||||
</body></html>
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/npcs.xsd">
|
||||
<npc id="500" displayId="34210" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<npc id="500" displayId="9000" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<race>ELF</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats>
|
||||
|
@ -1047,7 +1047,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1056,8 +1055,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2386,7 +2383,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2398,8 +2394,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8308,6 +8308,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
4
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/guard/501.htm
vendored
Normal file
4
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/guard/501.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Sentinel:<br>
|
||||
You must use extreme caution, sir! There have been reports of roaming thugs in this area, who think nothing of killing for the sheer pleasure of it. Please let me know if you see any of them. My bow will protect you from these murderers.<br>
|
||||
May the divine protection of Eva be with you always.
|
||||
</body></html>
|
3
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/guard/502.htm
vendored
Normal file
3
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/guard/502.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Centurion:<br>
|
||||
I am sworn by the will of Paagrio to destroy all evildoers! If you see any of them, tell me. My bow will put an end to their treachery!
|
||||
</body></html>
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/npcs.xsd">
|
||||
<npc id="500" displayId="34210" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<npc id="500" displayId="9000" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<race>ELF</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats>
|
||||
|
@ -1047,7 +1047,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1056,8 +1055,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2386,7 +2383,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2398,8 +2394,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8310,6 +8310,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,6 @@ EnableFactionSystem = False
|
||||
# Default: 85332,16199,-1252
|
||||
StartingLocation = 85332,16199,-1252
|
||||
|
||||
# Faction manager NPC ID.
|
||||
# Default: 500
|
||||
FactionManagerNpcId = 500
|
||||
|
||||
# Spawn location for faction manager NPC.
|
||||
# Default: 85712,15974,-1260,26808
|
||||
ManagerSpawnLocation = 85712,15974,-1260,26808
|
||||
@ -47,14 +43,6 @@ EvilNameColor = 0000FF
|
||||
# Default: True
|
||||
EnableFactionGuards = True
|
||||
|
||||
# Good Guard NPC ID.
|
||||
# Default: 501
|
||||
GoodGuardNpcId = 501
|
||||
|
||||
# Evil Guard NPC ID.
|
||||
# Default: 502
|
||||
EvilGuardNpcId = 502
|
||||
|
||||
# Upon death, respawn at faction base.
|
||||
# Default: True
|
||||
RespawnAtFactionBase = True
|
||||
|
4
L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/guard/501.htm
vendored
Normal file
4
L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/guard/501.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Sentinel:<br>
|
||||
You must use extreme caution, sir! There have been reports of roaming thugs in this area, who think nothing of killing for the sheer pleasure of it. Please let me know if you see any of them. My bow will protect you from these murderers.<br>
|
||||
May the divine protection of Eva be with you always.
|
||||
</body></html>
|
3
L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/guard/502.htm
vendored
Normal file
3
L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/html/guard/502.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Centurion:<br>
|
||||
I am sworn by the will of Paagrio to destroy all evildoers! If you see any of them, tell me. My bow will put an end to their treachery!
|
||||
</body></html>
|
@ -31,9 +31,7 @@ import ai.AbstractNpcAI;
|
||||
public final class FactionSystem extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int MANAGER = Config.FACTION_MANAGER_NPCID;
|
||||
private static final int GOOD_GUARD = Config.FACTION_GOOD_GUARD_NPCID;
|
||||
private static final int EVIL_GUARD = Config.FACTION_EVIL_GUARD_NPCID;
|
||||
private static final int MANAGER = 500;
|
||||
// Other
|
||||
private static final String[] TEXTS =
|
||||
{
|
||||
@ -48,7 +46,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
addStartNpc(MANAGER);
|
||||
addTalkId(MANAGER);
|
||||
addFirstTalkId(MANAGER);
|
||||
addAggroRangeEnterId(EVIL_GUARD, GOOD_GUARD);
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
{
|
||||
@ -168,16 +165,6 @@ public final class FactionSystem extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((player.isGood() && (npc.getId() == EVIL_GUARD)) || (player.isEvil() && (npc.getId() == GOOD_GUARD))))
|
||||
{
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FactionSystem();
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/npcs.xsd">
|
||||
<npc id="500" displayId="34210" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<npc id="500" displayId="9000" name="Faction Manager" usingServerSideName="true" title=" " usingServerSideTitle="true" type="L2Npc">
|
||||
<race>ELF</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats>
|
||||
|
@ -1047,7 +1047,6 @@ public final class Config
|
||||
public static Map<String, Location> COMMUNITY_AVAILABLE_TELEPORTS;
|
||||
public static boolean FACTION_SYSTEM_ENABLED;
|
||||
public static Location FACTION_STARTING_LOCATION;
|
||||
public static int FACTION_MANAGER_NPCID;
|
||||
public static Location FACTION_MANAGER_LOCATION;
|
||||
public static Location FACTION_GOOD_BASE_LOCATION;
|
||||
public static Location FACTION_EVIL_BASE_LOCATION;
|
||||
@ -1056,8 +1055,6 @@ public final class Config
|
||||
public static int FACTION_GOOD_NAME_COLOR;
|
||||
public static int FACTION_EVIL_NAME_COLOR;
|
||||
public static boolean FACTION_GUARDS_ENABLED;
|
||||
public static int FACTION_GOOD_GUARD_NPCID;
|
||||
public static int FACTION_EVIL_GUARD_NPCID;
|
||||
public static boolean FACTION_RESPAWN_AT_BASE;
|
||||
public static boolean FACTION_AUTO_NOBLESS;
|
||||
public static boolean FACTION_SPECIFIC_CHAT;
|
||||
@ -2386,7 +2383,6 @@ public final class Config
|
||||
FACTION_SYSTEM_ENABLED = Boolean.valueOf(FactionSystem.getBoolean("EnableFactionSystem", false));
|
||||
tempString = FactionSystem.getString("StartingLocation", "85332,16199,-1252").split(",");
|
||||
FACTION_STARTING_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]));
|
||||
FACTION_MANAGER_NPCID = FactionSystem.getInt("FactionManagerNpcId", 500);
|
||||
tempString = FactionSystem.getString("ManagerSpawnLocation", "85712,15974,-1260,26808").split(",");
|
||||
FACTION_MANAGER_LOCATION = new Location(Integer.parseInt(tempString[0]), Integer.parseInt(tempString[1]), Integer.parseInt(tempString[2]), tempString[3] != null ? Integer.parseInt(tempString[3]) : 0);
|
||||
tempString = FactionSystem.getString("GoodBaseLocation", "45306,48878,-3058").split(",");
|
||||
@ -2398,8 +2394,6 @@ public final class Config
|
||||
FACTION_GOOD_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("GoodNameColor", "00FF00"));
|
||||
FACTION_EVIL_NAME_COLOR = Integer.decode("0x" + FactionSystem.getString("EvilNameColor", "0000FF"));
|
||||
FACTION_GUARDS_ENABLED = FactionSystem.getBoolean("EnableFactionGuards", true);
|
||||
FACTION_GOOD_GUARD_NPCID = FactionSystem.getInt("GoodGuardNpcId", 501);
|
||||
FACTION_EVIL_GUARD_NPCID = FactionSystem.getInt("EvilGuardNpcId", 502);
|
||||
FACTION_RESPAWN_AT_BASE = FactionSystem.getBoolean("RespawnAtFactionBase", true);
|
||||
FACTION_AUTO_NOBLESS = FactionSystem.getBoolean("FactionAutoNobless", false);
|
||||
FACTION_SPECIFIC_CHAT = FactionSystem.getBoolean("EnableFactionChat", true);
|
||||
|
@ -57,6 +57,14 @@ public class L2GuardInstance extends L2Attackable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||
{
|
||||
L2PcInstance player = attacker.getActingPlayer();
|
||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isAutoAttackable(attacker);
|
||||
}
|
||||
|
||||
|
@ -8310,6 +8310,10 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
if (attacker instanceof L2GuardInstance)
|
||||
{
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && ((_isGood && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (_isEvil && ((L2Npc) attacker).getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (getReputation() < 0); // Guards attack only PK players.
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user