Resolved Анонс мамона в системный чат , classic

damka

Heir
Customer
Доброго времени суток уважаемые знатоки!

Подскажите пожалуйста ,есть ли конфиг , что бы мамоны о своем прибытии в каты\некры кричали не в шаут ,а выводилось системное сообщение в чат сис.сообщений?
И если да ,то какой именно файл и конфиг ?) Не нашел похожей темы на форуме . если есть тема - дайте пожалуйста ссылку ,спасибо заранее!

в конфиге other.properties :
Code:
# Анонсировать местоположение мамонов
AnnounceMammonSpawn = True

Однако в игре он кричит в шаут , "анонс" не происходит,как я себе это представлял,в окне сис.сообщений . Возможно кто то уже делал? Спасибо вам заранее всем!
1756805048865.webp
 
Мамон не должен объявляться в шаут или торговый чат. Если это так, то это косяк.
Всегда мамон объявлялся в анонсах.
 
Мамон не должен объявляться в шаут или торговый чат. Если это так, то это косяк.
Всегда мамон объявлялся в анонсах.
Ну мб я не обновлялся давно,но игрок дал вот такой вот фид бек. Ладно потом себе это сделаю.

Апд: вообще по канону, сколько я знаю на первенство не претендую ,он должен как раз орать в шаут,что б игроки бегали искали,и друг у друга спрашивали)) так что врядли это именно "косяк")
 
Ну мб я не обновлялся давно,но игрок дал вот такой вот фид бек. Ладно потом себе это сделаю.

Апд: вообще по канону, сколько я знаю на первенство не претендую ,он должен как раз орать в шаут,что б игроки бегали искали,и друг у друга спрашивали)) так что врядли это именно "косяк")

Может он что то там и орёт. Но я имею ввиду конкретное объявление, типа "Мамон появился в таких то катах..."
 
Не открою Америку, но раз такое дело, то может просто сделать спавн по крону в городах мамона, в определенное время ?
 
Доброго времени суток уважаемые знатоки!

Подскажите пожалуйста ,есть ли конфиг , что бы мамоны о своем прибытии в каты\некры кричали не в шаут ,а выводилось системное сообщение в чат сис.сообщений?
И если да ,то какой именно файл и конфиг ?) Не нашел похожей темы на форуме . если есть тема - дайте пожалуйста ссылку ,спасибо заранее!

в конфиге other.properties :
Code:
# Анонсировать местоположение мамонов
AnnounceMammonSpawn = True

Однако в игре он кричит в шаут , "анонс" не происходит,как я себе это представлял,в окне сис.сообщений . Возможно кто то уже делал? Спасибо вам заранее всем!
View attachment 6870
# Опция позволяющая использовать команду .merchant .mammon
AltAllowMammonSearchCommand = True

Конфиг устаревший
AnnounceMammonSpawn
 
# Опция позволяющая использовать команду .merchant .mammon
AltAllowMammonSearchCommand = True

Конфиг устаревший
AnnounceMammonSpawn
Понял принял , от души о великий!)
 
@Holst Я уже успел полезть сам сделать , в АИшках добавил :
Code:
        Announcements.getInstance().announceToAll(locationNames.get(index));

Но за ответ от души,тему закрываю!
 
@Holst Я уже успел полезть сам сделать , в АИшках добавил :
Code:
        Announcements.getInstance().announceToAll(locationNames.get(index));

Но за ответ от души,тему закрываю!
Ты в теме так и не ответил что сделал. То что ты показал это даже не часть логики, по всей видимости ты наклацал в chat gpt или что-то типа этого и он тебе захардкодил имена локаций текстом и получается в индексе по координатам - locationNames.get(index). Произошел так называемый ГОВНОКОД, но это не удивительно.

Добавлю на репо сегодня нормальную реализацию анонса
 
Ты в теме так и не ответил что сделал. То что ты показал это даже не часть логики, по всей видимости ты наклацал в chat gpt или что-то типа этого и он тебе захардкодил имена локаций текстом и получается в индексе по координатам - locationNames.get(index). Произошел так называемый ГОВНОКОД, но это не удивительно.

Добавлю на репо сегодня нормальную реализацию анонса
О великий,по факту +- так и есть)) исходника у меня нет ,деобфускацию делала АИшка,да и если бы был ,все равно бы говнокодил,мне до вас о Великий,як до неба рачки)))
Гавнокод прилагается)))

Коментарии к координатам проверял и писал лично))

Но скажу чесно ,гавнокод - это то что предлагала с этим делать АИшка , это я еще нормально,+- по своим по крайней мере оценкам сделал,вам точно виднее,о Великий вопросов нет)


Code:
package ai;

import java.util.*;

import l2.commons.util.Rnd;
import l2.gameserver.Announcements;
import l2.gameserver.ThreadPoolManager;
import l2.gameserver.ai.DefaultAI;
import l2.gameserver.model.instances.NpcInstance;
import l2.gameserver.network.l2.s2c.L2GameServerPacket;
import l2.gameserver.network.l2.s2c.MagicSkillUse;
import l2.gameserver.scripts.Functions;
import l2.gameserver.templates.StatsSet;
import l2.gameserver.utils.Location;

public class BlacksmithMammon extends DefaultAI {
    private final int teleportPeriod;
    private final List<Location> teleportLocations = new ArrayList<>();
    private final Map<Integer, String> locationNames = new HashMap<>();
    private long lastTeleportTime = System.currentTimeMillis();

    private static final String DEFAULT_TELEPORTS =
                    "12655,-248700,-9576;" + //Catacomb forbiten path
                    "-20515,-251010,-8160;" + //Catacomb of Apostate
                    "-53145,-250500,-7904;" + //Catacomb of Heretic
                    "46288,170096,-4979;" + //Catacomb of Branded
                    "-19378,13264,-4899;" + //Catacomb dark omen
                    "140480,79472,-5427"; //Catacomb the wich

    private static final String[] ANNOUNCE_MESSAGES = new String[]{
            "1000431",
            "1000432",
            "1000433"
    };

    public BlacksmithMammon(NpcInstance actor) {
        super(actor);
        StatsSet params = actor.getTemplate().getAIParams();
        String teleportData = params.getString("tele_loc", DEFAULT_TELEPORTS);
        StringTokenizer tokenizer = new StringTokenizer(teleportData, ";");

        while (tokenizer.hasMoreTokens()) {
            teleportLocations.add(Location.parseLoc(tokenizer.nextToken()));
        }
        teleportPeriod = params.getInteger("teleport_period", 1800000);

        locationNames.put(0, "Mammon blacksmith spawned on Catacomb forbiten path \n Мамон кузнец появился в Катакомбах Запретного пути");
        locationNames.put(1, "Mammon blacksmith spawned on Catacomb of Apostate \n Мамон кузнец появился в Катакомбах отступников");
        locationNames.put(2, "Mammon blacksmith spawned on Catacomb of Heretic \n Мамон кузнец появился в Катакомбах Еритиков");
        locationNames.put(3, "Mammon blacksmith spawned on Catacomb of Branded \n Мамон кузнец появился в Катакомбах Отлученных");
        locationNames.put(4, "Mammon blacksmith spawned on Catacomb of Dark Omen \n Мамон кузнец появился в Катакомбах Тёмного пророчества");
        locationNames.put(5, "Mammon blacksmith spawned on Catacomb of the Wich \n Мамон кузнец появился в Катакомбах Ведьм");
    }



    @Override
    protected boolean thinkActive() {
        NpcInstance npc = getActor();
        if (npc.isDead()) {
            return true;
        }
        if (System.currentTimeMillis() - lastTeleportTime >= teleportPeriod) {
            Location newLoc = teleportLocations.get(Rnd.get(teleportLocations.size()));
            int index = teleportLocations.indexOf(newLoc);
            if (!npc.getLoc().equals(newLoc)) {
                ThreadPoolManager.getInstance().schedule(new DefaultAI.Teleport(newLoc, true), 1000L);
                npc.broadcastPacketToOthers(new L2GameServerPacket[]{
                        new MagicSkillUse(npc, npc, 4671, 1, 1000, 0L)
                });
                lastTeleportTime = System.currentTimeMillis();
                ThreadPoolManager.getInstance().schedule(() ->
                        Functions.npcShoutCustomMessage(npc, Rnd.get(ANNOUNCE_MESSAGES)), 5000L);
                Announcements.getInstance().announceToAll(locationNames.get(index));
            }
        }

        return false;
    }

    @Override
    public boolean isGlobalAI() {
        return true;
    }
}
 
1756839655530.webp

Ясно, а если ты поменяешь координаты, допустим по городам... Что будет дальше ?

Насколько я понял, ты вообще не понимаешь как это работает.
Во-первых координаты берутся из data/npc у NPC 31113
1756839779424.webp
Далее при любой модификации координат будет происходить ад.
Вы даже думать не хотите, зачем лезете ?
Вайб "программирование" через chat gpt ?
 
View attachment 6871

Ясно, а если ты поменяешь координаты, допустим по городам... Что будет дальше ?

Насколько я понял, ты вообще не понимаешь как это работает.
Во-первых координаты берутся из data/npc у NPC 31113
View attachment 6872
Далее при любой модификации координат будет происходить ад.
Вы даже думать не хотите, зачем лезете ?
Вайб "программирование" через chat gpt ?
Согласен , провтык с моей стороны , действительно совсем думать не хочу ((
Правда да не совсем понимаю как работает,не везде точно, буду мотать на ус что сказать))
Поменять координаты и будет не хорошо я вот сейчас увидел и понял после того как носом ткнул...

Спасибо за критику , и хорошего вечера!)
 
View attachment 6871

Ясно, а если ты поменяешь координаты, допустим по городам... Что будет дальше ?

Насколько я понял, ты вообще не понимаешь как это работает.
Во-первых координаты берутся из data/npc у NPC 31113
View attachment 6872
Далее при любой модификации координат будет происходить ад.
Вы даже думать не хотите, зачем лезете ?
Вайб "программирование" через chat gpt ?
Пользуясь случаем ,можна задать тупой вопрос ?
Если координаты берутся из параметров НПС , в моем кривущем декомпиле они почему то отдельно дублируются ,зачем ?

Code:
        String teleportLocs = aiParams.getString("tele_loc", "118336,132592,-4829;111296,173792,-5440;83136,208992,-5437;45020,123830,-5408;-21680,77152,-5171;-52208,78896,-4739;-41856,209904,-5088;172384,-17823,-4897");

Вайб кодинг сам не одобряю,АИшки иногда такое высырают,что пздц ,максимум как скелет где то что то для чегото взять,это максимум)

Или это к кривущему декомпилу вопрос? :D
 
Last edited:
Пользуясь случаем ,можна задать тупой вопрос ?
Если координаты берутся из параметров НПС , в моем кривущем декомпиле они почему то отдельно дублируются ,зачем ?

Code:
        String teleportLocs = aiParams.getString("tele_loc", "118336,132592,-4829;111296,173792,-5440;83136,208992,-5437;45020,123830,-5408;-21680,77152,-5171;-52208,78896,-4739;-41856,209904,-5088;172384,-17823,-4897");

Вайб кодинг сам не одобряю,АИшки иногда такое высырают,что пздц ,максимум как скелет где то что то для чегото взять,это максимум)

Или это к кривущему декомпилу вопрос? :D
1756844865315.webp

я тупой,спасибо,можна не отвечать :D На самом деле я ценю все тобой сказаное , это помогает рости. Спасибо еще раз и хорошего вечера,переделаю себе по людски :D
 
а этот тут ВООБЩЕ причем ? Зачем ты это запостил, вот зачем, какой практический смысл этого ? Для чего ?
Ну типа я понял что там прописываются дефолт значения если параметров нет в конфиге нпс) забудь все нормально)
 
Back
Top