Check player quest condition when no party members found.

This commit is contained in:
MobiusDevelopment
2020-09-23 23:32:17 +00:00
parent e7fb24cc62
commit e84129002b
2 changed files with 52 additions and 22 deletions

View File

@@ -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())

View File

@@ -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())