Jump to content

Recommended Posts

Posted

shot00000ua.jpg

width=1024 height=768http://img806.imageshack.us/img806/1614/shot00001b.jpg[/img]

width=1024 height=768http://img412.imageshack.us/img412/4622/shot00002bz.jpg[/img]

width=1024 height=768http://img718.imageshack.us/img718/5016/shot00003y.jpg[/img]

 

You go to do some pvps. If you make enough consecutive pvps without dye / log out, you will get a fight reward (which could be full heal, a powerful area skill cast, etc).

Posted

- 3 Consecutive kills: You get full cp/hp/mp healed

- 4 Consecutive kills: You get Invincible status for 15 secs

- 5 Consecutive kills: You cast a massive stun in a range of 900

- 15 Consecutive kills: You cast a mortal skill in a range of 900

@author BiggBoss

One of the smart ideas from you :)

Thakns for it

Posted

:o !!! Thank you biggboss for sharing with us :)

 

Btw, it is awesome!!!

 

EDIT: Btw, if someone for example take 9 kills his bot and then kill a real player and he active the killstrike? :S.... i know, ofc, impossible to do something about this...

Posted

EDIT: Btw, if someone for example take 9 kills his bot and then kill a real player and he active the killstrike? :S.... i know, ofc, impossible to do something about this...

 

This is the problem.. Maybe you can add some check like :

- not same IP

- not in the same party

- not in clan/alliance

- no low kill (maybe 15 level diff)

 

But players will always find a way to exploit this system and it's really boring.

 

PS : Nice share, thanks you.

Posted

This is the problem.. Maybe you can add some check like :

- not same IP

- not in the same party

- not in clan/alliance

- no low kill (maybe 15 level diff)

 

But players will always find a way to exploit this system and it's really boring.

 

PS : Nice share, thanks you.

 

True, true.. But hasnt l2j already a good protection against that? This AntiFeed instancemanager I mean..

Posted

Don't know. I'm using L2JFree but I will take a look about that.

 

Heh.. me too. :P

 

They synced the appropriate instancemanager a while ago too.

 

/*
* 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.instancemanager;

import java.util.Map;

import javolution.util.FastMap;

import com.l2jfree.Config;
import com.l2jfree.gameserver.model.L2Object;
import com.l2jfree.gameserver.model.actor.L2Character;
import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfree.gameserver.network.L2GameClient;

public class AntiFeedManager
{
private final Map<Integer, Long> _lastDeathTimes;

public static final AntiFeedManager getInstance()
{
	return SingletonHolder._instance;
}

private AntiFeedManager()
{
	_lastDeathTimes = new FastMap<Integer, Long>().setShared(true);
}

/**
 * Set time of the last player's death to current
 * 
 * @param objectId Player's objectId
 */
public final void setLastDeathTime(int objectId)
{
	_lastDeathTimes.put(objectId, System.currentTimeMillis());
}

/**
 * Check if current kill should be counted as non-feeded.
 * 
 * @param attacker Attacker character
 * @param target Target character
 * @return True if kill is non-feeded.
 */
public final boolean check(L2Character attacker, L2Character target)
{
	if (!Config.ANTIFEED_ENABLE)
		return true;

	final L2PcInstance targetPlayer = L2Object.getActingPlayer(target);
	final L2PcInstance attackerPlayer = L2Object.getActingPlayer(attacker);

	if (targetPlayer == null || attackerPlayer == null)
		return true;

	if (Config.ANTIFEED_INTERVAL > 0)
	{
		final Long lastDeathTime = _lastDeathTimes.get(targetPlayer.getObjectId());

		if (lastDeathTime != null && System.currentTimeMillis() - lastDeathTime.longValue() < Config.ANTIFEED_INTERVAL)
			return false;
	}

	if (Config.ANTIFEED_DUALBOX)
	{
		final L2GameClient targetClient = targetPlayer.getClient();
		final L2GameClient attackerClient = attackerPlayer.getClient();

		// unable to check ip address
		if (targetClient == null || attackerClient == null)
		{
			if (Config.ANTIFEED_DISCONNECTED_AS_DUALBOX)
				return false;
		}
		else if (targetClient.getInetAddress().equals(attackerClient.getInetAddress()))
		{
			return false;
		}
	}

	return true;
}

/**
 * Clears all timestamps
 */
public final void clear()
{
	_lastDeathTimes.clear();
}

@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
	protected static final AntiFeedManager _instance = new AntiFeedManager();
}
}

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