Sunday, December 07, 2008

脚本化


将事件脚本化或许是一个可行的趋势,二进制的流改成类似高级语言的形式,一定能够方便理解和编写。

现在我是试图用Rem Object Pascal Script来扩充,但是这个控件在KG的电脑上似乎有些问题。

Sunday, November 23, 2008

Fishedit之血泪控诉

 

fishedit是一个非常好的修改器,但同时也是一个很糟糕的应用程序。作为修改器,fishedit是一个上品;但是作为一个应用程序,只好不及格。

fishedit的作者是金庸MOD历史上最为著名的技术大师——游泳的鱼,在一开始他选择了VB作为程序设计的主要语言。如今VB.net已经问世,他当年的决定到如今成为MOD历史上最大的一个方向错误。VB对类型转换的保护异常脆弱,稍不留神就会导致程序整体崩溃,一步一存已经成为许多作者的习惯。此外,很多时候也不可想像,为什么事件编辑牵扯到如许多的设定,fishedit内部的许多逻辑被隐藏在了代码之后,无人可以完整理解。而所有问题的根源,便是fishedit使用的平台,是一个功能极度简单的VB。时至今日,VB新版已经强大稳定了许多,但是.net的诸多变化导致这份在VB6上面能够基本正确执行的代码已经完全不可能移植,这段曾经光辉的历史如今却成了一个极大的障碍。如果你能够了解作者打不开自己辛苦编辑的事件文件时候的焦急。

在作者公开源码之后不久,我曾经试图对其进行修整,但是如今越来越觉得这实在是一个不可能完成的任务。我们需要感谢游泳的鱼在MOD制作上做出的光辉贡献,但是fishedit糟糕的稳定性和易用性实在让我们付出了太多的代价。

现在的技术部里面似乎很多人在做将复刻版的代码译成其他语言的工作。老实说我觉得这些工作并无多大意义。我从不认为我的代码能够成为规范,所以也不赞成不加思考地将其译成其他语言。Pascal或是C不过只是工具,并无本质的区别,重复工作追求那种东西还不如把精力拿回来作优化和修改器。我编写Pascal代码用了2周多的时间,如果不能保证在更短的时间内将翻译完成的话,还是放弃为好。

Thursday, November 13, 2008

复刻计划最终结束


今天复刻版最后一个难题解开了,就是战场上人物和建筑的遮挡问题。是使用小小猪提示的递归方法判定角色可移动范围的。这样复刻版的最后一个算法难关被解决,已经基本完备,以其为基础的修改不再存在任何技术障碍。

这样,从5月4日开始的“All Heros in Kam Yung’s Stories复刻计划”正式宣布最终的结束,DOS版的所有功能已经完整实现。目前仅音乐不稳定无法解决,这个可能是系统本身的问题。而其余的修改仅仅是普通的工作了。

Tuesday, November 04, 2008

不算工作室

 

呃……这个名字确实有点诡异。

大概就算是制作MOD的工作室吧。主要领导还是一帮动物……

 

此外这个站里的东西应该都能在http://txdx.cech.com.cn下载到。

Friday, October 24, 2008

高桥大师的战国之旅



带着平静的情绪阅读高桥大师的新作《犬夜叉》,这是一出浪漫惊险的战国之旅,人和妖怪的感情如微风一般流露。


这是一个让人愉悦的故事,可以在寂寞时清扫纷乱的心情。


不管他们追寻奈落的结局如何,都希望他们在战国时代的旅行一直能够继续,如同每天初沐的阳光一样,并不精彩,但让人感到温暖。


Monday, September 29, 2008

名句的集中地—《琵琶行》



白居易的《琵琶行》,在声音的描写堪称绝无仅有。在唐诗中,有3篇被称为“摹写声音至文”,《琵琶行》当之无愧位于首位,另外两个是《听颖师弹琴》《李凭箜篌引》。但是仔细读来,另外两首跟《琵琶行》比起来,实在逊了半畴。韩愈时而外泄时而内敛的感情和李贺的上天入地奇思妙想,《琵琶行》兼而有之又并不落于下风。



而就诗的整体成就来说,韩愈和李贺只是写了声音,全诗是佳作,但是每句话拿出来,却难让人印象深刻。白居易却在《琵琶行》里留下了很多至今仍光辉四射的句子。比如:



千呼万唤始出来,犹抱琵琶半遮面。


别有忧愁暗恨生,此时无声胜有声。


同是天涯沦落人,相逢何必曾相识。



这些句子妙就妙在,当后人在引用它们的时候,甚至并不一定记得出处。



关于名句,每个有名的诗人都会留下几句。我们也可以调侃一下,用“引用次数”来描述诗句的著名程度。毫无疑问,李白杜甫肯定是非常高的。在晚唐时期的李商隐因为写了很多有名的无题诗,也会很高。李贺大概有几句是很高的,但可惜都是一句,上句或者下句总被人忘了。而像同一首诗里面能出好几句,除了《琵琶行》还真的很难找,当然这也跟诗的篇幅有关。


Saturday, September 27, 2008

孤篇盖全唐—《春江花月夜》



张若虚(660年—约720年),是唐代的著名诗人,他传世的诗仅有两首。
对他来说,这两首诗就足够他名留千古了。或者说,就算再失传一首问题也不大。因为很多人根本不知道另一首诗的名字和任何细节,但很少人不知道《春江花月夜》这个极度浪漫的名字。




春江潮水连海平,海上明月共潮生。滟滟随波千万里,何处春江无月明?江流宛转绕芳甸,月照花林皆似霰。空里流霜不觉飞,汀上白沙看不见。江天一色无纤尘,皎皎空中孤月轮。江畔何人初见月,江月何年初照人?人生代代无穷已,江月年年祇相似。不知江月待何人?但见长江送流水。白云一片去悠悠,青枫浦上不胜愁。谁家今夜扁舟子,何处相思明月楼?可怜楼上月裴回,应照离人妆镜台。玉户帘中卷不去,捣衣砧上拂还来。此时相望不相闻,愿逐月华流照君。鸿雁长飞光不度,鱼龙潜跃水成文。昨夜闲潭梦落花,可怜春半不还家。江水流春去欲尽,江潭落月复西斜。斜月沈沈藏海雾,碣石潇湘无限路。不知乘月几人归,落月摇情满江树。



就韵律来讲,有少数地方并不流畅,但是这多半是来自音韵上千年的变化。除此之外,全诗一气呵成,堪称完美。



在思绪上如此流畅的作品,长诗中并不多见。在唐代著名诗人中,恐怕只有李白的作品能与之相比。而杜甫的少数长句与之相比则略显苍凉,《饮中八仙歌》当属例外,但是严格来讲,《饮中八仙歌》属于罕见的同韵诗,韵律的流畅远大于情绪。



当然把张若虚和李白并论,是无论如何及不上的,但是就《春江花月夜》来说,并不输给李白的《将进酒》《梦游天姥吟留别》等长句。张若虚不可能一生只写了这一首诗,作品失传的原因,很可能是那些诗并不出众。毕竟如果一首诗能口口传诵,想让它失传也很难。

对于一个名气并不大的诗人,他已经十分难得了。


所以作品不需要很多,或许仅仅一篇就足以让你千古不朽。


最近的一些


最近的修改主要是慕容玄恭需要的一些功能,先看看他在9.26给出的列表:

  • 医疗5倍效果,100医疗可回复500HP每次
  • 休息回复3%HP/MP/体力
  • 最大10000内力加成200攻400防
  • 黑地的问题
  • 升级属性增长,轻功固定每级+3
  • 北冥,吸星改为加当前内力,不加内力上限
  • 中毒时内力亦和生命时一样减少
  • 似乎还有很多

应该说这些都是为平衡性所作出的努力。这些日子,大家讨论的基本都是加强版的内容。加强版相对最早的复刻版,游戏性已经提高了很多。

在早期,伤害公式是一个非常热门的话题,如今真的能够随意修改了,又要考虑诸多的平衡。

 

除此之外,在发展史上回了一个帖子:

2007年末我当时比较无聊,又有些郁闷,所以想找些以往的DOS游戏来玩。
最开始找了《仙剑奇侠传》,很快就玩通了。然后就找了《金庸群侠传》来玩,刚开始玩就觉得无聊了,因为这个游戏的情节我实在太熟悉了,DOS时代大概玩了两三遍吧。我早就知道有一些金庸的修改档,所以就想找些修改档来玩玩找些新鲜感。
那些修改档我能记住名字的有“剑气碧烟横”之类,不过我倒是并不喜欢这个修改档。在网上找了一会,发现有被称为“苍龙逐日”的修改档,获得了很高的评价。于是下来玩了一下,发现用dosbox不能运行,于是搜索解决方案,这样就找到了轩辕春秋论坛,后来就从轩辕春秋链接到了这里。
(ps:轩辕春秋下载附件是不需要注册的)
我在这里就找到了fishedit修改器,里面有很多以前没见过的修改选项,比如高分辨率,水上漂。对于我这样的懒人来说,这些修改实在太好用了。我看了游泳的鱼写的说明,关于水上漂的修改介绍,我想,这不就是汇编么,以前我也了解过一些的,于是便想自己研究点什么出来。
我便四处收集相关的资料,刚开始我想自己来反汇编,但是很多都不懂,最早只能小小修改一下某些物品的效果。有一次在曾大虾的空间里下到了以前的反汇编结果,应该是游泳的鱼注释的。利用这个反汇编结果,我做出了扩大物品选单,扩大状态选单等修改。
我翻老帖的时候,发现很多问题集中在伤害公式上,而我也没弄清楚为什么修改引用地址做不到。后来从游泳的鱼留下的蛛丝马迹和LE文件格式中找到了原因,问题是在重定位表上。
这个问题解决之后,很多修改都可以做出来了,比如重写伤害公式,做出“增强功能”等。
有一次小小猪找我帮忙修改一个功能,这就是我跟管理层接触的开始。
之后我和飞虫,游客,KG共同战斗了很久,提出和解决了很多新的设想,比如物品调用事件,从这里又引出了战斗调用事件。之后就是在任意一个位置插入事件的方法,一般修改z.dat是我去做,具体的事件实现是KG做。那时觉得DOS版还能修改很多,发展的前景也无限广阔。
2008年4月,fenghou在论坛上发布了一个地图查看器,有些Windows版的意味。5月,我提出了一个“复刻计划”并在两周之内将整个计划基本完成了。老实说,在这次之前,我是根本不敢想像自己能去重新编写一个游戏的,在这次编写的过程中,我碰到了无数的困难。每个大功能的编写,就好像进入了一个漆黑的房间,之后将里面的东西一件一件摸清楚。当前面没有路的时候,就从别的房间搬来梯子,搭一个上去。
当完成最终的9000多行代码的程序,基本复制了原版的全部功能的时候,我自己都觉得我做了一个很伟大的工作。
在此之后我才出任的达摩堂掌门,那时我早已跟飞虫游客KG小猪共同战斗了很久。后来管理员更换,不久之后我出任了游戏区统领。现在打开程序的时间并不多,但是我在技术群看见有些懂编程的新人很有兴趣地修改,南宫老师也开始写pascal了。不管以后是谁继续搞,也不用面对似懂非懂的汇编了。

 

此外有人提问主角的行走图能否通过事件指定,答案是可以的。

Thursday, September 25, 2008

人月神话



看了一部分《人月神话》上面的内容,虽然是讲软件工程的,但我觉得很多其他类的工程都可以借鉴。



“人月”指一个人一月的工作量。如果一个工程一个人做需要12个月,那么3个人做会不会降低到4个月呢?如果再增加人数,是不是很快就可以把工程做完了?这就是所谓的人月神话。


大概就是说,使用“人月”这个词可能是一件危险的事。


Friday, September 19, 2008

Windows Live Wave 3



这一次MSN的界面获得了前所未有的彻底改进,甚至可以自己选择背景图片。不过调色上还有些微的不和谐。
以前MSN的界面说不好听的,连QQ都不及。


Writer和Mail的改进有些奇怪,现在的界面好像一个人系了一条太粗的腰带。大概它们还在改进之中。



image


Tuesday, September 09, 2008

烂网络



实在太差了。MSN几乎上不去。


Tuesday, August 26, 2008

Windows Live Messanger 9 Beta 3


 


这个版本看起来不错,窗口很简洁。



image


也许可以到下面的页面看看,有个泄露版。正式的测试据说是需要邀请,但是邀请是怎么发的呢?



http://www.jcxp.net/forums/index.php?showtopic=30035


Friday, August 08, 2008

google



我每天都用google,它越来越强了,也越来越牛气了。不过总不能比微软还微软吧。


何况今天不知为何网速很慢……



image


Wednesday, August 06, 2008

雨,台风



Rain and typhoon.


Just weather.


Tuesday, July 22, 2008

IE8 卸载时的注意事项



昨日看到微软放了IE8的beta版,一时兴起,便下载了安装一下试试。结果发现一些bug,比如在维基百科上选择文字有显示错误,还有到一个常去的休闲网站的时候一些插件不能正确运行。



于是便想卸掉IE8,但没找到这个选项。便用了系统还原,结果出现了一系列问题,很多系统的服务不能正确运行。后来发现在20日有一个还原点,便将系统还原到20日,解决了问题。



毕竟IE是跟Windows结合非常紧密的东西,IE8应该是个好东西,但现在只是beta1版本,所以还是不要使用为好。这不像Firefox的测试版,装上之后发现不好用可以轻易卸掉,甚至干脆不理它。IE想搞掉可是很麻烦的事。



想使用系统还原卸载IE8的时候,需要注意IE8实际上是在系统上装了3个Update,所以选择还原点要选3个Update之前的,否则肯定会出问题。


Saturday, July 19, 2008

图片



世界会这样吗?


Blue_Moon-1280x800


Monday, July 14, 2008

nes模拟器闲话

我用过几个NES(FC)模拟器,大致印象是这样的:
Nester
最早用的模拟器,功能较少,支持的游戏也不全。有日文版和中文版(可能是非官方制作)。
模拟器只有一些基本的功能,没有画面增强的选项,不推荐使用。
http://nester.sourceforge.net/
symNES
台湾的Billy Jr制作的模拟器,兼容性非常好。本来这个模拟器是收费的,后来被破解了,作者就没再更新。
Billy Jr在模拟器界非常有名,有少数几个游戏只有symNES能够读出来,其他模拟器读不出来(但是据说这些游戏是Billy自己dump下来的,他把这些ROM加密了)。不推荐使用。
NNNesterJ
日本人做的比较好的模拟器,功能多,图形和cheat功能一流。但是对一些特殊rom的支持一般,在vista下面的很多功能有缺陷。最后版本是0.23,已经停止更新了。推荐使用,尤其是喜欢玩模拟游戏作弊的玩家。
这个模拟器有一个十分体贴的功能,就是可以在你退出的时候保存进度,下次你打开这个游戏的时候就可以直接从上次退出的地方开始玩。当然几乎所有模拟器都可以手动存档,不过能自动存的目前仅此一个。
这个模拟器在网上可以搜到0.24版,但并非官方的更新,而是一个网站自己编译的(其实这个做法是不适合的)。这个模拟器是开源的,任何人都能拿来优化过重编译。
http://www.emulation9.com/nnnesterj/
Nestopia
目前最好的模拟器。这个模拟器自称能100%模拟FC的性能,所以对rom的支持很强。
你要是想纯粹是玩游戏的话,拿这个模拟器就对了。这个模拟器甚至支持几个方向键同时按下。不过一些附加的功能就不及NNNesterJ了,像作弊码,存档等都差了一些。
http://nestopia.sourceforge.net/
Famtasia
大概是很早的模拟器。并不出名,运行速度慢。网上流传的著名的Mario录像是这个模拟器录的。最终版本是5.1。
它的网站似乎已经上不去了。不推荐使用。
VirtuaNES
著名的模拟器,至今仍在更新。可以认为它是FC模拟器的标准。图形功能和cheat功能很强,但个人感觉设置的一些细节不及NNNesterJ。但是它还在频繁更新,前途很远大。推荐使用。
http://virtuanes.s1.xrea.com:8080/
FCE Ultra
这个模拟器对游戏录像的支持极好,其他性能一般,可以说几乎就是为录像准备的。有一个著名的录像网站http://tasvideos.org/,里面的NES录像都是用FCE Ultra制作的。
顺带一提,这个网站上的录像都是快速通关的世界记录,有些打得非常华丽,你可能想不到小时候熟悉的那些游戏还可以这么玩。上面也有一些记录是中国人创造的。
这个模拟器性能跟nestopia相差无几,但是除了看录像之外,不推荐使用。
http://fceultra.sourceforge.net/
几个街机模拟器
Kawaks
支持NeoGeo,CPS1,CPS2。
Kawaks之所以成名是因为它最早模拟了kof2000,很多人用它来打kof,对历代kof的支持都还不错。在2001年之后因为原作者退出,就差很多了。用Kawaks玩一些格斗游戏时,招式并不好出,据说因为Kawaks并不是精确模拟,换成其他的就会好些。
传闻Kawaks的核心是使用汇编语言写的,尽管高效,但是错误很多。后来有人试图修过,但是没修好。现在除了界面操作方便之外,也确实没什么优秀之处了。
http://cps2shock.retrogames.com/
MAME
模拟器的巨头,诞生的目的是为了记录街机游戏的历史,没什么别的好说了。
MAME由一群专业的程序员维护,他们以做学问的态度对待模拟事业,他们甚至可以被认为是程序员和科技人员的典范。
MAME发展到如今,它的规范已经成为行业的标准,其他的街机模拟器不得不向它靠拢。
不过不推荐直接拿MAME来玩游戏,使用MAME的衍生版比较合适。例如著名的MAME Plus!。
http://mamedev.org/
http://mame32.classicgaming.gamespy.com/
http://mameicons.free.fr/mame32p/
NeoRAGEx
老牌的模拟器,似乎不更新了。不过好像也没人用了。
Nebula
著名的星云模拟器。跟Kawaks很像。
Nebula的核心是精确模拟,所以比Kawaks的兼容性好很多。
http://nebula.emulatronia.com/
FinalBurn Alpha
FBA是很好的模拟器。核心是MAME的,性能良好。
http://fba.emuunlim.com/
Callus
最老的模拟器了。不推荐使用。
模拟器的附加效果
双线性插补画面
双线性插补是一个图像效果。
这种插补得到的效果比很多2D滤镜自然一些,图像失真也小一些。 一般来说所有的模拟器都具有这个简单的图像功能。但是在vista下面这个功能能正常运行的并不多。在常见模拟器中,Nestopia和Nesten都可以,而比较早的NNNesterJ不行。原因可能是这个功能需要DirectX的支持,而vista下面的DirectX调用与以前有所区别。
作弊码
许多游戏都可以作弊,比如血格锁定,无限道具,无限时间等。在模拟器中如果带有完备的查询和作弊工具,当然就很好。NNNesterJ中的查找工具是比较全面的,VirtuaNES也比较强,其他的模拟器可能就差些。 Nestopia自带的查找工具有点莫名其妙,Nesten似乎只能查找变化的和不变的。 查找的原则很简单:无敌时间通常是因为有一个一直在变小的倒计时变量,当它不为零时就无敌,为零时就是正常状态。而像血格、生命这些看得到多少的就可以直接查找数字。不过要注意,有时内存中的数据并不与显示的数字一致,多数情况下会多一个或少一个,当然如果一直用模糊查找变大或变小的量就没问题。有时也需要运气,比如有些游戏是没有无敌时间的,但是如果锁定某个地址就真的可以无敌。 其他诸如录像,调式等等,普通人可能就不关心了。

Monday, July 07, 2008

No title



今天是抗日战争纪念日,提醒我们不要忘记历史。


此外今天还是小暑,不过这怎么跟小寒似的。


Sunday, July 06, 2008

3个MOD视窗整合版

使用新编写的复刻引擎,优化了目录结构,但是为修改带来了麻烦。

下载请到:
http://iask.sina.com.cn/h/user.p ... 35&fixed=ishare
苍龙逐日的一个分流地址:http://www.bibidu.com/fileview-654477.html(感谢龙吟提供)

几个小细节:
选择人物属性时按esc是确定。
输入人物姓名必须使用繁体中文。
如果输入某些特殊的名字会获得超级起始人物,每个版本均不同。

提问或反应bug请到:
http://www.txdx.net/thread-398775-1-1.html

欢迎试玩,转载,分流等。
版权没有,翻版不究。

Wednesday, July 02, 2008

今天是个好日子




image


居然还有假期...


Tuesday, July 01, 2008

10个出色的免费软件



10 Great Software Programs You Can Get
Gratis



http://www.technewsworld.com/rsstory/63527.html


伟大在英文里面是great,但是这两个词我觉得不是完全同义。
如果夸奖某人做一项工作很出色,用great也可以,但这就跟中国人所说的“伟大”不沾边了吧。所以译成“出色”。


By Peter Grad
The Record
06/27/08 4:00 AM PT


Bergen Record PC columnist Peter Grad
closes out the latest season of his column with a rundown of some
of the best free software available on the Web. Some of it is open
source, some isn't, but it's all free (as in beer) and useful, he
writes.


[下文不是翻译。]


免费软件和开源软件的确是这个时代伟大的东西,也许有一天,我们连操作系统都可以用免费的(别跟我说现在有免费的用,我还不想找罪受)。


不过现在,我还得打开我的Vista,使用微软给的免费软件Live
Writer贴这个鬼东西上去。


As we bring another season of The PC Guy
column to a close -- I'll be off for the summer -- let's take a
quick look at 10 cool and free software programs.


 


Paint.net 3.08


Coming out of left field in an already
crowded category of Photoshop competitors,
this beauty of a program is simply amazing. Features such as a gradient tool that
blends images and colors in real time to generate stunning effects,
a cloning tool that makes blemishes, obstructions and other
unwanted elements disappear, red-eye removal, layer manipulation
and a battery of slick filters make this one of the best graphics
editors you're likely to find.


这个东西是可以代替Photoshop的,但是它的功能实际上还比不上Photoshop(要是比得上Adobe干脆关门算了……)。其实Gimp也是一个免费的图形软件,是从Linux来的,大概还能用吧。


 


EssentialPIM 2.5


Think of Outlook, now supercharge it with
colorful enhancements, improved functionality and easier access to
components. That's
EssentialPIM, a suite of
utilities (minus e-mail) to help you organize your time, contacts
and chores. Its Notes program is excellent and lets you include
graphics and hyperlinks, and its classy color-coded Scheduler can
be printed out for daily, weekly or monthly tasks. It's a wonderful
all-in-one desktop office
New HP LaserJet P4014n Printer Starting at $699 after $100 instant savings. manager.
IrfanView 4.0 Considered by many to be the premiere image-viewing
program on the market,
IrfanView is compact,
fast and powerful. It works with a ton of image formats, does basic
adjustments and lets you create cool slide shows on the
fly.


这个东西我没用过,好像是用来管理联系人,计划表等等东西。不过这一段里面介绍了IrfanView,似乎不搭?看图软件我喜欢Xnview,它是免费的吗?


 


OpenOffice.org 2.4.1


What would you say if you were offered a
full-fledged word processor, an industrial-sized spreadsheet
program, a powerful presentation utility, a strong graphics program
and a professional-caliber database compiler, all comparable to the
best
Microsoft (Nasdaq: MSFT) Free Trial. Security Software As A Service From Webroot.Latest News about Microsoft has to
offer and it was all free, no strings attached? If you'd call it
the best software offer in computing history, you'd be right. One
catch: You may need to shell out some bucks for an
extra hard drive, since
OpenOffice.org requires
800 megabytes.


在这个时代,跟微软作对除了获得一个听起来不错的名声,通常没什么好处。OpenOffice真的不错,但是谁告诉我微软新的docx这种格式怎么用别的软件处理?


 


PDFCreator 8.1


PDF files, created by Adobe (Nasdaq: ADBE)
Latest News about Adobe
in the
'80s, remain the most popular, versatile text and graphics document
format that can be accessed on any computer operating system. Now
you can create and save your own at no cost with

PDFCreator
. You can merge multiple
documents easily and encrypt them as well.


创建PDF,除了那个Adobe Acrobat,还可以试试这个。


 


CDBurnerXP 4.0


Some professional CD/DVD burners offer
handy extras, but if you just want the basics, to easily burn music
or data to discs without the hassle,
here's your utility. You
can create your own audio discs with no gaps between songs,
bootable discs and high-def discs in Blu-ray format.


这个是用来烧录CD的,不过买刻录机时应该会送一个正版的软件吧。但说实在的,Nero现在开始往高大全方面发展,我可不打算拿一个刻录软件来编码。


 


7-Zip 4.57


Not the kind of utility you might get all
excited about, but we all need compression programs to zip and
unzip all sorts of files from all sorts of sources.
7-Zip handles plenty of
formats, bundles files tightly and unzips them fast.


Zip格式的作者宣布放弃版权,现在这位可称伟大的业余程序员已经不在了。WinZip还是商业软件,WinRAR比WinZip好一些,也是商业软件。至于WinAce之类的,忘掉它们吧。此外RAR的格式7z是不能完全支持的。


 


Stickies 6.5


There are programs that mimic Post-it notes
everywhere, but

this one
is my favorite. Create
your own colorful notes, align them to the side of your desktop or
let them stand free-form, attach them to specific Web pages where
they'll remain when you revisit a week later, or assign them to a
specific file or folder. They can be timed to pop up as reminders,
and each can even play its own assigned song or sound to alert you
to an event.


我不知道这是做什么的,谁知道?


 


WordWeb 5.1


Remember those big things you used to store on
your desk and thumb through when you needed to spell or define a
word? I think they were called "dictionaries."
WordWeb is one of the
best digital versions of a dictionary and thesaurus I've seen. It
has a massive database, and it could not be easier to use.

Simply install, go to any printed word on
your document or Web site and press control-right click, and Word
Press will instantly display definitions and synonyms, and also
provide immediate access to online
WikipediaLatest News about Wikipedia and
Wiktionary references to
the word as well.


这个也不知道...


 


ooVoo 1.6.1


There are several free Internet-based
telephony programs available, but
ooVoo is easily the
slickest-looking one, and it performs beautifully. Have your
friends download a copy, and make unlimited-length calls to them
for free, anywhere, anytime. Try out the free video phone call
feature as well. In fact, if you're a college student going away
soon, why not place a video phone call to your worried parents,
assure them you're OK, and then hit them up for a few extra bucks
for that hard drive you'll need for OpenOffice.org?


网络电话?


 


© 2008 The Record, Bergen County, NJ. All
rights reserved.
© 2008 ECT News Network. All rights reserved.


版权声明的部分是原链接上所有,与此blog无关。


这里很久没更新了


自从做出复刻的版本之后,就很少再研究DOS版了。只有KG仍然坚持DOS版的研究。

其实DOS版现在来看可以挖掘的地方还有很多,而且线性可执行文件的格式,改起来也很方便。只是有些地方很诡异,并非所有地方都能够自如插入事件。

这个站点的访问量主要还是从论坛过来的链接。

Windows XP 今日停止销售



一段历史终结了。


Friday, June 20, 2008

firefox 3



为什么3对2的插件大部分不兼容?要逼很多人重写插件么?


在这个问题没解决之前,我认为还没法用。


Monday, June 09, 2008

《PTT》、《再战江湖》复刻测试版

此为测试版,使用方法为先下载字体文件与DLL文件(可到“《苍龙逐日》复刻版”那里找到下载的地址),再下载exe文件,并将全部文件解压到原游戏目录。

字体文件和DLL文件可以在《苍龙逐日复刻版》那里找到。其实字体文件也可以在很多地方下载到。

到这里下载:http://scc.ys168.com/

现在没把这些传上来,是可能还有修改。

已知问题:

PTT:
PTT版并没有使用新的技术,所以如果复刻的难度与苍龙逐日是相同的。
某些动画不完美。

再战江湖:
某些文字显示错位;
马贼洞不可以一直站立在某个地点等待敌人,必须走动才有效;
在某些场景可能走到不适合的地点;
某些动画不完美;
启用了第二伤害公式,所以防御拐点又出现了(这个现象并不合理)。

整合版某些使用不方便,先不做了。

此外另有几个使用相当新技术的版本,几乎是不可能重现的。就不再专门制作了。

新型事件的截图:

image image

 

 

Friday, June 06, 2008

字体

中文字体

Windows自带的字体中,比较好的显示中文的字体大概有 明体,宋体,标楷体,微软雅黑,微软正黑。后面3种是Vista下面添加的,不过其他系统想获得它们也并非难事。

实际上宋体和明体都是同一种风格字体,起源也相同,只是发展到今天在笔画上有细节的不同。

在系统中预装的宋体是中易宋体,同时“新宋体”与它也是同源的。在Vista之前,一直以系统的默认字体为人熟知。该字体的英文字符是等宽的。

从设计上来说,简体中文的字体经常在细节上有瑕疵。例如同为系统标准字体,日文的PMincho字体在小字符上的表现就好很多。

与中易黑体一起,此字体已被Unicode组织催促放入正确区域的字符。不过看起来它们是难有大的更新了。Vista中已经更换了默认字体,而且今后的Windows 7也绝不可能使用这个字体,它变得不再像以前那么重要了。

备注:即便是现在看来做着一件好事的Unicode组织,他们对中文的处理方法也备受诟病。简单地说,他们是一群程序设计的专家,而不是研究汉字的专家。

200px-Simsun

细明体和新细明体通常作为繁体(正体)中文的默认字体,与中易宋体相对应。二者其实都是宋体,但细明体的波澜看来要多些。

细明体的英文部分是等宽的,而新细明体则使用更为适合的非等宽设计。特别地,如今细明体中已经包含了全部的Unicode字符,可以正确显示简体中文,具有更大的通用性。而中易宋体同样作为使用人数众多的字体,字符集却并不完整。Windows上有宋体大字符集可以代替中易宋体。

250px-Ming

标楷体是繁体中文地区通用的楷体,设计比较美观。由于完整支援Unicode,所以也可以正常显示简体中文,但在一些笔画的细节上与大陆通行的写法并不完全相同。简体中文系统中似乎缺少对应标楷体的字体。Office中附带的华文楷体在美观程度上并不能与之相比。

220px-KAI

微软雅黑是在Vista中引入的简体中文的默认字体。支持GBK,Unicode,Big5,GB2312等字符集,是非常通用的字体。而在此之前,华文细黑(曾在苹果公司的操作系统中使用)也几乎支持全部的字符集,但是并没有微软雅黑那么广泛地被使用。微软雅黑的粗体字是另外的一个字体,并非使用计算的方法。

微软雅黑在显示简体中文上表现得非常出色,但是在显示繁体中文的时候效果较差。但是实际上这样的机会并不多。

此外,微软雅黑在少数字符的设计上有瑕疵。例如“一一”这两个字,由于在“一”的两端预留的空白不够,使之难以与破折号区分开来。

255px-MSYH2

微软正黑是繁体中文Vista中的默认字体,在繁体中文的显示上比微软雅黑更为出色(但显示简体中文的效果实在太差了,他们是不是商量好的)。同样涵盖全部的中文字符集。

在用于显示简体中文的时候,文字的风格与大陆的书写习惯并不一致,通常大陆用户会略感别扭。

MSZH

 

英文字体

即便完全不懂英文(以及任何应用拉丁字母的语言)的人也不可能离开拉丁字母,所以英文字体也是非常重要的。

Times New Roman 是大部分英文书籍杂志使用的标准字体,在英文世界里有最为广泛的应用。最早使用它的是《泰晤士报》。大概正是因为其广泛,很少有人认为它是一种出色的字体。

Windows系统中使用的字体称为Times New Roman PS,实际上这个后缀并没有使它看起来有什么不同。

该字体的斜体的风格更接近手写,适合用于公式排版。

250px-Times_New_Roman_font_svg

Courier 是最为通用的等宽字体。

众所周知,在程式设计中,等宽字体比非等宽字体更加适合。因此在源码的显示中,Courier以及其变体至今仍被最为广泛的应用。

Courier New 与Courier 在行距以及某些标点上有所不同。

250px-CourierWC

Calibri 是Vista中附带的一种字体,并作为Office 2007的默认字体取代了Times New Roman。基本上可以认为它是英文字体的新贵。

230px-Calibri_font_svg

Consolas 也是Vista中附带的一种字体,也可以在Visual Studio中获得,它是一种等宽字体。在此之前,Courier和Lucida Console均是程式代码显示中常用的字体,在显示的时候可以控制是否打开边缘柔和,而Consolas本身就是边缘柔和的,如果不开启ClearType,效果会大打折扣。

字体中的0和o分别很明显,比较适合用于显示源代码。从微软发行它的态度来看,大约就是这个目的。

240px-ConsolasSP_svg

 

其他

明瞭体是日文Vista的默认字体,字体名为Meiryo。风格与微软雅黑和正黑颇为相近,可以显示中文,但是效果一般。

 

图片取自维基百科。

Wednesday, June 04, 2008

C#和Object Pascal


下载了一个C#的速成版,似乎是免费的。

在编写一个基于窗口的程序时,program.cs的内容如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

 

再看看Delphi自己生成的代码:

program shift;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

这两个的风格实在太像了!

也难怪,二者都是快速开发工具的代表,只是最终实现的平台侧重不同。Delphi使用CLX类库可以做Linux下的快速开发,而C#则是致力于.NET的跨平台实现。相对来说,.NET出现得更晚,将来也是主流之选(Delphi也有对应的版本,其实就是跟微软的风了)。

 

其他:

Delphi是把类的声明与实现都写在Unit文件里面,各个Unit之间可以很随意地互相访问。一个Unit中可以有名义上的全局变量。另外代码中已经为类创建了相应对象。

C#秉承C的习惯,把声明与实现分成两个文件,Unit之间的互访必须先声明,只有名义上的全局变量。

尽管如此,在快速开发的时候,二者实在太像了。

关于复刻版的bug


确定存在并难以解决的的问题:

大地图某些贴图顺序错误,谁有更好的计算贴图顺序的方法?

某些地方不能连续通过,是解决这个还是允许按键刷对话?

无法确定是否存在的问题:

战斗时人物错位,代码看来没错误,可能需要某个触发条件?

至于其他功能现在就不添加了。

虽然我还不打算马上公开源码,但是既然我把的目的定在MOD制作上,代码是肯定会公开的,只是早晚的问题。不管这份代码是否漂亮(我不觉得漂亮,只能算是完成了任务),总算比汇编好懂多了。我相信有许多比我更强的高手能写出更漂亮的代码来。

等bug基本排尽之后,我会对几个流行的MOD重新制作一下。但是有些使用的技术太复杂,做不出来就只能算了。

之后我就可以退休了?

Tuesday, June 03, 2008

IT人应有的30个技能



这不是不相关的东西,在这个时代里不管干什么想不跟IT打交道是不可能的事。就算你只是个在实验室里修电脑的,本文也值得一看。


中文是我简单翻译的,可能与原意并不完全相同。


The 30 skills every IT person should
have


An IT manager's guide on how to be better
at what you do, no matter how experienced you are




By Richard Casselberry


June 02, 2008

On MSN the other day, I noticed an article
called "75 skills every man should master." It included some skills
I have and some I don't. For example, I can tie a knot and hammer a
nail, but frankly I can't recite a poem from memory, and bow ties
still confuse me.


It was an interesting read and made me
realize I could be more well-rounded than I am. To be honest, we
all could be.


So in the spirit of personal growth, I
developed a list of skills every IT person should have.


1. Be able to fix basic PC issues.
These can be how to map a printer, back up files, or add a network
card. You don't need to be an expert and understand how to
overclock a CPU or hack the registry, but if you work in IT, people
expect you to be able to do some things.


[ Ifyou have IT staffers who
aren't up to snuff, fire them.
Learn how to do it right.
]


懂得配置电脑。你要知道怎样配置一个打印机,备份文件,添加网卡。不必懂得如何去超频CPU或去做hacker,但总得知道些什么。


2. Work the help desk. Everyone,
from the CIO to the senior architect, should be able to sit down at
the help desk and answer the phones. Not only will you gain a new
appreciation for the folks on the phones, but you will also teach
them more about your process and avoid escalations in the
future.


接受咨询。从CIO到资深设计师,都应该坐在咨询台前面去接受咨询。要听的话不只是感激,也要告诉他们关于你的工程,避免未来的升级。(为什么避免升级?大概译错了?)


3. Do public speaking. At least
once, you should present a topic to your peers. It can be as simple
as a five-minute tutorial on how IM works, but being able to
explain something and being comfortable enough to talk in front of
a crowd is a skill you need to have. If you are nervous, partner
with someone who is good at it, or do a roundtable. This way, if
you get flustered, someone is there to cover for you.


作公开讲话。至少应有一次对你的同事陈述你的观点,尽管聊天软件可能更简单,但在人前自在地讲话是一个必备的技能。


4. Train someone. The best way to
learn is to teach.


培训。最好的学习方式是去教别人。


5. Listen more than you speak. I
very rarely say something I didn't already know, but I often hear
other people say things and think, "Darn, I wish I knew that last
week."


听多于说。


6. Know basic networking. Whether
you are a network engineer, a help desk technician, a business
analyst, or a system administrator, you need to understand how
networks work and simple troubleshooting. You should understand DNS
and how to check it, as well as how to ping and trace-route
machines.


基本的网络工作原理。应该懂得如何配置DNS,怎样去ping网络中其他的电脑。


7. Know basic system administration.
Understand file permissions, access levels, and why machines talk
to the domain controllers. You don't need to be an expert, but
knowing the basics will avoid many headaches down the
road.


基本系统管理。了解文件权限,级别,如何在域中工作。这可以避免很多令人头痛的问题。(文件打不开?共享中的文件别人打不开?看看权限吧。)


8. Know how to take a network trace.
Everyone in IT should be able to fire up wireshark, netmon, snoop,
or some basic network capturing tool. You don't need to understand
everything in it, but you should be able to capture it to send to a
network engineer to examine.


网络追踪。至少能把像样的问题报告发给网管。(不要发一堆浆糊过来。)


9. Know the difference between latency
and bandwidth.
Latency is the amount of time to get a packet
back and forth; bandwidth is the maximum amount of data a link can
carry. They are related, but different. A link with high-bandwidth
utilization can cause latency to go higher, but if the link isn't
full, adding more bandwidth can't reduce latency.


延迟和带宽。二者是相关的,高利用率的带宽必定会增加延迟,但是如果连接不满,增大带宽也不会降低延迟。(不要作无谓的猜想。)


10. Script. Everyone should be able
to throw a script together to get quick results. That doesn't mean
you're a programmer. Real programmers put in error messages, look
for abnormal behavior, and document. You don't need to do that, but
you should be able to put something together to remove lines, send
e-mail, or copy files.


脚本。写一个脚本加快你的工作。这不是说你要做一个程序员,真正的程序员能够做更多的东西。你需要的大致是快速移除你文档中的空行,自动发送E-Mail,复制文件等。(不会写的话叫人帮你写吧。)


11. Back up. Before you do anything,
for your own sake, back it up.


备份。在你要做重大修改之前。


12. Test backups. If you haven't
tested restoring it, it isn't really there. Trust me.


测试备份。这份备份真的能恢复吗?(你要修改的是不是你用来恢复备份的那个脚本?)


13. Document. None of the rest of us
wants to have to figure out what you did. Write it down and put it
in a location everyone can find. Even if it's obvious what you did
or why you did it, write it down.


文档。其他人不会知道你做过什么。记录下来,即使你对它很清楚。


14. Read "The Cuckoo's Egg." I don't
get a cut from Cliff Stoll (the author), but this is probably the
best security book there is -- not because it is so technical, but
because it isn't.


“杜鹃的蛋”。这个故事出色地描述了一个安全问题,说它出色是因为正确的做法与故事中的完全相反。(这是个什么故事?)


15. Work all night on a team
project.
No one likes to do this, but it's part of IT. Working
through a hell project that requires an all-nighter to resolve
stinks, but it builds very useful camaraderie by the time it is
done.


通宵的小组工作。这是IT行业的一部分。


16. Run cable. It looks easy, but it
isn't. Plus, you will understand why installing a new server
doesn't really take five minutes -- unless, of course, you just
plug in both ends and let the cable fall all over the place. Don't
do that -- do it right. Label all the cables (yes, both ends), and
dress them nice and neat. This will save time when there's a
problem because you'll be able to see what goes where.


电缆。把你的电缆两端都做上明显的标记。(此外,不要在不插电缆时问“为何共享无法打开”这样的问题。)


17. You should know some energy rules of
thumb.
For example: A device consuming 3.5kW of
electricity requires a ton of cooling to compensate for the heat.
And I really do mean a ton, not merely "a lot." Note that 3.5kW is
roughly what 15 to 20 fairly new 1U and 2U servers consume. One ton
of cooling requires three 10-inch-round ducts to handle the air; 30
tons of air requires a duct measuring 80 by 20 inches. Thirty tons
of air is a considerable amount.


了解一些电学知识。比如你需要多少空气去冷却一个电源,用什么设备去驱动空气。(这个问题谁想过?)


18. Manage at least one project.
This way, the next time the project manager asks you for a status,
you'll understand why. Ideally, you will have already sent the
status report because you knew it would be asked for.


管理至少一个工程。下次工程经理问你,你就会知道他需要的是什么。


19. Understand operating costs versus
capital projects.
Operating costs are the costs to run the
business. Capital equipment is made of assets that can have their
cost spread over a time period -- say, 36 months. Operating costs
are sometimes better, sometimes worse. Know which one is better --
it can make a difference between a yes and no.


了解经费与资本项目。(这句不是很懂。)


20. Learn the business processes.
Being able to spot improvements in the way the business is run is a
great technique for gaining points. You don't need to use fancy
tools; just asking a few questions and using common sense will
serve you well.


了解业务流程。(同上)


21. Don't be afraid to debate something
you know is wrong
. But also know when to stop arguing. It's a
fine line between having a good idea and being a pain in the
ass.


不要害怕辩论的东西是错的。但是要懂得何时结束争辩。


22. If you have to go to your boss with
a problem, make sure you have at least one solution.


问你老板问题时你需要有一个自己的答案。


23. There is no such thing as a dumb
question, so ask it ... once.
Then write down the answer so
that you don't have to ask it again. If you ask the same person the
same question more than twice, you're an idiot (in their
eyes).


问答案显而易见的问题并没什么,但是只问一次。之后写下答案。如果问的太多,会被认为是白痴。


24. Even if it takes you twice as long
to figure something out on your own versus asking someone else,
take the time to do it yourself.
You'll remember it longer. If
it takes more than twice as long, ask.


如果一个问题你自己做会比问别人需要花费两倍的时间,那就自己做。这会使你记得更深。但是如果超过两倍了,还是去问吧。


25. Learn how to speak without using
acronyms.


不要用缩写词讲话。记住它们的全名。


26. IT managers: Listen
to your people.
They know more than you. If not, get rid of
them and hire smarter people. If you think you are the smartest
one, resign.


作为领导,听自己手下的意见。他们比你了解的更多。如果不是这样,解雇他们再雇更聪明的人。如果你认为你是最聪明的一个,辞职。


27. IT managers: If you
know the answer, ask the right questions for someone else to get
the solution; don't just give the answer.
This is hard when you
know what will bring the system back up quickly and everyone in the
company is waiting for it, but it will pay off in the long run.
After all, you won't always be available.


作为领导,如果你知道答案,用适当的问题去问其他人而不是直接给出答案。如果你知道怎样使系统备份更快的方法而其他人都在等,那你也许会自己去做,但是这不是好主意。今后你的空闲时间会变少。


28. IT managers: The
first time someone does something wrong, it's not a mistake -- it's
a learning experience.
The next time, though, give them hell.
And remember: Every day is a chance for an employee
to learn something else. Make sure they learn something valuable
versus learning there's a better job out there.


作为领导,你的手下第一次做错时,不应视为错误——他们在学习经验。下一次,让他们知道什么是地狱。每天都是积累经验的机会。确保你的雇员了解有用的东西而不是认为别处有一个更好的工作。


29. IT managers: Always
give people more work than you think they can handle.
People
will say you are unrealistic, but everyone needs something to
complain about anyway, so make it easy. Plus, there's nothing worse
than looking at the clock at 2 p.m. and thinking, "I've got nothing
to do, but can't leave." This way, your employees won't have that
dilemma.


作为领导,给你的手下多于你认为他能力所限的工作。不要担心他们抱怨,否则他们也会抱怨别的。至少他们不会在下午两点的时候就没事干。


30. IT managers: Square
pegs go in square holes.
If someone works well in a team but
not so effectively on their own, keep them as part of a
team.


作为领导,知人善用。如果某人适合团体工作而单独工作时没有效率,让他做团体工作。


Friday, May 23, 2008

All Heros in Kam Yung 's Stories -- 苍龙逐日 复刻版

此版本仅是复刻版,所有情节,设置等与小小猪制作的DOS版《苍龙逐日》基本一致。
需要下载exe文件和DLL文件放到原目录。
需要kaiu.ttf和consola.ttf两个字体文件。

与原来版本的不同:

没有初始密码;
不能刷武功;
结尾动画不全;
战斗中某些公式与原版不一致;
无防御拐点的设置,所以初期可能比原版要难;
对修改器支持不好;
场景内动态效果有问题,所以屏蔽了;
无大地图飘云效果;
大地图少数贴图有错误;
可能存在未知的BUG;
可以使用鼠标,但是不推荐走路时使用;
可以使用mp3文件代替mid文件作为背景音乐;
可以升级到60;
我私自作了一张简单的图作为标题画面。

2008-5-25
升级时中毒和受伤清零;
更正万鳄岛战斗时跳出;
更正解毒时不显示数字;
更正AI在使用面攻击类武功的错误;
更正物品选单光标在选单外面的错误;
微调速度。

2008-5-27
更新抗毒效果;
更新了修改事件的效率;
重写RLE8绘制子程,从分别绘制改为对基本过程的封装;
用可变记录封装R属性,这可能会降低效率,因此可能会引发未知的bug;
可用FishEdit修改存档;
当名字为某个特殊字串时可获得全满的起始属性。

更正显示状态时防御与轻功顺序错误;
更正离队事件错误;
不再支持mid格式;
更正修炼药品的错误。

2008-5-28
更正大地图某些显示的错误;
更正抗毒过高时中毒值为负的错误;
更正已有此项武功时,可能不能修炼对应秘笈的错误;
更正自动战斗时增加武功级别的错误;
更正品德可能为负的错误;
大地图加入主角动作;
修正某些事件触发位置的错误*;
增加主角走动效果。

【*】:这个是原游戏本身的bug,在修改事件的时候如果修改了坐标,但是并不在当前场景,会导致S文件与D文件中记录的坐标位置不一致,而《苍龙逐日》恰好有数条语句满足这个条件,却导致了正确的结果。
在使用正确逻辑之后,却反而会使某些事件无法触发。

2008-5-30
分辨率改为640*440;
调整部分选单的显示位置;
增加开头和结局的字幕(均是作者原文)。

Font files.

DLL files.

Executable files.

 

image

image

image

image

Sunday, May 11, 2008

All Heros in Kam Yung's Story 复刻测试版


四川发生地震,呼吁大家关心此事。用行动支援我们的同胞。

游戏已经有两个复刻版,分别是SwimmingFish用VB和tianua用SDL制作的。但是现在这两个复刻版都存在着很多不足。其中最大的就是不能支持MOD以及没有继续发展的空间。

此次复刻的目的是用新的技术复刻整个游戏,在某些地方使用新的技术,并且提供对新指令的解释。

图像引擎:基本不会变化,但是文字的显示直接使用ttf字体。
音频引擎:添加对其他音频格式(主要是mp3文件)的支持。
事件系统:对原有指令和扩充指令基本完整复刻,少数难以实现的就不支持了。

下载地址:Click here.

需要合并场景贴图文件,不知道是什么的就到这里下载:http://swimmingfish.ys168.com/

我不清楚Google的空间是否有流量限制,如果你喜欢的话,欢迎提供转载和分流。但请保留SDL引擎的版权信息。

测试版已经完成大部分功能。还有一些与原版不同:

韦小宝去其他客栈这个事件我嫌麻烦,就让他一直呆在一个地方卖所有的物品。
少数复杂的动画暂时不支持。有些动画可能有贴图上的错误,主要是什么时候有主角,什么时候没主角我还没搞清楚怎么判断。
内场景的动态效果,主地图的飘云效果暂时不支持。
武林大会相关指令基本完成,但是判断是否放好天书这个指令我偷了懒,游戏能正常结束。
未设定需要自宫的物品。
公式和原版并不完全一致,主要是我比较懒。
可以使用鼠标,但是用鼠标走路不太方便。其实这种45度视角游戏并不适合用鼠标走路,但是选物品和战斗时会方便一点。
基本支持全部50指令,包括扩展战斗指令,不包括直接读写内存的两个指令。
敌人的AI很简单,基本是猛攻,我方的也一样。自动战斗的时候连点ESC可以回到手动状态。
背景音乐放弃了对原有格式的支持,改用MP3格式。把你喜欢的音乐放在游戏目录里面,命名为1.mp3,2.mp3……即可在游戏中作为背景音乐。
标题画面实际上是游戏目录下面的open.bmp文件,你可以自己编辑,但是注意给文字留出位置。
可能存在未知BUG,所以你的重要存档就不要用它了。

注意事项:

此复刻版使用SDL作为基本引擎,因此压缩包里面有很多SDL相关的DLL文件,有些可能是无用的。
默认使用的字体:中文是标楷体,英文是Consolas,压缩包里面已经包含了这些字体。文字的位置是特别对这两种字体优化的,可以换成其他字体,但是位置会有些问题。
使用effect.bin,leave.bin,levelup.bin,match.bin保存游戏中的列表。实际上是把z.dat中的对应部分复制了出来。这4个列表均对应原版。
输入姓名时请直接输入繁体中文。尽管游戏实际的内码是Unicode,但是存档文件中仍是Big5码,是没有简体中文字符的。
虽然有5个位置可以存储进度,但是一开始读取进度4、5会出错。你需要先把进度保存到这两个位置才能读取。

截图:

image

image

image

image

《笑梦游记》系统增强补丁


看状态能看到更多,可以显示物品的属性,伤害公式略有调整(可自行修改)。

仅能用于1.11版,置于游戏目录直接运行z1.exe即可,推荐使用dosbox。

可能有音效文件的bug,但不确定是否存在以及产生原因。

 

Click here.

Thursday, May 08, 2008

All Heros in KYS 复刻计划


计划是使用新的引擎复刻整个游戏,包含对新添加指令的支持。

贴图系统保留,增加对其他格式的支持;
音频系统重写;
战斗系统基本保留;
指令系统保留,可以扩充;
文字系统直接使用TTF格式。

这是对话的效果,使用的字体是标楷(好像英文标准名是DF-Kai,文件名是KaiU.ttf)。

image

Thursday, May 01, 2008

稀疏矩阵



从生成到计算,有很多无聊的记法。CG,GMRES都可以试试,但是没有一个效率高的。


Thursday, April 24, 2008

改变游戏中的字体

游戏里面用的字体文件有两个:font3.e16和font3.c16。第一个是128个ASCII字符,点阵大小为16*8;后一个为BIG5码的汉字,点阵大小为16*16。

使用工具可以将系统中的字体转为游戏可用的格式,但并不是所有字体都合适。一般字体在9pt时如果仍能够保持锐利,那么在游戏中就会有比较好的效果。最常见的这类字体就是细明体和宋体(楷体GB2312也可以,但是繁体字库不全),如果你知道其他适合的字体或者好的建议,欢迎告诉我们知道。

这个是更换了英文字体,英文字体最好是等宽的:

z_048

这个是把原来的细明体改小了一号:

z_050

这个是标楷体,效果很模糊:

z_043

这个是微软正黑,也不怎么样:

z_042

这里是我生成字库使用的工具和一个教程。

使用ts2.exe,选择字体,要选择台湾中文(Big5)。

clip_image002

调整好汉字的位置,然后高度改成32,把“上下”加上16。

clip_image004

点“生成”,即可生成点阵字库。

因软件是未注册版,所以每个字都会多出一个斜线,而使用32*16的尺寸可以使汉字刚好避开斜线。

clip_image006

使用这个程序会将字体上半部分去掉,生成font3.c16文件,可以直接用在游戏中。

这类工具的算法都很清楚,但这个软件注册费的性价比实在不怎么高,何况我只需要其中的一小部分,而不注册的话生成的字会有删除线,所以我想了一个办法避开删除线。

google的审查好严,居然禁止这个文件,可能是文件中含有木马。

Tuesday, April 22, 2008

多重循环的代码



像弯月一样。要是连续写几个,就像苏州的锦带桥。


Sunday, April 20, 2008

有关“插入事件改写系统”的碎语


这个post不是什么技术相关的,大概算是一个无聊碎语的集合。

我以前编写过一个新的伤害公式,那时是完全用十六进制代码写的,首先将汇编代码译成十六进制代码,call和jmp指令的地址还都要自己计算出来,非常麻烦也容易出错。

使用物品直接触发事件是谁最早提出来的已经搞不清楚了,最早跟我提这个的是Guest。战斗中调用事件其实也不知最早是谁的主意,总之用事件修改伤害公式也是很早之前就有人想过(但那时想怎么改,直接改汇编代码么?那样还是有很大限制的)。

用物品调用事件,就可以任意增加大地图事件了。那么自然就会想到,战斗中能不能调用事件?如果能的话,需要什么样的事件?

我看反汇编的代码时,发现有一个子程似乎是控制选择攻击目标的,这就是有了战斗指令的最早构思。最开始是想有一个选择目标的也许就够了,但后来越想越复杂。

最初只构思了法宝,后来发现也许只有法宝还是不够的,于是又增加了武功调用事件,这样有些功能就必须直接操作内存才能用,但是这时已经是战斗指令搞出来一个多月了。所以从0.10到0.20,指令没有增加,却有了非常大的变化。

后来所想的就是找许多适当的位置插入事件了,这样系统许多功能就完全可以自定,随作者的想法了。

不过我自己倒是没开放太多地方,z.dat文件里面的空间其实还有很多,插几十个事件还不成问题,但插在哪却要好好想一想。如果选的地方好可以事半功倍,选的地方糟糕就有可能没有效果甚至导致游戏功能出错。

无论如何,“插入事件”总算开了个花,希望能看到结果的那天。

Thursday, April 17, 2008

Vista SP1



看来不错。


Monday, April 14, 2008

扩展战斗指令0.20

因为目前对战斗的了解已经比刚开始计划战斗指令时深入得多,所以此次对战斗指令进行了大规模改写。

战斗指令的变化非常大:

28:这条指令用处不大,但暂时保留。
29:判定人物回合是否结束的方式有所改变。为简化武功事件增加可以跳过选择目标画面的选项(4.15)。
30:取人物R序号改为取人物战斗属性,可以获取更多的战斗属性。与原指令不兼容。
31:取人物敌友信息改为写人物战斗属性。原功能用30指令(偏移2)代替。此指令实际上在以前的版本中是错误的。

44:播放效果增强功能。
45:闪烁改为显示数字。
46:显示人物属性改为设定效果层。原功能需用49指令代替。
47:改变人物改为回复人物静止贴图。原功能用31指令(偏移0)代替。

49:不变。

此外对上个版本中插入事件导致战斗跳出的错误作了修正。添加了几个新的插入事件。
说明文档中的示例有些是较早时编写,所以某些位置可能并没使用新指令,而是直接写内存。在说明文档中附带了一个反噬效果的实现方案,可以作为增加状态效果的参考。

如果您已经开始利用原来的指令编写一些事件,那么我为此次更新对您造成的不便表示歉意。

此版本仍是测试版,主要是某些事件插入的最佳时机尚不完全确定。


4.16,增添载入进度预处理事件,测试时使用KG的改调色版指令基本成功。版本号未更改。

BattleKDEF0.20.zip

Friday, April 11, 2008

扩大队伍人数?

理论上可以把队伍的人数扩大一倍,就是把以前读字的语句改成读字节。

问题是人的名字可能没处放,战斗需要改得多些,不一定真的有用。

z_032

Sunday, April 06, 2008

反汇编z文件


我以前找到的反汇编结果可能是游泳的鱼最早注释的。

画面引擎,声音的部分基本是不可能修改的。文件后段有一大堆子程根本不知是什么鬼东西,有可能是编译器自己加上去的。

比较清晰的几个地方是:

  • 系统菜单;
  • 进入场景;
  • 事件系统;
  • 战斗系统。

这些其实也是大家最关心的几个地方,还有比较重要的是主角在大地图上行走的部分,但这个似乎没什么好改的。

Saturday, April 05, 2008

49号指令应用:“从队伍中选择一个队员”选单


下面的指令片段可以生成一个选择队员的选单,在制作新型装备的时候可以用到。


;Kdefnum=1023
50 0 0 2 0 0 0 0 ; 50(32):变量赋值 [X0]=2
数字2改成所需选单的样式,含义见下面
50 49 8336 2 0 1 0 0 ; 50(32):调用任意子程
50 48 0 1 0 0 0 0 ; 50(32):调试指令,显示变量 [X0] -- [X0]
0 ; 0(0)::空语句(清屏)
-1 ; -1(FFFF):事件结束

 

此事件直接调用游戏中22090子程,该子程有一个自变量,表示选单的样式:

0-医疗,1-解毒,2-状态,3-装备,4-修炼,5-使用,6-离队。

返回值为队伍内序号,范围是0~5,如按了esc键,返回值为-1。

如果需要一个通用的选单,建议将原版中“要谁离队”4个字改为“选择队友”,需要选择队友时即调用6号样式的选单。尽管真实的离队选单也会有相同变化,但不会产生误解。

49号指令应用:任意转换场景


目前转换场景多是用动态改写跳转口的方法。经测试,以下指令可以比较方便地改变场景,工作量小了许多。
这里没有改写大地图坐标和场景内坐标。


;Kdefnum=1022
  1 0 0 0                        ;  1(1):[xxx]说: 小兄弟,我们现在去桃花岛。
这句是对话指令,无关紧要。
  50 25 0 0 10590 29 75 0        ;  50(32):保存给定地址数据 [1D-295E+0]=75(Int)
75为桃花岛的编号,根据实际需求修改。
  50 25 0 1 -27969 2 195 0       ;  50(32):保存给定地址数据 [2-92BF+0]=195(Byte)
  50 49 -28218 2 0 1 0 0         ;  50(32):新指令,暂时没有解释
  50 25 0 1 -27969 2 233 0       ;  50(32):保存给定地址数据 [2-92BF+0]=233(Byte)
  0                              ;  0(0)::空语句(清屏)
  -1                             ;  -1(FFFF):事件结束

Thursday, April 03, 2008

修改对话框每行字数的源码

在对话框调整器里面有这个功能。对话框每行字数并不是由程序自身决定的,而是在对话文件中写的“*”决定换行的位置。

对话文件talk.grp和talk.idx的格式非常简单,talk.grp文件只要把全部内容按位取反就是Big5的明码,星号表示换行而0表示一条结束。talk.idx里面保存的是每条对话的长度,也可以认为是下一条的起始位置。

我在重整对话文件“*”位置时使用的是如下的方法。算法本身很简单,根据读入的第一个字节判断字符是否是Big5码里面的,这时需要把2个字节作为一个字符处理,idx文件就直接生成一个新的。

这个算法是用 Object Pascal 写的,一些不太关键的代码略去了,注意这里并没有先取反,而是直接操作的。

file0:=Fileopen(edit2.text,fmOpenread);
//file0用来打开原始的talk.grp文件

length:=Fileseek(file0,0,2);
filegrp:=filecreate('talk1.grp');
fileidx:=filecreate('talk1.idx');
i:=0;
fileseek(file0,0,0);
while i<length do
begin   
  fileread(file0,ch,1);
  i:=i+1;
  if (c=0) and (ch>=128) and (ch<>213) then
  begin
    filewrite(filegrp,ch,1);
    p:=p+1;
    x:=x+1;
    c:=0;
  end;
  //以上是对字符为标准ASCII字符的处理

if ch=213 then
  begin
  end;
  if (c=0) and (ch<127) and (ch>0) then
  begin
    filewrite(filegrp,ch,1);
    fileread(file0,ch,1);
    i:=i+1;
    filewrite(filegrp,ch,1);
    p:=p+1;
    x:=x+2;
  end;
  //以上是对Big5字符的处理

if (p>=p0) and (ch<>0) then
  begin
    p:=0;
    ch1:=213;
    Filewrite(filegrp,ch1,1);
    x:=x+1;
  end;
  //在适当位置添加星号

if (ch=0) then
  begin
    x:=x+1;
    filewrite(fileidx,x,4);
    Filewrite(filegrp,ch,1);
    p:=0;
  end;
  //重新编制索引

end;

有兴趣的朋友可以据此减少重复工作的时间。

Tuesday, April 01, 2008

物品调用事件


物品调用事件已经比较完美地实现了。除了物品功能本身之外,清屏指令和对话指令也要针对大地图重写。

那么用这个功能可以实现什么呢?来畅想一下!

  • 在罗盘上挂一个事件,可以画出地图缩略图,标出当前的位置。
  • 队友加入或离开时给一个信物,使用这个信物就可以直接呼唤队友加入,从此无需费神去找队友,制作队友加入离开事件时也会简单很多。
  • 在大地图上挖矿,打猎(南宫老师构思)。
  • 某些物品可以调用一段对话,相当于复杂的物品说明。
  • 特殊的秘笈修炼条件,特殊的药品性能。
  • 可以制作重排队伍的指令,相当于《轩辕剑伍》里面一些队友可以在后排休息?

还有什么主意?

在事件中取得当前物品编号似乎可以这样做:

x1=[54B74]*4
x2=[18FE2C+x1]

x2即物品编号,x1是物品在选单中的顺序号。
 

还有一些新的设想,比如在某些地方插一个事件,这样就可以用事件来改写某些系统功能。例如在计算伤害的地方插一个事件,并事先截获几个关键参数,就可以按自己的想法改写伤害公式了;比如截取攻击人物、使用的武功和防守人物,那么为特殊人物,特殊武功和特殊装备编写特殊伤害公式或特殊防守公式都是可能的,甚至能够让某些武功带有特殊攻击效果。

哪些地方值得插入事件需要考虑一番,做到修改器里面就比较困难了。

遥控车



100HK$的遥控车,郁闷和无聊的时候可以拿来消遣。



ykc


Monday, March 31, 2008

“系统增强”制作笔记

 

我把一些制作的要点整理出来,有兴趣的朋友可以做参考,也可以进一步加以修改。

 

1.升级算法

5B1F0开始是升级的相减处理,修改的方式与我以前发布的方法完全相同。

0005B1F0:  72 12                      JB      SHORT 0005B204
0005B1F2:  52                         PUSH    EDX
0005B1F3:  69D6 B6000000              IMUL    EDX,ESI,B6
0005B1F9:  8D48 01                    LEA     ECX,[EAX+1]
0005B1FC:  66:899A 6C010700           MOV     [EDX+7016C],BX
0005B203:  5A                         POP     EDX
0005B204:  C3                         RETN

2.伤害公式修改

下面是zz.ini里面的内容,从这些地方可以找到修改的地址。

[Hurt]

MinKnowledge = 391c4;  最低武学常识的地址,未改动。
Knowledge1 = 5b212;    我方武学常识地址,将代码移到5b210开始的位置改成标准乘法。
BaseAttack = 392ce;    攻击,未改动。
Magic = 5b553;         所使用武功,改成标准除法。
Energy1 = 5b55f;       内力,改成标准乘法。
Fist1 = 5b5a9;         拳掌。
Sword1 = 5b5be;        御剑。
Knife1 = 5b5d3;        耍刀。
Unusual1 = 5b5e8;      特殊。
Speed1 = 5b5fd;        轻功。

Knowledge2 = 5b222;    从这里开始是敌人的,基本差不多。
Energy2 = 5b250;
Fist2 = 5b265;
Sword2 = 5b27a;
Knife2 = 5b28f;
Unusual2 = 5b2a4;
Speed2 = 5b2b9;

Defence = 5b357;
Hurt1 = 5b1e2;         这个和下一个是总伤害的因子,改成标准乘法和除法。
Hurt2 = 5b1e4;

Random1 = 393b0;
Random2 = 393bc;

AddHurt = 393cd;
Random3 = 393dd;
Random4 = 393e9;

基本上我为了简单,将新添加的项写成了如下的形式:

0005B256:  66:83FF 01                 CMP     DI,1
0005B25A:  75 0F                      JNZ     SHORT 0005B26B
0005B25C:  0FBF81 FFFFFFFF            MOVSX   EAX,WORD PTR [ECX-1]
0005B263:  C1F8 01                    SAR     EAX,1
0005B266:  90                         NOP
0005B267:  90                         NOP
0005B268:  90                         NOP
0005B269:  03D0                       ADD     EDX,EAX

这个是防守方的拳掌相关的一部分。所有的新加项都是这样的。先设法取得武功的类型,再行比较。如果是类型1,则进行一些相关操作。如果某个加成与属性无关,就把jnz那句抹掉。 如果想屏蔽某一部分,就把jnz改为jmp。

上面写成FFFFFFFF并非真实的地址,这里的地址实际上由重定位表决定,写成这样是为了醒目。

3.物品选单

5B700开始是扩展物品选单用到的字符串,代码从5B7C0开始,开始是获取物品代码并绘制一个方框。由于刚开始考虑并不完善,实际上流程在其后的代码内部多次跳转。总共用了3个平行的循环显示3行数字,其后再显示了3行字符。

因为颜色是后添加的,所以流程多次去转到5B9F0处去确定颜色。同时多次用了pushad和popad处理现场。

4.状态选单

代码从5BA20开始,实际上用了两个循环和一个单独的显示字符函数。但是流程实际上是非常混乱的。因为这几个属性并不是连续存放并且实际上显示的顺序也不是由前到后的顺序,只能判断显示到第几个时进行跳转。

下面是显示那一排数字的代码,实际上在esi为7或1的时候,实际地址均有特殊的处理。

0005BA20:  60                         PUSHAD
0005BA21:  69DF B6000000              IMUL    EBX,EDI,B6
0005BA27:  81C3 6E002100              ADD     EBX,21006E
0005BA2D:  BE 08000000                MOV     ESI,8
0005BA32:  B9 16000000                MOV     ECX,16
0005BA37:  83FE 07                    CMP     ESI,7
0005BA3A:  75 03  &#1
60;                   JNZ     SHORT 0005BA3F
0005BA3C:  83C3 0A                    ADD     EBX,A
0005BA3F:  83FE 01                    CMP     ESI,1
0005BA42:  75 03                      JNZ     SHORT 0005BA47
0005BA44:  83EB 76                    SUB     EBX,76

0005BA47:  0FBF03                     MOVSX   EAX,WORD PTR [EBX]
0005BA4A:  60                         PUSHAD
0005BA4B:  50                         PUSH    EAX
0005BA4C:  68 FFFFFFFF                PUSH    -1
0005BA51:  68 FFFFFFFF                PUSH    -1
0005BA56:  E8 EF34FEFF                CALL    0003EF4A
0005BA5B:  83C4 0C                    ADD     ESP,C
0005BA5E:  61                         POPAD
0005BA5F:  60                         PUSHAD
0005BA60:  68 10000000                PUSH    10
0005BA65:  68 63660000                PUSH    6663
0005BA6A:  68 FFFFFFFF                PUSH    -1
0005BA6F:  68 FFFFFFFF                PUSH    -1
0005BA74:  51                         PUSH    ECX
0005BA75:  90                         NOP
0005BA76:  90                         NOP
0005BA77:  90                         NOP
0005BA78:  90                         NOP
0005BA79:  68 4E020000                PUSH    24E
0005BA7E:  E8 AF1DFEFF                CALL    0003D832
0005BA83:  83C4 18                    ADD     ESP,18
0005BA86:  61                         POPAD
0005BA87:  4E                         DEC     ESI
0005BA88:  83C1 11                    ADD     ECX,11
0005BA8B:  83C3 02                    ADD     EBX,2
0005BA8E:  83FE 00                    CMP     ESI,0
0005BA91:  75 A4                      JNZ     SHORT 0005BA37

这段汇编代码并不是一个好的例子,但它总算没有错误地完成了任务。直接修改代码费时费力,所以留下了一些空位,以及糟糕的地址处理方式。同上,代码中FFFFFFFF均是引用的地址,需要由重定位表确定。

5BB20开始是所需的一些字符。

5.其他

除了上面这些还有很多零碎的修改,比如四位数字的正常显示等。

 

下面是修改过程中添加的重定位项。

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

000189E0   07 10 FF 01 02 20 00 21  00 07 10 59 05 02 52 00   .... .!...Y..R.
000189F0   21 00 07 10 90 05 02 18  40 24 00 07 10 7F 05 02   !.......@$......
00018A00   7E 00 21 00 07 10 A3 05  02 64 00 21 00 07 10 B8   ~.!...?.d.!...?
00018A10   05 02 66 00 21 00 07 10  CD 05 02 68 00 21 00 07   ..f.!...?.h.!..
00018A20   10 E2 05 02 6A 00 21 00  07 10 4A 02 02 52 00 21   .?.j.!...J..R.!
00018A30   00 07 10 5F 02 02 64 00  21 00 07 10 74 02 02 66   ..._..d.!...t..f
00018A40   00 21 00 07 10 89 02 02  68 00 21 00 07 10 9E 02   .!...?.h.!...?
00018A50   02 6A 00 21 00 07 10 B3  02 02 58 00 21 00 07 10   .j.!...?.X.!...
00018A60   F7 05 02 58 00 21 00 07  10 0E 08 02 61 82 03 00   ?.X.!......a?.
00018A70   07 10 13 08 02 C4 07 1A  00 07 10 2A 08 02 00 00   .....?....*....
00018A80   25 00 07 10 2F 08 02 C4  07 1A 00 07 10 D2 07 02   %.../..?....?.
00018A90   C0 27 1B 00 07 10 DA 07  02 2C FE 16 00 07 10 E5   ?....?.,?...?
000
18AA0   07 02 00 00 23 00 07 10  6E 08 02 61 82 03 00 07   ....#...n..a?..
00018AB0   10 73 08 02 C4 07 1A 00  07 10 8A 08 02 00 00 25   .s..?....?...%
00018AC0   00 07 10 8F 08 02 C4 07  1A 00 07 10 CF 08 02 61   ......?....?.a
00018AD0   82 03 00 07 10 D4 08 02  C4 07 1A 00 07 10 EA 08   ?...?.?....?
00018AE0   02 00 00 25 00 07 10 EF  08 02 C4 07 1A 00 07 10   ...%...?.?....
00018AF0   2B 09 02 00 00 25 00 07  10 30 09 02 00 B7 03 00   +....%...0...?.
00018B00   07 10 5B 09 02 00 00 25  00 07 10 60 09 02 40 B7   ..[....%...`..@?
00018B10   03 00 07 10 8B 09 02 00  00 25 00 07 10 90 09 02   ....?...%......
00018B20   80 B7 03 00 07 10 C3 09  02 00 00 25 00 07 10 4D   €?...?...%...M
00018B30   0A 02 61 82 03 00 07 10  52 0A 02 C4 07 1A 00 07   ..a?...R..?...
00018B40   10 6B 0A 02 00 00 25 00  07 10 70 0A 02 C4 07 1A   .k....%...p..?.
00018B50   00 07 10 29 0A 02 62 00  21 00 07 10 9F 0A 02 00   ...)..b.!...?..
00018B60   00 25 00 07 10 A4 0A 02  20 BB 03 00 07 10 D6 0A   .%...?. ?...?
00018B70   02 00 00 25 00 07 10 C1  0A 02 29 BB 03 00         ...%...?.)?.

Friday, March 28, 2008

重定位表的作用

 

游戏的主程序文件z.dat实际上是一个线性可执行文件(LE),真实的扩展名应是exe。

重定位表用于标识可执行文件中与引用地址相关的语句。

在编译时,变量会被编译成地址,可以反汇编查看。但是代码段的地址位置通常只是形式上的,因为程序被载入内存时,究竟会被载入何处并不是确定的,所以代码段所写的地址通常跟真实的地址会差很远。在程序一开始,会依据重定位表,对代码段进行处理。

游戏主程序中的重定位表中的一项一般是这样的:

07 10 YY YY 02 XX XX XX XX

07 10 和 02 都是标志位,不同的标志位有不同的含义,游戏中只用了这一种。

重定位表一般是分段的,代码段中每 1000H 为一段,比如 20000H~20FFFH 的代码在重定位表中有单独一部分,而 21000H~21FFFH 又有另一部分。每一部分的开始位置写在重定位表的最前面,相当于索引。

在程序被载入时,一般可以这样理解:[段基址+YYYYH+程序实际载入的首地址]开始的4个字节会被替换成[XXXXXXXXH+程序实际载入的首地址]。

由于段基址是以 1000H 为一段的,所以 YYYYH 的最高位一般是0。

全部重定位项可以用一个应用程序 DUMPLX.EXE 导出。

我的描述仅仅是一个形象的说法,真正权威的解释和严格的格式定义可以从 LX 和 LE 格式的说明文档中找到。

Thursday, March 27, 2008

一些笔记

 

50指令的编写方式

1.保存现场。主要是ebx,edi,esi,ebp四个基本寄存器,eax和ecx均直接使用,不予保存。

2.从栈中提取参数。

2.处理标志位。方法是压入标志位位置标识,标志位,和参数。调用另一子程,返回标志位指定的数值或变量的值到eax。

3.指令功能。变量从内存120000H开始。有些是自编子程,完成某些系统功能的是引用原有的子程。

4.恢复现场,返回。

 

战场在内存中的保存方式

共3层:

第一层:26个人物数据。每个人物占据1CH字节,保存的数据主要有:人物战场id,人物实际id,敌友信息,坐标等。

第二层:效果信息。格式为40H*y+x+基址。在播放效果的时候会首先清空此层,之后根据所使用的招式重新对这一层的某些位置赋值为1,在播放效果的时候不为0的位置均会有效果。

第三层:保存整个战场信息。格式为(40H*y+x)*2+基址,每个位置占据一个字长,是战场上的人物信息,如对应位置有人,则是人物的战场id,如无人则是-1。

基址的位置在代码段和重定位表里面不同,需以重定位表中的值+20000H为准。

 

SwimmingFish未发现的

3B717H:人物最高等级。之前的修改器在30级之后一直不正常是因为漏了这个地址。

第二层战场信息的含义。

绘制背景矩形子程中第一个参数是透明度。对话框为4,其余大多为3。故对话框比其余很多框黑一些。

 

杂项

人物内场景坐标:1D295CH,1D295AH。

需要修改重定位表的有:属性引用,显示内存,直接用寄存器标示子程。

进入场景子程:28E40,参数一个,为场景编号,直接引用可进入某场景,如需切换场景则只引用部分。

游戏中使用的wav文件为11025bps,8bit,用其他软件生成的基本不能直接使用。

push会将字算术扩展为双字再入栈,提取时很可能已经不是原来的样子。需设法处理掉高位字的数据。

Thursday, March 13, 2008

改善对话框效果

我比较喜欢高分辨率的效果,前面很多显示补丁都和这个有关。目前可以说除了对话框能挪的都差不多了,还有几个小的字符串,比如进入场景的和战斗结束的,大概也无伤大雅。

这个补丁用于改善对话框的效果。增大了对话框大小和每页显示的字符数。

12个是对话框大小,对话框位置,头像位置,每个都对应不同情况下的4个值。因为头像大小固定,头像框大小就不用管了。至于每个数字控制什么,自己试一下吧。
注意对话框尺寸的y值不能超过127。
上面chinese charactors in 1 line 是一行中汉字的个数。

Pixels for 1 charartor in x (and y) axis 是一个汉字在x轴(和y轴)占的像素,如果是16和17就是原版的紧凑效果,想让汉字分开一些就把它们加大。

以下是两组不同的效果:

30, 102
16, 17, 4
512, 108, 512, 108
94, 17, 23, 336
23, 17, 546, 336

z_017

24,95
18,19,3
457,101,457,101
90,370,90,370
91,305,91,305

z1_004

Click here to download.

PTT版系统增强补丁

基本和“苍龙逐日”系统增强补丁内容是差不多的,但这次讲的详细些吧。

增强内容:

1、增强物品选单。在一页里显示72(6*12)个物品,同时在选单下方显示物品的详细属性。

2、增强人物状态选单。在一页里显示人物的全部属性,包括隐藏属性。

3、人物的属性值在1000以上时可以在状态、战斗、医疗中正常显示。

4、等级上限改为60级。使用了新的升级经验算法,可以正常升级。

5、使用新的伤害公式。内力,轻功,拳剑刀特均参与伤害计算。拳剑刀特4个属性仅在使用相应武功时有效,如御剑高的人用剑法伤害就会加强,同时对敌人的剑法防御也会加强。

6、增强医疗。

7、附带伤害公式编辑器,可以自己调整伤害公式和一些其他参数。

8、山洞场景里取消黑色遮盖。

一些细节说明:

1、PTT版里面许多属性是没有上限的。但这个补丁使用了0.72版的z.dat文件,取消上限比较麻烦,所以多数定为999。需要修改的请自己用Fishedit 0.72修改(至少我自己打通时还没到1000,但听说有把暗器练到几千的狂人)。

2、显示物品属性时,最后一行为秘笈或装备的要求,秘笈所需内力性质看数字的颜色。不过如果某个秘笈只要求阴性或阳性内力就看不到了,但这样的秘笈似乎没有。状态中还有中毒程度和受伤程度没显示。

3、修改器中有“空挥升级速度”和升级增加属性固定的修改。“空挥升级速度”越大,武功升级就越快,讨厌空挥的朋友可以试试。“升级增加属性固定”是在升级时加攻击防御轻功的值固定为资质所对应的最大值,在“苍龙逐日”中很多人问过类似的问题,但在PTT版里面这个大概没什么用。

4、由于PTT版很多地方比较夸张,级别升多点也没关系,所以解除了30级的限制。但注意敌人战斗后也会升级,所以你下次见到同一个人他可能会变强。

5、推荐使用dosbox运行游戏。

6、如果在使用时跳出并且报告缺少文件,可以自己先复制一个解决。出现类似问题请告知于我。

已知问题:

补丁与Fishedit 0.72基本兼容,但不要试图改回低分辨率。如果有些场景(主要是皇宫)有死角,可以暂时换回原来的z.dat。

我在编写新伤害公式的时候无意中占用了游泳的鱼为武器武功配合列表预留的一部分空间。目前来看不会导致bug,但是如果你需要自己增添这个列表,请不要超过30个。

Click here.

《再战江湖》系统增强

《再战江湖》是目前开放性最高的MOD,也是我最喜欢的。

这个补丁的内容与之前两个区别不大,是这个系列的最后一个,大概一段时间内不会再做。

请直接用z3.exe进入游戏(自己改成z.com或play.com或其他任何可执行文件名都可以)。

说明:

1、直接使用高分辨率。全属性密码正常,开始时正确显示主角躺在地上的图片,物品选单能够正常显示,所有属性的增加与原版一致。

2、取消山洞的遮盖,因为高分辨率时山洞遮盖效果不正常。

3、游戏中许多对话比较长,故附带对话框调整器,压缩包里的截图是我推荐的数值。不过《再战江湖》的对话文件并非talk.grp,而是zztt.ngm,所以可以先改文件名字,补丁后再改回去。另外注意主程序文件名不是z.dat。

4、其余请参考“PTT”版补丁的说明。

5、这个补丁中修正了物品数目超过32767后会出错的问题,如果物品数超过这个值之后就不再增加,之后就看着办吧。

已知问题:

1、我试过重新开始时品德指数总是很高,甚至有几次到了100,原因不明。

2、与liudu发布的修正补丁暂时不能兼容,因liudu修改了原版的一些内容。

感谢南宫老师同意放出本补丁。

感谢liudu协助测试。

Or click here to download.

《苍龙逐日》的系统增强补丁


08-01-25,Beta1:

征得原作者小小猪同意放出此补丁。

游戏数据没有任何修改,主要是物品选单上增加了显示物品的详细属性。同时附带伤害公式编辑器,可以自行调整伤害公式。修改器中添加了升级加属性固定的修改。
补丁中经验值的计算方法与原版不同(实际上补丁中的等级上限已经可以轻易取消),所以有些队友加入时经验可能过高。
需要修改进度请用fishedit0.72版。

这实际上可以算是最近制作的所有补丁在mod应用的一次集合和尝试。

08-01-26,Beta2:
秘笈需要内力性质可以显示,看最后一行数字的颜色。
显示人物隐藏属性。

08-01-26,Beta3:
隐藏属性漏了“抗毒”,补充上。

08-01-27,Beta4:
增加“生命增长”显示,修正一个字符串。
默认伤害公式略为修改。

08-01-27,Beta5:
修正队伍中有高武学常识角色时战斗跳出的错误。

08-01-28,Beta6:
选择初始属性可以看到资质,与原版一致。

08-01-29,Beta7:
进入游戏后即可正常查看物品菜单,无需黑屏。
在战斗时物品图像可以显示。
选择初始属性可以看到特殊。

不确定是否仍然有bug,使用时请多存档。

已知主要问题及修正记录:

1、刚进入游戏时物品选单不显示贴图,原因:主地图贴图个数未修改(Beta7中修正)。
2、在桃花岛打开机关时当机,原因不明。自己复制一个wav文件改名为atk36.wav可解决。
3、在选择性情节中,显示的字符串是“是否住宿”(Beta4中修正)。
4、队伍中如有高武学常识角色战斗时会跳出(Beta5中修正)。
5、战斗时物品贴图不显示,原因:初始内存未修改(Beta7中修正)。

Click here to download the Beta 7.

Tuesday, February 05, 2008

新年快乐


 


主题颜色改了一下,配合一下气氛。


这是新的模型照片,造型不是我摆的。



P1310057


Monday, January 28, 2008

This site.

 

This site is hard to visit in China Mainland. So I left it for a long time.

Post what?

Friday, January 04, 2008

玩具照片


 


这年头无聊的人还真多。。。


黑的那个是捡到的,缺了手,另一个无聊的人把这两个重新组装了一下。



P1020035
 P1030037


Wednesday, January 02, 2008

圣诞和新年


 


圣诞和新年总是连在一起。


近几年的这些时候,我在做些什么?


记忆是容易变淡的。


 


PS:花5块钱买了个高达的扭蛋玩具,居然有人说我白痴。


Head Image

ha2 q2 cy1 sz2 zy3cr3