P1ckw1ck 158 Опубликовано 6 апреля, 2015 (изменено) Добрый день есть сборка ГВЕ на ацисах. Там есть 2 тп к аванпостам через ядро. Укаждой фракции по 1 тп. Хочу добавить по больше телепортов у каждой фракции. 1 раз начел работать с ядром вот нужна меленькая помощь. package net.sf.l2j.gameserver.model.actor.instance; import java.util.StringTokenizer; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate; import net.sf.l2j.util.Rnd; public class L2AvanPostTpInstance extends L2NpcInstance { public L2AvanPostTpInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); String where = ""; if (st.countTokens() == 1) where = st.nextToken(); if (actualCommand.equalsIgnoreCase("tele")) { if (where.equals("avangood1")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avanevil1")) { player.teleToLocation(85439,-5717,-3256, false); } else { player.sendMessage("Локация не найдена, сообщите администратору."); } } else { super.onBypassFeedback(player, command); } } @Override public void onAction(L2PcInstance player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel())); player.sendPacket(new ValidateLocation(this)); } else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false)) { SocialAction sa = new SocialAction(this, Rnd.get(); broadcastPacket(sa); player.setCurrentFolkNPC(this); if (player.getFactionId() == 1) { showGoodWindow(player); } else if (player.getFactionId() == 2) { showEvilWindow(player); } player.sendPacket(ActionFailed.STATIC_PACKET); } else { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); player.sendPacket(ActionFailed.STATIC_PACKET); } } private void showGoodWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-good.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } private void showEvilWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-evil.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } } Вот сам L2AvanPostTpInstance подскажите куда вписывать координаты. буду блогодарен. Изменено 6 апреля, 2015 пользователем P1ckw1ck Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PickWick 49 Опубликовано 6 апреля, 2015 if (actualCommand.equalsIgnoreCase("tele")) { if (where.equals("avangood1")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avanevil1")) { player.teleToLocation(85439,-5717,-3256, false); } else { player.sendMessage("Локация не найдена, сообщите администратору."); } } Добавляешь новый if (where.equals("avangood1")) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 6 апреля, 2015 if (actualCommand.equalsIgnoreCase("tele")) { if (where.equals("avangood1")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avanevil1")) { player.teleToLocation(85439,-5717,-3256, false); } else { player.sendMessage("Локация не найдена, сообщите администратору."); } } Добавляешь новый if (where.equals("avangood1")) Спасибо. + дал Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 6 апреля, 2015 package net.sf.l2j.gameserver.model.actor.instance; import java.util.StringTokenizer; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate; import net.sf.l2j.util.Rnd; public class L2AvanPostTpInstance extends L2NpcInstance { public L2AvanPostTpInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); String where = ""; if (st.countTokens() == 1) where = st.nextToken(); if (actualCommand.equalsIgnoreCase("tele")) { if (where.equals("avangood1")) { player.teleToLocation(98689,-2051,-3727, false); } if (where.equals("avangood2")) { player.teleToLocation(146768,-174945,-1525, false); } if (where.equals("avangood3")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avanevil1")) { player.teleToLocation(85439,-5717,-3256, false); } if (where.equals("avanevil2")) { player.teleToLocation(135858,-174102,-1781, false); } if (where.equals("avanevil3")) { player.teleToLocation(85439,-5717,-3256, false); } else { player.sendMessage("Локация РЅРµ найдена, сообщите администратору."); } } else { super.onBypassFeedback(player, command); } } @Override public void onAction(L2PcInstance player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel())); player.sendPacket(new ValidateLocation(this)); } else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false)) { SocialAction sa = new SocialAction(this, Rnd.get(); broadcastPacket(sa); player.setCurrentFolkNPC(this); if (player.getFactionId() == 1) { showGoodWindow(player); } else if (player.getFactionId() == 2) { showEvilWindow(player); } player.sendPacket(ActionFailed.STATIC_PACKET); } else { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); player.sendPacket(ActionFailed.STATIC_PACKET); } } private void showGoodWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-good.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } private void showEvilWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-evil.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } } Добавил точки телепорта, теперь пишет "Локация не найдена, сообщите администратору." У фракции Good, у фракции евил не пишет такого когда делаешь тп. Подскажите где напортачил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PickWick 49 Опубликовано 6 апреля, 2015 package net.sf.l2j.gameserver.model.actor.instance; import java.util.StringTokenizer; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate; import net.sf.l2j.util.Rnd; public class L2AvanPostTpInstance extends L2NpcInstance { public L2AvanPostTpInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); String where = ""; if (st.countTokens() == 1) where = st.nextToken(); if (actualCommand.equalsIgnoreCase("tele")) { if (where.equals("avangood1")) { player.teleToLocation(98689,-2051,-3727, false); } if (where.equals("avangood2")) { player.teleToLocation(146768,-174945,-1525, false); } if (where.equals("avangood3")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avanevil1")) { player.teleToLocation(85439,-5717,-3256, false); } if (where.equals("avanevil2")) { player.teleToLocation(135858,-174102,-1781, false); } if (where.equals("avanevil3")) { player.teleToLocation(85439,-5717,-3256, false); } else { player.sendMessage("Локация РЅРµ найдена, сообщите администратору."); } } else { super.onBypassFeedback(player, command); } } @Override public void onAction(L2PcInstance player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel())); player.sendPacket(new ValidateLocation(this)); } else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false)) { SocialAction sa = new SocialAction(this, Rnd.get(); broadcastPacket(sa); player.setCurrentFolkNPC(this); if (player.getFactionId() == 1) { showGoodWindow(player); } else if (player.getFactionId() == 2) { showEvilWindow(player); } player.sendPacket(ActionFailed.STATIC_PACKET); } else { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); player.sendPacket(ActionFailed.STATIC_PACKET); } } private void showGoodWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-good.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } private void showEvilWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-evil.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } } Добавил точки телепорта, теперь пишет "Локация не найдена, сообщите администратору." У фракции Good, у фракции евил не пишет такого когда делаешь тп. Подскажите где напортачил. ты в html добавил новые свои координаты? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 6 апреля, 2015 В операторах if и else if накосячил) Держи: package net.sf.l2j.gameserver.model.actor.instance; import java.util.StringTokenizer; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate; import net.sf.l2j.util.Rnd; public class L2AvanPostTpInstance extends L2NpcInstance { public L2AvanPostTpInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); String where = ""; if (st.countTokens() == 1) where = st.nextToken(); if (actualCommand.equalsIgnoreCase("tele")) { if (where.equals("avangood1")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avangood2")) { player.teleToLocation(146768,-174945,-1525, false); } else if (where.equals("avangood3")) { player.teleToLocation(98689,-2051,-3727, false); } else if (where.equals("avanevil1")) { player.teleToLocation(85439,-5717,-3256, false); } else if (where.equals("avanevil2")) { player.teleToLocation(135858,-174102,-1781, false); } else if (where.equals("avanevil3")) { player.teleToLocation(85439,-5717,-3256, false); } else { player.sendMessage("Локация РЅРµ найдена, сообщите администратору."); } } else { super.onBypassFeedback(player, command); } } @Override public void onAction(L2PcInstance player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel())); player.sendPacket(new ValidateLocation(this)); } else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false)) { SocialAction sa = new SocialAction(this, Rnd.get(); broadcastPacket(sa); player.setCurrentFolkNPC(this); if (player.getFactionId() == 1) { showGoodWindow(player); } else if (player.getFactionId() == 2) { showEvilWindow(player); } player.sendPacket(ActionFailed.STATIC_PACKET); } else { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); player.sendPacket(ActionFailed.STATIC_PACKET); } } private void showGoodWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-good.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } private void showEvilWindow(L2PcInstance player) { String file = "data/html/faction/avanposts-evil.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(file); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%charname%", player.getName()); player.sendPacket(html); } } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 6 апреля, 2015 (изменено) В операторах if и else if накосячил) Держи: Спасибо + дал Можно закрывать. Изменено 6 апреля, 2015 пользователем P1ckw1ck Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты