PSInDIGO 1 Опубликовано 7 декабря, 2016 Здравствуйте !Я как всегда туплю... и не могу разобраться уже очень долго...Напишите пожалуйста поподробнее как например в сборку Rebellion или какую либо другую (ХФ) добавить свой скрипт и превязать его к какому нибудь нпс... например (подходишь к нпс он просит у тебя аден забирает и говорит спасибо...) Я не могу подключить скрипты и меня это убивает ! Объясните мне пожалуйста, За пиво объясните мне доходчиво.Пробовал скопировать квест из сборки и на какого ни будь другого нпс направить... Но нет ! Спасибо тем кто откликнется )! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
people 43 Опубликовано 8 декабря, 2016 Здравствуйте ! Я как всегда туплю... и не могу разобраться уже очень долго... Напишите пожалуйста поподробнее как например в сборку Rebellion или какую либо другую (ХФ) добавить свой скрипт и превязать его к какому нибудь нпс... например (подходишь к нпс он просит у тебя аден забирает и говорит спасибо...) Я не могу подключить скрипты и меня это убивает ! Объясните мне пожалуйста, За пиво объясните мне доходчиво. Пробовал скопировать квест из сборки и на какого ни будь другого нпс направить... Но нет ! Спасибо тем кто откликнется )! Стукни в ЛС или ICQ 12-13-87 помогу) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2JEnterprise 113 Опубликовано 8 декабря, 2016 Импорты исправь в первую очередь. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 8 декабря, 2016 http://l2maxi.ru/lineage2/article/3293-gayd-gayd-po-sozdaniyu-kvestov-lineage-2.html Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 Импорты исправь в первую очередь. Как именно это делается ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2JEnterprise 113 Опубликовано 10 декабря, 2016 Как именно это делается ? Ядро смотреть, или посмотреть как в родных скриптах и путем сравнения Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 (изменено) package quests; import org.mmocore.gameserver.Config;import org.mmocore.gameserver.model.base.ClassLevel;import org.mmocore.gameserver.model.instances.NpcInstance;import org.mmocore.gameserver.model.quest.Quest;import org.mmocore.gameserver.model.quest.QuestState;import org.mmocore.gameserver.serverpackets.ExShowScreenMessage;import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign;import org.mmocore.gameserver.serverpackets.components.NpcString;import org.mmocore.gameserver.scripts.ScriptFile;public class Lalala extends Quest implements ScriptFile{private final static int DARIN = 36699;private final static int ADENA = 57;@Overridepublic void onLoad(){}@Overridepublic void onReload(){}@Overridepublic void onShutdown(){}public Lalala(){super(false);addStartNpc(DARIN);addTalkId(DARIN);addTalkId(DARIN);addTalkId(DARIN);addTalkId(DARIN);addQuestItem(ADENA);}@Overridepublic String onEvent(String event, QuestState qs, NpcInstance npc){String htmltext = event;if(event.equalsIgnoreCase("quest_accept")){htmltext = "daring_q0001_06.htm";qs.setCond(1);qs.setState(STARTED);qs.giveItems(ADENA, 1, false, false);qs.playSound(SOUND_ACCEPT);}return htmltext;}@Overridepublic String onTalk(NpcInstance npc, QuestState st){String htmltext = "noquest";int npcId = npc.getNpcId();int cond = st.getCond();switch(npcId){case DARIN:if(cond == 0){if(st.getPlayer().getLevel() >= 2)htmltext = "daring_q0001_02.htm";else{htmltext = "daring_q0001_01.htm";st.exitCurrentQuest(true);}}else if(cond == 1)htmltext = "daring_q0001_07.htm";else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1){htmltext = "daring_q0001_08.htm";st.takeItems(ADENA, -1);st.giveItems(ADENA, 1, false, false);st.setCond(3);st.playSound(SOUND_MIDDLE);}else if(cond == 3)htmltext = "daring_q0001_09.htm";else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1){htmltext = "daring_q0001_10.htm";st.takeItems(ADENA, -1);st.giveItems(ADENA, 1, false, false);if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2st.getPlayer().addExpAndSp(5672, 446);st.playSound(SOUND_FINISH);st.exitCurrentQuest(false);}break;}return htmltext;}} НПС 36699 создан как "NPC" имя такое же "Darin" В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют ! Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс... Изменено 10 декабря, 2016 пользователем PSInDIGO Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 (изменено) package quests; import org.mmocore.gameserver.Config; import org.mmocore.gameserver.model.base.ClassLevel; import org.mmocore.gameserver.model.instances.NpcInstance; import org.mmocore.gameserver.model.quest.Quest; import org.mmocore.gameserver.model.quest.QuestState; import org.mmocore.gameserver.serverpackets.ExShowScreenMessage; import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign; import org.mmocore.gameserver.serverpackets.components.NpcString; import org.mmocore.gameserver.scripts.ScriptFile; public class Lalala extends Quest implements ScriptFile { private final static int DARIN = 36699; private final static int ADENA = 57; @Override public void onLoad() { } @Override public void onReload() { } @Override public void onShutdown() { } public Lalala() { super(false); addStartNpc(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addQuestItem(ADENA); } @Override public String onEvent(String event, QuestState qs, NpcInstance npc) { String htmltext = event; if(event.equalsIgnoreCase("quest_accept")) { htmltext = "daring_q0001_06.htm"; qs.setCond(1); qs.setState(STARTED); qs.giveItems(ADENA, 1, false, false); qs.playSound(SOUND_ACCEPT); } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getCond(); switch(npcId) { case DARIN: if(cond == 0) { if(st.getPlayer().getLevel() >= 2) htmltext = "daring_q0001_02.htm"; else { htmltext = "daring_q0001_01.htm"; st.exitCurrentQuest(true); } } else if(cond == 1) htmltext = "daring_q0001_07.htm"; else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1) { htmltext = "daring_q0001_08.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); st.setCond(3); st.playSound(SOUND_MIDDLE); } else if(cond == 3) htmltext = "daring_q0001_09.htm"; else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1) { htmltext = "daring_q0001_10.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1")) st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true)); st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2 st.getPlayer().addExpAndSp(5672, 446); st.playSound(SOUND_FINISH); st.exitCurrentQuest(false); } break; } return htmltext; } } НПС 36699 создан как "NPC" имя такое же "Darin" В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют ! Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс... package quests; package quests; а HTML файлы все перенесли туда? и в scritps.cfg занесен этот скрипт? он точно грузится? import org.mmocore.gameserver.Config; import org.mmocore.gameserver.model.base.ClassLevel; import org.mmocore.gameserver.model.instances.NpcInstance; import org.mmocore.gameserver.model.quest.Quest; import org.mmocore.gameserver.model.quest.QuestState; import org.mmocore.gameserver.serverpackets.ExShowScreenMessage; import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign; import org.mmocore.gameserver.serverpackets.components.NpcString; import org.mmocore.gameserver.scripts.ScriptFile; public class Lalala extends Quest implements ScriptFile { private final static int DARIN = 36699; private final static int ADENA = 57; @Override public void onLoad() { } @Override public void onReload() { } @Override public void onShutdown() { } public Lalala() { super(false); addStartNpc(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addQuestItem(ADENA); } @Override public String onEvent(String event, QuestState qs, NpcInstance npc) { String htmltext = event; if(event.equalsIgnoreCase("quest_accept")) { htmltext = "daring_q0001_06.htm"; qs.setCond(1); qs.setState(STARTED); qs.giveItems(ADENA, 1, false, false); qs.playSound(SOUND_ACCEPT); } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getCond(); switch(npcId) { case DARIN: if(cond == 0) { if(st.getPlayer().getLevel() >= 2) htmltext = "daring_q0001_02.htm"; else { htmltext = "daring_q0001_01.htm"; st.exitCurrentQuest(true); } } else if(cond == 1) htmltext = "daring_q0001_07.htm"; else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1) { htmltext = "daring_q0001_08.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); st.setCond(3); st.playSound(SOUND_MIDDLE); } else if(cond == 3) htmltext = "daring_q0001_09.htm"; else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1) { htmltext = "daring_q0001_10.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1")) st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true)); st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2 st.getPlayer().addExpAndSp(5672, 446); st.playSound(SOUND_FINISH); st.exitCurrentQuest(false); } break; } return htmltext; } } НПС 36699 создан как "NPC" имя такое же "Darin" В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют ! Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс... import org.mmocore.gameserver.Config; import org.mmocore.gameserver.model.base.ClassLevel; import org.mmocore.gameserver.model.instances.NpcInstance; import org.mmocore.gameserver.model.quest.Quest; import org.mmocore.gameserver.model.quest.QuestState; import org.mmocore.gameserver.serverpackets.ExShowScreenMessage; import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign; import org.mmocore.gameserver.serverpackets.components.NpcString; import org.mmocore.gameserver.scripts.ScriptFile; public class Lalala extends Quest implements ScriptFile { private final static int DARIN = 36699; private final static int ADENA = 57; @Override public void onLoad() { } @Override public void onReload() { } @Override public void onShutdown() { } public Lalala() { super(false); addStartNpc(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addQuestItem(ADENA); } @Override public String onEvent(String event, QuestState qs, NpcInstance npc) { String htmltext = event; if(event.equalsIgnoreCase("quest_accept")) { htmltext = "daring_q0001_06.htm"; qs.setCond(1); qs.setState(STARTED); qs.giveItems(ADENA, 1, false, false); qs.playSound(SOUND_ACCEPT); } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getCond(); switch(npcId) { case DARIN: if(cond == 0) { if(st.getPlayer().getLevel() >= 2) htmltext = "daring_q0001_02.htm"; else { htmltext = "daring_q0001_01.htm"; st.exitCurrentQuest(true); } } else if(cond == 1) htmltext = "daring_q0001_07.htm"; else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1) { htmltext = "daring_q0001_08.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); st.setCond(3); st.playSound(SOUND_MIDDLE); } else if(cond == 3) htmltext = "daring_q0001_09.htm"; else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1) { htmltext = "daring_q0001_10.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1")) st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true)); st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2 st.getPlayer().addExpAndSp(5672, 446); st.playSound(SOUND_FINISH); st.exitCurrentQuest(false); } break; } return htmltext; } } НПС 36699 создан как "NPC" имя такое же "Darin" В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют ! Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс... Изменено 10 декабря, 2016 пользователем zGosu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 а HTML файлы все перенесли туда? и в scritps.cfg занесен этот скрипт? он точно грузится? А где этот scripts.cfg ? Когда скрипт писал с ошибками то при загрузке ГС мне не мог скомпилить код... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 а HTML файлы все перенесли туда? и в scritps.cfg занесен этот скрипт? он точно грузится? Да в Data->Html->Quest->Lalala есть Html Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 (изменено) Да в Data->Html->Quest->Lalala есть Html я просто хз где в этой сборке загружаются квесты Так же рекомендую сверить ID & TYPE вашего NPC <set name="ai_type" value="CharacterAI" /> <set name="type" value="Npc" /> _666_Lalala.7z Изменено 10 декабря, 2016 пользователем zGosu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 (изменено) я просто хз где в этой сборке загружаются квесты Так же рекомендую сверить ID & TYPE вашего NPC <set name="ai_type" value="CharacterAI" /> <set name="type" value="Npc" /> <npc id="36699" name="Darin" title=""> <set name="displayId" value="30048"/> <set name="aggroRange" value="0" /> <set name="ai_type" value="CharacterAI" /> <set name="baseAtkRange" value="40" /> <set name="baseCON" value="43" /> <set name="baseCritRate" value="40" /> <set name="baseDEX" value="30" /> <set name="baseHpMax" value="2444.468" /> <set name="baseHpRate" value="1" /> <set name="baseHpReg" value="7.5" /> <set name="baseINT" value="21" /> <set name="baseMAtk" value="780" /> <set name="baseMAtkSpd" value="500" /> <set name="baseMDef" value="382" /> <set name="baseMEN" value="20" /> <set name="baseMpMax" value="1345.8" /> <set name="baseMpReg" value="2.7" /> <set name="basePAtk" value="1303" /> <set name="basePAtkSpd" value="253" /> <set name="basePDef" value="471" /> <set name="baseRunSpd" value="120" /> <set name="baseSTR" value="40" /> <set name="baseShldDef" value="0" /> <set name="baseShldRate" value="0" /> <set name="baseWIT" value="20" /> <set name="baseWalkSpd" value="50" /> <set name="castle_id" value="1" /> <set name="collision_height" value="22.0" /> <set name="collision_radius" value="8.0" /> <set name="level" value="70" /> <set name="rewardExp" value="0" /> <set name="rewardRp" value="0" /> <set name="rewardSp" value="0" /> <set name="shots" value="NONE" /> <set name="texture" value="" /> <set name="type" value="Npc" /> <skills> <skill id="4416" level="14" /> <!--Humans--> </skills> <attributes> <defence attribute="fire" value="150" /> <defence attribute="water" value="150" /> <defence attribute="wind" value="150" /> <defence attribute="earth" value="150" /> <defence attribute="holy" value="150" /> <defence attribute="unholy" value="150" /> </attributes> </npc> Изменено 10 декабря, 2016 пользователем PSInDIGO Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 (изменено) <npc id="36699" name="Darin" title=""> <set name="displayId" value="30048"/> <set name="aggroRange" value="0" /> <set name="ai_type" value="CharacterAI" /> <set name="baseAtkRange" value="40" /> <set name="baseCON" value="43" /> <set name="baseCritRate" value="40" /> <set name="baseDEX" value="30" /> <set name="baseHpMax" value="2444.468" /> <set name="baseHpRate" value="1" /> <set name="baseHpReg" value="7.5" /> <set name="baseINT" value="21" /> <set name="baseMAtk" value="780" /> <set name="baseMAtkSpd" value="500" /> <set name="baseMDef" value="382" /> <set name="baseMEN" value="20" /> <set name="baseMpMax" value="1345.8" /> <set name="baseMpReg" value="2.7" /> <set name="basePAtk" value="1303" /> <set name="basePAtkSpd" value="253" /> <set name="basePDef" value="471" /> <set name="baseRunSpd" value="120" /> <set name="baseSTR" value="40" /> <set name="baseShldDef" value="0" /> <set name="baseShldRate" value="0" /> <set name="baseWIT" value="20" /> <set name="baseWalkSpd" value="50" /> <set name="castle_id" value="1" /> <set name="collision_height" value="22.0" /> <set name="collision_radius" value="8.0" /> <set name="level" value="70" /> <set name="rewardExp" value="0" /> <set name="rewardRp" value="0" /> <set name="rewardSp" value="0" /> <set name="shots" value="NONE" /> <set name="texture" value="" /> <set name="type" value="Npc" /> <skills> <skill id="4416" level="14" /> <!--Humans--> </skills> <attributes> <defence attribute="fire" value="150" /> <defence attribute="water" value="150" /> <defence attribute="wind" value="150" /> <defence attribute="earth" value="150" /> <defence attribute="holy" value="150" /> <defence attribute="unholy" value="150" /> </attributes> </npc> еще перепиши метод onTalk. String htmltext = "noquest"; идет по дефолту. Условия не выполняются чтобы загрузить следующие html: htmltext = "daring_q0001_02.htm"; htmltext = "daring_q0001_01.htm"; htmltext = "daring_q0001_07.htm"; htmltext = "daring_q0001_08.htm"; htmltext = "daring_q0001_09.htm"; htmltext = "daring_q0001_10.htm"; Лучше возьми в пример другой кв, а то что за хрень: addStartNpc(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); Изменено 10 декабря, 2016 пользователем zGosu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 еще перепиши метод onTalk. String htmltext = "noquest"; идет по дефолту. Условия не выполняются чтобы загрузить следующие html: htmltext = "daring_q0001_02.htm"; htmltext = "daring_q0001_01.htm"; htmltext = "daring_q0001_07.htm"; htmltext = "daring_q0001_08.htm"; htmltext = "daring_q0001_09.htm"; htmltext = "daring_q0001_10.htm"; Лучше возьми в пример другой кв, а то что за хрень: addStartNpc(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); addTalkId(DARIN); Это по сути квест Письмо о любви ! самый первый квест берется в деревне людей.... Я не понимаю как он может не работать... ведь оригинальный квест работает... И он даже начальную Хтмл не показывает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 (изменено) Это по сути квест Письмо о любви ! самый первый квест берется в деревне людей.... Я не понимаю как он может не работать... ведь оригинальный квест работает... И он даже начальную Хтмл не показывает package quests; import org.mmocore.gameserver.Config; import org.mmocore.gameserver.model.base.ClassLevel; import org.mmocore.gameserver.model.instances.NpcInstance; import org.mmocore.gameserver.model.quest.Quest; import org.mmocore.gameserver.model.quest.QuestState; import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage; import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage.ScreenMessageAlign; import org.mmocore.gameserver.serverpackets.components.NpcString; public class _666_Lalala extends Quest { private final static int DARIN = 900004; private final static int ADENA = 57; public _666_Lalala() { super(false); addStartNpc(DARIN); addQuestItem(ADENA); } @Override public String onEvent(String event, QuestState qs, NpcInstance npc) { String htmltext = event; if (event.equalsIgnoreCase("quest_accept")) { htmltext = "daring_q0001_06.htm"; qs.giveItems(ADENA, 1, false); qs.playSound(SOUND_ACCEPT); qs.setCond(1); qs.setState(STARTED); } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getCond(); if(npcId == DARIN) { if (cond == 0) { if (st.getPlayer().getLevel() >= 2) { htmltext = "daring_q0001_02.htm"; } else { htmltext = "daring_q0001_01.htm"; st.exitCurrentQuest(true); } } else if (cond == 1) { htmltext = "daring_q0001_07.htm"; } else if ((cond == 2) && (st.getQuestItemsCount(ADENA) >= 1)) { htmltext = "daring_q0001_08.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); st.setCond(3); st.playSound(SOUND_MIDDLE); } else if (cond == 3) { htmltext = "daring_q0001_09.htm"; } else if ((cond == 4) && (st.getQuestItemsCount(ADENA) >= 1)) { htmltext = "daring_q0001_10.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); if (st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1")) { st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true)); } st.giveItems(ADENA_ID, (int) (((Config.RATE_QUESTS_REWARD - 1) * 1200) + (2466 * Config.RATE_QUESTS_REWARD)), false, false); // T2 st.getPlayer().addExpAndSp(5672, 446); st.playSound(SOUND_FINISH); st.exitCurrentQuest(false); } } return htmltext; } } Изменено 10 декабря, 2016 пользователем zGosu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 package quests; import org.mmocore.gameserver.Config; import org.mmocore.gameserver.model.base.ClassLevel; import org.mmocore.gameserver.model.instances.NpcInstance; import org.mmocore.gameserver.model.quest.Quest; import org.mmocore.gameserver.model.quest.QuestState; import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage; import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage.ScreenMessageAlign; import org.mmocore.gameserver.serverpackets.components.NpcString; public class _666_Lalala extends Quest { private final static int DARIN = 900004; private final static int ADENA = 57; public _666_Lalala() { super(false); addStartNpc(DARIN); addQuestItem(ADENA); } @Override public String onEvent(String event, QuestState qs, NpcInstance npc) { String htmltext = event; if (event.equalsIgnoreCase("quest_accept")) { htmltext = "daring_q0001_06.htm"; qs.giveItems(ADENA, 1, false); qs.playSound(SOUND_ACCEPT); qs.setCond(1); qs.setState(STARTED); } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getCond(); if(npcId == DARIN) { if (cond == 0) { if (st.getPlayer().getLevel() >= 2) { htmltext = "daring_q0001_02.htm"; } else { htmltext = "daring_q0001_01.htm"; st.exitCurrentQuest(true); } } else if (cond == 1) { htmltext = "daring_q0001_07.htm"; } else if ((cond == 2) && (st.getQuestItemsCount(ADENA) >= 1)) { htmltext = "daring_q0001_08.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); st.setCond(3); st.playSound(SOUND_MIDDLE); } else if (cond == 3) { htmltext = "daring_q0001_09.htm"; } else if ((cond == 4) && (st.getQuestItemsCount(ADENA) >= 1)) { htmltext = "daring_q0001_10.htm"; st.takeItems(ADENA, -1); st.giveItems(ADENA, 1, false, false); if (st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1")) { st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true)); } st.giveItems(ADENA_ID, (int) (((Config.RATE_QUESTS_REWARD - 1) * 1200) + (2466 * Config.RATE_QUESTS_REWARD)), false, false); // T2 st.getPlayer().addExpAndSp(5672, 446); st.playSound(SOUND_FINISH); st.exitCurrentQuest(false); } } return htmltext; } } ERROR Scripts: Failed running quests.Lalala.onLoad() java.lang.ArrayIndexOutOfBoundsException: 1 at org.mmocore.gameserver.model.quest.Quest.<init>(Quest.java:343) at org.mmocore.gameserver.model.quest.Quest.<init>(Quest.java:335) at quests.Lalala.<init>(Lalala.java:35) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.mmocore.gameserver.scripts.Scripts.init(Scripts.java:148) at org.mmocore.gameserver.GameServer.<init>(GameServer.java:213) at org.mmocore.gameserver.GameServer.main(GameServer.java:405) Скрипты проверил и начал запускать ГС дальше... но потом выдал это и на сервер пустил но кв не работает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 (изменено) Failed running quests.Lalala.onLoad() Я вам готовый код скинул! Вам останется 1) создать просто файл с названием _666_Lalala.java 2) засунуть туда последний код 3) переименовать папку data\html-en\quests\_001_LettersOfLove в data\html-en\quests\_666_Lalala И всё работает збс // If the file is not found, the standard message "I have nothing to say to you" is returned return "npcdefault.htm"; если не известно, почему вылезает одна html (гугл переводчик в помощь) "не загружен ваш html" Изменено 10 декабря, 2016 пользователем zGosu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 Failed running quests.Lalala.onLoad() Я вам готовый код скинул! Вам останется 1) создать просто файл с названием _666_Lalala.java 2) засунуть туда последний код 3) переименовать папку data\html-en\quests\_001_LettersOfLove в data\html-en\quests\_666_Lalala И всё работает збс Я так и сделал создал файл _666_Lalala.java и поместил туда ваш код поменяв id Нпс при этом и поместил этот файл в Data-> Sqripts-> Quest Так же перекинул htm файлы из папки _001_LettersOfLove в созданную папку _666_Lalala Но не идет... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 (изменено) У меня идет, а у Вас нет? это как? Последняя подсказка: public String getHtmlPath(int npcId, int val, Player player) { String pom; if(val == 0) pom = "" + npcId; else pom = npcId + "-" + val; if(getTemplate().getHtmRoot() != null) return getTemplate().getHtmRoot() + pom + ".htm"; String temp = "default/" + pom + ".htm"; if(HtmCache.getInstance().getIfExists(temp, player) != null) return temp; temp = "trainer/" + pom + ".htm"; if(HtmCache.getInstance().getIfExists(temp, player) != null) return temp; // If the file is not found, the standard message "I have nothing to say to you" is returned return "npcdefault.htm"; } Изменено 10 декабря, 2016 пользователем zGosu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 1) Если вылетает ошибка - поменяйте импорты (брал со сборки ЛВ, но исходники те же, что и у Вас) 2) Добавить html не только в quests (код выше) 3) Всё работает, Ура! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 1) Если вылетает ошибка - поменяйте импорты (брал со сборки ЛВ, но исходники те же, что и у Вас) 2) Добавить html не только в quests (код выше) 3) Всё работает, Ура! Дело с npcdefault.htm то убрал... ( просто забрал htm у настоящего нпс Дарина и переименовал на 36699....) Но вот при нажатии на квест вылетает html-ка no-quest.htm.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 Дело с npcdefault.htm то убрал... ( просто забрал htm у настоящего нпс Дарина и переименовал на 36699....) Но вот при нажатии на квест вылетает html-ка no-quest.htm.... Смотрите метод onTalk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PSInDIGO 1 Опубликовано 10 декабря, 2016 1) Если вылетает ошибка - поменяйте импорты (брал со сборки ЛВ, но исходники те же, что и у Вас) 2) Добавить html не только в quests (код выше) 3) Всё работает, Ура! Правда я на сборке L2j-Dev и как то Alex(Создатель сборки) говорил что у него(в 761 сборке) новые скрипты не подгружаются... но я этот квест делал на более менее старой сборке(Не помню ревизию) но тут по сравнению с новыми 761 или 800+ в Quest файлы джава файлы квестов имеются.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 Правда я на сборке L2j-Dev и как то Alex(Создатель сборки) говорил что у него(в 761 сборке) новые скрипты не подгружаются... но я этот квест делал на более менее старой сборке(Не помню ревизию) но тут по сравнению с новыми 761 или 800+ в Quest файлы джава файлы квестов имеются.... Не, кв грузит. просто гляньте метод onEvent и onTalk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 декабря, 2016 Для проверки замените String htmltext = "noquest"; на String htmltext = "This person inaccessible and does not want with you to talk!<br>Are they please returned later..."; Если This person inaccessible and does not want with you to talk!<br>Are they please returned later... Не появится, то правьте метод onEvent Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты