Jump to content

Question

Posted (edited)

I've never written a java code yet but I would like to write a vip system. It would be consist of an admin command and/or a npc to give a character vip status. the vip status would mean that the character has colored name, earn a vip item and only they can use the global chat.

 

where should I start, how it can be done?

Edited by showma

5 answers to this question

Recommended Posts

  • 0
Posted (edited)

A system that can be extended , i like it ;)

 

You can start by making 2 methods in L2PcInstance to get/set the vip status in the player.

for example:

 

Make a global variable

private boolean vip = false;

then the 2 methods

	public void setVip(boolean val)
	{
		vip = val;
	}
	public boolean isVip()
	{
		return vip;
	}

then, you should make a new admincommandhandler :

 

go at ./handler.admincommandhandlers package and create your new .java AdminVip.java

 

inside the only thing you need is actually 1 check :

if (command.equals("admin_vip"))
	if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance) //checking the target if is a player
	{
		L2PcInstance target = (L2PcInstance) activeChar.getTarget();
		if (target != null)
		{
			if (target.isVip()) //checking if is already a vip
			{
				activeChar.sendMessage("target already vip");
				return false;
			}
			// is not vip , rewarding and set vip
			target.addItem("vipReward", 57, 200, null, true);
			target.sendMessage("You are now Vip!");
			target.setVip(true);
		}
	}

register this command in ./gameserver.handler.AdminCommandHandler.java

registerAdminCommandHandler(new AdminVip());

(dont forget to add the missing import of the AdminVip class)

 

then, depends on your pack you should go in chathandlers and before the message is send to the world,knownlist add a check like this

if (!activeChar.isVip())
{
activeChar.sendMessage("Only vips can talk here");
return;
}
....

Note: with the above code the player is vip until restart. if you want to save the status you should make a connection somewhere in your database to store/restore the vip value

Edited by melron
  • 0
Posted

Can you tell us what project you use? If is aCis, I have something for you. 

For a other project, you should make a connection in your db as Merlon said.. (I think somewhere on Shares & Files, there is a frozen vip system(or hero days) with db connection. But bad coded ofc. It's old).

  • 0
Posted
private static boolean vip = false;

Can't be "static", otherwise the value is global while it must be instancied.

 

There are vip systems here and there (on MxC) and aCis customer section probably got one too. It's nothing more than Melron said.

  • 0
Posted
private static boolean vip = false;

Can't be "static", otherwise the value is global while it must be instancied.

 

There are vip systems here and there (on MxC) and aCis customer section probably got one too. It's nothing more than Melron said.

 

Yeah you're right :p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


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