笨030504 笨030504
关注数: 24 粉丝数: 94 发帖数: 3,006 关注贴吧数: 40
锤子的FW插件(一) 这是【】系列的第一期。 这个系列是我更新各种各样奇奇怪怪功能的地方。以后这里会出场更多稀奇古怪的FW功能。 鉴于系列的性质,无论内容多么鸡肋,大家都不要奇怪。 如果实现的功能和哪些插件相似或撞车,请大家指出(但是撞车≠我不做) 除特别说明外,每一期更新的插件都支持往期已经实现的功能。 目前保证兼容Ares3.0,对Phobos、Kratos、DP等兼容性有待检测。 如果大家有什么感兴趣的功能,都可以在下面回复,我会考虑考虑,如果合适就会采纳。 如果插件有任何bug,都烦请各位及时告诉我,我会尽快加以修正。 第一期:额外的CSF支持 第一期就先浅浅整一点小活。 具体来说,这个功能允许各位在任何需要调用CSF的位置使用额外的CSF。 安装方式: 把插件安装在游戏根目录。 压缩包里面包含了一个Ares3.0,除了Syringe是修改过的,里面Ares.dll、Ares.dll.inj、Ares.mix、Game.fnt是未经改动的。 使用方式: 类似Ares的NOSTR机制,使用“EXTS:”前缀来调用额外的CSF。 目标CSF应放置于游戏根目录或打包到MIX中。 调用时,按照“EXTS:文件名:CSF条目”的格式。 文件名不区分大小写,不包括.csf的拓展名。 CSF条目为原本会填的内容,区分大小写。 示例: 如果UIName要调用test.csf里的Name:WHAT条目, 可以这样写:UIName=EXTS:TEST:Name:WHAT, 之后就能成功调用了。 下载链接: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F19eKSnvXt_9tF89QHGztMLA%3Fpwd%3Dhz38+&urlrefer=6eeac16d63486a08af1ed4e8f9753a76 提取码: hz38 以后所有期的下载链接都一样。 本期的文件为: 插件:HammerPatch_240620A.zip
锤子的FW插件(一) 这是【】系列的第一期。 这个系列是我更新各种各样奇奇怪怪功能的地方。以后这里会出场更多稀奇古怪的FW功能。 鉴于系列的性质,无论内容多么鸡肋,大家都不要奇怪。 如果实现的功能和哪些插件相似或撞车,请大家指出(但是撞车≠我不做) 除特别说明外,每一期更新的插件都支持往期已经实现的功能。 目前保证兼容Ares3.0,对Phobos、Kratos、DP等兼容性有待检测。 如果大家有什么感兴趣的功能,都可以在下面回复,我会考虑考虑,如果合适就会采纳。 如果插件有任何bug,都烦请各位及时告诉我,我会尽快加以修正。 第一期:额外的CSF支持 第一期就先浅浅整一点小活。 具体来说,这个功能允许各位在任何需要调用CSF的位置使用额外的CSF。 安装方式: 把插件安装在游戏根目录。 压缩包里面包含了一个Ares3.0,除了Syringe是修改过的,里面Ares.dll、Ares.dll.inj、Ares.mix、Game.fnt是未经改动的。 使用方式: 类似Ares的NOSTR机制,使用“EXTS:”前缀来调用额外的CSF。 目标CSF应放置于游戏根目录或打包到MIX中。 调用时,按照“EXTS:文件名:CSF条目”的格式。 文件名不区分大小写,不包括.csf的拓展名。 CSF条目为原本会填的内容,区分大小写。 示例: 如果UIName要调用test.csf里的Name:WHAT条目, 可以这样写:UIName=EXTS:TEST:Name:WHAT, 之后就能成功调用了。 下载链接: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F19eKSnvXt_9tF89QHGztMLA%3Fpwd%3Dhz38+&urlrefer=6eeac16d63486a08af1ed4e8f9753a76 提取码: hz38 以后所有期的下载链接都一样。 本期的文件为: 插件:HammerPatch_240620A.zip
锤子的FW插件(一) 这是【锤子的FW插件】系列的第一期。 这个系列是我更新各种各样奇奇怪怪功能的地方。以后这里会出场更多稀奇古怪的FW功能。 鉴于系列的性质,无论内容多么鸡肋,大家都不要奇怪。 如果实现的功能和哪些插件相似或撞车,请大家指出(但是撞车≠我不做) 除特别说明外,每一期更新的插件都支持往期已经实现的功能。 目前保证兼容Ares3.0,对Phobos、Kratos、DP等兼容性有待检测。 如果大家有什么感兴趣的功能,都可以在下面回复,我会考虑考虑,如果合适就会采纳。 如果插件有任何bug,都烦请各位及时告诉我,我会尽快加以修正。 第一期:额外的CSF支持 第一期就先浅浅整一点小活。 具体来说,这个功能允许各位在任何需要调用CSF的位置使用额外的CSF。 安装方式: 把插件安装在游戏根目录。 压缩包里面包含了一个Ares3.0,除了Syringe是修改过的,里面Ares.dll、Ares.dll.inj、Ares.mix、Game.fnt是未经改动的。 使用方式: 类似Ares的NOSTR机制,使用“EXTS:”前缀来调用额外的CSF。 目标CSF应放置于游戏根目录或打包到MIX中。 调用时,按照“EXTS:文件名:CSF条目”的格式。 文件名不区分大小写,不包括.csf的拓展名。 CSF条目为原本会填的内容,区分大小写。 示例: 如果UIName要调用test.csf里的Name:WHAT条目, 可以这样写:UIName=EXTS:TEST:Name:WHAT, 之后就能成功调用了。 下载链接: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F19eKSnvXt_9tF89QHGztMLA%3Fpwd%3Dhz38+&urlrefer=6eeac16d63486a08af1ed4e8f9753a76 提取码: hz38 以后所有期的下载链接都一样。 本期的文件为: 插件:HammerPatch_240620A.zip
【奇技淫巧】INI管理器 用来管理尤里的复仇的ini。 这东西是用于modder的方便。 安装: 1、仅支持Ares系的mod或原版平台mod。 2、如果从零开始做mod: 一切正常,自带Ares3.0,请修改GameINI目录下面的ini(只能放3个ini—— GameRule.ini即为rulesmd,GameArt.ini即为ar***,GameAI.ini即为aimd 其他ini放回原位,支持[#include]功能,[#include]调用的ini和这三个ini放在一起即可) 然后正常修改即可,其他东西扔在游戏目录。 3、如果是已有mod: Ares3.0已经配备,无需额外安装。 自行按照对应更名(GameRule.ini即为rulesmd,GameArt.ini即为ar***,GameAI.ini即为aimd) 管理器按照GameRule.ini、GameArt.ini、GameAI.ini三个名字读取。 [#include]调用的ini和这三个ini放在一起即可。 其他东西扔在游戏目录。 4、uimd.ini等ini都要放在游戏目录。 5、如果想要更改Ares版本,自行替换包里面的Ares文件即可,没有影响。 6、Launcher.ini请勿删除,里面的内容,“尤里的复仇 V1.001”一处可以更换为自己的mod名字, "Westwood Studios"一处更换为mod制作组或作者的名字。(仅在启动器上面显示) 启动: 1、双击 "启动 INI管理器.bat" 即可运行。 每次双击后,请耐心等待10-15秒左右才会弹出启动器窗口。(如图)2、启动后一切正常。 功能: 1、所有的功能宗旨都在于方便写ini,减少无谓的重复劳动。 2、实现形式都是INI重组。 3、鉴于本人懒惰,目前只做了一个功能: ParentClass=单位ID 使用同原有INI语句。 可以继承此单位ID对应的全部INI代码。(原样照搬) 注:如果原来没有Image=语句,但想要继承图像时,自行添加Image语句。 如果想要覆盖,直接添加语句就有更高的优先级。 例: [AAAA] UIName=Name:AAAA Primary=120mm Cost=100 Strength=1000 [BBBB] ParentClass=AAAA Secondary=FlakGuyAAGun Cost=200 等效于 [AAAA] UIName=Name:AAAA Primary=120mm Cost=100 Strength=1000 [BBBB] UIName=Name:AAAA Primary=120mm Strength=1000 Secondary=FlakGuyAAGun Cost=200 备注: 1、如果有问题,请说明问题形式并提供INIDebug.log的内容(在游戏目录当中生成) 2、希望大家给予建议决定后续添加怎样的功能。 3、制作粗陋,敬请原谅~ 作者:笨030504 2021年6月30日 版本:V0.1
【杂谈向】红 色 警 戒 沸 腾 知 识 这个帖子会以杂谈的形式从红色警戒当中列出一些事实上很无聊的沸腾知识(冷知识的反面) 然后3楼开扯,望吧务不要删帖。 定下几个帖子接下来可以用于回复的具有特定含义的东西: 1、【好活当赏】如果某一条杂谈后面有十个不同人打下此标签,那么会把这一条收录到二楼楼中楼作为精选条目。大家尽量不要打太多,毕竟太水的话大家都不会愿意的 2、【另开一贴】如果某一条杂谈后面有十个不同人打下此标签,那么会把这一条单独开一帖发到警吧。不要打太多,也没必要,除非必要。 3、【下期话题】每个人都可以在自己的回复加入此条,作为对我接下来更新的内容的建议。用不用随缘。 4、【加大力度】如果某一期戳到了你的兴趣,可以在回复中加上此标签。我会酌情考虑出续集。 我会加入我的杂谈条目的标签: 1、【滑稽】或【】说明这一条不是认真的。 2、【中立】说明喷某些人、开地图炮都是玩笑,请勿当真。 3、【更正】说明是对既有说法(自己或别人)的言论的更正。 4、【资源】说明本楼包含资源或实用工具。 5、【存疑】或【】说明谈论的严肃内容,但是没有完全确定。 6、【火星】说明这是一个可能火星的条目或是具有强时效性且可能已过时。 7、【吐槽】或【】说明该条目属于个人吐槽。 待补充。马上开更,各位轻催。 注:每一期或多或少,不要当做水帖,谢谢!
【+3短文】随便写几个短的 二楼开写~ 权当自我练手~ 第一个,基于红色革 命,有些自我发挥 后面来的士兵一个接一个冲进了他们熟悉的地方。一片狼藉当中一支小队急匆匆前进着。穿过了一座喷涂着巨大红漆喷着的“尤里万岁”的楼房,未干的红色与身后刚刚淌过斑马线的鲜血交映着。前面响起一阵激烈的交火声。枪声在死寂的城区里格外突出。他们加快了脚步。越过未僵硬的尸体,他们冲入了临时搭建的战壕当中。这时,对面的声音戛然而止。他们从当中抽身,离开的这片奇怪的地方,头也不回的向前支援战斗。原有在战壕里面的士兵也向另一个方向前进。 前面甩过一束长长的火舌。从他们头顶的楼中来的。几个人闪入最近的居民楼当中躲避。还有一名士兵从一个破浴缸后面一骨碌站起来,也随之转入楼门。楼道里面空无一人。凭声音来看,上方也突然停止了喷吐火舌。一行人也突然发现在脑中回响的扰乱思维的嗡嗡声也骤然终止。接着上楼,他们抵达了刚才喷火者所在的楼层。那个人所在的房间门被撞开,几名士兵灵活的闪避向左右,对着房间散乱的洒出一串子弹。无一命中。他们的目标不在这个高度——离他们脚反而不远。一个面目狰狞的尸体。头部几乎变成了一块炭,勉强能分辨出焦黑的头骨和炽热的脑组织。红的血液,白的脑浆,黑色的炭混合着,像一幅不知名的抽象画。其中还有一个微微红热的金属团,虬结在这幅血画中,本来像一个头盔的样子,但是紧紧箍在黑炭上面,不成模样,着实骇人。凑过来看的一名士兵勉强忍住反胃——他从来没有见过这么骇人的死状。奇怪的是,脖子以下未见大碍,在魔鬼的大作之下还在汩汩泛出血色。刚死不久吧。 他们确认没有威胁以后,一边竖起耳朵一边悄无声息地奔下楼去。
【个人意见】对于红警2平台改进的方向简述 以后,如果有插楼,可以“只看楼主”来阅读内容。 进入正题: 1、平台总体:原来的平台修修补补总不是好办法。我看过Ares的源码:gith和谐ub.c和谐om/Ares-Developers/Ares,里面大量的“钩子”,艰难的修修补补,在原有的百转千回的代码上周旋是一件极为恶心的事情。真的,我都看不下去的,很佩服AlexB大神的毅力。然后,再在上面开发了Hares,又是一件费头(脑)发(子)的事情。所以,应该整体重做,制作全新的源码,保持原有的文件格式不变。(减少再改格式的工作&便于搬运) 兼容性上,应该兼容64位系统,这个问题解决了之后应该就100%解决了win10的问题(个人感觉win7的兼容性是最顺溜的)同时不放弃对XP的支持(直到XP消失殆尽为止)。系统上,windows,linux,macos哪个用户都不少,如果能做就做,让红警玩起来简便不费脑子。 2、UI:可以保持不变。为了强大的可塑性,应该把所有控件的位置全部在外部定义。可以创建一个ini:uiext.ini。ext型的ini与原ui.ini一起读取。应该大概把游戏分成几个大的模块: 一:视频播放(拿网上现成的库)这里由于视频毕竟较少,可以停止对vqa和bik的支持,或者扒XCC的代码(听说有源码)得到读取方法的库。而且RADVideo的bik引擎也是不错的,可以抽离他的软件自己加壳调用。但如果解决不了,那就mp4吧。 二:UI包装用Ares的方法就可以,在外部控制按钮的摆放顺序,格局不变。主要负责传递参数就行。 三:游戏区域,这里是重中之重,最后讨论。 四:侧边栏,应该在上文的uiext.ini中定义各个控件的位置(就是自定义UI格局) 3、文件:除了刚才所说的视频,资源还有图像、语音、ini、文字、地图、mix等(如有遗漏,另行补充)。 一:文字为了强大的适应力,应该选用Unicode字库,尽管大,但是靠谱,字符齐全。并且支持外定字形,不再输出原有字形,而是遇到指定的文字输出指定的字形(用覆盖的逻辑就行)。而且鉴于字库在各个电脑上形形色色,各不相同,所以可以最通用的字形——黑体,在额外支持Times New Roman,Arial,宋体,楷体之类字体,保存为.ttf之类的格式放进游戏。如何控制输出文字呢?原有的csf格式足矣。根据modenc上的资料,CSF支持Unicode,多语言控制,还有现成的格式,很容易就能写出一套读写库。尽管索引(就像Name:HTNK)只支持ASCII字符,但应该可以了,毕竟仅仅是标记。 二:图像分为2D的和3D的。原版2D的素材以shp、pcx格式为主。应该保持支持。shp格式简单,和bmp差不多。pcx的索引颜色模式也十分简单易行,如果使用全彩格式,我想最好是png。因为它是无损压缩格式,不会像jpg一样可能糊掉,也不会像bmp一样占据过多空间。这里我们可以自创一种格式,作为几张png格式的集合。在前面标记了帧数和各帧的位置偏移量,再把各帧顺序存储。(如同mix格式的思路)这样就支持了32位真彩色RGB。为什么不用gif格式?同jpg,太糊了。限制表现空间。 对于重映射颜色(remap)则很好控制。shp直接用原版的约定俗成——16-31位色。而RGB图像应该规定一个Remap区:255,0,0-40,0,0即可。另外,为了保证原有的红色能顺利渲染,分开,并注以Remapable=no,或者用极为相似的颜色(比如255,1,1这种)。而透明色,我们可以规定为0,0,0;如果还想用黑色,1,1,1就可以了 3D的素材则在原版中以VXL格式控制。VXL和HVA的机制modenc好像也有。通过学♂习可以清晰地了解它的机制,方便利用。鉴于素材界的真实现状,想必支持3Dmax的素材更方便一些。然后在游戏里直接8面截图贴上去即可。 三:语音保持原有的wav格式即可,并且升级至不限通道采样率的对wav支持(现在的库完全可以做到这一点)。还有mp3、m4a之类的常见格式也尽量上网搞个库加入支持。我没有找到有关audio.bag和audio.idx的资料,或许modenc什么的有(这种东西看外站更容易找到)。XCC能读,如果有XCC源码,就能解决问题(XCC是个好东西) 四:ini读取,我看iniparser之类的公共轮子就可以够用了。格式之类的也没有什么额外的支持,分号表示注释是ini本来就有的标准,跟WW没有关系。 五:地图有人在警吧和B站(地址:tie和谐ba.bai和谐du.co和谐m/p/6134和谐149401和ww和谐w.bili和谐bili.co和谐m/read/cv407和谐7879以示鸣谢)解析了原理,感谢~~~由此我们可以轻易解析地图。 六:mix文件,资源的大头。另外,mmx格式地图也是mix格式,而且mix格式很简单,无压缩,控制简便。 根据modenc上所得算法可以自己做mix。(对了,mix加密的原理极为简单,mix加密只能防小白乱拆罢了,想正常使用加密mix只需要屏蔽特定的一些字节即可正常读取。不是我不公开,只是我公开容易被打死,所以请右转自学:w和谐ww.mo和谐denc.ren和谐egade和谐projects.c和谐om/U和谐nprotect和谐ing_a_protected_MIX) 这样,基本上红警文件的读取问题就解决了。但是最重要的是去组合成为一个有机整体,要不然那不是CNC全息截图器了? 现在是最繁杂的内容:游戏主画面的处理。 1、侧边栏的渲染应该与游戏区域分开解决。上文所说,侧边栏由ini控制;按照规则摆放好小地图,设置,简报,翻页,维修,变卖之类的控件之后,再规定一个“图标区”。同时,为了适应不同的分辨率,使用相对位置控制。并且有一个最小高度——保持400即可(大概原版也是这个数值)。再留下最重要的图标区。图标区由程序硬性控制大小,并且可以在屏幕宽度足够大的情况下经ini的解锁以允许超过2栏的图标排列。同时,图标区不在定死于4栏式——可以增减栏数,1,2,3,4,5,6,等等都可以。为了还原TD/RA1/TS中的左右双栏的模式,应该允许多个“图标区”存在于侧边栏。每一个图标就是1个按钮,这样便于控制。 2、游戏的底边栏同理,留下几个按钮,剩下就是摆设。 3、对于简报和设置区域,应该划入UI控制的范畴,而不是游戏区域,按照之前的UI的说明处理。再有,载入区域,直接挂一幅载入图,绘制进度条即可。这样我们就把与游戏“战场”以外的区域都说完了。 4、正题的正题:游戏的实时运算和渲染。先说渲染。由于RA2是典型的2.5D游戏,所以我们就应该用2.5D的思路去考虑。为了保证不频闪,把每一帧合成之后再覆盖原有的“战场”图片。我们可以把它分成层去渲染。 一、empty层,调用地形ini中名为empty的图像。原版中根据Theater,即地图种类,温和、雪地、城市等在载入过程生成。在叠加时在最下层。在游戏自始至终就不会动。不会第二次渲染。可以见于地图比你显示器还小,哪一格被强制使用了无图像的地形(比如你把地形改成透明的就能看见)等情况。 二、object层,战场的图像。很复杂,慢慢研究。第二个渲染,即在倒数第二层。 三、darktile层。将地形降低亮度再渲染。用于制造半透明黑幕效果。目前认为这是最简便的方法。第3个渲染。 四、shroud层。就是黑幕,利用地形LAT的算法控制。(LAT的算法见后。) 五、extraanim层。额外的动画(血条之类的。) 六、anim2层,渲染胜利/失败等图像。很好理解和控制。 七、text层。最上面,控制左上角,Ares中还有左下角的文字。作为文字显示,它需要在最上面。 详情请见楼中继续说明。感谢您的阅读!
1 下一页