2013年6月25日 星期二

【Java教學】實裝幼龍蛋兌換任務

C_NpcAction

           //換取淘氣幼龍蛋
          else if (((L1NpcInstance) obj).getNpcTemplate().get_npcId() == 81316) {
          //班酷 NPC代號

           if (s.equalsIgnoreCase("buy 7")) {
           if (pc.getInventory().consumeItem(80256, 1)) {
            L1Pet pet = new L1Pet();   
              pet.set_npcid(81311);//此欄為拿到項圈內NPC編號   
              pet.set_name("淘氣幼龍");
              pc.sendPackets(new S_ServerMessage(143, ((L1NpcInstance) obj).getNpcTemplate().get_name(), L1WilliamSystemMessage.ShowMessage(1136)));   

// 此message為DB內system_message欄位編號,當你拿到項圈對話欄出現的訊息,可自填 不要可以拿掉

           pet.set_level(1);   
           pet.set_hp(40);   
           pet.set_mp(25);

//以上為換到的寵物等級HP.MP 

           L1ItemInstance petamu = pc.getInventory().storeItem(40314, 1); 
//40314 低等寵物項圈編號,也可自製新項圈

           if (petamu != null) {   
              pc.sendPackets(new S_ServerMessage(143, ((L1NpcInstance) obj).getNpcTemplate().get_name(),L1WilliamSystemMessage.ShowMessage(1137))); 
           
//sosodemon 項圈[淘氣幼龍],可由DB的system_message修改,可修改拿到物品時的名稱 
           PetTable.getInstance().storeNewPet2(pet, petamu.getId() + 1, petamu.getId());     
              pc.sendPackets(new S_ItemName(petamu));   
              } 
            } else { 
               pc.sendPackets(new S_SystemMessage("淘氣幼龍蛋不足。"));
            }     
            } 
           else if (s.equalsIgnoreCase("buy 8")) {
           if (pc.getInventory().consumeItem(80257, 1)) {
            L1Pet pet = new L1Pet();   
              pet.set_npcid(81312);//此欄為拿到項圈內NPC編號
              pet.set_name("頑皮幼龍"); 
              pc.sendPackets(new S_ServerMessage(143, ((L1NpcInstance) obj).getNpcTemplate().get_name(), L1WilliamSystemMessage.ShowMessage(1141)));
// 此message為DB內system_message欄位編號,當你拿到項圈對話欄出現的訊息,可自填 不要可以拿掉

           pet.set_level(1);   
           pet.set_hp(40);   
           pet.set_mp(25); //以上為換到的寵物等級HP.MP 
           L1ItemInstance petamu = pc.getInventory().storeItem(40314, 1);

 //40314 低等寵物項圈編號,也可自製新項圈

           if (petamu != null) {   
              pc.sendPackets(new S_ServerMessage(143, ((L1NpcInstance) obj).getNpcTemplate().get_name(), L1WilliamSystemMessage.ShowMessage(1142))); 

//sosodemon 項圈[頑皮幼龍],可由DB的system_message修改,可修改拿到物品時的名稱 
           PetTable.getInstance().storeNewPet2(pet, petamu.getId() + 1, petamu.getId());     
              pc.sendPackets(new S_ItemName(petamu));   
              } 
            } else { 
                pc.sendPackets(new S_SystemMessage("頑皮幼龍蛋不足。")); 
            }     
           }






PetTable
尋找 public void storeNewPet(L1NpcInstance pet, int objid, int itemobjid)

在上面加入

public void storeNewPet2(L1Pet pet, int i, int itemobjid) { //新增恐龍蛋
          // XXX 呼前處理重複
          L1Pet l1pet = new L1Pet();
          l1pet.set_itemobjid(itemobjid);
          l1pet.set_objid(i);
          l1pet.set_npcid(pet.get_npcid());
          l1pet.set_name(pet.get_name());
          l1pet.set_level(pet.get_level());
          l1pet.set_hp(pet.get_hp());
          l1pet.set_mp(pet.get_mp());
          l1pet.set_exp(750); // Lv.5EXP
          l1pet.set_lawful(0);
          _pets.put(new Integer(itemobjid), l1pet);

          Connection con = null;
          PreparedStatement pstm = null;
          try {
                con = L1DatabaseFactory.getInstance().getConnection();
                pstm = con
                          .prepareStatement("INSERT INTO pets SET item_obj_id=?,objid=?,npcid=?,name=?,lvl=?,hp=?,mp=?,exp=?,lawful=?");
                pstm.setInt(1, l1pet.get_itemobjid());
                pstm.setInt(2, l1pet.get_objid());
                pstm.setInt(3, l1pet.get_npcid());
                pstm.setString(4, l1pet.get_name());
                pstm.setInt(5, l1pet.get_level());
                pstm.setInt(6, l1pet.get_hp());
                pstm.setInt(7, l1pet.get_mp());
                pstm.setInt(8, l1pet.get_exp());
                pstm.setInt(9, l1pet.get_lawful());
                pstm.execute();
          } catch (Exception e) {
                _log.log(Level.SEVERE, e.getLocalizedMessage(), e);

          } finally {
                SQLUtil.close(pstm);
                SQLUtil.close(con);

          }
      } //新增恐龍蛋


DB設定寵物

沒有留言:

張貼留言