не получается занести значение в БД геймсервера через использовании предмета

DMI3Y

Знающий
Участник
Сообщения
118
Розыгрыши
0
Репутация
0
Реакции
5
Баллы
430
Хроники
  1. The 2nd Throne: Gracia
Исходники
Присутствуют
Сборка
nextgen 7584
JavaScript:
package items;

import java.sql.SQLException;

import l2n.database.L2DatabaseFactory;
import l2n.database.utils.mysql;
import l2n.extensions.scripts.ScriptFile;
import l2n.game.cache.Msg;
import l2n.game.handler.holder.ItemHandler;
import l2n.game.handler.IItemHandler;
import l2n.game.model.actor.L2Playable;
import l2n.game.model.actor.L2Player;
import l2n.game.model.instances.L2ItemInstance;


public class PremiumItem implements IItemHandler, ScriptFile
{

    private static int[] _itemIds = {9693};
    private int i;
    
    public void useItem(L2Playable playable, L2ItemInstance item)
    {
        if (!playable.isPlayer())
            return;

            L2Player activeChar = (L2Player) playable;

            
            if(activeChar.getInventory().getCountOf(9693) < 1)
            {
                activeChar.sendPacket(Msg.INCORRECT_ITEM_COUNT);
                return;
            }
            else
            {
            activeChar.getInventory().destroyItem(item, 1, false);

            {
            try
            {   
                                                                                        
                mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = +1;
                }
            catch(SQLException e)
            {
                e.printStackTrace();
            }

            }
            }
            
        }
    
    public final int[] getItemIds()
    {
        return _itemIds;
    }
    
    public void onLoad()
    {

    ItemHandler.getInstance().registerItemHandler(this);
    }

    public void onReload()
    {}

    public void onShutdown()
    {}
}
Выдаёт ошибку:
Код:
----------
1. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 43)
    mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = +1;
                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
String literal is not properly closed by a double-quote
----------
2. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 62)
    ItemHandler.getInstance().registerItemHandler(this);
                              ^^^^^^^^^^^^^^^^^^^
The method registerItemHandler(PremiumItem) is undefined for the type ItemHandler
----------
[compiled 128961 lines in 5584 ms: 23094.7 lines/s]
2 problems (2 errors)[807 .class files generated]
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@551be910
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@1b624517
Подскажите люди опытные почему ошибка?
 

А кавычки кто закрывать будет?
Сорян, пропустил, потому что часто переделывал. Кавычки поставил. Всё равно ошибка
Код:
----------
1. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 43)
    mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = +1");
                                  ^^^^^^^^^^^^^^^^
The method getInstanceLogin() is undefined for the type L2DatabaseFactory
----------
2. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 63)
    ItemHandler.getInstance().registerItemHandler(this);
                              ^^^^^^^^^^^^^^^^^^^
The method registerItemHandler(PremiumItem) is undefined for the type ItemHandler
----------
[compiled 128962 lines in 5617 ms: 22959.2 lines/s]
2 problems (2 errors)[807 .class files generated]
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@32306c0c
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@905a192
 
а должно?:) и что Вы ждете от скрипта?
 
Чтобы при использовании предмета, предмет уничтожался и в таблицу геймсервера добавлялось +1 очко
ну тогда даже запрос не верный, изучите запросы в БД.
максимум оно что сделает это установит в колонке л2моней значение 1, но никак не добавит, так как оно не знает предыдущего числа
 
ну тогда даже запрос не верный, изучите запросы в БД.
максимум оно что сделает это установит в колонке л2моней значение 1, но никак не добавит, так как оно не знает предыдущего числа
Код:
mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = '" + 1);
так?
 
Код:
mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = '" + 1);
так?
нет нет и нет, что бы добавить значение надо сначало знать ее, этот запрос просто поставит колонке л2моней 1
 
UPDATE `accounts` SET `l2money` = `l2money` + 1

я уверен что гуглиться для спидранера за 2-3 секунды.
я и так тоже пробовал
Код:
----------
1. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 43)
    mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = `l2money` + 1 ");
                                  ^^^^^^^^^^^^^^^^
The method getInstanceLogin() is undefined for the type L2DatabaseFactory
----------
2. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 63)
    ItemHandler.getInstance().registerItemHandler(this);
                              ^^^^^^^^^^^^^^^^^^^
The method registerItemHandler(PremiumItem) is undefined for the type ItemHandler
----------
[compiled 128962 lines in 5460 ms: 23619.4 lines/s]
2 problems (2 errors)[807 .class files generated]
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@3ffe5e31
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@54da03c9
 
я и так тоже пробовал
тебе написали за правильность SQL запроса.

А по поводу ошибки компиляции....
"The method getInstanceLogin() is undefined for the type L2DatabaseFactory"
ты уверен что в классе L2DatabaseFactory имеется метод getInstanceLogin ?
 
тебе написали за правильность SQL запроса.

А по поводу ошибки компиляции....
"The method getInstanceLogin() is undefined for the type L2DatabaseFactory"
ты уверен что в классе L2DatabaseFactory имеется метод getInstanceLogin ?
хм, не уверен

тебе написали за правильность SQL запроса.

А по поводу ошибки компиляции....
"The method getInstanceLogin() is undefined for the type L2DatabaseFactory"
ты уверен что в классе L2DatabaseFactory имеется метод getInstanceLogin ?
посмотрел. Есть такой метод

тебе написали за правильность SQL запроса.

А по поводу ошибки компиляции....
"The method getInstanceLogin() is undefined for the type L2DatabaseFactory"
ты уверен что в классе L2DatabaseFactory имеется метод getInstanceLogin ?
разобрался. путь метода не тот был, исправит. Теперь новая ошибка
Код:
1. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 45)
    catch(SQLException e)
          ^^^^^^^^^^^^
Unreachable catch block for SQLException. This exception is never thrown from the try statement body
----------
[compiled 128962 lines in 5044 ms: 25567.4 lines/s]
1 problem (1 error)[807 .class files generated]
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@61d91a71
Что делать шэф?
 
разобрался. путь метода не тот был, исправит. Теперь новая ошибка
Код:
1. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 45)
    catch(SQLException e)
          ^^^^^^^^^^^^
Unreachable catch block for SQLException. This exception is never thrown from the try statement body
----------
[compiled 128962 lines in 5044 ms: 25567.4 lines/s]
1 problem (1 error)[807 .class files generated]
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@61d91a71
Что делать шэф?
дай угадаю вы через cmd ( ant ) компилим сборку ? скорее всего да, скачай программу idei они разные есть и т.д, а не через блокнот работа методым слепым тыкание и т.д и смотре а чее так такое и почем у меня ерросы и т.д
а по тему опять же
Unreachable catch block for SQLException. This exception is never thrown from the try statement body
гугл неа не слыщали :Maikka: :Golddigging:
 
дай угадаю вы через cmd ( ant ) компилим сборку ? скорее всего да, скачай программу idei они разные есть и т.д, а не через блокнот работа методым слепым тыкание и т.д и смотре а чее так такое и почем у меня ерросы и т.д
а по тему опять же
Unreachable catch block for SQLException. This exception is never thrown from the try statement body
гугл неа не слыщали :Maikka: :Golddigging:
Ну гугл твои посты отказывается переводить
 
я и так тоже пробовал
Код:
----------
1. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 43)
    mysql.setEx(L2DatabaseFactory.getInstanceLogin(), "UPDATE `accounts` SET `l2money` = `l2money` + 1 ");
                                  ^^^^^^^^^^^^^^^^
The method getInstanceLogin() is undefined for the type L2DatabaseFactory
----------
2. ERROR in C:\Users\Administrator\Desktop\server\game\.\data\scripts\items\PremiumItem.java (at line 63)
    ItemHandler.getInstance().registerItemHandler(this);
                              ^^^^^^^^^^^^^^^^^^^
The method registerItemHandler(PremiumItem) is undefined for the type ItemHandler
----------
[compiled 128962 lines in 5460 ms: 23619.4 lines/s]
2 problems (2 errors)[807 .class files generated]
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@3ffe5e31
org.eclipse.jdt.internal.compiler.tool.EclipseCompilerImpl$3$2@54da03c9
"UPDATE `accounts` SET `l2money` = `l2money` + 1 WHERE ваше_условие (если логин = вафля)"
 
Назад
Сверху Снизу