找回密码
 立即注册
查看: 155|回复: 9

研究MONGEN.TXT的参数“集中坐标刷怪”发现了引擎源码的错误

[复制链接]

250

主题

551

回帖

250

积分

中级会员

积分
250
发表于 2026-3-29 08:57:20 | 显示全部楼层 |阅读模式

本想利用集中坐标刷怪,方便把大地图刷成一堆一堆的怪物方便玩家群怪就研究了下这个参数。网络寻觅无果后打开了以前下载过的源码。
搜索Mongen.txt关键字,发现nMissionGenRate代表此参数。下边是相关代码




复制代码
重点区域用红色标注了,用我三脚猫的英语和仅能写个一键回收NPC的脚步知识读懂大概意思:如果RANDOM(100-集中坐标变量)如果成立,则执行在随机20范围内随机刷怪,否则在MONGEN.TXT里设置的范围内随机刷怪。
然鹅,发现一个奇怪的地方:红字((nX - 10) + Random(20))里的nX已经做过 (MonGen.nX - MonGen.nRange) + Random(MonGen.nRange * 2 + 1);
运算了。也就是说,他是在随机了坐标的基础上再做20的随机坐标。此时猜想韩国程序员当年就写错了代码导致这个功能不正确。
于是我设置了祖玛卫士和祖玛雕像刷怪范围0来验证是否正确,其中祖玛雕像100%触发集中坐标刷新


    D505 154 172 祖玛卫士 0 10 120 0

    D505 154 172 祖玛雕像 0 10 120 100

复制代码
一进游戏果然:雕像在20范围内刷新,祖玛卫士全部叠在154.172坐标。
file:///C:/Users/Administrator/AppData/Roaming/Tencent/Users/332022126/QQ/WinTemp/RichOle/A_%25KOBX)AZ%7BZ]PG$AVK9SSK.png
补充内容 (2021-7-23 15:11):
begin
  Result := True;
  nCode := 0;
  dwStartTick := GetTickCount();
  try
    nCode := 1;
    if MonGen <> nil then begin
      nCode := 2;
      if MonGen.nRace > 0 then begin
        ...

264

主题

566

回帖

265

积分

中级会员

积分
265
发表于 2026-3-29 08:57:20 | 显示全部楼层

本帖子中包含更多资源

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

×

0

主题

583

回帖

0

积分

新手上路

积分
0
发表于 2026-3-29 08:57:20 | 显示全部楼层
xiaoshushe 发表于 2021-7-23 12:59
膜拜大神,,,能帮忙看看角色网关加壳了没么。。

0

主题

554

回帖

0

积分

新手上路

积分
0
发表于 2026-3-29 08:57:20 | 显示全部楼层
    begin
      Result := True;
      nCode := 0;
      dwStartTick := GetTickCount();
      try
        nCode := 1;
        if MonGen <> nil then begin
          nCode := 2;
          if MonGen.nRace > 0 then begin
            nCode := 3;
            if Random(100) < MonGen.nMissionGenRate then begin
              nCode := 4;
              nX := (MonGen.nX - MonGen.nRange) + Random(MonGen.nRange * 2 + 1);
              nY := (MonGen.nY - MonGen.nRange) + Random(MonGen.nRange * 2 + 1);
              nCode := 5;
              for I := 0 to nCount - 1 do begin
                nCode := 6;
                Cert := AddBaseObject(nil, MonGen.sMapName, ((nX - 10) + Random(20)), ((nY - 10) + Random(20)), MonGen.nRace, MonGen.sMonName);
                nCode := 7;
                if Cert <> nil then begin
                  nCode := 8;
                  Cert.m_nChangeColorType := MonGen.nChangeColorType; //是否变色
                  nCode := 9;
                  MonGen.CertList.Add(Cert);
                  Cert.AddMapCount;
                end;
                nCode := 10;
                if (GetTickCount - dwStartTick) > g_dwZenLimit then begin
                  Result := False;
                  Break;
                end;
              end;
            end else begin
              for I := 0 to nCount - 1 do begin
                nCode := 11;
                nX := (MonGen.nX - MonGen.nRange) + Random(MonGen.nRange * 2 + 1);
                nY := (MonGen.nY - MonGen.nRange) + Random(MonGen.nRange * 2 + 1);
                nCode := 12;
                Cert := AddBaseObject(nil, MonGen.sMapName, nX, nY, MonGen.nRace, MonGen.sMonName);
                nCode := 13;
                if Cert <> nil then begin
                  nCode := 14;
                  Cert.m_nChangeColorType := MonGen.nChangeColorType; //是否变色
                  nCode := 15;
                  MonGen.CertList.Add(Cert);
                  Cert.AddMapCount;
                  nCode := 16;
                end;
                if (GetTickCount - dwStartTick) > g_dwZenLimit then begin
                  Result := False;
                  Break;
                end;
              end;
            end;
          end;
        end;
      except
        MainOutMessage(sExceptionMsg + \' Code:\' + IntToStr(nCode));
      end;
    end;

复制代码

0

主题

553

回帖

11

积分

新手上路

积分
11
发表于 2026-3-29 08:57:20 | 显示全部楼层
大佬,改下引擎吧

本帖子中包含更多资源

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

×

0

主题

516

回帖

0

积分

新手上路

积分
0
发表于 2026-3-29 08:57:20 | 显示全部楼层
gee引擎的未来就靠你了。

0

主题

500

回帖

7

积分

新手上路

积分
7
发表于 2026-3-29 08:57:20 | 显示全部楼层
GEE官方正在招兵买马的。。。。

0

主题

511

回帖

427

积分

中级会员

积分
427
发表于 2026-3-29 08:57:20 | 显示全部楼层
pai哥 发表于 2021-7-24 09:01 GEE官方正在招兵买马的。。。。
我这属于推理学范畴……和编程关系不大

0

主题

542

回帖

0

积分

新手上路

积分
0
发表于 2026-3-29 08:57:20 | 显示全部楼层
刷怪一直让人头大,只能多写几个坐标,好累。写少了么,怪刷出来,就是一条直线 。。。

0

主题

564

回帖

469

积分

中级会员

积分
469
发表于 2026-3-29 08:57:20 | 显示全部楼层
caiking 发表于 2021-7-25 08:46 刷怪一直让人头大,只能多写几个坐标,好累。写少了么,怪刷出来,就是一条直线 。。。
不应该吧,不都是随机散落的么

© 2026 折翼天使社区 版权所有