Jump to content

Question

Posted

How i can change title for npc? (L2j-Sunrise) I try from stats/npc/custom. But isn't from there. I set my title and 

usingServerSideTitle="true". 

Spoiler

76KkBV8.png

Anything i do, no work. it is coded?

6 answers to this question

Recommended Posts

  • 0
Posted
4 minutes ago, 0flee said:

How i can change title for npc? (L2j-Sunrise) I try from stats/npc/custom. But isn't from there. I set my title and 

usingServerSideTitle="true". 

  Hide contents

76KkBV8.png

Anything i do, no work. it is coded?

( system ) npcname-e.dat   

  • 0
Posted

check on npc ai/instance code that npc
and check in npcinfopacket too, if you use usingServerSideTitle="true" title info is sended from npcinfopacket, you can trace from this file to ai/instance that npc

  • 0
Posted
Spoiler

package ai.sunriseNpc.DelevelManager;

import l2r.gameserver.data.xml.impl.ExperienceData;
import l2r.gameserver.data.xml.impl.ItemData;
import l2r.gameserver.model.actor.L2Npc;
import l2r.gameserver.model.actor.instance.L2PcInstance;
import l2r.gameserver.network.SystemMessageId;
import l2r.gameserver.network.serverpackets.NpcHtmlMessage;
import l2r.gameserver.network.serverpackets.SocialAction;

import gr.sr.configsEngine.configs.impl.CustomNpcsConfigs;

import ai.npc.AbstractNpcAI;

/**
 * @author L2jSunrise Team
 * @Website www.l2jsunrise.com
 */
public class DelevelManager extends AbstractNpcAI
{
    private static final int NPC = CustomNpcsConfigs.DELEVEL_NPC_ID;
    private static final int ITEM_ID = CustomNpcsConfigs.DELEVEL_ITEM_ID;
    private static final int ITEM_COUNT_PER_LEVEL = CustomNpcsConfigs.DELEVEL_ITEM_AMOUNT;
    private static final boolean DYNAMIC_PRICES = CustomNpcsConfigs.DELEVEL_DYNAMIC_PRICE;
    
    private int getDelevelPrice(final L2PcInstance player)
    {
        return DYNAMIC_PRICES ? ITEM_COUNT_PER_LEVEL * player.getLevel() : ITEM_COUNT_PER_LEVEL;
    }
    
    public DelevelManager()
    {
        super(DelevelManager.class.getSimpleName(), "ai/sunriseNpc");
        addStartNpc(NPC);
        addFirstTalkId(NPC);
        addTalkId(NPC);
    }
    
    @Override
    public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player)
    {
        if (!CustomNpcsConfigs.ENABLE_DELEVEL_MANAGER)
        {
            player.sendMessage("Delevel manager npc is disabled by admin");
            sendMainHtmlWindow(player, npc);
            return "";
        }
        
        if (event.equalsIgnoreCase("level"))
        {
            if (player.getLevel() < 80)
            {
                player.sendMessage("Sorry, you must have minim " + 80 + " level.");
                sendMainHtmlWindow(player, npc);
                return "";
            }
            
            if (player.isInCombat())
            {
                player.sendMessage("Cannot use while in combat.");
                sendMainHtmlWindow(player, npc);
                return "";
            }
            
            if (player.getKarma() > 0)
            {
                player.sendMessage("Cannot use while hava karma.");
                sendMainHtmlWindow(player, npc);
                return "";
            }
            
            if (player.isEnchanting())
            {
                player.sendMessage("Cannot use while Enchanting.");
                sendMainHtmlWindow(player, npc);
                return "";
            }
            
            if (player.isAlikeDead())
            {
                player.sendMessage("Cannot use while Dead or Fake Death.");
                sendMainHtmlWindow(player, npc);
                return "";
            }
            
            if (player.destroyItemByItemId("Delevel", ITEM_ID, getDelevelPrice(player), player, true))
            {
                player.setExp(player.getStat().getExpForLevel(player.getLevel()));
                // sets exp to 0%, if you don't like people abusing this by
                // deleveling at 99% exp, comment the previous line
                player.removeExpAndSp(player.getExp() - ExperienceData.getInstance().getExpForLevel(player.getLevel() - 30), 0);
                player.broadcastPacket(new SocialAction(player.getObjectId(), 20016)); // Hero Animation
                player.sendMessage("Your level has been decreased.");
                player.addItem("Here it is your reward!", 9142, 1, null, true);
            }
            else
            {
                player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
            }
            
            sendMainHtmlWindow(player, npc);
            return "";
        }
        return "";
    }
    
    @Override
    public String onFirstTalk(final L2Npc npc, final L2PcInstance player)
    {
        sendMainHtmlWindow(player, npc);
        return "";
    }
    
    private void sendMainHtmlWindow(L2PcInstance player, L2Npc npc)
    {
        final NpcHtmlMessage html = getHtmlPacket(player, npc, "main.htm");
        html.replace("%MINLVL%", String.valueOf(80));
        html.replace("%PLAYER%", player.getName());
        html.replace("%DELEVEL_PRICE%", String.valueOf(getDelevelPrice(player)));
        html.replace("%ITEM_NAME%", ItemData.getInstance().getTemplate(ITEM_ID).getName());
        
        player.sendPacket(html);
    }
    
    private NpcHtmlMessage getHtmlPacket(L2PcInstance player, L2Npc npc, String htmlFile)
    {
        final NpcHtmlMessage packet = new NpcHtmlMessage(npc.getObjectId());
        packet.setHtml(getHtm(player, player.getHtmlPrefix(), htmlFile));
        return packet;
    }
}
 

Here it is code, maybe it is more ok to change path to scripts folder. But i don;t know to change code

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • Hey guys, I came up with this idea while needing to write down multiple locations. When you use the /loc command, a text file is created (only the first time) and stores all the locations you debug.   Output:   --- a/aCis_gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Loc.java +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Loc.java @@ -1,5 +1,10 @@ package net.sf.l2j.gameserver.handler.usercommandhandlers; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + import net.sf.l2j.gameserver.data.xml.MapRegionData; import net.sf.l2j.gameserver.handler.IUserCommandHandler; import net.sf.l2j.gameserver.model.actor.Player; @@ -13,6 +18,7 @@ 0 }; + @SuppressWarnings("resource") @Override public void useUserCommand(int id, Player player) { @@ -100,6 +106,26 @@ } player.sendPacket(SystemMessage.getSystemMessage(msg).addNumber(player.getX()).addNumber(player.getY()).addNumber(player.getZ())); + + if (player.isGM()) + { + try + { + String fileLoc = "./data/locations.txt"; + final File file = new File(fileLoc); + file.createNewFile(); + + FileWriter fw = new FileWriter(fileLoc, true); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(player.getX() + ", " + player.getY() + ", " + player.getZ()); + bw.newLine(); + bw.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + } } @Override  
    • Not any training model, i should fix that, just a very well done bot engine. As we use it on a local Internet Cafe spot and people join to test server, they don't seem to understand they are bots. Their behaviour is really well done. Many actions that other bots can't do are possible and the are complicated patterns that can be done due to structure of the engine such as Pick items of dead party pk member and later on trade them back to owner. So i'll fix later the title to Bot Engine rather than A.I. 
    • its old ver ))   this is new https://gamerip.ru/index.php?/topic/3308-lineage2-chronicle3-rise-of-darkness-new-version-172-030225/
  • Topics

×
×
  • Create New...