Jump to content

Recommended Posts

Posted (edited)

Copy from l2jacis to l2jfrozen work 100%

 

http://rgho.st/6cDtBxqKH Images! 

Index: head-src/com/l2jfrozen/gameserver/custom/Antibot.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/custom/Antibot.java	(revision 0)
+++ head-src/com/l2jfrozen/gameserver/custom/Antibot.java	(revision 0)
@@ -0,0 +1,134 @@
+package com.l2jfrozen.gameserver.custom;
+
+import java.io.File;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jfrozen.gameserver.network.serverpackets.PledgeCrest;
+import com.l2jfrozen.util.DDSConverter;
+import com.l2jfrozen.util.random.Rnd;
+
+
+public class Antibot {
+
+	   public static void showHtmlWindow(L2PcInstance activeChar)
+	   {
+	     int rnd = Rnd.get(1,4);
+		generateLogo(activeChar, 50011);
+		generateLogo(activeChar, 50012);
+		generateLogo(activeChar, 50013);
+		generateLogo(activeChar, 50014);
+	   	
+	   	NpcHtmlMessage nhm = new NpcHtmlMessage(5);
+	   	StringBuilder tb = new StringBuilder("");
+	   	
+	   	tb.append("<html><head><title>Antibot</title></head><body>");
+	   	tb.append("<center>");
+	   	tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">");
+	   	tb.append("<tr>");
+	   	tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
+	   	tb.append("<td valign=\"top\"><font color=\"FF6600\">Antibot</font>");
+	   	if(rnd == 1)
+	   	tb.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, we just wanna make sure you are not a bot.<font color=\"FF0000\"> CLICK THE ELF</font><br1></td>");
+	   	else if(rnd == 2)
+        tb.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, we just wanna make sure you are not a bot.<font color=\"FF0000\"> CLICK THE HUMAN</font><br1></td>");
+	   	else if(rnd == 3)
+	    tb.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, we just wanna make sure you are not a bot.<font color=\"FF0000\"> CLICK THE DARK ELF</font><br1></td>");
+	   	else if(rnd == 4)
+	    tb.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, we just wanna make sure you are not a bot.<font color=\"FF0000\"> CLICK THE LINEAGE ][</font><br1></td>");
+		   	
+	   	tb.append("</tr>");
+	   	tb.append("</table>");
+	   	tb.append("<table width=\"256\" cellpadding=\"5\" bgcolor=\"000000\">");
+	   	switch(rnd)
+	   	{
+	   	    case 1:
+	   		   	tb.append("<tr>");
+		     	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_correct\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\"></td>");
+		    	tb.append("</tr>");
+		    	tb.append("<tr>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\"></td>");
+		        tb.append("</tr>");
+	   		break;
+	   	    case 2:
+	   		   	tb.append("<tr>");
+		     	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_correct\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\"></td>");
+		    	tb.append("</tr>");
+		    	tb.append("<tr>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\"></td>");
+		        tb.append("</tr>");
+	   	    	break;
+	   	    case 3:
+	   		   	tb.append("<tr>");
+		     	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\"></td>");
+		    	tb.append("</tr>");
+		    	tb.append("<tr>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_correct\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\"></td>");
+		        tb.append("</tr>");
+	   	    	break;
+	   	    case 4:
+	   		   	tb.append("<tr>");
+		     	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50011 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50012 + "\"></td>");
+		    	tb.append("</tr>");
+		    	tb.append("<tr>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_correct\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50013 + "\"></td>");
+		    	tb.append("<td width=\"128\" valign=\"top\" align=\"center\"><button action=\"bypass -h antibot_wrong\" width=128 height=128 back=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\" fore=\"Crest.crest_" + Config.SERVER_ID + "_" + 50014 + "\"></td>");
+		        tb.append("</tr>");
+	   	    	break;
+	   	    	
+	   	}
+	   	tb.append("</table>");
+	   	
+		tb.append("</center>");
+	   	tb.append("</body></html>");
+	   	
+	   	nhm.setHtml(tb.toString());
+	   	activeChar.sendPacket(nhm);
+	}
+	   
+	public static void generateLogo(L2PcInstance activeChar,int imgId)
+	{
+	       try
+	       {
+	     	  if(imgId == 50011)
+	     	  {
+	               File captcha = new File("data/images/elf.png");    
+	               PledgeCrest packet = new PledgeCrest(imgId, DDSConverter.convertToDDS(captcha).array());
+	               activeChar.sendPacket(packet);
+	     	  }
+	     	  
+	     	  if(imgId == 50012)
+	     	  {
+	               File captcha = new File("data/images/Lineage2.png");    
+	               PledgeCrest packet = new PledgeCrest(imgId, DDSConverter.convertToDDS(captcha).array());
+	               activeChar.sendPacket(packet);
+	     	  }
+	     	  
+	     	  if(imgId == 50013)
+	     	  {
+	               File captcha = new File("data/images/Lineage3.png");    
+	               PledgeCrest packet = new PledgeCrest(imgId, DDSConverter.convertToDDS(captcha).array());
+	               activeChar.sendPacket(packet);
+	     	  }
+	     	  
+	     	  if(imgId == 50014)
+	     	  {
+	               File captcha = new File("data/images/Lineage4.png");    
+	               PledgeCrest packet = new PledgeCrest(imgId, DDSConverter.convertToDDS(captcha).array());
+	                  activeChar.sendPacket(packet);
+	     	  }
+	     	  
+	       }
+	       catch (Exception e)
+	       {}	
+	}
+	
+}
===========================================================================================


### Eclipse Workspace Patch 1.0
#P gevorakos2015
Index: head-src/com/l2jfrozen/gameserver/model/actor/instance/L2NpcInstance.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/instance/L2NpcInstance.java	(revision 1117)
+++ head-src/com/l2jfrozen/gameserver/model/actor/instance/L2NpcInstance.java	(working copy)
@@ -23,6 +23,7 @@
 import static com.l2jfrozen.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE;
 
 import java.text.DateFormat;
 import java.util.List;
 
 import javolution.text.TextBuilder;
@@ -30,6 +31,10 @@
 
 import org.omg.PortableServer.POAManagerPackage.State;
 
+import com.l2jfrozen.gameserver.custom.Antibot;
 import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.ai.CtrlIntention;
 import com.l2jfrozen.gameserver.cache.HtmCache;
@@ -59,6 +64,7 @@
 import com.l2jfrozen.gameserver.model.actor.knownlist.NpcKnownList;
 import com.l2jfrozen.gameserver.model.actor.stat.NpcStat;
 import com.l2jfrozen.gameserver.model.actor.status.NpcStatus;
 import com.l2jfrozen.gameserver.model.entity.event.CTF;
 import com.l2jfrozen.gameserver.model.entity.event.DM;
 import com.l2jfrozen.gameserver.model.entity.event.L2Event;
@@ -147,6 +153,8 @@
 	/** The _is in town. */
 	private boolean _isInTown = false;
 	
+	private final int[] ANTIMOBS = Config.ALT_CAPTCHA_ANTIBOT_LIST;
+	
 	/**
 	 * Kill the L2NpcInstance (the corpse disappeared after 7 seconds).<BR>
 	 * <BR>
@@ -3053,8 +3084,69 @@
 	 * @return true, if successful
 	 */
 	@Override
	public boolean doDie(L2Character killer)
 	{		             
+	 //ANTIBOT - Start
+	 if(Config.SHOW_CAPTCHA)
+	 {	
+	  if(contains(ANTIMOBS, getNpcId()) && (killer instanceof L2PcInstance) || (killer instanceof L2PetInstance) || (killer instanceof L2SummonInstance))
+	  {
+				//+1 to mobcounter
+				player.setAntibotKills(player.getAntibotKills() + 1);
+				            
+				
+				if(player.getClassId() == ClassId.dreadnought && player.getAntibotKills() == 320)
+				{
+					player._antibotCorrect = false;
+					player._antibotRunning = true;
+					Antibot.showHtmlWindow(player);
+				    player.sendMessage("You have 10 seconds to click on the dog or you will get back in town for botting!");
+					ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+					{
+						@Override
+		                public void run()
+		                {
+							if(!player._antibotCorrect)
+							{
+								player.sendMessage("You failed clicking on the bog. You are a bot!");
+								player.setAntibotKills(0);
+								player.teleToLocation(81630, 148610, -3467);
+							}
+							
+							player._antibotRunning = false;
+		                }
+						}, 10000);
+				}
+				
+					//Checks the mobcounter
+					if(player.getAntibotKills() == Config.ALT_CAPTCHA_MOBS_KILLS)
+					{
+						player._antibotCorrect = false;
+						player._antibotRunning = true;
+						Antibot.showHtmlWindow(player);
+						player.sendMessage("You have 10 seconds to click on the elf or you will get back in town for botting!");
+						ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+						{
+							@Override
+			                public void run()
+			                {
+								if(!player._antibotCorrect)
+								{
+									player.sendMessage("You failed clicking on the bog. You are a bot!");
+									player.setAntibotKills(0);
+									player.teleToLocation(Config.ALT_CAPTCHA_ANTIBOT_X, Config.ALT_CAPTCHA_ANTIBOT_Y, Config.ALT_CAPTCHA_ANTIBOT_Z);
+								}
+								
+								player._antibotRunning = false;
+			                }
+							}, 10000);
+					}
+		    }
+	    }
 		if (!super.doDie(killer))
 			return false;
 		

Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java	(revision 1117)
+++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java	(working copy)
@@ -20,15 +20,54 @@
  */
 package com.l2jfrozen.gameserver.network.clientpackets;

 	{
@@ -121,10 +165,389 @@
 			{
 				comeHere(activeChar);
 			}
+			else if (_command.startsWith("antibot_"))
+			{
+		   if(_command.substring(8).equals("correct"))
+			 {
+		    activeChar._antibotCorrect = true;
+			activeChar.setAntibotKills(0);
+			activeChar.sendMessage("Thank you for your co-opperation. Have a nice farm time!");
+				}
+				if(_command.substring(8).equals("wrong"))
+				{
+					activeChar._antibotCorrect = false;
+				}				
+			}
 		    else if (_command.startsWith("welcome_"))
		    {
		       WelcomeHtm.ShowWelcome(activeChar, _command,null);
		    }
			
			else if (_command.startsWith("votehopzone"))
 		}
 	@Override
 	public String getType()
 	{
 		return "[C] 21 RequestBypassToServer";
 	}
	
 }

	    		//Captcha Antibot
	    		public static boolean SHOW_CAPTCHA;
	    		public static String ALT_CAPTCHA_ANTIBOT;
	    		public static int[] ALT_CAPTCHA_ANTIBOT_LIST;
	    		public static int ALT_CAPTCHA_MOBS_KILLS;
	    		public static int ALT_CAPTCHA_ANTIBOT_X;
	    		public static int ALT_CAPTCHA_ANTIBOT_Y;
	    		public static int ALT_CAPTCHA_ANTIBOT_Z;


			SHOW_CAPTCHA = Boolean.parseBoolean(L2JFrozenSettings.getProperty("CaptchaEnabled", "true"));
			ALT_CAPTCHA_ANTIBOT = L2JFrozenSettings.getProperty("CaptchaNpcId", "2375,3500,3501");
			String[] array1 = ALT_CAPTCHA_ANTIBOT.split(",");
			ALT_CAPTCHA_ANTIBOT_LIST = new int[array1.length];
			for (int i = 0; i < array1.length; i++)
			ALT_CAPTCHA_ANTIBOT_LIST[i] = Integer.parseInt(array1[i]);
			ALT_CAPTCHA_MOBS_KILLS = Integer.parseInt(L2JFrozenSettings.getProperty("CaptchaMobsKills", "1"));
			ALT_CAPTCHA_ANTIBOT_X = Integer.parseInt(L2JFrozenSettings.getProperty("CaptchaSpawnX", ""));
			ALT_CAPTCHA_ANTIBOT_Y = Integer.parseInt(L2JFrozenSettings.getProperty("CaptchaSpawnY", ""));
			ALT_CAPTCHA_ANTIBOT_Z = Integer.parseInt(L2JFrozenSettings.getProperty("CaptchaSpawnZ", ""));

Configs

#=============================================================
#                  Captcha Antibot
#=============================================================
# Captcha True or False
CaptchaEnabled = True

# Captcha Npc Id px. 38299,38827,3827
CaptchaNpcId = 60,61,20

#Captcha Mobs Kills px. 300
CaptchaMobsKills = 200

#Captcha Teleport Bot Location Town
CaptchaSpawnX = 82391
CaptchaSpawnY = 149214
CaptchaSpawnZ = -3495

Edited by Crazyboy*
  • 2 weeks later...
Posted (edited)

hey man ...so i tried ur code and here are some problems that showed up..

 

first of all there is no such thing like: head-src/com/l2jfrozen/gameserver/custom

 

 (all i could find was  head-src/com/l2jfrozen/gameserver/handler/custom)

 

secondly, import com.l2jfrozen.util.DDSConverter;  does not exist...

 

here's a photo...hope u can help me fix it ;)

Edited by protoftw

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