Jump to content

Recommended Posts

Posted

Hello. With this script ( as the subject says ) your players can vote for the next auto event.

In the game you can use the .vote_tvt and .vote_ctf commands.

I made it for L2JFree pack.

 

/ gameserver.model.entity.events.EventVoteVariable.java /


/*
* This program 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.
* 
* This program 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 com.l2jfree.gameserver.model.entity.events;


/**
* 
* @author Rizel
* 
*/

public class EventVoteVariable
{
public int								_voteCountCTF = 0;
public int								_voteCountTvT = 0;
private int								_voteCount = 0;

public int getVoteCount(String name)
{

	if (name == "tvt")
	{
		_voteCount = _voteCountTvT;
	}

	if (name == "ctf")
	{
		_voteCount = _voteCountCTF;
	}

	return  _voteCount;
}

public void increaseVoteCount(String name)
{
	if (name == "tvt")
	{
		_voteCountTvT = _voteCountTvT+1;
	}

	if (name == "ctf")
	{
		_voteCountCTF = _voteCountCTF+1;
	}

}



}


/ gameserver.handler.voicedcommandhandlers.EventVote.java /


/*
* This program 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.
*
* This program 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 com.l2jfree.gameserver.handler.voicedcommandhandlers;


import com.l2jfree.Config;
import com.l2jfree.gameserver.handler.IVoicedCommandHandler;
import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfree.gameserver.model.entity.events.EventVoteVariable;
import java.util.StringTokenizer;
/**
*
* @author Rizel
*/
public class EventVote implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS = {"vote_tvt", "vote_ctf"};

/**
 * 
 * @see net.sf.l2j.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, net.sf.l2j.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
 */
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
	EventVoteVariable e = new EventVoteVariable();
	if(command.startsWith("vote_tvt"))
    {

			if (activeChar._voteEvent == false)
			{
				e.increaseVoteCount("tvt");
				activeChar._voteEvent = true;
				activeChar.sendMessage("You succesfully voted for the TvT event. TvT: " + e.getVoteCount("tvt") + " CTF: " + e.getVoteCount("ctf") + ".");
			}
			else
			{
				activeChar.sendMessage("You have already voted for an event.");	
			}
			return true;

    }


	if(command.startsWith("vote_ctf"))
    {
			if (activeChar._voteEvent == false)
			{
				e.increaseVoteCount("ctf");
				activeChar._voteEvent = true;
				activeChar.sendMessage("You succesfully voted for the CTF event. TvT: " + e.getVoteCount("tvt") + " CTF: " + e.getVoteCount("ctf") + ".");
			}

			else
			{
				activeChar.sendMessage("You have already voted for an event.");	
			}
			return true;
    }



	return false;
	}




/**
 * 
 * @see net.sf.l2j.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
 */
public String[] getVoicedCommandList()
{
	return VOICED_COMMANDS;
}
}


 

/ gameserver.model.entity.events.StartEvent.java /


/*
* This program 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.
* 
* This program 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 com.l2jfree.gameserver.model.entity.events;


import com.l2jfree.tools.random.Rnd;
import com.l2jfree.gameserver.model.entity.events.TvT;
import com.l2jfree.gameserver.model.entity.events.CTF;
import com.l2jfree.gameserver.model.entity.events.EventVoteVariable;
/**
* 
* @author Rizel
* 
*/

public class StartEvent
{

public static void startEvent()
{
	EventVoteVariable e = new EventVoteVariable();


	if (e.getVoteCount("tvt") > e.getVoteCount("ctf"))
	{
	TvT.loadData();
	TvT.autoEvent();
	}

	if (e.getVoteCount("ctf") > e.getVoteCount("tvt"))
	{
	CTF.loadData();
	CTF.autoEvent();
	}

	if (e.getVoteCount("tvt") == e.getVoteCount("ctf"))
	{
		if (Rnd.get(1) == 1)
			{
			TvT.loadData();
			TvT.autoEvent();
			}
		else
			{
			CTF.loadData();
			CTF.autoEvent();
			}
	}


}


}

 

/ gameserver.handler.VoicedCommandHandler.java /


private VoicedCommandHandler()
{
	_datatable = new FastMap<String, IVoicedCommandHandler>();
	registerVoicedCommandHandler(new CastleDoors());
	registerVoicedCommandHandler(new Hellbound());
	registerVoicedCommandHandler(new Banking());
+		registerVoicedCommandHandler(new EventVote());


 

 

/ gameserver.model.entity.events.TvT.java /


public static void cleanTvT()
{
	_log.info("TvT : Cleaning players.");
	for (L2PcInstance player : _players)
	{
		if (player != null)
		{
			removePlayer(player);
			if (_savePlayers.contains(player.getName()))
				_savePlayers.remove(player.getName());
			player._inEventTvT = false;
+				player._voteEvent = false;
		}
	}

 

 

/ gameserver.model.entity.events.CTF.java /


public static void cleanCTF()
{
	_log.info("CTF : Cleaning players.");
	for (L2PcInstance player : _players)
	{
		if (player != null)
		{
			if (player._haveFlagCTF)
				removeFlagFromPlayer(player);
			else
				player.getInventory().destroyItemByItemId("", CTF._FLAG_IN_HAND_ITEM_ID, 1, player, null);
			player._haveFlagCTF = false;
			removePlayer(player);
			if (_savePlayers.contains(player.getName()))
				_savePlayers.remove(player.getName());
			player._inEventCTF = false;
+				player._voteEvent = false;
		}
	}

 

 

/ gameserver.model.actor.instance.L2PcInstance.java /


/** TvT Engine parameters */
public String							_teamNameTvT, _originalTitleTvT;
public int								_originalNameColorTvT, _countTvTkills, _countTvTdies, _originalKarmaTvT;
public boolean							_inEventTvT				= false;
+	public boolean							_voteEvent				= false;


 

 

/ (server files) gameserver/data/scripts/cron/nextevent.py /


import sys
from com.l2jfree.gameserver.model.entity.events import StartEvent
StartEvent.startEvent()


 

 

/ (server SQL) global_tasks /


4	jython	TYPE_FIXED_SHEDULED	   0	300000	3600000	nextevent.py

 

 

Credits to me. Please reply if you find any bugs / errors.

Posted

owo amazing work, I havent try it because I dont have made a server but it is perfect if works correctly. With this script the players can participate in the actions of the server and more specificly in the events, nC

Posted

I have error while compiling:

C:\Documents and Settings\Administrator\workspace\Copy of Core Version 1.2.9\src
\main\java\com\l2jfree\gameserver\handler\voicedcommandhandlers\EventVote.java:[
41,18] cannot find symbol
symbol  : variable _voteEvent
location: class com.l2jfree.gameserver.model.actor.instance.L2PcInstance

C:\Documents and Settings\Administrator\workspace\Copy of Core Version 1.2.9\src
\main\java\com\l2jfree\gameserver\handler\voicedcommandhandlers\EventVote.java:[
44,15] cannot find symbol
symbol  : variable _voteEvent
location: class com.l2jfree.gameserver.model.actor.instance.L2PcInstance

C:\Documents and Settings\Administrator\workspace\Copy of Core Version 1.2.9\src
\main\java\com\l2jfree\gameserver\handler\voicedcommandhandlers\EventVote.java:[
58,18] cannot find symbol
symbol  : variable _voteEvent
location: class com.l2jfree.gameserver.model.actor.instance.L2PcInstance

C:\Documents and Settings\Administrator\workspace\Copy of Core Version 1.2.9\src
\main\java\com\l2jfree\gameserver\handler\voicedcommandhandlers\EventVote.java:[
61,15] cannot find symbol
symbol  : variable _voteEvent
location: class com.l2jfree.gameserver.model.actor.instance.L2PcInstance

C:\Documents and Settings\Administrator\workspace\Copy of Core Version 1.2.9\src
\main\java\com\l2jfree\gameserver\model\entity\events\TvT.java:[1545,10] cannot
find symbol
symbol  : variable _voteEvent
location: class com.l2jfree.gameserver.model.actor.instance.L2PcInstance

C:\Documents and Settings\Administrator\workspace\Copy of Core Version 1.2.9\src
\main\java\com\l2jfree\gameserver\model\entity\events\CTF.java:[2089,10] cannot
find symbol
symbol  : variable _voteEvent
location: class com.l2jfree.gameserver.model.actor.instance.L2PcInstance

Solved:

Add to your code:

gameserver.model.actor.instance.L2PcInstance:
/** CTF Engine parameters */
public String							_teamNameCTF, _teamNameHaveFlagCTF, _originalTitleCTF;
public int								_originalNameColorCTF, _originalKarmaCTF, _countCTFflags;
public boolean							_inEventCTF				= false, _haveFlagCTF = false;
public Future<?>						_posCheckerCTF			= null;
+	public boolean							_voteEvent				= false;

 

  • 3 weeks later...

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
Reply to this topic...

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