-
Публикаций
1092 -
Зарегистрирован
-
Посещение
-
Победитель дней
15 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент ncsSpawN
-
Вы даже не в состоянии вести адекватное общение о чем мне с вами говорить ? Для этого будет предоставлена сборка с привязкой как тест ограничение по времени, ядро под переписанным CatsByteGuard. По этому возможность выдачи сборки будущему клиенту или просто тестеру вполне реальна. Будет отведено время для теста этой сборки. Не кто не говорит вам брать без тестов кота в мишке, естественно мы выдадим и приобщим статистику работы самой сборки, после чего уйдем в приват с тарифом который указан в начале темы. До того как на проекте interlude.su (не реклама) была использована та сборка которая находится сейчас, стояла наша сборка. Также сборка стояла на проектах anage, atelon и нескольких ещё проектах с хорошим онлайном.
-
Уважаемый не нужно нас с кем-то путать, мы молодая команда которая открыла разработку над исходным кодом interlude.su(не реклама) Сборка не та что сейчас находится в шаре а полностью переписана foxtrot'ом, если у вас по какой-то причине есть какие-то обвинения или не довольствия в нашу сторону, хотел бы попросить не разводить флуд а сугубо по делу и желательно в лс если что-то личное. По поводу самой сборки то повторюсь мы даем тесты а также поднимем тест сервер при надобности.
- 91 ответ
-
- 1
-
Здравствуйте уважаемые администраторы. Мы новая команда разработчиков. Уже больше года продуктивно работаем над исходным кодом основанным на euro-pvp. Наша сборка стояла на крупных проектах и тестировалась на огромном онлайне. Полностью переписана и добавлено много вкусностей. В сборке присутствует много модов, профикшены все известные дюпы. Изначально сборка пилилась для euro-pvp.ru (исход. lucera 1.7) набрав свою популярность, она также стояла на проектах Interlude.su, anage.ru, fange.ru, atelon.ru и на нескольких ещё крупных проектах. Мы стремимся зарекомендовать нашу команду, после чего уйдем в приват. Релиз доступен на сайте. Стоимость сборки и обновлений: бесплатно! ICQ 4555-7-8898 ncs.SpawN Официальный сайт команды: http://l2soft.net
- 91 ответ
-
- 2
-
и ru.catssoftware.gameserver.util.StringUtil package ru.catssoftware.gameserver.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.regex.Pattern; import ru.catssoftware.Config; import ru.catssoftware.tools.codec.Base64; public class StringUtil { public static void append(StringBuilder builder, String... strings) { for (String s : strings) { builder.append(s).append(" "); } } private static final Pattern safeSql = Pattern.compile("[A-Za-z0-9\\- ]{3,16}"); public static boolean isValidStringAZ(String text) { return safeSql.matcher(text).matches(); } public static boolean isForbidden(String text) { for (String bad : Config.SPAM_FILTER_LIST) { if (bad.isEmpty()) { continue; } if (text.matches(".*" + bad + ".*")) { return true; } } return false; } public static boolean isSpamText(String text) { text = text.toLowerCase(); /*text = text.replaceAll("\n", ""); text = text.replace("\n", ""); text = text.replace("n\\", ""); text = text.replace("\r", ""); text = text.replace("r\\", ""); text = ltrim(text); text = rtrim(text); text = itrim(text); text = lrtrim(text);*/ //text = replaceIdent(text); //text = text.replaceAll("\\W", ""); text = text.replaceAll("[^A-Za-zА-Яа-я0-9]", ""); for (String bad : Config.SPAM_FILTER_LIST) { if (bad.isEmpty()) { continue; } if (text.matches(".*" + bad + ".*")) { return true; } } return false; } public static boolean isSpamDigitText(String text) { text = text.toLowerCase(); /*text = text.replaceAll("\n", ""); text = text.replace("\n", ""); text = text.replace("n\\", ""); text = text.replace("\r", ""); text = text.replace("r\\", ""); text = ltrim(text); text = rtrim(text); text = itrim(text); text = lrtrim(text);*/ //text = replaceIdent(text); //text = text.replaceAll("\\W", ""); text = text.replaceAll("\\D", ""); for (String bad : Config.SPAM_FILTER_DIGITS_LIST) { if (bad.isEmpty()) { continue; } if (text.matches(".*" + bad + ".*")) { return true; } } return false; } public static String replaceIdent(String word) { word = word.toLowerCase(); word = word.replace("a", "а"); word = word.replace("c", "с"); word = word.replace("s", "с"); word = word.replace("e", "е"); word = word.replace("k", "к"); word = word.replace("m", "м"); word = word.replace("o", "о"); word = word.replace("0", "о"); word = word.replace("x", "х"); word = word.replace("uy", "уй"); word = word.replace("y", "у"); word = word.replace("u", "у"); word = word.replace("ё", "е"); word = word.replace("9", "я"); word = word.replace("3", "з"); word = word.replace("z", "з"); word = word.replace("d", "д"); word = word.replace("p", "п"); word = word.replace("i", "и"); word = word.replace("ya", "я"); word = word.replace("ja", "я"); return word; } public static String checkCensore(String text) { for (Pattern pattern : Config.FILTER_LIST) { text = pattern.matcher(text).replaceAll(Config.CHAT_FILTER_CHARS); } return text; } public static boolean isForBroadcst(String text) { text = text.toLowerCase(); text = text.replaceAll("\n", ""); text = text.replace("\n", ""); text = text.replace("n\\", ""); text = text.replace("\r", ""); text = text.replace("r\\", ""); text = ltrim(text); text = rtrim(text); text = itrim(text); text = lrtrim(text); //text = replaceIdent(text); //text = text.replaceAll("\\W", ""); text = text.replaceAll("[^A-Za-zА-Яа-я0-9]", ""); for (String bad : Config.CHAT_GM_BROADCAST_LIST) { if (bad.isEmpty()) { continue; } if (text.matches(".*" + bad + ".*")) { return true; } } return false; } // public static String ltrim(String source) { return source.replaceAll("^\\s+", ""); } public static String rtrim(String source) { return source.replaceAll("\\s+$", ""); } public static String itrim(String source) { return source.replaceAll("\\b\\s{2,}\\b", " "); } public static String trim(String source) { return itrim(ltrim(rtrim(source))); } public static String lrtrim(String source) { return ltrim(rtrim(source)); } public static String md5(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(input.getBytes()); input = bytesToHex(md.digest()); } catch (NoSuchAlgorithmException ex) { // } return input; } public static String bytesToHex(byte[] { char hexDigit[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; StringBuilder buf = new StringBuilder(); for (int j = 0; j < b.length; j++) { buf.append(hexDigit[(b[j] >> 4) & 0x0f]); buf.append(hexDigit[b[j] & 0x0f]); } return buf.toString(); } public static String getSHA1(String pass) { String result = ""; try { // Encode Password MessageDigest md = MessageDigest.getInstance("SHA"); byte[] newpass; newpass = pass.getBytes("UTF-8"); newpass = md.digest(newpass); result = Base64.encodeBytes(newpass); } catch (Exception e) { // } return result; } }
-
ru.catssoftware.gameserver.network.clientpackets.Say2 package ru.catssoftware.gameserver.network.clientpackets; import java.nio.BufferUnderflowException; import java.util.regex.Pattern; import org.apache.log4j.Logger; import ru.catssoftware.Config; import ru.catssoftware.gameserver.banmanager.BanManager; import ru.catssoftware.gameserver.banmanager.spamcontrol.SpamControlHolder; import ru.catssoftware.gameserver.datatables.GmListTable; import ru.catssoftware.gameserver.handler.ChatHandler; import ru.catssoftware.gameserver.handler.IChatHandler; import ru.catssoftware.gameserver.handler.IVoicedCommandHandler; import ru.catssoftware.gameserver.handler.VoicedCommandHandler; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.zone.L2Zone; import ru.catssoftware.gameserver.network.SystemChatChannelId; import ru.catssoftware.gameserver.network.SystemMessageId; import ru.catssoftware.gameserver.network.serverpackets.CreatureSay; import ru.catssoftware.gameserver.util.FloodProtector; import ru.catssoftware.gameserver.util.FloodProtector.Protected; import ru.catssoftware.gameserver.util.SpamFilter; import ru.catssoftware.gameserver.util.StringUtil; import ru.catssoftware.tools.random.Rnd; import ru.catssoftware.util.Log; public class Say2 extends L2GameClientPacket { private static final String _C__38_SAY2 = "[C] 38 Say2"; private static Logger _logChat = Logger.getLogger("chat"); private SystemChatChannelId _chat; private String _text; private String _target; private int _type; @Override protected void readImpl() { try { _text = readS(); _type = readD(); } catch (BufferUnderflowException e) { _type = 0; _text = "oO"; } _chat = SystemChatChannelId.getChatType(_type); _target = _chat == SystemChatChannelId.Chat_Tell ? readS() : null; } @Override protected void runImpl() { L2PcInstance activeChar = getClient().getActiveChar(); // Проверяем activeChar if (activeChar == null) { return; } // Проверка длинны текста if (_text.length() > Config.CHAT_LENGTH) { //activeChar.sendMessage("Превышена длинна сообщения!"); _text = _text.substring(0, Config.CHAT_LENGTH); } // Проверка допустимого типа чата switch (_chat) { case Chat_None: case Chat_Announce: case Chat_Critical_Announce: case Chat_System: case Chat_Custom: case Chat_GM_Pet: { if (!activeChar.isGM()) { _chat = SystemChatChannelId.Chat_Normal; } } } // Проверка на VoiceHandler, парсер Voice команд if (_chat == SystemChatChannelId.Chat_Normal && (_text.startsWith(".") && !_text.startsWith(".."))) { String[] _commandParams = _text.split(" "); String command = _commandParams[0].substring(1); String params = ""; if (_commandParams.length > 1) { params = _text.substring(1 + command.length()).trim(); } else if (activeChar.getTarget() != null) { params = activeChar.getTarget().getName(); } IVoicedCommandHandler vch = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command); if (vch != null) { if (!activeChar.isGM() && !FloodProtector.tryPerformAction(activeChar, Protected.VOICE_CMD)) { activeChar.sendMessage("Защита от флуда. Попробуйте позже!"); return; } else { vch.useVoicedCommand(command, activeChar, params); return; } } else { IVoicedCommandHandler vc = VoicedCommandHandler.getInstance().getVoicedCommandHandler("menu"); if (vc == null) { return; } vc.useVoicedCommand("menu", activeChar, ""); activeChar.sendMessage("Wrong command: [." + command + "]."); } return; } // Проверка блокировки чата if (!activeChar.isGM() && (activeChar.isChatBanned() || activeChar.isInsideZone(L2Zone.FLAG_NOCHAT))) { if (_chat != SystemChatChannelId.Chat_User_Pet && _chat != SystemChatChannelId.Chat_Tell) { activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED); return; } } // Проверка типа чата. Если чар ГМ, то меняем тип чата if (_chat == SystemChatChannelId.Chat_User_Pet && activeChar.isGM()) { _chat = SystemChatChannelId.Chat_GM_Pet; } // Фильтр разрешенного типа чата при наличии Зарича/Акаманаха if (activeChar.isCursedWeaponEquipped()) { switch (_chat) { case Chat_Shout: case Chat_Market: activeChar.sendMessage("Чат недоступен"); return; } } // Проверка абзацов в чате, если абзацы запрещены //if (!Config.ALLOW_MULTILINE_CHAT) { _text = _text.replaceAll("\\\\n", ""); //} // Запись чата в лог файл if (Config.LOG_CHAT) { if (_chat == SystemChatChannelId.Chat_Tell) { _logChat.info(_chat.getName() + "[" + activeChar.getName() + " to " + _target + "] " + _text); } else { _logChat.info(_chat.getName() + "[" + activeChar.getName() + "] " + _text); } } switch (_chat) { case Chat_Normal: case Chat_Shout: case Chat_Market: case Chat_Tell: case Chat_Hero: // Проверка текста на запрещенные слова if (Config.USE_SAY_FILTER) { checkText(activeChar); } if (Config.ANTISPAM_MESSAGE_ENABLE) { long spamBlock = SpamControlHolder.getInstance().checkMessage(activeChar, _text); if (spamBlock > System.currentTimeMillis()) { activeChar.sendMessage("Ваш чат был заблокирован за спам, разблокировка через пару минут."); return; } } } if (Config.CHAT_GM_BROADCAST && StringUtil.isForBroadcst(_text)) { GmListTable.broadcastChat(_chat == SystemChatChannelId.Chat_Tell ? (activeChar.getName() + "->" + _target) : activeChar.getName(), _text); } useChatHandler(activeChar, ChatHandler.getInstance().getChatHandler(_chat)); } private void useChatHandler(L2PcInstance activeChar, IChatHandler ich) { if (ich == null) { return; } ich.useChatHandler(activeChar, _target, _chat, _text); } private void checkText(L2PcInstance activeChar) { String filteredText = _text; for (Pattern pattern : Config.FILTER_LIST) { filteredText = pattern.matcher(filteredText).replaceAll(Config.CHAT_FILTER_CHARS); } if (Config.KARMA_ON_OFFENSIVE > 0 && !_text.equals(filteredText)) { activeChar.setKarma(activeChar.getKarma() + Config.KARMA_ON_OFFENSIVE); } _text = filteredText; } @Override public String getType() { return _C__38_SAY2; } }
-
Тогда лучше скачать eclipse подгрузить джар и править свой класс. Ну или же нанять кодера если нету терпения.
-
Смотреть фильтр в ксласе Say
-
Для этого есть AntiBotPW icq 4555-7-8898
-
вы уверены что у вас заходило с lameguard? на сколько знаю он платный и кряков в шаре нету, а вот catsguard вполне возможно отключите в конфигах защиту catsguard
-
Проверте в класе Say как устроен фильтр.
-
Что и требовалось доказать.
-
Тоесть по вашим словам то что я посоветовал вам не помогло ? И вы умудрились скомпилить без lombok.jar? Тогда пруф преведите пожалуйста, чтоб не пустословить зря...
-
Во первых я не требовал денег, а ожидал банальное спасибо за помощь. Во вторых зачем мне писать целый том летературы если я мог обяснить вашу ошибку в двух словах? Краткость сестра таланта. Ну а прочитав отзыв о вас, я сразу понял что нужно всетаки тему поднять, так как я не первый с кем вы так обошлись и скорее всего не последний. По этому нужно всегда открывать людям глаза на таких людей как вы.
-
Ой только не нужно оправдыватся, во первых у вас уже были негативные отзывы со схожей ситуацией, во вторых и меня прекрасно все скомпилилось (могу преложить скриншоты) Без подгрузки lombok.jar к эклипс вы не смогли бы не как скомпилить исходники, разве что перелопатив весь код и зачистив его полностью от lombok.jar Впрочем судить пользователям форума и администрации. Стоит ли вообще иметь с вами дело в дальнейшем.
-
Это запущенный номер, помог человеку даже спасибо не сказал. Дело было в подключении lombok.jar к eclipse.
-
согласен что 150 000 возможно и за вышена, но как по мне исходник для старта разработки то что нужно.
-
Нет не то что стоит на евро-пвп, а то что было переделано из вашей шары которую досихпор пытаются продавать, я бы не сказал что работа фокстрота стоит 15000, так как исходник действительно хороший. Нет сеть взята не с лостворлда.
-
Да действительно сеть переписывалась с 0 также и логин сервер к нему. Сервер действительно качествен и даже на слабом железе запуск сервера удевляет. Заслуга фокстрота!
-
Не нужно гадать, переписываем сами под 8 яву или ищем мой фикс в шаре, нужно переписать удалив ТекстБилдер.
-
исходы под рукой можно самому написать
-
Могу ошибаться но где-то в шаре видел клиент часть котов на asm [dsetup.dll] Но толку действительно с нее нет, проще самому написать с нуля и вести разработку.
-
Какой бюджет и что конектретно нужно сделать по мимо поставить eclipse ? icq 455578898
-
Данная ошибка свидетельствует о том, что не может найти dll нативу от catsbyteguard
-
Скиньте ссылку тогда на сборку от куда можно выдрать полную реализацию ? Ибо я знаю только сборки где есть реализация фантомов но без АИ А ТСу нужно именно фантомы + реализация АИ (действий) это чат, бег, агр, и фарм. А саму АИ уже писал с нуля. По этому и цена такая.