Jump to content

Recommended Posts

Posted

Read section rules.

 

Edit your thread and add proper [TAG] in your topic title.

 

Otherwise I will lock it.

Posted

Everything is fine but when I type it .bhreg does nothing

: S

Any solution?

 

I add the line

VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new castle());

to MasterHandlers.java but when i run gameserver this file give error :(

 

Posted

Hi I have a question because I can not carry this code

 

I changed to test the transformation "Zombie" and adds custom skill to increase the HP of the transformation.

but there is a problem the character is transformed increases hp example: 100k hp but is low for example if the character has 5000 hp and transform instantly adds hp 100000 of the character continues with 5000 hp and lacks 95000 hp regenerate other to have full hp.

my question is whether it is possible and how to fix that transform the character to heal all the hp.

 

I leave here I think my code in place that highlight have to modify the code and I think I needed some import.

 

Greetings.

 

/*
* 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.l2jserver.gameserver.model.entity;

import java.util.Calendar;
import java.util.logging.Logger;

import javolution.util.FastSet;
import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.instancemanager.TransformationManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.olympiad.Olympiad;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
import com.l2jserver.gameserver.util.Broadcast;
import com.l2jserver.util.Rnd;

/**
* @author Laikeriz update Pixi
*/
public class Biohazard
{
enum EventState
{
	INACTIVE,
	INACTIVATING,
	REGISTERING,
	STARTED,
	REWARDING
}

   private final static Logger _log = Logger.getLogger(Biohazard.class.getName());
private static EventState _state = EventState.INACTIVE;

public static FastSet<L2PcInstance> _participants = new FastSet<L2PcInstance>();
public static FastSet<L2PcInstance> _infected = new FastSet<L2PcInstance>();
public static FastSet<L2PcInstance> _notInfected = new FastSet<L2PcInstance>();

public static boolean isStarted()
{
	if (_state == EventState.STARTED)
		return true;
	return false;
}

public static boolean isRegistering()
{
	if (_state == EventState.REGISTERING)
		return true;
	return false;
}

public static void startRegistering()
{
	if (_state == EventState.REGISTERING || _state == EventState.STARTED)
		return;
	Announcements.getInstance().announceToAll("Biohazard: Registration is open.");
	Announcements.getInstance().announceToAll("Biohazard: Type \".bhreg\" to register to event.");
	Announcements.getInstance().announceToAll("Biohazard: Type \".bhunreg\" to unregister from event.");
	_state = EventState.REGISTERING;
	int step = 0;
	int after = 0;
	for (int i = 40; i > 0; i-=10)
	{
		switch(i)
		{
			case 40:
				step = 5;
				after = 15;
				break;
			case 30:
				step = 5;
				after = 10;
				break;
			case 20:
				step = 4;
				after = 5;
				break;
			case 10:
				step = 1;
				after = 1;
				break;
		}
		if (_state == EventState.INACTIVE)
			return;
		Announcements.getInstance().announceToAll("Biohazard: Registration will be closed in "  after  " minute(s).");
		try{Thread.sleep(step*60000);}catch (Exception e){}
	}
	//sound = "";
	try{Thread.sleep(60000);}catch (Exception e){}
	if (_state == EventState.INACTIVE)
		return;
	if (_participants.size() >= 2)
	{
		Announcements.getInstance().announceToAll("Biohazard: Teleporting players in 20 seconds.");
		try{Thread.sleep(20000);}catch (Exception e){}
		_state = EventState.STARTED;
		startEventAndTelePl();
	}
	else
		Announcements.getInstance().announceToAll("Biohazard: Event aborted due to lack of participants.");
}

public static void addParticipant(L2PcInstance player)
{
	if (TvTEvent.isPlayerParticipant(player.getObjectId()))
	{
		player.sendMessage("You cannot register because of registration in another event");
		return;
	}
	if (_state == EventState.REGISTERING && !_participants.contains(player))
	{
		_participants.add(player);
		player.sendMessage("You have successfully registered to this event");
	}
	else
		player.sendMessage("You are already registered or it's not registration time.");
}

public static void removeParticipant(L2PcInstance player)
{
	if (_state == EventState.REGISTERING)
	{
		if (_participants.contains(player))
			_participants.remove(player);
		else
			player.sendMessage("You aren't registered in this event.");
		player.setIsInBiohazard(false);
	}
	else
		player.sendMessage("It's not registration time.");
}
public static void startEventAndTelePl()
{
	if (_state == EventState.INACTIVE)
		return;
	synchronized(_participants)
	{
		for (L2PcInstance pl : _participants)
			if (pl.isOnlineInt() == 1)
			{
				_notInfected.add(pl);
				pl._oldX = pl.getX();
				pl._oldY = pl.getY();
				pl._oldZ = pl.getZ();
				pl.teleToLocation(-17507,143206,-3911);
				pl.setTeam(0);
				pl.setIsInBiohazard(true);
				pl.untransform();
			}
	}
Announcements.getInstance().announceToAll("Biohazard: Teleportion done.");
Announcements.getInstance().announceToAll("Biohazard: One player was infected by untreatable virus!");
Announcements.getInstance().announceToAll("Biohazard: In about one minute virus will take over his body and he will become zombie!");
try{Thread.sleep(60000);}catch (Exception e){}
int num = Math.round(Rnd.get(_notInfected.size()-1));
L2PcInstance infectFirst = ((L2PcInstance[])getAllNotInfected())[num];
infectPlayer(infectFirst);
Announcements.getInstance().announceToAll("Biohazard: Virus took over "  infectFirst.getName()  " body and he wants to infect everybody else!");
}
[color=red]//I think this is the part of code that needs to be modify[/color]
public static void infectPlayer(L2PcInstance zombie)
{
	if (_state == EventState.INACTIVE)
		return;
	if (zombie.isTransformed())
		zombie.untransform();
	zombie.setIsZombie(true);
	_notInfected.remove(zombie);
	_infected.add(zombie);
	TransformationManager.getInstance().transformPlayer(303, zombie);
	if (_notInfected.size() == 0)
		zombiesWin();
}

public static void onLogout(L2PcInstance playerInstance)
{
	if (_state == EventState.REGISTERING)
		removeParticipant(playerInstance);
	else if (_state == EventState.STARTED)
	{
		playerInstance.setXYZ(playerInstance._oldX,playerInstance._oldY,playerInstance._oldZ);
		if (!playerInstance.isZombie())
			_notInfected.remove(playerInstance);
		else if (playerInstance.isZombie())
			_infected.remove(playerInstance);
		if (_notInfected.size() == 0)
			zombiesWin();
		if (_infected.size() == 0)
			playersWin();
	}
}

public static void zombiesWin()
{
	if (_state == EventState.INACTIVE)
		return;
	Announcements.getInstance().announceToAll("Biohazard: Zombies won.");
	Announcements.getInstance().announceToAll("Biohazard: Rewarding and teleporting participants back to village in 20 seconds.");
	_state = EventState.REWARDING;
	try{Thread.sleep(20000);}catch (Exception e){}
	synchronized(_infected)
	{
		for (L2PcInstance pl : _infected)
			if (pl.isOnlineInt() == 1)
				pl.addItem("Biohazard", 6673, 1, pl, true);
	}
	synchronized(_participants)
	{
		for (L2PcInstance pl : _participants)
			if (pl.isOnlineInt() == 1)
			{
				pl.teleToLocation(pl._oldX,pl._oldY,pl._oldZ);
				pl.setIsInBiohazard(false);
				if (pl.isTransformed())
					try{Thread.sleep(5000);}catch (Exception e){}
					pl.untransform();
			}
	}
	_participants.clear();
	_infected.clear();
	_notInfected.clear();
	_state = EventState.INACTIVE;
}

public static void playersWin()
{
	Announcements.getInstance().announceToAll("Biohazard: Players won.");
	Announcements.getInstance().announceToAll("Biohazard: Rewarding and teleporting participants back to village in 20 seconds.");
	_state = EventState.REWARDING;
	try{Thread.sleep(20000);}catch (Exception e){}
	synchronized(_notInfected)
	{
		for (L2PcInstance pl : _notInfected)
			if (pl.isOnlineInt() == 1)
			{
				pl.addItem("Biohazard", 6673, 1, pl, true);
			}
	}
	synchronized(_participants)
	{
		for (L2PcInstance pl : _participants)
			if (pl.isOnlineInt() == 1)
			{
				pl.teleToLocation(pl._oldX,pl._oldY,pl._oldZ);
				pl.setIsInBiohazard(false);
//					if (pl.inWorld() == 1)
//						pl.setTeam(pl.getFactionId());
				if (pl.isTransformed())
					try{Thread.sleep(5000);}catch (Exception e){}
					pl.untransform();
			}
	}
	_participants.clear();
	_infected.clear();
	_notInfected.clear();
	_state = EventState.INACTIVE;
}

public static L2PcInstance[] getAllNotInfected()
{
	synchronized(_notInfected)
	{
		return _notInfected.toArray(new L2PcInstance[_notInfected.size()]);
	}
}

public static void abortEvent()
{
	_state = EventState.INACTIVE;
	_participants.clear();
	_notInfected.clear();
	_infected.clear();
	Announcements.getInstance().announceToAll("Biohazard: Event aborted.");
}
}
\ No newline at end of file

 

//I think this is the part of code that needs to be modify

public static void infectPlayer(L2PcInstance zombie)

{

if (_state == EventState.INACTIVE)

return;

if (zombie.isTransformed())

zombie.untransform();

zombie.setIsZombie(true);

_notInfected.remove(zombie);

_infected.add(zombie);

TransformationManager.getInstance().transformPlayer(303, zombie);

if (_notInfected.size() == 0)

zombiesWin();

}

Guest
This topic is now closed to further replies.



  • Posts

    • Yeah, for sure. Hardly anyone doesn't use it yet, but those few are gonna give in soon. I'm not judging anyone who uses it – that's not the point. The point is that people do use it. I use it, you use it, we all use it. These days, it's just NORMAL. And it's gonna keep getting more and more normal. But like I said, you still gotta know what you're actually doing.
    • Then that's the problem. Server owners are as bad as they used to be in 2005, 2010 and so on.    This scene has technically mature developers, always money-hungry server owners, but what both these groups lack, is some creativity ... I would never play in a server that needs 7 layers of anti-bot. If it needs 7 layers of anti-bot, it means its a bot friendly server and not something worth playing. 
    • Lineage just has a giga boring quest line / lore and since server owners are not reinventing the wheel, players are forced to F1 F2 spam by server design.
    • Players say: We don't have time, please add auto-farm to the server, after all, farming in L2 is the most repetitive and boring thing, it gives no enjoyment.    Then players say: OMG your server is full of auto-farmers with adrenaline. Use anti-cheat guards.    Excluding the hilarious fact that an auto-farm player is essentiall botting without botting software ...   Noone stops to ask the simple question: If nobody likes farming to that extend that they go as far as building complex bots and ask for server-side bot programs and then for no apparent reason have to build anti-bot guards ... MAYBE the problem is that "farming" is an outdated feature that has to be removed from your servers ?   What you people are building here is software that protects a game feature, nobody likes and nobody wants to use.   Has the mental capacity of server owners and developers fallen so many IQ points the last decade ? One comes back to see the same server setups of a decade ago, with zero innovation, zero creativity and a huge amount of time and resources protecting a game feature nobody wants to even use ... The other dissappointing thing one sees here, is that a lot of GREAT developers who now work full time jobs in corporate, come back here, to bash the work of others because they find their current job tasks not as fullfilling as when they would develope game related code for Lineage 2...   Talking about life choices eh ? 😛
    • Have u seen the message i sent you?
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..