Jump to content

Thadex

Members
  • Posts

    11
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Thadex

  1. 
    

    Index: java/net/sf/l2j/gameserver/GameServer.java

    ===================================================================

    --- java/net/sf/l2j/gameserver/GameServer.java    (revision 21)

    +++ java/net/sf/l2j/gameserver/GameServer.java    (working copy)

    @@ -75,6 +75,7 @@

     import net.sf.l2j.gameserver.instancemanager.PetitionManager;

     import net.sf.l2j.gameserver.instancemanager.ZoneManager;

     import net.sf.l2j.gameserver.l2spike.botengine.BotManager;

    +import net.sf.l2j.gameserver.l2spike.datatables.AuctionTable;

     import net.sf.l2j.gameserver.l2spike.datatables.IconTable;

     import net.sf.l2j.gameserver.l2spike.handler.BypassHandler;

     import net.sf.l2j.gameserver.l2spike.partymatching.PartyMatchingManager;

    @@ -226,6 +227,7 @@

             IconTable.getInstance();

             BotManager.getInstance();

             PartyMatchingManager.getInstance();

    +        AuctionTable.getInstance();

             

             StringUtil.printSection("System");

             Runtime.getRuntime().addShutdownHook(Shutdown.getInstance());

    Index: java/net/sf/l2j/gameserver/l2spike/auction/AuctionItem.java

    ===================================================================

    --- java/net/sf/l2j/gameserver/l2spike/auction/AuctionItem.java    (revision 0)

    +++ java/net/sf/l2j/gameserver/l2spike/auction/AuctionItem.java    (revision 0)

    @@ -0,0 +1,76 @@

    +/*

    + * This program is free software: you can redistribute it and/or modify it under

    + * the terms of the GNU General Public License as published by the Free Software

    + * Foundation, either version 3 of the License, or (at your option) any later

    + * version.

    + *

    + * This program is distributed in the hope that it will be useful, but WITHOUT

    + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

    + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

    + * details.

    + *

    + * You should have received a copy of the GNU General Public License along with

    + * this program. If not, see <http://www.gnu.org/licenses/>.

    + */

    +package net.sf.l2j.gameserver.l2spike.auction;

    +

    +/**

    + * @author Anarchy

    + *

    + */

    +public class AuctionItem

    +{

    +    private int auctionId;

    +    private int ownerId;

    +    private int itemId;

    +    private int count;

    +    private int enchant;

    +    private int costId;

    +    private int costCount;

    +    

    +    public AuctionItem(int auctionId, int ownerId, int itemId, int count, int enchant, int costId, int costCount)

    +    {

    +        this.auctionId = auctionId;

    +        this.ownerId = ownerId;

    +        this.itemId = itemId;

    +        this.count = count;

    +        this.enchant = enchant;

    +        this.costId = costId;

    +        this.costCount = costCount;

    +    }

    +    

    +    public int getAuctionId()

    +    {

    +        return auctionId;

    +    }

    +    

    +    public int getOwnerId()

    +    {

    +        return ownerId;

    +    }

    +    

    +    public int getItemId()

    +    {

    +        return itemId;

    +    }

    +    

    +    public int getCount()

    +    {

    +        return count;

    +    }

    +    

    +    public int getEnchant()

    +    {

    +        return enchant;

    +    }

    +    

    +    public int getCostId()

    +    {

    +        return costId;

    +    }

    +    

    +    public int getCostCount()

    +    {

    +        return costCount;

    +    }

    +}

    Index: java/net/sf/l2j/gameserver/l2spike/datatables/AuctionTable.java

    ===================================================================

    --- java/net/sf/l2j/gameserver/l2spike/datatables/AuctionTable.java    (revision 0)

    +++ java/net/sf/l2j/gameserver/l2spike/datatables/AuctionTable.java    (revision 0)

    @@ -0,0 +1,199 @@

    /*

     * This program is free software: you can redistribute it and/or modify it under

     * the terms of the GNU General Public License as published by the Free Software

     * Foundation, either version 3 of the License, or (at your option) any later

     * version.

     

     *

     * This program is distributed in the hope that it will be useful, but WITHOUT

     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

     * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

     * details.

     *

     * You should have received a copy of the GNU General Public License along with

     * this program. If not, see <http://www.gnu.org/licenses/>.

     */

    package net.sf.l2j.gameserver.l2spike.datatables;

     

     

    import java.sql.Connection;

    import java.sql.PreparedStatement;

    import java.sql.ResultSet;

    import java.util.Map;

    import java.util.concurrent.ConcurrentHashMap;

    import java.util.logging.Logger;

     

     

    import net.sf.l2j.L2DatabaseFactory;

    import net.sf.l2j.gameserver.l2spike.auction.AuctionItem;

     

     

    /**

     * @author Anarchy

     *

     

     */

    public class AuctionTable

    {

        private static Logger log = Logger.getLogger(AuctionTable.class.getName());

       

        private Map<Integer, AuctionItem> items;

        private int maxId;

       

        public static AuctionTable getInstance()

        {

            return SingletonHolder._instance;

        }

       

        protected AuctionTable()

        {

            items = new ConcurrentHashMap<>();

            maxId = 0;

           

            load();

        }

       

        private void load()

        {

            try (Connection con = L2DatabaseFactory.getInstance().getConnection())

            {

                PreparedStatement stm = con.prepareStatement("SELECT * FROM auction_table");

                ResultSet rset = stm.executeQuery();

               

                while (rset.next())

                {

                    int auctionId = rset.getInt("auctionid");

                    int ownerId = rset.getInt("ownerid");

                    int itemId = rset.getInt("itemid");

                    int count = rset.getInt("count");

                    int enchant = rset.getInt("enchant");

                    int costId = rset.getInt("costid");

                    int costCount = rset.getInt("costcount");

                   

                    items.put(auctionId, new AuctionItem(auctionId, ownerId, itemId, count, enchant, costId, costCount));

                   

                    if (auctionId > maxId)

                        maxId = auctionId;

                }

               

                rset.close();

                stm.close();

            }

            catch (Exception e)

            {

                e.printStackTrace();

            }

           

            log.info("AuctionTable: Loaded "+items.size()+" items.");

        }

       

        public void addItem(AuctionItem item)

        {

            items.put(item.getAuctionId(), item);

           

            try (Connection con = L2DatabaseFactory.getInstance().getConnection())

            {

                PreparedStatement stm = con.prepareStatement("INSERT INTO auction_table VALUES (?,?,?,?,?,?,?)");

                stm.setInt(1, item.getAuctionId());

                stm.setInt(2, item.getOwnerId());

                stm.setInt(3, item.getItemId());

                stm.setInt(4, item.getCount());

                stm.setInt(5, item.getEnchant());

                stm.setInt(6, item.getCostId());

                stm.setInt(7, item.getCostCount());

               

                stm.execute();

                stm.close();

            }

            catch (Exception e)

            {

                e.printStackTrace();

            }

        }

       

        public void deleteItem(AuctionItem item)

        {

            items.remove(item);

           

            try (Connection con = L2DatabaseFactory.getInstance().getConnection())

            {

                PreparedStatement stm = con.prepareStatement("DELETE FROM auction_table WHERE auctionid=?");

                stm.setInt(1, item.getAuctionId());

               

                stm.execute();

                stm.close();

            }

            catch (Exception e)

            {

                e.printStackTrace();

            }

        }

       

        public AuctionItem getItem(int auctionId)

        {

            return items.get(auctionId);

        }

       

        public Map<Integer, AuctionItem> getItems()

        {

            return items;

        }

       

        public int getNextAuctionId()

        {

            maxId++;

            return maxId;

        }

       

        private static class SingletonHolder

        {

            protected static final AuctionTable _instance = new AuctionTable();

        }}

     

    Index: java/net/sf/l2j/gameserver/model/actor/instance/L2AuctionManagerInstance.java

    ===================================================================

    --- java/net/sf/l2j/gameserver/model/actor/instance/L2AuctionManagerInstance.java    (revision 0)

    +++ java/net/sf/l2j/gameserver/model/actor/instance/L2AuctionManagerInstance.java    (revision 0)

    @@ -0,0 +1,512 @@

    /*

     * This program is free software: you can redistribute it and/or modify it under

     * the terms of the GNU General Public License as published by the Free Software

     * Foundation, either version 3 of the License, or (at your option) any later

     * version.

     *

     * This program is distributed in the hope that it will be useful, but WITHOUT

     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

     * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

     * details.

     *

     * You should have received a copy of the GNU General Public License along with

     * this program. If not, see <http://www.gnu.org/licenses/>.

     */

    package net.sf.l2j.gameserver.model.actor.instance;

     

     

    import java.sql.Connection;

    import java.sql.PreparedStatement;

    import java.sql.ResultSet;

    import java.util.ArrayList;

    import java.util.HashMap;

    import java.util.Map;

     

     

    import net.sf.l2j.commons.lang.StringUtil;

     

     

    import net.sf.l2j.L2DatabaseFactory;

    import net.sf.l2j.gameserver.datatables.ItemTable;

    import net.sf.l2j.gameserver.idfactory.IdFactory;

    import net.sf.l2j.gameserver.l2spike.auction.AuctionItem;

    import net.sf.l2j.gameserver.l2spike.datatables.AuctionTable;

    import net.sf.l2j.gameserver.l2spike.datatables.IconTable;

    import net.sf.l2j.gameserver.model.World;

    import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;

    import net.sf.l2j.gameserver.model.item.instance.ItemInstance;

    import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;

    import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;

     

     

    /**

     * @author Anarchy

     *

     */

    public class L2AuctionManagerInstance extends L2NpcInstance

    {

        public L2AuctionManagerInstance(int objectId, NpcTemplate template)

        {

            super(objectId, template);

        }

       

        @Override

        public void onBypassFeedback(L2PcInstance player, String command)

        {

            if (command.startsWith("auction"))

            {

                try

                {

                    String[] data = command.substring(8).split(" - ");

                    int page = Integer.parseInt(data[0]);

                    String search = data[1];

                    showAuction(player, page, search);

                }

                catch (Exception e)

                {

                    showChatWindow(player);

                    player.sendMessage("Invalid input. Please try again.");

                    return;

                }

            }

            else if (command.startsWith("buy"))

            {

                int auctionId = Integer.parseInt(command.substring(4));

                AuctionItem item = AuctionTable.getInstance().getItem(auctionId);

               

                if (item == null)

                {

                    showChatWindow(player);

                    player.sendMessage("Invalid choice. Please try again.");

                    return;

                }

               

                if (player.getInventory().getItemByItemId(item.getCostId()) == null || player.getInventory().getItemByItemId(item.getCostId()).getCount() < item.getCostCount())

                {

                    showChatWindow(player);

                    player.sendMessage("Incorrect item count.");

                    return;

                }

               

                player.destroyItemByItemId("auction", item.getCostId(), item.getCostCount(), this, true);

               

                L2PcInstance owner = World.getInstance().getPlayer(item.getOwnerId());

                if (owner != null && owner.isOnline())

                {

                    owner.addItem("auction", item.getCostId(), item.getCostCount(), null, true);

                    owner.sendMessage("You have sold an item in the Auction Shop.");

                }

                else

                {

                    addItemToOffline(item.getOwnerId(), item.getCostId(), item.getCostCount());

                }

               

                ItemInstance i = player.addItem("auction", item.getItemId(), item.getCount(), this, true);

                i.setEnchantLevel(item.getEnchant());

                player.sendPacket(new InventoryUpdate());

                player.sendMessage("You have purchased an item from the Auction Shop.");

               

                AuctionTable.getInstance().deleteItem(item);

               

                showChatWindow(player);

            }

            else if (command.startsWith("addpanel"))

            {

                int page = Integer.parseInt(command.substring(9));

     

               

                showAddPanel(player, page);

            }

            else if (command.startsWith("additem"))

            {

                int itemId = Integer.parseInt(command.substring(8));

               

                if (player.getInventory().getItemByObjectId(itemId) == null)

                {

                    showChatWindow(player);

                    player.sendMessage("Invalid item. Please try again.");

                    return;

                }

               

                showAddPanel2(player, itemId);

            }

            else if (command.startsWith("addit2"))

            {

                try

                {

                    String[] data = command.substring(7).split(" ");

                    int itemId = Integer.parseInt(data[0]);

                    String costitemtype = data[1];

                    int costCount = Integer.parseInt(data[2]);

                    int itemAmount = Integer.parseInt(data[3]);

                   

                    if (player.getInventory().getItemByObjectId(itemId) == null)

                    {

                        showChatWindow(player);

                        player.sendMessage("Invalid item. Please try again.");

                        return;

                    }

                    if (player.getInventory().getItemByObjectId(itemId).getCount() < itemAmount)

                    {

                        showChatWindow(player);

                        player.sendMessage("Invalid item. Please try again.");

                        return;

                    }

                    if (!player.getInventory().getItemByObjectId(itemId).isTradable())

                    {

                        showChatWindow(player);

                        player.sendMessage("Invalid item. Please try again.");

                        return;

                    }

                   

                    int costId = 0;

                    if (costitemtype.equals("Adena"))

                    {

                        costId = 57;

                    }

                   

                    AuctionTable.getInstance().addItem(new AuctionItem(AuctionTable.getInstance().getNextAuctionId(), player.getObjectId(), player.getInventory().getItemByObjectId(itemId).getItemId(), itemAmount, player.getInventory().getItemByObjectId(itemId).getEnchantLevel(), costId, costCount));

                   

                    player.destroyItem("auction", itemId, itemAmount, this, true);

                    player.sendPacket(new InventoryUpdate());

                    player.sendMessage("You have added an item for sale in the Auction Shop.");

                    showChatWindow(player);

                }

                catch (Exception e)

                {

                    showChatWindow(player);

                    player.sendMessage("Invalid input. Please try again.");

                    return;

                }

            }

            else if (command.startsWith("myitems"))

     

            {

                int page = Integer.parseInt(command.substring(8));

                showMyItems(player, page);

            }

            else if (command.startsWith("remove"))

            {

                int auctionId = Integer.parseInt(command.substring(7));

                AuctionItem item = AuctionTable.getInstance().getItem(auctionId);

               

                if (item == null)

                {

                    showChatWindow(player);

                    player.sendMessage("Invalid choice. Please try again.");

                    return;

                }

               

                AuctionTable.getInstance().deleteItem(item);

               

                ItemInstance i = player.addItem("auction", item.getItemId(), item.getCount(), this, true);

                i.setEnchantLevel(item.getEnchant());

                player.sendPacket(new InventoryUpdate());

                player.sendMessage("You have removed an item from the Auction Shop.");

                showChatWindow(player);

            }

            else

            {

                super.onBypassFeedback(player, command);

            }

        }

       

        private void showMyItems(L2PcInstance player, int page)

        {

            HashMap<Integer, ArrayList<AuctionItem>> items = new HashMap<>();

            int curr = 1;

            int counter = 0;

           

            ArrayList<AuctionItem> temp = new ArrayList<>();

            for (Map.Entry<Integer, AuctionItem> entry : AuctionTable.getInstance().getItems().entrySet())

            {

                if (entry.getValue().getOwnerId() == player.getObjectId())

                {

                    temp.add(entry.getValue());

                   

                    counter++;

                   

                    if (counter == 10)

                    {

                        items.put(curr, temp);

                        temp = new ArrayList<>();

                        curr++;

                        counter = 0;

                    }

                }

            }

            items.put(curr, temp);

           

            if (!items.containsKey(page))

            {

                showChatWindow(player);

                player.sendMessage("Invalid page. Please try again.");

                return;

            }

           

            String html = "";

            html += "<html><title>Auction Shop</title><body><center><br1>";

            html += "<table width=310 bgcolor=000000 border=1>";

            html += "<tr><td>Item</td><td>Cost</td><td></td></tr>";

            for (AuctionItem item : items.get(page))

            {

                html += "<tr>";

                html += "<td><img src=\""+IconTable.getInstance().getIcon(item.getItemId())+"\" width=32 height=32 align=center></td>";

                html += "<td>Item: "+(item.getEnchant() > 0 ? "+"+item.getEnchant()+" "+ItemTable.getInstance().getTemplate(item.getItemId()).getName()+" - "+item.getCount() : ItemTable.getInstance().getTemplate(item.getItemId()).getName()+" - "+item.getCount());

                html += "<br1>Cost: "+StringUtil.formatNumber(item.getCostCount())+" "+ItemTable.getInstance().getTemplate(item.getCostId()).getName();

                html += "</td>";

                html += "<td fixwidth=71><button value=\"Remove\" action=\"bypass -h npc_"+getObjectId()+"_remove "+item.getAuctionId()+"\" width=70 height=21 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">";

                html += "</td></tr>";

            }

            html += "</table><br><br>";

           

            html += "Page: "+page;

            html += "<br1>";

           

            if (items.keySet().size() > 1)

            {

                if (page > 1)

                    html += "<a action=\"bypass -h npc_"+getObjectId()+"_myitems "+(page-1)+"\"><- Prev</a>";

               

                if (items.keySet().size() > page)

                    html += "<a action=\"bypass -h npc_"+getObjectId()+"_myitems "+(page+1)+"\">Next -></a>";

            }

           

            html += "</center></body></html>";

           

            NpcHtmlMessage htm = new NpcHtmlMessage(getObjectId());

            htm.setHtml(html);

            player.sendPacket(htm);

        }

       

        private void showAddPanel2(L2PcInstance player, int itemId)

        {

            ItemInstance item = player.getInventory().getItemByObjectId(itemId);

           

            String html = "";

            html += "<html><title>Auction Shop</title><body><center><br1>";

            html += "<img src=\""+IconTable.getInstance().getIcon(item.getItemId())+"\" width=32 height=32 align=center>";

            html += "Item: "+(item.getEnchantLevel() > 0 ? "+"+item.getEnchantLevel()+" "+item.getName() : item.getName());

           

            if (item.isStackable())

            {

                html += "<br>Set amount of items to sell:";

                html += "<edit var=amm type=number width=120 height=17>";

            }

           

            html += "<br>Select price:";

            html += "<br><combobox width=120 height=17 var=ebox list=Adena;>";

            html += "<br><edit var=count type=number width=120 height=17>";

            html += "<br><button value=\"Add item\" action=\"bypass -h npc_"+getObjectId()+"_addit2 "+itemId+" $ebox $count "+(item.isStackable() ? "$amm" : "1")+"\" width=70 height=21 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">";

            html += "</center></body></html>";

           

            NpcHtmlMessage htm = new NpcHtmlMessage(getObjectId());

            htm.setHtml(html);

            player.sendPacket(htm);

        }

       

        private void showAddPanel(L2PcInstance player, int page)

        {

            HashMap<Integer, ArrayList<ItemInstance>> items = new HashMap<>();

            int curr = 1;

            int counter = 0;

           

            ArrayList<ItemInstance> temp = new ArrayList<>();

            for (ItemInstance item : player.getInventory().getItems())

            {

                if (item.getItemId() != 57 && item.isTradable())

                {

                    temp.add(item);

                   

                    counter++;

                   

                    if (counter == 10)

                    {

                        items.put(curr, temp);

                        temp = new ArrayList<>();

                        curr++;

                        counter = 0;

                    }

                }

            }

            items.put(curr, temp);

           

            if (!items.containsKey(page))

            {

                showChatWindow(player);

                player.sendMessage("Invalid page. Please try again.");

                return;

            }

           

            String html = "";

            html += "<html><title>Auction Shop</title><body><center><br1>";

            html += "Select item:";

            html += "<br><table width=310 bgcolor=000000 border=1>";

           

            for (ItemInstance item : items.get(page))

            {

                html += "<tr>";

                html += "<td>";

                html += "<img src=\""+IconTable.getInstance().getIcon(item.getItemId())+"\" width=32 height=32 align=center></td>";

                html += "<td>"+(item.getEnchantLevel() > 0 ? "+"+item.getEnchantLevel()+" "+item.getName() : item.getName());

                html += "</td>";

                html += "<td><button value=\"Select\" action=\"bypass -h npc_"+getObjectId()+"_additem "+item.getObjectId()+"\" width=70 height=21 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">";

                html += "</td>";

                html += "</tr>";

            }

            html += "</table><br><br>";

           

            html += "Page: "+page;

            html += "<br1>";

           

            if (items.keySet().size() > 1)

            {

                if (page > 1)

                    html += "<a action=\"bypass -h npc_"+getObjectId()+"_addpanel "+(page-1)+"\"><- Prev</a>";

               

                if (items.keySet().size() > page)

                    html += "<a action=\"bypass -h npc_"+getObjectId()+"_addpanel "+(page+1)+"\">Next -></a>";

            }

           

            html += "</center></body></html>";

           

            NpcHtmlMessage htm = new NpcHtmlMessage(getObjectId());

            htm.setHtml(html);

            player.sendPacket(htm);

        }

       

        @SuppressWarnings("resource")

        private static void addItemToOffline(int playerId, int itemId, int count)

        {

            try (Connection con = L2DatabaseFactory.getInstance().getConnection())

            {

                PreparedStatement stm = con.prepareStatement("SELECT count FROM items WHERE owner_id=? AND item_id=?");

                stm.setInt(1, playerId);

                stm.setInt(2, itemId);

                ResultSet rset = stm.executeQuery();

               

                if (rset.next())

                {

                    stm = con.prepareStatement("UPDATE items SET count=? WHERE owner_id=? AND item_id=?");

                    stm.setInt(1, rset.getInt("count") + count);

                    stm.setInt(2, playerId);

                    stm.setInt(3, itemId);

                   

                    stm.execute();

                }

                else

                {

                    stm = con.prepareStatement("INSERT INTO items VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");

                    stm.setInt(1, playerId);

                    stm.setInt(2, IdFactory.getInstance().getNextId());

                    stm.setInt(3, itemId);

                    stm.setInt(4, count);

                    stm.setInt(5, 0);

                    stm.setString(6, "INVENTORY");

                    stm.setInt(7, 0);

                    stm.setInt(8, 0);

                    stm.setInt(9, 0);

                    stm.setInt(10, 0);

                    stm.setInt(11, -1);

                    stm.setInt(12, 0);

                   

                    stm.execute();

                }

               

                rset.close();

                stm.close();

            }

            catch (Exception e)

            {

                e.printStackTrace();

            }

        }

       

        private void showAuction(L2PcInstance player, int page, String search)

        {

            boolean src = !search.equals("*null*");

           

            HashMap<Integer, ArrayList<AuctionItem>> items = new HashMap<>();

            int curr = 1;

            int counter = 0;

           

            ArrayList<AuctionItem> temp = new ArrayList<>();

            for (Map.Entry<Integer, AuctionItem> entry : AuctionTable.getInstance().getItems().entrySet())

            {

                if (entry.getValue().getOwnerId() != player.getObjectId() && (!src || (src && ItemTable.getInstance().getTemplate(entry.getValue().getItemId()).getName().contains(search))))

                {

                    temp.add(entry.getValue());

                   

                    counter++;

                   

                    if (counter == 10)

                    {

                        items.put(curr, temp);

                        temp = new ArrayList<>();

                        curr++;

                        counter = 0;

                    }

                }

            }

            items.put(curr, temp);

           

            if (!items.containsKey(page))

            {

                showChatWindow(player);

                player.sendMessage("Invalid page. Please try again.");

                return;

            }

           

            String html = "<html><title>Auction Shop</title><body><center><br1>";

            html += "<multiedit var=srch width=150 height=20><br1>";

            html += "<button value=\"Search\" action=\"bypass -h npc_"+getObjectId()+"_auction 1 - $srch\" width=70 height=21 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">";

            html += "<br><table width=310 bgcolor=000000 border=1>";

            html += "<tr><td>Item</td><td>Cost</td><td></td></tr>";

            for (AuctionItem item : items.get(page))

            {

                html += "<tr>";

                html += "<td><img src=\""+IconTable.getInstance().getIcon(item.getItemId())+"\" width=32 height=32 align=center></td>";

                html += "<td>Item: "+(item.getEnchant() > 0 ? "+"+item.getEnchant()+" "+ItemTable.getInstance().getTemplate(item.getItemId()).getName()+" - "+item.getCount() : ItemTable.getInstance().getTemplate(item.getItemId()).getName()+" - "+item.getCount());

                html += "<br1>Cost: "+StringUtil.formatNumber(item.getCostCount())+" "+ItemTable.getInstance().getTemplate(item.getCostId()).getName();

                html += "</td>";

                html += "<td fixwidth=71><button value=\"Buy\" action=\"bypass -h npc_"+getObjectId()+"_buy "+item.getAuctionId()+"\" width=70 height=21 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">";

                html += "</td></tr>";

            }

            html += "</table><br><br>";

           

            html += "Page: "+page;

            html += "<br1>";

           

            if (items.keySet().size() > 1)

            {

                if (page > 1)

                    html += "<a action=\"bypass -h npc_"+getObjectId()+"_auction "+(page-1)+" - "+search+"\"><- Prev</a>";

               

                if (items.keySet().size() > page)

                    html += "<a action=\"bypass -h npc_"+getObjectId()+"_auction "+(page+1)+" - "+search+"\">Next -></a>";

            }

           

            html += "</center></body></html>";

           

            NpcHtmlMessage htm = new NpcHtmlMessage(getObjectId());

            htm.setHtml(html);

            player.sendPacket(htm);

        }

       

        @Override

        public String getHtmlPath(int npcId, int val)

        {

            String pom = "";

            if (val == 0)

                pom = "" + npcId;

            else

                pom = npcId + "-" + val;

                   

            return "data/html/l2spike/auction/" + pom + ".htm";

        }}

     

    Index: data/html/l2spike/auction/65529.htm

    ===================================================================

    --- data/html/l2spike/auction/65529.htm    (revision 0)

    +++ data/html/l2spike/auction/65529.htm    (revision 0)

    @@ -0,0 +1,25 @@

    +<html>

    +<title>

    +Auction Shop

    +</title>

    +<body>

    +<center>

    +<img src="l2spike.npclogo" width=256 height=95>

    +<br><img src="l2spike.splitter" width=256 height=8 align=center>

    +<br>

    +Welcome to L2Spike auction shop!

    +<br>

    +<table width=230 bgcolor="000000">

    +    <tr>

    +        <td align=center>

    +            <button value="Shop" action="bypass -h npc_%objectId%_auction 1 - *null*" width=204 height=20 back="sek.cbui81" fore="sek.cbui82">

    +            <button value="Add item" action="bypass -h npc_%objectId%_addpanel 1" width=204 height=20 back="sek.cbui81" fore="sek.cbui82">

    +            <button value="My items" action="bypass -h npc_%objectId%_myitems 1" width=204 height=20 back="sek.cbui81" fore="sek.cbui82">

    +        </td>

    +    </tr>

    +</table>

    +<br>

    +<img src="l2spike.splitter" width=256 height=8 align=center>

    +</center>

    +</body>

    +</html>

    \ No newline at end of file

    Index: sql/auction_table.sql

    ===================================================================

    --- sql/auction_table.sql    (revision 0)

    +++ sql/auction_table.sql    (revision 0)

    @@ -0,0 +1,10 @@

    +CREATE TABLE IF NOT EXISTS `auction_table` (

    +  `auctionid` INT UNSIGNED NOT NULL DEFAULT 0,

    +  `ownerid` INT UNSIGNED NOT NULL DEFAULT 0,

    +  `itemid` INT UNSIGNED NOT NULL DEFAULT 0,

    +  `count` INT UNSIGNED NOT NULL DEFAULT 0,

    +  `enchant` INT UNSIGNED NOT NULL DEFAULT 0,

    +  `costid` INT UNSIGNED NOT NULL DEFAULT 0,

    +  `costcount` INT UNSIGNED NOT NULL DEFAULT 0,

    +  PRIMARY KEY (auctionid)

    +);

    Index: tools/database_installer.bat

    ===================================================================

    --- tools/database_installer.bat    (revision 17)

    +++ tools/database_installer.bat    (working copy)

    @@ -104,6 +104,7 @@

     %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/topic.sql

     %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_schemes.sql

     %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/bots.sql

    +%mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/auction_table.sql

     

     echo Done.

     echo.

    Index: tools/database_installer.sh

    ===================================================================

    --- tools/database_installer.sh    (revision 17)

    +++ tools/database_installer.sh    (working copy)

    @@ -124,6 +124,7 @@

     $MYG < ../sql/topic.sql &> /dev/null

     $MYG < ../sql/character_schemes.sql &> /dev/null

     $MYG < ../sql/bots.sql &> /dev/null

    +$MYG < ../sql/auction_table.sql &> /dev/null

     echo ""

     echo "Was fast, isn't it ?"

     }

    Index: tools/full_install.sql

    ===================================================================

    --- tools/full_install.sql    (revision 17)

    +++ tools/full_install.sql    (working copy)

    @@ -45,4 +45,5 @@

     DROP TABLE IF EXISTS siege_clans;

     DROP TABLE IF EXISTS topic;

     DROP TABLE IF EXISTS character_schemes;

    -DROP TABLE IF EXISTS bots;

    \ No newline at end of file

    +DROP TABLE IF EXISTS bots;

    +DROP TABLE IF EXISTS auction_table;

    \ No newline at end of file

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock