craftyf0x 0 Опубликовано 18 сентября, 2015 (изменено) Сборка 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 Подскажите кто знает, что не правильно?? И можно ли как-то по прежнему добавлять скрипты без заливания их в ядро? Изменено 18 сентября, 2015 пользователем craftyf0x Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 18 сентября, 2015 Сборка 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); 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
craftyf0x 0 Опубликовано 18 сентября, 2015 На сколько знаю в конструктор идет 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"); Потому что с ними било ошибку компиляции. Сейчас же ошибку не бьёт. Но я не понимаю как добавить скрипт. Есть ещё варианты? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
craftyf0x 0 Опубликовано 18 сентября, 2015 Закрывайте. Проблема решена Благо глава ациса хороший человек и указал на ошибки) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 18 сентября, 2015 Закрывайте. Проблема решена Благо глава ациса хороший человек и указал на ошибки) опишите способ решения, вдруг кто столкнётся с подобной ошибкой. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты