Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Sonido y mensaje al morir tipo LOL

Iniciado por Swarlog, Ago 12, 2022, 02:26 AM

Tema anterior - Siguiente tema

Swarlog


Index: java/com/l2jserver/gameserver/instancemanager/SoundManager.java
===================================================================
--- java/com/l2jserver/gameserver/instancemanager/SoundManager.java (revision 0)
+++ java/com/l2jserver/gameserver/instancemanager/SoundManager.java (working copy)
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2004-2014 L2J Server
+ *
+ * This file is part of L2J Server.
+ *
+ * L2J Server 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J Server 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, see <http://www.gnu.org/licenses/>.
+ */
+
+package com.l2jserver.gameserver.instancemanager;
+
+import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
+import com.l2jserver.gameserver.network.serverpackets.PlaySound;
+import com.l2jserver.util.Rnd;
+
+public class SoundManager
+{
+ final static int MilisBetweenMultiKills = 5000;
+
+ public static enum SoundFile
+ {
+ DUMMY("null"),
+ DOUBLE_KILL("doublekill"),
+ TRIPLE_KILL("triplekill"),
+ QUADRA_KILL("quadrakill"),
+ PENTA_KILL("pentakill"),
+ LEGENDARY_KILL("legendary");
+
+ private final String FileName;
+
+ SoundFile(String FileName)
+ {
+ this.FileName = FileName;
+ }
+
+ public String getFileName()
+ {
+ return FileName;
+ }
+
+ public static SoundFile getSoundFile(int i)
+ {
+ return SoundFile.values()[i];
+ }
+ }
+
+ public static void playSound(Versus vs)
+ {
+ PlaySound sound;
+ int level = vs.getKillLevel();
+ level = level > 5 ? 5 : level;
+ String s = SoundFile.getSoundFile(level).getFileName() + Rnd.get(1, 3);
+ sound = new PlaySound(1, s, 0, 0, 0, 0, 0);
+ ExShowScreenMessage msg = new ExShowScreenMessage(vs.getPlayer().getName() + " has scored a " + SoundFile.getSoundFile(level).toString().replace("_", " ") + "!", 4000);
+ vs.getPlayer().sendPacket(msg);
+ vs.getPlayer().sendPacket(sound);
+ for (L2Character ch : vs.getPlayer().getKnownList().getKnownCharacters())
+ {
+ if (ch instanceof L2PcInstance)
+ {
+ ch.sendPacket(msg);
+ ch.sendPacket(sound);
+ }
+ }
+ }
+
+ public static class Versus
+ {
+ private long _lastKillMs;
+ private int _killLevel;
+ final L2PcInstance _player;
+
+ public Versus(L2PcInstance player)
+ {
+ _player = player;
+ _lastKillMs = System.currentTimeMillis();
+ }
+
+ public void increaseKills()
+ {
+ if ((_lastKillMs + MilisBetweenMultiKills) > System.currentTimeMillis())
+ {
+ _killLevel++;
+ }
+ else
+ {
+ _killLevel = 0;
+ _lastKillMs = System.currentTimeMillis();
+ }
+
+ if (_killLevel > 0)
+ {
+ playSound(this);
+ }
+ }
+
+ public int getKillLevel()
+ {
+ return _killLevel;
+ }
+
+ public L2PcInstance getPlayer()
+ {
+ return _player;
+ }
+ }
+}
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 6528)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -115,6 +115,7 @@
 import com.l2jserver.gameserver.instancemanager.PunishmentManager;
 import com.l2jserver.gameserver.instancemanager.QuestManager;
 import com.l2jserver.gameserver.instancemanager.SiegeManager;
+import com.l2jserver.gameserver.instancemanager.SoundManager.Versus;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.ArenaParticipantsHolder;
@@ -894,6 +895,9 @@
  private boolean _marryrequest = false;
  private boolean _marryaccepted = false;
 
+ // Sound Manager Custom:
+ Versus vs;
+
  // Save responder name for log it
  private String _lastPetitionGmName = null;
 
@@ -5704,6 +5732,16 @@
  sendPacket(new UserInfo(this));
  sendPacket(new ExBrExtraUserInfo(this));
  }
+
+ // Sound Manager Custom:
+ if (vs == null)
+ {
+ vs = new Versus(this);
+ }
+ else
+ {
+ vs.increaseKills();
+ }
  }
 
  /**

NOTA: La carpeta "Announcer" añadirla en vuestro cliente para los sonidos, la llamada "music"; solo los sonidos y no la carpeta Announcer.