Check player quest condition when no party members found.
This commit is contained in:
@@ -1385,7 +1385,16 @@ public class Quest extends ManagedScript
|
|||||||
final List<PlayerInstance> members = getPartyMembers(player, npc, var, value);
|
final List<PlayerInstance> members = getPartyMembers(player, npc, var, value);
|
||||||
if (members.isEmpty())
|
if (members.isEmpty())
|
||||||
{
|
{
|
||||||
return player;
|
final QuestState qs = player.getQuestState(getName());
|
||||||
|
if (qs != null)
|
||||||
|
{
|
||||||
|
final Object sVar = qs.get(var);
|
||||||
|
if ((sVar != null) && ((String) sVar).equalsIgnoreCase(value))
|
||||||
|
{
|
||||||
|
return player; // match
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null; // no match
|
||||||
}
|
}
|
||||||
return members.get(Rnd.get(members.size()));
|
return members.get(Rnd.get(members.size()));
|
||||||
}
|
}
|
||||||
@@ -1424,19 +1433,21 @@ public class Quest extends ManagedScript
|
|||||||
return getRandomPartyMember(player);
|
return getRandomPartyMember(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// normal cases...if the player is not in a party, check the player's state
|
// Normal cases, if the player is not in a party, check the player's state.
|
||||||
QuestState temp = null;
|
|
||||||
final Party party = player.getParty();
|
final Party party = player.getParty();
|
||||||
|
|
||||||
// if this player is not in a party, just check if this player instance matches the conditions itself
|
// If this player is not in a party, just check if this player instance matches the conditions itself.
|
||||||
if ((party == null) || party.getPartyMembers().isEmpty())
|
if ((party == null) || party.getPartyMembers().isEmpty())
|
||||||
{
|
{
|
||||||
temp = player.getQuestState(getName());
|
final QuestState qs = player.getQuestState(getName());
|
||||||
if ((temp != null) && (temp.get(var) != null) && ((String) temp.get(var)).equalsIgnoreCase(value))
|
if (qs != null)
|
||||||
|
{
|
||||||
|
final Object sVar = qs.get(var);
|
||||||
|
if ((sVar != null) && ((String) sVar).equalsIgnoreCase(value))
|
||||||
{
|
{
|
||||||
return player; // match
|
return player; // match
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return null; // no match
|
return null; // no match
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1452,12 +1463,16 @@ public class Quest extends ManagedScript
|
|||||||
|
|
||||||
for (PlayerInstance partyMember : party.getPartyMembers())
|
for (PlayerInstance partyMember : party.getPartyMembers())
|
||||||
{
|
{
|
||||||
temp = partyMember.getQuestState(getName());
|
final QuestState qs = partyMember.getQuestState(getName());
|
||||||
if ((temp != null) && (temp.get(var) != null) && ((String) temp.get(var)).equalsIgnoreCase(value) && partyMember.isInsideRadius(target, Config.ALT_PARTY_RANGE, true, false))
|
if (qs != null)
|
||||||
|
{
|
||||||
|
final Object sVar = qs.get(var);
|
||||||
|
if ((sVar != null) && ((String) sVar).equalsIgnoreCase(value) && partyMember.isInsideRadius(target, Config.ALT_PARTY_RANGE, true, false))
|
||||||
{
|
{
|
||||||
candidates.add(partyMember);
|
candidates.add(partyMember);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if there was no match, return null...
|
// if there was no match, return null...
|
||||||
if (candidates.isEmpty())
|
if (candidates.isEmpty())
|
||||||
|
@@ -1385,7 +1385,16 @@ public class Quest extends ManagedScript
|
|||||||
final List<PlayerInstance> members = getPartyMembers(player, npc, var, value);
|
final List<PlayerInstance> members = getPartyMembers(player, npc, var, value);
|
||||||
if (members.isEmpty())
|
if (members.isEmpty())
|
||||||
{
|
{
|
||||||
return player;
|
final QuestState qs = player.getQuestState(getName());
|
||||||
|
if (qs != null)
|
||||||
|
{
|
||||||
|
final Object sVar = qs.get(var);
|
||||||
|
if ((sVar != null) && ((String) sVar).equalsIgnoreCase(value))
|
||||||
|
{
|
||||||
|
return player; // match
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null; // no match
|
||||||
}
|
}
|
||||||
return members.get(Rnd.get(members.size()));
|
return members.get(Rnd.get(members.size()));
|
||||||
}
|
}
|
||||||
@@ -1424,19 +1433,21 @@ public class Quest extends ManagedScript
|
|||||||
return getRandomPartyMember(player);
|
return getRandomPartyMember(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// normal cases...if the player is not in a party, check the player's state
|
// Normal cases, if the player is not in a party, check the player's state.
|
||||||
QuestState temp = null;
|
|
||||||
final Party party = player.getParty();
|
final Party party = player.getParty();
|
||||||
|
|
||||||
// if this player is not in a party, just check if this player instance matches the conditions itself
|
// If this player is not in a party, just check if this player instance matches the conditions itself.
|
||||||
if ((party == null) || party.getPartyMembers().isEmpty())
|
if ((party == null) || party.getPartyMembers().isEmpty())
|
||||||
{
|
{
|
||||||
temp = player.getQuestState(getName());
|
final QuestState qs = player.getQuestState(getName());
|
||||||
if ((temp != null) && (temp.get(var) != null) && ((String) temp.get(var)).equalsIgnoreCase(value))
|
if (qs != null)
|
||||||
|
{
|
||||||
|
final Object sVar = qs.get(var);
|
||||||
|
if ((sVar != null) && ((String) sVar).equalsIgnoreCase(value))
|
||||||
{
|
{
|
||||||
return player; // match
|
return player; // match
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return null; // no match
|
return null; // no match
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1452,12 +1463,16 @@ public class Quest extends ManagedScript
|
|||||||
|
|
||||||
for (PlayerInstance partyMember : party.getPartyMembers())
|
for (PlayerInstance partyMember : party.getPartyMembers())
|
||||||
{
|
{
|
||||||
temp = partyMember.getQuestState(getName());
|
final QuestState qs = partyMember.getQuestState(getName());
|
||||||
if ((temp != null) && (temp.get(var) != null) && ((String) temp.get(var)).equalsIgnoreCase(value) && partyMember.isInsideRadius(target, Config.ALT_PARTY_RANGE, true, false))
|
if (qs != null)
|
||||||
|
{
|
||||||
|
final Object sVar = qs.get(var);
|
||||||
|
if ((sVar != null) && ((String) sVar).equalsIgnoreCase(value) && partyMember.isInsideRadius(target, Config.ALT_PARTY_RANGE, true, false))
|
||||||
{
|
{
|
||||||
candidates.add(partyMember);
|
candidates.add(partyMember);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if there was no match, return null...
|
// if there was no match, return null...
|
||||||
if (candidates.isEmpty())
|
if (candidates.isEmpty())
|
||||||
|
Reference in New Issue
Block a user