chenhui540 发表于 2022-6-3 13:22:09

GMS111 飞行地图移动时间结束后会返回起始地图

本帖最后由 chenhui540 于 2022-6-3 13:30 编辑



<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<imgdir name="200110000.img">
    <imgdir name="info">
      <int name="version" value="10" />
      <int name="cloud" value="0" />
      <int name="town" value="1" />
      <float name="mobRate" value="1.0" />
      <int name="returnMap" value="200000100" />
      <string name="mapMark" value="Ellinia" />
      <int name="forcedReturn" value="104020110" />
      <int name="hideMinimap" value="1" />
      <int name="fieldLimit" value="107390207" />
      <int name="VRTop" value="-360" />
      <int name="VRLeft" value="-520" />
      <int name="VRBottom" value="360" />
      <int name="VRRight" value="520" />
      <int name="fieldType" value="6" />
      <string name="bgm" value="Bgm04/UponTheSky" />
      <int name="swim" value="0" />
      <int name="fly" value="1" />
      <int name="needSkillForFly" value="0" />
      <int name="noMapCmd" value="0" />
      <string name="onFirstUserEnter" value="" />
      <string name="onUserEnter" value="" />
      <int name="timeLimit" value="240" />
      <int name="ridingMove" value="3" />
      <int name="noLanding" value="1" />
      <int name="noCancelSkill" value="1" />
      <string name="fieldScript" value="" />
    </imgdir>
    <imgdir name="back">
      <imgdir name="0">




GMS111 飞行地图移动时间结束后会返回起始地图    如果在不修改wz文件的情况下   需要给予什么样的条件   才能 正常 到达目的地
我有尝试过 用语法
                cm.warp(200110000, 0);
                cm.getPlayer().startMapTimeLimitTask(60, cm.getChannelServer().getMapFactory().getMap(200000111));

但是地图移动时间结束后 无论你在哪里都会返回起始地图




宗達 发表于 2022-6-4 10:28:53

只保留

cm.warp(200110000, 0);

chenhui540 发表于 2022-6-4 15:39:35

cm.warp(200110000, 0);

只保留地图传送的   地图倒计时间结束的时候只会返回 起始地图!不能移动到目标地图

我有修改源码暂时处理掉问题了   

            case 200110000 ->               {
                  // 金银岛->天空之城
                  int travelTime = ChannelServer.getInstance(channel).getTransportationTime(2 * 60 * 1000); //
                  chr.getClient().getSession().write(CField.getClock(travelTime / 1000));
                  TimerManager.getInstance().schedule(() -> {
                        if (chr.getMapId() == 200110000) {
                            chr.changeMap(200000111, 1);
                        }
                  }, travelTime);
                }
            case 200110001 ->               {
                  // 天空之城->金银岛
                  int travelTime = ChannelServer.getInstance(channel).getTransportationTime(2 * 60 * 1000); //
                  chr.getClient().getSession().write(CField.getClock(travelTime / 1000));
                  TimerManager.getInstance().schedule(() -> {
                        if (chr.getMapId() == 200110001) {
                            chr.changeMap(104020110, 1);
                        }
                  }, travelTime);
                }


但是 我就想弄清楚 为什么 时间结束后 不会传送到目标地图 反而回传到 起始地图到底缺少了什么内容!
页: [1]
查看完整版本: GMS111 飞行地图移动时间结束后会返回起始地图