前言:

为什么学Zinc:

学Zinc的动机应该与Vjass是大同小异的,关于这点,请参考老虎的Vjass教程前言,在读完该前言并且做出深刻体会之前,看本教程是没有任何意义的.

首先,作为一个WEer,为什么要学习Jass,Vjass,Zinc这些看似高端的语法呢?我在这里可以先告诉你们Jass,Vjass,Zinc都不是作图必要掌握的东西,WE(World Editor)已经提供的很好的GUI编辑器(Trigger-触发器编辑器),这个编辑器已经能够满足我们99%的需求了.特别是近段时间everguo等人推出的YDWE又把许多Jass编辑后的功能加入到了GUI编辑器中,现在大家对Jass,Vjass,Zinc的需求又更进一步的下降了.作为一个WEer我们还有什么理由去学习这些看似高端的语言呢?我要给大家说两点,大家请不要轻视这两点的重要性,认真的思考,自己到底应该做一个什么样的WEer.

从上面的第一点,我说了两种类型的WEer.第一种WEer可以从WE里获得的是,游戏规则的制订,数据的搭配,关卡流程的设计这些知识,这些正是游戏策划人所需要的基本知识,如果你想做一个游戏制作人,可以从这里获得很多很多.我推荐你们把自己的想法写下来.总结自己能够获得更多一倍的提高.你可以略微的学习尝试一下Jass,Vjass和Zinc因为在将来的工作中,你需要程序员的思路,而Jass,Vjass,Zinc与其他的语言也有共同之处,如果有兴趣掌握的话,对将来做一个游戏制作人会感到得心应手.第二类人,比较倾向技术性,应该深度的学习Jass,Vjass,Zinc,因为他们接触的更多的使技术,所以他们可能想做的并不一定是游戏制作者,而是一个高超的技术工作人员,这类人并不一定去做游戏制作人,而可能从事编程,开发之类的工作.Jass,Vjass,Zinc可以让他们在当前的兴趣上更加方便和熟练的学习其他的程序语言.而这其实对于开发人员来说也是很有价值的一件事情,因为你在不断的探索上,对语言了解相当深入,熟练,并且可以当做实际项目来做,对理解其他程序语言有很大的帮助.不是单在学校上学就能达到的高度.而你们也是会在未来超越WE,去做更大的项目,更难的项目.

(Vjass系列教程第一版【TigerCN】, Warft_TigerCN, 休_休, 馄饨, 疯人&衰人, Aeris, 2010-01-05)

Zinc简介:

Zinc是基于Vjass发展而来的更加像c语言的一种Jass语法,由Vexorian开发.

现在比较完善的Zinc资料,我只能说有一个比较好的语法手册,那么就是Vexorian的原版Zinc Manual,至于中文的Zinc资料,大多数都是翻译的这个文件.

由于本人观察到论坛的一些朋友有需求,本人决定写一个Zinc教程,基于Zinc语法,附带介绍一些Vjass,并且重点将实践,而不是干巴巴的语法.

所以,说这个东西是个Zinc教程,倒不如说是Vjass功能介绍,因为Zinc本来就是c语言风格化的Vjass而已,本教程将以一些大家经常纠结的演示,用Zinc写出来,并且介绍一些有用的库.然后会由浅至深地讲解,从如何写一段Zinc代码到内部实现原理.

作者介绍:

本人一介学生,有些东西学的也不扎实,也就是传说中的半吊子,如果在阅读中有发现疑问,我会尽力去帮助解决.

小弟不才,虽然06年就接触WE,但是仅限于改改别人图里面的英雄名字,或者是做一些类似,很多金矿,怪物很强,很多宝物的对战地图.直到07年底.

那时我玩了一张RPG地图,是WOW背景的,由于本人自身就对WOW有很高的热忱,毅然决定开始做一些WOW里面的东西,最开始只是拿T随便做做,期间也会做一些暗黑2的技能啊什么的,后来开始慢慢遇到一些比较难做的东西,比如额外伤害,但是当时一看到JASS就吓跑了.

08年底,决定开始做一张WOW里面的职业VS暗黑2里面的7英雄的竞技场地图,然后开始在GA,WOW8,飞飞,u9等论坛开始活动.下载了上十G的教程,模型,纹理等等等.09年春季,由于种种原因地图流产.

09年中旬,决定做WOW-TBC的祖阿曼,最开始写了12个触发来实现冲锋的多人,过了一段时间发觉这样下去不是个事,然后又要写仇恨系统,需要对数组排序,这个东西用GUI做起来必然很蛋疼,然后开始接触一些JASS的简单语法,比如循环,比如函数,然后觉得有点那个意思,然后就开始看各种Jass教程,直到看到一个RB-GC-TIMER三剑客的教程,恍然大悟,本人正式走上了渣死之路.这里要感谢Everguo的Jass培训班教程,给了我不少帮助.

地图做到09年底,开始发现一些非常模型化的东西,用Jass写起来甚是麻烦,并且由天之涯华引荐进入了以前老虎的群,并很荣幸地认识了老虎,然后我一厢情愿地称之为师傅.在接下来的几个月内,师傅不停地向我灌输Vjass知识,让我学Vjass,开始看了Aeris的Vjass教程,里面是大量的面向对象编程思想,以及对于当时的我来说Vjass高深莫测的语法,于是不以为然,后来老虎也出了Vjass教程,无聊之时一看,发现了一个叫TimerUtils的库,发现计时器原来可以这样绑定数据,10年初,我正式堕落入了Vjasser的行列.

然后后来又被老虎怂恿使用Cjass,10年底又拿着Cjass去wc3c提问结果被告知Cjass在当时有一些未修复Bug,并且那个论坛不支持Cjass,然后在Bribe的推荐下,我又开始使用Zinc.

关于Vjass, Zinc, Cjass

然而,话说回来,无论Zinc还是Cjass,都是基于Vjass的语法发展而来的,Vjass本身就是一个提供了面向对象编程方式的Jass而已,其解析速度自然比Jass要慢,执行起来往往会比Jass要占用更多的空间,并且如果导入大量的库的话,代码尺寸也会膨胀到一个可观的数字(特别是wc3 1.20那种每个字节都要计算好的版本).

并且现在有了YDWE这么好的工具,逆天存储及其方便易用,中心计时器的效率秒杀一切计时器算法.

那么,Vjass以及其派生物Zinc等的存在意义又是什么?

适合人群:

将学习到的:

关于本教程

本教程将通过大量的代码以及详细的注解,带领读者由浅至深地认识Zinc,以及其基本工作原理.

每一章节将会附带演示地图,使用的WE是YDWE1.21修正版,使用该WE的主要目的是为了方便论坛的朋友们,以及对该WE做推广,并且这个WE也是笔者自从不使用NewGen以后一直使用的WE,将它介绍给大家,并无害处.

有些章节末尾附带的库文件,格式为txt,如果点击以后浏览器自动将其打开,读者可以右键点击该链接然后选择链接另存为.

如果对本教程或者是内容有任何疑问,请在该教程原帖留言,或者是发送电子邮件(yatyricky@gmail.com)给作者.

总结:

那么,各位准备好了吗?开始Zinc之旅吧.不过,在开始之前,还是要严肃地提醒大家一句,也是老虎,Everguo等人数度提出的问题,学这些东西,最终目的是做图.并且学Vjass以及其派生物的主要好处是方便维护代码,如果读者是图做完就扔一边开始下一张,或者是自己觉得可以很好地管理自己做出来的东西,那么,Vjass等对读者也不是那么有必要,总之,请读者自己权衡吧.

第一章:万恶的冲锋>>

致谢:

Vexorian

没有他,就没有JassHelper, Vjass, Zinc这些工具以及语法.

YDWE制作组(everguo, wataloo, Aeris, Warft_TigerCN, Fetrix_sai, actboy168)

他们创造了我到目前为止见过最好的中文WE - YDWE.当然,我正在使用这个WE.

月协论坛

可以说这个论坛给我的帮助比WOW8要大,可能是因为人少吧,在WOW8我总是一不小心就被无视掉了.

WOW8论坛

笔者最早接触的WE论坛之一,第一个开始认真学习WE而常驻的论坛.

月协论坛水民

是他们给了我动力写这篇教程.

Warft_TigerCN等

他们编写的Vjass系列教程第一版【TigerCN】让我走上了Vjass之路.并且休_休的序言是每一个想学Jass, Vjass, Cjass, Zinc的人都应该思考的问题.

fc2 website

该网站提供了免费了网站服务器,以供该教程实现互联网共享.

inserted by FC2 system