- 好友
- 39
- 在线时间
- 2007 小时
- 最后登录
- 2023-6-11
波耶[MOD制作小组]
暴风骑士团(SK) 战团ID:SK_Dante
锻造宗师
- UID
- 113898
- 第纳尔
- 1121
- 精华
- 3
- 互助
- 81
- 荣誉
- 83
- 贡献
- 10
- 魅力
- 151
- 注册时间
- 2009-2-7
鲜花( 9) 鸡蛋( 0)
|
本帖最后由 wuyoutianxia 于 2010-4-7 17:00 编辑
说实话,我委实不知道这个帖子该发到哪去,MOD区?综合区?模型区?
不过我感觉模型区比较需要,所以就发到这来了,不多言,请继续看
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
置顶:
声明一下,我承认一些MOD中使用改工具可能没有效果,因为MOD作者把这一块的代码改动的厉害(大部分不会改的),不过有的骑友却不是因为代码的原因才无法屏蔽头的
提示一点,我们换是需要屏蔽头盔或者面具的,这个工具可能会让人产生误解,以为可以脱离屏蔽头盔,其实他只是让屏蔽头盔更完美更不留痕迹的使用而已
屏蔽工具下载(网上有很多,如果大家有好的请留言,我自己感觉这个也不太好):
http://bbs.mountblade.com.cn/viewthread.php?tid=66705&highlight=
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
屏蔽头问题,一向是个比较头疼,谁用过谁知道,其实我知道最起码6种屏蔽的方法,有3种非我原创的,不过这六种没有一种可以面向全MOD推广的,所以只好还是暂时用了R大的办法,因为游戏中所有屏蔽头都是通过PY代码实现的,如果修改了PY代码,无形中就解决这个问题了
以后大家可以放心的戴覆盖式头盔和头套了,不过推荐覆盖式头盔,因为头套会随面部变形R大的原帖:
http://bbs.mountblade.com.cn/viewthread.php?tid=70847&page=1&fromuid=86301#pid702309
先发几个效果图:
1.带兵器头盔的人物栏
2.恶搞一个,看以下人物戴上帽子是不是更像贼 了
3.玩家的特权,进入城堡骑马 带剑
R大已经写得很完整了,不过有些没有涉及到,我再来补充一下:
基于PY解决方法:
打开head_mission,会发现以下一些常量-
- af_override_weapons = 0x0000000f
- af_override_weapon_0 = 0x00000001
- af_override_weapon_1 = 0x00000002
- af_override_weapon_2 = 0x00000004
- af_override_weapon_3 = 0x00000008
- af_override_head = 0x00000010
- af_override_body = 0x00000020
- #af_override_leg = 0x00000040
- af_override_foot = 0x00000040
- af_override_gloves = 0x00000080
- af_override_horse = 0x00000100
- af_override_fullhelm = 0x00000200
- #af_override_hands = 0x00000100
- af_require_civilian = 0x10000000
- #af_override_all_but_horse = 0x000000ff
- af_override_all_but_horse = af_override_weapons | af_override_head | af_override_body |af_override_gloves
- af_override_all = af_override_horse | af_override_all_but_horse
- af_override_everything = af_override_all | af_override_foot
复制代码 这就是所谓屏蔽的关键,再来看mod_mission中关于城堡中托头盔的问题:
(
"visit_town_castle",0,-1,
"You enter the halls of the lord.",
[(0,mtef_scene_source|mtef_team_0,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
………………
)
以上红字部分就是修改的关键了,在城堡中屏蔽了马、武器和头盔,说到这里大家知道该怎么做了吧,关键说下TXT修改:
打开mission.txt 查找“visit_town_castle”
mst_visit_town_castle visit_town_castle 0 -1
You_enter_the_halls_of_the_lord.
32 0 4100 287 0 1 0
红字部分就是要修改的地方,287是怎么来的呢:请看一下公式:
af_override_horse|af_override_weapons|af_override_head=0x00000100+0x0000000f+0x00000010=256+15+16
如果我们想去掉屏蔽头 则 287-16 去掉屏蔽马 287-256
不过 我在这里设为了0 ,也就是在城堡中可以骑马也可以拿兵器
道理就是如此,基于TXT修改并参照上边给出的常量表可以实现任何PY的屏蔽效果
mission.py中包含了很多关于屏蔽的信息,比如竞技场屏蔽、攻城屏蔽马、野战屏蔽、遭遇屏蔽等等,大家再文件中查找“af_override”,找到后看前边的英文注释就知道什么意思了
以上是一个简单的例子,至于对话中不屏蔽覆盖式头盔(大翼盔和屏蔽装备),R大的帖子中已经很详细了,我就不再赘述
PY中包含af_override常量的一共有4个文件:mission 、Script、menu、tableau,后两个和我们讨论的无关,现在主要说下Script
人物栏中取消屏蔽-
- ("add_troop_to_cur_tableau",
- [
- (store_script_param, ":troop_no",1),
- (set_fixed_point_multiplier, 100),
- (assign, ":banner_mesh", -1),
- (troop_get_slot, ":banner_spr", ":troop_no", slot_troop_banner_scene_prop),
- (store_add, ":banner_scene_props_end", banner_scene_props_end_minus_one, 1),
- (try_begin),
- (is_between, ":banner_spr", banner_scene_props_begin, ":banner_scene_props_end"),
- (val_sub, ":banner_spr", banner_scene_props_begin),
- (store_add, ":banner_mesh", ":banner_spr", banner_meshes_begin),
- (try_end),
- (cur_tableau_clear_override_items),
-
- # (cur_tableau_set_override_flags, af_override_fullhelm),
- (cur_tableau_set_override_flags, af_override_head|af_override_weapons),
复制代码 大家知道,人物栏中只包含两种元素,旗帜和半身像,头盔和兵器都是没有的,原因就在这里,红字以上的部分是定义了要显示的旗帜,以下部分是定义显示的position,只要细细调整position,不难实现全身像和骑马像,因为马是没有屏蔽的
TXT修改:查找add_troop_to_cur_tableau -1 把这段话对应的代码复制到一个新的记事本中(因为比较长),然后在新的记事本中查找“ 31 ” 替换为 “ 0 ” 然后将记事本内容覆盖Script中即可
31的由来同以上算法,改为0则不屏蔽任何东西,想屏蔽什么自己改即可
原版Script中后两处:
PY: add_troop_to_cur_tableau_for_character (cur_tableau_set_override_flags, af_override_fullhelm),
TXT: FIND add_troop_to_cur_tableau_for_character -1 REPLACE " 512 "TO " 0 "
PY: add_troop_to_cur_tableau_for_party (cur_tableau_set_override_flags, af_override_fullhelm|af_override_head|af_override_weapons),
TXT: FIND add_troop_to_cur_tableau_for_party -1 REPLACE " 432 "TO " 0 "
提示:替换和查找的时候请前后加上空格 比如“ 512 ”;
最后:PY解决屏蔽头的超级简单方法:
打开head_mission,
修改:af_override_head = 0x00000000
完毕!
其实一些MOD比如水浒、汉匈、三国之类的,完全可以采用这种方法来修改,因为不存在大翼盔之类的东西,至于角斗场不能屏蔽头可以给一个头盔或者顶一个变量等于0x00000010在引用即可,这样也方便玩家导装备
扩展: 如果想彻底的反屏蔽某种东西,就设成这样,其实head中的常量和方法,扩展性太高了,比如说动作的合并,属性值突破30,等等等等,都可以扩展,据我所知的属性值在存档中开辟的是一个32位空间,属性点只要不超过47亿是不会内存溢出的,PY中虽然不见得这么变态,不过想改成几百是不难的
修改器介绍:
测试NETIVE 水浒 三国 乱世 没问题,其他不清楚,比较仓促,也许有未知隐患,不过修改器自动备份了源文件,不用担心
将修改器放在对应MOD下
一键去除屏蔽头.rar
(8.43 KB, 下载次数: 9593)
|
评分
-
参与人数 1 | 荣誉 +2 |
第纳尔 +50 |
互助 +4 |
收起
理由
|
索伦
| + 2 |
+ 50 |
+ 4 |
您的帖子很有价值! |
查看全部评分
鲜花鸡蛋huainan 在2018-10-29 14:55 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下 huainan 在2018-10-29 13:37 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下
|