爱吃土豆丶 发表于 2023-4-9 11:53:49

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

本帖最后由 爱吃土豆丶 于 2023-4-9 12:16 编辑

dp2-8r0-1
目录

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


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

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

---@class integer
local integer

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

---生成[]随机数
---@param min integer
---@param max integer
---@return integer
function dp.rand(min, max) end
---获得当前系统时间 (毫秒)
---@return integer
function dp.mstime() end
---把int转为指针, 若已经是ptr则直接返回
---@param v integer
---@return userdata
function dp.int2ptr(v) end
---把指针转为int, 若已经是int则直接返回
---@param v userdata
---@return integer
function dp.ptr2int(v) end
---@param nlen integer @最大长度
---@return integer[]
function dp.backtrace(nlen) end
---添加停服回调
---@alias TUnloadHandler fun():void
---@param h TUnloadHandler | "function() end"
---@return void
function dp.add_unload_handler(h) end

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

---@param str string
---@return void
function dp.log.trace(str) end
---@param str string
---@return void
function dp.log.debug(str) end
---@param str string
---@return void
function dp.log.info(str) end
---@param str string
---@return void
function dp.log.warn(str) end
---@param str string
---@return void
function dp.log.error(str) end
---@param str string
---@return void
function dp.log.critical(str) end

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

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

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

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

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

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

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

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


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

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

-- 宿主为df_game_r时的_DPX功能

---@class DPXGame
---@field item DPXGame.item
---@field mail DPXGame.mail
---@field quest DPXGame.quest
local dpx = {}

---获得运行参数
---
---如 df_game_r cain01 start
---
---opt(0) = df_game_r
---
---opt(1) = cain01
---
---opt(2) = start
---@param idx integer @ 默认1
---@return string @nullable
function dpx.opt(idx) end
---校正地址
---@param v integer @ida addr
---@return integer @real addr
function dpx.reloc(v) end
---设置功能过滤, 根据type的不同handler也不同
---@param hookType HookType
---@param handler function
---@return void
function dpx.hook(hookType, handler) end
---创建数据包, 切记使用delete销毁!
---
---type=1时, 最前面有一个byte错误码
---@param packId integer
---@param packType integer
---@return PacketGuard
function dpx.new_packet(packId, packType) end
---获得PacketBuf剩余内容, 不影响pos标记
---@param buf userdata @PacketBuf*
---@return string
function dpx.get_packet_buffer(buf) end
---设置等级上限
---@param lv integer
---@return void
function dpx.set_max_level(lv) end
---绝望之塔通关后仍可继续挑战(需门票)
---@return void
function dpx.set_unlimit_towerofdespair() end
---设置物品免确认(异界装备不影响)
---@return void
function dpx.disable_item_routing() end
---设置退出副本免虚弱
---@return void
function dpx.disable_giveup_panalty() end
---解锁镇魂开门任务
---@return void
function dpx.open_timegate() end
---允许创建缔造者
---@return void
function dpx.enable_creator() end
---禁用安全机制, 解除100级及以上的限制
---@return void
function dpx.disable_security_protection() end
---开启GM功能, 注意添加管理员账号ID至数据库中
---@return void
function dpx.enable_game_master() end
---关闭新账号发送的契约邮件 (感谢蛐蛐)
---@return void
function dpx.disable_mobile_rewards() end
---解除交易限额, 已达上限的第二天生效
---@return void
function dpx.disable_trade_limit() end
---设置使用拍卖行的最低等级
---@param lv integer
---@return void
function dpx.set_auction_min_level(lv) end
---修复拍卖行消耗品上架, 设置最大总价, 建议值2E
---@param maxPrice integer
---@return void
function dpx.fix_auction_regist_item(maxPrice) end
---关闭NPC回购系统
---@return void
function dpx.disable_redeem_item() end
---禁用支援兵
---@return void
function dpx.disable_striker() end
---扩展移动瞬间药剂ID (感谢蛐蛐). 2600014/2680784/2749064
---@return void
function dpx.extend_teleport_item() end
---禁用道具掉落随机强化
---@return void
function dpx.disable_drop_random_upgrade() end
---不要设置core大小 (设置unlimit再用它)
---@return void
function dpx.skip_setrlimit() end
---游戏日志增加时间前缀
---@return void
function dpx.log_time() end
---修改装备解锁时间
---@param seconds integer
---@return void
function dpx.set_item_unlock_time(seconds) end
---修改掉落时随机赋予红字的装备最低等级 (默认55)
---此功能也会影响洗红字的等级
---@param level integer @1~125
---@return void
function dpx.set_drop_amplify_level(level) end


---@return void
---开启自定义收包功能
function dpx.enable_custom_dispatcher() end
---@param packId integer
---@param handler THandler0|THandler1
---@param handleType integer @optional
---@return void
---@alias THandler0 fun(user:userdata, buf:userdata):integer
---@alias THandler1 fun(user:userdata, buf:string):integer
---自定义收包, 需先启用, handleType默认0
---
---若type=0则handler的第2个参数是PacketBuf指针
---
---若type=1则handler的第2个参数是转为string的二进制
function dpx.register_custom_dispatcher(packId, handler, handleType) end
---@param packId integer
---@return boolean
---取消自定义收包, 恢复原始流程
function dpx.unregister_custom_dispatcher(packId) end

---道具信息
---@class DPXGame.ItemInfo
---@field id integer
---@field type integer
---@field name string
---@field grade integer
---@field rarity integer
---@field attach_type AttachType
---@field usable_level integer
---@field is_stackable boolean @stackable or equipment
---@field count integer
---@field upgrade integer @equipment only
---@field amplify DPXGame.ItemInfoAmplify @equipment only
local ItemInfo

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

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

---增加道具, 失败时 slot < 0
---@param user userdata
---@param id integer
---@param count integer @default 1
---@return integer, integer @slot, space
function dpx.item.add(user, id, count) end
---获得道具详细信息
---@param user userdata
---@param space ItemSpace
---@param slot integer
---@return DPXGame.ItemInfo @nullable
function dpx.item.info(user, space, slot) end
---删除道具
---@param user userdata
---@param space ItemSpace
---@param slot integer
---@param count integer @默认1
---@return boolean
function dpx.item.delete(user, space, slot, count) end
---装备继承, space = INVENTORY
---@param user userdata
---@param srcSlot integer
---@param dstSlot integer
---@param mask InheritMask
---@return boolean
function dpx.item.inherit(user, srcSlot, dstSlot, mask) end
---统计道具数量
---@param user userdata
---@param item_id integer
---@param where GlobMask @optional 默认 FLAG_EQUIP|FLAG_INVEN
---@return integer
function dpx.item.glob_count(user, item_id, where) end
---查询pvf道具.
---@param item_id @integer
---@return DPXGame.ItemInfo @nullable
function dpx.item.query_by_id(item_id) end
---查询pvf道具.
---若有重名, 则随便返回1个
---@param item_name @string
---@return DPXGame.ItemInfo @nullable
function dpx.item.query_by_name(item_name) end

---@class DPXGame.mail.item
---@field id integer @item id
---@field count integer @default 1
local mail_item

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

---发送系统邮件 (最多1个道具)
---
---若没有道具则发送一个只有文字的空邮件
---@param characNo integer @角色ID
---@param serverGroup integer @服务器组
---@param title string @标题
---@param content string @内容
---@param id integer @default 0 (no item)
---@param count integer @default 1
---@return boolean
function dpx.mail.item(characNo, serverGroup, title, content, id, count) end
---multi item
---
---发送系统邮件 (最多10个道具), 若没有道具则不会产生邮件
---@param characNo integer
---@param serverGroup integer
---@param title string
---@param content string
---@param items DPXGame.mail.item[] @nullable
---@param gold integer @nullable, 金币, 默认0
---@return void
function dpx.mail.mitem(characNo, serverGroup, title, content, items, gold) end

---任务信息
---@class DPXGame.QuestInfo
---@field id integer
---@field type QuestType
---@field min_level integer
---@field max_level integer
---@field is_cleared boolean @是否已完成
---@field is_acceptable boolean @是否可接受
local QuestInfo

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

---获得pvf中所有任务ID
---@param user userdata
---@return table @integer数组
function dpx.quest.all(user) end
---是否已接受任务
---@param user userdata
---@param questId integer
---@return boolean
function dpx.quest.has(user, questId) end
---获得任务详情
---@param user userdata
---@param questId integer
---@return DPXGame.QuestInfo @nullable
function dpx.quest.info(user, questId) end
---完成任务 (无奖励)
---@param user userdata
---@param questId integer
---@param hasExpose boolean @default false, 是否处理未导出任务
---@return boolean
function dpx.quest.clear(user, questId, hasExpose) end
---接受任务
---@param user userdata
---@param questId integer
---@param isForce boolean @是否强制 (忽略前置条件)
---@return boolean
function dpx.quest.accept(user, questId, isForce) end
---更新/同步任务列表
---@param user userdata
---@return void
function dpx.quest.update(user) end

---@class PacketGuard
local PacketGuard = {}

---@param v integer
---@return void
function PacketGuard:put_byte(v) end
---@param v integer
---@return void
function PacketGuard:put_short(v) end
---@param v integer
---@return void
function PacketGuard:put_dword(v) end
---@param v string
---@return void
function PacketGuard:put_binary(v) end
---@param v boolean @default true
---@return void
function PacketGuard:finalize(v) end
---@param usercptr userdata
---@return void
function PacketGuard:send(usercptr) end
---@return void
function PacketGuard:delete() end

百度网盘下载地址:https://pan.baidu.com/s/19hcOSHm8g_5avZD2yHZ8Hg
提取码:**** Hidden Message *****


相关教程


[*]Df Plugin开发文档
[*]dp2开发环境搭建

491751572 发表于 2023-5-17 14:43:54

小白来学习学习,

1121435481 发表于 2023-10-7 22:11:06

66666666666666666666666666666

kwonsukchan 发表于 2024-1-8 02:38:00

6666666666666666666666666666

13647156635 发表于 2024-1-20 06:33:47

学习学习学习学习学习学习学习学习学习学习学习学习学习学习

13647156635 发表于 2024-1-20 06:47:18

链接过期了!!!!!!!!!!!!!!!!!!

SHASHA 发表于 2024-2-2 19:39:07

学习下666666666666666666666666666666666666666

flamehaze 发表于 2024-11-17 11:00:32

我看看是不是我要的

ddlong 发表于 2025-3-25 13:07:11

我看看是不是我要的
页: [1]
查看完整版本: 台服dnf服务器插件DP2下载(dp2-8r0-1集成frida同时通讯)