游客:
注册
|
登录
会员
|
搜索
|
统计
|
帮助
轩辕春秋文化论坛
»
曹操传MOD制作交流
»
基于STAR 5.7 、5.6 的[原创武将] 修改(更新贴)
» 查看评分记录
原帖内容
永不言弃
2010-12-31 02:23
基于STAR 5.7 、5.6 的[原创武将] 修改(更新贴)
基于STAR 5.7 、5.6 的[原创武将] 修改
支持创建6 名原创武将并且能够由玩家自由设定五围能力、头像、兵种,
另一个方面MOD 作者则可以根据玩家所选择的兵种职业来为原创武将指定不同的R、S 造型、必杀与成长方向等等。
增加原创武将名检测方案避免与其它武将名重复,感谢godtype毅大提供!
由外部DLL 链接实现(语言为VC++),游戏引擎只需少量修改(5.6 与 5.7 版的修改方法完全一样)
*. 注: 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. 可以通过修改[创建原创武将对话框]导出函数的几个参数对系统加以控制:
(VC++函数原形)
_DKEXPORTS_API BOOL _DkOriPerCreateDlg(
<DWORD: 版本信息>, // 0:表示5.6版,1:表示5.7版
<DWORD: 武将名检测范围>, // 0:表示禁用
<DWORD: 请求武将DATA编号>,
<DWORD: 分配点数总和>,
<DWORD: 武将默认的标准能力值>,
<DWORD: 武将极限能力值>);
(对应反汇编形式默认设置)
005181EA 6A 5A push 5A
005181EC 6A 46 push 46
005181EE 6A 28 push 28
005181F0 FF75 FC push dword ptr [ebp-4]
005181F3 68 00040000 push 400
005181F8 6A 01 push 1
005181FA FFD0 call eax
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: 武将加入],另外本系统是基于五围能力单数显示的,大家测试代码
前请先将引擎改为单数显示。
(详细语法请参照剧本事例)
;--------------------------------------------------------------------------------------------------------------------
[
本帖最后由 永不言弃 于 2011-9-6 23:13 编辑
]
用户名
时间
功绩
理由
赵辉
2011-1-1 09:06
+50
好帖獎勵
当前时区 GMT+8, 现在时间是 2025-8-12 12:51
京ICP备2023018092号
轩辕春秋
2003-2023 www.xycq.org.cn
Powered by
Discuz!
5.0.0
2001-2006
Comsenz Inc.
Processed in 0.008141 second(s), 6 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
轩辕春秋
-
Archiver
-
WAP
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计