Gaikotsu

Chatty Guard Ai

В теме 29 сообщений

thumb-a3793a8719e337e7506870a73bbec4a6-snap0748.png

Название: Chatty Guard AI

Добавил: Gaikotsu

Добавлен: 05 Oct 2014

Категория: Серверные дополнения

Автор: Gaikotsu

Хроники: Все

 

Простое AI гварда, любящего поболтать с проходящими мимо него игроками, а так же выкрикивающим разные фразы при обнаружении и атаке ПК.

 

Нажмите здесь, чтобы скачать файл

  • Upvote 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

сборк ПВ

Изменено пользователем Nainer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

непашет ((

Изменено пользователем Nainer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну дак тупое изменение импортов тут не поможет - такое поможет только тем у кого сборки на базе овера, на основе феникса чуть посложнее, а остальным уже придетс подумать что и где менять кроме импортов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну дак тупое изменение импортов тут не поможет - такое поможет только тем у кого сборки на базе овера, на основе феникса чуть посложнее, а остальным уже придетс подумать что и где менять кроме импортов.

А не можешь подсказать в какую сторону копать на сборках на основе феникса? Весь день уже убил единственнное, что удалось - это ПКашником кричать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дак там по сути чисто импорты сменить, да поменять названия некоторых классов и все - что на что и так понятно по сути, достаточно чуть подумать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дак там по сути чисто импорты сменить, да поменять названия некоторых классов и все - что на что и так понятно по сути, достаточно чуть подумать.

Да я уже ночью допетрил, что я после долгой паузы забыл ии вписать нпц=) щас вроде работает=)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для 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");
	}
}

Изменено пользователем Calyps0
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

под пв то хорошо, но нужно под люську. плюсонул

Изменено пользователем vvvvv

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Небольшой набросок под то, что есть под рукой, то есть под 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 

 

, на пвсофт ставлю, что не так? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

пишет ошибку 

 

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 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Назови файл 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.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Парни помоги подправить под ПВ софт .

 

Делал как написал:

 

@@CalypsoToolz

 

Но выбивает ошибку:

 

 

Error on: E:\server\gameserver\data\scripts\ai\ChattyNpc.java.error.log
Line: -1 - Column: -1
 
java.lang.reflect.InvocationTargetException

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Парни помоги подправить под ПВ софт .

 

Делал как написал:

 

@@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");
	}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Попробуй здесь изменить "-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
 
может еще что надо править?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

пробовал все это время менять значения от -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");
	}
}
 

 

 

post-6070-0-55267000-1506542027_thumb.png

Изменено пользователем CalypsoToolz
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пользуйся:

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");
	}
}
 

 

 

attachicon.gifchatty.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 помоги плиз что не так???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

использовал но выдает ошибку

лог в тхт

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 перепиши с Большой буквы, ибо форум исправляет на линк юзера

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу