08-06-2010, 09:40 AM
|
#1 (permalink)
|
|
Banido
Registrado em: Dec 2008
Posts: 130
Agradecido 85 Vezes em 31 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
|
Anuncio de PvPs/Pk
Eu sei que é uma das coisas mais fáceis para fazer com anúncios, mas, como nao tem ainda no forum estou postando-o para ficar aqui caso alguem precisar.
Esse é um patch para autoannounce quando um jogador mata o outro. Provavelmente este mod é muito mais útil em um servidor PvP.
Segue abaixo o Mod:
Index: C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/config/pvp.properties
===================================================================
--- C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/config/pvp.properties (revision 1156)
+++ C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/config/pvp.properties (working copy)
@@ -29,3 +29,11 @@
PvPVsNormalTime = 40000
# Length one stays in PvP mode after hitting a purple player (in ms)
PvPVsPvPTime = 20000
+
+# Announces when a Player PK another Player. Default - false
+AnnouncePkKill = false
+# Announces when a Player Pvp another Player. Default - false
+AnnouncePvPKill = false
+# Announces when a Player kill another Player. Default - false
+# NOTE: If AnnounceKill is enabled, AnnouncePk and AnnouncePvP will be disabled.
+AnnounceAllKill = false
Index: C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/net/sf/l2j/Config.java
===================================================================
--- C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/net/sf/l2j/Config.java (revision 1156)
+++ C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/net/sf/l2j/Config.java (working copy)
@@ -777,7 +777,13 @@
/** Duration (in ms) while a player stay in PVP mode after hitting an innocent */
public static int PVP_NORMAL_TIME;
/** Duration (in ms) while a player stay in PVP mode after hitting a purple player */
- public static int PVP_PVP_TIME;
+ public static int PVP_PVP_TIME;
+ /** Announce PvP */
+ public static boolean ANNOUNCE_PVP_KILL;
+ /** Announce PK */
+ public static boolean ANNOUNCE_PK_KILL;
+ /** Announce Kill */
+ public static boolean ANNOUNCE_ALL_KILL;
// Karma Punishment
/** Allow player with karma to be killed in peace zone ? */
@@ -1926,6 +1932,18 @@
PVP_NORMAL_TIME = Integer.parseInt(pvpSettings.getProperty("PvPVsNormalTime", "15000"));
PVP_PVP_TIME = Integer.parseInt(pvpSettings.getProperty("PvPVsPvPTime", "30000"));
+ ANNOUNCE_ALL_KILL = Boolean.parseBoolean(pvpSettings.getProperty("AnnounceAllKill", "False")); // Get the AnnounceAllKill, AnnouncePvpKill and AnnouncePkKill values
+ if ( !ANNOUNCE_ALL_KILL )
+ {
+ ANNOUNCE_PVP_KILL = Boolean.parseBoolean(pvpSettings.getProperty("AnnouncePvPKill", "False"));
+ ANNOUNCE_PK_KILL = Boolean.parseBoolean(pvpSettings.getProperty("AnnouncePkKill", "False"));
+ }
+ else
+ {
+ ANNOUNCE_PVP_KILL = false;
+ ANNOUNCE_PK_KILL = false;
+ }
+
}
catch (Exception e)
{
@@ -2323,6 +2341,9 @@
else if (pName.equalsIgnoreCase("PvPVsNormalTime")) PVP_NORMAL_TIME = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("PvPVsPvPTime")) PVP_PVP_TIME = Integer.parseInt(pValue);
+ else if (pName.equalsIgnoreCase("AnnouncePvPKill") && !ANNOUNCE_ALL_KILL ) ANNOUNCE_PVP_KILL = Boolean.valueOf(pValue); // Set announce Pvp value
+ else if (pName.equalsIgnoreCase("AnnouncePkKill") && !ANNOUNCE_ALL_KILL ) ANNOUNCE_PK_KILL = Boolean.valueOf(pValue); // Set announce Pk value
+ else if (pName.equalsIgnoreCase("AnnounceAllKill") && !ANNOUNCE_PVP_KILL && !ANNOUNCE_PK_KILL ) ANNOUNCE_ALL_KILL = Boolean.valueOf(pValue); // Set announce kill value
else if (pName.equalsIgnoreCase("GlobalChat")) DEFAULT_GLOBAL_CHAT = pValue;
else if (pName.equalsIgnoreCase("TradeChat")) DEFAULT_TRADE_CHAT = pValue;
else if (pName.equalsIgnoreCase("MenuStyle")) GM_ADMIN_MENU_STYLE = pValue;
Index: C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1156)
+++ C:/Documents and Settings/YO/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -35,6 +35,7 @@
import javolution.util.FastMap;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
+import net.sf.l2j.gameserver.Announcements;
import net.sf.l2j.gameserver.GameTimeController;
import net.sf.l2j.gameserver.GeoData;
import net.sf.l2j.gameserver.GmListTable;
@@ -4446,6 +4447,9 @@
)
{
increasePvpKills();
+ if ( target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL ) // Announces a PvP kill
+ Announcements.getInstance().announceToAll("Player "+this.getName()+" hunted Player "+target.getName());
+ return;
}
else // Target player doesn't have pvp flag set
{
@@ -4458,6 +4462,10 @@
{
// 'Both way war' -> 'PvP Kill'
increasePvpKills();
+ if ( target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL ) // Announces a PvP kill
+ Announcements.getInstance().announceToAll("Player "+this.getName()+" hunted Player "+target.getName());
+ else if ( target instanceof L2PcInstance && Config.ANNOUNCE_ALL_KILL ) // Announces a kill
+ Announcements.getInstance().announceToAll("Player "+this.getName()+" killed Player "+target.getName());
return;
}
}
@@ -4469,13 +4477,19 @@
if ( Config.KARMA_AWARD_PK_KILL )
{
increasePvpKills();
+ if ( target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL ) // Announces a PvP kill
+ Announcements.getInstance().announceToAll("Player "+this.getName()+" hunted Player "+target.getName());
}
}
else if (targetPlayer.getPvpFlag() == 0) // Target player doesn't have karma
{
increasePkKillsAndKarma(targetPlayer.getLevel());
+ if ( target instanceof L2PcInstance && Config.ANNOUNCE_PK_KILL ) // Announces a Pk kill
+ Announcements.getInstance().announceToAll("Player "+this.getName()+" has assassinated Player "+target.getName());
}
}
+ if ( target instanceof L2PcInstance && Config.ANNOUNCE_ALL_KILL ) // Announces a kill
+ Announcements.getInstance().announceToAll("Player "+this.getName()+" killed Player "+target.getName());
}
/**
Creditos: l2jforum
Testei em L2jteon funcionou 100% (Interlude).
Nao testei em Gracia.
|
|
|