s1ngLe 212 Опубликовано 4 апреля, 2013 (изменено) Подскажите пожалуйста, в каком файле находятся фразы Адептов ходящих по городам (ХФ хроники, сборка l2emu-ent), чтобы можно было изменить то, что они говорят в чат? В гугле ищу, пока без результатов Изменено 4 апреля, 2013 пользователем s1ngLe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 это в их AI 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 это в их AI АИ адептов нашел, прям в ява файле менять то что они должны говорить? В каком формате? Там сейчас так: case 1: npcStringId = NpcStringId.CLOUDS_OF_BLOOD_ARE_GATHERING_SOON_IT_WILL_START_TO_RAIN_THE_RAIN_OF_CRIMSON_BLOOD; break; case 2: npcStringId = NpcStringId.WHILE_THE_FOOLISH_LIGHT_WAS_ASLEEP_THE_DARKNESS_WILL_AWAKEN_FIRST_UH; break; case 3: npcStringId = NpcStringId.IT_IS_THE_DEEPEST_DARKNESS_WITH_ITS_ARRIVAL_THE_WORLD_WILL_SOON_DIE; break; case 4: npcStringId = NpcStringId.DEATH_IS_JUST_A_NEW_BEGINNING_HUHU_FEAR_NOT; break; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 (изменено) если хочеш дописывать свои фразы то тут уже нужно будет использовать Functions.npcSay(actor, ""); и вписывать свой текст между ковычками Изменено 4 апреля, 2013 пользователем BrainEater 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 (изменено) если хочеш дописывать свои фразы то тут уже нужно будет использовать Functions.npcSay(actor, ""); Свои фразы я не дописать хочу, а заменить те, которые сейчас Адепты говорят. Менять их, я так понял в папке АИ, в файле адептов? Меня смущает, что сейчас их фразы в АИ прописаны через npcStringId в принципе сейчас по эксперементирую с двумя вариантами и после отпишу. если не получится Изменено 4 апреля, 2013 пользователем s1ngLe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 Менять там. АИ прописаны через фразы клиента. Чтобы вписать что то свое, нужно использовать простой String. типа String fr; fr = new String("111"); 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 Менять там. АИ прописаны через фразы клиента. Чтобы вписать что то свое, нужно использовать простой String. типа String fr; fr = new String("111"); Я удалил все фразы что были прописаны в АИ и написал там свои. Но НПС все равно говорит старыми фразами. Получается он тянет их с какого то другого файла Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 код можно? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 (изменено) public class Adepts extends L2NpcWalkerAI { private static final int[] ADEPTS = {4309,4310,4311,4312}; private static final int SHOUT_DELAY = 8000; private long _nextShoutTime = 0; public Adepts(L2Character cha) { super(cha); } protected void onEvtThink(){ super.onEvtThink(); /* * Кричим на чаще, чем SHOUT_DELAY. * Шанс введен для рандомайза времени криков. */ if (_nextShoutTime <= System.currentTimeMillis()){ if (Rnd.chance100(15)){ sayRndMsg(); _nextShoutTime = System.currentTimeMillis() + SHOUT_DELAY; } } } private void sayRndMsg() { L2Npc actor = getActor(); if(actor == null) return; NpcStringId npcStringId; switch(Rnd.get(7)) { case 1: npcStringId = NpcStringId.CLOUDS_OF_BLOOD_ARE_GATHERING_SOON_IT_WILL_START_TO_RAIN_THE_RAIN_OF_CRIMSON_BLOOD; break; case 2: npcStringId = NpcStringId.WHILE_THE_FOOLISH_LIGHT_WAS_ASLEEP_THE_DARKNESS_WILL_AWAKEN_FIRST_UH; break; case 3: npcStringId = NpcStringId.IT_IS_THE_DEEPEST_DARKNESS_WITH_ITS_ARRIVAL_THE_WORLD_WILL_SOON_DIE; break; case 4: npcStringId = NpcStringId.DEATH_IS_JUST_A_NEW_BEGINNING_HUHU_FEAR_NOT; break; case 5: npcStringId = NpcStringId.AHH_BEAUTIFUL_GODDES_OF_DEATH_COVER_OVER_THE_FILTH_OF_THOS_WORLD_YOUR_DARKNESS; break; case 6: npcStringId = NpcStringId.THE_GODDESS_RESURRECTION_HAS_ALREADY_BEGUN_HUHU_INSIGNIFICANT_CREATURES_LIKE_YOU_CAN_DO_NOTHING; break; default: npcStringId = NpcStringId.A_BLACK_MOON_NOW_DO_YOU_UNDERSTAND_THAT_HE_HAS_OPENED_HIS_EYES; break; } actor.broadcastNpcSay(npcStringId); } public static void main(String[] args) { AIManager.getInstance().registerAi(ADEPTS, Adepts.class); } } Вот код без изменений. Для того чтобы НПС заговорил моими фразами я поменял после npcStringId = NpcStringId. предложения Изменено 4 апреля, 2013 пользователем s1ngLe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 L2Npc actor = getActor(); if(actor == null) return; String npcStringId; switch(Rnd.get(7)) { case 1: npcStringId = new String("текст"); // и так с каждым break; case 2: npcStringId = NpcStringId.WHILE_THE_FOOLISH_LIGHT_WAS_ASLEEP_THE_DARKNESS_WILL_AWAKEN_FIRST_UH; break; case 3: npcStringId = NpcStringId.IT_IS_THE_DEEPEST_DARKNESS_WITH_ITS_ARRIVAL_THE_WORLD_WILL_SOON_DIE; break; case 4: npcStringId = NpcStringId.DEATH_IS_JUST_A_NEW_BEGINNING_HUHU_FEAR_NOT; break; case 5: npcStringId = NpcStringId.AHH_BEAUTIFUL_GODDES_OF_DEATH_COVER_OVER_THE_FILTH_OF_THOS_WORLD_YOUR_DARKNESS; break; case 6: npcStringId = NpcStringId.THE_GODDESS_RESURRECTION_HAS_ALREADY_BEGUN_HUHU_INSIGNIFICANT_CREATURES_LIKE_YOU_CAN_DO_NOTHING; break; default: npcStringId = NpcStringId.A_BLACK_MOON_NOW_DO_YOU_UNDERSTAND_THAT_HE_HAS_OPENED_HIS_EYES; break; } actor.broadcastNpcSay(npcStringId); } public static void main(String[] args) { AIManager.getInstance().registerAi(ADEPTS, Adepts.class); } } попробуй так 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 попробуй так сделал вот так, один фиг нпс говорит старыми фразами public class Adepts extends L2NpcWalkerAI { private static final int[] ADEPTS = {4309,4310,4311,4312}; private static final int SHOUT_DELAY = 8000; private long _nextShoutTime = 0; public Adepts(L2Character cha) { super(cha); } protected void onEvtThink(){ super.onEvtThink(); /* * Кричим на чаще, чем SHOUT_DELAY. * Шанс введен для рандомайза времени криков. */ if (_nextShoutTime <= System.currentTimeMillis()){ if (Rnd.chance100(15)){ sayRndMsg(); _nextShoutTime = System.currentTimeMillis() + SHOUT_DELAY; } } } private void sayRndMsg() { L2Npc actor = getActor(); if(actor == null) return; String npcStringId; switch(Rnd.get(7)) { case 1: npcStringId = new_String("текст1"); break; case 2: npcStringId = new_String("текст2"); break; case 3: npcStringId = new_String("текст3"); break; case 4: npcStringId = new_String("текст4"); break; case 5: npcStringId = new_String("текст5"); break; case 6: npcStringId = new_String("текст6"); break; default: npcStringId = new_String("текст7"); } actor.broadcastNpcSay(new_String); } public static void main(String[] args) { AIManager.getInstance().registerAi(ADEPTS, Adepts.class); } } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 очень странно. А в статах {4309,4310,4311,4312}; вот этих нпц какое АИ стоит? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 (изменено) очень странно. А в статах {4309,4310,4311,4312}; вот этих нпц какое АИ стоит? по идее это все 4 нпс Адепта, которые есть на сервере где можно глянуть прописанный АИ для этих НПС? (сорри, я не шибко давно разбираюсь со сборками, только учусь) Изменено 4 апреля, 2013 пользователем s1ngLe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 апреля, 2013 в статах нпц Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
s1ngLe 212 Опубликовано 4 апреля, 2013 в статах нпц Позже буду разбираться где прописаны эти диалоги. Спасибо за помощь и потраченное время, Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Xample 0 Опубликовано 17 ноября, 2013 Позже буду разбираться где прописаны эти диалоги. Спасибо за помощь и потраченное время, в базе данных! таблица auto_chat_text Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты