Полный гайд по инстансам (Kamaloka и что угодно)

Java:
    public Long getHwidReuse(int var1, String var2) {
        Connection var3 = null;
        PreparedStatement var4 = null;
        ResultSet var5 = null;

        Long var6;
        try {
            var3 = DatabaseFactory.getInstance().getConnection();
            var4 = var3.prepareStatement("SELECT `reuse` FROM `instances_hwid_reuse` WHERE `id` = ? AND `hwid` = ?");
            var4.setInt(1, var1);
            var4.setString(2, var2);
            var5 = var4.executeQuery();
            if (!var5.next()) {
                return -1L;
            }

            var6 = var5.getLong("reuse");
        } catch (SQLException var10) {
            sW.error(var10.getMessage(), var10);
            return -1L;
        } finally {
            DbUtils.closeQuietly(var3, var4, var5);
        }

        return var6;
    }

    public void setHwidReuse(int var1, String var2, long var3) {
        mysql.set("REPLACE INTO `instances_hwid_reuse` (`id`, `hwid`, `reuse`) VALUES (?,?,?)", new Object[]{var1, var2, var3});
    }
 
попробовал создать новый класс :
Java:
package reuse;

import l2.commons.dbutils.DbUtils;
import l2.gameserver.database.DatabaseFactory;
import l2.gameserver.database.mysql;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import l2.gameserver.database.mysql;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class HwidReuseDAO {
    private static final Logger LOGGER = LoggerFactory.getLogger(HwidReuseDAO.class);
    private static final HwidReuseDAO INSTANCE = new HwidReuseDAO();

    public static HwidReuseDAO getInstance() {
        return INSTANCE;
    }

    private HwidReuseDAO() {
    }

    public Long getHwidReuse(int id, String hwid) {
        Connection con = null;
        PreparedStatement statement = null;
        ResultSet rset = null;

        try {
            con = DatabaseFactory.getInstance().getConnection();
            statement = con.prepareStatement("SELECT `reuse` FROM `instances_hwid_reuse` WHERE `id` = ? AND `hwid` = ?");
            statement.setInt(1, id);
            statement.setString(2, hwid);
            rset = statement.executeQuery();

            if (rset.next()) {
                return rset.getLong("reuse");
            }
        } catch (SQLException e) {
            LOGGER.error("Error while getting hwid reuse for id {} and hwid {}", id, hwid, e);
        } finally {
            DbUtils.closeQuietly(con, statement, rset);
        }

        return null;
    }

    public void removeHwidReuse(int id, String hwid) {
        mysql.set("DELETE FROM `instances_hwid_reuse` WHERE `id`=? AND `hwid`=?", new Object[]{id, hwid});
    }
}

И добавил в скрипт сброса строки..
Java:
package handler.items;

import l2.gameserver.model.Player;
import l2.gameserver.model.items.ItemInstance;
import l2.gameserver.network.l2.s2c.SystemMessage;
import reuse.HwidReuseDAO;

public class reuse extends SimpleItemHandler
{
    private static final int[] ITEM_IDS = new int[] { 9839, 9840 };

    @Override
    public int[] getItemIds()
    {
        return ITEM_IDS;
    }

    @Override
    protected boolean useItemImpl(Player player, ItemInstance item, boolean ctrl)
    {
        int itemId = item.getItemId();

        switch(itemId)
        {
            case 9839:
                useItem(player, item, 1);
                player.sendMessage("Вы использовали " + item.getName());
                player.removeInstanceReusesByGroupId(5);
[B]                HwidReuseDAO.getInstance().removeHwidReuse(72, player.getNetConnection().getHwid());
                HwidReuseDAO.getInstance().removeHwidReuse(73, player.getNetConnection().getHwid());
                HwidReuseDAO.getInstance().removeHwidReuse(74, player.getNetConnection().getHwid());[/B]
                break;
            case 9840:
                useItem(player, item, 1);
                player.sendMessage("Вы использовали " + item.getName());
                player.removeInstanceReusesByGroupId(4);
[B]                HwidReuseDAO.getInstance().removeHwidReuse(75, player.getNetConnection().getHwid());
                HwidReuseDAO.getInstance().removeHwidReuse(76, player.getNetConnection().getHwid());
                HwidReuseDAO.getInstance().removeHwidReuse(77, player.getNetConnection().getHwid());[/B]
                break;
        }
        player.sendPacket((new SystemMessage("Подземелье доступно для повторного Входа")).addItemName(itemId));
        return false;
    }
}

Но нифига... правильно ли я беру Hwid игрока?)

Если фигню написал. сорри)))
 
  • <add_parameters><param name="hwidLimit" value="true"/></add_parameters> - если активировать этот параметр, откат будет записываться на HWID и не пускать в инст если HWID тот же.
по Ip есть проверка?
 
А у тебя будет возможность добавить предметам откат раз в день? Он есть, но работает только на капсулы
да можно ставить char var и чекать время истечения отката и все, делается довольно просто, могу дополнить позже тему с этими билетами
 
да можно ставить char var и чекать время истечения отката и все, делается довольно просто, могу дополнить позже тему с этими билетами
Будет неплохо, спасибо
 
да можно ставить char var и чекать время истечения отката и все, делается довольно просто, могу дополнить позже тему с этими билетами
По билетам не вносили изменения?
 
По билетам не вносили изменения?
Есть скрипт с доп конфигом где выставляешь какой предмет какой откатывает данж, с установкой сброса повторного использования, без занесения в базу
 
Есть скрипт с доп конфигом где выставляешь какой предмет какой откатывает данж, с установкой сброса повторного использования, без занесения в базу
Искал в модах, не нашёл. Можешь носом ткнуть?
 
перечитай эту тему) тут есть скрипт на сброс отката
Я так понял ему нужен не сам скрипт. А реализация самого билета с возможностью выставить время повторного использования. Потому что сейчас , можно сделать допустим ящик (капсулу) с временем отката и уже туда засунуть билет, который будет откатывать.
А сам скрипт на откат по предмету есть давно. Я себе еще реализовал откат и по hwid
 
После прохождения камалоки (лабы) при выходе одного из членов группы из пати в чат вылетает такое сообщение,где его корректировать?
Kama.png
 
Back
Top