Перейти к содержанию
Авторизация  
craftyf0x

Помогите со скриптом

Рекомендуемые сообщения

Сборка acis 352. Скрипты переместили вот так вот ещё в 348 реве.

 

Scripts
   - Drop the external compiler, leading to -8mo RAM usage at startup and 2 libs drop. Server starts in 14sec instead of 1min+.
   - All scripts are moved inside core side ; scripts HTMs are moved into data/htm folder.
   - scripts.cfg is replaced by scripts.xml ; it is moved to data/xml.
   - Drop the possibility to load/reload/bypass scripts (drop associated configs && admincommands).
   - Addition of ScheduledQuest, which will be used later for tasks rework / events.
   - L2AttackableAiScript avoids to check NpcTemplate (- 6000+ .get()).

 

Добавил скрипт об аннонсе спавна определенных рб, который работал на 340 реве ациса. Поменял только эти строки, так как были ошибки

 

Это 2 строки из старого скрипта.

public NpcScriptThree(int questId, String name, String descr)

new NpcScriptThree(-1, "NpcScriptThree", "custom"); 

Поместил сам скрипт в ядро net.sf.l2j.gameserver.scripting.scripts.custom

package net.sf.l2j.gameserver.scripting.scripts.custom;

import net.sf.l2j.gameserver.util.Broadcast;
import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.scripting.Quest;

public class NpcScriptThree extends Quest
{
	//Ид боссов
	private static final int[] BossId =
	{
		25035,
		25220,
		25054,
		25126,
		25325,
		25309,
		25312,
		25299,
		25302,
		25269,
		25163,
		25453,
		25328,
		25202,
		25109,
		25319,
	};
	
	public NpcScriptThree(int questId, String descr)
	{
		super(questId, descr);
		for (int BossIds : BossId)
			addSpawnId(BossIds);
	}
	
	@Override
	public String onSpawn(L2Npc raidboss)
	{
		int npcId = raidboss.getNpcId();
		for (int id : BossId)
			if (npcId == id)
				Broadcast.announceToOnlinePlayers("RaidBoss : " + raidboss.getName() + " spawn in the world!");
		return super.onSpawn(raidboss);
	}
	
	public static void main(String[] args)
	{
		new NpcScriptThree(-1, "custom");
	}
}

В файле xml дописал

<script path="scripts.custom.HeroWeapon"/>

<script path="scripts.custom.NpcScriptThree"/>

 

 

Но при загрузке гейм сервера бьёт ошибку 

ScriptManager: Error loading "scripts.xml" file, java.lang.InstantiationException: net.sf.l2j.gameserver.scripting.scripts.custom.NpcScriptThree

 

 

Подскажите кто знает, что не правильно??

И можно ли как-то по прежнему добавлять скрипты без заливания их в ядро?

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

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


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

Сборка acis 352. Скрипты переместили вот так вот ещё в 348 реве.

 

Scripts

   - Drop the external compiler, leading to -8mo RAM usage at startup and 2 libs drop. Server starts in 14sec instead of 1min+.

   - All scripts are moved inside core side ; scripts HTMs are moved into data/htm folder.

   - scripts.cfg is replaced by scripts.xml ; it is moved to data/xml.

   - Drop the possibility to load/reload/bypass scripts (drop associated configs && admincommands).

   - Addition of ScheduledQuest, which will be used later for tasks rework / events.

   - L2AttackableAiScript avoids to check NpcTemplate (- 6000+ .get()).

 

Добавил скрипт об аннонсе спавна определенных рб, который работал на 340 реве ациса. Поменял только эти строки, так как были ошибки

 

Это 2 строки из старого скрипта.

public NpcScriptThree(int questId, String name, String descr)

new NpcScriptThree(-1, "NpcScriptThree", "custom"); 

Поместил сам скрипт в ядро net.sf.l2j.gameserver.scripting.scripts.custom

package net.sf.l2j.gameserver.scripting.scripts.custom;

import net.sf.l2j.gameserver.util.Broadcast;
import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.scripting.Quest;

public class NpcScriptThree extends Quest
{
	//Ид боссов
	private static final int[] BossId =
	{
		25035,
		25220,
		25054,
		25126,
		25325,
		25309,
		25312,
		25299,
		25302,
		25269,
		25163,
		25453,
		25328,
		25202,
		25109,
		25319,
	};
	
	public NpcScriptThree(int questId, String descr)
	{
		super(questId, descr);
		for (int BossIds : BossId)
			addSpawnId(BossIds);
	}
	
	@Override
	public String onSpawn(L2Npc raidboss)
	{
		int npcId = raidboss.getNpcId();
		for (int id : BossId)
			if (npcId == id)
				Broadcast.announceToOnlinePlayers("RaidBoss : " + raidboss.getName() + " spawn in the world!");
		return super.onSpawn(raidboss);
	}
	
	public static void main(String[] args)
	{
		new NpcScriptThree(-1, "custom");
	}
}

В файле xml дописал

<script path="scripts.custom.HeroWeapon"/>

<script path="scripts.custom.NpcScriptThree"/>

 

 

Но при загрузке гейм сервера бьёт ошибку 

ScriptManager: Error loading "scripts.xml" file, java.lang.InstantiationException: net.sf.l2j.gameserver.scripting.scripts.custom.NpcScriptThree

 

 

Подскажите кто знает, что не правильно??

И можно ли как-то по прежнему добавлять скрипты без заливания их в ядро?

На сколько знаю в конструктор идет

Quest(int,Sting,String)

или

Quest(int,Sting,String,int)

 

пробуйте заменить

super(questId, descr);

на

super(questId, "NpcScriptThree", descr);

 

  • Upvote 1

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


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

На сколько знаю в конструктор идет

Quest(int,Sting,String)

или

Quest(int,Sting,String,int)

 

пробуйте заменить

super(questId, descr);

на

super(questId, "NpcScriptThree", descr);

 

В последних ревизиях ациса поменяли конструктор. Теперь идёт Quest(int, String)    И все java файлы скриптов переехали в ядро.

 

Из-за этого и написал, что поменял эти 2 строчки 

public NpcScriptThree(int questId, String name, String descr)

new NpcScriptThree(-1, "NpcScriptThree", "custom"); 

Потому что с ними било ошибку компиляции. Сейчас же ошибку не бьёт. Но я не понимаю как добавить скрипт.

Есть ещё варианты?

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


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

Закрывайте. Проблема решена Благо глава ациса хороший человек и указал на ошибки)

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


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

Закрывайте. Проблема решена Благо глава ациса хороший человек и указал на ошибки)

опишите способ решения, вдруг кто столкнётся с подобной ошибкой.

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


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

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

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

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

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

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

Войти

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

Войти
Авторизация  

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

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

×
×
  • Создать...