找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 150|回复: 14

frida插件实现宠物装备附魔

[复制链接]

646

主题

4142

回帖

1万

积分

登峰造极

积分
14833
发表于 2024-10-9 07:31:28 | 显示全部楼层 |阅读模式

本帖子中包含更多资源

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

×
回复

使用道具 举报

646

主题

4142

回帖

1万

积分

登峰造极

积分
14833
 楼主| 发表于 2024-10-9 07:32:06 | 显示全部楼层
var CUserCharacInfo_getCurCharacInvenW = new NativeFunction(ptr(0x80DA28E), 'pointer', ['pointer'], {"abi":"sysv"});
var CInventory_GetInvenRef = new NativeFunction(ptr(0x84FC1DE), 'pointer', ['pointer', 'int', 'int'], {"abi":"sysv"});
var Inven_Item_isEmpty = new NativeFunction(ptr(0x811ED66), 'int', ['pointer'], {"abi":"sysv"});
var CUser_send_itemspace = new NativeFunction(ptr(0x865DB6C),  'int', ['pointer', 'int'], {"abi":"sysv"});
function CreatureEh(user){
var CreatureEqu = CUserCharacInfo_getCurCharacInvenW(user);//获取背包
var CreatureEquZero = CInventory_GetInvenRef(CreatureEqu, 3, 140);//获取宠物栏宠物装备第一个格子
if(Inven_Item_isEmpty(CreatureEquZero))//检查格子中的部位是否是空的
{
api_CUser_SendNotiPacketMessage(user, "附魔失败, 缺少适合条件的装备", 3);
}else{
CreatureEquZero.add(13).writeU32(2550098);//附魔的卡片ID(徽章ID同样适用)
api_CUser_SendNotiPacketMessage(user, "附魔成功。", 3);
}
CUser_send_itemspace(user, 7);//更新背包
}
回复

使用道具 举报

646

主题

4142

回帖

1万

积分

登峰造极

积分
14833
 楼主| 发表于 2024-10-9 07:32:31 | 显示全部楼层
记得去重复,可以用指令触发该函数, 或者和任务完成券一样, 指定消耗品来触发。用数组或者随机数可以进行随机附魔。宠物虽然也可以附魔,但是重新登录会消失。
回复

使用道具 举报

645

主题

3992

回帖

1万

积分

登峰造极

积分
14550
发表于 2024-10-9 07:32:39 | 显示全部楼层
给大佬跪了
回复

使用道具 举报

669

主题

4177

回帖

1万

积分

登峰造极

积分
15168
发表于 2024-10-9 07:32:53 | 显示全部楼层
6
回复

使用道具 举报

669

主题

4177

回帖

1万

积分

登峰造极

积分
15168
发表于 2024-10-9 07:33:35 | 显示全部楼层
6,要是策划看到了马上就出宠物装备附魔宝珠。春节,五一,国庆三个节日三个部位。属性我都想好了,一个加三攻四维,一个加技攻三速,一个加属强和1-95技能LV
回复

使用道具 举报

669

主题

4177

回帖

1万

积分

登峰造极

积分
15168
发表于 2024-10-9 07:34:30 | 显示全部楼层
6啊
回复

使用道具 举报

645

主题

3992

回帖

1万

积分

登峰造极

积分
14550
发表于 2024-10-9 07:35:12 | 显示全部楼层
6
回复

使用道具 举报

680

主题

4239

回帖

1万

积分

登峰造极

积分
15413
发表于 2024-10-9 07:35:30 | 显示全部楼层
Frida使用触发道具后,背包内没有装备,道具消失,有没有方法判断返还一个道具?跨界那些也是
仓库没开跨界道具就没了

本帖子中包含更多资源

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

×
回复

使用道具 举报

646

主题

4142

回帖

1万

积分

登峰造极

积分
14833
 楼主| 发表于 2024-10-9 07:36:26 | 显示全部楼层
失败返还道具问题,看下你的插件是否有函数api_CUser_AddItem(user, item_id, item_cnt),有的话,在判断为失败的地方附加添加道具代码。比如附魔失败这里:
if(Inven_Item_isEmpty(CreatureEquZero))//检查格子中的部位是否是空的
{
api_CUser_SendNotiPacketMessage(user, "附魔失败, 缺少适合条件的装备", 3);
api_CUser_AddItem(user, 3300, 1);//发放1个编号3300道具
}
跨界石那些自己找找判断为失败的地方添加就行
回复

使用道具 举报

680

主题

4239

回帖

1万

积分

登峰造极

积分
15413
发表于 2024-10-9 07:36:49 | 显示全部楼层
大佬牛逼
回复

使用道具 举报

646

主题

4142

回帖

1万

积分

登峰造极

积分
14833
 楼主| 发表于 2024-10-9 07:36:56 | 显示全部楼层
谢谢分享
回复

使用道具 举报

646

主题

4142

回帖

1万

积分

登峰造极

积分
14833
 楼主| 发表于 2024-10-9 07:37:43 | 显示全部楼层
请教个问题,我是通过dp调用的frida,dp定义的三个参数类型只有int,float,和char*,我该如何把dp的user.cptr传递给frida
回复

使用道具 举报

705

主题

4208

回帖

1万

积分

登峰造极

积分
15441
发表于 2024-10-9 07:38:39 | 显示全部楼层
大佬    这个返还道具   有个问题,首次登陆游戏  使用道具判断失败  他不会返还  是哪里的问题啊/*
function api_CUser_AddItem(user, item_id, item_cnt)
{
var item_space = Memory.alloc(4);
var slot = CUser_AddItem(user, item_id, item_cnt, 6, item_space, 0)
if(slot >= 0)
{
//通知客户端有游戏道具更新
CUser_SendUpdateItemList(user, 1, item_space.readInt(), slot);
}
return;
}
*/
回复

使用道具 举报

705

主题

4208

回帖

1万

积分

登峰造极

积分
15441
发表于 2024-10-9 07:39:11 | 显示全部楼层
老哥  插件的攻城怎么改成固定时间开放啊
回复

使用道具 举报

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

本版积分规则

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