易语言

关注公众号 jb51net

关闭
首页 > 软件编程 > 易语言 > dnf辅助剧情类

易语言地下城与勇士辅助剧情类源码

作者:易语言源码教程

今天小编就为大家分享一篇关于易语言地下城与勇士辅助剧情类源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

DNF辅助剧情类源码

仅供学习参考,禁止商业用途

.版本 2
.支持库 EThread
.程序集 剧情
.子程序 跳过call
.局部变量 任务地址, 整数型
.局部变量 跳过CALL, 整数型
任务地址 = #任务基址
跳过CALL = #跳过CALL
置入代码 ({ 139, 77, 252, 139, 9, 106, 255, 106, 1, 255, 85, 248 })
.子程序 匹配副本
.局部变量 角色等级, 整数型
角色等级 = 汇编_读整数型 (#角色等级)
.判断开始 (角色等级 = 1)
  全局_剧情ID = 3 ' 幽暗密林
.判断 (角色等级 = 3)
  全局_剧情ID = 5 ' 雷鸣废墟
.判断 (角色等级 = 5)
  全局_剧情ID = 6 ' 猛毒雷鸣废墟
.判断 (角色等级 = 8)
  全局_剧情ID = 9 ' 冰霜幽暗密林
.判断 (角色等级 = 11)
  全局_剧情ID = 7 ' 格拉卡
.判断 (角色等级 = 13)
  全局_剧情ID = 8 ' 烈焰格拉卡
.判断 (角色等级 = 16)
  全局_剧情ID = 1000 ' 暗黑雷鸣废墟
.判断 (角色等级 = 17)
  全局_剧情ID = 10 ' 龙人之塔
.判断 (角色等级 = 18)
  全局_剧情ID = 11
.判断 (角色等级 = 19)
  全局_剧情ID = 12 ' 人偶玄关
.判断 (角色等级 = 20)
  全局_剧情ID = 13 ' 石巨人塔
.判断 (角色等级 = 21)
  全局_剧情ID = 14 ' 黑暗玄廊
.判断 (角色等级 = 22)
  全局_剧情ID = 17 ' 悬空城
.判断 (角色等级 = 23)
  全局_剧情ID = 15 ' 城主宫殿
.判断 (角色等级 = 24)
  全局_剧情ID = 21 ' 神殿外围
.判断 (角色等级 = 25)
  全局_剧情ID = 22 ' 树精丛林
.判断 (角色等级 = 26)
  全局_剧情ID = 23 ' 炼狱
.判断 (角色等级 = 27)
  全局_剧情ID = 24 ' 极昼
.判断 (角色等级 = 28)
  全局_剧情ID = 25 ' 第一脊椎
.判断 (角色等级 = 29)
  全局_剧情ID = 26 ' 第二脊椎
.判断 (角色等级 = 30)
  全局_剧情ID = 27 ' 天帷禁地
.判断 (角色等级 = 30)
  全局_剧情ID = 31 ' 浅栖之地
.判断 (角色等级 = 31)
  全局_剧情ID = 32 ' 蜘蛛洞穴
.判断 (角色等级 = 32)
  全局_剧情ID = 150 ' 蜘蛛王国
.判断 (角色等级 = 33)
  全局_剧情ID = 151 ' 英雄冢
.判断 (角色等级 = 34)
  全局_剧情ID = 35 ' 暗精灵墓地
.判断 (角色等级 = 35)
  全局_剧情ID = 34 ' 熔岩穴
.判断 (角色等级 = 36)
  全局_剧情ID = 36 ' 暗黑城入口
.判断 (角色等级 = 36)
  全局_剧情ID = 152 ' 暴君
.判断 (角色等级 = 37)
  全局_剧情ID = 153 ' 黄金矿洞
.判断 (角色等级 = 38)
  全局_剧情ID = 154 ' 远古墓穴深处
.判断 (角色等级 = 39)
  全局_剧情ID = 154 ' 远古墓穴深处
.判断 (角色等级 = 40)
  全局_剧情ID = 40 ' 山脊
.判断 (角色等级 = 41)
  全局_剧情ID = 41 ' 冰心少年
.判断 (角色等级 = 42)
  全局_剧情ID = 42 ' 利库天井
.判断 (角色等级 = 43)
  全局_剧情ID = 43 ' 白色废墟
.判断 (角色等级 = 44)
  全局_剧情ID = 141 ' 布万加的修炼场
.判断 (角色等级 = 45)
  全局_剧情ID = 141 ' 绿都格罗兹尼
.判断 (角色等级 = 46)
  全局_剧情ID = 61 ' 绿都格罗兹尼
.判断 (角色等级 = 47)
  全局_剧情ID = 50 ' 堕落的盗贼
.判断 (角色等级 = 47)
  全局_剧情ID = 7146 ' 秘密村庄
.判断 (角色等级 = 48)
  全局_剧情ID = 51 ' 迷乱之村哈穆林
.判断 (角色等级 = 48)
  全局_剧情ID = 52 ' 血蝴蝶之舞
.判断 (角色等级 = 49)
  全局_剧情ID = 53 ' 疑惑之村
.判断 (角色等级 = 50)
  全局_剧情ID = 144 ' 炽晶森林
.判断 (角色等级 = 51)
  全局_剧情ID = 145 ' 冰晶森林
.判断 (角色等级 = 51)
  全局_剧情ID = 7147 ' 精灵之森
.判断 (角色等级 = 52)
  全局_剧情ID = 146 ' 水晶矿脉
.判断 (角色等级 = 53)
  全局_剧情ID = 148 ' 幽冥
.判断 (角色等级 = 54)
  全局_剧情ID = 156 ' 蘑菇庄园
.判断 (角色等级 = 55)
  全局_剧情ID = 157 ' 蚁后的巢穴
.判断 (角色等级 = 56)
  全局_剧情ID = 7148 ' 地下水道
.判断 (角色等级 = 57)
  全局_剧情ID = 158 ' 腐烂之地
.判断 (角色等级 = 57)
  全局_剧情ID = 159 ' 赫顿玛尔旧街区
.判断 (角色等级 = 57)
  全局_剧情ID = 160 ' 绝望的棋局
.判断 (角色等级 = 58)
  全局_剧情ID = 161 ' 鲨鱼栖息地
.判断 (角色等级 = 59)
  全局_剧情ID = 162 ' 人鱼国度
.判断 (角色等级 = 60)
  全局_剧情ID = 163 ' GBL女神殿
.判断 (角色等级 = 60)
  全局_剧情ID = 7149 ' 天空岛
.判断 (角色等级 = 61)
  全局_剧情ID = 164 ' 树精繁殖地
.判断 (角色等级 = 62)
  全局_剧情ID = 164 ' 树精繁殖地
.判断 (角色等级 = 63)
  全局_剧情ID = 80 ' 根特外围
.判断 (角色等级 = 64)
  全局_剧情ID = 81 ' 根特东门
.判断 (角色等级 = 65)
  全局_剧情ID = 82 ' 根特南门
.判断 (角色等级 = 65)
  全局_剧情ID = 7150 ' 哈尔特山
.判断 (角色等级 = 66)
  全局_剧情ID = 88 ' 根特北门
.判断 (角色等级 = 67)
  全局_剧情ID = 89 ' 根特防御战
.判断 (角色等级 = 68)
  全局_剧情ID = 83 ' 夜间袭击战
.判断 (角色等级 = 69)
  全局_剧情ID = 84 ' 补给线阻断战
.判断 (角色等级 = 70)
  全局_剧情ID = 85 ' 追击歼灭战
.判断 (角色等级 = 71)
  全局_剧情ID = 86 ' 列车上的海贼
.判断 (角色等级 = 72)
  全局_剧情ID = 87 ' 夺回西部线
.判断 (角色等级 = 72)
  全局_剧情ID = 7151 ' 海上航线
.判断 (角色等级 = 73)
  全局_剧情ID = 92 ' 雾都赫伊斯
.判断 (角色等级 = 74)
  全局_剧情ID = 93 ' 阿登高地
.判断 (角色等级 = 75)
  全局_剧情ID = 70 ' 格兰之火
.判断 (角色等级 = 76)
  全局_剧情ID = 71 ' 瘟疫之源
.判断 (角色等级 = 77)
  全局_剧情ID = 72 ' 卡勒特之初
.判断 (角色等级 = 77)
  全局_剧情ID = 7152 ' 时间界限
.判断 (角色等级 = 78)
  全局_剧情ID = 74 ' 绝密区域
.判断 (角色等级 = 79)
  全局_剧情ID = 75 ' 昔日悲鸣
.判断 (角色等级 = 80)
  全局_剧情ID = 76 ' 凛冬
.判断 (角色等级 = 80)
  全局_剧情ID = 77 ' 谜之觉悟
.判断 (角色等级 = 81)
  全局_剧情ID = 101 ' 克雷发电站
.判断 (角色等级 = 81)
  全局_剧情ID = 102 ' 普鲁兹发电站
.判断 (角色等级 = 81)
  全局_剧情ID = 7153 ' 控制塔
.判断 (角色等级 = 82)
  全局_剧情ID = 103 ' 特伦斯发电站
.判断 (角色等级 = 83)
  全局_剧情ID = 104 ' 格兰迪发电站
.判断 (角色等级 = 84)
  全局_剧情ID = 3200 ' 纳特拉的复仇
.判断 (角色等级 = 84)
  全局_剧情ID = 3201 ' 双子巨人的背叛
.判断 (角色等级 = 84)
  全局_剧情ID = 3202 ' 圣地 : 龙之魂
.判断 (角色等级 = 85)
  全局_剧情ID = 190 ' 倒悬的瞭望台
.判断 (角色等级 = 85)
  全局_剧情ID = 191 ' 卢克的聚光镜
.判断 (角色等级 = 85)
  全局_剧情ID = 192 ' 钢铁之臂
.判断 (角色等级 = 85)
  全局_剧情ID = 7154 ' 不灭回廊
.判断 (角色等级 = 86)
  全局_剧情ID = 193 ' 能源熔炉
.判断 (角色等级 = 86)
  全局_剧情ID = 194 ' 光之舞会
.判断 (角色等级 = 87)
  全局_剧情ID = 310 ' 时间
.判断 (角色等级 = 87)
  全局_剧情ID = 311 ' 兽人峡谷
.判断 (角色等级 = 88)
  全局_剧情ID = 312 ' 恐怖的栖息地
.判断 (角色等级 = 88)
  全局_剧情ID = 313 ' 疾风地带
.判断 (角色等级 = 88)
  全局_剧情ID = 7155 ' 血色防线
.判断 (角色等级 = 89)
  全局_剧情ID = 314 ' 红色魔女之森
.默认
.判断结束
区域 = 地图id转区域Call (全局_剧情ID)
组包_城镇移动 (区域.大区域, 区域.小区域, 区域.X坐标, 区域.Y坐标)
延时 (500)
组包_选出图 (1)
延时 (1000)
.如果 (角色等级 > 16)
  .如果 (角色等级 > 30)
    .如果 (角色等级 > 50)
      .如果 (角色等级 > 70)
        组包_进图 (全局_剧情ID, 4)
        组包_进图 (全局_剧情ID, 3)
        组包_进图 (全局_剧情ID, 2)
        组包_进图 (全局_剧情ID, 1)
        组包_进图 (全局_剧情ID, 0)
      .否则
        组包_进图 (全局_剧情ID, 3)
        组包_进图 (全局_剧情ID, 2)
        组包_进图 (全局_剧情ID, 1)
        组包_进图 (全局_剧情ID, 0)
      .如果结束
    .否则
      组包_进图 (全局_剧情ID, 2)
      组包_进图 (全局_剧情ID, 1)
      组包_进图 (全局_剧情ID, 0)
    .如果结束
  .否则
    组包_进图 (全局_剧情ID, 1)
    组包_进图 (全局_剧情ID, 0)
  .如果结束
.否则
  组包_进图 (全局_剧情ID, 0)
.如果结束
.子程序 任务是否完成, 整数型
.局部变量 首地址, 整数型
.局部变量 尾地址, 整数型
.局部变量 数量, 整数型
.局部变量 次数, 整数型
.局部变量 任务类型, 整数型
.局部变量 任务地址, 整数型
.局部变量 任务完成, 整数型
首地址 = 汇编_读整数型 (汇编_读整数型 (#任务基址) + 8)
尾地址 = 汇编_读整数型 (汇编_读整数型 (#任务基址) + 12)
数量 = (尾地址 - 首地址) ÷ 4
.计次循环首 (数量, 次数)
  任务地址 = 汇编_读整数型 (首地址 + (次数 - 1) × 4)
  任务类型 = 汇编_读整数型 (任务地址 + 308)
  .如果真 (任务类型 = 0)
    任务完成 = 超级解密 (首地址 + 次数 × 4)
    延时 (100)
    返回 (任务完成)
  .如果真结束
.计次循环尾 ()
返回 (0)
.子程序 任务是否需要材料, 逻辑型
.局部变量 遍历, 遍历结构
遍历.一级偏移 = 汇编_读整数型 (#任务基址)
遍历.首地址 = 汇编_读整数型 (汇编_加 (遍历.一级偏移, 104))
遍历.尾地址 = 汇编_读整数型 (汇编_加 (遍历.一级偏移, 108))
遍历.怪物数量 = 汇编_减 (遍历.尾地址, 遍历.首地址) ÷ 4
.计次循环首 (遍历.怪物数量, 遍历.次数)
  遍历.怪物地址 = 汇编_读整数型 (汇编_加 (遍历.首地址, 汇编_减 (遍历.次数, 1) × 4))
  .判断开始 (寻找文本 (Unicode转Ansi (汇编_读字节集 (汇编_加 (遍历.怪物地址, 8), 100)), 到文本 ({ 63 }), 1, 假) = -1)
    遍历.任务名称 = Unicode转Ansi (汇编_读字节集 (汇编_加 (遍历.怪物地址, 8), 100))
  .默认
    遍历.任务名称 = Unicode转Ansi (汇编_读字节集 (汇编_读整数型 (汇编_加 (遍历.怪物地址, 8)), 100))
  .判断结束
  .如果真 (取文本长度 (遍历.任务名称) ≤ 1)
    ' 到循环尾 ()
  .如果真结束
  .如果真 (汇编_读整数型 (汇编_加 (遍历.怪物地址, #任务类型)) = 0)
    .如果真 (汇编_读整数型 (遍历.怪物地址 + #任务材料) ≠ 0)
      返回 (真)
    .如果真结束
  .如果真结束
.计次循环尾 ()
返回 (假)
.子程序 任务是否存在, 逻辑型
.参数 任务编号ID, 整数型
.局部变量 遍历, 遍历结构
遍历.一级偏移 = 汇编_读整数型 (#任务基址)
遍历.首地址 = 汇编_读整数型 (汇编_加 (遍历.一级偏移, 104))
遍历.尾地址 = 汇编_读整数型 (汇编_加 (遍历.一级偏移, 108))
遍历.怪物数量 = 汇编_减 (遍历.尾地址, 遍历.首地址) ÷ 4
.计次循环首 (遍历.怪物数量, 遍历.次数)
  遍历.怪物地址 = 汇编_读整数型 (汇编_加 (遍历.首地址, 汇编_减 (遍历.次数, 1) × 4))
  遍历.任务ID = 汇编_读整数型 (遍历.怪物地址)
  .如果真 (遍历.任务ID = 任务编号ID)
    返回 (真)
  .如果真结束
.计次循环尾 ()
返回 (假)
.子程序 接受任务主线, 整数型
.局部变量 遍历, 遍历结构
遍历.首地址 = 汇编_读整数型 (汇编_加 (汇编_读整数型 (#任务基址), 104))
遍历.尾地址 = 汇编_读整数型 (汇编_加 (汇编_读整数型 (#任务基址), 108))
遍历.怪物数量 = 汇编_减 (遍历.尾地址, 遍历.首地址) ÷ 4
.计次循环首 (遍历.怪物数量, 遍历.次数)
  遍历.怪物地址 = 汇编_读整数型 (汇编_加 (遍历.首地址, 汇编_减 (遍历.次数, 1) × 4))
  遍历.任务ID = 汇编_读整数型 (遍历.怪物地址)
  .如果真 (汇编_读整数型 (汇编_加 (遍历.怪物地址, 308)) = 0)
    接受Call (遍历.任务ID)
    延时 (100)
    接受Call (遍历.任务ID)
    返回 (遍历.任务ID)
  .如果真结束
.计次循环尾 ()
返回 (0)
.子程序 处理提交任务
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
.局部变量 局_次数, 整数型
.局部变量 局_计次, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 12
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  局_次数 = 超级解密 (局_首部 + (局_计次 - 1) × 12 + 4)
  .如果真 (局_类型 = 0 且 局_次数 = 0)
    延时 (100)
    提交Call (汇编_读整数型 (局_指针))
  .如果真结束
.计次循环尾 ()
返回 ()
.子程序 获取主线任务, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 104)
局_尾部 = 汇编_读整数型 (局_基址 + 108)
局_数量 = (局_尾部 - 局_首部) ÷ 4
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 4)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  .如果真 (局_类型 = 0) ' 0=主线任务
    返回 (汇编_读整数型 (局_指针))
  .如果真结束
.计次循环尾 ()
返回 (-1)
.子程序 任务是否相同, 逻辑型
.参数 参_编号, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 4
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  .如果真 (局_类型 = 0) ' 0=主线任务
    .如果真 (汇编_读整数型 (局_指针) = 参_编号)
      返回 (真)
    .如果真结束
  .如果真结束
.计次循环尾 ()
返回 (假)
.子程序 获取任务次数, 整数型
.参数 参_编号, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
.局部变量 局_次数, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 12
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  .如果真 (局_类型 = 0 且 汇编_读整数型 (局_指针) = 参_编号) ' 0=主线任务
    局_次数 = 超级解密 (局_首部 + (局_计次 - 1) × 12 + 4)
    返回 (局_次数)
  .如果真结束
.计次循环尾 ()
返回 (-1)
.子程序 获取任务副本, 整数型
.参数 参_编号, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 12
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  .如果真 (局_类型 = 0 且 汇编_读整数型 (局_指针) = 参_编号) ' 0=主线任务
    返回 (汇编_读整数型 (汇编_读整数型 (局_指针 + 696)))
  .如果真结束
.计次循环尾 ()
返回 (-1)
.子程序 获取任务要求, 文本型
.参数 参_编号, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 12
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  .如果真 (局_类型 = 0 且 汇编_读整数型 (局_指针) = 参_编号) ' 0=主线任务
    返回 (Unicode转Ansi (汇编_读字节集 (汇编_读整数型 (局_指针 + 720), 100))) ' 256
  .如果真结束
.计次循环尾 ()
返回 (“”)
.子程序 获取主线名称, 文本型
.参数 参_编号, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
.局部变量 局_长度, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 12
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  局_长度 = 汇编_读整数型 (局_指针 + 28)
  .如果真 (局_类型 = 0 且 汇编_读整数型 (局_指针) = 参_编号) ' 0=主线任务
    .如果 (局_长度 > 7)
      返回 (Unicode转Ansi (汇编_读字节集 (汇编_读整数型 (局_指针 + 8), 100)))
    .否则
      返回 (Unicode转Ansi (汇编_读字节集 (局_指针 + 8, 100)))
    .如果结束
  .如果真结束
.计次循环尾 ()
返回 (“”)
.子程序 获取任务材料, 逻辑型
.参数 参_编号, 整数型
.局部变量 局_基址, 整数型
.局部变量 局_首部, 整数型
.局部变量 局_尾部, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_类型, 整数型
.局部变量 局_条件, 整数型
局_基址 = 汇编_读整数型 (#任务基址)
局_首部 = 汇编_读整数型 (局_基址 + 8)
局_尾部 = 汇编_读整数型 (局_基址 + 12)
局_数量 = (局_尾部 - 局_首部) ÷ 12
.计次循环首 (局_数量, 局_计次)
  局_指针 = 汇编_读整数型 (局_首部 + (局_计次 - 1) × 12)
  局_类型 = 汇编_读整数型 (局_指针 + 308)
  .如果真 (局_类型 = 0 且 汇编_读整数型 (局_指针) = 参_编号)
    局_条件 = 汇编_读整数型 (局_指针 + 1424)
    .如果真 (局_条件 ≠ 0)
      返回 (真)
    .如果真结束
  .如果真结束
.计次循环尾 ()
返回 (假)
.子程序 获取任务数据, 任务数据型
.局部变量 首地址, 整数型
.局部变量 尾地址, 整数型
.局部变量 数量, 整数型
.局部变量 次数, 整数型
.局部变量 任务地址, 整数型
.局部变量 任务条件, 文本型
.局部变量 任务类型, 整数型
.局部变量 任务数据, 任务数据型
.局部变量 任务大小, 整数型
.局部变量 任务材料, 整数型
连续赋值 (0, 任务数据.任务ID, 任务数据.任务通过, 任务数据.任务副本, 任务数据.任务完成)
任务数据.任务名称 = “”
首地址 = 汇编_读整数型 (汇编_读整数型 (#任务基址) + 104)
尾地址 = 汇编_读整数型 (汇编_读整数型 (#任务基址) + 108)
数量 = (尾地址 - 首地址) ÷ 4
.计次循环首 (数量, 次数)
  任务地址 = 汇编_读整数型 (首地址 + (次数 - 1) × 4)
  任务类型 = 汇编_读整数型 (任务地址 + 308)
  .如果真 (任务类型 = 0)
    任务数据.任务ID = 汇编_读整数型 (任务地址)
    任务数据.任务副本 = 汇编_读整数型 (汇编_读整数型 (任务地址 + 696)) ' 624--656
    任务大小 = 汇编_读整数型 (任务地址 + 28)
    .如果 (任务大小 > 7)
      任务数据.任务名称 = Unicode转Ansi (汇编_读字节集 (汇编_读整数型 (任务地址 + 8), 50))
    .否则
      任务数据.任务名称 = Unicode转Ansi (汇编_读字节集 (任务地址 + 8, 100))
    .如果结束
    任务条件 = Unicode转Ansi (汇编_读字节集 (汇编_读整数型 (任务地址 + 720), 100)) ' 668--700
    .判断开始 (寻找文本 (任务条件, “quest”, , 假) ≠ -1)
      任务数据.任务通过 = 4
    .默认
      任务数据.任务通过 = 3
    .判断结束
  .如果真结束
.计次循环尾 ()
延时 (100)
返回 (任务数据)
.子程序 智能计算任务
.局部变量 局_循环, 逻辑型
.局部变量 局_次数, 整数型
.局部变量 局_要求, 文本型
.局部变量 局_完成, 整数型, , "3"
.局部变量 任务数据, 任务数据型
进入许可区 (剧情_许可)
局_循环 = 取反 (局_循环)
.判断循环首 (局_循环)
  处理提交任务 ()
  延时 (500)
  局_任务 = 获取主线任务 ()
  .如果 (局_任务 > 0)
    接受Call (局_任务)
    .如果真 (任务是否相同 (局_任务) = 假)
      到循环尾 ()
    .如果真结束
    局_次数 = 获取任务次数 (局_任务)
    剧情副本ID = 获取任务副本 (局_任务)
    局_要求 = 获取任务要求 (局_任务)
    任务数据 = 获取任务数据 ()
    .如果真 (任务数据.任务通过 = 4)
      .如果 (任务是否完成 () < 100 且 任务是否完成 () > 0)
        完成Call (局_任务)
        延时 (500)
      .否则
        延时 (500)
        完成Call (局_任务)
      .如果结束
      系统公告 (“卡任务了,自动重新选择角色~”)
      提交Call (局_任务)
      延时 (300)
      角色位置 = 汇编_取偏移地址 (#角色基址, { 200, 200, 0 }) ' 汇编_取偏移地址 (#角色基址, { 176, 264, 0 })
      延时 (300)
      组包_选择界面 ()
      延时 (2000)
      组包_选择角色 (角色位置)
      延时 (4000)
      到循环尾 ()
    .如果真结束
    .如果真 (局_要求 = “[hunt enemy]” 或 局_要求 = “[meet npc]” 或 局_要求 = “[hunt monster]” 或 局_要求 = “[seek n meet npc]” 或 局_要求 = “[question]” 或 局_要求 = “[quest clear]” 或 局_要求 = “[reach the range]” 或 局_要求 = “[look cinematic]”)
      .如果真 (局_次数 = 512)
        局_次数 = 1
      .如果真结束
      局_完成 [1] = 取整 (局_次数 % 512) ' 第一排
      局_完成 [2] = 取整 (局_次数 ÷ 512) ' 第二排
      局_完成 [3] = 取整 (局_次数 ÷ 262144) ' 第三排
      数组排序 (局_完成, 假)
      .如果真 (局_完成 [1] = 0)
        局_完成 [1] = 1
      .如果真结束
      .计次循环首 (局_完成 [1], )
        完成Call (局_任务)
        延时 (300)
      .计次循环尾 ()
      延时 (500)
      提交Call (局_任务)
      延时 (500)
      提交Call (局_任务)
      到循环尾 ()
    .如果真结束
    .如果真 (剧情副本ID > 0)
      .如果真 (局_要求 = “[condition under clear]” 或 局_要求 = “[seeking]” 或 局_要求 = “[clear map]”)
        系统公告 (“任务[” + 获取主线名称 (局_任务) + “]主线ID[” + 到文本 (局_任务) + “]”)
        区域 = 地图id转区域Call (剧情副本ID)
        组包_城镇移动 (区域.大区域, 区域.小区域, 区域.X坐标, 区域.Y坐标)
        延时 (500)
        全局_消息反馈 = 2
        延时 (1000)
        组包_剧情进图 (剧情副本ID, 0, 局_任务)
        超级延时 (3500)
        全局_消息反馈 = 19 ' 透明评分
        局_循环 = 取反 (局_循环)
        到循环尾 ()
      .如果真结束
    .如果真结束
    .如果真 (获取任务材料 (局_任务))
      .如果真 (局_要求 = “[seeking]”)
        系统公告 (“当前任务需购买材料-请自己购买”)
        延时 (500)
        跳过call ()
        延时 (200)
        智能计算任务 ()
        局_循环 = 取反 (局_循环)
        到循环尾 ()
      .如果真结束
    .如果真结束
  .否则
    .如果真 (局_任务 = -1)
      延时 (2000)
      .如果真 (取游戏状态 () = 1)
        局_任务 = 获取主线任务 ()
        延时 (200)
        接受Call (局_任务)
        延时 (200)
        .如果真 (局_任务 < 0)
          系统公告 (“无主线任务 - 执行升级”)
          匹配副本 ()
          超级延时 (300)
        .如果真结束
        延时 (300)
        智能计算任务 ()
      .如果真结束
      局_循环 = 取反 (局_循环)
      到循环尾 ()
    .如果真结束
  .如果结束
.判断循环尾 ()
退出许可区 (剧情_许可)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

阅读全文