MapleTVEffect.java
上传用户:gwt600
上传日期:2021-06-03
资源大小:704k
文件大小:2k
源码类别:

游戏

开发平台:

Java

  1. package net.sf.odinms.server.maps;
  2. import java.rmi.RemoteException;
  3. import java.util.List;
  4. import net.sf.odinms.client.MapleCharacter;
  5. import net.sf.odinms.net.MaplePacket;
  6. import net.sf.odinms.server.TimerManager;
  7. import net.sf.odinms.net.channel.ChannelServer;
  8. import net.sf.odinms.tools.MaplePacketCreator;
  9. import net.sf.odinms.tools.Pair;
  10. public class MapleTVEffect {
  11. public static MaplePacket packet;
  12.     public static boolean active;
  13.     private ChannelServer cserv;
  14.     public MapleTVEffect(MapleCharacter user, MapleCharacter partner, List<String> msg, int type) {
  15.             cserv = user.getClient().getChannelServer();
  16. packet = MaplePacketCreator.sendTV(user, msg, type <= 2 ? type : type - 3, partner);
  17.             broadCastTV(true);
  18.             scheduleCancel(type);
  19.     }
  20.     private void broadCastTV(boolean active) {
  21.         MapleTVEffect.active = active;
  22.         try {
  23.             if (active) {
  24.                 cserv.getWorldInterface().broadcastMessage(null, MaplePacketCreator.enableTV().getBytes());
  25.                 cserv.getWorldInterface().broadcastMessage(null, packet.getBytes());
  26.             } else {
  27.                 cserv.getWorldInterface().broadcastMessage(null, MaplePacketCreator.removeTV().getBytes());
  28.                 packet = null;
  29.             }
  30.         } catch (RemoteException noob) {
  31.             cserv.reconnectWorld();
  32.         }
  33.     }
  34.     public static int getMapleTVDuration(int type) {
  35.         switch (type) {
  36.             case 1:
  37.             case 4:
  38.                 return 30000;
  39.             case 2:
  40.             case 5:
  41.                 return 60000;
  42.             default:
  43.                 return 15000;
  44.         }
  45.     }
  46.     private void scheduleCancel(int type) {
  47.         TimerManager.getInstance().schedule(new Runnable() {
  48.             @Override
  49.             public void run() {
  50.                 broadCastTV(false);
  51.             }
  52.         }, getMapleTVDuration(type));
  53.     }
  54. }