/**
* @author Mobius (based on Tenkai pvpzone)
*/
public class FindPvP implements IBypassHandler
{
private static final String[] COMMANDS =
{
"FindPvP"
};
@Override
public boolean useBypass(String command, L2PcInstance activeChar, L2Character target)
{
if (!Config.ENABLE_FIND_PVP || !target.isNpc())
{
return false;
}
L2PcInstance mostPvP = null;
int max = -1;
for (L2PcInstance player : L2World.getInstance().getPlayers())
{
if ((player == null) //
|| (player.getPvpFlag() == 0) //
|| (player.getInstanceId() != 0) //
|| player.isGM() //
|| player.isInsideZone(ZoneId.PEACE) //
|| player.isInsideZone(ZoneId.SIEGE) //
|| player.isInsideZone(ZoneId.NO_SUMMON_FRIEND))
{
continue;
}
int count = 0;
for (L2PcInstance pl : L2World.getInstance().getVisibleObjects(player, L2PcInstance.class))
{
if ((pl.getPvpFlag() > 0) && !pl.isInsideZone(ZoneId.PEACE))
{
count++;
}
}
if (count > max)
{
max = count;
mostPvP = player;
}
}
if (mostPvP != null)
{
// Check if the player's clan is already outnumbering the PvP
if (activeChar.getClan() != null)
{
Map<Integer, Integer> clanNumbers = new HashMap<>();
int allyId = activeChar.getAllyId();
if (allyId == 0)
{
allyId = activeChar.getClanId();
}
clanNumbers.put(allyId, 1);
for (L2PcInstance known : L2World.getInstance().getVisibleObjects(mostPvP, L2PcInstance.class))
{
int knownAllyId = known.getAllyId();
if (knownAllyId == 0)
{
knownAllyId = known.getClanId();
}
if (knownAllyId != 0)
{
if (clanNumbers.containsKey(knownAllyId))
{
clanNumbers.put(knownAllyId, clanNumbers.get(knownAllyId) + 1);
}
else
{
clanNumbers.put(knownAllyId, 1);
}
}
}
int biggestAllyId = 0;
int biggestAmount = 2;
for (Entry<Integer, Integer> clanNumber : clanNumbers.entrySet())
{
if (clanNumber.getValue() > biggestAmount)
{
biggestAllyId = clanNumber.getKey();
biggestAmount = clanNumber.getValue();
}
}
if (biggestAllyId == allyId)
{
activeChar.sendPacket(new CreatureSay(0, ChatType.WHISPER, target.getName(), "Sorry, your clan/ally is outnumbering the place already so you can't move there."));
return true;
}
}
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
activeChar.setSpawnProtection(true);
if (!activeChar.isGM())
{
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
activeChar.startPvPFlag();
}
}
else
{
activeChar.sendPacket(new CreatureSay(0, ChatType.WHISPER, target.getName(), "Sorry, I can't find anyone in flag status right now."));
}
return false;
}
@Override
public String[] getBypassList()
{
return COMMANDS;
}
}
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.
‼️Today I want to introduce you to a list of business accounts‼️
✔Ready accounts✔
UK 🇬🇧
👛Tide (With merchant)
👛Tide (Without merchant)
👛Zempler
👛Mypos + Wise (same name)
👛Gosolo (with merchant)
👛Wittix
👛Stripe
👛Paypal
USA 🇺🇸
👛Mercury (LLC)
👛Relay (LLC)
👛Bluevine (LLC)
Europe 🇪🇺
👛Finom (Fr iban) + Kraken
👛Qonto + Mollie (With merchant)
👛Payset
👛Vivid
👛Blackcatcard
👛Finom + Bitget
👛Airwallex (With merchant)
👛Viva Wallet
👛Sokin
👛Mistertango
👛Revolut
👛Wittix
👛Wise
👛Stripe
👛Wallester
✔Personal and business accounts of real and neobanks, exchanges, e-sim, the ability to rent a drop and much more awaits their owners.
Congratulations,
You know how to use wayback machine.
Here you go guys.
DISCLAIMER: It's not virus tested so download with your own responsibility.
https://www.mediafire.com/file/8jyynutlq5jwtlo/EuroWorld+Patch+(1).rar/file
🎮 Websites & Webapps for Your Server
Hey! I’m the guy behind gh0t.studio. I build websites, dashboards, and tools that actually connect with your game. With more than 40 finished projects and 500k+ page views, I know what private servers need to grow and keep their players engaged.
I’ve worked on:
🌐 Server sites & landing pages (like L2Jade, Eteral Conquest)
📊 Event dashboards & rankings (like L2Jade Tournaments or TopGameRankings)
📖 Wikis (like Wiki Lineage)
🎨 UI/Graphic design for in-game elements
If you want something different — not just a CTRL+C / CTRL+V CMS template — I’ve got the solution for you. 🚀
📩 Contact me at gh0t.studioarg@gmail.com or visit gh0tstudio.com
👉 If you’re running a server and need someone who gets it, let’s talk.
Question
lazzytr
I use l2fandc files. I need a java code, I've been searching a lot and waiting for help.
What I want to do is to teleport to the players doing pvp. So it's like finding the flag player.
I found some files but they did not fit my system. I'm waiting for help..
EXAMPLE:
package handlers.bypasshandlers;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.l2jmobius.Config;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.handler.IBypassHandler;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.serverpackets.CreatureSay;
/**
* @author Mobius (based on Tenkai pvpzone)
*/
public class FindPvP implements IBypassHandler
{
private static final String[] COMMANDS =
{
"FindPvP"
};
@Override
public boolean useBypass(String command, L2PcInstance activeChar, L2Character target)
{
if (!Config.ENABLE_FIND_PVP || !target.isNpc())
{
return false;
}
L2PcInstance mostPvP = null;
int max = -1;
for (L2PcInstance player : L2World.getInstance().getPlayers())
{
if ((player == null) //
|| (player.getPvpFlag() == 0) //
|| (player.getInstanceId() != 0) //
|| player.isGM() //
|| player.isInsideZone(ZoneId.PEACE) //
|| player.isInsideZone(ZoneId.SIEGE) //
|| player.isInsideZone(ZoneId.NO_SUMMON_FRIEND))
{
continue;
}
int count = 0;
for (L2PcInstance pl : L2World.getInstance().getVisibleObjects(player, L2PcInstance.class))
{
if ((pl.getPvpFlag() > 0) && !pl.isInsideZone(ZoneId.PEACE))
{
count++;
}
}
if (count > max)
{
max = count;
mostPvP = player;
}
}
if (mostPvP != null)
{
// Check if the player's clan is already outnumbering the PvP
if (activeChar.getClan() != null)
{
Map<Integer, Integer> clanNumbers = new HashMap<>();
int allyId = activeChar.getAllyId();
if (allyId == 0)
{
allyId = activeChar.getClanId();
}
clanNumbers.put(allyId, 1);
for (L2PcInstance known : L2World.getInstance().getVisibleObjects(mostPvP, L2PcInstance.class))
{
int knownAllyId = known.getAllyId();
if (knownAllyId == 0)
{
knownAllyId = known.getClanId();
}
if (knownAllyId != 0)
{
if (clanNumbers.containsKey(knownAllyId))
{
clanNumbers.put(knownAllyId, clanNumbers.get(knownAllyId) + 1);
}
else
{
clanNumbers.put(knownAllyId, 1);
}
}
}
int biggestAllyId = 0;
int biggestAmount = 2;
for (Entry<Integer, Integer> clanNumber : clanNumbers.entrySet())
{
if (clanNumber.getValue() > biggestAmount)
{
biggestAllyId = clanNumber.getKey();
biggestAmount = clanNumber.getValue();
}
}
if (biggestAllyId == allyId)
{
activeChar.sendPacket(new CreatureSay(0, ChatType.WHISPER, target.getName(), "Sorry, your clan/ally is outnumbering the place already so you can't move there."));
return true;
}
}
activeChar.teleToLocation((mostPvP.getX() + Rnd.get(300)) - 150, (mostPvP.getY() + Rnd.get(300)) - 150, mostPvP.getZ());
activeChar.setSpawnProtection(true);
if (!activeChar.isGM())
{
activeChar.setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
activeChar.startPvPFlag();
}
}
else
{
activeChar.sendPacket(new CreatureSay(0, ChatType.WHISPER, target.getName(), "Sorry, I can't find anyone in flag status right now."));
}
return false;
}
@Override
public String[] getBypassList()
{
return COMMANDS;
}
}
2 answers to this question
Recommended Posts
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.