|
假人系统更新。使用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>
|
|