找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 509|回复: 14

fr

[复制链接]

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
发表于 昨天 20:11 | 显示全部楼层 |阅读模式
//设置party成员存活状态 int=0死亡 =1复活币复活 =2复活药复活
var CParty_set_charac_live =  new NativeFunction(ptr(0x085b29bc), 'void', ['pointer','pointer','int'], {"abi":"sysv"});
Interceptor.attach(ptr(0x085b29bc),
{
onEnter: function (args)
{
var party = args[0];
var user = args[1];
var live = args[2].toInt32();
args[2] = ptr(2);//改变结果 =0死亡 =1复活币复活 =2复活药复活
}
});
回复

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:12 | 显示全部楼层
//杀怪获得经验时检测是否有疲劳蓄电池 retval=0 不增加经验值  retval=1增加经验值 额外显示增加的经验 计算30%
Interceptor.attach(ptr(0x084a852c),
{
onEnter: function (args)
{
var user = args[0];
},
onLeave: function (retval)
{
//retval.replace(1);
}
});
//师徒?宠物?经验加成 直接在原来基础上增加retval的值 杀怪通关都适用
Interceptor.attach(ptr(0x0864fa08),
{
onEnter: function (args)
{
var user = args[0];
var exp = args[1].toInt32();//基础经验
},
onLeave: function (retval)
{
//retval.replace(100000);
}
});
//装扮经验加成不适用通关 返回值大概是百分比 100为增加100%经验 直接加到基础经验里
Interceptor.attach(ptr(0x0814aa08),
{
onEnter: function (args)
{
var user = args[0];
},
onLeave: function (retval)
{
//retval.replace(100);
}
});
//服务器活动经验加成 杀怪通关都适用 返回值大概是百分比 100为增加100%经验 直接加到基础经验里
Interceptor.attach(ptr(0x0814a6e0),
{
onEnter: function (args)
{
var exp = args[4].toInt32();//基础经验值 不受等级影响前的值
},
onLeave: function (retval)
{
//retval.replace(100);
}
});
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:12 | 显示全部楼层
//根据user的inven读宠物数据
var CInventory_GetCreatureMgrW =  new NativeFunction(ptr(0x080dd568), 'pointer', ['pointer'], {"abi":"sysv"});
//穿戴中宠物获得经验 只对消耗疲劳的经验的宠物生效
var CCreature_GainExpCreature =  new NativeFunction(ptr(0x08337bbc), 'int', ['pointer','int','pointer'], {"abi":"sysv"});
//穿戴中宠物获得经验 道具类宠物也生效 creture,int,user  木偶类型int=提升级数 其他类型为增加的经验值
var CCreature_GainExp =  new NativeFunction(ptr(0x083378fc), 'int', ['pointer','int','pointer'], {"abi":"sysv"});
//获取宠物当前经验值
var CCreature_GetExp =  new NativeFunction(ptr(0x0833f08e), 'int', ['pointer'], {"abi":"sysv"});
//根据经验计算当前该经验对应的等级 若是道具升级则是道具使用次数(猜测)
var CCreature_GetExpLevel =  new NativeFunction(ptr(0x083374d2), 'int', ['pointer','int'], {"abi":"sysv"});
//获取宠物最大等级 pointer = creature.add(17*4).readPointer();
var CCreature_GetMaxLevel =  new NativeFunction(ptr(0x0833f24c), 'int', ['pointer'], {"abi":"sysv"});
//获取穿戴中宠物id .cre
var CCreature_GetCreatureId = new NativeFunction(ptr(0x833f0da), 'int', ['pointer'], {"abi":"sysv"});
//获取穿戴的宠物装备ID .equ
var CCreatureItem_GetItemId = new NativeFunction(ptr(0x833efa4), 'int', ['pointer'], {"abi":"sysv"});
//获取穿戴的宠物UID
var CCreatureItem_GetUid = new NativeFunction(ptr(0x833efbe), 'int', ['pointer'], {"abi":"sysv"});
var CCreature_IsDieCreature =  new NativeFunction(ptr(0x08338478), 'int', ['pointer'], {"abi":"sysv"});
var CCreature_GetOverSkillTime =  new NativeFunction(ptr(0x0833f0e6), 'pointer', ['pointer'], {"abi":"sysv"});
//检查金钱兔的overskill
var COverSkillTime_checkTime =  new NativeFunction(ptr(0x0833d65e), 'int', ['pointer'], {"abi":"sysv"});
//map的走位图 长度有几个图
var CBattle_Field_getMapWidth =  new NativeFunction(ptr(0x0822cefc), 'int', ['pointer'], {"abi":"sysv"});
//map的走位图 高度有几个图
var CBattle_Field_getMapHeight =  new NativeFunction(ptr(0x0822cf0a), 'int', ['pointer'], {"abi":"sysv"});
//map的走位图 高度有几个图
var CBattle_Field_getCurPosXY =  new NativeFunction(ptr(0x08300da6), 'int', ['pointer'], {"abi":"sysv"});
//进map时长
var CParty_GetMapPlayingTime =  new NativeFunction(ptr(0x85b6768), 'int', ['pointer'], {"abi":"sysv"});
//map的走位图X坐标 从左上角开始计算0,0
var CBattle_Field_GetCurPosX =  new NativeFunction(ptr(0x085bf32c), 'int', ['pointer'], {"abi":"sysv"});
//map的走位图Y坐标 从左上角开始计算0,0
var CBattle_Field_GetCurPosY =  new NativeFunction(ptr(0x085bf382), 'int', ['pointer'], {"abi":"sysv"});
//mapID
var CBattle_Field_GetCurrentMapIndex =  new NativeFunction(ptr(0x0822d05e), 'int', ['pointer'], {"abi":"sysv"});
//是否杀完深渊怪物 需在副本中使用该函数 0=未击杀或未开深渊  1=成功杀完深渊怪物
var CBattle_Field_IsKilledAllHellGruoups =  new NativeFunction(ptr(0x085bf250), 'int', ['pointer'], {"abi":"sysv"});
//设置party成员存活状态 int=0死亡 =1复活币复活 =2复活药复活
var CParty_set_charac_live =  new NativeFunction(ptr(0x085b29bc), 'void', ['pointer','pointer','int'], {"abi":"sysv"});
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:13 | 显示全部楼层
//0x0865e994 CUser::CheckCoolTimeItem a0=user a1=item_id  retval.replace(1)=不消耗道具
//0x085b5f8e CParty::OnUsedSkill 使用技能时 a0=party a1=user a2=skillid
回复 支持 反对

使用道具 举报

2551

主题

2万

回帖

7万

积分

出神入化

积分
73645
发表于 昨天 20:14 | 显示全部楼层
真勤劳

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:15 | 显示全部楼层
副职业道具操作装备 需改PVF数据已取消客户端对装备稀有度的验证 frida逻辑参考
//使用副职业道具
function Hook_CExtraction_Check()
{
Interceptor.attach(ptr(0x084A2A5E),
{
onEnter: function (args)
{
var user = args[1];//获取角色指针
var stk_slot = args[3].toInt32();//获取道具指针
var equ_slot = args[4].toInt32();//获取装备指针
var stk = CUser_get_Item(user,1,stk_slot);
var stk_id = CItem_get_ItemId(stk);
//10006=e2套 10008=e3套
if(stk_id<=0) {return}
//指定道具执行以下逻辑
if((stk_id>=2600463&&stk_id<=2600467)||(stk_id>=2600474&&stk_id<=2600478)||(stk_id>=2600482&&stk_id<=2600486))
{
var equ = CUser_get_Item(user,1,equ_slot);
var equ_id = CItem_get_ItemId(equ);
if(equ_id<=0)
{
CUser_msg(user,'▷ 回收失败 无法回收该物品'+equ_name,8);
CUser_SendCmdErrorPacket(user,84,17);
return;
}
var equ_price = CItemId_get_ItemPrice(equ_id);
var equ_name = CItemId_get_ItemName(equ_id);
if(equ_price<=0)
{
CUser_msg(user,'▷ 回收失败 无法回收'+equ_name,8);
CUser_SendCmdErrorPacket(user,84,17);
return;
}
var rcy_id = 0;
var rcy_cnt = 0;
if(equ_price==10006)
{
rcy_id = 3290;
rcy_cnt = get_random_int(1,3)
}
else if(equ_price==10008)
{
rcy_id = 3311;
rcy_cnt = get_random_int(1,3)
}
if(rcy_id<=0)
{
CUser_msg(user,'▷ 回收失败 无法回收该物品'+equ_name,8);
CUser_SendCmdErrorPacket(user,84,17);
return;
}
CUser_msg(user,equ_name+' 已成功回收',8);//消息提示成功
CUser_msg_Prompt(user,rcy_id);//弹窗提示成功
do_task_Delay(CUser_clear_Item,[user, 1, equ_slot],10);//延时删除装备
do_task_Delay(CUser_add_ItemCnt,[user, rcy_id, rcy_cnt],20);//延时获得奖励
}
}
});
}
//分解装备时
function Hook_DisJointItem()
{
Interceptor.attach(ptr(0x081f92ca),
{//道具分解机a3=28a4=0a5=道具槽位
//诺顿分解机a3=28a4=0a5=65535
//玩家分解机a3=239a4=分解师指针a5=65535
onEnter: function (args)
{
var user = args[0];//获取角色指针
var stk_slot = args[5].toInt32();//获取道具槽位
var stk = CUser_get_Item(user,1,stk_slot);//获取道具指针
var stk_id = CItem_get_ItemId(stk);//获取道具ID
var equ_slot = args[1].toInt32();//获取装备槽位
var equ = CUser_get_Item(user,3,equ_slot);//获取装备指针
var equ_id = CItem_get_ItemId(equ);//获取装备ID
if(stk_slot==65535) {return}//若不是道具分解 返回
if(stk_id<=0) {return}//若道具不存在 返回
if(stk_id<2600468 || stk_id>2600470) {return}//若不是指定道具 返回
if(equ_slot<140)//若不是放入宠物装备 返回
{
CUser_msg(user,'▷ 操作失败 请放入宠物装备',8);
CUser_SendCmdErrorPacket(user,84,17);
return;
}
if(equ_id<=0) {return}//若装备不存在 返回
var equ_name = CItemId_get_ItemName(equ_id);//获取装备名称
var stk_name = CItemId_get_ItemName(stk_id);//获取道具名称
//----------------------------------宠物装备附魔--------------------------\\
if(stk_id == 2600468)
{//宠物装备附魔
var item = CUser_get_Item(user,1,3);//获取快捷栏第一格物品指针
var item_id = CItem_get_ItemId(item);//获取快捷栏第一格物品id
if(item_id<=0)//若无物品 返回
{
CUser_msg(user,'▷ 附魔失败 快捷栏第一格无物品',8);
CUser_SendCmdErrorPacket(user,84,17);
return;
}
if(CStkId_get_StkType(item_id)!=20 && (item_id<3600 || item_id>=4000))//若快捷栏第一格物品不是卡片或徽章 返回
{
CUser_msg(user,'▷ 附魔失败 快捷栏第一格物品不符合',8);
CUser_SendCmdErrorPacket(user,84,17);
return;
}
var card_name = CItemId_get_ItemName(item_id);//获取卡片名称
CUser_msg(user,equ_name+' 已成功附魔 '+card_name,8);//消息提示成功
CUser_SendCmdOkPacket(user,275);//弹窗提示成功
do_task_Delay(CUser_dec_ItemCnt,[user, 1, 3, 1],100);//延时扣除一个卡片
do_task_Delay(CItem_write_AddInfo,[user, 3, equ_slot, 13, item_id],100);//延时宠物装备写入附魔
return;
}

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

2322

主题

1万

回帖

6万

积分

管理员

积分
68707
发表于 昨天 20:16 | 显示全部楼层
太强啦
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:16 | 显示全部楼层

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

2470

主题

2万

回帖

7万

积分

出神入化

积分
72634
发表于 昨天 20:17 | 显示全部楼层
请问大佬宠物附魔的卡片ID怎么存入creature_items的表里面呢?好像切换角色宠物的附魔会消失

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:17 | 显示全部楼层
大佬附魔没法用附魔那个手选择吗
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:18 | 显示全部楼层
//附魔函数var CExpertJobMgr_OnEnchantByBead = new NativeFunction(ptr(0x0849ED1A), 'int', ['pointer', 'pointer', 'int', 'int', 'int', 'int'], { "abi": "sysv" });
//附魔函数 可获得装备slot
function Hook_User_Enchant()
{
Interceptor.replace(ptr(0x0849ED1A), new NativeCallback(function (a0, a1, a2, a3, a4, a5)
{
print_y('fumo')
var user = a1;//获取角色
var user_name = CUser_get_CharacName(user);//获取角色名称
var user_job = CUserCharacInfo_get_charac_job(user);//获取角色职业
var inven = CUserCharacInfo_getCurCharacInvenW(user);//获取指针
var stk_slot = a3;//获取宝珠栏位
var stk = CUser_get_Item(user, 1, stk_slot);//获取该宝珠
var stk_id = CItem_get_ItemId(stk);//获取该宝珠的id
var stk_name = CItemId_get_ItemName(stk_id);//获取该宝珠的name
var equ_slot = a5;//获取装备栏位
var equ = CUser_get_Item(user, 1, equ_slot);//获取该装备
var equ_id = CItem_get_ItemId(equ);//获取该装备的id
var equ_name = CItemId_get_ItemName(equ_id);//获取该装备的name
var old_card = equ.add(13).readU32();//获取附魔的卡片ID
var equ_data = CItemId_get_ItemData(equ_id);//获取装备数据
var equ_type = equ_data.add(141*4).readU32();//获取装备穿戴部位
var equ_rar = CItemId_get_ItemRar(equ_id);//获取装备品级
var equ_lv = CItemId_get_ItemUseLv(equ_id);//获取装备使用等级
CExpertJobMgr_OnEnchantByBead(a0, a1, a2, a3, a4, a5);//执行原函数逻辑
if(stk_id == 700010301)
{//随机技能等级效果
var new_card = get_RanCard1_by_job(user);//随机抽取一个卡片
equ.add(13).writeU32(new_card);//写入卡片
CUser_SendUpdateItemList(user, 1, 0, equ_slot);//更新操作的装备栏位
return;
}
}, 'int', ['pointer', 'pointer', 'int', 'int', 'int', 'int']));
}
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:18 | 显示全部楼层
//获得QP (user,qp_cnt,qst_id,log_bool)
var CUser_incQuestPoint = new NativeFunction(ptr(0x0868ac66), 'int', ['pointer','int','int','int'], {"abi":"sysv"});
CUser_incQuestPoint(user,677,0,0)
回复 支持 反对

使用道具 举报

2522

主题

2万

回帖

7万

积分

出神入化

积分
73838
发表于 昨天 20:19 | 显示全部楼层
好贴收藏,虽然看不懂
回复 支持 反对

使用道具 举报

1898

主题

1万

回帖

6万

积分

出神入化

积分
60914
 楼主| 发表于 昨天 20:19 | 显示全部楼层
//读取宝珠的卡片
var CStackableItem_GetMonsterCardId = new NativeFunction(ptr(0x0849f530), 'int', ['pointer'], {"abi":"sysv"});
var item_data = CDataManager_find_item(G_CDataManager(), item_id)
var card_id = CStackableItem_GetMonsterCardId(item_data)
回复 支持 反对

使用道具 举报

2322

主题

1万

回帖

6万

积分

管理员

积分
68707
发表于 昨天 20:20 | 显示全部楼层
好贴收藏,虽然看不懂
回复 支持 反对

使用道具 举报

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

本版积分规则

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