Gaikotsu 620 Опубликовано 5 октября, 2014 Название: Chatty Guard AI Добавил: Gaikotsu Добавлен: 05 Oct 2014 Категория: Серверные дополнения Автор: Gaikotsu Хроники: Все Простое AI гварда, любящего поболтать с проходящими мимо него игроками, а так же выкрикивающим разные фразы при обнаружении и атаке ПК. Нажмите здесь, чтобы скачать файл 5 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Fearless 230 Опубликовано 5 октября, 2014 Интересно, попробуем Правда работать ли будет на pw сборке) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nainer 15 Опубликовано 5 октября, 2014 (изменено) GameServer: Loading Server Scripts ---------- 1. ERROR in \ChattyGuard.java (at line 3) import l2p.commons.util.Rnd; ^^^ The import l2p cannot be resolved ---------- 2. ERROR in \ChattyGuard.java (at line 4) import l2p.gameserver.ai.Guard; ^^^ The import l2p cannot be resolved ---------- 3. ERROR in \ChattyGuard.java (at line 5) import l2p.gameserver.model.Creature; ^^^ The import l2p cannot be resolved ---------- 4. ERROR in \ChattyGuard.java (at line 6) import l2p.gameserver.model.Player; ^^^ The import l2p cannot be resolved ---------- 5. ERROR in \ChattyGuard.java (at line 7) import l2p.gameserver.model.base.Sex; ^^^ The import l2p cannot be resolved ---------- 6. ERROR in \ChattyGuard.java (at line import l2p.gameserver.model.instances.NpcInstance; ^^^ The import l2p cannot be resolved ---------- 7. ERROR in \ChattyGuard.java (at line 9) import l2p.gameserver.scripts.Functions; ^^^ The import l2p cannot be resolved ---------- 8. ERROR in \ChattyGuard.java (at line 11) public class ChattyGuard extends Guard ^^^^^ Guard cannot be resolved to a type ---------- 9. ERROR in \ChattyGuard.java (at line 15) private static final long _sayNormalPeriod = 120_000; // ╨Ь╨╕╨╜╨╕╨╝╨░╨╗╤ М╨╜╤Л╨╣ ╨┐╨╡╤А╨╕╨╛╨┤ (╨▓ ╨╝╤Б), ╤Б ╨║╨╛╤В╨╛╤А╤Л╨╝ ╨│╨▓╨░╤А╨┤ ╨┐╤А╨╛╨╕╨╖╨╜╨╛╤Б╨╕╤ В ╤Д╤А╨░╨╖╤Л, ╨░╨┤╤А╨╡╤Б╤Г╨╡╨╝╤Л╨╡ ╨┐╤А╨╛╤Е╨╛╨┤╤П╤Й╨╕╨╝ ╨╝╨╕╨╝╨╛ ╨╕╨│╤А╨╛╨║╨░╨╝ ^^^^ Syntax error on token "_000", delete this token ---------- 10. ERROR in \ChattyGuard.java (at line 16) private static final long _sayAggroPeriod = 10_000; // ╨Ь╨╕╨╜╨╕╨╝╨░╨╗╤М╨ ╜╤Л╨╣ ╨┐╨╡╤А╨╕╨╛╨┤ (╨▓ ╨╝╤Б), ╤Б ╨║╨╛╤В╨╛╤А╤Л╨╝ ╨│╨▓╨░╤А╨┤ ╨┐╤А╨╛╨╕╨╖╨╜╨╛╤Б╨╕╤В ╤Д╤А╨░╨╖╤Л, ╨┐╤А╨╕ ╨╜╨░╤З╨░╨╗╨╡ ╨░╤В╨░╨║╨╕ ╨Я╨Ъ ^^^^ Syntax error on token "_000", delete this token ---------- 11. ERROR in \ChattyGuard.java (at line 76) public ChattyGuard(NpcInstance actor) ^^^^^^^^^^^ NpcInstance cannot be resolved to a type ---------- 12. ERROR in \ChattyGuard.java (at line 86) protected void onEvtSpawn() ^^^^^^^^^^^^ The method onEvtSpawn() of type ChattyGuard must override or implement a superty pe method ---------- 13. ERROR in \ChattyGuard.java (at line 90) _chattyGuard = Rnd.chance(_chattyChance) ? true : false; ^^^ Rnd cannot be resolved ---------- 14. ERROR in \ChattyGuard.java (at line 92) super.onEvtSpawn(); ^^^^^^^^^^ The method onEvtSpawn() is undefined for the type Object ---------- 15. ERROR in \ChattyGuard.java (at line 96) public boolean checkAggression(Creature target) ^^^^^^^^ Creature cannot be resolved to a type ---------- 16. ERROR in \ChattyGuard.java (at line 100) NpcInstance actor = getActor(); ^^^^^^^^^^^ NpcInstance cannot be resolved to a type ---------- 17. ERROR in \ChattyGuard.java (at line 100) NpcInstance actor = getActor(); ^^^^^^^^ The method getActor() is undefined for the type ChattyGuard ---------- 18. ERROR in \ChattyGuard.java (at line 101) Player player = target.getPlayer(); ^^^^^^ Player cannot be resolved to a type ---------- 19. ERROR in \ChattyGuard.java (at line 108) if (Rnd.chance(_sayNormalChance) && _lastNormalSay + _sayNormalPeriod < System.currentTimeMillis() && actor.isInRange(player, 250L)) ^^^ Rnd cannot be resolved ---------- 20. ERROR in \ChattyGuard.java (at line 110) Functions.npcSay(actor, player.getAppearance().getSex() == Sex.MALE ? _n ormalTextM[Rnd.get(_normalTextM.length)].replace("{name}", player.getName()) : _ normalTextF[Rnd.get(_normalTextF.length)].replace("{name}", player.getName())); ^^^^^^^^^ Functions cannot be resolved ---------- 21. ERROR in \ChattyGuard.java (at line 110) Functions.npcSay(actor, player.getAppearance().getSex() == Sex.MALE ? _n ormalTextM[Rnd.get(_normalTextM.length)].replace("{name}", player.getName()) : _ normalTextF[Rnd.get(_normalTextF.length)].replace("{name}", player.getName())); ^^^ Sex cannot be resolved ---------- 22. ERROR in \ChattyGuard.java (at line 110) Functions.npcSay(actor, player.getAppearance().getSex() == Sex.MALE ? _n ormalTextM[Rnd.get(_normalTextM.length)].replace("{name}", player.getName()) : _ normalTextF[Rnd.get(_normalTextF.length)].replace("{name}", player.getName())); ^^^ Rnd cannot be resolved ---------- 23. ERROR in \ChattyGuard.java (at line 110) Functions.npcSay(actor, player.getAppearance().getSex() == Sex.MALE ? _n ormalTextM[Rnd.get(_normalTextM.length)].replace("{name}", player.getName()) : _ normalTextF[Rnd.get(_normalTextF.length)].replace("{name}", player.getName())); ^^^ Rnd cannot be resolved ---------- 24. ERROR in \ChattyGuard.java (at line 118) Functions.npcSay(actor, _aggroText[Rnd.get(_aggroText.length)].replace(" {name}", player.getName())); ^^^^^^^^^ Functions cannot be resolved ---------- 25. ERROR in \ChattyGuard.java (at line 118) Functions.npcSay(actor, _aggroText[Rnd.get(_aggroText.length)].replace(" {name}", player.getName())); ^^^ Rnd cannot be resolved ---------- 25 problems (25 errors)Syntax error on token "_000", delete this token Syntax error on token "_000", delete this token Guard cannot be resolved to a type The import l2p cannot be resolved The import l2p cannot be resolved The import l2p cannot be resolved The import l2p cannot be resolved The import l2p cannot be resolved The import l2p cannot be resolved The import l2p cannot be resolved NpcInstance cannot be resolved to a type Creature cannot be resolved to a type The method onEvtSpawn() of type ai.custom.ChattyGuard must override or implement a supertype method Rnd cannot be resolved The method onEvtSpawn() is undefined for the type java.lang.Object NpcInstance cannot be resolved to a type The method getActor() is undefined for the type ai.custom.ChattyGuard Player cannot be resolved to a type Rnd cannot be resolved Functions cannot be resolved Sex cannot be resolved Rnd cannot be resolved Rnd cannot be resolved Functions cannot be resolved Rnd cannot be resolved Failed executing script: D:\Super_l2j_pw\gameserver\data\scripts\teleports\Chatt yGuard.java. See ChattyGuard.java.error.log for details. GameServer: Compiled Scripts Cache is disabled. SevenSigns: Currently in the Competition (Quest Event) period! SevenSigns: The Seal of Avarice remains unclaimed. SevenSigns: The Seal of Gnosis remains unclaimed. SevenSigns: The Seal of Strife remains unclaimed. SevenSigns: The competition, if the current trend continues, will end in a tie t his week. SevenSigns: Next period begins in 1 days, 8 hours and 30 mins. SevenSignsFestival: The first Festival of Darkness cycle begins in 2 minute(s). FourSepulchersManager: loaded 20 Mysterious-Box spawns. FourSepulchersManager: loaded 716 Physical type monsters spawns. FourSepulchersManager: loaded 716 Magical type monsters spawns. FourSepulchersManager: loaded 92 Church of duke monsters spawns. FourSepulchersManager: loaded 68 Emperor's grave NPC spawns. FourSepulchersManager: spawned Conquerors' Sepulcher Manager FourSepulchersManager: spawned Emperors' Sepulcher Manager FourSepulchersManager: spawned Great Sages' Sepulcher Manager FourSepulchersManager: spawned Judges' Sepulcher Manager FourSepulchersManager: Beginning in Attack time Sun Oct 05 09:29:13 EEST 2014 Atk announce scheduled to 30.0 minute of this hour . AdminCommandHandler: Loaded 383 handlers. Olympiad System: Loading Olympiad System.... Olympiad System: Currently in Olympiad Period Olympiad System: Period Ends.... Olympiad System: In 26 days, 15 hours and 31 mins. Olympiad System: Next Weekly Change is in.... Olympiad System: In 6 days, 23 hours and 59 mins. Olympiad System: Loaded 0 Noblesses Olympiad System: Competition Period Starts in 0 days, 8 hours and 31 mins. Olympiad System: Event starts/started: Sun Oct 05 18:00:36 EEST 2014 Hero System: Loaded 0 Heroes. Hero System: Loaded 0 all time Heroes. Hero System: Loaded 0 Diaries. CursedWeaponsManager: Loaded 2 cursed weapon(s). TownManager: Loaded. AutoChatHandler: Loaded 32 handlers in total. AutoSpawnHandler: Loaded 130 handlers in total. IdFactory: Free ObjectID's remaining: 1879005945 TvTEventEngine[TvTManager.TvTManager()]: Started. Fight Club - loaded 22arenas. GameServer: Started, free memory 514 Mb of 1011 Mb #Connecting to login on 127.0.0.1:9014 GameServer: Telnet server is currently disabled. GameServer: Maximum Numbers of Connected Players: 1500 #Auto Restart: scheduled at 24 hour. (2310 minutes remaining.) CatsGuard CatsGuard: Loaded 0 banned hwid(s) CatsGuard: Ready ##Server Golden ready on 127.0.0.1:7777 сборк ПВ Изменено 5 октября, 2014 пользователем Nainer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GoodDev 79 Опубликовано 5 октября, 2014 так тяжело переписать....ужассссс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nainer 15 Опубликовано 5 октября, 2014 (изменено) package ai; import net.sf.l2j.commons.util.Rnd; import net.sf.l2j.gameserver.ai.Guard; import net.sf.l2j.gameserver.model.Creature; import net.sf.l2j.gameserver.model.Player; import net.sf.l2j.gameserver.model.base.Sex; import net.sf.l2j.gameserver.model.instances.NpcInstance; import net.sf.l2j.gameserver.scripts.Functions; public class ChattyGuard extends Guard непашет (( Изменено 5 октября, 2014 пользователем Nainer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 5 октября, 2014 ну дак тупое изменение импортов тут не поможет - такое поможет только тем у кого сборки на базе овера, на основе феникса чуть посложнее, а остальным уже придетс подумать что и где менять кроме импортов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hibary 0 Опубликовано 4 июня, 2015 ну дак тупое изменение импортов тут не поможет - такое поможет только тем у кого сборки на базе овера, на основе феникса чуть посложнее, а остальным уже придетс подумать что и где менять кроме импортов. А не можешь подсказать в какую сторону копать на сборках на основе феникса? Весь день уже убил единственнное, что удалось - это ПКашником кричать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 5 июня, 2015 дак там по сути чисто импорты сменить, да поменять названия некоторых классов и все - что на что и так понятно по сути, достаточно чуть подумать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hibary 0 Опубликовано 5 июня, 2015 дак там по сути чисто импорты сменить, да поменять названия некоторых классов и все - что на что и так понятно по сути, достаточно чуть подумать. Да я уже ночью допетрил, что я после долгой паузы забыл ии вписать нпц=) щас вроде работает=) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vvvvv 0 Опубликовано 11 января, 2016 для Luceru можно сие чудо? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 11 января, 2016 (изменено) для Luceru можно сие чудо? Небольшой набросок под то, что есть под рукой, то есть под PW-soft package ai; import javolution.util.FastList; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; import net.sf.l2j.util.Rnd; /** * * @author calypso * */ public class ChattyNpc extends QuestJython { // шанс отправки сообщения в чат private static final int sayChance = 50; // как часто будем искать игроков рядом с собой (в секундах) private static final long searchInterval = 10; // в каком радиусе будем искать игроков private static final int applyRange = 1000; // список "говорящих" нпц private static final int[] npcList = { 18342, 20001 }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам мужского пола private static final String[] _normalTextM = { "{name}, есть чо?", "{name}, превед!", "{name}, привет!", "{name}, привет пративный.", "{name}, дай оружие на минутку, хочу скрин сделать.", "{name}, удачной охоты.", "{name}, в чем сила, брат?", "{name}, больше фрагов тебе.", "{name}, ты мне в кошмарах снился.", "{name}, я тебя знаю - тебя давно разыскивают за убийства невинных монстров.", "{name}, пвп или засцал?", "{name}, у тебя кошелек выпал.", "{name}, не пойду я с тобой на свидание, даже не проси.", "Всем чмоке в этом чате." }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам женского пола private static final String[] _normalTextF = { "{name}, привет красавица.", "{name}, ух ты, какие у тебя... э... глаза.", "{name}, не хочешь погулять с настоящим мачо?", "{name}, привет!", "{name}, дай потрогать... э... ну вобщем дай чего нибудь потрогать.", "{name}, не женское это дело - врагов убивать.", "{name}, у тебя верх порвался, не свети... глазками.", "{name}, ах какие булочки...", "{name}, ах какие ножки...", "{name}, да ты красотка однако.", "{name}, вах, какая женщина, мне бы такую.", "{name}, а что вы делаете сегодня вечером?", "{name}, вы согласны что с точки зрения банальной эрудиции, не всякий локально селектированный индивидуум способен игнорировать тенденции потенциальных эмоций и паритетно аллоцировать амбивалентные кванты логистики, экстрагируемой с учетом антропоморфности эвристического генезиса?", "{name}, предлагаю руку и сердце. И кошелек после свадьбы." }; public ChattyNpc(int questId, String name, String descr) { super(questId, name, descr); for (int i : npcList) addSpawnId(i); } @Override public String onSpawn(L2NpcInstance npc) { ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SayTask(npc), searchInterval * 1000, searchInterval * 1000); return super.onSpawn(npc); } public class SayTask implements Runnable { L2NpcInstance npc; public SayTask(L2NpcInstance _npc) { npc = _npc; } public void run() { try { if (Rnd.chance(sayChance)) { FastList<L2PcInstance> players = npc.getKnownList().getKnownPlayersInRadius(applyRange); if (players != null) { L2PcInstance player = players.get(Rnd.get(0, players.size() - 1)); if (player.getAppearance().getSex()) npc.sayString(_normalTextF[Rnd.get(0, _normalTextF.length - 1)].replace("{name}", player.getName())); else npc.sayString(_normalTextM[Rnd.get(0, _normalTextM.length - 1)].replace("{name}", player.getName())); } } } catch (Throwable t) { _log.info("Error while SayTask(): " + t.getMessage()); } } } public static void main(String... arguments) { new ChattyNpc(-1, "ChattyNpc", "ChattyNpc"); } } Изменено 11 января, 2016 пользователем Calyps0 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vvvvv 0 Опубликовано 11 января, 2016 (изменено) под пв то хорошо, но нужно под люську. плюсонул Изменено 11 января, 2016 пользователем vvvvv Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sniper 47 Опубликовано 11 января, 2016 так пашет у кого под ПВ или нет 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 8 января, 2017 Небольшой набросок под то, что есть под рукой, то есть под PW-soft package ai; import javolution.util.FastList; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; import net.sf.l2j.util.Rnd; /** * * @[member='Authority'] calypso * */ public class ChattyNpc extends QuestJython { // шанс отправки сообщения в чат private static final int sayChance = 50; // как часто будем искать игроков рядом с собой (в секундах) private static final long searchInterval = 10; // в каком радиусе будем искать игроков private static final int applyRange = 1000; // список "говорящих" нпц private static final int[] npcList = { 18342, 20001 }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам мужского пола private static final String[] _normalTextM = { "{name}, есть чо?", "{name}, превед!", "{name}, привет!", "{name}, привет пративный.", "{name}, дай оружие на минутку, хочу скрин сделать.", "{name}, удачной охоты.", "{name}, в чем сила, брат?", "{name}, больше фрагов тебе.", "{name}, ты мне в кошмарах снился.", "{name}, я тебя знаю - тебя давно разыскивают за убийства невинных монстров.", "{name}, пвп или засцал?", "{name}, у тебя кошелек выпал.", "{name}, не пойду я с тобой на свидание, даже не проси.", "Всем чмоке в этом чате." }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам женского пола private static final String[] _normalTextF = { "{name}, привет красавица.", "{name}, ух ты, какие у тебя... э... глаза.", "{name}, не хочешь погулять с настоящим мачо?", "{name}, привет!", "{name}, дай потрогать... э... ну вобщем дай чего нибудь потрогать.", "{name}, не женское это дело - врагов убивать.", "{name}, у тебя верх порвался, не свети... глазками.", "{name}, ах какие булочки...", "{name}, ах какие ножки...", "{name}, да ты красотка однако.", "{name}, вах, какая женщина, мне бы такую.", "{name}, а что вы делаете сегодня вечером?", "{name}, вы согласны что с точки зрения банальной эрудиции, не всякий локально селектированный индивидуум способен игнорировать тенденции потенциальных эмоций и паритетно аллоцировать амбивалентные кванты логистики, экстрагируемой с учетом антропоморфности эвристического генезиса?", "{name}, предлагаю руку и сердце. И кошелек после свадьбы." }; public ChattyNpc(int questId, String name, String descr) { super(questId, name, descr); for (int i : npcList) addSpawnId(i); } @[member='override'] public String onSpawn(L2NpcInstance npc) { ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SayTask(npc), searchInterval * 1000, searchInterval * 1000); return super.onSpawn(npc); } public class SayTask implements Runnable { L2NpcInstance npc; public SayTask(L2NpcInstance _npc) { npc = _npc; } public void run() { try { if (Rnd.chance(sayChance)) { FastList<L2PcInstance> players = npc.getKnownList().getKnownPlayersInRadius(applyRange); if (players != null) { L2PcInstance player = players.get(Rnd.get(0, players.size() - 1)); if (player.getAppearance().getSex()) npc.sayString(_normalTextF[Rnd.get(0, _normalTextF.length - 1)].replace("{name}", player.getName())); else npc.sayString(_normalTextM[Rnd.get(0, _normalTextM.length - 1)].replace("{name}", player.getName())); } } } catch (Throwable t) { _log.info("Error while SayTask(): " + t.getMessage()); } } } public static void main(String... arguments) { new ChattyNpc(-1, "ChattyNpc", "ChattyNpc"); } } пишет ошибку 1. ERROR in \ChattyGuard.java (at line 16) public class ChattyNpc extends QuestJython { ^^^^^^^^^ The public type ChattyNpc must be defined in its own file , на пвсофт ставлю, что не так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rebegin 1 Опубликовано 10 января, 2017 пишет ошибку 1. ERROR in \ChattyGuard.java (at line 16) public class ChattyNpc extends QuestJython { ^^^^^^^^^ The public type ChattyNpc must be defined in its own file , на пвсофт ставлю, что не так? Назови файл ChattyNpc а не ChattyGuard Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 11 января, 2017 Назови файл ChattyNpc а не ChattyGuard назвал , переименовал вот такая GameServer: Loading Server Scripts java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.l2jserver.script.java.JavaScriptEngine.evalClass(JavaScriptEngine .java:464) at com.l2jserver.script.java.JavaScriptEngine.eval(JavaScriptEngine.java :116) at com.l2jserver.script.java.JavaScriptEngine.eval(JavaScriptEngine.java :122) at scripts.scripting.L2ScriptEngineManager.executeScript(L2ScriptEngineM anager.java:432) at scripts.scripting.L2ScriptEngineManager.executeScript(L2ScriptEngineM anager.java:388) at scripts.scripting.L2ScriptEngineManager.executeScriptList(L2ScriptEng ineManager.java:235) at net.sf.l2j.gameserver.GameServer.(GameServer.java:330) at net.sf.l2j.gameserver.GameServer.main(GameServer.java:576) Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.AbstractStringBuilder.delete(Unknown Source) at java.lang.StringBuffer.delete(Unknown Source) at net.sf.l2j.gameserver.model.quest.Quest.(Quest.java:116) at net.sf.l2j.gameserver.model.quest.jython.QuestJython.(QuestJyth on.java:74) at ai.ChattyNpc.(ChattyNpc.java:45) at ai.ChattyNpc.main(ChattyNpc.java:83) ... 12 more Failed executing script: C:\Demonicv2\gameserver\data\scripts\ai\ChattyNpc.java. See ChattyNpc.java.error.log for details. GameServer: Compiled Scripts Cache is disabled. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TEPAHOBA 2 Опубликовано 26 сентября, 2017 Народ подскажите, под пв софт сделал как написал : @@CalypsoToolz , но у меня пишет ошибку как у @@obves Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TEPAHOBA 2 Опубликовано 27 сентября, 2017 Парни помоги подправить под ПВ софт . Делал как написал: @@CalypsoToolz Но выбивает ошибку: Error on: E:\server\gameserver\data\scripts\ai\ChattyNpc.java.error.log Line: -1 - Column: -1 java.lang.reflect.InvocationTargetException Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 27 сентября, 2017 Парни помоги подправить под ПВ софт . Делал как написал: @@CalypsoToolz Но выбивает ошибку: Error on: E:\server\gameserver\data\scripts\ai\ChattyNpc.java.error.log Line: -1 - Column: -1 java.lang.reflect.InvocationTargetException Попробуй здесь изменить "-1" на свободный ид квеста: public static void main(String... arguments) { new ChattyNpc(-1, "ChattyNpc", "ChattyNpc"); } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TEPAHOBA 2 Опубликовано 27 сентября, 2017 Попробуй здесь изменить "-1" на свободный ид квеста: public static void main(String... arguments) { new ChattyNpc(-1, "ChattyNpc", "ChattyNpc"); } пробовал все это время менять значения от -100 до 1000 ( выборочно заходил смотрел по квестам ), потом от 1005 до 9999 и без результата пишет при изменение -1 в логе ошибке: Error on: E:\server\gameserver\data\scripts\ai\ChattyNpc.java.error.log Line: -1 - Column: -1 compilation failed может еще что надо править? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 27 сентября, 2017 (изменено) пробовал все это время менять значения от -100 до 1000 ( выборочно заходил смотрел по квестам ), потом от 1005 до 9999 и без результата пишет при изменение -1 в логе ошибке: Error on: E:\server\gameserver\data\scripts\ai\ChattyNpc.java.error.log Line: -1 - Column: -1 compilation failed может еще что надо править? Пользуйся: package ai; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ScheduledFuture; import javolution.util.FastList; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; import net.sf.l2j.util.Rnd; /** * * @[member='Authority'] CalypsoToolz * */ public class ChattyNpc extends QuestJython { // шанс отправки сообщения в чат private static final int sayChance = 50; // как часто будем искать игроков рядом с собой (в секундах) private static final long searchInterval = 10; // в каком радиусе будем искать игроков private static final int applyRange = 1000; // список "говорящих" нпц private static final int[] npcList = { 18342, 20001 }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам мужского пола private static final String[] _normalTextM = { "{name}, есть чо?", "{name}, превед!", "{name}, привет!", "{name}, привет пративный.", "{name}, дай оружие на минутку, хочу скрин сделать.", "{name}, удачной охоты.", "{name}, в чем сила, брат?", "{name}, больше фрагов тебе.", "{name}, ты мне в кошмарах снился.", "{name}, я тебя знаю - тебя давно разыскивают за убийства невинных монстров.", "{name}, пвп или засцал?", "{name}, у тебя кошелек выпал.", "{name}, не пойду я с тобой на свидание, даже не проси.", "Всем чмоке в этом чате." }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам женского пола private static final String[] _normalTextF = { "{name}, привет красавица.", "{name}, ух ты, какие у тебя... э... глаза.", "{name}, не хочешь погулять с настоящим мачо?", "{name}, привет!", "{name}, дай потрогать... э... ну вобщем дай чего нибудь потрогать.", "{name}, не женское это дело - врагов убивать.", "{name}, у тебя верх порвался, не свети... глазками.", "{name}, ах какие булочки...", "{name}, ах какие ножки...", "{name}, да ты красотка однако.", "{name}, вах, какая женщина, мне бы такую.", "{name}, а что вы делаете сегодня вечером?", "{name}, вы согласны что с точки зрения банальной эрудиции, не всякий локально селектированный индивидуум способен игнорировать тенденции потенциальных эмоций и паритетно аллоцировать амбивалентные кванты логистики, экстрагируемой с учетом антропоморфности эвристического генезиса?", "{name}, предлагаю руку и сердце. И кошелек после свадьбы." }; private static final Map<Integer, ScheduledFuture<?>> tasks = new HashMap<Integer, ScheduledFuture<?>>(); public ChattyNpc(int questId, String name, String descr) { super(questId, name, descr, 1); for (int i : npcList) { addSpawnId(i); addKillId(i); } } @[member='override'] public String onSpawn(L2NpcInstance npc) { tasks.put(npc.getObjectId(), ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SayTask(npc), searchInterval * 1000, searchInterval * 1000)); return super.onSpawn(npc); } @[member='override'] public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet) { tasks.remove(npc.getObjectId()).cancel(true); return super.onKill(npc, killer, isPet); } public class SayTask implements Runnable { L2NpcInstance npc; public SayTask(L2NpcInstance _npc) { npc = _npc; } public void run() { try { if(npc.isDead()) return; if (Rnd.chance(sayChance)) { FastList<L2PcInstance> players = npc.getKnownList().getKnownPlayersInRadius(applyRange); if (players != null && !players.isEmpty()) { L2PcInstance player = players.get(Rnd.get(0, players.size() - 1)); if (player.getAppearance().getSex()) npc.sayString(_normalTextF[Rnd.get(0, _normalTextF.length - 1)].replace("{name}", player.getName())); else npc.sayString(_normalTextM[Rnd.get(0, _normalTextM.length - 1)].replace("{name}", player.getName())); } } } catch (Throwable t) { _log.info("Error while SayTask(): " + t.getMessage()); t.printStackTrace(); } } } public static void main(String[] args) { new ChattyNpc(-1, "ChattyNpc", "ChattyNpc"); } } Изменено 27 сентября, 2017 пользователем CalypsoToolz 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TEPAHOBA 2 Опубликовано 28 сентября, 2017 Спасибо @@CalypsoToolz Огромное человеческое спасибо. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Bremn0n 12 Опубликовано 28 сентября, 2017 А для l2jserver есть?) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 6 октября, 2017 Пользуйся: package ai; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ScheduledFuture; import javolution.util.FastList; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; import net.sf.l2j.util.Rnd; /** * * @[member='Authority'] CalypsoToolz * */ public class ChattyNpc extends QuestJython { // шанс отправки сообщения в чат private static final int sayChance = 50; // как часто будем искать игроков рядом с собой (в секундах) private static final long searchInterval = 10; // в каком радиусе будем искать игроков private static final int applyRange = 1000; // список "говорящих" нпц private static final int[] npcList = { 18342, 20001 }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам мужского пола private static final String[] _normalTextM = { "{name}, есть чо?", "{name}, превед!", "{name}, привет!", "{name}, привет пративный.", "{name}, дай оружие на минутку, хочу скрин сделать.", "{name}, удачной охоты.", "{name}, в чем сила, брат?", "{name}, больше фрагов тебе.", "{name}, ты мне в кошмарах снился.", "{name}, я тебя знаю - тебя давно разыскивают за убийства невинных монстров.", "{name}, пвп или засцал?", "{name}, у тебя кошелек выпал.", "{name}, не пойду я с тобой на свидание, даже не проси.", "Всем чмоке в этом чате." }; // Фразы, которые может произнести гвард, адресуя их проходящим мимо игрокам женского пола private static final String[] _normalTextF = { "{name}, привет красавица.", "{name}, ух ты, какие у тебя... э... глаза.", "{name}, не хочешь погулять с настоящим мачо?", "{name}, привет!", "{name}, дай потрогать... э... ну вобщем дай чего нибудь потрогать.", "{name}, не женское это дело - врагов убивать.", "{name}, у тебя верх порвался, не свети... глазками.", "{name}, ах какие булочки...", "{name}, ах какие ножки...", "{name}, да ты красотка однако.", "{name}, вах, какая женщина, мне бы такую.", "{name}, а что вы делаете сегодня вечером?", "{name}, вы согласны что с точки зрения банальной эрудиции, не всякий локально селектированный индивидуум способен игнорировать тенденции потенциальных эмоций и паритетно аллоцировать амбивалентные кванты логистики, экстрагируемой с учетом антропоморфности эвристического генезиса?", "{name}, предлагаю руку и сердце. И кошелек после свадьбы." }; private static final Map<Integer, ScheduledFuture<?>> tasks = new HashMap<Integer, ScheduledFuture<?>>(); public ChattyNpc(int questId, String name, String descr) { super(questId, name, descr, 1); for (int i : npcList) { addSpawnId(i); addKillId(i); } } @[member='override'] public String onSpawn(L2NpcInstance npc) { tasks.put(npc.getObjectId(), ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SayTask(npc), searchInterval * 1000, searchInterval * 1000)); return super.onSpawn(npc); } @[member='override'] public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet) { tasks.remove(npc.getObjectId()).cancel(true); return super.onKill(npc, killer, isPet); } public class SayTask implements Runnable { L2NpcInstance npc; public SayTask(L2NpcInstance _npc) { npc = _npc; } public void run() { try { if(npc.isDead()) return; if (Rnd.chance(sayChance)) { FastList<L2PcInstance> players = npc.getKnownList().getKnownPlayersInRadius(applyRange); if (players != null && !players.isEmpty()) { L2PcInstance player = players.get(Rnd.get(0, players.size() - 1)); if (player.getAppearance().getSex()) npc.sayString(_normalTextF[Rnd.get(0, _normalTextF.length - 1)].replace("{name}", player.getName())); else npc.sayString(_normalTextM[Rnd.get(0, _normalTextM.length - 1)].replace("{name}", player.getName())); } } } catch (Throwable t) { _log.info("Error while SayTask(): " + t.getMessage()); t.printStackTrace(); } } } public static void main(String[] args) { new ChattyNpc(-1, "ChattyNpc", "ChattyNpc"); } } chatty.png использовал но выдает ошибкулог в тхт Error on: C:\Demonicv2\Demonicv2\gameserver\data\scripts\ai\ChattyNpc.java.error.log Line: -1 - Column: -1 compilation failed во время загрузки геймдата ---------- 1. ERROR in \ChattyNpc.java (at line 59) @@override ^^^^^^^^ override cannot be resolved to a type ---------- 2. ERROR in \ChattyNpc.java (at line 65) @@override ^^^^^^^^ override cannot be resolved to a type ---------- 2 problems (2 errors) override cannot be resolved to a type override cannot be resolved to a type Failed executing script: C:\Demonicv2\Demonicv2\gameserver\data\scripts\ai\Chatt yNpc.java. See ChattyNpc.java.error.log for details. CalypsoToolz помоги плиз что не так??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 6 октября, 2017 использовал но выдает ошибкулог в тхт Error on: C:\Demonicv2\Demonicv2\gameserver\data\scripts\ai\ChattyNpc.java.error.log Line: -1 - Column: -1 compilation failed во время загрузки геймдата ---------- 1. ERROR in \ChattyNpc.java (at line 59) @@override ^^^^^^^^ override cannot be resolved to a type ---------- 2. ERROR in \ChattyNpc.java (at line 65) @@override ^^^^^^^^ override cannot be resolved to a type ---------- 2 problems (2 errors) override cannot be resolved to a type override cannot be resolved to a type Failed executing script: C:\Demonicv2\Demonicv2\gameserver\data\scripts\ai\Chatt yNpc.java. See ChattyNpc.java.error.log for details. CalypsoToolz помоги плиз что не так??? @override перепиши с Большой буквы, ибо форум исправляет на линк юзера 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты