Piraelle 11 Опубликовано 28 апреля, 2015 Доброго дня ! Прошу помощи в решение проблемы связанной с включением второго пароля на персанаже. Включил в конфигах вот это SecondAuthEnabled =true В клиенте тоже включил Активирует второй пароль при выборе персонажей # Должно быть включено в клиенте # l2.ini # [Auth] # UseSecondaryAuth=true вроде все сделал как надо но дальше выбора сервера не пускает (защиту отключал включал результат 0) ниже логи как я понимаю проблема в пакетах (может чтото надо делать с патчем?) [28.04.15 03:49:03:595] INFO dao.AccountVariablesDAO: AccountVariablesDAO.select(String, String): java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3717) at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3701) at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4541) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at l2s.gameserver.dao.AccountVariablesDAO.select(AccountVariablesDAO.java:41) at l2s.gameserver.security.SecondaryPasswordAuth.loadPassword(SecondaryPasswordAuth.java:47) at l2s.gameserver.security.SecondaryPasswordAuth.<init>(SecondaryPasswordAuth.java:41) at l2s.gameserver.network.GameClient.setLoginName(GameClient.java:253) at l2s.gameserver.clientpackets.AuthLogin.runImpl(AuthLogin.java:44) at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50) at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) [28.04.15 03:49:03:614] INFO dao.AccountVariablesDAO: AccountVariablesDAO.select(String, String): java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3717) at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3701) at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4541) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at l2s.gameserver.dao.AccountVariablesDAO.select(AccountVariablesDAO.java:41) at l2s.gameserver.security.SecondaryPasswordAuth.loadPassword(SecondaryPasswordAuth.java:52) at l2s.gameserver.security.SecondaryPasswordAuth.<init>(SecondaryPasswordAuth.java:41) at l2s.gameserver.network.GameClient.setLoginName(GameClient.java:253) at l2s.gameserver.clientpackets.AuthLogin.runImpl(AuthLogin.java:44) at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50) at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) [28.04.15 03:49:03:628] ERROR clientpackets.L2GameClientPacket: Client: CONNECTED IP: 192.168.1.42 Account: piraelle - Failed running: [C] AuthLogin - Server Version: ${build.revision} java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at l2s.gameserver.security.SecondaryPasswordAuth.loadPassword(SecondaryPasswordAuth.java:54) at l2s.gameserver.security.SecondaryPasswordAuth.<init>(SecondaryPasswordAuth.java:41) at l2s.gameserver.network.GameClient.setLoginName(GameClient.java:253) at l2s.gameserver.clientpackets.AuthLogin.runImpl(AuthLogin.java:44) at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50) at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 Ты точна все залил в базу данных Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 Все что было в SQL Все залил Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Meeero 38 Опубликовано 28 апреля, 2015 java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) На сколько понимаю стактрейс, что в 1073 строке? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Izonami 31 Опубликовано 28 апреля, 2015 (изменено) Такое может быть когда вызывается любой set на prepareStatement, а в строке sql запроса нет заполнителя '?'Либо может быть из-за старой версии JDBC драйвера, можно попробовать сменить либу mysql-connector-javaлибо ещё из-за какой нибудь неведомой фигни, типо пытается вставить больше параметром чем есть заполнителейвроде такого con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT value FROM variables WHERE name=?"); statement.setString(1, test); statement.setString(2, test2); rset = statement.executeQuery(); без кода или хотя бы сборки, нипонятно. Хотя это вроде бы скрипты, только какие... Изменено 28 апреля, 2015 пользователем Izonami Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 (изменено) ругается на файл в ядре l2s\ \gameserver\ \dao\ \AccountVariablesDAO.java Переменная оператора (((((( select )))))) 41 строка если надо я гляну что там надо Писать в скайп с отметкой ссылки на эту тему Изменено 28 апреля, 2015 пользователем 2terege Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 И так как у тебя сборка от команды предполагаю http://www.l2-scripts.ru/index.php то обратись к ним более будет актуально Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 l2s\ \gameserver\ \dao\ \AccountVariablesDAO.java добрался до фаила 41 строку выделил желтым package l2s.gameserver.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import l2s.commons.dbutils.DbUtils; import l2s.gameserver.database.DatabaseFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AccountVariablesDAO { private static final Logger _log = LoggerFactory.getLogger(AccountVariablesDAO.class); private static final AccountVariablesDAO _instance = new AccountVariablesDAO(); public static final String SELECT_SQL_QUERY = "SELECT var, value FROM account_variables WHERE account_name=?"; public static final String DELETE_SQL_QUERY = "DELETE FROM account_variables WHERE account=? AND var=?"; public static final String INSERT_SQL_QUERY = "REPLACE INTO account_variables(account_name, var, value) VALUES (?,?,?)"; public static final String UPDATE_SQL_QUERY = "UPDATE account_variables SET value=? WHERE account=? AND var=?"; public static AccountVariablesDAO getInstance() { return _instance; } public String select(String account, String var) { String result_value = ""; Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT var, value FROM account_variables WHERE account_name=?"); statement.setString(1, account); statement.setString(2, var); rset = statement.executeQuery(); if (rset.next()) { result_value = rset.getString("value"); } } catch (Exception e) { _log.info("AccountVariablesDAO.select(String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement, rset); } return result_value; } public void delete(String account, String var) { Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("DELETE FROM account_variables WHERE account=? AND var=?"); statement.setString(1, account); statement.setString(2, var); statement.execute(); } catch (Exception e) { _log.info("AccountVariablesDAO.delete(String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement); } } public void insert(String account, String var, String value) { Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("REPLACE INTO account_variables(account_name, var, value) VALUES (?,?,?)"); statement.setString(1, account); statement.setString(2, var); statement.setString(3, value); statement.execute(); } catch (Exception e) { _log.info("AccountVariablesDAO.insert(String, String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement); } } public void update(String account, String var, String value) { Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("UPDATE account_variables SET value=? WHERE account=? AND var=?"); statement.setString(1, value); statement.setString(2, account); statement.setString(3, var); statement.execute(); } catch (Exception e) { _log.info("AccountVariablesDAO.update(String, String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement); } } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 (изменено) statement = con.prepareStatement("SELECT var, value FROM account_variables WHERE account_name=? AND var=?"); statement.setString(1, account); statement.setString(2, var); вот в начале исправть public String select(String account, String var) { String result_value = ""; Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT var, value FROM account_variables WHERE account_name=?"); statement.setString(1, account); statement.setString(2, var); rset = statement.executeQuery(); if (rset.next()) { result_value = rset.getString("value"); } } Изменено 28 апреля, 2015 пользователем 2terege Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 (изменено) и 43 строка имеется не программного кода а со всеми кометами + Немножко не ту ты строку жёлтым выделил на которую он ссылался Изменено 28 апреля, 2015 пользователем 2terege Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 ДА и сам код с мусором ша те норм как должно покажу Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 package l2s.gameserver.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import l2s.commons.dbutils.DbUtils; import l2s.gameserver.database.DatabaseFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AccountVariablesDAO { private static final Logger _log = LoggerFactory.getLogger(AccountVariablesDAO.class); private static final AccountVariablesDAO _instance = new AccountVariablesDAO(); public static final String SELECT_SQL_QUERY = "SELECT var, value FROM account_variables WHERE account_name=? AND var=?"; public static final String DELETE_SQL_QUERY = "DELETE FROM account_variables WHERE account=? AND var=?"; public static final String INSERT_SQL_QUERY = "REPLACE INTO account_variables(account_name, var, value) VALUES (?,?,?)"; public static final String UPDATE_SQL_QUERY = "UPDATE account_variables SET value=? WHERE account=? AND var=?"; public static AccountVariablesDAO getInstance() { return _instance; } public String select(String account, String var) { String result_value = ""; Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement(SELECT_SQL_QUERY); statement.setString(1, account); statement.setString(2, var); rset = statement.executeQuery(); if (rset.next()) { result_value = rset.getString("value"); } } catch (Exception e) { _log.info("AccountVariablesDAO.select(String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement, rset); } return result_value; } public void delete(String account, String var) { Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement(DELETE_SQL_QUERY); statement.setString(1, account); statement.setString(2, var); statement.execute(); } catch (Exception e) { _log.info("AccountVariablesDAO.delete(String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement); } } public void insert(String account, String var, String value) { Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement(INSERT_SQL_QUERY); statement.setString(1, account); statement.setString(2, var); statement.setString(3, value); statement.execute(); } catch (Exception e) { _log.info("AccountVariablesDAO.insert(String, String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement); } } public void update(String account, String var, String value) { Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement(UPDATE_SQL_QUERY); statement.setString(1, value); statement.setString(2, account); statement.setString(3, var); statement.execute(); } catch (Exception e) { _log.info("AccountVariablesDAO.update(String, String, String): " + e, e); } finally { DbUtils.closeQuietly(con, statement); } } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 ок очень благодарен за помощь , единственное что исходов нету =( пойду искать пилу =) , если кто в курсе как внести изменения в фаил просьба подетиться знаниями )) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 заплюсую всех)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 Так и без исходов запелю обратно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 как удобней передать фаил через скайп или яндекс диск? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 https://yadi.sk/d/FUTOyA1_gJpyE ссылка на фаил буду признателен за помощь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 28 апреля, 2015 пиши в скайп и мне не ток это надо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 ок Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 28 апреля, 2015 [29.04.15 02:11:50:988] INFO dao.AccountVariablesDAO: AccountVariablesDAO.select(String, String): java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3717) at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3701) at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4541) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at l2s.gameserver.dao.AccountVariablesDAO.select(AccountVariablesDAO.java:41) at l2s.gameserver.security.SecondaryPasswordAuth.loadPassword(SecondaryPasswordAuth.java:47) at l2s.gameserver.security.SecondaryPasswordAuth.<init>(SecondaryPasswordAuth.java:41) at l2s.gameserver.network.GameClient.setLoginName(GameClient.java:253) at l2s.gameserver.clientpackets.AuthLogin.runImpl(AuthLogin.java:44) at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50) at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) [29.04.15 02:11:51:005] INFO dao.AccountVariablesDAO: AccountVariablesDAO.select(String, String): java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3717) at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3701) at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4541) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135) at l2s.gameserver.dao.AccountVariablesDAO.select(AccountVariablesDAO.java:41) at l2s.gameserver.security.SecondaryPasswordAuth.loadPassword(SecondaryPasswordAuth.java:52) at l2s.gameserver.security.SecondaryPasswordAuth.<init>(SecondaryPasswordAuth.java:41) at l2s.gameserver.network.GameClient.setLoginName(GameClient.java:253) at l2s.gameserver.clientpackets.AuthLogin.runImpl(AuthLogin.java:44) at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50) at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) [29.04.15 02:11:51:023] ERROR clientpackets.L2GameClientPacket: Client: CONNECTED IP: 192.168.1.45 Account: minori - Failed running: [C] AuthLogin - Server Version: ${build.revision} java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at l2s.gameserver.security.SecondaryPasswordAuth.loadPassword(SecondaryPasswordAuth.java:54) at l2s.gameserver.security.SecondaryPasswordAuth.<init>(SecondaryPasswordAuth.java:41) at l2s.gameserver.network.GameClient.setLoginName(GameClient.java:253) at l2s.gameserver.clientpackets.AuthLogin.runImpl(AuthLogin.java:44) at l2s.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:50) at l2s.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 29 апреля, 2015 Мда ему попробовал довел до создание перса и все дальше не хочу смотреть и править Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты