魔兽争霸分辨率问题编辑器问题!

魔兽地图编辑器问题!!_百度知道
魔兽地图编辑器问题!!
刚编了个地图,所有的都已经完工,只差那么一点了,就是载入小地图怎么改变画面?就是真三国无双上的那个图片怎么加上去的?再详细点说就是在浩方上键个房间,别人还没进来时看到的那张图片,在哪设置啊?-----------------------------------有了好的答案必然重谢!!!!!!!!QQ:
提问者采纳
这个问题已经解决了,下面是我(熊猫X酒仙)写的图文方法。
提问者评价
不错啊,很详细,还有转换器,解决了困扰我多日的问题,熊猫怎么还没百度知道啊,看来知道里高手多.
其他类似问题
魔兽地图编辑器的相关知识
按默认排序
其他7条回答
你先去找一个,War3ModelEditor.exe的工具,(U9啊TBSWE都有额~)==========================================================预览中的地图(就是进房间看到的那个小图):先把你的图片裁切到256x256的大小,修改格式为.tag格式(用ACDSee),然后用工具把他转换成.blp的格式.之后导入到编辑器里,把2个文件名改成war3mappreview.blp(.tga)就好了=======================================================Loading图:准备一张图片,用那个工具导入,生成一张.blp
然后保存,名字改成.mdx(原来是mdl的)导入~把MDX的文件名改成LoadingScreen.mdx
.BLP的只要把前面路径去掉好了,名字不用改~再打开载入画面设置,选LoadingScreen.mdx这个文件,就好了。
怎么修改游戏读取时显示的小地图图片啊?A:1] 先做好你希望显示的小地图图片,格式要求不用,尺寸为 256x256。2] 然后使用 BLP转换精灵工具() 转换成 BLP 格式。3] 用 WE 开启地图,打开 IMPORT MANAGER(F12) ~~将图片导入。4] 如果希望图片仅在读取事有效,则重命名为 WAR3MAPPREVIEW.BLP 。5] 如果希望覆盖掉游戏中的小地图,则重命名为 WAR3MAPMAP.BLP 。
先更改脚本,再重新下载一个补丁(随便哪种),之后重新打开,再随意改动一处——保存——关闭——打开。之后应该就可以了,不过具体的方法我也说不清,还是上官方网或者重新下载一个编辑器。
总结了Hockheim和cah021的方法,现在以图文的方式展示给大家。
两位的方法都是可行的,可根据喜好选择自己的方法。
首先,拿出一张可以当做预览的图片。
然后用Photoshop(照相用的美工工具)处理成256x256象素的图片,并以WAR3MAPPREVIEW为文件名保存为tga格式。
导入该文件。
修改路径。
点击确定,保存地图,使用WC3打开,即可看到效果,以上为Hockheim朋友的方法。
cah021的方法和Hockheim的差不多,只要使用BLP转换工具即可,将WAR3MAPPREVIEW.tga转换为BLP格式,导入并修改路径即可。
这个比较难讲加QQ我给你弄好
新手做图入门指导教程〔第一章〕 前言: 现在有很多玩家都对WE有着浓厚的兴趣,而且都想能创作出自己的魔兽地图,虽然在论坛里也有很多相关的讨论贴,但是大部份都是针对一些对WE有一定了解的玩家所做的,而对于刚刚起步并才开始弄WE的玩家则没有一些基本的教程或讨论贴,所以,在此,本人决定以自己学习WE及做图的经验与心得写一个面向初识WE玩家的地图制作指导教程,希望对各位新手们有所帮助!当然要完成一张RPG地图或是对战地图还要有作者的很大的决心及恒心,对魔兽这个游戏,包括战役地图,对战地图及RPG地图要有一定的了解,至少要会玩魔兽。如果你有以上两点条件的话,呵呵,那么请继续往下看吧,你一定会有所收获的! 第一章: 认识WE 第一节 相关的名词及概念 相信有些新手们还不知道什么是WE吧!呵呵,WE就是World Editor的简写啦,译做中文应该是叫做世界编辑器,这个东西就是大多数地图制作者们的工具了,你只需要在魔兽的安装目录下就能找到了。如果是第一次运行的话,会出现个用户协议之类的,不用管了,有对话框就只管按确定吧! 关于什么是T?-我们在一些讨论贴中经常会看到一些诸如“用T吧,T不对吧”的语句,其实这个T也是一个简写,它是触发事件编辑器(Trigger),它的功能是很强大的,知道为什么对战地图时一来每个玩家都有一定的资源和单位吗?就是它弄的了,还有像一些RPG地图里的剧情啊,对话啊,包括开始时选择英雄也是用它来实现的,可以说,只要是一张RPG地图的话,T就是整个地图的精髓与灵魂所在。没有T,那么你的地图就只是一张好看的摆设罢了!!!(由于这是新手教学贴,所以在以下的课程里面会专门提出来进行讲解,现在暂不讨论) 关于JASS,我想还是有很多人听说过JASS吧,这个的确是个好东东,功能比T还要强大,但是需要一定的程序设计能力的人才会用了吧,这对于新手来说更是不沾边的了,所以在本教程中不涉及讨论!如果各位有兴趣的话可以自己去找点相关的教程! 另外的几个相关东东:物品管理器,声音管理器及输入管理器将在具体的制图过程教学中提到! 第二节 熟悉WE 不知怎么说呢,大多数地图作者都必须经历的一个过程吧:修改地图。呵呵,没错,修改地图是了解并熟悉WE的一个捷径。虽然现在都不提倡修改地图,不过做为学习WE的一个手段,我还是建议大家先从改图学起,而最简单的就是先修改官方的对战地图了!下面将以Lost Temple这张人气较高的对战图来入手,让我们一起揭开WE的神秘面纱! 运行WE,进入后先将菜单栏里的窗口选项打开,将里面的刷子表那里的勾去掉,这样WE的速度会有所提高。选择菜单栏里的文件-打开地图,在目录里找到要打开的地图,如:Lost Temple.打开之后,就是这个地图的地形了! 认识工具面板:在地图中有一个工具面板,如果没显示的话可以在菜单栏的层面里面打开。它包括:地形面板,地形装饰物品面板,单位面板,地区面板和镜头面板。以下将会分别说明! 1.地形面板,最好理解的一个了,你现在所能看到的整个地图的地形。包括平地,坡地,水,草地和悬崖等都是用它弄出来的,自己试着改改看吧! 2.地形装饰物面板,呵呵,和上面那个差不多,不过内容就多了,看到地图上的树啊,花啊鸟啊什么的了吗?就是用它弄了,同理,自己试着改去吧! 3.单位面板:也是事先放东西的工具了,地图上的中立怪,商店,生命泉和金矿就是用这个放的了,还有一个就是玩家开始地点也是由这个来完成。 4.地区面板:基本上是用在T里面的,现在唯一能做的就是弄传送门。暂时先不管! 5.镜头面板:用在交待剧情时用,同样要用T来弄,也先不管了! 说到这里,基本上WE里要用到的几个工具大家都知道一点点了,具体怎么用就在下面以修改地图的实例来说明了。(示范图为Lost Temple) 作者: binaire
08:01 回复此发言 -------------------------------------------------------------------------------- 2 新手做图入门指导教程〔第一章〕 一.修改金矿的数量,是不是觉得对战时金矿不够采,才12500的金子,改多一点吧。先将工具面板打开至单位面板,此时在地图上选中一个金矿,双击,会出现一个对话框,里面很明显有个“金钱含量”的框框,默认的是12500,这个就是该金矿的含金量了,想改多少自己弄吧。 二.如何让中立怪死后掉落物品。是不是看到金矿旁边的怪有两个有白色圈圈在动啊?那个就说明杀了此单位后它会掉东东,怎么弄呢?同上面一样,选中它,双击,出现对话框了,此时你可以修改它的一些属性,如生命值比例,所属玩家等。看到掉落物品的选项没?就是那个,点了它后,打开下拉列表,里面有两个选项,两个都可以设置其死后掉落的物品,自己试试看怎么设置吧,这里就不再说明了! 三.在原有地图上加一些单位:如商店,酒馆或是金矿放几个怪!打开单位面板,在中立无敌意里面可以找到如金矿,泉水,商店酒馆等中立建筑,也有一些单位,如小鸡野狗等。想在哪里放就放吧。要加入怪的话就打开中立敌对里面,慢慢找吧。放了之后就自己设置其掉落物品了,当然也可以改更其所属玩家,如果将怪改为中立无敌意,那么它就不会主动攻击你,根本就不会攻击你了,但是你杀了他也得不到经验和金钱! 四.如何加个传送门。以地图的左上和右下的两个小岛为例,先在两边各放一个传送门(单位面板-中立无敌意-建筑),之后将工具面板打开为地区面板,点击后在左上的传送门所以位置(门下)弄出一个区域来,之后命名为DOOR A,同理在右下传送门处也弄一个,名为DOOR B,下面则是激活传送门了,切换回单位面板,双击左上传送门,出现对话框后有个激活选项,打勾,出现下拉列表,选择DOOR B,此时这个传送门就好了,接下来同样的方法弄右下的,选择DOOR A。 至此,简单的修改就已经完成了,当然了,我们并不满足这点点的修改,接下来当然要来点实在的,比如改改英雄啊,技能啊什么的! 第三节 物体编辑器初识 物体编辑器来了,这个相当于一个数据库了,魔兽地图中的所有数据都差不多在这个里面了。打开物体编辑器后会有一排的各种选项,先看单位的吧! 单位列表:里面有所有你在正常地图里面所能见到的一切单位!而要弄懂这个也并不太难,只不过是里面的内容很多,弄起来费时间吧了,我就找几个常用的来介绍说明。 先来个变态的,比如,将农民改的比英雄还强大,首先打开人族,对战,单位,选中农民,右边就会出现该单位的相关数据了。要变态当然是攻击超高,护甲超强,技能超变态,血超多,跑得超快,打人也快,好的,慢慢来,一项一项改吧! 首先是护甲,里面有个基础防御,这个就是初始护甲了,改吧,改为100。之后是战斗-攻击-基础伤害。这个就是攻击力,也改为100吧。然后是战斗-攻击-攻击类型,可以改为混乱,这样就暴强了。战斗-攻击-魔法施放时间间隔时间,就是攻击的间隔,改为1试试,每秒打一下,哈哈,其他的几个较为好理解,故不再说明,自己一试就明白了!有些比较奇怪的就可以不用去管了!接下来是战斗-防御类型,改为神圣吧,这样就只有混乱攻击才打得动了。下面是技能-普通,这个就是该单位的技能了,可以自己加了,想加什么就双击看吧~!后面的什么生命值啊魔法值这些就不用我再多说了吧。这样一来,你的这个农民已经暴强了,哪个英雄见了都吓跑! 其它的一些单位也同样的改,至于建筑嘛,会多出几个东西来,如升级的科技,训练的单位,都是一看就知道是什么了,所以不再多说,如果是商店的话,看一下它技能及售出的商品及可雇佣的单位等就行了。关于英雄则有些初始属性等,这些也是自己试试就行了! 物品:很简单,就是物品,或是称宝物等,就是游戏中的那些! 可破坏物:就是树啊,箱子,门等 地形装饰物:各种雕像,柱子。。。。。。。 技能:又是一个重要的东西,和单位及物品关联大呢。在这里就是让玩家自己修改单位或物品技能的地方了,举例说明一下,想让大法师的水元素一次召唤出10个水元素来吗?先找到该技能,然后修改里面的数据-召唤单位计数。改为10吧。其实在技能这个地方最多的就是修改各种数据了,比如等级,伤害值,魔法消耗,施放间隔等,自己试着改一改,因为要每个东西都说明的话估计要一年吧~!汗! 而后面的效果及科技呢就是在自己做图时再考虑了,不过自己也可以先看看,不难! 第四节 具体问题解答 现在说一下几个常见的问题吧! 1.物品技能怎么修改?比如想把一个血瓶改成加血10000! 先在物体编辑器里的物品里找到你要改的物品(血瓶),在右边的数据里找到技能-技能:具有医疗效果的物品(较小的),这个就是加血多少的技能了,然后再切换到技能里,找到特殊的-物品,在里面找到相应的技能(具有医疗效果的物品(较小的)),将生命值取得那里改成10000就行了! 是不是只觉得只有一个血瓶不过瘾,改多点吧,好的,切换回物品,还是先中血瓶,在右边找到状态-负荷数量 改吧,改成100,哈哈,一买血瓶就有100个了,爽! 2.想让英雄的技能多一点,可以,单位里面找到英雄,比如大法师,找到技能-英雄。在这里加吧,加个先知的召唤狼也行,不过最多此处技能不能超过5个。想加点一般技能么?如重生。在技能-普通里面加吧! 其它的一些如英雄升级可超过10级等将会在以后的分类主题里面给大家说的,不过目前此类问题都有置顶贴解答了,大家不妨可以去看看! 新手做图入门指导教程〔第二章〕 作者:心魔工作室-巴哈姆涛 绪言:相信大家在看过第一章之后对WE的一些基本功能都有一定的了解了吧(如果你在看过后有照着上面的说明去修改过图),那么接下来当然是一步步接近我们感兴趣的话题了,制作属于自己的地图!一起来看吧!通过对本章的学习,你将会学会如何在游戏中创建单位,如何制作打怪掉宝,失败及胜利条件以及自定义单位及技能的制作! 第二章 创建属于自己的RPG地图 第一节 创建一张新地图 修改地图我们会了,那么我们怎么样来创建一张自己的地图呢?在菜单栏的文件下有个创建新地图选项,用它就行了! 这个就是对你的地图的基本大小和地形的设置了,比如弄成宽64,高128,初始海拔为7,地形设置为城邦,之后点确定就会生成新地形了!好了,现在在你眼前的就是你刚才创建的新的地图的地形了,是不是很难看,呵呵,那就让它变漂亮一点吧,用第一章学到的知识,打开工具面板,用地形面板及地形装饰物面板来弄吧! 那么一张新地图要有自己的名字,这个怎么弄呢?在菜单栏的情节选项里面可以弄相关的信息!点击后出现下拉列表,选择第一项地图描述! 名字:就是在游戏中的显示出的地图的名字了,如Lost Temple等等! 建议玩家数:就是推荐的玩家人数,一些对战图上都有的如1V1,2V2等等! 作者:当然是写上自己的名字啦,不过这个好像在游戏中都看不到! 修改地图读取中的画面:同样在地图属性的窗口中选择场景读取中就可以修改了,点击使用战役场景。其它的相关信息自己弄吧! 怎么样弄玩家数:创建了一张新地图后,在默认情况下是只能有一个玩家的,要多玩家的话就得我们自己弄了!同样是在情节选项下,不过这次要选择玩家属性!之后会出现设置玩家的窗口!你在这里可以设置玩家为用户,或是电脑,一般来说,RPG地图里都要有一或两家电脑玩家来作为敌对方的,而且大多数都是用玩家11和玩家12来弄!之后是弄玩家的势力了,一般来说有两个势力:正义和邪恶。具体代表图有3C,多数TD图等,而像FOOTMAN这种图则是有四个势力,那么也可以自己设置!在情节属性窗口中选择势力,然后在重新定义里打勾,添加势力即可,然后就拖动相应玩家到各个势力中了,最后别忘了在固定玩家设置里打上勾!其它的几个选项就暂时不用! 这几部份弄完了,我们当然是得做开形了!用第一章中学过的知识自己弄吧! 第二节 自制一张简单的RPG地图 在现有的地图上我们得先设置玩家开始点!如果是在对战地图中,这个开始点将会是给你创建基地和初始农民的地点,在RPG地图里面就是游戏开始后玩家的初始视野地点了,比如我们就先把玩家开始点都弄到地图左上吧!(提示:给电脑玩家设置开始点的话,可以放在任意位置) 一张RPG地图不像对战地图那样各位玩家有自己的单位和部队,大部份的RPG地图都是以英雄作为自己的控制对像的,那么我们下面就说一下给玩家创建英雄单位! 首先将工具面板切换到区域面板,并在玩家开始点的地方画一个区域,命名为Heros!之后打开菜单栏的触发事件编辑器,打开后会有一个初始化的对战初始化的T,将它删除!然后自己新建一个类,之后在该类下新建触发器,命名为Create heros for players!选中你新建的T之后就会在右边出现相关信息窗口了,右上空白窗口可以自己写点提示说明之类的,下面的就是具体的T语句了!关于此处的T,请参考附带的演示地图! 创建好英雄单位后我们的冒险就开始了,此处我们先在地图上放一些供我们攻击的单位,让其所属玩家为玩家12,我们知道,一般打死中立怪后会掉宝而且会得金钱,怎么让打死非中立单位也掉宝和得金钱呢,同样会T来弄!关于此处的T,请参考附带的演示地图! 2 新手做图入门指导教程〔第二章〕 一个游戏自然还得有胜利条件及失败条件,这些也是T的功劳!关于此处的T,请参考附带的演示地图! 以上所提及到的这些内容在地图均有演示,各位请自己在地图里参看! 第三节 初识触发器 T 一个完整的触发器由三个部份组成:事件、环境、和动作! 事件-即一个事件或是任务、剧情的开始,也可以这样理解,举个例子,上课铃响了就是一个事件,或是早上8.00到了也是一个事件,这意味着接下来我们该上课了,也可以把事件理解成为导火索吧! 环境-相当于是条件,接着上面的例子来说,早上8.00到了,环境:如果是周一至周五。那么我们就得上学(班),如果是周末,我们就休息,也就是说不做出相应的动作!这里上学及上班就是动作! 动作-具体的各项命令,如上学,上班,吃饭等,当然这里是用现实生活中的例子来打比方!那么下面我们就来看一个例子以帮助大家理解这三个部份! 引用某位圣人的一个经典例子: 有一个花园,花园里面有一条狗! 事件-一个人进入花园 环境-此人是狗的主人 动作-狗摇尾巴 或者是 事件-一个人进入花园 环境-此人不是狗的主人 动作-狗就叫 这个就是一个简单的触发器了,下面就用WE中的具体事件来举个例子!就以3C的某个人的英雄被杀了而出现字幕来说明! 事件-a unit dies 一个单位死亡 环境-triggering unit is a hero = ture 死亡的单位为英雄单位 事件-游戏-Display to all players the text:name of owner of triggering unit + 的英雄被 + name of owner of killing unit + 打死了! 出现提示字幕 当然,在3C中还得有打死了一个英雄后对各位玩家的奖励和对打死英雄的玩家的特别奖励以及判断死亡英雄是否属于玩家控制等,这里就不讨论了,其实这些就是多个动作的运用了,基于新手对WE和知识的情况来考虑,本人只提供简单基本的触发器语句的教学,如果是自己想要更进一步了解更多的话则可以找一些其他的教程或是演示! 事件里面可以分为时间,单位,初始化等多个类型,各位可以打开WE里的触发器自己研究,环境和动作的内容则就更多了,在这里不可能都作介绍,这些都还得大家自己去研究学习了! 第四节 自定义单位、物品及技能的制作 一张RPG地图要有自己的风格及创意当然少不了自定义单位和技能了,那么这些东西是怎么来的呢?其实都是在原有的单位及技能上创建的!而要做到这些,我们又得回到物品编辑器了! 创建自定义单位:在物体编辑器的单位列表里找一个原始单位作为你要自定义的单位,如用大魔法师来做,选中大魔法师,右键自定义单位,之后会出现对话框,输入该单位的名字,之后会在自定义的类下面多出一个人族-英雄-XXXX(你刚才输入的名字)选中他后,同样右边就会出现其相关数据了,这里的数和标准单位里面的相比除了名字不同外,其他都相同,所以,既然是自定义单位,那么就改吧,模型,声音,攻击,护甲,图标……………………这样就完成了一个自定义单位了!同理,自定义技能的方法也是一样的,只不过你可以修改它们的等级及效果,对召唤技能而言还可以修改召唤出来的单位的数量及种类!这些都是属于基本问题了,自己一看都知道,所以就靠各位自己研究了! 第五节 制作RPG地图的一些建议 说了那么多,大家应该对一张RPG地图的产生方法有一定的了解了,不过总体来说,制作一张RPG地图是一个相当辛苦的过程,所以如果各位真下定决心要制作的话,那么我在这里给大家几点建议: 1.明确自己要做哪种RPG地图?如战役类、角色扮演类、对抗类、TD或是生存防守…………只有明确了自己做图的目标后才能在拟定出一个相关的地图制作计划(即头脑里面有个想,不要到实际做图时还在考虑做成什么才好) 2.创建地图时大小要适中。不要想着地图弄得大就好,还得想想自己是否有能力将全部地形都用完,有没有合适的剧情来填充庞大的地形,其实有很多很经典的地图有的都是极小型的地形的,如小猪保卫战。而大地图当然也有,比如本人的最终幻想的两个作品用的都是最大的地形设置,当然,在这之前也是要充分考虑好每一块地形的使用的! 3.创建适合自己RPG地图的单位、技能和物品等!一张RPG地图都是有自己的个性的,这就在自定义单位、技能和物品上得到了充分体现。如果是一张角色扮演图,你得设计自定义单位的职业,名字及称谓等,甚至还得弄出相应的技能及物品。而对于生存一类的,你要考虑的则是单位的技能是否真正有威力,物品是否能够满足游戏的需要! 4.游戏系统。这个就很多了,比如物品合成,升级,打宝,挑战等,这些主要是为了丰富一张地图的而发展出来的,当然也可以吸引更多的玩家以及体现作者的制图水平,不过在做一些游戏系统时也得注意是否和游戏相适合,有些系统如果做得很抢眼的话,反倒会把你一张地图的主旨给遮蔽了! 总结 通过这两章的学习,各位可以说对WE都有一定的知识基础了,而在今后的学习中,各位其实就是要专门去学习T了,毕竟T是有着很强大功能的东东,也是很多高手们一直在研究的话题!而由于本人水平有限,能教给各位的也就只能是最基本的东西了,对于WE而言,大家要想有提高还得靠自己钻研!本人的新手制图指导教程到此也就结束了,因为下一步各位就算得上是进入了WE的进阶提高阶段,而此时各位可以去找其他相关的教程学习了,因为大家有了一定的知识作为基础,剩下的就是针对专门的问题而进行学习了!在此谢谢各位的支持,也希望各位能打造出属于自己的地图!另外,如果有需要的话,本人还会继续做一些基础T的演示供大家参考学习,不过注意喔,只是弄基础的演示,而像单体技能群体化或是多重物品栏等就已经超出了我的能力范围了! 最后一句,学习WE大部份要靠自己自学为主! 如果你对T还不熟悉,建议你去看下面的教程,是比较基础的T的学习。 希望你能早点熟悉魔兽地图编辑器,成为一名高手,不过路还很长呢。 这是2个地图编辑教程的下载地址: 地图制作入门指导教程
第一章 jass基础
0. 本章概述
本章介绍jass语言的最基本内容,包括注释、基本数据类型、变量、数组、基本运算符、运算的优先级、常量、基本运算法则
首先在这里说明一点,jass是区分大小写的,也就是说,jass不会认为“a”和“A”是同一种东西
-----------------------------------------
1. 注释(comment)
注释符号://
不论是we的语法检查器还是war3,“//”之后该行的内容将被忽略
-----------------------------------------
2. 数据类型:
jass虽然不大,但是提供的功能足够丰富,共提供了6种基本数据类型:
1) integer : 32位有符号整数型(4byte) 取值范围:[-, ] (2^31+符号位)
2) real : 实数型(单精度浮点型,4byte) 取值范围:[1.5*10^(-45), 3.4*10^38]
3) boolean : 布尔型(1byte) 记录 true(真)或 false(假)
4) string : 字符串型(不定长) 用来记录字符
5) handle : 数据指针型 是jass语法的一个基础类型,相当于passcal中的pointer类型,由它可以派生出其他数据类型的指针。用来指向内存中的一个数据地址
6) code : 函数指针型 用于指向内存中的函数地址
* 其他数据类型: 1.16有81种,1.17又新增5种,都是由继承handle而来,在common.j最开始的部分,
声明形式如下:
type ****** extends handle //此处即使不是handle,也是其他由handle继承而来的类型
2 JASS语言教程
知道了jass的基础数据类型,下面我们要了解如何使用这些数据。首先就是要对数据进行存取,基本的办法就是使用变量。什么是变量呢?就是war3在运行的时候在内存中申请一块数据空间,用来存取数据的。
1) 变量的类型:分全局变量和局域变量两种,在j中最常用的是局域变量
2) 变量的命名:
首先要给变量一个独特名字,作为这个变量的标志,以便在以后的使用过程中访问。
变量名称必须以英文字母开头,变量名中可以包括:大小写英文字母(A~Z, a~z)、数字(0~9)、下划线(_),其它符号会被认为非法(不要用中文命名变量名)。
we会自动给全局变量加上“udg_”前缀,在jass中使用全局变量的时候直接手动输入“udg_”前缀即可访问全局变量。
第二章 jass语法结构
0. 本章概述
本章介绍jass语言的基本语句,包括判断、循环、判断和循环的嵌套、数组-----------------------------------------1. jass的判断语句
与大多数的语言一样,jass使用了if作为判断语句。jass的if与passcal的判断语法相似(这里不得不b4 basic一下,赋值与判断相等居然都使用“=”,否则的话这里把basic也加进去了)。语法:
if 判断式 then
endif 当 判断式 的值为 true 的时候,执行语句
若出现else,则为当 判断式 的值为 true 则执行到 else 之前的语句,否则的话,执行 else 到 endif 之间的语句
if 判断式 then
elseif 判断式 then
elseif 判断式 then
endif 实现多重判断,不做更多的解释了。
-----------------------------------------2. jass的循环语句
一般的语言会提供for循环和loop循环两种循环,另外还有结构化语言中不提倡使用的goto这个转向语句。for循环实际上是一种最简单情况的loop循环,而靠goto控制的转向可以用loop来完成。遗憾的是jass没有提供另外两个循环中非常方便的关键字continue和break,不过靠if和exitwhen也可以完成的。语法:
exitwhen 表达式
&exitwhen 表达式&
endloop 当表达式的值为true的时候,退出该循环。需要说明的是,可以有不止一个exitwhen,并且exitwhen可以在loop中的任意位置。在使用循环的时候,要注意避免死循环。所谓死循环,就是一直循环下去不会满足退出的条件,这在使用loop循环的过程中非常常见,例如: set i=1
exitwhen i&5
... //中间忘记了set i=i+1
endloop war3有针对死循环的容错机制,当达到一定循环次数的时候会自动退出function,也就是说endloop后的语句不会被执行。
-----------------------------------------3. 判断与循环的嵌套
往往一个判断或者一次循环不能够满足我们想要做的事情,这个时候就涉及到了嵌套。嵌套不难理解,就是在一个判断或循环中,使用了另外一个判断或循环,如: loop
if ... then
if ... then
endloop 为什么要把嵌套单独拿出来讲一节,就是因为对初学编程的人来说,使用嵌套的时候常常会出现一些错误。一旦出现了嵌套,一定要先结束里层,然后再结束外层,如下面的语法是不正确的: loop
if ... then
endif 可能看到我前面写的东西,各位也比较喜欢空格了吧。在循环和判断的时候用空格来缩进,这样能够更直观的现实逻辑关系,使代码的可读性大大加强。但是缩进也可能导致一些主观的判断错误,例如: if ... then
if .... then
endif 在储存的时候这段代码会报错。问题比较容易,自己看吧(j需要endif的语法结构事实上能够比较好的避免大多数问题,像在c里面考试还会常常出这类的题hoho)。-----------------------------------------4. 数组的使用
有些时候,你会不会觉得一些重复的操作很烦呢?比如把一个单位身上的物品丢在一个地方,过一段时间之后再放回身上,例如: local unit u = GetTriggerUnit()
JASS语言教程
local item item1 = UnitItemInSlotBJ(u, 1)
local item item2 = UnitItemInSlotBJ(u, 2)
local item item3 = UnitItemInSlotBJ(u, 3)
local item item4 = UnitItemInSlotBJ(u, 4)
local item item5 = UnitItemInSlotBJ(u, 5)
local item item6 = UnitItemInSlotBJ(u, 6)
... 这种时候,我们可以用一个array(数组)来表示一组东西。1) 数组的声明:
数组也是变量,所以也有全局和局域之分。全局的数组只要在全局变量的设置中,把array勾上就可以了,实际上是在变量的声明过程中,在变量类型和变量名称之间加入array关键字: local item array items* 补充:在全局变量的声明中,还有个size选项,那个选项实际上是假的,只是你自己输入一个数字提示自己这个数组应该有多大而以。jass为了防止mapper不熟练使用数组产生的bug,采用了自动增加数组长度的方式。2) 数组的引用:
使用方括号“[]”作为数组的索引,如访问index=1的变量 set item[1] = CreateItem(...) 数组索引的最低值为0,最高值俺没测试过,不过估计没谁那么疯狂,不断的往数组里面添东西。
结合if判断和loop循环,数组可以减少我们大量的重复工作。------------ 第三章 过程、函数,Trigger与指针
0. 本章概述
本章设计到jass语言中更复杂的一些东西,熟练使用好这些东西,你将体会到更多作图的乐趣。从本章开始,我会尽量结合自己在作图的一些经历,配合范例讲解j的实际应用
-----------------------------------------
1. function概述
结构化语言的特点就是,使用判断、循环和独立的过程来完成所有的功能。function是一段用来完成一个独立功能的代码,使用好j,就要学会用好function
1) function的构成
一段function,由声明、函数体两部分构成:
function 名称 takes [nothing | 参数列] returns [nothing | 返回类型] //声明
... // 函数体部分
&return [返回值]&
endfunction //标志一段function的结束
2) function的分类
a) 过程与函数
在passcal中,声明一段函数只用这个关键字,而声明过程则用另一个关键字;在c中,则直接使用变量类型来声明函数,可以把无返回类型的函数(void类型)理解成过程。我在这里沿用passcal的概念,将不返回值的函数定义为过程。
b) 常函数与变函数
常函数返回一个固定的值,而变函数则根据参数的不同和函数体内的运算。常函数是在function的声明前加constant关键字:
constant function
c) API与自定义function
API(Application Programming Interface,应用程序接口)是指包含在common.j中的函数,该部分函数实际上是一些已经由系统封装好的函数,用户只要知道function名、功能、参数,就可以利用这部分function做到自己想要做的事情,通常API是实现用户无法通过自定义function来实现的功能,在cj中,API的声明形式如下:
native CreateItem takes integer itemid, real x, real y returns item
自定义function是指用户在使用过程中,自己定义的一些过程或函数,如我们用到一个地图初始化的trigger中注册trigger的部分:
function InitTrig_MapInit takes nothing returns nothing
set gg_trg_MapInit = CreateTrigger( )
call TriggerAddAction( gg_trg_MapInit, function Trig_MapInit_Actions )
endfunction
3) function的参数
在function的声明中,takes与returns之间的部分为参数部分。
nothing关键字表示无参数。传递参数的时候,要写明传递的参数的类型和参数在函数过程中的名称,如传递几个参数,不同参数之间用逗号(,)隔开:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 魔兽争霸分辨率问题 的文章

 

随机推荐