hello guys i tried knowing what is causing captcha not working but i have no clue here in config.java
//Captcha
public static boolean CAPTCHA_ALLOW;
public static long CAPTCHA_ANSWER_SECONDS;
public static long CAPTCHA_JAIL_SECONDS;
public static long CAPTCHA_TIME_BETWEEN_TESTED_SECONDS;
public static long CAPTCHA_TIME_BETWEEN_REPORTS_SECONDS;
public static int CAPTCHA_MIN_LEVEL;
public static int CAPTCHA_COUNT;
public static String[] CAPTCHA_PUNISHMENT;
public static boolean EVENT_RANDOM_TASK;
public static long EVENT_RANDOM_TIME;
==========================================
//Captcha
CAPTCHA_ALLOW = otherSettings.getProperty("AllowCaptcha", true);
CAPTCHA_ANSWER_SECONDS = otherSettings.getProperty("CaptchaAnswerTime", 15L);
CAPTCHA_JAIL_SECONDS = otherSettings.getProperty("CaptchaJailTime", 1800L);
CAPTCHA_TIME_BETWEEN_TESTED_SECONDS = otherSettings.getProperty("CaptchaDelayBetweenCaptchas", 1800L);
CAPTCHA_TIME_BETWEEN_REPORTS_SECONDS = otherSettings.getProperty("CaptchaReportDelay", 7200);
CAPTCHA_MIN_LEVEL = otherSettings.getProperty("CaptchaMinLevel", 40);
CAPTCHA_COUNT = otherSettings.getProperty("CaptchaCount", 2);
CAPTCHA_PUNISHMENT = otherSettings.getProperty("CaptchaPunishment", new String[] { "JAIL:90", "JAIL:350", "JAIL:900", "BAN:-100" });
==========================================
captcha.java :
package l2f.gameserver.handler.voicecommands.impl.BotReport;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import l2f.gameserver.Config;
import l2f.commons.util.Rnd;
import l2f.gameserver.data.htm.HtmCache;
import l2f.gameserver.model.Player;
import l2f.gameserver.network.serverpackets.NpcHtmlMessage;
import l2f.gameserver.network.serverpackets.PledgeCrest;
import l2f.gameserver.vote.DDSConverter;
/**
* Class that handles Generating and Sending Captcha Image to the Player
*/
public class Captcha
{
private static final char[] CAPTCHA_TEXT_POSSIBILITIES = {'A','B','C','D','E','F','G','H','K','L','M','P','R','S','T','U','W','X','Y','Z'};
private static final int CAPTCHA_WORD_LENGTH = 5;
private static final int CAPTCHA_MIN_ID = 1900000000;
private static final int CAPTCHA_MAX_ID = 2000000000;
/**
* Generation new Captcha ID
* Generation random Captcha Text
* Generating BufferedImage
* Sending BufferedImage as PledgeCrest to the Target
* Sending HTML Window with Captcha to the player
* @param target that will receive image and html Window
* @return Captcha Text that player will try to write on Text Box
*/
public static String sendCaptcha(Player target)
{
int captchaId = generateRandomCaptchaId();
char[] captchaText = generateCaptchaText();
BufferedImage image = generateCaptcha(captchaText);
PledgeCrest packet = new PledgeCrest(captchaId, DDSConverter.convertToDDS(image).array());
target.sendPacket(packet);
sendCaptchaWindow(target, captchaId);
return String.valueOf(captchaText);
}
/**
* Getting data/html-en/captcha.htm HTML
* Replacing %captchaId% and %time%
* Sending it as HTML window
* @param target Player that will receive html
* @param captchaId ID of the image to replace
*/
private static void sendCaptchaWindow(Player target, int captchaId)
{
String text = HtmCache.getInstance().getNotNull("captcha.htm", target);
text = text.replace("%captchaId%", String.valueOf(captchaId));
text = text.replace("%time%", String.valueOf(Config.CAPTCHA_ANSWER_SECONDS));
NpcHtmlMessage msg = new NpcHtmlMessage(0);
msg.setHtml(text);
target.sendPacket(msg);
}
private static char[] generateCaptchaText()
{
char[] text = new char[5];
for (int i = 0; i < CAPTCHA_WORD_LENGTH; i++)
text[i] = CAPTCHA_TEXT_POSSIBILITIES[Rnd.get(CAPTCHA_TEXT_POSSIBILITIES.length)];
return text;
}
private static int generateRandomCaptchaId()
{
return Rnd.get(CAPTCHA_MIN_ID, CAPTCHA_MAX_ID);
}
private static BufferedImage generateCaptcha(char[] text)
{
Color textColor = new Color(38, 213, 30);
Color circleColor = new Color(73, 100, 151);
Font textFont = new Font("comic sans ms", Font.BOLD, 24);
int charsToPrint = 5;
int width = 256;
int height = 64;
int circlesToDraw = 8;
float horizMargin = 20.0f;
double rotationRange = 0.7; // this is radians
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) bufferedImage.getGraphics();
//Draw an oval
g.setColor(new Color(30,31,31));
g.fillRect(0, 0, width, height);
g.setColor(circleColor);
for ( int i = 0; i < circlesToDraw; i++ ) {
int circleRadius = (int) (Math.random() * height / 2.0);
int circleX = (int) (Math.random() * width - circleRadius);
int circleY = (int) (Math.random() * height - circleRadius);
g.drawOval(circleX, circleY, circleRadius * 2, circleRadius * 2);
}
g.setColor(textColor);
g.setFont(textFont);
FontMetrics fontMetrics = g.getFontMetrics();
int maxAdvance = fontMetrics.getMaxAdvance();
int fontHeight = fontMetrics.getHeight();
float spaceForLetters = -horizMargin * 2.0F + width;
float spacePerChar = spaceForLetters / (charsToPrint - 1.0f);
for ( int i = 0; i < charsToPrint; i++ )
{
char characterToShow = text[i];
// this is a separate canvas used for the character so that
// we can rotate it independently
int charWidth = fontMetrics.charWidth(characterToShow);
int charDim = Math.max(maxAdvance, fontHeight);
int halfCharDim = charDim / 2;
BufferedImage charImage = new BufferedImage(charDim, charDim, BufferedImage.TYPE_INT_ARGB);
Graphics2D charGraphics = charImage.createGraphics();
charGraphics.translate(halfCharDim, halfCharDim);
double angle = (Math.random() - 0.5) * rotationRange;
charGraphics.transform(AffineTransform.getRotateInstance(angle));
charGraphics.translate(-halfCharDim,-halfCharDim);
charGraphics.setColor(textColor);
charGraphics.setFont(textFont);
int charX = (int) (0.5 * charDim - 0.5 * charWidth);
charGraphics.drawString(String.valueOf(characterToShow), charX, (charDim - fontMetrics.getAscent()) / 2 + fontMetrics.getAscent());
float x = horizMargin + spacePerChar * i - charDim / 2.0f;
int y = (height - charDim) / 2;
g.drawImage(charImage, (int) x, y, charDim, charDim, null, null);
charGraphics.dispose();
}
g.dispose();
return bufferedImage;
}
}
im enable it via the other.ini too but it just won't work inside the game no page will appear nothing even i tried with l2mythras - l2 ava - l2age all of the sources have the same problem captcha won't work at all enabling it from config.java - captcha.java - other.ini even when i check the server id and it just won't show up anyone will know how to make it work or will advice me using another captcha system it will be easy to adabt in this source because it aint easy in this kind pack of files to adabt thank's to all
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.
Faltan demasiados archivos, y lógicas en clases claves como L2pcInstance, entre otras. si bien muchas cosas están y el flujo es valorable. Gracias por tu esfuerzo es bastante... pero realmente no esta completo el código, falta que subas todas las modificaciones en clases colaterales... podrías intentar subir un diff de todo el mod completo de tu pack y bueno ahí si que cada uno adapte... pero faltan muchas cosas, dudo que haya gente que lo haya echo funcionar con esto...
I know people who have fully bypassed and reversed AAC. One day, they might even release the full source code, but for now, they’re still making money off it. I won’t name anyone, but it’s clear that there aren’t any truly solid anticheats for Lineage2. As I’ve said before, kernel level anticheats are the only real solution. Anything that runs as Internal and injects gets flagged, and your account ends up getting kicked or banned. That’s just how most games handle it nowadays.
To TL;DR the whole thing cheating will always exist because there are people out there smart enough to bypass any protection and run private cheats. Public cheats are always detected eventually, so I don’t see any point in buying AAC, especially when they claim it blocks adr, which simply isn’t true.
🌐 Website: https://l2adonis.com
📅 GRAND OPENING: July 18, 2025 – 20:00 (UTC+2)
💬 Discord: https://discord.com/invite/tZBj8JxAwx
🚫 No auto-farm • No auto-macro • No pay-to-win • No custom
Some Basic Info's (More detalied info's on website)
EXP/SP: x25
Adena: x15
Drop: x15
Spoil: x15
Seal Stones: x15
Raid Boss Drop: x10
Epic Boss Drop: x1
Manor: x10
Safe Enchant: +4
Max Enchant: +16
Normal Scroll Chance: 50%
Blessed Scroll Chance: 66% (If enchant fail item remain +4)
Buff Slots (30+4 extra with Divine Inspiration)
Dances/Songs Slots 14
Auto-learn skills
⚔️ Real PvP • Real Progression • Retail-like experience
JOIN NOW and relive the real L2 experience!
Discord : utchiha_market
Telegram : https://t.me/utchiha_market
Auto Buy Store : https://utchihamkt.mysellauth.com/
Not sure if we’re legit? Check Our server — real reviews, real buyers
https://discord.gg/uthciha-servicess | https://campsite.bio/utchihaamkt
Looking for a Developer – Lineage II Interlude (Vanganth Files)
I’m seeking a developer to collaborate on a project based on Vanganth Interlude files.
Important: Applicants with a bad attitude, lack of respect, or unwillingness to work will be immediately rejected.
Payment: Hourly rate, not per task.
Contact: Please reach out to me via PM.
Question
HorrorSlyer
hello guys i tried knowing what is causing captcha not working but i have no clue here in config.java
//Captcha public static boolean CAPTCHA_ALLOW; public static long CAPTCHA_ANSWER_SECONDS; public static long CAPTCHA_JAIL_SECONDS; public static long CAPTCHA_TIME_BETWEEN_TESTED_SECONDS; public static long CAPTCHA_TIME_BETWEEN_REPORTS_SECONDS; public static int CAPTCHA_MIN_LEVEL; public static int CAPTCHA_COUNT; public static String[] CAPTCHA_PUNISHMENT; public static boolean EVENT_RANDOM_TASK; public static long EVENT_RANDOM_TIME; ========================================== //Captcha CAPTCHA_ALLOW = otherSettings.getProperty("AllowCaptcha", true); CAPTCHA_ANSWER_SECONDS = otherSettings.getProperty("CaptchaAnswerTime", 15L); CAPTCHA_JAIL_SECONDS = otherSettings.getProperty("CaptchaJailTime", 1800L); CAPTCHA_TIME_BETWEEN_TESTED_SECONDS = otherSettings.getProperty("CaptchaDelayBetweenCaptchas", 1800L); CAPTCHA_TIME_BETWEEN_REPORTS_SECONDS = otherSettings.getProperty("CaptchaReportDelay", 7200); CAPTCHA_MIN_LEVEL = otherSettings.getProperty("CaptchaMinLevel", 40); CAPTCHA_COUNT = otherSettings.getProperty("CaptchaCount", 2); CAPTCHA_PUNISHMENT = otherSettings.getProperty("CaptchaPunishment", new String[] { "JAIL:90", "JAIL:350", "JAIL:900", "BAN:-100" }); ========================================== captcha.java : package l2f.gameserver.handler.voicecommands.impl.BotReport; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import l2f.gameserver.Config; import l2f.commons.util.Rnd; import l2f.gameserver.data.htm.HtmCache; import l2f.gameserver.model.Player; import l2f.gameserver.network.serverpackets.NpcHtmlMessage; import l2f.gameserver.network.serverpackets.PledgeCrest; import l2f.gameserver.vote.DDSConverter; /** * Class that handles Generating and Sending Captcha Image to the Player */ public class Captcha { private static final char[] CAPTCHA_TEXT_POSSIBILITIES = {'A','B','C','D','E','F','G','H','K','L','M','P','R','S','T','U','W','X','Y','Z'}; private static final int CAPTCHA_WORD_LENGTH = 5; private static final int CAPTCHA_MIN_ID = 1900000000; private static final int CAPTCHA_MAX_ID = 2000000000; /** * Generation new Captcha ID * Generation random Captcha Text * Generating BufferedImage * Sending BufferedImage as PledgeCrest to the Target * Sending HTML Window with Captcha to the player * @param target that will receive image and html Window * @return Captcha Text that player will try to write on Text Box */ public static String sendCaptcha(Player target) { int captchaId = generateRandomCaptchaId(); char[] captchaText = generateCaptchaText(); BufferedImage image = generateCaptcha(captchaText); PledgeCrest packet = new PledgeCrest(captchaId, DDSConverter.convertToDDS(image).array()); target.sendPacket(packet); sendCaptchaWindow(target, captchaId); return String.valueOf(captchaText); } /** * Getting data/html-en/captcha.htm HTML * Replacing %captchaId% and %time% * Sending it as HTML window * @param target Player that will receive html * @param captchaId ID of the image to replace */ private static void sendCaptchaWindow(Player target, int captchaId) { String text = HtmCache.getInstance().getNotNull("captcha.htm", target); text = text.replace("%captchaId%", String.valueOf(captchaId)); text = text.replace("%time%", String.valueOf(Config.CAPTCHA_ANSWER_SECONDS)); NpcHtmlMessage msg = new NpcHtmlMessage(0); msg.setHtml(text); target.sendPacket(msg); } private static char[] generateCaptchaText() { char[] text = new char[5]; for (int i = 0; i < CAPTCHA_WORD_LENGTH; i++) text[i] = CAPTCHA_TEXT_POSSIBILITIES[Rnd.get(CAPTCHA_TEXT_POSSIBILITIES.length)]; return text; } private static int generateRandomCaptchaId() { return Rnd.get(CAPTCHA_MIN_ID, CAPTCHA_MAX_ID); } private static BufferedImage generateCaptcha(char[] text) { Color textColor = new Color(38, 213, 30); Color circleColor = new Color(73, 100, 151); Font textFont = new Font("comic sans ms", Font.BOLD, 24); int charsToPrint = 5; int width = 256; int height = 64; int circlesToDraw = 8; float horizMargin = 20.0f; double rotationRange = 0.7; // this is radians BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = (Graphics2D) bufferedImage.getGraphics(); //Draw an oval g.setColor(new Color(30,31,31)); g.fillRect(0, 0, width, height); g.setColor(circleColor); for ( int i = 0; i < circlesToDraw; i++ ) { int circleRadius = (int) (Math.random() * height / 2.0); int circleX = (int) (Math.random() * width - circleRadius); int circleY = (int) (Math.random() * height - circleRadius); g.drawOval(circleX, circleY, circleRadius * 2, circleRadius * 2); } g.setColor(textColor); g.setFont(textFont); FontMetrics fontMetrics = g.getFontMetrics(); int maxAdvance = fontMetrics.getMaxAdvance(); int fontHeight = fontMetrics.getHeight(); float spaceForLetters = -horizMargin * 2.0F + width; float spacePerChar = spaceForLetters / (charsToPrint - 1.0f); for ( int i = 0; i < charsToPrint; i++ ) { char characterToShow = text[i]; // this is a separate canvas used for the character so that // we can rotate it independently int charWidth = fontMetrics.charWidth(characterToShow); int charDim = Math.max(maxAdvance, fontHeight); int halfCharDim = charDim / 2; BufferedImage charImage = new BufferedImage(charDim, charDim, BufferedImage.TYPE_INT_ARGB); Graphics2D charGraphics = charImage.createGraphics(); charGraphics.translate(halfCharDim, halfCharDim); double angle = (Math.random() - 0.5) * rotationRange; charGraphics.transform(AffineTransform.getRotateInstance(angle)); charGraphics.translate(-halfCharDim,-halfCharDim); charGraphics.setColor(textColor); charGraphics.setFont(textFont); int charX = (int) (0.5 * charDim - 0.5 * charWidth); charGraphics.drawString(String.valueOf(characterToShow), charX, (charDim - fontMetrics.getAscent()) / 2 + fontMetrics.getAscent()); float x = horizMargin + spacePerChar * i - charDim / 2.0f; int y = (height - charDim) / 2; g.drawImage(charImage, (int) x, y, charDim, charDim, null, null); charGraphics.dispose(); } g.dispose(); return bufferedImage; } }
im enable it via the other.ini too but it just won't work inside the game no page will appear nothing even i tried with l2mythras - l2 ava - l2age all of the sources have the same problem captcha won't work at all enabling it from config.java - captcha.java - other.ini even when i check the server id and it just won't show up anyone will know how to make it work or will advice me using another captcha system it will be easy to adabt in this source because it aint easy in this kind pack of files to adabt thank's to all
0 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.