- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
GameBlonD
Hello i added this code
private void storeParticipantsPoints(Map<Integer,Integer[]> points) { Connection con = null; PreparedStatement statement = null; Integer[] reward; int count = 0; try { con = L2DatabaseFactory.getInstance().getConnection(); for (int playerId : points.keySet()) { reward = points.get(playerId); if (reward[6] < 10 || (reward[1] + reward[2] + reward[3] + reward[4] + reward[5]) == 0) continue; statement = con.prepareStatement("INSERT INTO character_territorywar VALUES (?,?,?,?,?,?,?,?)"); statement.setInt(1, playerId); statement.setInt(2, reward[0]); statement.setInt(3, reward[1]); statement.setInt(4, reward[2]); statement.setInt(5, reward[3]); statement.setInt(6, reward[4]); statement.setInt(7, reward[5]); statement.setInt(8, reward[6]); statement.execute(); ResourceUtil.closeStatement(statement); count++; } } catch (Exception e) { } finally { ResourceUtil.closeStatement(statement); ResourceUtil.closeConnection(con); } } private void restoreParticipantsPoints() { Connection con = null; PreparedStatement statement = null; ResultSet rset = null; Integer[] data = new Integer[7]; try { con = L2DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT * FROM character_territorywar"); rset = statement.executeQuery(); while (rset.next()) { data[0] = rset.getInt("siegeSide"); data[1] = rset.getInt("points1"); data[2] = rset.getInt("points2"); data[3] = rset.getInt("points3"); data[4] = rset.getInt("points4"); data[5] = rset.getInt("points5"); data[6] = rset.getInt("onlineTime"); _participantPoints.put(rset.getInt("charId"), data); } } catch (Exception e) { } finally { ResourceUtil.closeResultSet(rset); ResourceUtil.closeStatement(statement); ResourceUtil.closeConnection(con); } } private void truncateParticipantsPoints() { Connection con = null; PreparedStatement statement = null; try { con = L2DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("TRUNCATE TABLE character_territorywar"); statement.execute(); } catch (Exception e) { } finally { ResourceUtil.closeStatement(statement); ResourceUtil.closeConnection(con); } } private void removeParticipantPoints(int playerId) { Connection con = null; PreparedStatement statement = null; try { con = L2DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("DELETE FROM character_territorywar WHERE charId = ?"); statement.setInt(1, playerId); statement.execute(); } catch (Exception e) { } finally { ResourceUtil.closeStatement(statement); ResourceUtil.closeConnection(con); } }All works fine and data saved into database but when i speak to Territory manager Npc says That i work in Dion but character was registered in Goddard
For some reason the code can't read siegeSide from database and always choose the Min Territory ID
Also if i talk to Territory manager before server restart it works fine the issue is after server restart that trying to read the data from the database.
Any ideas to where to look in order to fix it?
Thanks.
6 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now