Перейти к содержанию
Авторизация  
Piraelle

не пускает при включение пароля на персанаже

Рекомендуемые сообщения

Доброго дня ! Прошу помощи в решение проблемы связанной с включением второго пароля на персанаже.  Включил в конфигах  вот это 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)
 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 строке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такое может быть когда вызывается любой 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();

без кода или хотя бы сборки, нипонятно. Хотя это вроде бы скрипты, только какие...

Изменено пользователем Izonami

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ругается на файл в ядре  

 l2s\

      \gameserver\

                        \dao\

                                \AccountVariablesDAO.java 

Переменная оператора  ((((((  select   ))))))

41 строка

 

 

если надо я гляну что там надо

 

 

Писать в скайп с отметкой ссылки на эту тему 

Изменено пользователем 2terege

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 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);
    }
  }
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
      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");

      }

    }

Изменено пользователем 2terege

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и 43 строка   имеется не программного кода а со всеми кометами +

 

 

Немножко не ту  ты строку жёлтым выделил на которую он ссылался

Изменено пользователем 2terege

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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);

    }

  }

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ок очень  благодарен за помощь  , единственное что исходов нету =(  пойду искать пилу  =) , если кто в курсе как внести изменения в фаил просьба подетиться знаниями ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как  удобней передать фаил через скайп или яндекс диск?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
[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)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мда ему попробовал довел до создание перса и все дальше не хочу  смотреть  и править 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...