[钻石星辰拳]MHP : 设置 view model 的皮肤
metahook吧
全部回复
仅看楼主
level 10
NikoKVCS 楼主
Download Link : 百度网盘
压缩包内有一份 MHP的源码和一份 AMXX 模块的源码
感觉 @灬↘孤独娱乐 会需要
2014年08月28日 06点08分 1
level 10
NikoKVCS 楼主
谢谢 Nagi 加精啦啦[爱心]
2014年08月28日 10点08分 4
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分
1