📄 shenzhoucontroller.java
字号:
int mp2 = p.getPlayer_C_mp(); mp2 = mp2 + Item.item_data[item_NO][1] ; if(mp2>mp1) { mp2=mp1;} p.setPlayer_C_mp(mp2); } else if (item_type == Item.item_transport) { p.setPlayer_map(13); //给他传送到指定地点 p.setPlayer_x(32); p.setPlayer_y(19); } GameEventDefault lla = new GameEventDefault(GameEventDefault.C_item_un_equip, p.getPlayer_C_life()+" "+ p.getPlayer_Max_life()+" "+ p.getPlayer_C_mp()+" "+ p.getPlayer_Max_mp()+" "+ p.getPlayer_map()+" "+ p.getPlayer_x()+" "+ p.getPlayer_y()+" "+ p.getPlayer_direction()+" "+ p.getPlayer_item()+" " ); sendEvent(lla, p); p_save_this_player(p); } else zsw_out.outdebug("使用道具部分出错误,检查道具编号及药品剩余"); }}/*** Box_item_NO这个物品栏的单个道具数据*/private static String get_item_fram_string(String s_p_item,int Box_item_NO){ String temp_; temp_ = s_p_item.substring((Box_item_NO - 1) * 3, Box_item_NO * 3); return temp_;}/**装备道具,物品栏为1-17*/protected void P_item_equip(GameEvent e) { int item_fram_NO; //第几个道具框 int item_NO; //道具的编号 int item_type; String temp_3; int old_item_no = 99; String pid = e.getPlayerId(); Player p = GameServer.getPlayerById(pid); if (p == null) { System.out.println("got login event for null player"); return; } if (e.getMessage() != null) { String tokens[] = tokenizeString(e.getMessage()); item_fram_NO = Integer.parseInt(tokens[0]); item_NO = Integer.parseInt(tokens[1]); String s_p_item = p.getPlayer_item(); temp_3 = get_item_fram_string(s_p_item, item_fram_NO); // item_fram_NO这个物品栏的道具 //玩家要装备的是什么物品类型 item_type = get_item_type(item_fram_NO); int item_box_equip = -1; //原来装备的道具格子 //查找玩家在相应的类型栏里,哪个栏里装备了道具 item_box_equip = find_p_item_setup(s_p_item, item_type); if (item_box_equip != -1) { System.out.println("原来的"+item_box_equip+"栏里面装备了东西"); // item_box_equip这个物品栏的道具 old_item_no = Integer.parseInt(s_p_item.substring((item_box_equip - 1) * 3, item_box_equip * 3 - 1)); } StringBuffer item_equip_temp = new StringBuffer(); item_equip_temp.append(s_p_item); if (item_box_equip != -1) { item_equip_temp.setCharAt((item_box_equip - 1) * 3 + 2, '0'); //卸载原来的道具 } if (!s_p_item.substring((item_fram_NO - 1) * 3, item_fram_NO * 3).equals("990")) { item_equip_temp.setCharAt((item_fram_NO - 1) * 3 + 2, '1'); //装备新的道具 }// else// System.out.println("eeee");// System.out.println(item_equip_temp.toString());// System.out.println(s_p_item); p.setPlayer_item(item_equip_temp.toString()); //道具的属性影响 if (item_NO == Integer.parseInt(temp_3.substring(0, 2))) { if (Item.item_data[item_NO][0] == Item.item_attack) { int attack1 = p.getPlayer_att(); int attack2 = p.getPlayer_att_wiz_mp(); if (item_box_equip == -1) { //原来没装备东西 attack1 = attack1 + Item.item_data[item_NO][1]; attack2 = attack2 + Item.item_data[item_NO][1]; } else { //old_item_no attack1 = attack1 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; attack2 = attack2 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; } p.setPlayer_att(attack1); p.setPlayer_att_wiz_mp(attack2); } else if (Item.item_data[item_NO][0] == Item.item_defence) { int def1 = p.getPlayer_def(); if (item_box_equip == -1) { //原来没装备东西 def1 = def1 + Item.item_data[item_NO][1]; } else { def1 = def1 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; } p.setPlayer_def(def1); } else if (Item.item_data[item_NO][0] == Item.item_Ring_hp) { int hp1 = p.getPlayer_Max_life(); int hp2 = p.getPlayer_C_life(); int mp1 = p.getPlayer_Max_mp(); int mp2 = p.getPlayer_C_mp(); if (item_box_equip == -1) { //原来没装备东西 hp1 = hp1 + Item.item_data[item_NO][1]; hp2 = hp2 + Item.item_data[item_NO][1]; } else { //看原来装备的是什么东西 if (Item.item_data[old_item_no][0] == Item.item_Ring_hp) { //原来也是戒指 hp1 = hp1 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; hp2 = hp2 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; } else if (Item.item_data[old_item_no][0] == Item.item_Necklace_mp) { //原来是项链 hp1 = hp1 + Item.item_data[item_NO][1]; hp2 = hp2 + Item.item_data[item_NO][1]; mp1 = mp1 - Item.item_data[old_item_no][1]; mp2 = mp2 - Item.item_data[old_item_no][1]; } } p.setPlayer_Max_life(hp1); if (hp2 <= 0) { hp2 = 1; } p.setPlayer_C_life(hp2); p.setPlayer_Max_mp(mp1); if (mp2 <= 0) { mp2 = 1; } p.setPlayer_C_mp(mp2); } else if (Item.item_data[item_NO][0] == Item.item_Necklace_mp) { int hp1 = p.getPlayer_Max_life(); int hp2 = p.getPlayer_C_life(); int mp1 = p.getPlayer_Max_mp(); int mp2 = p.getPlayer_C_mp(); if (item_box_equip == -1) { //原来没装备东西 mp1 = mp1 + Item.item_data[item_NO][1]; mp2 = mp2 + Item.item_data[item_NO][1]; } else { //看原来装备的是什么东西 if (Item.item_data[old_item_no][0] == Item.item_Necklace_mp) { //原来也是项链 System.out.println("2"); mp1 = mp1 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; mp2 = mp2 + Item.item_data[item_NO][1] - Item.item_data[old_item_no][1]; } else if (Item.item_data[old_item_no][0] == Item.item_Ring_hp) { //原来是戒指 System.out.println("23"); hp1 = hp1 - Item.item_data[old_item_no][1]; hp2 = hp2 - Item.item_data[old_item_no][1]; mp1 = mp1 + Item.item_data[item_NO][1]; mp2 = mp2 + Item.item_data[item_NO][1]; } } p.setPlayer_Max_life(hp1); if (hp2 <= 0) { hp2 = 1; } p.setPlayer_C_life(hp2); p.setPlayer_Max_mp(mp1); if (mp2 <= 0) { mp2 = 1; } p.setPlayer_C_mp(mp2); } } GameEventDefault lla = new GameEventDefault(GameEventDefault.C_item_un_equip, p.getPlayer_C_life() + " " + p.getPlayer_Max_life() + " " + p.getPlayer_C_mp() + " " + p.getPlayer_Max_mp() + " " + p.getPlayer_att() + " " + p.getPlayer_att_wiz_mp() + " " + p.getPlayer_def() + " " + p.getPlayer_item() + " "); sendEvent(lla, p); p_save_this_player(p); }// GameEventDefault lla = new GameEventDefault(GameEventDefault.C_Item_Action, p.getPlayer_item());// sendEvent(lla, p);// }}/**玩家要装备的是什么物品类型*/public static int get_item_type(int item_fram_NO) { int item_type = -1; if (item_fram_NO <= 4) //武器 item_type = Item.item_attack; else if ((item_fram_NO > 4) && (item_fram_NO <= 8)) //套装 item_type = Item.item_defence; else if ((item_fram_NO > 8) && (item_fram_NO <= 12)) //饰品 item_type = Item.item_Ring_hp; return item_type; }/**玩家要使用的是什么药品类型*/public static int get_drug_type(int item__NO) { int item_type = -1; if ((item__NO >= 30)&&(item__NO <= 33)) //加HP item_type = Item.item_Goods_hp; else if ((item__NO >= 34) && (item__NO <= 37)) //加MP item_type = Item.item_Goods_mp; else if (item__NO == 38) //传送 item_type = Item.item_transport; return item_type; }/**查找玩家在道具栏的特定类型栏里哪个位置装备了道具,返回原来装备的格子号*/private int find_p_item_setup(String s_p_item,int item_type) { int grid =-1 ; int gridnum =0; StringBuffer item_setup = new StringBuffer(); item_setup.append(s_p_item); if(item_type==Item.item_attack) { for (int i =0;i < 4 ;i++) { if(item_setup.charAt(i*3+2) == '1' ) grid =i+1; } } else if (item_type==Item.item_defence) { for (int i =4;i < 8 ;i++) { if(item_setup.charAt(i*3+2) == '1' ) grid=i+1; } } else if (item_type==Item.item_Ring_hp) { for (int i =8;i < 12 ;i++) { if(item_setup.charAt(i*3+2) == '1' ) grid=i+1; } } return grid; }/**商店买部分*/protected void Shop_buy(GameEvent e){ int item_NO ; int Box_item_NO = -1; String temp_3; //每个一道具的数据 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) { item_NO = Integer.parseInt(e.getMessage()); System.out.println("money:"+Item.item_data[item_NO][2]); if (p.getPlayer_money()>= Item.item_data[item_NO][2]) { //玩家的钱够 if ((item_NO >= 0) && (item_NO <= 11)) //武器 { //遍例玩家武器栏,找空位 for (int i = 0; i < 4; i++) { temp_3 = s_p_item.substring(i * 3, (i + 1) * 3); if (temp_3.equals("990")) //这个道具栏为空 { temp002 = one_number_to_two_number(item_NO); Box_item_NO = i; break; } } } else if ((item_NO >= 12) && (item_NO <= 23)) //套装 { //遍例玩家武器栏,找空位 for (int i = 4; i < 8; i++) { temp_3 = s_p_item.substring(i * 3, (i + 1) * 3); if (temp_3.equals("990")) //这个道具栏为空 { temp002 = one_number_to_two_number(item_NO); Box_item_NO = i; break; } } } else if ((item_NO >= 24) && (item_NO <= 29)) //饰品 { //遍例玩家武器栏,找空位 for (int i = 8; i < 12; i++) { temp_3 = s_p_item.substring(i * 3, (i + 1) * 3); if (temp_3.equals("990")) //这个道具栏为空 { temp002 = one_number_to_two_number(item_NO); Box_item_NO = i; break; } } } else if ((item_NO >= 30) && (item_NO <= 38)) //药物 { //遍例玩家武器栏,找空位 for (int i = 12; i < 17; i++) { temp_3 = s_p_item.substring(i * 3, (i + 1) * 3); if (temp_3.equals("990")) //这个道具栏为空 { temp002 = item_NO + "1"; Box_item_NO = i; break; } else if ((Integer.parseInt(temp_3.substring(0, 2)) == item_NO) //药品编号一样 && (Integer.parseInt(temp_3.substring(2, 3)) < 9)) //且, 数量小于9 { int num = Integer.parseInt(temp_3.substring(2, 3)) + 1; StringBuffer temm = new StringBuffer(); temm.append(item_NO); temm.append(num); temp002 = temm.toString(); Box_item_NO = i; break; } } } } else { //告诉玩家,你钱不够 GameEventDefault lla = new GameEventDefault(GameEventDefault.S_no_enough_money); sendEvent(lla, p); } if (Box_item_NO != -1) //有道具栏空,可以放道具 { String temp001 = s_p_item.substring(0, Box_item_NO * 3); String temp003 = s_p_item.substring((Box_item_NO + 1) * 3, 17 * 3); StringBuffer temp = new StringBuffer(); temp.append(temp001); temp.append(temp002); temp.append(temp003);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -