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...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..