易語言地下城與勇士輔助劇情類源碼

今天小編就爲大家分享一篇關於易語言地下城與勇士輔助劇情類源碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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)
        智能計算任務 ()
      .如果真結束
      局_循環 = 取反 (局_循環)
      到循環尾 ()
    .如果真結束
  .如果結束
.判斷循環尾 ()
退出許可區 (劇情_許可)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章