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

📄 shenzhoucontroller.java

📁 一个MMORPG手机游戏的服务器端程序源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            System.out.println(temp.toString());            int money_temp = p.getPlayer_money();            money_temp = money_temp -  Item.item_data[item_NO][2];            p.setPlayer_money(money_temp);            p.setPlayer_item(temp.toString());            GameEventDefault lla = new GameEventDefault(GameEventDefault.C_shop_buy,                    p.getPlayer_money()+" "+p.getPlayer_item());            sendEvent(lla, p);            p_save_this_player(p);        }    }}/**为了保证道具格式,1位的数字,前面加“0” ,来凑成2位*/public static String one_number_to_two_number(int item_NO) {        String temp_2;        if((item_NO>=0)&&(item_NO<=9))           temp_2 = "0"+item_NO+"0";        else         temp_2 = item_NO+"0";        return temp_2;    }/**商店卖部分*/protected void Shop_sell(GameEvent e){    int Box_item_NO ;               //物品栏编号    int Box_is_change = -1;    String temp_3;          //单个道具的数据    int item_NO ;                       //道具编号    String temp002 = "";      String pid = e.getPlayerId();    Player p = GameServer.getPlayerById(pid);    if (p == null) {        System.out.println("got login event for null player");        return;    }        String s_p_item = p.getPlayer_item();    if (e.getMessage() != null) {        String tokens[] = tokenizeString(e.getMessage());        Box_item_NO = Integer.parseInt(tokens[0]);        item_NO = Integer.parseInt(tokens[1]);        temp_3 = s_p_item.substring((Box_item_NO - 1) * 3, Box_item_NO * 3);    // Box_item_NO这个物品栏的道具        if ((item_NO >= 0) && (item_NO <= 29)) {               //装备            if ((!temp_3.equals("990")) && (!temp_3.substring(2).equals("1")) &&                    (item_NO == Integer.parseInt(temp_3.substring(0, 2))))    //这个道具栏不为空 ,            // 且道具编号验证没错误,且没装备的道具可以卖            {                temp002 = "990";                int money_temp = p.getPlayer_money();                money_temp = money_temp + (Item.item_data[item_NO][2]) / 2;                System.out.println("money" + money_temp);                p.setPlayer_money(money_temp);                Box_is_change = Box_item_NO;            } else                zsw_out.outdebug("卖商品出错误,可能是这个栏没东西。还要记得!已经装备的先卸载再卖");        } else if ((item_NO >= 30) && (item_NO <= 38))               //drug        {            if ((!temp_3.equals("990")) &&                    (item_NO == Integer.parseInt(temp_3.substring(0, 2))))            {                if ((Integer.parseInt(temp_3.substring(2, 3)) == 1))                    temp002 = "990";                                                //就一个药品了                else {                    StringBuffer temp000 = new StringBuffer();                 //多于一个,减少一个                    temp000.append(item_NO);                    temp000.append((Integer.parseInt(temp_3.substring(2, 3))) - 1);                    temp002 = temp000.toString();                }                System.out.println("you item data" + temp002);                int money_temp = p.getPlayer_money();                money_temp = money_temp + (Item.item_data[item_NO][2]) / 2;                System.out.println("money" + money_temp);                p.setPlayer_money(money_temp);                Box_is_change = Box_item_NO;            } else                zsw_out.outdebug("卖商品出错误,可能是这个栏没东西");        }        if (Box_is_change != -1) {            String temp001 = s_p_item.substring(0, (Box_item_NO - 1) * 3);            String temp003 = s_p_item.substring(Box_item_NO * 3, 17 * 3);            StringBuffer temp = new StringBuffer();            temp.append(temp001);            temp.append(temp002);            temp.append(temp003);            p.setPlayer_item(temp.toString());            GameEventDefault lla = new GameEventDefault(GameEventDefault.C_shop_sell,                    p.getPlayer_money() + " " + p.getPlayer_item());            sendEvent(lla, p);            p_save_this_player(p);        }    }}/**保存玩家战斗信息进数据库*/public static void p_save_this_player(Player p) {    String stm;    stm = "UPDATE character_1 SET" +                              " c_life="+p.getPlayer_C_life()+                              ", Max_life="+p.getPlayer_Max_life()+                              ", c_mp="+p.getPlayer_C_mp()+                              ", Max_mp="+p.getPlayer_Max_mp()+                              ", str="+p.getPlayer_strength()+                              ", cel="+p.getPlayer_celerity()+                              ", con="+p.getPlayer_constitution()+                              ", wis="+p.getPlayer_wisdom()+                              ", lev="+p.getPlayer_level()+                              ", point="+p.getPlayer_point()+                              ", map="+p.getPlayer_map()+                              ", x="+p.getPlayer_x()+                              ", y="+p.getPlayer_y()+                              ", attack="+p.getPlayer_att()+                              ", att_wiz_mp="+p.getPlayer_att_wiz_mp()+                              ", def="+p.getPlayer_def()+                              ", money="+p.getPlayer_money()+                              ", exp="+p.getPlayer_exp()     +                              ", item='"+p.getPlayer_item()     +                              "', friends='"+p.getPlayer_friends()     +                              "' where playerid ='"+p.getPlayerId()+ "'";            zsw_out.outdebug("玩家保存SQL语句"+stm);          String return_s;            return_s = DBControl.update(p,stm);    if (return_s.equals("failed"))        zsw_out.out("保存玩家信息'"+p.getPlayerId()+"'进数据库,出现错误!");    else        zsw_out.out("保存玩家信息'"+p.getPlayerId()+"'成功!");}/**字符串拆分*/public static String[] tokenizeString(String s) {StringTokenizer toke = new StringTokenizer(s, " ");int numTokes = toke.countTokens();String[] tokens = new String[numTokes];for (int i=0; toke.hasMoreTokens(); i++) {    tokens[i] = toke.nextToken();}    token_num =  numTokes;return tokens;}////PK或组队战斗,目前没有使用///**// * initiate a game w/another player// * synchronized so we don't have concurrency problems with multiple// * players starting games with the same opponent// *///protected synchronized void join(GameEvent e) {    //已经不再使用//String p1_id = e.getPlayerId();//String p2_id = e.getMessage();////Player p1 = (Player) players.get(p1_id);////if (p2_id.equals(p1_id)) {//    GameEventDefault jf = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_FAIL);//    jf.setMessage("sorry, can't play against yourself");//    sendEvent(jf, p1);//    return;//}////Player p2 = (Player) players.get(p2_id);////if ((p1 == null) || (p2==null)) {//    GameEventDefault jf = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_FAIL);//    jf.setMessage("unknown player id");//    sendEvent(jf, p1);//    return;//}//if (p1.inGame()) {//    GameEventDefault jf = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_FAIL);//    jf.setMessage("sorry, you are already in a game");//    sendEvent(jf, p1);//    return;//}//if (p2.inGame()) {//    GameEventDefault jf = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_FAIL);//    jf.setMessage("sorry, that player is already in a game");//    sendEvent(jf, p1);//    return;//}////// create new game//ShenzhouGame g = new ShenzhouGame(p1, p2);//games.put("" + g.getGameId(), g);//p1.setGameId(g.getGameId());//p2.setGameId(g.getGameId());////// let them know//GameEventDefault jok = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_OK);//jok.setMessage("Game started: " + p1.getPlayerId() + " vs. " + p2.getPlayerId());//sendEvent(jok, p1);////jok = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_OK);//jok.setMessage("Game started: " + p1.getPlayerId() + " vs. " + p2.getPlayerId());//sendEvent(jok, p2);////log.info("Game started: " + p1.getPlayerId() + " vs. " + p2.getPlayerId());//}///**// * handle quit events// *///protected void quit(GameEvent e) {     //已经不再使用//String p1_id = e.getPlayerId();//Player player = (Player) players.get(p1_id);//ShenzhouGame g = (ShenzhouGame) games.get("" + player.getGameId());////if (g == null) {//    GameEventDefault jf = new GameEventDefault(GameEventDefault.S_JOIN_GAME_ACK_FAIL);//    jf.setMessage("you are not in a game");//    sendEvent(jf, player);//    return;//}////Player p1 = g.getPlayer1();//Player p2 = g.getPlayer2();//p1.setInGame(false);//p2.setInGame(false);//p1.setGameId(g.getGameId());//p2.setGameId(g.getGameId());//games.remove("" + g.getGameId());////// return the ack, and final game stats//String msg1 = "GameOver, player " + player.getPlayerId() + " has quit.\n";//String msg2 = "GameOver\n";////String msgt = "Final tallies\n" +//    p1.getPlayerId() + " wins: " + g.getP1Wins() + "\n" +//    p2.getPlayerId() + " wins: " + g.getP2Wins() + "\n" +//    "ties: " + g.getTies() + "\n";//GameEventDefault qe = new GameEventDefault(GameEventDefault.SB_PLAYER_QUIT, msg1 + msgt);//sendEvent(qe, p1);//qe = new GameEventDefault(GameEventDefault.SB_PLAYER_QUIT, msg2 + msgt);//sendEvent(qe, p2);//}///**// * handle move events// *///protected void move(GameEvent e) {    //PK的逻辑//String p1_id = e.getPlayerId();//Player player = (Player) players.get(p1_id);//ShenzhouGame g = (ShenzhouGame) games.get("" + player.getGameId());////if (g==null) {//    GameEventDefault mf = new GameEventDefault(GameEventDefault.S_MOVE_ACK_FAIL);//    mf.setMessage("you are not in a game");//    sendEvent(mf, player);//    return;//}//Player p1 = g.getPlayer1();//Player p2 = g.getPlayer2();////// check for a valid move//String move = e.getMessage();         //接收攻击指令//if (move.equals("r")) move = "rock";//if (move.equals("p")) move = "paper";//if (move.equals("s")) move = "scissors";//int myMove = -1;//for (int i=0; i<moves.length;i++) {//    if (moves[i].equals(move))//    myMove = i;//}////if (myMove == -1) {//    GameEventDefault mf = new GameEventDefault(GameEventDefault.S_MOVE_ACK_FAIL);//    mf.setMessage("invalid move");//    sendEvent(mf, player);//    return;//}////if (player.equals(p1) && (g.getP1Move() == -1)) {//    g.setP1Move(myMove);//    log.debug("setting player 1 move: " + moves[myMove]);//}//else if (player.equals(p2) && (g.getP2Move() == -1)) {//    g.setP2Move(myMove);//    log.debug("setting player 2 move: " + moves[myMove]);//}//else {//    GameEventDefault mf = new GameEventDefault(GameEventDefault.S_MOVE_ACK_FAIL);//    mf.setMessage("already submitted move");//    sendEvent(mf, player);//    return;//}////log.debug(player.getPlayerId() + ", move = " + myMove + " = " + moves[myMove]);////// send ack//GameEventDefault e2 = new GameEventDefault(GameEventDefault.S_MOVE_ACK_OK, "move ok");//sendEvent(e2, player);////if ((g.getP1Move() != -1) && (g.getP2Move() != -1)) {     //两个人都出完了//    // round is complete//    int n = (player.equals(p1)) ? g.getP2Move() : g.getP1Move();////    int result = results[n][myMove];//    String resultStr = resultStrs[result];////    if (result == 0)//    g.incTies();//    else if (player.equals(p1) ^ (result == 2))//    g.incP1Wins();//    else//    g.incP2Wins();////    g.resetGame();////    String msg = "Opponent chooses " + moves[n] + "\n" + resultStr;//    GameEventDefault e3 = new GameEventDefault(GameEventDefault.S_ROUND_COMPLETE, msg);//    sendEvent(e3, player);////    // reverse output for other player//    result = results[myMove][n];//    resultStr = resultStrs[result];//    msg = "Opponent chooses " + moves[myMove] + "\n" + resultStr;//    e3 = new GameEventDefault(GameEventDefault.S_ROUND_COMPLETE, msg);//    sendEvent(e3, g.getOpponent(player.getPlayerId()));//}//}//    /** possible moves *///    String moves[] = {"rock", "paper", "scissors" };//    /**//         * game results//         * 0 = tie, 1 = player1, 2 = player2//  

⌨️ 快捷键说明

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