Jump to content
  • 0

How To Make It Forbidden


milosvamp

Question

Can somebody give me a little bit of help ?

I wanna make one NPC not available for all classes. I want to make for example that only healers can use it. But I am very new at this... Could anybody just try to give me some advices ? (:

For now the code looks like this:

 


/*
 * Copyright (C) 2004-2016 L2J DataPack
 * 
 * This file is part of L2J DataPack.
 * 
 * L2J DataPack 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.
 * 
 * L2J DataPack 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 custom.pots.pots;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.enums.PlayerAction;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;

import ai.npc.AbstractNpcAI;
import village_master.KamaelChange2.KamaelChange2;

public final class pots extends AbstractNpcAI
{
	/**
	 * @param name
	 * @param descr
	 */
	public pots(String name, String descr)
	{
		super(name, descr);
	}
	
	// NPC
	private static int[] NPCS =
	{
		30165, // Ralford
	};
	
	public void showChatWindow(PlayerAction player, int val)

final int npcId = getNpcId();
 
if (npcId == 30165)
{
final NpcHtmlMessage html = new NpcHtmlMessage();
if (PlayerAction.getclassid == 97)
html.setFile("data/html/merchant/30165-50.htm", _descr);
else
html.setFile("data/html/merchant/30165-3.htm", _descr);
 
html.replace("%objectId%", getObjectId());
player.sendPacket(html);
return; 
}
}

	/**
	 * @return
	 */
	private Object getObjectId()
	{
		return null;
	}
}


Thanks in advance...
Link to comment
Share on other sites

Recommended Posts

  • 0
On 9/19/2017 at 1:47 PM, milosvamp said:

yeah, haha idk how to make it ......................:x shit

package custom.potions;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.enums.PlayerAction;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;

import ai.npc.AbstractNpcAI;

public final class potions extends AbstractNpcAI
{
	public potions(String name, String descr)
	{
		super(name, descr);
		
		addStartNpc(30165);
		addFirstTalkId(30165);
	}
	
	@Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
	{
		if (player.getClassId() == 97)
		return "data/html/merchant/30165-50.htm";
		else
		return "data/html/merchant/30165-3.htm";
	}
	
	public static void main(String[] args)
	{
		new potions(-1, "potions", "custom");
	}
}

 

Edited by wongerlt
Link to comment
Share on other sites

  • 0
13 minutes ago, wongerlt said:

package custom.potions;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.enums.PlayerAction;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;

import ai.npc.AbstractNpcAI;

public final class potions extends AbstractNpcAI
{
	public potions(String name, String descr)
	{
		super(name, descr);
		
		addStartNpc(30165);
		addFirstTalkId(30165);
	}
	
	@Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
	{
		if (player.getClassId() == 97)
		return "data/html/merchant/30165-50.htm";
		else
		return "data/html/merchant/30165-3.htm";
	}
	
	public static void main(String[] args)
	{
		new potions(-1, "potions", "custom");
	}
}

 

THANK YOU VERY MUCH man !!!

i have only one issue. Could you pls tell me what to do with it ?

Image of the problem

Link to comment
Share on other sites

  • 0

hm ok thanks, and if i want more classes i just add comma and put another number ? Like:

 

if (player.getClassId().getId() == 97,==92,==93)  ?

Link to comment
Share on other sites

  • 0

No, || stands for 'or', so you would have to c/p whole check, but that's bad. You can ceate an int [] with id's. 

Link to comment
Share on other sites

  • 0

You can create int[],list or even do a for loop but instead of that CategoryType enum isn't exist with healer category?

Link to comment
Share on other sites

  • 0

this:

int clid = player.getClassId().getId();
if (clid  == 97 || clid == 96 || clid == 13 || clid == 23)

or

import org.apache.commons.lang.ArrayUtils; // put it at all other imports..


int[] classes = {1,4,67,123,14,53,14,86,234,34,34,and etc....};
if(ArrayUtils.contains(classes, player.getClassId().getId()))

 

Link to comment
Share on other sites

  • 0
4 minutes ago, wongerlt said:

this:


int clid = player.getClassId().getId();
if (clid  == 97 || clid == 96 || clid == 13 || clid == 23)

or


import org.apache.commons.lang.ArrayUtils; // put it at all other imports..


int[] classes = {1,4,67,123,14,53,14,86,234,34,34,and etc....};
if(ArrayUtils.contains(classes, player.getClassId().getId()))

 

Thank you mate.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • 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