-
155首先感谢 @sidyhe 开源的dp插件、@吴克大哥 提供的hook基址和功能实现的思路! 分享一些思路给喜欢折腾的小伙伴,少走一些弯路!如有表述错误请各位大佬指出提醒! 插件版本:1.dp2.8.2+ 2.fridajs 本次分享吧里经常求助的功能: 1)登录提醒+问候语; 2)副本通关时间; 3)地下城拾取物品广播; 4)dp插件热重载; 与分享无关的代码部分已被删除,fridajs其他功能参考95神迹因果的实现。 最后声明:本分享仅供学习参考使用,下载后24小时内自行删除,
-
33
-
38登录器 "自定义DLL" = ["Load_DXD9_785.dll", "Load_aaxiufu.dll"] PVF ENUM_EQUIPMENTTYPE_MAXS <- "aajisaohsfopasfiasjf!@$!*$fjaosf" CHECK_KEY <- "aajisaohsfopasfiasjf!@$!*$fjaosf" GUNNER_BULLETALS_INFO <- { [0] = "flamebowgun.ani", [1] = "freezebowgun.ani", [2] = "flamebowgun.ani", [3] = "silverpistol.ani" } GUNNER_ALLBULET_INDEX <- { [22019] = true, [22005] = true, [22014] = true, [22011] = true, [22008] = true, [22002] = true, [22020] = true, [22006] = true, [22015] = true, [22012] = tru
-
70
-
212
-
86
-
49
-
67
-
3789
-
71
-
112
-
27
-
65
-
97步骤一: 新增一个新的道具文件至pvf,可参考使用stackable/cash/cube_bind.stk作模板DIY,道具id设定为2675818;(注意检查avatarfixedhiddenoptionlist.etc文件中[mystic circle]词条下是否为此id) 步骤二(选择自己合适的方法,二选一): 方法一:将[hidden option]词条新增到自己想支持时装潜能的装扮equ文件中。(书写格式就是直接写[hidden option]即可) 方法二:HOOK修改服务端 CItem::IsHiddenOption(CItem*) 函数返回 1; 步骤三: 新增以下pos文件至PVF的正确路径里(可参考使用emb
-
23😢:佣兵系统支持单机登陆器,缺点是冒险团界面没有佣兵栏目。 1、使用navicat链接IP打开 2、将taiwan_cain文档打开,找到charac_link_bonus打开, charac_no为ID角色序号、 exp为经验值、gold这个与奖励相关、mercenary_start_time为佣兵出战的开始时间、 mercenary_finish_time为佣兵出战的完成时间、 mercenary_area为佣兵所出战的地区、 mercenary_period为佣兵角色处于出行、 🫥:简单直接的开启方法就是把两个 -1 都改成 1就能开启佣兵返回图标领取奖励了。 🫨:前面说了单
-
125
-
2211763一、冒险家回归活动 回归奖励:event/returnuserreward.evt 1.直接填表(后门方法) 分别为 角色id,到期时间,是否首次冒险家回归登陆(选择角色页面会有个窗口提示) 2.七天不上线给回归资格(官方计时方法) df_game_r(左边改右边): taiwan_cain数据库执行下列代码: DELIMITER $$ create trigger SetAccountLastPlayTime after update on charac_stat for each row BEGIN if (old.last_play_time != new.last_play_time) then update charac_info set last_play_time=new.last_play_time where charac_no = new.charac_no; end if; EN1376035074931台服DNF吧吧务团队 网页链接 台服DNF吧防骗指南 网页链接 台服DNF吧汇总指南 网页链接42瞎鼓捣哈哈,看到好像没人专门讲过,下面开始贴图29Interceptor.attach(ptr(0x080FC850),{ onEnter: function (args) { this.equiPos = args[2].add(27).readU16(); this.user = args[1]; }, onLeave: function (retval){ CUser_SendUpdateItemList(this.user, 1, 0, this.equiPos); } });345417位置在importEquipmentParameterInfo [HP MAX] [HP MAX rate] [MP MAX] [MP MAX rate] [physical attack] [physical defense] [magical attack] [magical defense] [if] [then] [/multiple then] [then] [multiple then] [equipment physical attack] [equipment physical defense] [equipment magical attack] [equipment magical defense] [additional effect index] [recovery status] [separate attack] [separate rate] [physical absolute damage] [physical damage reduce] [physical absolute defense] [magical absolute damage] [magical damage reduce] [magical absolute defense] [fire resistance] [water resistance] [dark re20原理:hook进入副本的函数,修改深渊派对的标志621330641//*0627缩放优化(取消[use zoom rate]标签镜头跟随) *(BYTE*)0x008E3023 = 0xEB; memcpy((void*)0x008E3114, "\xEB\x0E\x90\x90\x90", 5);25//字母‘R’修复 static const char text_R = 'R'; Naked void R_Text1() { _asm { lea eax, text_R mov dword ptr ds : [0x01B47208] , eax mov eax, 0x015319C8 jmp eax } } Naked void R_Text2() { _asm { lea eax, text_R mov dword ptr ds : [0x01ADE05C] , eax mov eax, 0x0150F4A4 jmp eax } } 食用: WriteJmpCode((void*)0x015319C3, (void*)R_Text1); WriteJmpCode((void*)0x0150F49F, (void*)R_Text2);32打开df_game_r文件 在000FCFDE位置修改以下字节 E9 37 01 00 0047客户端: //PVP解除外传角色限制 *(char*)0x0063D2E5 = 1; memcpy((void*)0x0063C9D2, "\xE9\x87\x02\x00\x00\x90\x90\x90", 8); 服务端: 打开df_game_r文件 在0017EC69位置修改以下字节 01 00 00 00 EB 2E 8B 45 10 0F B6 40 0D 0F BE C0 89 44 24 04 8B 45 0C 89 04 24 E8 84 92 06 00 3C 0A 0F 94 C0 84 C0 74 07 B8 0124//0627默认开启技能名称 *(WORD*)0x006D50FA = 0x12EB;25//0627open SetClipboardData *(WORD*)0x011C53B0 = 0x01B0;25561347102205