Energy 263 Опубликовано 24 июля, 2013 Кто шарит, помогите починить антараса в скрипте В оригинальной сборке он тоже не работает /* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package silentium.scripts.teleports; import silentium.commons.Rnd; import silentium.gameserver.GameProperties; import silentium.gameserver.data.DoorTable; import silentium.gameserver.instancemanager.GrandBossManager; import silentium.gameserver.instancemanager.QuestManager; import silentium.gameserver.model.actor.L2Npc; import silentium.gameserver.model.actor.instance.L2GrandBossInstance; import silentium.gameserver.model.actor.instance.L2PcInstance; import silentium.gameserver.model.quest.Quest; import silentium.gameserver.model.quest.QuestState; import silentium.gameserver.model.zone.type.L2BossZone; import silentium.gameserver.scripting.ScriptFile; import silentium.scripts.ai.Baium; /** * This script leads behavior of multiple bosses teleporters. * <ul> * <li>13001, Heart of Warding : Teleport into Lair of Antharas</li> * <li>29055, Teleportation Cubic : Teleport out of Baium zone</li> * <li>31859, Teleportation Cubic : Teleport out of Lair of Antharas</li> * <li>31384, Gatekeeper of Fire Dragon : Opening some doors</li> * <li>31385, Heart of Volcano : Teleport into Lair of Valakas</li> * <li>31540, Watcher of Valakas Klein : Teleport into Hall of Flames</li> * <li>31686, Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano</li> * <li>31687, Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano</li> * <li>31759, Teleportation Cubic : Teleport out of Lair of Valakas</li> * <li>31862, Angelic Vortex : Baium Teleport (3 different HTMs according of situation)</li> * <li>32109, Shilen's Stone Statue : Teleport to Sailren Lair</li> * </ul> * @author Plim, original python script by Emperorc */ public class GrandBossTeleporters extends Quest implements ScriptFile { private static final String qn = "GrandBossTeleporters"; private static final int VALAKAS = 29028; // private static final int ANTHARAS = 29019; // Dummy Antharas used for status updates only. public GrandBossTeleporters(int questId, String name, String descr) { super(questId, name, descr); addFirstTalkId(29055, 31862); addStartNpc(13001, 29055, 31859, 31384, 31385, 31540, 31686, 31687, 31759, 31862, 32109); addTalkId(13001, 29055, 31859, 31384, 31385, 31540, 31686, 31687, 31759, 31862, 32109); } private Quest valakasAI() { return QuestManager.getInstance().getQuest("valakas"); } private Quest antharasAI() { return QuestManager.getInstance().getQuest("antharas"); } @SuppressWarnings("unused") private Quest sailrenAI() { return QuestManager.getInstance().getQuest("sailren"); } private static int _valakasPlayersCount = 0; @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = player.getQuestState(qn); if (st == null) { st = newQuestState(player); } if (event.equalsIgnoreCase("baium")) { // Player is mounted on a wyvern, cancel it. if (player.isFlying()) { htmltext = "31862-05.htm"; } else if (!st.hasQuestItems(4295)) { htmltext = "31862-03.htm"; // All is ok, take the item and teleport the player inside. } else { st.takeItems(4295, 1); // allow entry for the player for the next 30 secs. GrandBossManager.getInstance().getZone(113100, 14500, 10077).allowPlayerEntry(player, 30); player.teleToLocation(113100, 14500, 10077); } } else if (event.equalsIgnoreCase("baium_story")) { htmltext = "31862-02.htm"; } else if (event.equalsIgnoreCase("baium_exit")) { final int chance = Rnd.get(3); int x, y, z; switch (chance) { case 0: x = 108784 + Rnd.get(100); y = 16000 + Rnd.get(100); z = -4928; break; case 1: x = 113824 + Rnd.get(100); y = 10448 + Rnd.get(100); z = -5164; break; default: x = 115488 + Rnd.get(100); y = 22096 + Rnd.get(100); z = -5168; break; } player.teleToLocation(x, y, z); } else if (event.equalsIgnoreCase("31540")) { if (st.hasQuestItems(7267)) { st.takeItems(7267, 1); player.teleToLocation(183813, -115157, -3303); st.set("allowEnter", "1"); } else { htmltext = "31540-06.htm"; } } return htmltext; } @Override public String onFirstTalk(L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = player.getQuestState(qn); if (st == null) { st = newQuestState(player); } switch (npc.getNpcId()) { case 29055: htmltext = "29055-01.htm"; break; case 31862: final int status = GrandBossManager.getInstance().getBossStatus(29020); if (status == Baium.AWAKE) { htmltext = "31862-01.htm"; } else if (status == Baium.DEAD) { htmltext = "31862-04.htm"; } else { htmltext = "31862-00.htm"; } break; } return htmltext; } @Override public String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = player.getQuestState(getName()); if (st == null) { return null; } switch (npc.getNpcId()) { case 13001: if (antharasAI() != null) // TODO: reactive for antharas {/* * final int status = GrandBossManager.getInstance().getBossStatus(ANTHARAS); if (status == Antharas.FIGHTING) htmltext = "13001-02.htm"; else if (status == Antharas.DEAD) htmltext = "13001-01.htm"; else if (status == Antharas.DORMANT || status == Antharas.WAITING) { if * (st.hasQuestItems(3865)) { st.takeItems(3865, 1); final L2BossZone zone = GrandBossManager.getInstance().getZone(179700, 113800, -7709); if (zone != null) zone.allowPlayerEntry(player, 30); player.teleToLocation(179700 + Rnd.get(700), 113800 + Rnd.get(2100), -7709); if (status == * Antharas.DORMANT) { GrandBossManager.getInstance().setBossStatus(ANTHARAS, 1); antharasAI().startQuestTimer("beginning", GameProperties.WAIT_TIME_ANTHARAS, null, null, false); } } else htmltext = "13001-03.htm"; } */ } break; case 31859: player.teleToLocation(79800 + Rnd.get(600), 151200 + Rnd.get(1100), -3534); break; case 31385: if (valakasAI() != null) { final int status = GrandBossManager.getInstance().getBossStatus(VALAKAS); if ((status == 0) || (status == 1)) { if (_valakasPlayersCount >= 200) { htmltext = "31385-03.htm"; } else if (st.getInt("allowEnter") == 1) { st.unset("allowEnter"); final L2BossZone zone = GrandBossManager.getInstance().getZone(212852, -114842, -1632); if (zone != null) { zone.allowPlayerEntry(player, 30); } player.teleToLocation(204328 + Rnd.get(600), -111874 + Rnd.get(600), 70); _valakasPlayersCount++; if (status == 0) { L2GrandBossInstance valakas = GrandBossManager.getInstance().getBoss(VALAKAS); valakasAI().startQuestTimer("beginning", GameProperties.WAIT_TIME_VALAKAS, valakas, null, false); GrandBossManager.getInstance().setBossStatus(VALAKAS, 1); } } else { htmltext = "31385-04.htm"; } } else if (status == 2) { htmltext = "31385-02.htm"; } else { htmltext = "31385-01.htm"; } } else { htmltext = "31385-01.htm"; } break; case 31384: DoorTable.getInstance().getDoor(24210004).openMe(); break; case 31686: DoorTable.getInstance().getDoor(24210006).openMe(); break; case 31687: DoorTable.getInstance().getDoor(24210005).openMe(); break; case 31540: if (_valakasPlayersCount < 50) { htmltext = "31540-01.htm"; } else if (_valakasPlayersCount < 100) { htmltext = "31540-02.htm"; } else if (_valakasPlayersCount < 150) { htmltext = "31540-03.htm"; } else if (_valakasPlayersCount < 200) { htmltext = "31540-04.htm"; } else { htmltext = "31540-05.htm"; } break; case 31759: player.teleToLocation(150037 + Rnd.get(500), -57720 + Rnd.get(500), -2976); break; /** * TODO: handle following cases once AI exists : * <ul> * <li>weak stones -- already dead state ? (04)</li> * <li>another party is fighting it (05)</li> * </ul> */ case 32109: if (!player.isInParty()) { htmltext = "32109-03.htm"; } else if (!player.getParty().isLeader(player)) { htmltext = "32109-01.htm"; } else { if (st.hasQuestItems(8784)) { // TODO: Activate Sailren script } else { htmltext = "32109-02.htm"; } } break; } return htmltext; } public static void main(String[] args) { new GrandBossTeleporters(-1, qn, "Teleports"); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
meX 144 Опубликовано 24 июля, 2013 Вангую, не пускает к антарасу?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 24 июля, 2013 Вангую, не пускает к антарасу?) да, проблему нашел в этом скрипте, нужна помощь, т.к. я плохо знаю яву Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
meX 144 Опубликовано 24 июля, 2013 (изменено) /del Изменено 24 июля, 2013 пользователем meX Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 24 июля, 2013 Знает кто нибудь? Помогите пж Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
meX 144 Опубликовано 24 июля, 2013 Цена вопроса? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 24 июля, 2013 Цена вопроса? говори свою цену)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 24 июля, 2013 Я дам намёк, а дальше сами. Нужно снять комментарии=) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 24 июля, 2013 Я дам намёк, а дальше сами. Нужно снять комментарии=) я сказал, что плохо знаю яву, я нормально их снять не могу Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 24 июля, 2013 Тогда, если готовы заплатить, пишите в аську (в профиле). И я вам быстренько все сделаю. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drako006 74 Опубликовано 24 июля, 2013 Если я правильно понял Naike . Вот пример комментария /** * This script leads behavior of multiple bosses teleporters. * <ul> * <li>13001, Heart of Warding : Teleport into Lair of Antharas</li> * <li>29055, Teleportation Cubic : Teleport out of Baium zone</li> * <li>31859, Teleportation Cubic : Teleport out of Lair of Antharas</li> * <li>31384, Gatekeeper of Fire Dragon : Opening some doors</li> * <li>31385, Heart of Volcano : Teleport into Lair of Valakas</li> * <li>31540, Watcher of Valakas Klein : Teleport into Hall of Flames</li> * <li>31686, Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano</li> * <li>31687, Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano</li> * <li>31759, Teleportation Cubic : Teleport out of Lair of Valakas</li> * <li>31862, Angelic Vortex : Baium Teleport (3 different HTMs according of situation)</li> * <li>32109, Shilen's Stone Statue : Teleport to Sailren Lair</li> * </ul> * @author Plim, original python script by Emperorc */ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
meX 144 Опубликовано 24 июля, 2013 (изменено) Я дам намёк, а дальше сами. Нужно снять комментарии=) Хаха Naik красавчик + Сделаю за 2 баночки пива) С Naik'ом поделюсь) Изменено 24 июля, 2013 пользователем meX Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 24 июля, 2013 Сам уже починил) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 24 июля, 2013 Сам уже починил) Только учти, что не просто так все делается. Не известно, что с АИ тарасика, а то после первого килла сервер сфейлишь, если не раньше=) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты