Jump to content
  • 0

Vip System


showma

Question

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
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

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
Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...