Addition of quest 503.
Author: Jackass
This commit is contained in:
@@ -55,7 +55,7 @@ public class AdminMassRecall implements IAdminCommandHandler
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerInstance[] m = clan.getOnlineMembers("");
|
||||
PlayerInstance[] m = clan.getOnlineMembers();
|
||||
|
||||
for (PlayerInstance element : m)
|
||||
{
|
||||
@@ -84,7 +84,7 @@ public class AdminMassRecall implements IAdminCommandHandler
|
||||
|
||||
if (ally == 0)
|
||||
{
|
||||
PlayerInstance[] m = clan.getOnlineMembers("");
|
||||
PlayerInstance[] m = clan.getOnlineMembers();
|
||||
|
||||
for (PlayerInstance element : m)
|
||||
{
|
||||
@@ -97,7 +97,7 @@ public class AdminMassRecall implements IAdminCommandHandler
|
||||
{
|
||||
if (aclan.getAllyId() == ally)
|
||||
{
|
||||
PlayerInstance[] m = aclan.getOnlineMembers("");
|
||||
PlayerInstance[] m = aclan.getOnlineMembers();
|
||||
|
||||
for (PlayerInstance element : m)
|
||||
{
|
||||
|
@@ -151,7 +151,7 @@ public class AdminMenu implements IAdminCommandHandler
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerInstance[] members = clan.getOnlineMembers("");
|
||||
PlayerInstance[] members = clan.getOnlineMembers();
|
||||
|
||||
for (PlayerInstance member : members)
|
||||
{
|
||||
|
@@ -587,7 +587,7 @@ public class AdminSkill implements IAdminCommandHandler
|
||||
|
||||
activeChar.getClan().broadcastToOnlineMembers(new PledgeSkillList(activeChar.getClan()));
|
||||
|
||||
for (PlayerInstance member : activeChar.getClan().getOnlineMembers(""))
|
||||
for (PlayerInstance member : activeChar.getClan().getOnlineMembers())
|
||||
{
|
||||
member.sendSkillList();
|
||||
}
|
||||
|
@@ -475,6 +475,21 @@ public class Clan
|
||||
return _members.values().toArray(new ClanMember[_members.size()]);
|
||||
}
|
||||
|
||||
public Integer[] getOfflineMembersIds()
|
||||
{
|
||||
List<Integer> list = new ArrayList<>();
|
||||
|
||||
for (ClanMember temp : _members.values())
|
||||
{
|
||||
if ((temp != null) && !temp.isOnline())
|
||||
{
|
||||
list.add(temp.getObjectId());
|
||||
}
|
||||
}
|
||||
|
||||
return list.toArray(new Integer[list.size()]);
|
||||
}
|
||||
|
||||
public int getMembersCount()
|
||||
{
|
||||
return _members.size();
|
||||
@@ -562,7 +577,7 @@ public class Clan
|
||||
return limit;
|
||||
}
|
||||
|
||||
public PlayerInstance[] getOnlineMembers(String exclude)
|
||||
public PlayerInstance[] getOnlineMembers()
|
||||
{
|
||||
final List<PlayerInstance> result = new ArrayList<>();
|
||||
|
||||
@@ -570,7 +585,7 @@ public class Clan
|
||||
{
|
||||
try
|
||||
{
|
||||
if (temp.isOnline() && !temp.getName().equals(exclude))
|
||||
if (temp.isOnline())
|
||||
{
|
||||
result.add(temp.getPlayerInstance());
|
||||
}
|
||||
@@ -1302,7 +1317,7 @@ public class Clan
|
||||
|
||||
public void broadcastClanStatus()
|
||||
{
|
||||
for (PlayerInstance member : getOnlineMembers(""))
|
||||
for (PlayerInstance member : getOnlineMembers())
|
||||
{
|
||||
member.sendPacket(new PledgeShowMemberListDeleteAll());
|
||||
member.sendPacket(new PledgeShowMemberListAll(this, member));
|
||||
|
@@ -482,7 +482,7 @@ public class FortSiege
|
||||
for (SiegeClan siegeclan : getAttackerClans())
|
||||
{
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
if (clear)
|
||||
{
|
||||
@@ -505,7 +505,7 @@ public class FortSiege
|
||||
for (SiegeClan siegeclan : getDefenderClans())
|
||||
{
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
if (clear)
|
||||
{
|
||||
@@ -667,7 +667,7 @@ public class FortSiege
|
||||
{
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
|
||||
for (PlayerInstance player : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance player : clan.getOnlineMembers())
|
||||
{
|
||||
if (checkIfInZone(player.getX(), player.getY(), player.getZ()))
|
||||
{
|
||||
@@ -697,7 +697,7 @@ public class FortSiege
|
||||
continue;
|
||||
}
|
||||
|
||||
for (PlayerInstance player : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance player : clan.getOnlineMembers())
|
||||
{
|
||||
if (checkIfInZone(player.getX(), player.getY(), player.getZ()))
|
||||
{
|
||||
@@ -736,7 +736,7 @@ public class FortSiege
|
||||
continue;
|
||||
}
|
||||
|
||||
for (PlayerInstance player : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance player : clan.getOnlineMembers())
|
||||
{
|
||||
if (checkIfInZone(player.getX(), player.getY(), player.getZ()))
|
||||
{
|
||||
|
@@ -652,7 +652,7 @@ public class Siege
|
||||
{
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
if (clear)
|
||||
{
|
||||
@@ -675,7 +675,7 @@ public class Siege
|
||||
{
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
if (clear)
|
||||
{
|
||||
@@ -834,7 +834,7 @@ public class Siege
|
||||
{
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
|
||||
for (PlayerInstance player : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance player : clan.getOnlineMembers())
|
||||
{
|
||||
if (checkIfInZone(player.getX(), player.getY(), player.getZ()))
|
||||
{
|
||||
@@ -864,7 +864,7 @@ public class Siege
|
||||
continue;
|
||||
}
|
||||
|
||||
for (PlayerInstance player : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance player : clan.getOnlineMembers())
|
||||
{
|
||||
if (checkIfInZone(player.getX(), player.getY(), player.getZ()))
|
||||
{
|
||||
@@ -903,7 +903,7 @@ public class Siege
|
||||
continue;
|
||||
}
|
||||
|
||||
for (PlayerInstance player : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance player : clan.getOnlineMembers())
|
||||
{
|
||||
if (checkIfInZone(player.getX(), player.getY(), player.getZ()))
|
||||
{
|
||||
|
@@ -1958,6 +1958,11 @@ public class Quest extends ManagedScript
|
||||
return null;
|
||||
}
|
||||
|
||||
if (leader.isDead())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Verify if the player is on the radius of the leader. If true, send leader's quest state.
|
||||
if (leader.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, false))
|
||||
{
|
||||
@@ -1966,4 +1971,100 @@ public class Quest extends ManagedScript
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void setQuestToOfflineMembers(Integer[] objectsId)
|
||||
{
|
||||
try (Connection con = DatabaseFactory.getConnection())
|
||||
{
|
||||
PreparedStatement stm = con.prepareStatement("INSERT INTO character_quests (charId,name,var,value) VALUES (?,?,?,?)");
|
||||
|
||||
for (Integer charId : objectsId)
|
||||
{
|
||||
stm.setInt(1, charId.intValue());
|
||||
stm.setString(2, getName());
|
||||
stm.setString(3, "<state>");
|
||||
stm.setString(4, "1");
|
||||
|
||||
stm.executeUpdate();
|
||||
}
|
||||
|
||||
stm.close();
|
||||
con.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, "Error in updating character_quest table from Quest.java on method setQuestToOfflineMembers");
|
||||
LOGGER.info(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteQuestToOfflineMembers(int clanId)
|
||||
{
|
||||
try (Connection con = DatabaseFactory.getConnection())
|
||||
{
|
||||
PreparedStatement stm = con.prepareStatement("DELETE FROM character_quests WHERE name = ? and charId IN (SELECT charId FROM characters WHERE clanId = ? AND online = 0)");
|
||||
|
||||
stm.setString(1, getName());
|
||||
stm.setInt(2, clanId);
|
||||
|
||||
stm.executeUpdate();
|
||||
|
||||
stm.close();
|
||||
con.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, "Error in deleting infos from character_quest table from Quest.java on method deleteQuestToOfflineMembers");
|
||||
LOGGER.info(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current quest to clan offline's members
|
||||
* @param player the current player (should be clan leader)
|
||||
*/
|
||||
public void setQuestToClanMembers(PlayerInstance player)
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
PlayerInstance[] onlineMembers = player.getClan().getOnlineMembers();
|
||||
Integer[] offlineMembersIds = player.getClan().getOfflineMembersIds();
|
||||
|
||||
// Setting it for online members...
|
||||
for (PlayerInstance onlineMember : onlineMembers)
|
||||
{
|
||||
if (!onlineMember.isClanLeader())
|
||||
{
|
||||
onlineMember.setQuestState(player.getQuestState(getName()));
|
||||
}
|
||||
}
|
||||
|
||||
// Setting it for offline members...
|
||||
setQuestToOfflineMembers(offlineMembersIds);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finish the current quest to a clan's members
|
||||
* @param player clan's leader
|
||||
*/
|
||||
public void finishQuestToClan(PlayerInstance player)
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
PlayerInstance[] onlineMembers = player.getClan().getOnlineMembers();
|
||||
|
||||
// Deleting it for online members...
|
||||
for (PlayerInstance onlineMember : onlineMembers)
|
||||
{
|
||||
if (!onlineMember.isClanLeader())
|
||||
{
|
||||
onlineMember.delQuestState(getName());
|
||||
}
|
||||
}
|
||||
|
||||
// Deleting it for offline members...
|
||||
deleteQuestToOfflineMembers(player.getClanId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -278,7 +278,7 @@ public class RequestAquireSkill extends GameClientPacket
|
||||
|
||||
player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan()));
|
||||
|
||||
for (PlayerInstance member : player.getClan().getOnlineMembers(""))
|
||||
for (PlayerInstance member : player.getClan().getOnlineMembers())
|
||||
{
|
||||
member.sendSkillList();
|
||||
}
|
||||
|
@@ -78,7 +78,7 @@ public final class RequestExSetPledgeCrestLarge extends GameClientPacket
|
||||
clan.setHasCrestLarge(false);
|
||||
player.sendMessage("The insignia has been removed.");
|
||||
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
member.broadcastUserInfo();
|
||||
}
|
||||
@@ -133,7 +133,7 @@ public final class RequestExSetPledgeCrestLarge extends GameClientPacket
|
||||
|
||||
player.sendPacket(SystemMessageId.CLAN_EMBLEM_WAS_SUCCESSFULLY_REGISTERED);
|
||||
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
member.broadcastUserInfo();
|
||||
}
|
||||
|
@@ -52,6 +52,11 @@ public final class RequestQuestAbort extends GameClientPacket
|
||||
|
||||
if (qe != null)
|
||||
{
|
||||
if ((_questId == 503) && (player.getClan() != null) && player.isClanLeader())
|
||||
{
|
||||
qe.finishQuestToClan(player);
|
||||
}
|
||||
|
||||
final QuestState qs = player.getQuestState(qe.getName());
|
||||
if (qs != null)
|
||||
{
|
||||
|
@@ -111,7 +111,7 @@ public final class RequestSetAllyCrest extends GameClientPacket
|
||||
if (clan.getAllyId() == player.getAllyId())
|
||||
{
|
||||
clan.setAllyCrestId(newId);
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
member.broadcastUserInfo();
|
||||
}
|
||||
|
@@ -89,7 +89,7 @@ public final class RequestSetPledgeCrest extends GameClientPacket
|
||||
clan.setHasCrest(false);
|
||||
player.sendPacket(SystemMessageId.CLAN_CREST_HAS_BEEN_DELETED);
|
||||
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
member.broadcastUserInfo();
|
||||
}
|
||||
@@ -136,7 +136,7 @@ public final class RequestSetPledgeCrest extends GameClientPacket
|
||||
clan.setCrestId(newId);
|
||||
clan.setHasCrest(true);
|
||||
|
||||
for (PlayerInstance member : clan.getOnlineMembers(""))
|
||||
for (PlayerInstance member : clan.getOnlineMembers())
|
||||
{
|
||||
member.broadcastUserInfo();
|
||||
}
|
||||
|
@@ -60,7 +60,7 @@ public class AllyInfo extends GameServerPacket
|
||||
if (clan.getAllyId() == _player.getAllyId())
|
||||
{
|
||||
clancount++;
|
||||
online += clan.getOnlineMembers("").length;
|
||||
online += clan.getOnlineMembers().length;
|
||||
count += clan.getMembers().length;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user