Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
[Мануал]Эмоции в чате.
#1
Суть в том что если игрок пишет в чат к примеру фразу "Привет братюня" То персонаж машет рукой. Если "ЗБС" то будет хлопать руками а если "лол, хаха" то будет смеятся и т.д

Оффтоп

Ну приступим

Открываем нашу IDE заходиm в java/clientpackets/Say2C.java

и пишет такой код после
Код:
protected void runImpl()
    {
        Player activeChar = getClient().getActiveChar();
        if(activeChar == null)
            return;

Пишем наш код:

Код:
if ((_text.equalsIgnoreCase("ку")
                                || _text.equalsIgnoreCase("Здравствуй")
                                || _text.equalsIgnoreCase("Приветствую"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 2));
                        
                        if ((_text.equalsIgnoreCase("lol")
                                || _text.contains("haha")
                                || _text.equalsIgnoreCase("хаха")
                                || _text.equalsIgnoreCase("лол"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 10));
                            
                        if ((_text.equalsIgnoreCase("конечно")
                                || _text.equalsIgnoreCase("естественно")
                                || _text.equalsIgnoreCase("угу"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 6));
                        
                        if ((_text.equalsIgnoreCase("отрицаю")
                                || _text.equalsIgnoreCase("нетушки")
                                || _text.contains("неа")
                                || _text.equalsIgnoreCase("нет")
                                || _text.equalsIgnoreCase("nope")
                                || _text.equalsIgnoreCase("no")
                                || _text.contains("не")
                                 || _text.contains("ненад"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 5));
                        
                        if ((_text.equalsIgnoreCase("хз")
                                || _text.contains("незнаю"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 8));
                        
                        if ((_text.contains("круто")
                                || _text.equalsIgnoreCase("збс")
                                || _text.equalsIgnoreCase("awesome")
                                || _text.equalsIgnoreCase("cool"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 11));
                        
                        if ((_text.contains("сори")
                                || _text.contains("sorry"))
                                && (!activeChar.isRunning() || !activeChar.isAttackingNow() || !activeChar.isCastingNow()))
                            activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 13));

Инфа:

_text.equalsIgnoreCase = будет работать если в месаге строго будет тот текст что вы прописали в скрипте к примеру "збс" и он не будет работать если будет "збс брат"

|| _text.contains = будет работать всегда пока во всей месаге будет найден тот или иной текст пример: "збс братюня ты крутой ололо трололо" Всеравно будет работать до тех пор пока содержит слово збс.

Вот список еще эмоций.

Эмоции

По этому примеру можно много других условии поставить к примеру танцевать или поклон на ХФ

Создатель не я даже не знаю кто он. Поставил мне в исходы Matthew Masterio
Ответ
#2
Почему не указали человека, который это сделал? где копирайты?
Взято и переведено с maxcheaters.
Ответ
#3
О_О Можно ссылку?
Ответ
#4
Rattyx Написал:О_О Можно ссылку?

Без проблем Smile.
http://maxcheaters.com/forum/index.php?t...msg1295281
Ответ
#5
FullControl Написал:Без проблем Smile.
http://maxcheaters.com/forum/index.php?t...msg1295281

Спасибо. Однако я не знал что на МКСЧ есть такой мод уже) Мне его ставил Matthew Masterio. Удалять темку значит?

2FullControl
Ответ
#6
Воу-воу
как приятно видеть разростание класса Say2C, который по-новому используется для каждого текстового сообщения в игре, и всовывать в него паровозы ифов, тем самым увеличивая размер - плохо.

исходя из этого кода, мне будет интересно, а что же будет в случае когда игрок сидит на троне/полу или в абнормале по типу immobil
Ответ
#7
Игорь, часто ли сидя в абнормале игрокам приспичивает чтото написать? ну можно сделать проверки на них) не проблема)
Ответ
#8
по уму, не надо пихать в пакет Say2C все подряд - он и так уже достаточно монструозненький.
лучше завести новый тип слушателей, для чата, и их опрашивать в пакете.
и в эти слушатели и пихать обработку всех этих извращений.
к тому же это позволит "на лету" включать/выключать данные обработки - достаточно лишь зарегистрировать или наоборот убрать регистрацию нужного слушателя.

в свое время я этим путем и пошел, когда мне потребовалось для эвента Trick or Treat (о чем эвент - можете загуглить, он официальный) обрабатывать ситуацию, когда эвентовый нпс должен произвести определенные действия, когда поблизости него игроки произнесут в чат определенную фразу.
Ответ
#9
Почему если вы, те кто знают так хорошо кодинг хотябы раз в 1 месяц не вылаживать чтот вкусненькое для жителей зг? Я не говорю чтото мего сложное просто чтот интерестное мб и полезное. Раньше на ЗГ была тонна новых мануалов фишек все обсуждали делились знаниями. Сейчас такого нету...ну оно и понятно все подросли и забыли о том что есть другое поколение которые тоже хотят учится. Мой товарищ написал как мог, я проверял на лайв сервере работает отлично нагрузок нет, а как написать красиво? Подскажите?

Если тема не нужная и не интерестная и новичкам это не нужно - удалите. Я просто пытался разнообразить чем смог ЗГ.
Ответ
#10
ну я вот подсказал в каком направлении можно все это доработать - дальше уже все в ваших руках.
посмотреть к примеру как реализованы слушатели, ну хотя бы входа игрока в игру и сделать по подобию.

З.Ы. и не стоит обижаться на здоровую критику и предложения того, как улучшить код.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Мануал! Создание дуалов - Java PROGRAMMATOR 13 16,849 04-01-2021, 02:07 PM
Последний пост: Demon88
  Мануал! Установка ява сервера SF, RT, ST etc. PROGRAMMATOR 567 467,947 02-28-2021, 06:13 PM
Последний пост: seotaylor1
  Мануал! Создание Мультиселла PROGRAMMATOR 3 10,383 05-18-2018, 12:15 AM
Последний пост: Psycho
  Мануал: Делаем русские ники и титулы на своем сервере Evil-Soft 35 42,788 07-27-2016, 10:45 AM
Последний пост: Deazer
  Мануал! Компиляция (Eclipse) сборки Kamael от L2jFree. PROGRAMMATOR 25 22,403 05-08-2014, 10:53 PM
Последний пост: BadStealth
  мануал. Создание квестов Letov 18 25,506 02-10-2013, 08:03 PM
Последний пост: Zubastic
  Мануал! Создание магазина. PROGRAMMATOR 65 83,562 01-27-2013, 03:40 PM
Последний пост: Zubastic
  Мануал по руссификации и редактированию клиента Redon 10 11,259 11-09-2012, 01:18 PM
Последний пост: Archiel
  Мануал по созданию и востоновлению резервных копий баз данных с помощью Mysqldump [Red Dragon] 4 11,711 05-04-2011, 01:16 PM
Последний пост: ZhukV
  [мануал] PvP Зона в Гиране mr.Z 2 8,506 02-24-2011, 07:48 PM
Последний пост: sibling

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)