Clan donation improvements.
Contributed by nasseka.
This commit is contained in:
@@ -1,6 +0,0 @@
|
|||||||
DROP TABLE IF EXISTS `character_pledge_donation`;
|
|
||||||
CREATE TABLE IF NOT EXISTS `character_pledge_donation` (
|
|
||||||
`charId` int(10) unsigned NOT NULL DEFAULT 0,
|
|
||||||
`points` int(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY (`charId`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
|
@@ -360,23 +360,28 @@ public class DailyTaskManager
|
|||||||
|
|
||||||
private void resetClanDonationPoints()
|
private void resetClanDonationPoints()
|
||||||
{
|
{
|
||||||
|
// Update data for offline players.
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
try (Connection con = DatabaseFactory.getConnection())
|
||||||
{
|
{
|
||||||
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_pledge_donation WHERE points < ?"))
|
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE points var = ?"))
|
||||||
{
|
{
|
||||||
ps.setInt(1, 4);
|
ps.setString(1, PlayerVariables.CLAN_DONATION_POINTS);
|
||||||
ps.execute();
|
ps.execute();
|
||||||
}
|
}
|
||||||
for (Player player : World.getInstance().getPlayers())
|
|
||||||
{
|
|
||||||
player.setClanDonationPoints(3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e);
|
LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e);
|
||||||
}
|
}
|
||||||
LOGGER.info("Weekly caln contributions cleaned.");
|
|
||||||
|
// Update data for online players.
|
||||||
|
for (Player player : World.getInstance().getPlayers())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(PlayerVariables.CLAN_DONATION_POINTS);
|
||||||
|
player.getVariables().storeMe();
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.info("Daily clan donation points have been reset.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetWorldChatPoints()
|
private void resetWorldChatPoints()
|
||||||
|
@@ -460,11 +460,6 @@ public class Player extends Playable
|
|||||||
private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)";
|
private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)";
|
||||||
private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?";
|
private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?";
|
||||||
|
|
||||||
// Pledge donation:
|
|
||||||
private static final String DELETE_CLAN_DONATION = "DELETE FROM character_pledge_donation WHERE charId=?";
|
|
||||||
private static final String INSERT_CLAN_DONATION = "REPLACE INTO character_pledge_donation (`charId`, `points`) VALUES (?, ?)";
|
|
||||||
private static final String RESTORE_CLAN_DONATION = "SELECT * FROM character_pledge_donation WHERE charId=?";
|
|
||||||
|
|
||||||
// Elemental Spirits:
|
// Elemental Spirits:
|
||||||
private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?";
|
private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?";
|
||||||
|
|
||||||
@@ -946,8 +941,6 @@ public class Player extends Playable
|
|||||||
|
|
||||||
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
|
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
|
||||||
|
|
||||||
private int _clanDonationPoints = 3;
|
|
||||||
|
|
||||||
private final List<QuestTimer> _questTimers = new ArrayList<>();
|
private final List<QuestTimer> _questTimers = new ArrayList<>();
|
||||||
private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
|
private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
|
||||||
|
|
||||||
@@ -7084,9 +7077,6 @@ public class Player extends Playable
|
|||||||
// Purge.
|
// Purge.
|
||||||
restoreSubjugation();
|
restoreSubjugation();
|
||||||
|
|
||||||
// Clan donation.
|
|
||||||
restoreClanDonation();
|
|
||||||
|
|
||||||
// Load Premium Item List.
|
// Load Premium Item List.
|
||||||
loadPremiumItemList();
|
loadPremiumItemList();
|
||||||
|
|
||||||
@@ -7241,9 +7231,6 @@ public class Player extends Playable
|
|||||||
// Purge.
|
// Purge.
|
||||||
storeSubjugation();
|
storeSubjugation();
|
||||||
|
|
||||||
// Pledge donation.
|
|
||||||
storePledgeDonation();
|
|
||||||
|
|
||||||
final PlayerVariables vars = getScript(PlayerVariables.class);
|
final PlayerVariables vars = getScript(PlayerVariables.class);
|
||||||
if (vars != null)
|
if (vars != null)
|
||||||
{
|
{
|
||||||
@@ -15351,54 +15338,6 @@ public class Player extends Playable
|
|||||||
|
|
||||||
public int getClanDonationPoints()
|
public int getClanDonationPoints()
|
||||||
{
|
{
|
||||||
return _clanDonationPoints;
|
return getVariables().getInt(PlayerVariables.CLAN_DONATION_POINTS, 3);
|
||||||
}
|
|
||||||
|
|
||||||
public void setClanDonationPoints(int points)
|
|
||||||
{
|
|
||||||
_clanDonationPoints = points;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void storePledgeDonation()
|
|
||||||
{
|
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
|
||||||
{
|
|
||||||
try (PreparedStatement st = con.prepareStatement(DELETE_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
st.setInt(1, getObjectId());
|
|
||||||
st.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
try (PreparedStatement st = con.prepareStatement(INSERT_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
st.setInt(1, getObjectId());
|
|
||||||
st.setInt(2, getClanDonationPoints());
|
|
||||||
st.execute();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.log(Level.SEVERE, "Could not store clan donation points for playerId " + getObjectId() + ": ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void restoreClanDonation()
|
|
||||||
{
|
|
||||||
try (Connection con = DatabaseFactory.getConnection();
|
|
||||||
PreparedStatement statement = con.prepareStatement(RESTORE_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
statement.setInt(1, getObjectId());
|
|
||||||
try (ResultSet rset = statement.executeQuery())
|
|
||||||
{
|
|
||||||
if (rset.next())
|
|
||||||
{
|
|
||||||
setClanDonationPoints(rset.getInt("points"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.log(Level.SEVERE, "Could not restore clan donation points for playerId: " + getObjectId(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -39,6 +39,8 @@ public class ClanVariables extends AbstractVariables
|
|||||||
private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?";
|
private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?";
|
||||||
private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)";
|
private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)";
|
||||||
private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?";
|
private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?";
|
||||||
|
|
||||||
|
// Public variable names.
|
||||||
public static final String CONTRIBUTION = "CONTRIBUTION_";
|
public static final String CONTRIBUTION = "CONTRIBUTION_";
|
||||||
public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_";
|
public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_";
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ public class PlayerVariables extends AbstractVariables
|
|||||||
private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?";
|
private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?";
|
||||||
private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)";
|
private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)";
|
||||||
|
|
||||||
// Public variable names
|
// Public variable names.
|
||||||
public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN";
|
public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN";
|
||||||
public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED";
|
public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED";
|
||||||
public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED";
|
public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED";
|
||||||
@@ -81,6 +81,7 @@ public class PlayerVariables extends AbstractVariables
|
|||||||
public static final String STAT_MEN = "STAT_MEN";
|
public static final String STAT_MEN = "STAT_MEN";
|
||||||
public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT";
|
public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT";
|
||||||
public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME";
|
public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME";
|
||||||
|
public static final String CLAN_DONATION_POINTS = "CLAN_DONATION_POINTS";
|
||||||
|
|
||||||
private final int _objectId;
|
private final int _objectId;
|
||||||
|
|
||||||
|
@@ -25,9 +25,11 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Mail;
|
import org.l2jmobius.gameserver.model.itemcontainer.Mail;
|
||||||
|
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
|
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationInfo;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest;
|
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +65,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
if (player.reduceAdena("pledge donation", 10000, null, true))
|
if (player.reduceAdena("Pledge donation", 10000, null, true))
|
||||||
{
|
{
|
||||||
clan.addExp(player.getObjectId(), 9);
|
clan.addExp(player.getObjectId(), 9);
|
||||||
}
|
}
|
||||||
@@ -77,15 +79,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100)
|
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100)
|
||||||
{
|
{
|
||||||
if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null)
|
player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 100, player, true);
|
||||||
{
|
clan.addExp(player.getObjectId(), 30);
|
||||||
clan.addExp(player.getObjectId(), 30);
|
player.setHonorCoins(player.getHonorCoins() + 100);
|
||||||
player.setHonorCoins(player.getHonorCoins() + 100);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.sendPacket(new ExPledgeDonationRequest(false, _type, 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -97,15 +93,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500)
|
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500)
|
||||||
{
|
{
|
||||||
if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null)
|
player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 500, player, true);
|
||||||
{
|
clan.addExp(player.getObjectId(), 150);
|
||||||
clan.addExp(player.getObjectId(), 150);
|
player.setHonorCoins(player.getHonorCoins() + 500);
|
||||||
player.setHonorCoins(player.getHonorCoins() + 500);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.sendPacket(new ExPledgeDonationRequest(false, _type, 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -114,24 +104,22 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.setClanDonationPoints(Math.max(player.getClanDonationPoints() - 1, 0));
|
player.getVariables().set(PlayerVariables.CLAN_DONATION_POINTS, Math.max(player.getClanDonationPoints() - 1, 0));
|
||||||
criticalSuccess(player, clan, _type);
|
criticalSuccess(player, clan, _type);
|
||||||
player.sendPacket(new ExBloodyCoinCount(player));
|
player.sendPacket(new ExBloodyCoinCount(player));
|
||||||
player.sendItemList();
|
player.sendItemList();
|
||||||
player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints()));
|
player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints()));
|
||||||
|
player.sendPacket(new ExPledgeDonationInfo(player.getClanDonationPoints(), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void criticalSuccess(Player player, Clan clan, int type)
|
private void criticalSuccess(Player player, Clan clan, int type)
|
||||||
{
|
{
|
||||||
if (type == 1)
|
if (type == 1)
|
||||||
{
|
{
|
||||||
if (Rnd.get(100) < 10)
|
if (Rnd.get(100) < 5)
|
||||||
{
|
{
|
||||||
player.setHonorCoins(player.getHonorCoins() + 200);
|
player.setHonorCoins(player.getHonorCoins() + 200);
|
||||||
clan.getMembers().forEach(clanMember ->
|
clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 1, player.getName()));
|
||||||
{
|
|
||||||
sendMail(clanMember.getObjectId(), 1, player.getName());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (type == 2)
|
else if (type == 2)
|
||||||
@@ -139,10 +127,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
if (Rnd.get(100) < 5)
|
if (Rnd.get(100) < 5)
|
||||||
{
|
{
|
||||||
player.setHonorCoins(player.getHonorCoins() + 1000);
|
player.setHonorCoins(player.getHonorCoins() + 1000);
|
||||||
clan.getMembers().forEach(clanMember ->
|
clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 5, player.getName()));
|
||||||
{
|
|
||||||
sendMail(clanMember.getObjectId(), 5, player.getName());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +136,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS);
|
final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS);
|
||||||
final Mail attachment = msg.createAttachments();
|
final Mail attachment = msg.createAttachments();
|
||||||
attachment.addItem("Pledge reward", 95672, amount, null, null);
|
attachment.addItem("Pledge reward", 95672, amount, null, donator); // Honor Coin Pouch
|
||||||
MailManager.getInstance().sendMessage(msg);
|
MailManager.getInstance().sendMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
DROP TABLE IF EXISTS `character_pledge_donation`;
|
|
||||||
CREATE TABLE IF NOT EXISTS `character_pledge_donation` (
|
|
||||||
`charId` int(10) unsigned NOT NULL DEFAULT 0,
|
|
||||||
`points` int(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY (`charId`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
|
@@ -361,23 +361,28 @@ public class DailyTaskManager
|
|||||||
|
|
||||||
private void resetClanDonationPoints()
|
private void resetClanDonationPoints()
|
||||||
{
|
{
|
||||||
|
// Update data for offline players.
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
try (Connection con = DatabaseFactory.getConnection())
|
||||||
{
|
{
|
||||||
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_pledge_donation WHERE points < ?"))
|
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE points var = ?"))
|
||||||
{
|
{
|
||||||
ps.setInt(1, 4);
|
ps.setString(1, PlayerVariables.CLAN_DONATION_POINTS);
|
||||||
ps.execute();
|
ps.execute();
|
||||||
}
|
}
|
||||||
for (Player player : World.getInstance().getPlayers())
|
|
||||||
{
|
|
||||||
player.setClanDonationPoints(3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e);
|
LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e);
|
||||||
}
|
}
|
||||||
LOGGER.info("Weekly caln contributions cleaned.");
|
|
||||||
|
// Update data for online players.
|
||||||
|
for (Player player : World.getInstance().getPlayers())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(PlayerVariables.CLAN_DONATION_POINTS);
|
||||||
|
player.getVariables().storeMe();
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.info("Daily clan donation points have been reset.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetWorldChatPoints()
|
private void resetWorldChatPoints()
|
||||||
|
@@ -464,11 +464,6 @@ public class Player extends Playable
|
|||||||
private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)";
|
private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)";
|
||||||
private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?";
|
private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?";
|
||||||
|
|
||||||
// Pledge donation:
|
|
||||||
private static final String DELETE_CLAN_DONATION = "DELETE FROM character_pledge_donation WHERE charId=?";
|
|
||||||
private static final String INSERT_CLAN_DONATION = "REPLACE INTO character_pledge_donation (`charId`, `points`) VALUES (?, ?)";
|
|
||||||
private static final String RESTORE_CLAN_DONATION = "SELECT * FROM character_pledge_donation WHERE charId=?";
|
|
||||||
|
|
||||||
// Elemental Spirits:
|
// Elemental Spirits:
|
||||||
private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?";
|
private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?";
|
||||||
|
|
||||||
@@ -954,8 +949,6 @@ public class Player extends Playable
|
|||||||
|
|
||||||
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
|
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
|
||||||
|
|
||||||
private int _clanDonationPoints = 3;
|
|
||||||
|
|
||||||
private final List<QuestTimer> _questTimers = new ArrayList<>();
|
private final List<QuestTimer> _questTimers = new ArrayList<>();
|
||||||
private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
|
private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
|
||||||
|
|
||||||
@@ -7099,9 +7092,6 @@ public class Player extends Playable
|
|||||||
// Purge.
|
// Purge.
|
||||||
restoreSubjugation();
|
restoreSubjugation();
|
||||||
|
|
||||||
// Clan donation.
|
|
||||||
restoreClanDonation();
|
|
||||||
|
|
||||||
// Load Premium Item List.
|
// Load Premium Item List.
|
||||||
loadPremiumItemList();
|
loadPremiumItemList();
|
||||||
|
|
||||||
@@ -7258,9 +7248,6 @@ public class Player extends Playable
|
|||||||
// Purge.
|
// Purge.
|
||||||
storeSubjugation();
|
storeSubjugation();
|
||||||
|
|
||||||
// Pledge donation.
|
|
||||||
storePledgeDonation();
|
|
||||||
|
|
||||||
final PlayerVariables vars = getScript(PlayerVariables.class);
|
final PlayerVariables vars = getScript(PlayerVariables.class);
|
||||||
if (vars != null)
|
if (vars != null)
|
||||||
{
|
{
|
||||||
@@ -15531,54 +15518,6 @@ public class Player extends Playable
|
|||||||
|
|
||||||
public int getClanDonationPoints()
|
public int getClanDonationPoints()
|
||||||
{
|
{
|
||||||
return _clanDonationPoints;
|
return getVariables().getInt(PlayerVariables.CLAN_DONATION_POINTS, 3);
|
||||||
}
|
|
||||||
|
|
||||||
public void setClanDonationPoints(int points)
|
|
||||||
{
|
|
||||||
_clanDonationPoints = points;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void storePledgeDonation()
|
|
||||||
{
|
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
|
||||||
{
|
|
||||||
try (PreparedStatement st = con.prepareStatement(DELETE_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
st.setInt(1, getObjectId());
|
|
||||||
st.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
try (PreparedStatement st = con.prepareStatement(INSERT_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
st.setInt(1, getObjectId());
|
|
||||||
st.setInt(2, getClanDonationPoints());
|
|
||||||
st.execute();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.log(Level.SEVERE, "Could not store clan donation points for playerId " + getObjectId() + ": ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void restoreClanDonation()
|
|
||||||
{
|
|
||||||
try (Connection con = DatabaseFactory.getConnection();
|
|
||||||
PreparedStatement statement = con.prepareStatement(RESTORE_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
statement.setInt(1, getObjectId());
|
|
||||||
try (ResultSet rset = statement.executeQuery())
|
|
||||||
{
|
|
||||||
if (rset.next())
|
|
||||||
{
|
|
||||||
setClanDonationPoints(rset.getInt("points"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.log(Level.SEVERE, "Could not restore clan donation points for playerId: " + getObjectId(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -39,6 +39,8 @@ public class ClanVariables extends AbstractVariables
|
|||||||
private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?";
|
private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?";
|
||||||
private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)";
|
private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)";
|
||||||
private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?";
|
private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?";
|
||||||
|
|
||||||
|
// Public variable names.
|
||||||
public static final String CONTRIBUTION = "CONTRIBUTION_";
|
public static final String CONTRIBUTION = "CONTRIBUTION_";
|
||||||
public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_";
|
public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_";
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ public class PlayerVariables extends AbstractVariables
|
|||||||
private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?";
|
private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?";
|
||||||
private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)";
|
private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)";
|
||||||
|
|
||||||
// Public variable names
|
// Public variable names.
|
||||||
public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN";
|
public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN";
|
||||||
public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED";
|
public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED";
|
||||||
public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED";
|
public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED";
|
||||||
@@ -81,6 +81,7 @@ public class PlayerVariables extends AbstractVariables
|
|||||||
public static final String STAT_MEN = "STAT_MEN";
|
public static final String STAT_MEN = "STAT_MEN";
|
||||||
public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT";
|
public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT";
|
||||||
public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME";
|
public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME";
|
||||||
|
public static final String CLAN_DONATION_POINTS = "CLAN_DONATION_POINTS";
|
||||||
public static final String HENNA1_DURATION = "HENNA1_DURATION";
|
public static final String HENNA1_DURATION = "HENNA1_DURATION";
|
||||||
public static final String HENNA2_DURATION = "HENNA2_DURATION";
|
public static final String HENNA2_DURATION = "HENNA2_DURATION";
|
||||||
public static final String HENNA3_DURATION = "HENNA3_DURATION";
|
public static final String HENNA3_DURATION = "HENNA3_DURATION";
|
||||||
|
@@ -25,9 +25,11 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Mail;
|
import org.l2jmobius.gameserver.model.itemcontainer.Mail;
|
||||||
|
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
|
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationInfo;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest;
|
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +65,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
if (player.reduceAdena("pledge donation", 10000, null, true))
|
if (player.reduceAdena("Pledge donation", 10000, null, true))
|
||||||
{
|
{
|
||||||
clan.addExp(player.getObjectId(), 9);
|
clan.addExp(player.getObjectId(), 9);
|
||||||
}
|
}
|
||||||
@@ -77,15 +79,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100)
|
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100)
|
||||||
{
|
{
|
||||||
if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null)
|
player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 100, player, true);
|
||||||
{
|
clan.addExp(player.getObjectId(), 30);
|
||||||
clan.addExp(player.getObjectId(), 30);
|
player.setHonorCoins(player.getHonorCoins() + 100);
|
||||||
player.setHonorCoins(player.getHonorCoins() + 100);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.sendPacket(new ExPledgeDonationRequest(false, _type, 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -97,15 +93,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500)
|
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500)
|
||||||
{
|
{
|
||||||
if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null)
|
player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 500, player, true);
|
||||||
{
|
clan.addExp(player.getObjectId(), 150);
|
||||||
clan.addExp(player.getObjectId(), 150);
|
player.setHonorCoins(player.getHonorCoins() + 500);
|
||||||
player.setHonorCoins(player.getHonorCoins() + 500);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.sendPacket(new ExPledgeDonationRequest(false, _type, 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -114,24 +104,22 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.setClanDonationPoints(Math.max(player.getClanDonationPoints() - 1, 0));
|
player.getVariables().set(PlayerVariables.CLAN_DONATION_POINTS, Math.max(player.getClanDonationPoints() - 1, 0));
|
||||||
criticalSuccess(player, clan, _type);
|
criticalSuccess(player, clan, _type);
|
||||||
player.sendPacket(new ExBloodyCoinCount(player));
|
player.sendPacket(new ExBloodyCoinCount(player));
|
||||||
player.sendItemList();
|
player.sendItemList();
|
||||||
player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints()));
|
player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints()));
|
||||||
|
player.sendPacket(new ExPledgeDonationInfo(player.getClanDonationPoints(), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void criticalSuccess(Player player, Clan clan, int type)
|
private void criticalSuccess(Player player, Clan clan, int type)
|
||||||
{
|
{
|
||||||
if (type == 1)
|
if (type == 1)
|
||||||
{
|
{
|
||||||
if (Rnd.get(100) < 10)
|
if (Rnd.get(100) < 5)
|
||||||
{
|
{
|
||||||
player.setHonorCoins(player.getHonorCoins() + 200);
|
player.setHonorCoins(player.getHonorCoins() + 200);
|
||||||
clan.getMembers().forEach(clanMember ->
|
clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 1, player.getName()));
|
||||||
{
|
|
||||||
sendMail(clanMember.getObjectId(), 1, player.getName());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (type == 2)
|
else if (type == 2)
|
||||||
@@ -139,10 +127,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
if (Rnd.get(100) < 5)
|
if (Rnd.get(100) < 5)
|
||||||
{
|
{
|
||||||
player.setHonorCoins(player.getHonorCoins() + 1000);
|
player.setHonorCoins(player.getHonorCoins() + 1000);
|
||||||
clan.getMembers().forEach(clanMember ->
|
clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 5, player.getName()));
|
||||||
{
|
|
||||||
sendMail(clanMember.getObjectId(), 5, player.getName());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +136,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS);
|
final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS);
|
||||||
final Mail attachment = msg.createAttachments();
|
final Mail attachment = msg.createAttachments();
|
||||||
attachment.addItem("Pledge reward", 95672, amount, null, null);
|
attachment.addItem("Pledge reward", 95672, amount, null, donator); // Honor Coin Pouch
|
||||||
MailManager.getInstance().sendMessage(msg);
|
MailManager.getInstance().sendMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
DROP TABLE IF EXISTS `character_pledge_donation`;
|
|
||||||
CREATE TABLE IF NOT EXISTS `character_pledge_donation` (
|
|
||||||
`charId` int(10) unsigned NOT NULL DEFAULT 0,
|
|
||||||
`points` int(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY (`charId`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
|
@@ -361,23 +361,28 @@ public class DailyTaskManager
|
|||||||
|
|
||||||
private void resetClanDonationPoints()
|
private void resetClanDonationPoints()
|
||||||
{
|
{
|
||||||
|
// Update data for offline players.
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
try (Connection con = DatabaseFactory.getConnection())
|
||||||
{
|
{
|
||||||
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_pledge_donation WHERE points < ?"))
|
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE points var = ?"))
|
||||||
{
|
{
|
||||||
ps.setInt(1, 4);
|
ps.setString(1, PlayerVariables.CLAN_DONATION_POINTS);
|
||||||
ps.execute();
|
ps.execute();
|
||||||
}
|
}
|
||||||
for (Player player : World.getInstance().getPlayers())
|
|
||||||
{
|
|
||||||
player.setClanDonationPoints(3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e);
|
LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e);
|
||||||
}
|
}
|
||||||
LOGGER.info("Weekly caln contributions cleaned.");
|
|
||||||
|
// Update data for online players.
|
||||||
|
for (Player player : World.getInstance().getPlayers())
|
||||||
|
{
|
||||||
|
player.getVariables().remove(PlayerVariables.CLAN_DONATION_POINTS);
|
||||||
|
player.getVariables().storeMe();
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.info("Daily clan donation points have been reset.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetWorldChatPoints()
|
private void resetWorldChatPoints()
|
||||||
|
@@ -466,11 +466,6 @@ public class Player extends Playable
|
|||||||
private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)";
|
private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)";
|
||||||
private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?";
|
private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?";
|
||||||
|
|
||||||
// Pledge donation:
|
|
||||||
private static final String DELETE_CLAN_DONATION = "DELETE FROM character_pledge_donation WHERE charId=?";
|
|
||||||
private static final String INSERT_CLAN_DONATION = "REPLACE INTO character_pledge_donation (`charId`, `points`) VALUES (?, ?)";
|
|
||||||
private static final String RESTORE_CLAN_DONATION = "SELECT * FROM character_pledge_donation WHERE charId=?";
|
|
||||||
|
|
||||||
// Elemental Spirits:
|
// Elemental Spirits:
|
||||||
private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?";
|
private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?";
|
||||||
|
|
||||||
@@ -961,8 +956,6 @@ public class Player extends Playable
|
|||||||
|
|
||||||
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
|
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
|
||||||
|
|
||||||
private int _clanDonationPoints = 3;
|
|
||||||
|
|
||||||
private MissionLevelPlayerDataHolder _missionLevelProgress = null;
|
private MissionLevelPlayerDataHolder _missionLevelProgress = null;
|
||||||
|
|
||||||
private final List<QuestTimer> _questTimers = new ArrayList<>();
|
private final List<QuestTimer> _questTimers = new ArrayList<>();
|
||||||
@@ -7140,9 +7133,6 @@ public class Player extends Playable
|
|||||||
// Purge.
|
// Purge.
|
||||||
restoreSubjugation();
|
restoreSubjugation();
|
||||||
|
|
||||||
// Clan donation.
|
|
||||||
restoreClanDonation();
|
|
||||||
|
|
||||||
// Load Premium Item List.
|
// Load Premium Item List.
|
||||||
loadPremiumItemList();
|
loadPremiumItemList();
|
||||||
|
|
||||||
@@ -7299,9 +7289,6 @@ public class Player extends Playable
|
|||||||
// Purge.
|
// Purge.
|
||||||
storeSubjugation();
|
storeSubjugation();
|
||||||
|
|
||||||
// Pledge donation.
|
|
||||||
storePledgeDonation();
|
|
||||||
|
|
||||||
final PlayerVariables vars = getScript(PlayerVariables.class);
|
final PlayerVariables vars = getScript(PlayerVariables.class);
|
||||||
if (vars != null)
|
if (vars != null)
|
||||||
{
|
{
|
||||||
@@ -15620,55 +15607,7 @@ public class Player extends Playable
|
|||||||
|
|
||||||
public int getClanDonationPoints()
|
public int getClanDonationPoints()
|
||||||
{
|
{
|
||||||
return _clanDonationPoints;
|
return getVariables().getInt(PlayerVariables.CLAN_DONATION_POINTS, 3);
|
||||||
}
|
|
||||||
|
|
||||||
public void setClanDonationPoints(int points)
|
|
||||||
{
|
|
||||||
_clanDonationPoints = points;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void storePledgeDonation()
|
|
||||||
{
|
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
|
||||||
{
|
|
||||||
try (PreparedStatement st = con.prepareStatement(DELETE_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
st.setInt(1, getObjectId());
|
|
||||||
st.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
try (PreparedStatement st = con.prepareStatement(INSERT_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
st.setInt(1, getObjectId());
|
|
||||||
st.setInt(2, getClanDonationPoints());
|
|
||||||
st.execute();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.log(Level.SEVERE, "Could not store clan donation points for playerId " + getObjectId() + ": ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void restoreClanDonation()
|
|
||||||
{
|
|
||||||
try (Connection con = DatabaseFactory.getConnection();
|
|
||||||
PreparedStatement statement = con.prepareStatement(RESTORE_CLAN_DONATION))
|
|
||||||
{
|
|
||||||
statement.setInt(1, getObjectId());
|
|
||||||
try (ResultSet rset = statement.executeQuery())
|
|
||||||
{
|
|
||||||
if (rset.next())
|
|
||||||
{
|
|
||||||
setClanDonationPoints(rset.getInt("points"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.log(Level.SEVERE, "Could not restore clan donation points for playerId: " + getObjectId(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public MissionLevelPlayerDataHolder getMissionLevelProgress()
|
public MissionLevelPlayerDataHolder getMissionLevelProgress()
|
||||||
|
@@ -39,6 +39,8 @@ public class ClanVariables extends AbstractVariables
|
|||||||
private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?";
|
private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?";
|
||||||
private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)";
|
private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)";
|
||||||
private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?";
|
private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?";
|
||||||
|
|
||||||
|
// Public variable names.
|
||||||
public static final String CONTRIBUTION = "CONTRIBUTION_";
|
public static final String CONTRIBUTION = "CONTRIBUTION_";
|
||||||
public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_";
|
public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_";
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ public class PlayerVariables extends AbstractVariables
|
|||||||
private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?";
|
private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?";
|
||||||
private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)";
|
private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)";
|
||||||
|
|
||||||
// Public variable names
|
// Public variable names.
|
||||||
public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN";
|
public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN";
|
||||||
public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED";
|
public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED";
|
||||||
public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED";
|
public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED";
|
||||||
@@ -82,6 +82,7 @@ public class PlayerVariables extends AbstractVariables
|
|||||||
public static final String STAT_MEN = "STAT_MEN";
|
public static final String STAT_MEN = "STAT_MEN";
|
||||||
public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT";
|
public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT";
|
||||||
public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME";
|
public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME";
|
||||||
|
public static final String CLAN_DONATION_POINTS = "CLAN_DONATION_POINTS";
|
||||||
public static final String HENNA1_DURATION = "HENNA1_DURATION";
|
public static final String HENNA1_DURATION = "HENNA1_DURATION";
|
||||||
public static final String HENNA2_DURATION = "HENNA2_DURATION";
|
public static final String HENNA2_DURATION = "HENNA2_DURATION";
|
||||||
public static final String HENNA3_DURATION = "HENNA3_DURATION";
|
public static final String HENNA3_DURATION = "HENNA3_DURATION";
|
||||||
|
@@ -25,9 +25,11 @@ import org.l2jmobius.gameserver.model.actor.Player;
|
|||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||||
import org.l2jmobius.gameserver.model.itemcontainer.Mail;
|
import org.l2jmobius.gameserver.model.itemcontainer.Mail;
|
||||||
|
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
|
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationInfo;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest;
|
import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +65,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
if (player.reduceAdena("pledge donation", 10000, null, true))
|
if (player.reduceAdena("Pledge donation", 100000, null, true))
|
||||||
{
|
{
|
||||||
clan.addExp(player.getObjectId(), 9);
|
clan.addExp(player.getObjectId(), 9);
|
||||||
}
|
}
|
||||||
@@ -77,15 +79,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100)
|
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100)
|
||||||
{
|
{
|
||||||
if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null)
|
player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 100, player, true);
|
||||||
{
|
clan.addExp(player.getObjectId(), 30);
|
||||||
clan.addExp(player.getObjectId(), 30);
|
player.setHonorCoins(player.getHonorCoins() + 100);
|
||||||
player.setHonorCoins(player.getHonorCoins() + 100);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.sendPacket(new ExPledgeDonationRequest(false, _type, 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -97,15 +93,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500)
|
if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500)
|
||||||
{
|
{
|
||||||
if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null)
|
player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 500, player, true);
|
||||||
{
|
clan.addExp(player.getObjectId(), 150);
|
||||||
clan.addExp(player.getObjectId(), 150);
|
player.setHonorCoins(player.getHonorCoins() + 500);
|
||||||
player.setHonorCoins(player.getHonorCoins() + 500);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.sendPacket(new ExPledgeDonationRequest(false, _type, 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -114,24 +104,22 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.setClanDonationPoints(Math.max(player.getClanDonationPoints() - 1, 0));
|
player.getVariables().set(PlayerVariables.CLAN_DONATION_POINTS, Math.max(player.getClanDonationPoints() - 1, 0));
|
||||||
criticalSuccess(player, clan, _type);
|
criticalSuccess(player, clan, _type);
|
||||||
player.sendPacket(new ExBloodyCoinCount(player));
|
player.sendPacket(new ExBloodyCoinCount(player));
|
||||||
player.sendItemList();
|
player.sendItemList();
|
||||||
player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints()));
|
player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints()));
|
||||||
|
player.sendPacket(new ExPledgeDonationInfo(player.getClanDonationPoints(), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void criticalSuccess(Player player, Clan clan, int type)
|
private void criticalSuccess(Player player, Clan clan, int type)
|
||||||
{
|
{
|
||||||
if (type == 1)
|
if (type == 1)
|
||||||
{
|
{
|
||||||
if (Rnd.get(100) < 10)
|
if (Rnd.get(100) < 5)
|
||||||
{
|
{
|
||||||
player.setHonorCoins(player.getHonorCoins() + 200);
|
player.setHonorCoins(player.getHonorCoins() + 200);
|
||||||
clan.getMembers().forEach(clanMember ->
|
clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 1, player.getName()));
|
||||||
{
|
|
||||||
sendMail(clanMember.getObjectId(), 1, player.getName());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (type == 2)
|
else if (type == 2)
|
||||||
@@ -139,10 +127,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
if (Rnd.get(100) < 5)
|
if (Rnd.get(100) < 5)
|
||||||
{
|
{
|
||||||
player.setHonorCoins(player.getHonorCoins() + 1000);
|
player.setHonorCoins(player.getHonorCoins() + 1000);
|
||||||
clan.getMembers().forEach(clanMember ->
|
clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 5, player.getName()));
|
||||||
{
|
|
||||||
sendMail(clanMember.getObjectId(), 5, player.getName());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +136,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS);
|
final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS);
|
||||||
final Mail attachment = msg.createAttachments();
|
final Mail attachment = msg.createAttachments();
|
||||||
attachment.addItem("Pledge reward", 95672, amount, null, null);
|
attachment.addItem("Pledge reward", 95672, amount, null, donator); // Honor Coin Pouch
|
||||||
MailManager.getInstance().sendMessage(msg);
|
MailManager.getInstance().sendMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user