天堂2单机论坛

 找回密码
 立即注册
查看: 218|回复: 3

莫比芙蕾雅组队传送脚本扩展!

[复制链接]
  • TA的每日心情
    擦汗
    昨天 07:13
  • 签到天数: 414 天

    [LV.9]以坛为家II

    15

    主题

    463

    帖子

    7236

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    7236
    发表于 2025-9-27 21:05:13 | 显示全部楼层 |阅读模式
    本帖最后由 newgames001 于 2025-9-27 21:07 编辑

    注意:这个是最新莫比芙蕾雅JDK25环境下写的其他旧版本自行试验修改。


    第一步:CustomTeleport.java
    复制到
    L2J_Mobius_CT_2.6_HighFive\game\data\scripts\handlers\bypasshandlers
    目录下

    第二步:L2J_Mobius_CT_2.6_HighFive\game\data\scripts\handlers\MasterHandler.java
    打开修改

    1-找到
    import handlers.bypasshandlers.ClanWarehouse;
    在下面添加一行
    import handlers.bypasshandlers.CSPlayerPartyTeleport;

    2-找到
                            ClanWarehouse.class,
    在下面添加一行
                            CSPlayerPartyTeleport.class,

    ---------------------------------------------------------------------------------------完成代码修改
    下面是HTM使用例子:
    单人:bypass -h csplayer_tele 82698 148638 -3473 57 10000
    组队:bypass -h csparty_tele 82687 243157 -3734 57 10000

    注意:
    单人是 csplayer_tele
    组队是 csparty_tele





    CustomTeleport.java文件内容


    package handlers.bypasshandlers;


    import java.util.StringTokenizer;
    import org.l2jmobius.gameserver.handler.IBypassHandler;
    import org.l2jmobius.gameserver.model.Location;
    import org.l2jmobius.gameserver.model.actor.Creature;
    import org.l2jmobius.gameserver.model.actor.Player;
    import org.l2jmobius.gameserver.model.item.instance.ItemInstance;
    import org.l2jmobius.gameserver.network.SystemMessageId;
    import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;


    public class CustomTeleport implements IBypassHandler
    {
        private static final String[] COMMANDS = {
            "csplayer_",
            "csparty_"
        };
       
        @Override
        public boolean onCommand(String command, Player player, Creature bypassOrigin)
        {
            try
            {
                // 解析命令参数
                StringTokenizer st = new StringTokenizer(command.substring(command.indexOf('_') + 1));
                int x = Integer.parseInt(st.nextToken());
                int y = Integer.parseInt(st.nextToken());
                int z = Integer.parseInt(st.nextToken());
                int itemId = Integer.parseInt(st.nextToken());
                int itemCount = Integer.parseInt(st.nextToken());
                
                // 检查玩家是否有足够的物品
                ItemInstance item = player.getInventory().getItemByItemId(itemId);
                if (item == null || item.getCount() < itemCount)
                {
                    player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_REQUIRED_ITEMS));
                    return false;
                }
                
                // 扣除物品
                player.destroyItemByItemId("Teleport", itemId, itemCount, player, true);
                
                Location loc = new Location(x, y, z);
                
                // 根据命令类型执行单人传送或组队传送
                if (command.startsWith("csplayer_"))
                {
                    // 单人传送
                    player.teleToLocation(loc);
                    player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TELEPORTATION_COMPLETE));
                }
                else if (command.startsWith("csparty_"))
                {
                    // 组队传送
                    if (player.isInParty())
                    {
                        for (Player member : player.getParty().getMembers())
                        {
                            if (member.isOnline() && !member.isDead() && member.getDistance(player) <= 1000)
                            {
                                member.teleToLocation(loc);
                                member.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TELEPORTATION_COMPLETE));
                            }
                        }
                    }
                    else
                    {
                        player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_ARE_NOT_IN_A_PARTY));
                        // 退还物品
                        player.addItem("Refund", itemId, itemCount, player, true);
                        return false;
                    }
                }
                
                return true;
            }
            catch (Exception e)
            {
                player.sendMessage("传送指令格式错误,请检查参数!");
                e.printStackTrace();
                return false;
            }
        }
       
        @Override
        public String[] getCommandList()
        {
            return COMMANDS;
        }
    }

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 265 天

    [LV.8]以坛为家I

    5

    主题

    669

    帖子

    997

    积分

    高级会员

    Rank: 4

    积分
    997
    发表于 2025-9-27 23:07:19 | 显示全部楼层
    点个赞 要是给个JAVA文件就更好了
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 07:13
  • 签到天数: 414 天

    [LV.9]以坛为家II

    15

    主题

    463

    帖子

    7236

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    7236
     楼主| 发表于 2025-9-27 23:08:30 | 显示全部楼层
    asspoo 发表于 2025-9-27 23:07
    点个赞 要是给个JAVA文件就更好了

    有啊。在附件。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    0

    主题

    27

    帖子

    113

    积分

    正式会员

    Rank: 2

    积分
    113
    发表于 2025-10-14 08:00:25 | 显示全部楼层
    这个牛逼了,顶起来,技术好贴
    回复

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|手机版|监狱|天堂2单机论坛 ( 粤ICP备20030366号 )

    GMT+8, 2025-11-1 18:09 , Processed in 0.057817 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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