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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...