⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 refresh_all_player.java

📁 一个MMORPG手机游戏的服务器端程序源代码
💻 JAVA
字号:
package zsw_mmorpg.server;

import zsw_mmorpg.server.DBControl;
import zsw_mmorpg.server.controller.ShenzhouController;
import zsw_mmorpg.common.Player;

import java.util.Hashtable;
import java.util.Iterator;
import java.nio.channels.SocketChannel;

/**
 * Created by IntelliJ IDEA.
 * User: cu
 * Date: 2005-11-21
 * Time: 11:46:41
 * 循环保存所有玩家数据
 */
  /**
   * 定时刷新在线的玩家列表,
   * 然后做踢不在线玩家,
   * 或者定事保存所有玩家信息等
   * */
public class refresh_all_player extends Thread {
    Hashtable players;
    ShenzhouController      SzController;
    public refresh_all_player(Hashtable player,ShenzhouController SzC)    {
    players = player;
    SzController = SzC;
    }
    public void run()       {
        boolean is = true;
        while (is) {
            try {
                Thread.sleep(2000);     //1 minute
            } catch (InterruptedException e) {
                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
            }
               T_not_connect_player();

         //   System.out.println("all_p_save:这里保存所有在线玩家数据");
        }
    }
    /**保存所有玩家的信息*/
  /*  public void All_p_save() {
//        String return_s;
//        return_s =
       DBControl.update_all(players.values());
//        if (return_s.equals("failed"))
//            zsw_out.out("保存玩家信息进数据库,出现错误!");
//        else
//            zsw_out.out("保存玩家信息成功!");
    }                */
    /**踢掉非正常退出的玩家*/
    public void T_not_connect_player() {
        SocketChannel P_channel;
        StringBuffer  ss  = new StringBuffer();
        if (!players.isEmpty()) {
            Iterator i = players.values().iterator();
            while (i.hasNext()) {
                Player p = (Player) i.next();
                P_channel = p.getChannel();
                if (!P_channel.isConnected()) {
                    ss.append(p.getPlayerId());
                    ss.append(" ");
                }
            }
            String tokens[] = ShenzhouController.tokenizeString(ss.toString());
            for (int iii =0;iii < ShenzhouController.token_num ;iii++) {
                   players.remove(tokens[iii]);
                   GameServer.playersByPlayerId.remove(tokens[iii]);
                  System.out.println("kick :"+tokens[iii]);
               }

              Iterator ii = players.values().iterator();
            while (ii.hasNext()) {
                Player p2 = (Player) ii.next();
//                System.out.println("onlines :"+p2.getPlayerId());
            }
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -