游客:
注册
|
登录
会员
|
搜索
|
统计
|
帮助
轩辕春秋文化论坛
»
曹操传MOD制作交流
»
基于STAR 5.6 、5.7 的[原创武将] 修改
» 查看评分记录
原帖内容
蛇夫座
2010-3-12 22:41
基于STAR 5.6 、5.7 的[原创武将] 修改
基于STAR 5.6 、5.7 的[原创武将] 修改
支持创建6 名原创武将并且能够由玩家自由设定五围能力、头像、兵种,
另一个方面MOD 作者则可以根据玩家所选择的兵种职业来为原创武将指定不同的R、S 造型、必杀与成长方向等等。
由外部DLL 链接实现,游戏引擎只需少量修改(5.7 与 5.6 版的修改方法完全一样)
*. 注: 1. 通过改造[71H: 特效请求] 指令, 特效值指定为原创武将的DATA 编号(若指定大于1023 的值会导致指令不被执行,
MOD 作者可以自由定制这些值的处理)。
2. 使用了[4050]、[4051]号整型变量来设置8 种玩家可选兵种职业,数值为修改器里看到的值加1,每一字节表示一种
可选职业(如: 轻步兵的兵种编号为3,则这里应设置为4),若不指定可选职业则默认为群雄玩家将无其它选择。
3. [71H: 特效请求] 指令处理函数返回时会在[4050]号整型变量返回玩家选择的职业项目,MOD作者可以测试这个变量
的结果,若为0 表示玩家选择的是第一种职业(如:剧本设置了四种可选职业分别为群雄、轻骑兵、弓弩手和刺客
当71H 指令返回后4050 号整型变量的值为1 表示玩家选择的职业为轻骑兵)。
4. [71H: 特效请求] 指令处理函数返回时会在[4051]号整型变量返回原创武将的性别(0表示男性,1表示女性),MOD
作者可以使用[77H: 变量运算] 指令针对[4051]号整型变量修改战场特殊形象编号。如:77: 整型变量 4051 += 5,
若原创为男性则战场特殊形象编号将被指定为5,若原创为男性则战场特殊形象编号将被指定为6。
5. 通过修改创建[原创武将] 对话框时压入的三个参数可以对自创武将能力范围加以控制,数据长度为有符号单字节:
0051814B 6A 5A push 5A ; 极限能力值(取值范围:0 ~ 100)对应UE 地址: 0xE814C
0051814D 6A 46 push 46 ; 标准能力值(取值范围:0 ~ 90 )对应UE 地址: 0xE814E
0051814F 6A 28 push 28 ; 可分配点数(取值范围:标准+1 ~ 120)对应UE 地址: 0xE8150
6. 剧本中少不免会使用武将名来作一些编排(最明显的就是S 剧本的[19H: 胜利条件]指令,如:“失败条件:XXX死亡
,若XXX 为原创武将时MOD 作者将无法知道玩家实际的输入的名字),所以为剧本中一些指令者都作了格式化处理
只要剧本指令内容中包括*.x (x 的取值范围为1 ~6 对应1 ~6号原创武将)都可以自动转换为真实武将名。
通过测试的指令包括:
[12H: 选择框]
[14H: 对话](如:&*.2\n你好!我的名字是*.2。)
[15H: 战场对话2]
[16H: 信息]
[17H: 场所名]
[18H: 事件名设定]
[19H: 胜利条件]
[1AH: 显示胜利条件]
[2CH: 地图文字显示]
[63H: 单挑对话]
[67H: 章名]
[69H: 旁白]
(若测试中发现还有其它指令无法格式化的话请各位回复本贴子)
7. 由于游戏程序不会主动刷新武将SAV 映射中的武将名和R 剧本武将名这两个字段,所以使用了一个name.e5 的文件
来保存玩家输入的人物姓名,在游戏存档时写入到这个文件,读档时则先从data.e5 中读出存档中所有原创武将的姓
名到SAV 映射,之后再从name.e5 文件中读入武将原创名,这样做目的是防止A 存档中有DATA 号XX 武将为原创武将
,而B 存档没有XX 号原创武将导致的武将名显示错误。
8. 原创武将的真彩头像男女各10张,编号安排到600 (908 - 301 - 7) 处,所以Tou.dll 文件要增加头像了,与之对应
的小头像 Face.e5 文件则应该增加导入到608 ~ 627 处
对于Tou.dll 由于是借用别人MOD 里的我没有BMP 文件而一张一张重新导入十分浪费时间,我的做法是使用ResHacker
将DLL 文件中的所有位图全部导出再修改资源脚本后重新编译,若想使用这种方法可以下载《源代码与旧版修改说明》
真彩头像工程文件(编写语言为Win32asm)或者到岱大新引擎发布贴中下载VC 工程。
9. 使用[71H: 特效请求] 指令之前必须先使用[3BH: 武将加入],另外本系统是基于五围能力单数显示的,大家测试代码
前请先将引擎改为单数显示。
10. STAR 5.7 版扩展了兵种数量到80种,如果用于5.6 版时要对dll 文件的兵种可选范围进行调整
源代码: mov dbMaxOccupCount, 80 ; 默认为5.7 版使用
反汇编形式: C705 XXXXXXXX 50000000 mov dword ptr [XXXXXXXX], 50
UE地址: 0x406 50(十进制:80)STAR5.6 版应改为 35(十进制:53)
(详细语法请参照剧本事例)
[
本帖最后由 蛇夫座 于 2010-10-25 20:20 编辑
]
用户名
时间
功绩
理由
godtype
2010-3-13 08:04
+100
先奖励,慢慢再看。
当前时区 GMT+8, 现在时间是 2025-8-12 20:14
京ICP备2023018092号
轩辕春秋
2003-2023 www.xycq.org.cn
Powered by
Discuz!
5.0.0
2001-2006
Comsenz Inc.
Processed in 0.007379 second(s), 6 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
轩辕春秋
-
Archiver
-
WAP
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计