找回密码
 点一下
查看: 15141|回复: 427

好吧既然如此我就说些故事。

[复制链接]
发表于 2009-11-1 18:35:32 | 显示全部楼层 |阅读模式
头目很少说GA以前的事情,此前无聊写过一个GA简史也坑了。主要就是我觉得缅怀过去的辉煌对GA未来的发展没有意义,所以在过去这几年虽然经历过的事件比起许多人一辈子经历的都要多,但是仔细想想也没什么非得讲出来公之于众不可。

既然今天有这个时间,偶尔也说说故事。虽然这部分比起整个GA故事来说只是沧海一粟而已。

何况我自己都完全已经记不清楚了。毕竟都已经过了都快8年了,从02年2月开始算的话。。


几乎在GA呆过一两天的人都知道我是头目,但是你们要知道我不是第一个头目。头目之前还有头目。当然我不是中途加入的,自从GA在的时候我就在了,不过那时候我一直潜水。

如果你看过那坑掉的GA简史就该知道,第一任头目是hare613,是个很废的家伙,比起某A相比可说是废的地方各有千秋。当然当时没有头目这个说法,你可以叫他哈瑞尔大帝、兔特勒、等等。哈瑞尔是音译,兔特勒是因为他崇拜希特勒,头像又是个兔子。(可以想见,最初GA的独裁方式是,元首万碎。)当然他最广为人知的名称是“老兔子”。

至于GA的前身可追溯到98年的popman云云的这些我就不多废话了。反正我们就以02年2月GA成立开始算,当时war3的正式版都没出呢。GA硬是拿着war3的没编辑器的beta硬是搞出了一大堆东西来。(当时beta版的时候其实还可以通过misc.txt来修改默认的鼠标滚轮和键盘镜头方式的。到了正式版反而不行了。)


说起那时候的艰苦么,我显然不是在跟你们玩忆苦思甜。不过下一代地图编辑器的研究者们上手银河编辑器肯定要比当初我们研究地图编辑器容易多了。(这要很大程度上感谢DOTA的盛行呢。)

为什么?因为当时的BLZ没有对地图编辑器进行任何技术支持。其实如果现在你们去看那啥地图编辑器的最终用户许可协议,那么这一条款是写的清清楚楚的。

我加入GA倒不是因为WE,当初98年SC出编辑器的时候我就迷上了。(其实是当年硬盘上游戏太少。sc对战又玩不好,没有网络。于是无聊整起这个)后来听说要出war3,编辑器更好云云……运气正好当时网上找到了War3CN这个网站。当时war3还在beta。那时候war3CN一批人决定成立GA的时候我正好经历到。

对,最初的GA是个附庸来着,从一开始就是War3CN的附庸。后来怎么辗转的我就不废话了。以后有机会再讲。

GA是全国第一家开始弄地图编辑器的网站组织。别说是全国了,说全世界问题也不大,你觉得老外的wc3c怎样?他们比我们都晚了一年。

所以,当时那一批人是怎么研究的呢?他们大部分人连起码的编程知识也没有,纯粹盲人摸象地在搞这个玩意儿。翻译教程?开玩笑,得有东西好翻译才行啊,你们现在装TFT也许还有个帮助文件,里面稍微提到了一点点单位编辑器的用法(这也是BLZ至今为止唯一一个所谓的技术支持),当时连这个都没有。

我呢,由于一开始摸过SC的编辑器,有一些基础,但是一直潜水。当时比较强力的几个有wakeman、唐三藏、zeg、老兔子自己。有sc编辑器基础所以也有优势。

因此你们要知道,现在你们在GA学到的那些简单的基础知识,是最初的那些人花了多少精力和时间才搞出来的。



当时我发现里头有一个超无聊的家伙。叫Danexx,这家伙拜唐三藏为师。我怎么得出“超无聊的家伙”这样的印象的呢?

因为他老是发一些很弱智的发现(因为当时我有SC编辑器的基础,所以自视甚高)。不过最土的一次他发表了类似这样的文章:“新的好主意!减少技能冷却时间的方法!我们可以给单位两个闪电链,这样就可以交替使用啦哈哈!”然后下面一大片致谢声。

我当时就想这家伙真是渣透了,那些附和他的人也一样。为什么?因为现在大家都知道的一个常识:两个相同技能放一起是不能分别使用的。

也许你会想“直接设它的CD就好了阿!”不过我得告诉你。ROC根本没有技能编辑器,连定义技能的SLK都没有,整个编辑器只包含四个模块:地图视图(就是放兵放单位整地形那个)、单位编辑器、触发编辑器、声音编辑器。什么战役AI平衡性技能buff升级都没有。意思是说,当时别说不能改技能了,连英雄等级上限都改不了。所以你现在去看当初的地图就会发现:最多就10级。

所以当时那个Danexx有这样的想法其实并不奇怪,只是他犯了很大的错误,就是没去实践就来胡扯。

这个无聊的家伙后来成了GA的第二任头目。他有很多名字。1、蛋叉叉,因为Danexx=Dane+XX。2、蛋叉,也就是前面的省略。3、OXX,因为蛋可以省略为O。4、OX,同理。他还有很多其他名字,很多来自于他的马甲,在有番茄之前他是GA马甲最多的人(不过我当时的马甲的隐蔽性却是GA历史上最强的)但是最有名的那个是:大魔王。在那个时代,GA分裂为邪恶的魔王军和正义勇者老兔子军,争夺GA的世界。哦,对了,我是魔王军的。因为后来我发现,这个无聊的家伙成长为了史上最好的GA头目和GA研究员。享有着许多技术的世界第一。


关于战争的故事以后再讲。回到WE上来。

第一大突破是什么呢?MPQ文件格式。

你觉得MPQ格式是BLZ开放给我们的么?才怪,迄今为止,BLZ依然宣布对MPQ文件进行解析是不合法的,是违反数字千年版权协议和暴雪游戏最终用户许可协议的数据挖掘行为。想必大家都已经不知不觉地违法了吧?

想象一下,如今的地图编辑器界,要是没有MPQ工具,你能走到哪里?哦,忘了说了,当时的编辑器里连“导入管理器”这玩意儿都么有。也没有arttools(war3模型制作工具)

当然,对MPQ格式的破解并不是从War3才开始的,MPQ2K这个工具,最初是以SC的MPQ格式为目标开发的命令行式MPQ解压工具。当然,对War3的支持非常之差,还动不动崩溃。要导出一个东西至少需要尝试半小时。最糟糕的是,极容易对MPQ本身造成破坏。当时电脑多慢,硬盘多小,为了操作这样一个东西就得多备份几个war3.mpq这种大块头。

当初呢,你在地图里用这个mpq2k放入文件,大部分不能很好地覆盖war3本身的文件。所以很多现在可行的东西,当时非得做MOD才行(也就是直接修改MPQ)。

我当时用那个MPQ2K做了“可超过10级的英雄”的MOD。反响还不错。因为实际上当时虽然很多人在MPQ里找到了定义英雄等级上限的定义文件。但是他们发现,就算改了那个,当英雄到达10级以后,立刻会跳到最高等级。所以公认为不可行。不过我后来发现除了改等级上限以外,还需要定义10级以后的经验需求表才行。之前因为没有定义,所以默认每级为0,故而到了10级后直接跳到MAX了。


当时修改游戏内部文件也只能改得一部分。除外部分只能修改游戏本身。不过我不会汇编,无法进一步修改。当时的EP老大做的八种族补丁就是直接修改了游戏本身后的一大高级MOD(后来竟然在国内被当成是老外做的。)


第二个突破自然是,JASS

当时可没有“将触发器转成自定义脚本”这玩意儿,也没有“自定义脚本”的动作。JASS的发现完全要归功于MPQ格式的破解。

虽然当时么有教程,但是好在这东西语法很容易捉摸,靠着Common.j和Blizzard.j和War3map.j这些东西,还是连猜带蒙地发展出了一套体系。实际上,当时连JASS这个名字是否是这个脚本语言的实际名字都不知道。(这一点直到08年底才由暴雪所证实确认。)

但是当时由于只能直接往war3map.j里写东西,但是又很容易破坏文件,所以JASS发展得还是很麻烦。

直到TFT出来以后才有所改观。


不过呢,暴雪由于从来没有打算开放handle和integer之间的转换,因此当时的Return Bug的发现,确实是非常划时代的可归为第三大突破的东西。

现在很多新人学习jass的时候一并会学到Return Bug,简直都以为RG是JASS的一部分。实际上这个东西毫无疑问的是个BUG。当时暴雪原打算修正。但是当时全世界的WEER们联合起来请愿,于是暴雪也就乐得不用修正了。(直到现在出了大漏洞才动,毕竟BLZ要修改那玩意儿实在要动到war3的一些根本性问题)


关于魔法书

自从TFT后,地图编辑器相对ROC有了极大的飞跃。还有许多新的技能可以研究,比如这个魔法书。现在这东西也是地图中常用的东西之一,有了这个东西,英雄可以塞很多技能了。然后至于如何改变魔法书里和物品里的技能的等级的方法,这个在当时还是我首创的(包括动态添加删除魔法书、物品里技能)。但是用它来隐藏被动技能是Danexx的创意。而且,叔叔还发明了将其和工程升级混用,让魔法书里的技能变得可以学习的方法。


关于位标识技术和商店法。

位标识技术这个是Danexx叔叔首创的。而这个技术的名字却是wc3c的老外起的。简单地说就是某个版本以后,添加技能动作无法添加重复的技能了。于是叔叔首创了位标识技术,即用2进制位来自定义攻击、防御加成。不过为什么是2进制而不是其他进制呢?因为当时还没有函数可以让你改变技能的等级。所以触发器添加的技能只能有2个状态:存在于单位身上,等级为1/不存在于单位身上。在如今这个时代,由于可以用触发器改变技能等级,所以可以做几个有一定等级的技能来组合。然后至于那个商店法,则是我搞出来的。


工程升级

我记得很清楚,1.15版加入了新英雄地精工匠。这个英雄本身不去管它。但是它提供了工程升级这个技能。WEER们一开始以为它可以随意替换技能,但是结果证明它无法修改技能的内核,结果只能改变技能的数据,无法真正做到替换技能。让大家很是气馁。这时候伟大的叔叔再次登场。他发现虽然不可以直接替换已存在的技能,但这个技能同样可影响未被学习的技能。未被学习的技能由于不存在于单位身上,因此学习以后就会实际地变成替换后的技能。于是终于,又一大难题被解决:如何在游戏进行时动态地变更英雄可学习的英雄技能?以此为基础,当时GA的高达制作了史上第一张可以买英雄技能的3c地图。


OrderId

这玩意儿倒是我首创的。虽然当时已经有发布OrderId的函数,但是没人知道这个OrderId的参数是干啥的。我当时尝试了将GetIssuedOrderId()来I2S,然后将它们作为参数填入IssueTargetOrderById,成功了。当时搞出了852002-852007命令来转移物品的物品栏位置。而在之前,要改变物品位置只能通过丢弃物品>塞占位物品>拾取物品的方式来实现。另外还有使用指定物品栏的物品,还有851973的击晕事件判断等等。


吃饭去了,以后想到再接。。。。。。。。反正那么多年的故事,怎么都讲不完。主要还是考验我记性的问题。
发表于 2009-11-1 19:03:08 | 显示全部楼层
慢慢看完了。收藏等待更新。
很多在老帖里面看到的名字和没听过的名字阿,有趣的故事恩恩。然后好像很沧桑的感觉……
额。
回复

使用道具 举报

发表于 2009-11-1 19:17:01 | 显示全部楼层
哦我们坐在高高的骨堆旁边。听头目讲。那过去的事情。
回复

使用道具 举报

发表于 2009-11-1 19:27:37 | 显示全部楼层
科技在进步嘛。
很久以前点泄露还要用J,现在UI一出T就解决了,省了不少心。(以前特地TXT记录了玻璃渣教学地图万圣节3C里的一些JASS代码,现在全都不需要了……)

可惜深入研究WE的人越来越少,于是新闻也越来越少……
希望SC2可以唤起无数长眠之人。
回复

使用道具 举报

发表于 2009-11-1 19:28:58 | 显示全部楼层
挺有趣,话说我的jass都是自己摸爬滚打看书学的。。

早些年的时候偶可是连T都用的不熟练滴,但是就是没问过任何人关于触发器的问题。。。当年还用特别傻逼的触发器嵌套方式写东西

当年是搬着一本u9上搜索来的JassAll(其实是GA某人整理的)的API手册看呀看的就学会了。
回复

使用道具 举报

发表于 2009-11-1 19:29:19 | 显示全部楼层
引用第1楼alexries于2009-11-01 19:03发表的  :
慢慢看完了。收藏等待更新。
很多在老帖里面看到的名字和没听过的名字阿,有趣的故事恩恩。然后好像很沧桑的感觉……
额。
无数人放弃了WE,因为工作,学习,生活什么的。
头目没有放弃吖!

头目赛高!
回复

使用道具 举报

 楼主| 发表于 2009-11-1 19:30:51 | 显示全部楼层
引用第3楼『四褲全輸』于2009-11-01 19:27发表的  :
科技在进步嘛。
很久以前点泄露还要用J,现在UI一出T就解决了,省了不少心。(以前特地TXT记录了玻璃渣教学地图万圣节3C里的一些JASS代码,现在全都不需要了……)

可惜深入研究WE的人越来越少,于是新闻也越来越少……
希望SC2可以唤起无数长眠之人。


说起UI,知道史上第一个地图编辑器触发器强化UI的作者是谁么?

还是Danexx叔叔。

当时那个WE就叫DWE,Danexx World Editor之意。

现在知道DDWE为啥叫DDWE了吧?第一个D是代表我自己。
回复

使用道具 举报

发表于 2009-11-1 19:33:34 | 显示全部楼层
头目万岁~
回复

使用道具 举报

发表于 2009-11-1 19:33:42 | 显示全部楼层
其实偶一直觉得RTBug里面的H2I就是合法的
回复

使用道具 举报

发表于 2009-11-1 19:40:12 | 显示全部楼层
JassALL不是前几天诈尸来发了个外挂的家伙弄的嘛~
DDWE的第一个D为啥是代表头目呢……难道是da'mai的意思……
回复

使用道具 举报

发表于 2009-11-1 19:40:12 | 显示全部楼层
那年我八岁……
正在废寝忘食的玩家用机 - 小霸王&土星……
所以前来膜拜头目大人。
回复

使用道具 举报

 楼主| 发表于 2009-11-1 19:42:19 | 显示全部楼层
Return Bug原理其实是这样的。

是jass检测器的一个很傻的语法check所导致的。但是其实倒也不能这么说,因为如果一开始MPQ格式没有被破解,JASS根本不能被我们用到。因此当时Check做的很粗心也很正常。



function H2I takes handle h returns integer
return h
return 0
endfunction

这样的写法为何能成立呢?因为高人们发现,jass语法解释器只会去判断函数的最后一个return的返回类型。如果和声明的返回类型一样就通过检测…………

所以,在函数体内的其他Return无论返回什么类型它都一概不管。于是,这个双Return的原理就是,当返回h的时候,函数已经退出了,不会再执行下面一步(返回0),但是同时,由于它的最后一个Return返回的0是integer型的,所以语法检测器认为这个函数是返回integer的,和声明的一致,认定这个函数没有语法错误,放行。于是这个很傻的语法检测早就了强大的Return Bug……
回复

使用道具 举报

发表于 2009-11-1 19:43:18 | 显示全部楼层
我来这里的目的 是为了看这里的小东西的    我是被小蛇 勾引过来的
回复

使用道具 举报

发表于 2009-11-1 19:43:50 | 显示全部楼层

回 9楼(alexries) 的帖子

Doramed
回复

使用道具 举报

发表于 2009-11-1 19:50:30 | 显示全部楼层
我这一辈子WE最大的研究就是竟然有地图编辑器可以用。
回复

使用道具 举报

发表于 2009-11-1 19:51:12 | 显示全部楼层
原来7岁时候就玩SC了……不过只会用无敌虐电脑。然后打开过sc的编辑器,全英文对7岁的小孩子是不是要求太高了恩恩。
当时玩了不久就想放弃了,毕竟是全英文的。后来买了个奥美的正版里面有H化包的。于是就高兴地调了无敌玩起战役。
因为当时对网络完全没有概念(我家92年就有电脑了。但是在06年才上网。)所以就根本没有体验bn啥的,更不用说前阵子才知道奥美复制cdkey的事儿(孤陋寡闻,奥美关门时候才看别人总结时候看到的)。
然后W3也是刚出来就玩了。而且也是本着收藏的想法买了正版。然后也是调无敌虐电脑。而这次就完全没有尝试打开WE。
然后在初三毕业开始接触WE,开始是想改creep来做个图纪念我的朋友。然后就开始接触u9,潜水一段时间之后听说了wow8,再潜水一段时间听说了ga,然后再潜水了一段时间突然很空虚,于是开始灌水
回复

使用道具 举报

发表于 2009-11-1 19:54:17 | 显示全部楼层
阿呀呀~头目跑题。讲故事变成讲技术了……
回复

使用道具 举报

发表于 2009-11-1 19:57:51 | 显示全部楼层
当时用蹩脚的XX快译玩SE,把“Trigger”翻译成“扳机”~~~ 印象深刻,那个时候没上网,于是天天在家做虫族女王和人类幽灵兵、神族暗黑圣堂的三角恋RPG...
回复

使用道具 举报

发表于 2009-11-1 20:00:48 | 显示全部楼层
好吧觉得H2I是合法的理由是因为偶是学C的
回复

使用道具 举报

发表于 2009-11-1 20:02:58 | 显示全部楼层
玩这个其实我也不是什么都没有弄呢
原来做出两边各自几十个大和战舰对轰,这就是我在se上最大成就。然后炫耀给表哥看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-9-29 01:22 , Processed in 0.050048 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表