Перейти к содержанию
Авторизация  
NewQuit

Чат в игре в л2

Рекомендуемые сообщения

Нужна помощь!
вот смотрите если я пишу на русском языке  над игроком пишется горизонтально.
InKu0Oe.png


но почему то когда пишу на английском языке  пишется над игроком вертикально.
mqvqanT.png

Где можно это изменить ???
и чтобы английский язык не переводился.
Поставлю + за помощь ..
 

Изменено пользователем NewQuit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотреть фильтр в ксласе Say

можно по подробнее 

Изменено пользователем NewQuit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь!

вот смотрите если я пишу на русском языке  над игроком пишется горизонтально.

InKu0Oe.png

 

 

но почему то когда пишу на английском языке  пишется над игроком вертикально.

mqvqanT.png

 

Где можно это изменить ???

и чтобы английский язык не переводился.

Поставлю + за помощь ..

 

Что то я не вижу англ символов. А чтобы "не переводился" скорее всего в .cfg включен транслит

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно по подробнее

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;
    }
}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и
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;
    }
}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос как убрать полностью со сборки транслит 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос как убрать полностью со сборки транслит 

А если ребята принципиальны и только он транслит ? не боишься что народ слетит из за такой мелочи &:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если ребята принципиальны и только он транслит ? не боишься что народ слетит из за такой мелочи & :)

я ищу решение его 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...