[钻石星辰拳]MHP : 设置 view model 的皮肤
metahook吧
全部回复
仅看楼主
level 10
NikoKVCS 楼主
Download Link : 百度网盘
压缩包内有一份 MHP的源码和一份 AMXX 模块的源码
感觉 @灬↘孤独娱乐 会需要
2014年08月28日 06点08分 1
level 11
~ 谢楼主~ 嘛 不过要开学了 高一党不打算继续玩了 学习苦逼
2014年08月28日 06点08分 2

2014年08月28日 06点08分
level 12
[呵呵]
2014年08月28日 09点08分 3
level 10
NikoKVCS 楼主
谢谢 Nagi 加精啦啦[爱心]
2014年08月28日 10点08分 4
level 12
甚麼来的?? [委屈][疑问]
- 来自 Microsoft/Nokia 粉,手持 Lumia 920/Lumia 800/N9/N8/N900/Asha 503/Zune HD/Surface pro :) 这只是无意义的小尾巴
2014年08月28日 14点08分 5
是用于设定 v模型手臂皮肤的,因为插件设置的话会不正常>3<
2014年08月28日 14点08分
level 11
[惊讶]你这么快就学会了metahook的插件啦
2014年08月28日 14点08分 6
我要编译好的
2014年08月28日 14点08分
回复 模型V农民 : 压缩包里面有呀
2014年08月28日 15点08分
回复 NikoKVCS :[泪]求教插件
2014年08月28日 15点08分
回复 模型V农民 :有不懂可以问的呀,我会尽力回答的哦~ ( /不过别问太基础的就行 别问结构体或类是什么,这种问题 )
2014年08月28日 15点08分
level 13
孤独都弃坑了
2014年08月28日 15点08分 7
看的出来 (—.—|||
2014年08月28日 15点08分
level 11
直接hook V_DrawViewModel还可以支持v模型透明(rendermode=texture的透明,不是贴图additive的那个)。
2014年08月29日 08点08分 9
这么说,是不是能实现控制v模型透明度大小之类的? 我一直以为这个功能是实现不了 的,不愧是大hz>3<
2014年08月29日 08点08分
回复 NikoKVCS : 可是 没找到 V_DrawViewModel [委屈]
2014年08月29日 08点08分
回复 NikoKVCS :引擎里,要自己逆向,每个版本地址都不一样
2014年08月29日 23点08分
回复 hzqst : (+﹏+)~ 不会逆。我的hw是3266的,你有木有逆好的了呢?没有的话就不用了o(╯□╰)o[委屈]
2014年08月30日 01点08分
level 11
回复 NikoKVCS :hook R_DrawViewModel在里面直接return,在HUD_DrawTransparentTriangles里调用一次新的R_DrawViewModel地址。
g_pfn_R_DrawViewModel = (type_R_DrawViewModel)GetEngfuncsAddress(0x1D45660);
g_pMetaHookAPI->InlineHook((void *)g_pfn_R_DrawViewModel, R_DrawViewModel, (void *&)g_real_R_DrawViewModel);
#define GetEngfuncsAddress(addr) (g_dwEngineBase+addr-0x1D01000)
2014年08月30日 01点08分 10
哇~ 好感动~ 可不可以顺便说一下 (type_R_DrawViewModel) 的参数数量和参数类型 [乖]
2014年08月30日 01点08分
回复 NikoKVCS : 我不知道我的理解对不对 [委屈] 是不是这样: 用 InlineHook 勾住这个函数后,在函数内部直接 return; 这样来阻断引擎的DrawViewModel函数.然后自己在 DrawTransparentTriangles里面不断用g_real_R_DrawViewModel 重新自己绘画view model, 可是,我不知道type_R_DrawViewModel的参数[委屈]
2014年08月30日 01点08分
回复 NikoKVCS :对,参数就是(void *(void)),返回值和参数都是void的函数指针
2014年08月30日 04点08分
回复 hzqst : 参数都是 void ? 那怎么实现修改v模型手臂渲染状态嘞? [/疑惑]
2014年08月30日 04点08分
level 11
g_real_R_DrawViewModel()之前保存并设置全局变量entity_t *r_currententity的值为gEngfuncs.GetViewModel(),然后调用R_DrawViewModel(),再将r_currententity的值改回来。
cl_entity_t **r_currententity;
HUD_GetStudioModelInterface里:r_currententity = *(cl_entity_t ***)((DWORD)pEngineStudio->GetCurrentEntity + 0x1);
使用*r_currententity = gEngfuncs.GetViewModel()这样既可
2014年08月30日 13点08分 11
level 10
NikoKVCS 楼主
@hzqst
下面是我的代码, 不知道那里错了, 能否抽空看看呢?
也不知道 我会不会理解错你的意思了 [委屈]
// Global
cl_entity_t **r_currententity;
void HUD_DrawTransparentTriangles(void)
{
*r_currententity = gEngfuncs.GetViewModel();
g_real_R_DrawViewModel();
cl_entity_t *viewent = *r_currententity;
viewent->curstate .rendermode = kRenderTransTexture;
viewent->curstate .renderfx = kRenderFxNone;
viewent->curstate .rendercolor .r = 200;
viewent->curstate .rendercolor .g = 200;
viewent->curstate .rendercolor .b = 200;
viewent->curstate. renderamt = 130;
return gExportfuncs.HUD_DrawTransparentTriangles ();
}
int HUD_GetStudioModelInterface(int iVersion, struct r_studio_interface_s **ppStudioInterface, struct engine_studio_api_s *pEngineStudio)
{
r_currententity = *(cl_entity_t ***)((DWORD)pEngineStudio->GetCurrentEntity + 0x1);
return gExportfuncs.HUD_GetStudioModelInterface(iVersion, ppStudioInterface, pEngineStudio);
}
2014年08月30日 15点08分 12
出现的问题 依然是: 开枪时会正常显示出 v模型,但是一旦静止下来,很快v模型就不被绘制出来了
2014年08月30日 15点08分
回复 NikoKVCS :不知道了,你问Nagi吧
2014年08月30日 15点08分
回复 hzqst :你这样子试过吗,如果你试过没问题的话,那应该就是我自己的问题了[委屈]
2014年08月30日 15点08分
回复 NikoKVCS :我是用的TEMPENTITY实现的假v模
2014年08月30日 16点08分
level 10
NikoKVCS 楼主
@hzqst 不好意思,打扰一下哦 [乖]
想请教问题~ [委屈]
我屏蔽了引擎的v模绘画函数,然后用 tempent 来实现v模型,
折腾了一晚上, 能解决的,我基本都自己解决了,剩下的是自己不懂得该怎么解决的
所以只好请教您了[乖] 希望抽出点宝贵时间,简单得看下下~
我用 TEMPENT 实现的v模,出现了问题是
v模型会陷入墙壁, 不知道怎么解决 (+﹏+)~
tempent实现的v模是左手臂的 0.0 好奇怪
开枪时,出现了两个枪火
[泪]
源码节选截图:
上面的 R_DrawViewModel 函数 是在 V_CalcRefdef 里面调用的
2014年09月20日 14点09分 13
另外, 我 GetLocalPlayer() 得到的玩家实体,获得的velocity的数值都为0, 很奇怪,怎么获取玩家的速度的呢? [委屈]
2014年09月20日 14点09分
回复 NikoKVCS :百度:OPENGL 深度测试。绘制V模之前把深度测试关闭,画完再打开。获取玩家velocity到refdef里去看看,或者从pm里面拿。哦对了,R_DrawViewModel你到hud_DrawTransparentTriangles里面去调用啊,到V_CalcRefdef里调用做什么?
2014年09月20日 15点09分
回复 NikoKVCS :顺便如果你用tempentity代替原版的R_DrawViewModel的话就把R_DrawViewModel屏蔽掉啊,直接到V_CalcRefdef里面复制实体属性就好了。用tempentity的话绘制的地方不在R_DrawViewModel,在R_StudioDrawPoints
2014年09月20日 15点09分
回复 hzqst : 我把函数名取名为 R_DrawViewModel 看起来会让人误会, 我把引擎的绘制函数取名为 R_DrawViewMode_Old,然后直接return来阻断了,而R_DrawViewMode我放在CalcRefdef调用,其实就只是拷贝v模属性的函数 [委屈]
2014年09月20日 15点09分
level 14
设置手臂贴图还是。。。
2014年10月08日 13点10分 14
v模型的皮肤啦 ~>_<~+ pev-skin
2014年10月09日 04点10分
level 13
[小乖]失效了 求补档
2022年05月11日 09点05分 15
?你居然挖坟了[滑稽]
2022年05月11日 09点05分
level 1
有人可以重新上传吗?
2023年05月02日 05点05分 16
1