Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Тех-документация (https://forum.zone-game.info/forumdisplay.php?f=41)
-   -   [Мануал]Эмоции в чате. (https://forum.zone-game.info/showthread.php?t=31253)

OneThunder 08.09.2013 10:40

[Мануал]Эмоции в чате.
 
Суть в том что если игрок пишет в чат к примеру фразу "Привет братюня" То персонаж машет рукой. Если "ЗБС" то будет хлопать руками а если "лол, хаха" то будет смеятся и т.д

Оффтоп:
Свернуть ↑Развернуть ↓


Ну приступим

Открываем нашу 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

FullControl 08.09.2013 11:01

Re: [Мануал]Эмоции в чате.
 
Почему не указали человека, который это сделал? где копирайты?
Взято и переведено с maxcheaters.

OneThunder 08.09.2013 11:02

Re: [Мануал]Эмоции в чате.
 
О_О Можно ссылку?

FullControl 08.09.2013 11:22

Re: [Мануал]Эмоции в чате.
 
Цитата:

Сообщение от Rattyx (Сообщение 321357)
О_О Можно ссылку?

Без проблем :).
http://maxcheaters.com/forum/index.p...281#msg1295281

OneThunder 08.09.2013 16:45

Re: [Мануал]Эмоции в чате.
 
Цитата:

Сообщение от FullControl (Сообщение 321362)

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

2FullControl:
Свернуть ↑Развернуть ↓

KID 08.09.2013 19:54

Re: [Мануал]Эмоции в чате.
 
Воу-воу
как приятно видеть разростание класса Say2C, который по-новому используется для каждого текстового сообщения в игре, и всовывать в него паровозы ифов, тем самым увеличивая размер - плохо.

исходя из этого кода, мне будет интересно, а что же будет в случае когда игрок сидит на троне/полу или в абнормале по типу immobil

OneThunder 08.09.2013 22:52

Re: [Мануал]Эмоции в чате.
 
Игорь, часто ли сидя в абнормале игрокам приспичивает чтото написать? ну можно сделать проверки на них) не проблема)

Gaikotsu 08.09.2013 22:56

Re: [Мануал]Эмоции в чате.
 
по уму, не надо пихать в пакет Say2C все подряд - он и так уже достаточно монструозненький.
лучше завести новый тип слушателей, для чата, и их опрашивать в пакете.
и в эти слушатели и пихать обработку всех этих извращений.
к тому же это позволит "на лету" включать/выключать данные обработки - достаточно лишь зарегистрировать или наоборот убрать регистрацию нужного слушателя.

в свое время я этим путем и пошел, когда мне потребовалось для эвента Trick or Treat (о чем эвент - можете загуглить, он официальный) обрабатывать ситуацию, когда эвентовый нпс должен произвести определенные действия, когда поблизости него игроки произнесут в чат определенную фразу.

OneThunder 08.09.2013 23:00

Re: [Мануал]Эмоции в чате.
 
Почему если вы, те кто знают так хорошо кодинг хотябы раз в 1 месяц не вылаживать чтот вкусненькое для жителей зг? Я не говорю чтото мего сложное просто чтот интерестное мб и полезное. Раньше на ЗГ была тонна новых мануалов фишек все обсуждали делились знаниями. Сейчас такого нету...ну оно и понятно все подросли и забыли о том что есть другое поколение которые тоже хотят учится. Мой товарищ написал как мог, я проверял на лайв сервере работает отлично нагрузок нет, а как написать красиво? Подскажите?

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

Gaikotsu 08.09.2013 23:04

Re: [Мануал]Эмоции в чате.
 
ну я вот подсказал в каком направлении можно все это доработать - дальше уже все в ваших руках.
посмотреть к примеру как реализованы слушатели, ну хотя бы входа игрока в игру и сделать по подобию.

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


Текущее время: 07:04. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot