Jump to content

[Share] Captcha Antibot System [Updated 17.6.2011, Version 2] [Please LOCK IT .]


Recommended Posts

Posted

still didn't answer my post about dreadnought.

 

http://maxcheaters.com/forum/index.php?topic=207620.msg1779866#msg1779866

 

Dreadnought classes are complaining because the captcha pop up too much, I have it set to every 50 mobs.

 

SIMPLE, add "==" instead of ">=" to make it popup 1 time on exacly 50 kills.

Posted

Pipiou21 I have an error on gameserver pop up all the times and I think is being caused by the Antibot system.

The error is on L2attackable.java and it is about summon, I guess when player use summon to kill mobs is causing some type of error. I have to wait to post the error in here becaujse I close the gameserver by mistake.

 

Failed executing HitTask.
java.lang.ClassCastException: com.l2jserver.gameserver.model.actor.instance.L2Su
mmonInstance cannot be cast to com.l2jserver.gameserver.model.actor.instance.L2P
cInstance
       at com.l2jserver.gameserver.model.actor.L2Attackable.doDie(L2Attackable.
java:643)
       at com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance.doDie
(L2MonsterInstance.java:146)
       at com.l2jserver.gameserver.model.actor.status.CharStatus.reduceHp(CharS
tatus.java:185)
       at com.l2jserver.gameserver.model.actor.status.NpcStatus.reduceHp(NpcSta
tus.java:51)
       at com.l2jserver.gameserver.model.actor.status.AttackableStatus.reduceHp
(AttackableStatus.java:49)
       at com.l2jserver.gameserver.model.actor.L2Character.reduceCurrentHp(L2Ch
aracter.java:6851)
       at com.l2jserver.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2A
ttackable.java:519)
       at com.l2jserver.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2A
ttackable.java:461)
       at com.l2jserver.gameserver.model.actor.L2Character.onHitTimer(L2Charact
er.java:5175)
       at com.l2jserver.gameserver.model.actor.L2Character$HitTask.run(L2Charac
ter.java:2604)
       at com.l2jserver.gameserver.ThreadPoolManager$RunnableWrapper.run(Thread
PoolManager.java:86)
       at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
       at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
       at java.util.concurrent.FutureTask.run(Unknown Source)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(Unknown Source)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
       at java.lang.Thread.run(Unknown Source)

 

Here is  the whole error.

 

It happen when a class like Spectral Master or any other that uses a summon to kill mobs, If the summon kill the mob it will not get the captcha window and the error above will pop up on the gameserver window.

 

 

This is the part of the code giving the error

	public boolean doDie(L2Character killer)
{
	// Kill the L2NpcInstance (the corpse disappeared after 7 seconds)
	if (!super.doDie(killer))
		return false;

	((L2PcInstance) killer).setKills(((L2PcInstance) killer).getKills() + 1);

	if(((L2PcInstance) killer).getKills() == 50 || ((L2PcInstance) killer).getKills() == 0)
	{
	//ANTIBOT
	//Random image file name
	int imgId = IdFactory.getInstance().getNextId();
	//Convertion from .png to .dds, and crest packed send
	try
	{
		File captcha = new File("data/captcha/captcha.png");    
		ImageIO.write(generateCaptcha(), "png", captcha);
		PledgeCrest packet = new PledgeCrest(imgId, DDSConverter.convertToDDS(captcha).array()); //Convertion to DDS where is antybot
		killer.sendPacket(packet);
	}
	catch (Exception e)
	{    
		_log.warning(e.getMessage());
	}
	//Paralyze, abnormal effect, invul, html with captcha output and start of the 1 min counter
    killer.startAbnormalEffect(AbnormalEffect.REAL_TARGET);
	killer.setIsParalyzed(true);
	killer.setIsInvul(true);
	adminReply.setHtml("<html><title>Captcha Antibot System</title><body><center>Enter the 5-digits code below and click Confirm.<br1>You will be invulnerable until you enter<br1>the code so no one will kill you!<br><img src=\"Crest.crest_" + Config.SERVER_ID + "_" + imgId + "\" width=256 height=64><br><font color=\"888888\">(There are only english uppercase letters.)</font><br><edit var=\"antibot\" width=110><br><button value=\"Confirm\" action=\"bypass -h voice .antibot $antibot\" width=80 height=26 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\"><br>You have 60 seconds to answer or you<br1>will get jailed for 6 Hours.<br1>You will also get jailed for 6 Hours.<br1>if you type it wrong.</center></body></html>");
	killer.sendPacket(adminReply);
	((L2PcInstance) killer).setCode(finalString);
	ThreadPoolManager.getInstance().scheduleGeneral(new CaptchaTimer((L2PcInstance)killer), 60000);//60sec
	((L2PcInstance) killer).setCodeRight(false);
	     finalString.replace(0, 5, "");
	//ANTIBOT
	}

	// Notify the Quest Engine of the L2Attackable death if necessary
	try
	{
		L2PcInstance player = killer.getActingPlayer();			
		if (player != null)
		{
			if (getTemplate().getEventQuests(Quest.QuestEventType.ON_KILL) != null)
				for (Quest quest: getTemplate().getEventQuests(Quest.QuestEventType.ON_KILL))
					ThreadPoolManager.getInstance().scheduleEffect(new OnKillNotifyTask(this, quest, player, killer instanceof L2Summon), _onKillDelay);
		}
	}
	catch (Exception e) { _log.log(Level.SEVERE, "", e); }
	return true;
}

 

and in my case line 643 is this one

		((L2PcInstance) killer).setKills(((L2PcInstance) killer).getKills() + 1);

 

 

Edited on 06/13/11

 

I also find another bug on fortress siege that I think is caused by the changes in L2Attackacle.java, here is the error:

 

Error unspawning siege guards for fort Hive:com.l2jserver.gameserver.model.actor
.instance.L2DefenderInstance cannot be cast to com.l2jserver.gameserver.model.ac
tor.instance.L2PcInstance
java.lang.ClassCastException: com.l2jserver.gameserver.model.actor.instance.L2De
fenderInstance cannot be cast to com.l2jserver.gameserver.model.actor.instance.L
2PcInstance
        at com.l2jserver.gameserver.model.actor.L2Attackable.doDie(L2Attackable.
java:643)
        at com.l2jserver.gameserver.instancemanager.FortSiegeGuardManager.unspaw
nSiegeGuard(FortSiegeGuardManager.java:88)
        at com.l2jserver.gameserver.model.entity.FortSiege.endSiege(FortSiege.ja
va:252)
        at com.l2jserver.gameserver.model.entity.Fort.setOwner(Fort.java:464)
        at com.l2jserver.gameserver.model.entity.Fort.engrave(Fort.java:316)
        at com.l2jserver.gameserver.model.entity.Fort$endFortressSiege.run(Fort.
java:1099)
        at com.l2jserver.gameserver.ThreadPoolManager$RunnableWrapper.run(Thread
PoolManager.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Siege of Hive fort finished.

 

It is messing the unspawning of siege guards after the siege and they spawn new ones on top of the old ones.

 

Posted

Pipiou21 I have an error on gameserver pop up all the times and I think is being caused by the Antibot system.

The error is on L2attackable.java and it is about summon, I guess when player use summon to kill mobs is causing some type of error. I have to wait to post the error in here becaujse I close the gameserver by mistake.

 

Failed executing HitTask.
java.lang.ClassCastException: com.l2jserver.gameserver.model.actor.instance.L2Su
mmonInstance cannot be cast to com.l2jserver.gameserver.model.actor.instance.L2P
cInstance
        at com.l2jserver.gameserver.model.actor.L2Attackable.doDie(L2Attackable.
java:643)
        at com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance.doDie
(L2MonsterInstance.java:146)
        at com.l2jserver.gameserver.model.actor.status.CharStatus.reduceHp(CharS
tatus.java:185)
        at com.l2jserver.gameserver.model.actor.status.NpcStatus.reduceHp(NpcSta
tus.java:51)
        at com.l2jserver.gameserver.model.actor.status.AttackableStatus.reduceHp
(AttackableStatus.java:49)
        at com.l2jserver.gameserver.model.actor.L2Character.reduceCurrentHp(L2Ch
aracter.java:6851)
        at com.l2jserver.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2A
ttackable.java:519)
        at com.l2jserver.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2A
ttackable.java:461)
        at com.l2jserver.gameserver.model.actor.L2Character.onHitTimer(L2Charact
er.java:5175)
        at com.l2jserver.gameserver.model.actor.L2Character$HitTask.run(L2Charac
ter.java:2604)
        at com.l2jserver.gameserver.ThreadPoolManager$RunnableWrapper.run(Thread
PoolManager.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

 

Here is  the whole error.

 

It happen when a class like Spectral Master or any other that uses a summon to kill mobs, If the summon kill the mob it will not get the captcha window and the error above will pop up on the gameserver window.

 

 

This is the part of the code giving the error

	public boolean doDie(L2Character killer)
{
	// Kill the L2NpcInstance (the corpse disappeared after 7 seconds)
	if (!super.doDie(killer))
		return false;

	((L2PcInstance) killer).setKills(((L2PcInstance) killer).getKills() + 1);

	if(((L2PcInstance) killer).getKills() == 50 || ((L2PcInstance) killer).getKills() == 0)
	{
	//ANTIBOT
	//Random image file name
	int imgId = IdFactory.getInstance().getNextId();
	//Convertion from .png to .dds, and crest packed send
	try
	{
		File captcha = new File("data/captcha/captcha.png");    
		ImageIO.write(generateCaptcha(), "png", captcha);
		PledgeCrest packet = new PledgeCrest(imgId, DDSConverter.convertToDDS(captcha).array()); //Convertion to DDS where is antybot
		killer.sendPacket(packet);
	}
	catch (Exception e)
	{    
		_log.warning(e.getMessage());
	}
	//Paralyze, abnormal effect, invul, html with captcha output and start of the 1 min counter
    killer.startAbnormalEffect(AbnormalEffect.REAL_TARGET);
	killer.setIsParalyzed(true);
	killer.setIsInvul(true);
	adminReply.setHtml("<html><title>Captcha Antibot System</title><body><center>Enter the 5-digits code below and click Confirm.<br1>You will be invulnerable until you enter<br1>the code so no one will kill you!<br><img src=\"Crest.crest_" + Config.SERVER_ID + "_" + imgId + "\" width=256 height=64><br><font color=\"888888\">(There are only english uppercase letters.)</font><br><edit var=\"antibot\" width=110><br><button value=\"Confirm\" action=\"bypass -h voice .antibot $antibot\" width=80 height=26 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\"><br>You have 60 seconds to answer or you<br1>will get jailed for 6 Hours.<br1>You will also get jailed for 6 Hours.<br1>if you type it wrong.</center></body></html>");
	killer.sendPacket(adminReply);
	((L2PcInstance) killer).setCode(finalString);
	ThreadPoolManager.getInstance().scheduleGeneral(new CaptchaTimer((L2PcInstance)killer), 60000);//60sec
	((L2PcInstance) killer).setCodeRight(false);
	     finalString.replace(0, 5, "");
	//ANTIBOT
	}

	// Notify the Quest Engine of the L2Attackable death if necessary
	try
	{
		L2PcInstance player = killer.getActingPlayer();			
		if (player != null)
		{
			if (getTemplate().getEventQuests(Quest.QuestEventType.ON_KILL) != null)
				for (Quest quest: getTemplate().getEventQuests(Quest.QuestEventType.ON_KILL))
					ThreadPoolManager.getInstance().scheduleEffect(new OnKillNotifyTask(this, quest, player, killer instanceof L2Summon), _onKillDelay);
		}
	}
	catch (Exception e) { _log.log(Level.SEVERE, "", e); }
	return true;
}

 

and in my case line 643 is this one

		((L2PcInstance) killer).setKills(((L2PcInstance) killer).getKills() + 1);

 

 

Edited on 06/13/11

 

I also find another bug on fortress siege that I think is caused by the changes in L2Attackacle.java, here is the error:

 

Error unspawning siege guards for fort Hive:com.l2jserver.gameserver.model.actor
.instance.L2DefenderInstance cannot be cast to com.l2jserver.gameserver.model.ac
tor.instance.L2PcInstance
java.lang.ClassCastException: com.l2jserver.gameserver.model.actor.instance.L2De
fenderInstance cannot be cast to com.l2jserver.gameserver.model.actor.instance.L
2PcInstance
        at com.l2jserver.gameserver.model.actor.L2Attackable.doDie(L2Attackable.
java:643)
        at com.l2jserver.gameserver.instancemanager.FortSiegeGuardManager.unspaw
nSiegeGuard(FortSiegeGuardManager.java:88)
        at com.l2jserver.gameserver.model.entity.FortSiege.endSiege(FortSiege.ja
va:252)
        at com.l2jserver.gameserver.model.entity.Fort.setOwner(Fort.java:464)
        at com.l2jserver.gameserver.model.entity.Fort.engrave(Fort.java:316)
        at com.l2jserver.gameserver.model.entity.Fort$endFortressSiege.run(Fort.
java:1099)
        at com.l2jserver.gameserver.ThreadPoolManager$RunnableWrapper.run(Thread
PoolManager.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Siege of Hive fort finished.

 

It is messing the unspawning of siege guards after the siege and they spawn new ones on top of the old ones.

 

 

I like the way to have explained it... by the way.... This is going to help if im right

 

Before the "event" of antibot, i mean bellow "//ANTIBOT" lane add -->

		if (killer instanceof L2PcInstance)
	{

and close it with -->

 } 

under the second "//ANTIBOT" lane...

 

PS: This is going to enable antibot only on Players, and not on guards and shits, if you want to enable it also on summons, you will have to add "else if (killer instanceof L2SummonInstance)" and make it sending all this //ANTIBOT to the owner of the pet using a method like it uses the beast spiritshot when it sends the message that the spiritshot is enabled to the owner of the pet and not to the pet X)! Good luck, if you dont find the way, i'll do it, by the way, im going to do it someday coz its smthing like bug that they are going to make the bot farming with the pet as last hit instead of hitting with the character  :)

Posted

thank you so much.

It will be nice if you do the code to enable the antibot to the summons also.

I will try the fix you post and will test it. Will let you know if it worked.

Thanks again.

 

 

 

EDIT: Didn't work still have the same problem.

Posted

thank you so much.

It will be nice if you do the code to enable the antibot to the summons also.

I will try the fix you post and will test it. Will let you know if it worked.

Thanks again.

 

 

 

EDIT: Didn't work still have the same problem.

 

Let me try check to find a possible fix.

 

Added the "Version 2" that i was using, please use it instead of that old, and tell me if there are still problems.... (I can't say that are not going to still exists, anyway, good luck.)

Posted

look on first page all files where is v2 ^^

 

Antibot.java change the old  package

 

to this package handlers.voicedcommandhandlers;

 

and hope it works

 

Ok, thanks :), well, you can read what is updated and whats not Legend.

Posted

ok also for me it dont pop up i changed the 50 to Config.CaptchaCheck

 

and did it in config to 5 so donno what happend

 

errormq.png

 

this error i get everytime if i install in l2attackable or l2npc.java

Guest
This topic is now closed to further replies.



  • Posts

    • leave only Npcpos the gremlins (for testing).
    • 🚀 New numbers for GMAIL are now available!   We’ve added fresh, stable numbers  perfect for activations and quick code delivery. Join in while they’re still available 👇 Category: GMAIL   Website: https://vibe-sms.net/ 📱 Telegram channel: https://t.me/vibe_sms
    • using Guytis pack....but missed lin_LoadHWIDS & lin_PvpEventLoadEvent sql procedures..maybe any1 know how to fixed it? rly thx...
    • This post originally appeared on MmoGah. Welcome to Borderlands 4, the latest installment in Gearbox Software's beloved looter-shooter franchise. Set in the sprawling world of Kairos, this game introduces new mechanics, characters, and a vast open-world experience. Whether you're a series veteran or a newcomer, this guide will walk you through everything you need to know to get started and succeed.       Choosing Your Vault Hunter Borderlands 4 offers four unique Vault Hunters, each with distinct abilities and playstyles: Amon: A close-quarters tank who excels with shotguns and melee attacks. Ideal for aggressive players who like to be in the thick of battle. Vex: A stealthy clone master who can duplicate herself to confuse enemies and amplify damage. Great for tactical players. Rafa: A long-range specialist with sniper skills and elemental traps. Perfect for precision shooters. Harlowe: A support-oriented character with healing and crowd-control abilities. Best for team players or solo survivalists. Tip: Read each character's affinity and skill tree before committing. You can respec later, but starting with a character that matches your playstyle makes the early game smoother.   What to Do First After completing the prologue, you'll land in Kairos with your first mission: Recruitment Drive. Here's what you should prioritize: Complete "Down and Outbound" This unlocks the Digi-Runner, your summonable vehicle. It's essential for fast travel and early combat support. Secure a Safehouse Safehouses offer fast travel, contracts, and gear storage. Claim one early to make exploration easier. Upgrade Your Backpack Inventory space is limited at first. Upgrading your backpack lets you carry more loot and ammo. Unlock the Glidepack This mobility tool allows you to traverse vertical terrain and reach hidden areas. Return Lost Capsules These collectibles offer XP and gear. They're scattered across Kairos and are worth hunting down.   Navigating Kairos Borderlands 4 removes the traditional minimap. Instead, you'll rely on: ECHO-4 Drone: Your personal navigator. It highlights paths, climbable walls, and grapple points. Radar Display: Enable this in the settings (Gameplay → Toggle Radar Display) for better orientation. Custom Waypoints: Use these to mark objectives or loot spots on your map.   Combat Tips Combat in Borderlands 4 is fast, chaotic, and rewarding. Here's how to stay alive and dominate: Use Cover and Movement Kairos is filled with vertical terrain. Use walls, ledges, and grapple points to dodge enemy fire. Elemental Matchups Matter Match your weapon's element to enemy weaknesses: Fire: Best against flesh Shock: Effective on shields Cryo: Slows and freezes Corrosive: Destroys armor Test Action Skills Each character has three skill trees with unique capstones. Don't hesitate to respec if a skill doesn't suit you—Borderlands 4 money is easy to earn. Use Vehicle Weapons The Digi-Runner comes equipped with basic weapons. Use it to soften up enemies before engaging on foot.   Leveling Up Efficiently XP is crucial for unlocking skills and gear. Here are the best ways to level up: Main Missions: Progress the story to unlock key tools and areas. Side Missions (Contracts): These are found in Safehouses, which offer quick XP and gear. Farm Bosses: Some bosses drop legendary loot and give decent XP. Replay Vault Missions: These are harder but offer large XP rewards. Prospects Drill Site: A top-tier farming location with high XP and legendary gear chances.   Looting and Gear Loot is the heart of Borderlands. Here's how to maximize your haul: Color Rarity Guide: White: Common Green: Uncommon Blue: Rare Purple: Epic Orange: Legendary Don't Just Chase DPS Look at weapon stats like reload speed, magazine size, and elemental effects. A lower-DPS gun with better utility might outperform a high-DPS one. Legendary Drops Bosses and elite enemies have a chance to drop legendary weapons. Keep farming if you're after something specific. Black Market Vendor Hidden in Kairos, this vendor sells rare gear. Check back often for rotating stock.   Advanced Tips Once you've got the basics down, here are some pro-level strategies: Drive Recklessly Vehicles explode easily, but you can summon a new one instantly. Use them aggressively. Fishing Minigame Yes, Borderlands 4 has fishing! Look for bubbling water spots. Fish can be traded for gear or used in crafting. Accessibility Settings Reduce screen shake and head-bob if you're prone to motion sickness. It makes long sessions more comfortable. Explore After Getting Vehicle The map is massive. Wait until you have the Digi-Runner before venturing far from mission hubs. Collect Vault Symbols These unlock lore, XP, and sometimes gear. They're hidden throughout the world.   Final Thoughts Borderlands 4 is a wild ride full of loot, laughs, and laser fire. As a beginner, focus on: Picking the right character Unlocking your vehicle early Using ECHO-4 for navigation Farming XP through missions and bosses Matching elemental weapons to enemies Respeccing your skills to suit your playstyle With these tips, you'll be well on your way to becoming a legendary Vault Hunter in Kairos.
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock