📄 shenzhoucontroller.java
字号:
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 + -