找回密码
 立即注册

QQ登录

只需一步,快速开始

Close
查看: 3227|回复: 2

[L2J] 改名脚本Rename.java

[复制链接]
  • 打卡等级:尐伊娃
  • 打卡总天数:192
  • 打卡月天数:9
  • 打卡总奖励:1854
发表于 2018-8-13 03:13:09 | 显示全部楼层 |阅读模式
  1. /*
  2. * This program is free software: you can redistribute it and/or modify it under
  3. * the terms of the GNU General Public License as published by the Free Software
  4. * Foundation, either version 3 of the License, or (at your option) any later
  5. * version.
  6. *
  7. * This program is distributed in the hope that it will be useful, but WITHOUT
  8. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10. * details.
  11. *
  12. * You should have received a copy of the GNU General Public License along with
  13. * this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. package custom.RenameNPC;

  16. import com.l2jse.gameserver.communitybbs.Manager.RegionBBSManager;
  17. import com.l2jse.gameserver.datatables.CharNameTable;
  18. import com.l2jse.gameserver.datatables.ItemTable;
  19. import com.l2jse.gameserver.instancemanager.QuestManager;
  20. import com.l2jse.gameserver.model.L2World;
  21. import com.l2jse.gameserver.model.actor.L2Npc;
  22. import com.l2jse.gameserver.model.actor.instance.L2PcInstance;
  23. import com.l2jse.gameserver.model.quest.Quest;
  24. import com.l2jse.gameserver.model.quest.QuestState;
  25. import com.l2jse.gameserver.network.serverpackets.PartySmallWindowAll;
  26. import com.l2jse.gameserver.network.serverpackets.PartySmallWindowDeleteAll;
  27. import com.l2jse.gameserver.util.Util;

  28. /**
  29. * @author L0ngh0rn
  30. * @since 2009-10-25
  31. */
  32. public class RenameNPC extends Quest
  33. {
  34.         private final static int NPC = 50024;
  35.         private final static String RENAME_NPC_FEE = "57,2500000;5575,250000";
  36.         private final static int RENAME_NPC_MIN_LEVEL = 40;

  37.         public RenameNPC(int questId, String name, String descr)
  38.         {
  39.                 super(questId, name, descr);
  40.                 addFirstTalkId(NPC);
  41.                 addStartNpc(NPC);
  42.                 addTalkId(NPC);
  43.         }

  44.         @Override
  45.         public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  46.         {
  47.                 String htmltext = "New Name:<br1><edit var="newname" width=70 height=10>";
  48.                 String eventSplit[] = event.split(" ");
  49.                 QuestState st = player.getQuestState(getName());

  50.                 if (eventSplit[0].equalsIgnoreCase("rename"))
  51.                 {
  52.                         st.getPlayer().setTarget(st.getPlayer());
  53.                         if (eventSplit.length != 2)
  54.                                 htmltext = "Enter a new name or remove the space between the names.";
  55.                         else if (st.getPlayer().getLevel() < RENAME_NPC_MIN_LEVEL)
  56.                                 htmltext = "Minimum Level is: " + String.valueOf(RENAME_NPC_MIN_LEVEL);
  57.                         else if (validItemFee(st))
  58.                                 htmltext = "You do not have enough items for exchange.";
  59.                         else if (eventSplit[1].length() < 1 || eventSplit[1].length() > 16)
  60.                                 htmltext = "Maximum number of characters: 16";
  61.                         else if (!Util.isAlphaNumeric(eventSplit[1]))
  62.                                 htmltext = "The name must only contain alpha-numeric characters.";
  63.                         else if (CharNameTable.getInstance().doesCharNameExist(eventSplit[1]))
  64.                                 htmltext = "The name chosen is already in use. Choose another name.";
  65.                         else
  66.                         {
  67.                                 try
  68.                                 {
  69.                                         L2World.getInstance().removeFromAllPlayers(player);
  70.                                         player.setName(eventSplit[1]);
  71.                                         player.store();
  72.                                         L2World.getInstance().addToAllPlayers(player);
  73.                                         htmltext = "Its name was changed successfully.";
  74.                                         player.broadcastUserInfo();

  75.                                         String itemFeeSplit[] = RENAME_NPC_FEE.split("\\;");
  76.                                         for (int i = 0; i < itemFeeSplit.length; i++)
  77.                                         {
  78.                                                 String item[] = itemFeeSplit[i].split("\\,");
  79.                                                 st.takeItems(Integer.parseInt(item[0]), Integer.parseInt(item[1]));
  80.                                         }

  81.                                         if (player.isInParty())
  82.                                         {
  83.                                                 player.getParty().broadcastToPartyMembers(player, new PartySmallWindowDeleteAll());
  84.                                                 for (L2PcInstance member : player.getParty().getPartyMembers())
  85.                                                 {
  86.                                                         if (member != player)
  87.                                                                 member.sendPacket(new PartySmallWindowAll(member, player.getParty()));
  88.                                                 }
  89.                                         }
  90.                                         if (player.getClan() != null)
  91.                                                 player.getClan().broadcastClanStatus();
  92.                                         RegionBBSManager.getInstance().changeCommunityBoard();
  93.                                 }
  94.                                 catch (StringIndexOutOfBoundsException e)
  95.                                 {
  96.                                         htmltext = "Service unavailable!";
  97.                                 }
  98.                         }
  99.                         return (page(htmltext, 1));
  100.                 }
  101.                 return (page(htmltext, 0));
  102.         }

  103.         @Override
  104.         public String onFirstTalk(L2Npc npc, L2PcInstance player)
  105.         {
  106.                 String htmltext = "";
  107.                 QuestState st = player.getQuestState(getName());
  108.                 if (st == null)
  109.                 {
  110.                         Quest q = QuestManager.getInstance().getQuest(getName());
  111.                         st = q.newQuestState(player);
  112.                 }
  113.                 htmltext = page("New Name:<br1><edit var="newname" width=70 height=10>", 0);
  114.                 return htmltext;
  115.         }

  116.         public String page(String msg, int t)
  117.         {
  118.                 String htmltext = "";
  119.                 htmltext += htmlPage("Title");
  120.                 htmltext += "Hello I'm here to help you change your name.<br>" + "Enter your new name, but make sure you have items for exchange:<br1>";
  121.                 String itemFeeSplit[] = RENAME_NPC_FEE.split("\\;");
  122.                 for (int i = 0; i < itemFeeSplit.length; i++)
  123.                 {
  124.                         String item[] = itemFeeSplit[i].split("\\,");
  125.                         htmltext += "<font color="LEVEL">" + item[1] + " " + ItemTable.getInstance().getTemplate(Integer.parseInt(item[0])).getName() + "</font><br1>";
  126.                 }
  127.                 if (t == 0)
  128.                 {
  129.                         htmltext += "<br><font color="339966">" + msg + "</font>";
  130.                         htmltext += "<br><center>" + button("Renomear", "rename $newname", 70, 23) + "</center>";
  131.                 }
  132.                 else
  133.                 {
  134.                         htmltext += "<br><font color="FF0000">" + msg + "</font>";
  135.                         htmltext += "<br><center>" + button("Back", "begin", 70, 23) + "</center>";
  136.                 }
  137.                 htmltext += htmlPage("Footer");
  138.                 return htmltext;
  139.         }

  140.         public Boolean validItemFee(QuestState st)
  141.         {
  142.                 String itemFeeSplit[] = RENAME_NPC_FEE.split("\\;");
  143.                 for (int i = 0; i < itemFeeSplit.length; i++)
  144.                 {
  145.                         String item[] = itemFeeSplit[i].split("\\,");
  146.                         if (st.getQuestItemsCount(Integer.parseInt(item[0])) < Integer.parseInt(item[1]))
  147.                                 return true;
  148.                 }
  149.                 return false;
  150.         }

  151.         public String htmlPage(String op)
  152.         {
  153.                 String texto = "";
  154.                 if (op == "Title")
  155.                 {
  156.                         texto += "<html><body><title>Rename Manager</title><center><br>" + "<b><font color=ffcc00>Rename Manager Information</font></b>"
  157.                                         + "<br><img src="L2UI_CH3.herotower_deco" width="256" height="32"><br></center>";
  158.                 }
  159.                 else if (op == "Footer")
  160.                 {
  161.                         texto += "<br><center><img src="L2UI_CH3.herotower_deco" width="256" height="32"><br>" + "<br><font color="303030">---</font></center></body></html>";
  162.                 }
  163.                 else
  164.                 {
  165.                         texto = "Not Found!";
  166.                 }
  167.                 return texto;
  168.         }

  169.         public String button(String name, String event, int w, int h)
  170.         {
  171.                 return "<button value="" + name + "" action="bypass -h Quest RenameNPC " + event + "" " + "width="" + Integer.toString(w) + "" height="" + Integer.toString(h) + "" "
  172.                                 + "back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">";
  173.         }

  174.         public String link(String name, String event, String color)
  175.         {
  176.                 return "<a action="bypass -h Quest RenameNPC " + event + "">" + "<font color="" + color + "">" + name + "</font></a>";
  177.         }

  178.         public static void main(String[] args)
  179.         {
  180.                 new RenameNPC(-1, "RenameNPC", "custom");
  181.         }
  182. }
复制代码
这是从l2jse的端里找出来的玩家改名脚本

如果大家想用,需要手动修改一些地方!!

感兴趣的拿走!~


回复

使用道具 举报

  • 打卡等级:尐伊娃
  • 打卡总天数:192
  • 打卡月天数:9
  • 打卡总奖励:1854
 楼主| 发表于 2018-8-13 03:14:37 | 显示全部楼层
这里是附件,给大家下载吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

  • 打卡等级:尐席琳
  • 打卡总天数:293
  • 打卡月天数:0
  • 打卡总奖励:4216
发表于 2020-8-24 20:47:14 | 显示全部楼层
为了吟游诗人,这次真学习了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表