Addition of quest 503.

Author: Jackass
This commit is contained in:
MobiusDevelopment
2019-07-29 08:42:11 +00:00
parent 00b05bcee5
commit 1a922b37f0
186 changed files with 1179 additions and 882 deletions

View File

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

View File

@@ -151,7 +151,7 @@ public class AdminMenu implements IAdminCommandHandler
return true;
}
PlayerInstance[] members = clan.getOnlineMembers("");
PlayerInstance[] members = clan.getOnlineMembers();
for (PlayerInstance member : members)
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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;
}
}