|
Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo. Caso seja registrado, efetue login. Esqueceu sua senha? Clique aqui Recomendamos o uso do Mozilla Firefox para uma melhor visualização. |
|
| Início | Postados Hoje | Marcar Fóruns Como Lidos | Álbums | Banidos | SE Team | Medalhas |
|
|||||||
| Registrar | Loteria VIP | Staff SE | Regras do fórum | Comunidade | Arcade | Postados Hoje | Pesquisar | Experience |
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
![]() |
|
|
LinkBack | Ferramentas do Tópico | Modos de Exibição |
|
|
#1 (permalink) | |
|
Membro - Tenente
![]() Registrado em: Mar 2010
Posts: 106
Agradeceu: 43
Agradecido 140 Vezes em 45 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
![]()
|
Código:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Index: E:/L2j Development/workspace/L2_GameServer_It/java/config/SiegeRewards.properties
===================================================================
--- E:/L2j Development/workspace/L2_GameServer_It/java/config/SiegeRewards.properties (revision 0)
+++ E:/L2j Development/workspace/L2_GameServer_It/java/config/SiegeRewards.properties (revision 0)
@@ -0,0 +1,18 @@
+# ===============================================
+# Siege Reward System. By Erol & Setekh
+# ===============================================
+# Description: Siege Reward System is a system that rewards the victor's clan members on a siege.
+# - This engine contains a boolean that enables offline clan member to get rewarded too.
+# - And a list that will get parsed once the engine is instanced.
+# - The list will parse the items id and count and rewords the siege's victor clan.
+# ===============================================
+# Activates the system if its set as true
+ActivateSystem = False
+
+# Set as true it will reward only the online clan members,
+# setting it as false it will reward all members including offline.
+RewardOnlineOnly = False
+
+# The item info list.
+# To add a item with count just add " , " to split the item and count and " ; " to close the statement
+RewardInfo = 57,2000;5575,2000000
\ No newline at end of file
Index: E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java
===================================================================
--- E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 4034)
+++ E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (working copy)
@@ -41,6 +41,7 @@
import net.sf.l2j.gameserver.instancemanager.DimensionalRiftManager;
import net.sf.l2j.gameserver.instancemanager.PetitionManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager;
+import net.sf.l2j.gameserver.instancemanager.SiegeRewardManager;
import net.sf.l2j.gameserver.model.L2Character;
import net.sf.l2j.gameserver.model.L2Clan;
import net.sf.l2j.gameserver.model.L2Effect;
@@ -347,6 +348,10 @@
activeChar.sendPacket(new GameGuardQuery());*/
TvTEvent.onLogin(activeChar);
+
+ if(SiegeRewardManager.ACTIVATED_SYSTEM && !SiegeRewardManager.REWARD_ACTIVE_MEMBERS_ONLY)
+ SiegeRewardManager.getInstance().processWorldEnter(activeChar);
+
}
/**
Index: E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/entity/Siege.java
===================================================================
--- E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/entity/Siege.java (revision 4034)
+++ E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/entity/Siege.java (working copy)
@@ -34,6 +34,7 @@
import net.sf.l2j.gameserver.instancemanager.MercTicketManager;
import net.sf.l2j.gameserver.instancemanager.SiegeGuardManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager;
+import net.sf.l2j.gameserver.instancemanager.SiegeRewardManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager.SiegeSpawn;
import net.sf.l2j.gameserver.model.L2Character;
import net.sf.l2j.gameserver.model.L2Clan;
@@ -290,6 +291,10 @@
if (getCastle().getOwnerId() > 0) _siegeGuardManager.removeMercs();
getCastle().spawnDoor(); // Respawn door to castle
getCastle().getZone().updateZoneStatusForCharactersInside();
+
+ // Siege Reward Manager
+ if(getCastle().getOwnerId() > 0)
+ SiegeRewardManager.getInstance().notifySiegeEnded(ClanTable.getInstance().getClan(getCastle().getOwnerId()), getCastle().getName());
}
}
Index: E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/GameServer.java (revision 4034)
+++ E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/GameServer.java (working copy)
@@ -214,6 +214,7 @@
import net.sf.l2j.gameserver.instancemanager.QuestManager;
import net.sf.l2j.gameserver.instancemanager.RaidBossSpawnManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager;
+import net.sf.l2j.gameserver.instancemanager.SiegeRewardManager;
import net.sf.l2j.gameserver.model.AutoChatHandler;
import net.sf.l2j.gameserver.model.AutoSpawnHandler;
import net.sf.l2j.gameserver.model.L2Manor;
@@ -413,6 +414,10 @@
//PartyCommandManager.getInstance();
PetitionManager.getInstance();
QuestManager.getInstance();
+
+ // Siege Reward Manager - Seth
+ SiegeRewardManager.getInstance();
+
AugmentationData.getInstance();
if (Config.SAVE_DROPPED_ITEM)
ItemsOnGroundManager.getInstance();
Index: E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/instancemanager/SiegeRewardManager.java
===================================================================
--- E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/instancemanager/SiegeRewardManager.java (revision 0)
+++ E:/L2j Development/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/instancemanager/SiegeRewardManager.java (revision 0)
@@ -0,0 +1,306 @@
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+package net.sf.l2j.gameserver.instancemanager;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+import java.util.logging.Logger;
+
+import javolution.util.FastList;
+import javolution.util.FastMap;
+import net.sf.l2j.L2DatabaseFactory;
+import net.sf.l2j.gameserver.model.L2Clan;
+import net.sf.l2j.gameserver.model.L2ClanMember;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * @author Setekh
+ * Doing your mom while ur reading
+ */
+public class SiegeRewardManager
+{
+ // Singleton
+ private static SiegeRewardManager _instance;
+ static Logger _log = Logger.getLogger(SiegeRewardManager.class.getName());
+
+ // Config
+ public static boolean ACTIVATED_SYSTEM;
+ public static boolean REWARD_ACTIVE_MEMBERS_ONLY;
+
+ // Constant
+ private final FastList<RewardInfoz> _list;
+ private final FastMap<Integer, FastList<ToReward>> _toReward; // Offline players that didn't get rewarded. =( poor guys, But they'll have a surprise
+
+ public SiegeRewardManager()
+ {
+ _list = new FastList<RewardInfoz>();
+ _toReward = new FastMap<Integer, FastList<ToReward>>();
+ _log.info("SiegeRewardManager: Activated.");
+ }
+
+ public static SiegeRewardManager getInstance()
+ {
+ if(_instance == null)
+ {
+ _instance = new SiegeRewardManager();
+ _instance.loadConfigs();
+ _instance.loadOfflineMembers();
+ }
+
+ return _instance;
+ }
+
+ private void loadOfflineMembers()
+ {
+ // Mysql connector
+ Connection con = null;
+
+ try
+ {
+ con = L2DatabaseFactory.getInstance().getConnection();
+ PreparedStatement st = con.prepareStatement("select charId, itemId, count, castle_name, rewarded from reward_list");
+ ResultSet rs = st.executeQuery();
+
+ while(rs.next())
+ {
+ int charId = rs.getInt("charId");
+ int itemId = rs.getInt("itemId");
+ int count = rs.getInt("count");
+ String castle_name = rs.getString("castle_name");
+ boolean rewarded = rs.getBoolean("rewarded");
+
+ if(rewarded)
+ {
+ deleteRewarded(charId, itemId);
+ continue;
+ }
+
+ ToReward tr = new ToReward();
+ tr.charId = charId;
+ tr.itemId = itemId;
+ tr.count = count;
+ tr.castleName = castle_name;
+
+ if(!_toReward.containsKey(charId))
+ {
+ try // prevent errors
+ {
+ _toReward.put(charId, new FastList<ToReward>());
+ }
+ finally
+ {
+ _toReward.get(charId).add(tr);
+ }
+ }
+ else
+ _toReward.get(charId).add(tr);
+
+ }
+
+ rs.close();
+ st.close();
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ try
+ {
+ con.close();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void deleteRewarded(int charId, int itemId)
+ {
+ // Mysql connector
+ Connection con = null;
+
+ try
+ {
+ con = L2DatabaseFactory.getInstance().getConnection();
+ PreparedStatement st = con.prepareStatement("delete from reward_list where charId=? and itemId=?");
+ st.setInt(1, charId);
+ st.setInt(2, itemId);
+ st.execute();
+ st.close();
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ try
+ {
+ con.close();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void loadConfigs()
+ {
+ try
+ {
+ Properties prop = new Properties();
+ prop.load(new FileInputStream(new File("./config/SiegeRewards.properties")));
+
+ ACTIVATED_SYSTEM = Boolean.parseBoolean(prop.getProperty("ActivateSystem", "false"));
+ REWARD_ACTIVE_MEMBERS_ONLY = Boolean.parseBoolean(prop.getProperty("RewardOnlineOnly", "false"));
+
+ if(ACTIVATED_SYSTEM)
+ {
+ String[] splitz = prop.getProperty("RewardInfo").split(";");
+
+ for(String str: splitz)
+ {
+ String[] splits = str.split(",");
+ _list.add(new RewardInfoz(splits));
+ }
+ }
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ _log.info("SiegeRewardManager Loaded: "+_list.size()+" Reword Item(s).");
+ }
+ }
+
+ public void storeDataBase(int charId, String castleName)
+ {
+ // Mysql connector
+ Connection con = null;
+
+ try
+ {
+ con = L2DatabaseFactory.getInstance().getConnection();
+
+ for(RewardInfoz rewz : _list)
+ {
+ PreparedStatement st = con.prepareStatement("replace into reward_list values(?,?,?,?,?)");
+ st.setInt(1, charId);
+ st.setInt(2, rewz.getItemId());
+ st.setInt(3, rewz.getItemCount());
+ st.setString(4, castleName);
+ st.setInt(5, 0);
+ st.execute();
+ st.close();
+ }
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ try
+ {
+ con.close();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void processWorldEnter(L2PcInstance activeChar)
+ {
+ if(_toReward.containsKey(activeChar.getObjectId()))
+ {
+ String castleName = "";
+
+ for(ToReward tr :_toReward.get(activeChar.getObjectId()))
+ {
+ activeChar.addItem("SiegeReward", tr.itemId, tr.count, activeChar, true);
+ castleName = tr.castleName;
+ tr.rewarded = true;
+ }
+ activeChar.sendMessage("Congratulations! You have been rewarded for the " +castleName+ " siege victory!");
+ }
+ }
+
+ public class ToReward { String castleName; int charId, itemId, count; boolean rewarded; }
+
+ public class RewardInfoz
+ {
+ // Constants
+ private final int _itemId;
+ private final int _itemCount;
+
+ public RewardInfoz(String...strings)
+ {
+ _itemId = Integer.parseInt(strings[0]);
+ _itemCount = Integer.parseInt(strings[1]);
+ }
+
+ /**
+ * @return Returns the itemId.
+ */
+ public int getItemId()
+ {
+ return _itemId;
+ }
+
+ /**
+ * @return Returns the itemCount.
+ */
+ public int getItemCount()
+ {
+ return _itemCount;
+ }
+
+ }
+
+ public void notifySiegeEnded(L2Clan clan, String castleName)
+ {
+ for(L2ClanMember member : clan.getMembers())
+ {
+ if(member.isOnline())
+ {
+ L2PcInstance activeChar = member.getPlayerInstance();
+
+ for(RewardInfoz tr : _list)
+ activeChar.addItem("SiegeReward", tr.getItemId(), tr.getItemCount(), activeChar, true);
+
+ activeChar.sendMessage("Congratulations! You have been rewarded for the " +castleName+ " siege victory!");
+ }
+ else
+ storeDataBase(member.getObjectId(), castleName);
+ }
+ }
+
+}
Código:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `reward_list` -- ---------------------------- DROP TABLE IF EXISTS `reward_list`; CREATE TABLE `reward_list` ( `charid` int(11) NOT NULL default '0', `itemId` int(11) NOT NULL default '0', `count` int(22) NOT NULL default '0', `castle_name` varchar(50) NOT NULL default '', `rewarded` int(2) NOT NULL default '0', PRIMARY KEY (`charid`,`itemId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
|
|
|
| Os Seguintes 3 Usuários disseram Obrigado(a) para Lanterna-Verde por gostarem deste post : |
| Links Patrocinados |
|
|
#3 (permalink) |
|
Membro - Tenente
![]() Registrado em: Mar 2010
Posts: 106
Agradeceu: 43
Agradecido 140 Vezes em 45 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
![]()
|
ao término da siege, o clan vitorioso ganha determinado item (pode ser configurado se é somente os jogadores online ou não)
|
|
|
|
|
|
#6 (permalink) |
|
www.l2jlive-project.com
![]() Registrado em: May 2011
Localização: Italia - Florença
Posts: 1,222
Agradeceu: 175
Agradecido 393 Vezes em 249 Posts
Nome Real: Fábio Costa da Silva
|
Amigo adptar para frozen é mole achou cada arquivo ai que se pede a unica coisa que vai ter que mudar pra frozen é essa parte aqui +import net.sf.l2j.
|
|
|
|
|
|
#10 (permalink) | ||
|
www.l2jlive-project.com
![]() Registrado em: May 2011
Localização: Italia - Florença
Posts: 1,222
Agradeceu: 175
Agradecido 393 Vezes em 249 Posts
Nome Real: Fábio Costa da Silva
|
Citação:
Citação:
|
||
|
|
|
| O seguinte membro ao lado disse Obrigado(a) a : OliverSykes por gostar deste Post : |
muthorat (22-08-2014)
|
![]() |
|
|