📄 shenzhoucontroller.java
字号:
// } else if (p.getPlayer_CareerId() == PlayerDefault.P_Career_hunter) {// p.setPlayer_Max_life(life_temp + 17);// p.setPlayer_Max_mp(mp_temp + 7);// } else if (p.getPlayer_CareerId() == PlayerDefault.P_Career_wiz) {// p.setPlayer_Max_life(life_temp + 13);// p.setPlayer_Max_mp(mp_temp + 12);// }// str_temp = p.getPlayer_strength();// cel_temp=p.getPlayer_celerity();// con_temp=p.getPlayer_constitution();// wis_temp=p.getPlayer_wisdom();// sav_temp=p.getPlayer_att();// p.setPlayer_strength(str_temp+2); //目前只是均匀加2// p.setPlayer_celerity(cel_temp+2);// p.setPlayer_constitution(con_temp+2);// p.setPlayer_wisdom(wis_temp+2);// p.setPlayer_att(sav_temp+2); }/**点数的影响*/private static void p_point_value_change(Player p,int str, int cel ,int con ,int wis, int CareerId){ int str_temp = 0,cel_temp =0,con_temp=0,wis_temp=0,att_temp=0; int att_wiz_mp_temp = 0,def_temp =0,Max_life_temp=0,Max_mp_temp=0; //4项主要属性的变化 str_temp =p.getPlayer_strength(); cel_temp =p.getPlayer_celerity(); con_temp =p.getPlayer_constitution(); wis_temp =p.getPlayer_wisdom(); p.setPlayer_strength(str_temp + str); p.setPlayer_celerity(cel_temp + cel); p.setPlayer_constitution(con_temp + con); p.setPlayer_wisdom(wis_temp + wis); // 生命,魔法 ,攻击力的影响 Max_life_temp = p.getPlayer_Max_life(); Max_mp_temp = p.getPlayer_Max_mp(); att_temp = p.getPlayer_att(); att_wiz_mp_temp= p.getPlayer_att_wiz_mp(); //对法师有用,这是法师的攻击力体现 if(CareerId == PlayerDefault.P_Career_warrior){ p.setPlayer_att(att_temp + str * 3); p.setPlayer_att_wiz_mp(att_temp + str * 3); p.setPlayer_Max_life(Max_life_temp + con * 15); p.setPlayer_Max_mp(Max_mp_temp + wis * 15); }else if(CareerId == PlayerDefault.P_Career_hunter){ p.setPlayer_att(att_temp + str * 2); p.setPlayer_att_wiz_mp(att_temp + str * 2); p.setPlayer_Max_life(Max_life_temp + con * 10); p.setPlayer_Max_mp(Max_mp_temp + wis * 20); } else if(CareerId == PlayerDefault.P_Career_wiz){ p.setPlayer_att(att_temp + str ); p.setPlayer_att_wiz_mp( att_wiz_mp_temp + wis * 3); p.setPlayer_Max_life(Max_life_temp + con * 10); p.setPlayer_Max_mp(Max_mp_temp + wis * 10); }}/**增加好友**/protected void P_friends_add(GameEvent e){ 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) { StringBuffer ss =new StringBuffer(); ss.append(p.getPlayer_friends()); ss.append(e.getMessage()); ss.append(" "); p.setPlayer_friends(ss.toString()); p_save_this_player(p); //处理好友列表 String tokens1[] = tokenizeString(p.getPlayer_friends()); StringBuffer f1 = new StringBuffer(); StringBuffer f2 = new StringBuffer(); int f11 = 0, f22 = 0; for (int i = 0; i < token_num; i++) { if (players.containsKey(tokens1[i])) { //online f1.append(tokens1[i]); f1.append(" "); f11++; } else { f2.append(tokens1[i]); f2.append(" "); f22++; } } //处理好友列表结束 StringBuffer ff = new StringBuffer(); ff.append(f11); ff.append(" "); ff.append(f1.toString()); ff.append(" "); ff.append(f22); ff.append(" "); ff.append(f2.toString()); GameEventDefault lla = new GameEventDefault(GameEventDefault.C_Friends_Add, ff.toString()); sendEvent(lla, p); zsw_out.outdebug(ff.toString()); // 插入隐含的数据,好友上线查询表 String sm; sm="insert friend_notice(initiative,negative) values ('" + pid+"','"+ e.getMessage()+"')"; zsw_out.outdebug("insert friend_notice sql is :"+sm); try { DBControl.insert(sm); } catch (Exception e1) { e1.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }}/**删除好友**/protected void P_friends_del(GameEvent e){ String pid = e.getPlayerId(); Player p = GameServer.getPlayerById(pid); if (p == null) { System.out.println("got login event for null player"); return; } StringBuffer ss = new StringBuffer(); if (e.getMessage() != null) { String tokens[] = tokenizeString(p.getPlayer_friends()); for (int i = 0; i < token_num; i++) { if (tokens[i] != e.getMessage()) { ss.append(tokens[i]); ss.append(" "); } } p.setPlayer_friends(ss.toString()); p_save_this_player(p); //处理好友列表 String tokens1[] = tokenizeString(p.getPlayer_friends()); StringBuffer f1 = new StringBuffer(); StringBuffer f2 = new StringBuffer(); int f11 = 0, f22 = 0; for (int i = 0; i < token_num; i++) { if (players.containsKey(tokens1[i])) { //online f1.append(tokens1[i]); f1.append(" "); f11++; } else { f2.append(tokens1[i]); f2.append(" "); f22++; } } //处理好友列表结束 StringBuffer ff = new StringBuffer(); ff.append(f11); ff.append(" "); ff.append(f1.toString()); ff.append(" "); ff.append(f22); ff.append(" "); ff.append(f2.toString()); zsw_out.outdebug(ff.toString()); GameEventDefault lla = new GameEventDefault(GameEventDefault.C_Friends_Del, ff.toString()); sendEvent(lla, p); // 删除隐含的数据,好友上线查询表 String sm; sm="delete from friend_notice where initiative ='"+ pid+"' and negative = '"+e.getMessage()+"'"; zsw_out.outdebug("delete friend_notice sql is :"+sm); try { DBControl.select(sm); } catch (Exception e1) { e1.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }}/**卸载道具*/protected void Item_un_equip(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 = get_item_fram_string(s_p_item,Box_item_NO); // Box_item_NO这个物品栏的道具 System.out.println("" + temp_3); if ((!temp_3.equals("990")) && (item_NO == Integer.parseInt(temp_3.substring(0, 2)))) //这个道具栏不为空 ,且道具编号验证没错误 { StringBuffer temp000 = new StringBuffer(); temp000.append(one_number_to_two_number(item_NO)); temp002 = temp000.toString(); Box_is_change = Box_item_NO; } 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);// System.out.println(s_p_item);// System.out.println(temp.toString()); p.setPlayer_item(temp.toString()); //减去道具的属性影响 if (Item.item_data[item_NO][0] == Item.item_attack) { int attack1 = p.getPlayer_att(); int attack2 = p.getPlayer_att_wiz_mp(); attack1 =attack1 - Item.item_data[item_NO][1] ; attack2 =attack2 - Item.item_data[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(); def1 =def1 - Item.item_data[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(); hp1 = hp1 - Item.item_data[item_NO][1] ; hp2 = hp2 - Item.item_data[item_NO][1] ; p.setPlayer_Max_life(hp1); if(hp2<=0) { hp2=1;} p.setPlayer_C_life(hp2); } else if (Item.item_data[item_NO][0] == Item.item_Necklace_mp) { int mp1 = p.getPlayer_Max_mp(); int mp2 = p.getPlayer_C_mp(); mp1 = mp1 - Item.item_data[item_NO][1] ; mp2 = mp2 - Item.item_data[item_NO][1] ; 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); } }}/**使用道具*/protected void Item_use(GameEvent e){ int Box_item_NO ; //物品栏编号 int Box_is_change = -1; String temp_3; //单个道具的数据 int item_NO ; //道具编号 String temp002 = ""; int item_type; int drug_num; //药品数量 String drug; 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]); //玩家要使用的是什么药品类型 item_type = get_drug_type(item_NO); temp_3 = get_item_fram_string(s_p_item,Box_item_NO); // Box_item_NO这个物品栏的道具 drug_num = Integer.parseInt(temp_3.substring(2)); if((Integer.parseInt(temp_3.substring(0,2)) == item_NO)&& //药品编号正确 (drug_num!=0)) //药品还有剩余 { if( drug_num<=1) { StringBuffer item_e_temp = new StringBuffer(); item_e_temp.append(s_p_item); item_e_temp.setCharAt((Box_item_NO-1)*3,'9'); //药品吃光了 item_e_temp.setCharAt((Box_item_NO-1)*3+1,'9'); //药品吃光了 item_e_temp.setCharAt((Box_item_NO-1)*3+2,'0'); //药品吃光了 drug = item_e_temp.toString() ; } else { //没吃光,减一 StringBuffer item__temp = new StringBuffer(); item__temp.append(s_p_item.substring(0,(Box_item_NO-1)*3+2)); item__temp.append(drug_num-1); item__temp.append(s_p_item.substring(Box_item_NO*3,17*3)); drug = item__temp.toString(); }// System.out.println(s_p_item);// System.out.println(drug); p.setPlayer_item(drug); //属性影响 if ( item_type == Item.item_Goods_hp) { int hp1 = p.getPlayer_Max_life(); int hp2 = p.getPlayer_C_life(); hp2 = hp2 + Item.item_data[item_NO][1] ; if(hp2>hp1) { hp2=hp1;} p.setPlayer_C_life(hp2); } else if (item_type == Item.item_Goods_mp) { int mp1 = p.getPlayer_Max_mp();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -