设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3819|回复: 26

player模型动作错误的原因[重要]     [复制链接]

Super Moderator

此人已辞职,有事找别人.

Rank: 10Rank: 10Rank: 10

帖子
2341
精华
3
声望
9852 点
金币
3913 Mold
被赞许
-37 次
注册时间
2004-7-17

Modchina元老

发表于 2010-6-29 10:14:12 |显示全部楼层
本帖最后由 阿发 于 2010-7-13 20:31 编辑

player模型动作错误的原因

症状:
一定条件模型持枪动作错误,上身变为dummy(多为拿双枪或防暴盾持刀)

直接原因:
模型的动作序列错误
如果按amxmodx的fakemeta模块来说,就是此时pev_sequence为0

进一步分析可能的原因:
1。
使用了奇怪的插件,调用sequence错误,比如大锤插件等(本人未具体验证确认)
2。
dlls/mp.dll与模型不匹配(较常见)
特定版本的mp.dll对sequence序号的指定是根据sequence name来的,如果sequence name不对,可能程序认为找不到所需的序列号,便将其置为默认0。

以下经本人验证确认:
sequence name与官方原模不一致,尤其是使用了CSOL女模及其衍生物,sequence name会有好几处与官方原模不同:
???_dualpistols 被换为 ???_dualpistols_1和???_dualpistols_2(反编译时因文件名重复,名称自动变更,且在qc中没有手动改正sequence name导致)
???_shieldknife 被换为 ???_shieldgren
???_shieldgren 被换为 ???_hammer(大锤插件导致,直接用大锤动作替换了持盾拿刀动作)

使用这样的模型或其衍生物(特指qc中sequence name与官方原模不一致的)
同时mp.dll为某种版本——具体有哪些版本可能出错我不清楚,但从我尝试的来看——
CZ1.0(神州奥美)的mp.dll、
一种修改过的CS用的CZ的mp.dll(Esai CS1.6附带的,修改时间:2005年6月7日, 17:40:38)
不会产生这样的问题;
而CZ1.2(DcOo的,修改时间:2005年9月3日, 10:56:22)
以及Steam正版CZ最新的mp.dll
(及以上的修改版)
都会产生这样的问题
再加上从hzqst、大江、禁锢、傻子等人听说的情况来看,产生这样问题的mp.dll使用得很普遍
(个人推测在05年6月到9月间的升级之后的所有mp.dll都会产生这样的问题)

这些版本的mp.dll使程序在初始化时根据sequence name建立sequence序号的索引,只根据models/player/urban/urban.mdl建立CT的,models/player/terror/terror.mdl建立T的,(VIP暂时未验证)。只要urban.mdl或terror.mdl的sequence name不被识别,CT或T的相应动作在游戏中本该被调用时就会变成dummy。

修正方法:
1。通过amxmodx插件fakemeta模块修改pev_sequence,在换枪时将0改为所需的序号。
2。urban和terror使用或修改为官方原模或同官方原模sequence name一致,可以重新编译(如果你有源文件)——
对于krastio v1.2命令行反编译得到的CSOL女模qc文件替换的sequence name(只改qc的sequence name即可,没必要改文件名,推荐按以下顺序依次进行)
_dualpistols_1" "
修正为
_dualpistols" "

_dualpistols_1" {
修正为
_dualpistols" {

_dualpistols_2" "
修正为
_dualpistols" "

_dualpistols_2" {
修正为
_dualpistols" {

_shieldgren" {
修正为
_shieldknife" {

_hammer" {
修正为
_shieldgren" {


——或用BIN/HEX editor手动查找替换sequence name(注意保持文件长度,不要增删字节)
具体关键字参考以上,但不含“" "”及“" {”(这些是为了区别sequence name与文件名的特定格式)
另外用ms3d反编译得到的qc可能没有引号等,同理自行解决。


PS:
如果以上内容在一些情况下不适用请回帖斧正,毕竟我只能测试这么几个版本,谢谢。


the last but not the least:
各位模型制作者今后做player model时要对此留心,即使是官方原模,反编译后直接编译,sequence name也会变的。
你的疏忽,很有可能被不知情的人用作urban或terror导致所有player model的动作错误!
各位插件编写者请谨慎选择urban和terror,并考虑是否需要特别修正动作序列!
而我因为一直使用esai CS1.6的从CZ修改过来的mp.dll,对此并未重视,最近不得不换mp.dll才注意到,
这个发现实在太晚,因为sequence name错误的player模型已经到处都是了(包括我自己做的三国及**MM)
但如果各位模型制作者及插件编写者知道这点,今后注意,亡羊补牢还为时未晚。
已有 6 人评分声望 金币 被赞许 收起 理由
无语。。A + 10 尽力而为
hzqst + 20 + 20 + 1 刚做了个实验 果然真的 还好我用的自定义模 ...
我是Jacy + 16 + 5
de01 + 20 + 5 额。。我管理不了这区,不然加精 ...
qwe100844 + 10

总评分: 声望 + 156  金币 + 30  被赞许 + 1   查看全部评分

此号待删除,不再登陆.

使用道具 举报

Super Moderator

此人已辞职,有事找别人.

Rank: 10Rank: 10Rank: 10

帖子
2341
精华
3
声望
9852 点
金币
3913 Mold
被赞许
-37 次
注册时间
2004-7-17

Modchina元老

发表于 2010-6-29 10:15:42 |显示全部楼层
必须加入教程索引 引起足够重视
申请精华,要求置顶!!!
此号待删除,不再登陆.

使用道具 举报

Honorary Member

For U i Will Sacrifice My Soul

Rank: 7Rank: 7Rank: 7

帖子
3760
精华
0
声望
7870 点
金币
1562 Mold
被赞许
35 次
注册时间
2009-4-1

Mod中国同盟社至高荣誉 最佳贡献奖 优秀版主奖 热心会员奖 黑暗使者 Modchina元老 Modchina灌水王

发表于 2010-6-29 10:24:40 |显示全部楼层
- -没搞懂。不过好像很有用啊。。

再看看

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
633
精华
0
声望
3652 点
金币
329 Mold
被赞许
0 次
注册时间
2004-12-3
发表于 2010-6-29 11:25:50 |显示全部楼层
手机上看的,阿发童鞋的教程非常的强大。

使用道具 举报

Rank: 8Rank: 8

帖子
626
精华
2
声望
3131 点
金币
1315 Mold
被赞许
66 次
注册时间
2009-1-18

模界神人奖 可爱小猫

发表于 2010-6-29 11:32:15 |显示全部楼层
我想知道怎么可以用指定枪调用指定动作。最好有详细的说明。

使用道具 举报

Super Moderator

此人已辞职,有事找别人.

Rank: 10Rank: 10Rank: 10

帖子
2341
精华
3
声望
9852 点
金币
3913 Mold
被赞许
-37 次
注册时间
2004-7-17

Modchina元老

发表于 2010-6-29 12:20:55 |显示全部楼层
回复 5# bodeem


    一般都是由mp.dll制订好的,不用插件或加载额外模块是无法修改的。
此号待删除,不再登陆.

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
1261
精华
4
声望
7557 点
金币
981 Mold
被赞许
13 次
注册时间
2009-5-24
发表于 2010-6-29 12:25:06 |显示全部楼层
呵呵、这个方法我早知道了。

使用道具 举报

Super Moderator

此人已辞职,有事找别人.

Rank: 10Rank: 10Rank: 10

帖子
2341
精华
3
声望
9852 点
金币
3913 Mold
被赞许
-37 次
注册时间
2004-7-17

Modchina元老

发表于 2010-6-29 12:38:03 |显示全部楼层
回复 7# lmvfwsp


    那你为什么不早讲出来?

很多人包括我做的sequence name错误的player模型已经到处都是了
此号待删除,不再登陆.

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
918
精华
1
声望
2092 点
金币
161 Mold
被赞许
1 次
注册时间
2009-4-4
发表于 2010-6-29 12:40:41 |显示全部楼层
不过我发现现在最新的NST版本没有这个BUG了

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
1261
精华
4
声望
7557 点
金币
981 Mold
被赞许
13 次
注册时间
2009-5-24
发表于 2010-6-29 12:44:40 |显示全部楼层
回复  lmvfwsp


    那你为什么不早讲出来?

很多人包括我做的sequence name错误的player模型已经到处都 ...
阿发 发表于 2010-6-29 12:38



    这个。。懒的发而已。。因为我觉得感觉说出来好像会遭到别人无视= =。这个会做模型的都应该会吧。我还以为很多人都会呢。。

使用道具 举报

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

回顶部