admin 发表于 2018-9-22 23:04:23

天堂2 假人系统更新教程方法

假人系统更新。使用IdTemplate 做标识,将NPCCHARDATA变更为模型,可多次引用。
//NPC表中IdTemplate指向假人模型ID,NPC外观将为假人的外观。同使用客户端外观ID一个用法。
      //add by banyue<
      public void loadNpcsChar(int id)
      {      
               
                Connection con = null;
                try
                {
                        con = L2DatabaseFactory.getInstance().getConnection();
                        PreparedStatement statement = null;
                        ResultSet rset = null;
                        int cont = 0;
                        for(int _Key : _npcs.keys())
                        {
                              id = getTemplate(_Key).getIdTemplate();
                              
                              statement = con.prepareStatement("SELECT * FROM npcchardata WHERE npcId = ?");
                              statement.setInt(1, id);
                              rset = statement.executeQuery();
                              L2NpcCharData npcCharDat = null;
                              L2NpcTemplate npcDat = null;
                              while (rset.next())
                              {
                                        npcDat = _npcs.get(_Key);
                                        if (npcDat == null)
                                        {
                                                _log.severe(getClass().getSimpleName() + ": CharData Error with id : " + _Key);
                                                continue;
                                        }
                                        npcCharDat = new L2NpcCharData();
                                       
                                        npcCharDat.setIsChar(rset.getInt("ischar"));
                                        npcCharDat.setCharRace(rset.getInt("charrace"));
                                        npcCharDat.setCharClass(rset.getInt("charclass"));
                                        npcCharDat.setCharFace(rset.getInt("charface"));
                                        npcCharDat.setCharHair(rset.getInt("charhair"));
                                        npcCharDat.setCharColor(rset.getString("charcolor"));
                                        npcCharDat.setCharHairColor(rset.getInt("charhaircolor"));
                                        npcCharDat.setCharSex(rset.getInt("charsex"));
                                        npcCharDat.setCharHero(rset.getInt("charhero"));
                                        npcCharDat.setCharRhand(rset.getInt("charrhand"));
                                        npcCharDat.setCharLhand(rset.getInt("charlhand"));
                                        npcCharDat.setCharEnchLvl(rset.getInt("charenchlvl"));
                                        npcCharDat.setCharChest(rset.getInt("charchest"));
                                        npcCharDat.setCharLegs(rset.getInt("charlegs"));
                                        npcCharDat.setCharGlove(rset.getInt("charglove"));
                                        npcCharDat.setCharFeet(rset.getInt("charfeet"));
                                        npcCharDat.setCharClock(rset.getInt("charclock"));
                                        npcCharDat.setCharUnder(rset.getInt("charunder"));
                                        npcCharDat.setCharHair1(rset.getInt("charhair1"));
                                        npcCharDat.setCharHair2(rset.getInt("charhair2"));
                                        npcCharDat.setCharTeam(rset.getInt("charteam"));
                                        npcDat.setCharData(npcCharDat);
                                        cont++;
                              }
                        }
                        rset.close();
                        statement.close();
                        _log.info(getClass().getSimpleName() + ": Loaded " + cont +" Char Data.");
                }
                catch (Exception e)
                {
                        _log.log(Level.SEVERE, getClass().getSimpleName() + ": Error reading NPC CHAR Data: " + e.getMessage(), e);
                }
                finally
                {
                        L2DatabaseFactory.close(con);
                }
      }
      //add by banyue>
页: [1]
查看完整版本: 天堂2 假人系统更新教程方法