Jump to content
  • 0

Gm Shop just for premium


Question

Posted

As title say, i want to make a gm shop just for premium users. I make code like this and witout premium i still can use. I put few logs, but don't work. 

P.S. I use L2j-Sunrise.

 

package l2r.gameserver.model.actor.instance;

import java.util.StringTokenizer;

import l2r.gameserver.enums.InstanceType;
import l2r.gameserver.model.actor.FakePc;
import l2r.gameserver.model.actor.L2Npc;
import l2r.gameserver.model.actor.templates.L2NpcTemplate;
import l2r.gameserver.network.serverpackets.ActionFailed;
import l2r.gameserver.network.serverpackets.NpcHtmlMessage;

public class L2CustomShopInstance extends L2Npc
{
	@Override
	public void showChatWindow(L2PcInstance player)
	{
		player.sendPacket(ActionFailed.STATIC_PACKET);
		
		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
		html.setFile(player, player.getHtmlPrefix(), "data/html/mods/shop/main.htm");
		html.replace("%objectId%", String.valueOf(getObjectId()));
		player.sendPacket(html);
	}
	
	/**
	 * @param template
	 */
	public L2CustomShopInstance(L2NpcTemplate template)
	{
		super(template);
		setInstanceType(InstanceType.L2CustomShopInstance);
		FakePc fpc = getFakePc();
		if (fpc != null)
		{
			setTitle(fpc.title);
		}
	}
	
	@Override
	public void onBypassFeedback(final L2PcInstance player, String command)
	{
		StringTokenizer st = new StringTokenizer(command, " ");
		String actualCommand = st.nextToken();
		if (player == null)
		{
			return;
		}
		if (!player.isPremium())
		{
			System.out.println("Only premium player can use this shop!");
			return;
		}
		
		if (actualCommand == null)
		{
			return;
		}
		
		if (actualCommand.startsWith("buy"))
		{
			System.out.println("buy");
		}
		else if (actualCommand.startsWith("sell"))
		{
			System.out.println("sell");
		}
		
	}
}

 

Thank you !

3 answers to this question

Recommended Posts

  • 0
Posted (edited)
import l2.gameserver.data.xml.holder.MultiSellHolder;
import l2.gameserver.model.Player;
import l2.gameserver.network.l2.components.SystemMsg;
import l2.gameserver.scripts.Functions;
import l2.gameserver.scripts.ScriptFile;
import l2.gameserver.utils.ItemFunctions;

public class ExchangeItemAndCheck extends Functions implements ScriptFile
{
    public void exchange_items_with_check()
    {
        Player player = getSelf();
        if(player == null || !CheckPlayerConditions(player))
            return;

        if(ItemFunctions.getItemCount(player, 99999) < 1) <Your Custom Premium Item is here>
        {
            player.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT);
            return;
        }
        else
            MultiSellHolder.getInstance().SeparateAndSend(50000, player, 0);    } <Multisell of GM shop is here>
    @Override
    public void onLoad()
    {
    }
    @Override
    public void onReload()
    {
    }
    @Override
    public void onShutdown()
    {
    }
}

Works fine on Lucera. maybe it may help ya with yours.

Edited by Ehoq
Guest
This topic is now closed to further replies.


×
×
  • Create New...