没有bug的话就暂时告一段落了,过阵子不管会不会很忙其他的事,也要暂时停止修改和开发录像机休息一段时间了
下载下面的这一个就好了!!!
0.8.4.6.3.rar (191 KB)
给小原子的一个最新的更新,
ddraw_704.rar (192 KB)
源码,
https://sourceforge.net/p/taddraw/code-0/
0.8.4.6的更新内容,
- 录像机的配置窗口现在默认焦点是在F11的字符串框里面了。
- 在totala.ini中增加了默认MenuResolution= FALSE; 的配置,可以设置为TRUE让主菜单的分辨率和游戏分辨率一样。
- 会读取totala.ini中的人口数量UnitLimit来自动修改TA程序的人口限制
- 在看录像时双击玩家资源栏来选择玩家视角时,也会切换到玩家的控制权,这样就可以用ctrl+R来看雷达的范围,当然也可以做其他一些很酷的事情。
- 录像机的配置窗口中的whiteborad等按键现在用键盘上的字符来表示了,而不是以前看不懂的一个数字。
- 按着Y,W,B拖不同类型单位的功能,还有ctrl+B,ctrl+shift造100个兵,还有双击选相同的单位类型,ctrl+f选空闲的工厂,现在可以在窗口模式使用了。其他的,盟友资源栏、屏幕上画画、录像机的配置窗口、CommanderWarp开局时设置指挥官的位置等,依然无法在窗口模型下工作。
7.+now Film Chris Include Reload Assert 现在跟CHEATING作弊是共同开启,共同关闭了。如果关闭了CHEATING,在联机中是无法用+now Film Chris Include Reload Assert运行DEBUG命令行的。
8.ctrl+F选择空闲的工厂,这个也可以在窗口下工作
9.修复了一个TA收到空的单位ID的封包时的非法
10.当因为单位模型非法时,现在不会再非法了,但会在屏幕上留下奇怪的形状。并且为了更多的信息Dll会提示玩家把errorlog.txt发给我。(errorlog.txt的最后保存了单位的名字和模型的名字)
11.配置文件ini中的[REG]部分的DWORD:处的数字,现在正常的数字是按照10进制的了, 也可以带上0x来表示16进制的数字。
12.在ini中增加了MenuWidth和MenuHeight的选项
New DDraw的功能,
1.新的标记图案,给打的标记圆点加上了个白圈,这样无论玩家颜色是什么,在任何地图上都很容易看到标记了。
2.观战者自动获得看录像时有的那些特权,比方看到每个人的资源等
3.观看录像或者是观战者时,双击别人的资源栏,会切换到这个人的视野上,选中的时候再双击,会开始跟踪这个人的视野。想停止跟踪,需要在正在跟踪的人的资源栏上双击下。
如果是在观看录像,在双击变成了玩家的视野后,还会获得玩家的控制权,这样就可以用Ctrl+R选择雷达看雷达的范围了,当然也可以做其他一些很酷的事。
4.printfscreen现在跟ctrl+F9有一样的功能。
5. 双击选中本屏幕中的相同类型的单位
6. ctrl+s被替换成只选中本屏幕中的带武器单位
7.按着w来框选单位,只会框选到带武器的单位
8.按着b来框选单位,只会框选到工程单位
9.按着y 来框选单位,只会框选到工厂
10.非常稳定的在单机和联机中都支持了超过512种单位ID。
11.支持了联网时用上比0x100更多的武器ID,但是破解的武器ID的游戏不能录像。
在破解了联网时的武器ID后,TA的封包就改变了,这种时候录的像用原版的录像机是不能看的,要使用修改后的录像机
观看破解了武器ID封包的录像用的录像机 http://bbs.taclub.net/thread-15172-1-1.html
12.支持在TA里使用中文输入法。如果不开启中文输入法,也就是默认关闭的时候,会在TA里禁止输入法被切换出来。
输入汉字的功能已经比较完善了,比方鼠标点了打出来的字来选词,还可以把选字的框拖开遮住的位置,等等细节。
13.把ddraw的 ctrl+F2 选项窗口在打开TA选项窗口时候同时弹出来
14.在录像机绘制同盟的资源栏上,以及配置窗口中,把录像机绘制使用的鼠标修改成从TA中读取了。如果你想让ddarw.dll可以在这几个地方显示鼠标时载入你自己mod特制的鼠标样式,你只需要把鼠标保存为不压缩的gaf格式,录像机就可以读取了(暂时的)。
15. 录像机的配置窗口中的whiteborad等按键现在用键盘上的字符来表示了,而不是以前看不懂的一个数字。
16.会读取totala.ini中的人口数量UnitLimit来自动修改TA程序的人口限制
17.在totala.ini中增加了默认MenuResolution= FALSE; 的配置,可以设置为TRUE让主菜单的分辨率和游戏分辨率一样。
18.+now Film Chris Include Reload Assert 现在跟CHEATING作弊是共同开启,共同关闭了。如果关闭了CHEATING,在联机中是无法用+now Film Chris Include Reload Assert运行DEBUG命令行的。
19.在ini中增加了MenuWidth和MenuHeight的选项,你可以修改它们以强制TA的主菜单使用一个分辨率,这个强制会无视掉"MenuResolution= TRUE"或者"MenuResolution= FALSE"的设置。
比如
MenuWidth= 1024;
MenuHeight= 768;
或者
MenuWidth= 1280;
MenuHeight= 720;
这个选项是为了让mod可以使用不同于640*480的主菜单分辨率,固定后也就可以设计新的分辨率的菜单了。
20… 单位寻路限制被破解了!!!现在可以直接使用New DDraw,把最新的CPU性能也完全榨干,让你的i7可以真正的支持10个AI大战每方5000个单位同时移动,在破解了寻路限制后这样多的单位同时移动也不会卡住(修改为了0x100000)。
原帖地址,
http://www.tauniverse.com/forum/showthread.php?p=689085#post689085
我依照Ti的成果,再分析了一点点,这个值是在Load Game时候设置的
0040EAD3 C746 48 35050000 MOV DWORD PTR DS:[ESI+48],535
寻路的限制值 535 在文件中的偏移位置是0x57046
如何配置和使用New DDraw的新功能,
这个ddarw会读取HPI压缩包中的"config\ddraw.ini"位置的文件来作为配置文件,这个文件ddarw.ini的实际内容和以前的totala.ini格式是一样的。
当hpi压缩包中不存在"config\ddraw.ini"时,ddraw.dll会继续从TA目录中的totala.ini中读取配置信息的。也就是说,如果HPI压缩包中不存在"config\ddraw.ini" 的话,ddraw.dll的功能完全是和以前的版本一样的。
这个"config\ddraw.ini"的路径和名称是完全固定的,必须把它压缩在HPI中的这个位置。
原totala.ini中的TA的单位总数、windowsound等依然是从TA目录下的totala.ini中读取的。
另外要提到由于TA读取HPI中文件的顺序,当"config\ddraw.ini"在gp3后缀的HPI里存在一份时,TA就不会去载入其他的ccx和ufo中的同目录同名文件了。
在TA的HPI压缩包里面,gp3中的同目录同名字的文件会把其他ccx和ufo中的都填充覆盖掉,所以你可以直接压缩你的"config\ddraw.ini"到你的mod的gp3文件中,这样就不用担心会有玩家因为在ccx和ufo中打包了"config\ddraw.ini"而产生的配置冲突。
你的TA主程序载入的那个gp3,你改成什么样的后缀都可以的,比方TA ZERO的主程序tazero.exe修改了原"rev31.gp3"为"TAZ31.gp3",则"config\ddraw.ini"需要放入到TAZ31.gp3中。要注意的只是,gp3的优先级高于ccx和ufo,所以一定用gp3来保存ddraw.ini。
现在你可以直接在totala.ini中设置单位的数量了,在修改了UnitLimit= 5000;后ddraw会自动读取这个值并把TA程序修改为对应的。
想要修改寻路的限制,在ini中设置AISearchMapEntries=0x20000; 的值来实现
武器类型的最大数量,还有单位类型的最大数量,通过修改WeaponType和UnitType来实现
特别的,如果你想在联网游戏中使用超过256个武器ID,你必须要设置MultiGameWeapon=
TRUE;这会让DDraw修改TA的封包格式,于是每一个联机的玩家都必须设置了MultiGameWeapon= TRUE;后才能互相联机。
在原版TA中如果一个单位的大小超过600*600的大小会让游戏出错,现在你可以直接修改ini中的X_CompositeBuf(横)和Y_CompositeBuf( 纵)来设置这个单位最大的大小了。
原版TA会限制Sfx,也就是TA中的特效的数量,你可以在DDraw中修改SfxLimit=0x5000;的值来改变Sfx限制的数量,原版TA的Sfx限制是400个,通常的,你可以修改它为1000~2000而完全不会影响性能。
如果你像我一样不喜欢切换TA到菜单时屏幕一晃一晃的,你可以修改MenuResolution=TRUE;让TA的主菜单拥有和游戏里相同的分辨率。
想要使用中文输入法的功能,可以在ini中增加下面的项来让它工作,不然默认是禁止在TA中切换出输入法的。 UnicodeSupport=“宋体”;里面的是使用的字体名称,通常在QQ聊天处的字体设置等地方可以看到系统里带的字体名称们。UnicodeSupport_Color=0xffffff;设置的是字体的颜色,默认是白色,UnicodeSupport_Background=0x000000;设置的字体背景的颜色,默认是黑色,如果设置成比0x10000000大的,就变成没底色的了。。
UnicodeSupport=“宋体”;
UnicodeSupport_Color= 0xffffff;//default 默认0xffffff
UnicodeSupport_Background= 0x000000;// default 默认0x000000;
在ini的[REG]块的后面,设置的是下面位置的注册表中的值,也即TA的注册表的值
HKEY_CURRENT_USER\Software\Cavedog Entertainment\Total Annihilation
在这个路径中支持两种不同的注册表值的格式,REG_DWORD和REG_SZ,他们的写法分别为
REG_DWROD
“MixingBuffers”=dword:0x00000080;
值的名称用引号""来括起来,在名称的后面是一个等于号,REG_DWORD的值要用dword:来开头,在"dword:"的后面则是数字,这儿可以是0x这样格式的16进制数字(如 “MixingBuffers”=dword:0x00000080; ),也可以是不带0x的普通的10进制的数字(如 “NumSkirmishPlayers”=dword:10;)
REG_SZ
“SkirmishMap”=“CardMan’s Land”
值的名称也一样用"“来括起来,在名称的后面是一个等于号,REG_SZ的值是一个字符串,所以也一样要用引号”"括起来。
在每一行的最后,可以加上一个分号";",这样这一行在分号后面的内容就会被完全忽略。
主要有用的有这几个
“MixingBuffers”=dword:0x00000080; //TA可以混的音的数量限制
“SwitchAlt”=dword:0x00000001; //让TA默认就是输入了 +switchalt的状态
“clock”= dword:0x00000001; //让TA默认在下方显示一个游戏时间
“NumSkirmishPlayers”=dword:10;//遭遇战中的玩家数量
[Preferences]
UnitLimit = 5000; // 单位的最大数量
AISearchMapEntries= 0x20000; //寻路的限制
WeaponType=0x800; //武器的种类最大数量
MultiGameWeapon=FALSE;//默认 FALSE 是否修改TA的封包以在联网时支持更多的单位ID
UnitType= 0x1000; //单位的种类最大数量
X_CompositeBuf= 0x1000; //最大模型的宽
Y_CompositeBuf= 0x1000; //最大模型的高
SfxLimit= 0x5000;//sfx的最大数量
MenuResolution= FALSE;
//UnicodeSupport="宋体";
//UnicodeSupport_Color= 0xffffff;//default 默认0xffffff
//UnicodeSupport_Background= 0x000000;// default 默认0x000000;
[REG]
"SwitchAlt"=dword:0x00000001 ;