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

Тп к аванпостам через L2AvanPostTpInstance

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

Добрый день есть сборка ГВЕ на ацисах. Там есть 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 подскажите куда вписывать координаты.  буду блогодарен.

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

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


Ссылка на сообщение
Поделиться на другие сайты
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")) 

  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
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")) 

 

Спасибо. + дал

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


Ссылка на сообщение
Поделиться на другие сайты
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, у фракции евил не пишет такого когда делаешь тп.

Подскажите где напортачил.

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


Ссылка на сообщение
Поделиться на другие сайты
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 добавил новые свои координаты?

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


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

В операторах 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);
    }
}
  • Upvote 1

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


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

 

В операторах if и else if накосячил)

Держи:


Спасибо + дал

 

Можно закрывать.

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

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


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

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

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

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

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

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

Войти

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

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

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

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

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