请选择 进入手机版 | 继续访问电脑版

DNF阿拉德游戏论坛

 找回密码
 立即注册
查看: 2146|回复: 6

[工具] 台服dnf服务器插件DP2下载(dp2-8r0-1集成frida同时通讯)

[复制链接]

签到天数: 16 天

[LV.4]阿拉德玩家

16

主题

20

帖子

120

积分

阿拉德菜鸟

Rank: 2

积分
120
怒气
13
声望
35
战力
17
发表于 2023-4-9 11:53:49 | 显示全部楼层 |阅读模式
本帖最后由 爱吃土豆丶 于 2023-4-9 12:16 编辑

dp2-8r0-1

目录
doc dp2doc使用文档
dp2 插件配置
samples 插件功能示例
src centos 5 x86 + gcc 4


dp.lua
  1. -- this file only for idea + EmmyLua

  2. error("cannot require or run this file!")

  3. ---@class integer
  4. local integer

  5. ---@class DP
  6. ---@field log DP.log @日志功能
  7. ---@field mem DP.mem @内存功能
  8. local dp = {}

  9. ---生成[[min~max]]随机数
  10. ---@param min integer
  11. ---@param max integer
  12. ---@return integer
  13. function dp.rand(min, max) end
  14. ---获得当前系统时间 (毫秒)
  15. ---@return integer
  16. function dp.mstime() end
  17. ---把int转为指针, 若已经是ptr则直接返回
  18. ---@param v integer
  19. ---@return userdata
  20. function dp.int2ptr(v) end
  21. ---把指针转为int, 若已经是int则直接返回
  22. ---@param v userdata
  23. ---@return integer
  24. function dp.ptr2int(v) end
  25. ---@param nlen integer @最大长度
  26. ---@return integer[]
  27. function dp.backtrace(nlen) end
  28. ---添加停服回调
  29. ---@alias TUnloadHandler fun():void
  30. ---@param h TUnloadHandler | "function() end"
  31. ---@return void
  32. function dp.add_unload_handler(h) end

  33. ---@class DP.log
  34. dp.log = {}

  35. ---@param str string
  36. ---@return void
  37. function dp.log.trace(str) end
  38. ---@param str string
  39. ---@return void
  40. function dp.log.debug(str) end
  41. ---@param str string
  42. ---@return void
  43. function dp.log.info(str) end
  44. ---@param str string
  45. ---@return void
  46. function dp.log.warn(str) end
  47. ---@param str string
  48. ---@return void
  49. function dp.log.error(str) end
  50. ---@param str string
  51. ---@return void
  52. function dp.log.critical(str) end

  53. ---@class DP.mem
  54. dp.mem = {}

  55. ---根据基址和偏移读取4字节, 支持多级
  56. ---
  57. ---若需1/2字节请自行读到4字节后进行位运算
  58. ---
  59. ---NOTE: 非法读取会造成程序崩溃!
  60. ---@param base userdata|integer
  61. ---@param ... integer
  62. ---@return integer
  63. function dp.mem.read(base, ...) end
  64. ---和read一样, 但会验证内存有效性, 代价是效率损失
  65. ---@param base userdata|integer
  66. ---@param ... integer
  67. ---@return integer
  68. function dp.mem.readsafe(base, ...) end
  69. --[=[
  70. 例: base = read(base)
  71. 例: [base] = read(base, 0)
  72. 例: [base + x] = read(base, x)
  73. 例: [[base + x] + y] = read(base, x, y)
  74. 例: [[[[base] + x]] + y] = read(base, 0, x, 0, y)
  75. --]=]

  76. ---若写入数值, size=1/2/4, data=integer
  77. ---
  78. ---若写入二进制, size=字节数, data=string
  79. ---@param addr integer
  80. ---@param size integer
  81. ---@param data string|integer
  82. ---@return boolean
  83. function dp.mem.hotfix(addr, size, data) end

  84. ---@class DP.frida
  85. dp.frida = {}

  86. ---加载
  87. ---@param path string
  88. ---@return boolean
  89. function dp.frida.load(path) end

  90. ---初始化
  91. ---@param args string
  92. ---@return integer
  93. function dp.frida.main(args) end

  94. ---通讯 (调用js)
  95. ---@param arg1 integer
  96. ---@param arg2 number
  97. ---@param arg3 string
  98. ---@return integer
  99. function dp.frida.call(arg1, arg2, arg3) end

  100. ---设置回调, 当js调用lua时触发
  101. ---@param f TFridaLuaHandler
  102. ---@return void
  103. ---@alias TFridaLuaHandler fun(arg1:integer, arg2:number, arg3:string):integer
  104. function dp.frida.set_handler(f) end
复制代码


dpx_game.lua
  1. -- this file only for idea + EmmyLua

  2. error("cannot require or run this file!")

  3. -- 宿主为df_game_r时的_DPX功能

  4. ---@class DPXGame
  5. ---@field item DPXGame.item
  6. ---@field mail DPXGame.mail
  7. ---@field quest DPXGame.quest
  8. local dpx = {}

  9. ---获得运行参数
  10. ---
  11. ---如 df_game_r cain01 start
  12. ---
  13. ---opt(0) = df_game_r
  14. ---
  15. ---opt(1) = cain01
  16. ---
  17. ---opt(2) = start
  18. ---@param idx integer @ 默认1
  19. ---@return string @nullable
  20. function dpx.opt(idx) end
  21. ---校正地址
  22. ---@param v integer @ida addr
  23. ---@return integer @real addr
  24. function dpx.reloc(v) end
  25. ---设置功能过滤, 根据type的不同handler也不同
  26. ---@param hookType HookType
  27. ---@param handler function
  28. ---@return void
  29. function dpx.hook(hookType, handler) end
  30. ---创建数据包, 切记使用delete销毁!
  31. ---
  32. ---type=1时, 最前面有一个byte错误码
  33. ---@param packId integer
  34. ---@param packType integer
  35. ---@return PacketGuard
  36. function dpx.new_packet(packId, packType) end
  37. ---获得PacketBuf剩余内容, 不影响pos标记
  38. ---@param buf userdata @PacketBuf*
  39. ---@return string
  40. function dpx.get_packet_buffer(buf) end
  41. ---设置等级上限
  42. ---@param lv integer
  43. ---@return void
  44. function dpx.set_max_level(lv) end
  45. ---绝望之塔通关后仍可继续挑战(需门票)
  46. ---@return void
  47. function dpx.set_unlimit_towerofdespair() end
  48. ---设置物品免确认(异界装备不影响)
  49. ---@return void
  50. function dpx.disable_item_routing() end
  51. ---设置退出副本免虚弱
  52. ---@return void
  53. function dpx.disable_giveup_panalty() end
  54. ---解锁镇魂开门任务
  55. ---@return void
  56. function dpx.open_timegate() end
  57. ---允许创建缔造者
  58. ---@return void
  59. function dpx.enable_creator() end
  60. ---禁用安全机制, 解除100级及以上的限制
  61. ---@return void
  62. function dpx.disable_security_protection() end
  63. ---开启GM功能, 注意添加管理员账号ID至数据库中
  64. ---@return void
  65. function dpx.enable_game_master() end
  66. ---关闭新账号发送的契约邮件 (感谢蛐蛐)
  67. ---@return void
  68. function dpx.disable_mobile_rewards() end
  69. ---解除交易限额, 已达上限的第二天生效
  70. ---@return void
  71. function dpx.disable_trade_limit() end
  72. ---设置使用拍卖行的最低等级
  73. ---@param lv integer
  74. ---@return void
  75. function dpx.set_auction_min_level(lv) end
  76. ---修复拍卖行消耗品上架, 设置最大总价, 建议值2E
  77. ---@param maxPrice integer
  78. ---@return void
  79. function dpx.fix_auction_regist_item(maxPrice) end
  80. ---关闭NPC回购系统
  81. ---@return void
  82. function dpx.disable_redeem_item() end
  83. ---禁用支援兵
  84. ---@return void
  85. function dpx.disable_striker() end
  86. ---扩展移动瞬间药剂ID (感谢蛐蛐). 2600014/2680784/2749064
  87. ---@return void
  88. function dpx.extend_teleport_item() end
  89. ---禁用道具掉落随机强化
  90. ---@return void
  91. function dpx.disable_drop_random_upgrade() end
  92. ---不要设置core大小 (设置unlimit再用它)
  93. ---@return void
  94. function dpx.skip_setrlimit() end
  95. ---游戏日志增加时间前缀
  96. ---@return void
  97. function dpx.log_time() end
  98. ---修改装备解锁时间
  99. ---@param seconds integer
  100. ---@return void
  101. function dpx.set_item_unlock_time(seconds) end
  102. ---修改掉落时随机赋予红字的装备最低等级 (默认55)
  103. ---此功能也会影响洗红字的等级
  104. ---@param level integer @1~125
  105. ---@return void
  106. function dpx.set_drop_amplify_level(level) end


  107. ---@return void
  108. ---开启自定义收包功能
  109. function dpx.enable_custom_dispatcher() end
  110. ---@param packId integer
  111. ---@param handler THandler0|THandler1
  112. ---@param handleType integer @optional
  113. ---@return void
  114. ---@alias THandler0 fun(user:userdata, buf:userdata):integer
  115. ---@alias THandler1 fun(user:userdata, buf:string):integer
  116. ---自定义收包, 需先启用, handleType默认0
  117. ---
  118. ---若type=0则handler的第2个参数是PacketBuf指针
  119. ---
  120. ---若type=1则handler的第2个参数是转为string的二进制
  121. function dpx.register_custom_dispatcher(packId, handler, handleType) end
  122. ---@param packId integer
  123. ---@return boolean
  124. ---取消自定义收包, 恢复原始流程
  125. function dpx.unregister_custom_dispatcher(packId) end

  126. ---道具信息
  127. ---@class DPXGame.ItemInfo
  128. ---@field id integer
  129. ---@field type integer
  130. ---@field name string
  131. ---@field grade integer
  132. ---@field rarity integer
  133. ---@field attach_type AttachType
  134. ---@field usable_level integer
  135. ---@field is_stackable boolean @stackable or equipment
  136. ---@field count integer
  137. ---@field upgrade integer @equipment only
  138. ---@field amplify DPXGame.ItemInfoAmplify @equipment only
  139. local ItemInfo

  140. --装备增幅信息
  141. ---@class DPXGame.ItemInfoAmplify
  142. ---@field type integer @增幅类型
  143. ---@field identified boolean @是否已净化
  144. local ItemInfoAmplify

  145. ---@class DPXGame.item
  146. dpx.item = {}

  147. ---增加道具, 失败时 slot < 0
  148. ---@param user userdata
  149. ---@param id integer
  150. ---@param count integer @default 1
  151. ---@return integer, integer @slot, space
  152. function dpx.item.add(user, id, count) end
  153. ---获得道具详细信息
  154. ---@param user userdata
  155. ---@param space ItemSpace
  156. ---@param slot integer
  157. ---@return DPXGame.ItemInfo @nullable
  158. function dpx.item.info(user, space, slot) end
  159. ---删除道具
  160. ---@param user userdata
  161. ---@param space ItemSpace
  162. ---@param slot integer
  163. ---@param count integer @默认1
  164. ---@return boolean
  165. function dpx.item.delete(user, space, slot, count) end
  166. ---装备继承, space = INVENTORY
  167. ---@param user userdata
  168. ---@param srcSlot integer
  169. ---@param dstSlot integer
  170. ---@param mask InheritMask
  171. ---@return boolean
  172. function dpx.item.inherit(user, srcSlot, dstSlot, mask) end
  173. ---统计道具数量
  174. ---@param user userdata
  175. ---@param item_id integer
  176. ---@param where GlobMask @optional 默认 FLAG_EQUIP|FLAG_INVEN
  177. ---@return integer
  178. function dpx.item.glob_count(user, item_id, where) end
  179. ---查询pvf道具.
  180. ---@param item_id @integer
  181. ---@return DPXGame.ItemInfo @nullable
  182. function dpx.item.query_by_id(item_id) end
  183. ---查询pvf道具.
  184. ---若有重名, 则随便返回1个
  185. ---@param item_name @string
  186. ---@return DPXGame.ItemInfo @nullable
  187. function dpx.item.query_by_name(item_name) end

  188. ---@class DPXGame.mail.item
  189. ---@field id integer @item id
  190. ---@field count integer @default 1
  191. local mail_item

  192. ---@class DPXGame.mail
  193. dpx.mail = {}

  194. ---发送系统邮件 (最多1个道具)
  195. ---
  196. ---若没有道具则发送一个只有文字的空邮件
  197. ---@param characNo integer @角色ID
  198. ---@param serverGroup integer @服务器组
  199. ---@param title string @标题
  200. ---@param content string @内容
  201. ---@param id integer @default 0 (no item)
  202. ---@param count integer @default 1
  203. ---@return boolean
  204. function dpx.mail.item(characNo, serverGroup, title, content, id, count) end
  205. ---multi item
  206. ---
  207. ---发送系统邮件 (最多10个道具), 若没有道具则不会产生邮件
  208. ---@param characNo integer
  209. ---@param serverGroup integer
  210. ---@param title string
  211. ---@param content string
  212. ---@param items DPXGame.mail.item[] @nullable
  213. ---@param gold integer @nullable, 金币, 默认0
  214. ---@return void
  215. function dpx.mail.mitem(characNo, serverGroup, title, content, items, gold) end

  216. ---任务信息
  217. ---@class DPXGame.QuestInfo
  218. ---@field id integer
  219. ---@field type QuestType
  220. ---@field min_level integer
  221. ---@field max_level integer
  222. ---@field is_cleared boolean @是否已完成
  223. ---@field is_acceptable boolean @是否可接受
  224. local QuestInfo

  225. ---@class DPXGame.quest
  226. dpx.quest = {}

  227. ---获得pvf中所有任务ID
  228. ---@param user userdata
  229. ---@return table @integer数组
  230. function dpx.quest.all(user) end
  231. ---是否已接受任务
  232. ---@param user userdata
  233. ---@param questId integer
  234. ---@return boolean
  235. function dpx.quest.has(user, questId) end
  236. ---获得任务详情
  237. ---@param user userdata
  238. ---@param questId integer
  239. ---@return DPXGame.QuestInfo @nullable
  240. function dpx.quest.info(user, questId) end
  241. ---完成任务 (无奖励)
  242. ---@param user userdata
  243. ---@param questId integer
  244. ---@param hasExpose boolean @default false, 是否处理未导出任务
  245. ---@return boolean
  246. function dpx.quest.clear(user, questId, hasExpose) end
  247. ---接受任务
  248. ---@param user userdata
  249. ---@param questId integer
  250. ---@param isForce boolean @是否强制 (忽略前置条件)
  251. ---@return boolean
  252. function dpx.quest.accept(user, questId, isForce) end
  253. ---更新/同步任务列表
  254. ---@param user userdata
  255. ---@return void
  256. function dpx.quest.update(user) end

  257. ---@class PacketGuard
  258. local PacketGuard = {}

  259. ---@param v integer
  260. ---@return void
  261. function PacketGuard:put_byte(v) end
  262. ---@param v integer
  263. ---@return void
  264. function PacketGuard:put_short(v) end
  265. ---@param v integer
  266. ---@return void
  267. function PacketGuard:put_dword(v) end
  268. ---@param v string
  269. ---@return void
  270. function PacketGuard:put_binary(v) end
  271. ---@param v boolean @default true
  272. ---@return void
  273. function PacketGuard:finalize(v) end
  274. ---@param usercptr userdata
  275. ---@return void
  276. function PacketGuard:send(usercptr) end
  277. ---@return void
  278. function PacketGuard:delete() end
复制代码

百度网盘下载地址https://pan.baidu.com/s/19hcOSHm8g_5avZD2yHZ8Hg
提取码
游客,如果您要查看本帖隐藏内容请回复



相关教程


“今天也是充满希望的一天!”——赛丽亚
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。

签到天数: 5 天

[LV.2]初入阿拉德

0

主题

9

帖子

51

积分

阿拉德菜鸟

Rank: 2

积分
51
怒气
1
声望
20
战力
1
发表于 2023-5-17 14:43:54 | 显示全部楼层
小白来学习学习,
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]初入阿拉德

0

主题

6

帖子

39

积分

初入阿拉德

Rank: 1

积分
39
怒气
1
声望
16
战力
0
发表于 2023-10-7 22:11:06 | 显示全部楼层
66666666666666666666666666666
“邪恶如同灯光下的阴影,即使看不见也会存在。”——歌兰蒂斯
回复 支持 反对

使用道具 举报

签到天数: 54 天

[LV.5]阿拉德勇士

2

主题

40

帖子

420

积分

阿拉德玩家

Rank: 3Rank: 3

积分
420
怒气
58
声望
156
战力
10
发表于 2024-1-8 02:38:00 | 显示全部楼层
6666666666666666666666666666
“啊!令人怀孕的故乡!”——凯莉
回复 支持 反对

使用道具 举报

签到天数: 19 天

[LV.4]阿拉德玩家

0

主题

29

帖子

170

积分

阿拉德菜鸟

Rank: 2

积分
170
怒气
14
声望
63
战力
1
发表于 2024-1-20 06:33:47 | 显示全部楼层
学习学习学习学习学习学习学习学习学习学习学习学习学习学习
“对待装备要象对待情人一样!”——林纳斯
回复 支持 反对

使用道具 举报

签到天数: 19 天

[LV.4]阿拉德玩家

0

主题

29

帖子

170

积分

阿拉德菜鸟

Rank: 2

积分
170
怒气
14
声望
63
战力
1
发表于 2024-1-20 06:47:18 | 显示全部楼层
链接过期了!!!!!!!!!!!!!!!!!!
“对待装备要象对待情人一样!”——林纳斯
回复 支持 反对

使用道具 举报

签到天数: 2 天

[LV.1]无主之魂

0

主题

3

帖子

18

积分

初入阿拉德

Rank: 1

积分
18
怒气
1
声望
7
战力
0
发表于 2024-2-2 19:39:07 | 显示全部楼层
学习下666666666666666666666666666666666666666
“用耳去听,用心去斩;剑斩肉身 心斩灵魂。”——G.S.D
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|DNF阿拉德游戏论坛 ( 渝ICP备13007431号1 )

GMT+8, 2024-4-25 15:21 , Processed in 0.190852 second(s), 37 queries .

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

阿拉德大陆的勇士们!今天也会是充满希望的一天!