expansion可数吗
根据牛津词典,explanation在表示解释、说明时,既是可数也是不可数名词。作可数名词的情况较多,如举例的some explanations;作不可数名词的情况一般存在于一些固定用法中,如without explanation。扩展资料
1、It should be emphasized that this is only one possible explanation.
应该强调的是,这只是一种可能的解释。
2、'I had to see you,' he said, by way of explanation.
“我当时必须来找你。”他解释道。
3、She didn't give an adequate explanation for being late.
她没有给出充分的理由说明迟到的`原因。
4、The most likely explanation is that his plane was delayed.
最可能的解释是他的飞机晚点了。
5、The facts allow of only one explanation.
这些事实只可能有一种解释。
expansion的动词
expansion的动词是expand,它的名词形式是:expansion。
扩展知识:expand为动词,其词义为:扩大,增加,增强;扩展;发展;详细阐明等含义;expansion为名词,其词义为:扩张;扩展;扩大;膨胀等含义。
下面分享相关内容的知识扩展:
要把巫师3买全到底要不要买那个ExpansionPass?
这个是季票,可以多两个个DLC,之一个资料片石之心已出,第二个血与酒月底出石之心很好玩,血与酒估计也会很棒,建议购买
请问哪位星际1狂热FAN能自己编星际1.08的P/T/Z Expansion Custom Level这个AI,小弟求助
就是星际1.08根目录的Patch_rt.mpq,里面存放了星际1.08的所有AI。不论top vs bottom 还是 use map setting的全都在,我喜欢和电脑玩top vs bottom模式的,但是暴雪的AI有点颓,暴兵不强,就像自己修改代码,代码里面的有些重要的关键字我上网翻译了可还是不明白怎么用法,贴一些代码吧:start_towntransports_off
:block1define_max 20 zealot
build 1 nexus 150wait_buildstart 1 nexu *** uild 4 probe 130wait_buildstart 4 probe
这只是其中一点而且不连续,我想肯定有哥们懂我在说什么的,真心请教哥们里面的代码的详细用法和关键字的意思。以下截图是小弟自己编写的部分代码,请问能给小弟讲讲么?
下面介绍SCAIEdit里面的命令,实际上SCAIEdit帮助里面有只是我翻译过来了而已...
Header commands
头脚本,就是说一般写在脚本最前面的脚本...类似定义什么什么东西...
farms_notiming
当人口到达更大可用空间时,只建造所必须的房子(人口18/18满了,才去造房子).
farms_timing
Build necessary farms with a correct timing, so nothing is paused by a maximum supply limit hit.
在合适的时间建造必须的房子,因此不会因为超过更大人口限制而暂停.(看到人口16/18,电脑就知道去造房子了,一般有这句就不用写造房子脚本了)
start_areatown
Starts the AI Script for area town management.
作为区域基地运行AI脚本.(在前面写上这个,估计是指这个脚本专门用于防守的脚本)
start_campaign
Starts the AI Script for Campaign.
作为战役运行AI脚本(是指这个脚本专门用于战役的脚本,这个命令会限制一些命令的使用,下面介绍)
start_town
Starts the AI Script for town management.
一般发展运行的脚本(就是说这个脚本用于一般对战或者其他的脚本,会限制一些命令的使用)
Build/Attack/Defense order commands
建造/攻击/防御命令
PS:下面的命令几乎都有参数,但是参数的类型不同.byte:代表0-255的整数,用于数量;word:代表0-65535的整数;block:代表函数块,就是你要执行的脚本块;unit:代表任何单位;military:代表攻击单位,建筑物和农民不算;building:代表建筑物;technology:代表兵种的科技;upgrade:代表兵种的升级.
attack_add (byte) (military)
添加%1(byte)个%2(military)单位到当前的攻击小队中.(类似我们把兵种编队一样,只是这个是把将要进攻的兵编在一起)
attack_clear
清除攻击数据.(清除上一次编队的数据,不清除下一次进攻还是和上次的兵种一样)
attack_do
当前的攻击小队开始攻击敌人.(让刚才编的攻击小队开始攻击敌人.)
attack_prepare
准备攻击.(最然说是准备攻击,但是我只有这一句的时候,还是去进攻去了)
build (byte) (building) (byte)
建造%1(byte)个%2(building),优先权为%3(byte).(这里要说的就是优先权,数字越高优先级越高,越高就越先建造,但是不要差太远,不然会不造或者跳过的,如果几个建筑写在一起建造,比如build 2 gateway 80 build 2 pylon 80,电脑会gateway和pylon一起造,如果把gateway的优先级改为81或者85,电脑则先把2个gateway造完才会去造pylon,还有就是这里的数量问题,这里的数量是指所有的数量,就是要建造的总数,build 8 gateway 80,就是说要建造8个gateway,不管你之前有几个gateway电脑给你造够8个就了事)
defensebuild_aa (byte) (military)
当空中单位受到攻击时,建造%1(byte)个%2(military)空中攻击单位来防御敌人.(使用什么兵防御什么东西,如果把这个命令用得好可以类似电脑用微操哦,一下类似)
defensebuild_ag (byte) (military)
当地面单位受到攻击时,建造%1(byte)个%2(military)空中攻击单位来防御敌人.
defensebuild_ga (byte) (military)
当空中单位受到攻击时,建造%1(byte)个%2(military)地面攻击单位来防御敌人.
defensebuild_gg (byte) (military)
当地面单位受到攻击时,建造%1(byte)个%2(military)地面攻击单位来防御敌人.
defenseclear_aa
当空中单位受到攻击时,取消空中攻击单位的防御.
defenseclear_ag
当空中单位受到攻击时,取消地面攻击单位的防御.
defenseclear_ga
当地面单位受到攻击时,取消空中攻击单位的防御.
defenseclear_gg
当地面单位受到攻击时,取消地面攻击单位的防御.
defenseuse_aa (byte) (military)
当空中单位受到攻击时,使用%1(byte)个%2(military)空中攻击单位来防御敌人.
defenseuse_ag (byte) (military)
当地面单位受到攻击时,使用%1(byte)个%2(military)空中攻击单位来防御敌人.
defenseuse_ga (byte) (military)
当空中单位受到攻击时,使用%1(byte)个%2(military)地面攻击单位来防御敌人.
defenseuse_gg (byte) (military)
当地面单位受到攻击时,使用%1(byte)个%2(military)地面攻击单位来防御敌人.
guard_resources (military)
派出%1(military)类型的单位去看守可能多的矿点(每处矿点1个).(这个命令没有试过,不知道现象是什么)
tech (tech) (byte)
研究%1(technology),优先权为%2(byte).(开始研究的科技,参数解释类似上面的建筑建造)
train (byte) (military)
训练%1(byte)个%2(military)单位.(兵种的建造,注意这里没有优先权的参数,工人不属于military,工人必须用build)
upgrade (byte) (upgrade) (byte)
研究%1(byte)级%2(upgrade),优先权为%3(byte).(升级)
wait (word)
等待正常游戏时间的十分之%1(word)秒.(等待时间)
wait_finishattack
等待直到攻击小队完成攻击后.
wait_build (byte) (building)
等待直到电脑有%1(byte)个%2(building)建筑.(这个..应该不常用)
wait_buildstart (byte) (unit)
等待直到%1(byte)个%2(unit) 已经开始建造.(这个超常用,就是说等你那个东西建造好后在进行后面的脚本)
wait_train (byte) (building)
等待直到电脑有%1(byte)个%2(military)单位(这个...可以作为进攻用)
ASC_中文使用手册 星际
今天下到了ScAIEdit.exe和MPQ2K.exe.找星际电脑AI测试了一下.小有收获.开始研究ASC.
无聊,将help文档的语法部分翻译了以下.共勉.
-------------------------------------------------------------
ASC_中文使用手册
文档作者:Gold Dragon.
翻译:C3C.Archimonde.
翻译日期:2007年3月22日
人工智能脚本编码语言AI Script Code(ASC)
由于人工智能脚本(AI Script)文件以二进制存储,能够有一个便于使用者编辑的涵盖所有人工智能脚本支持功能就变得很重要.基于此目的开发的人工智能脚本编码语言AI Script Code(ASC)支持以文本形式编辑.ScAIEdit series的作者(Gold Dragon)开发的ASC是仅为ScAIEdit series服务的,并不被暴雪公司Blizzard Staff作为标准.本文将教你怎么使用这个语言.
ASC3 的语法
ASC3 的语法应用了如下的简单模式:
指令 <参数1> <参数2> <参数3> ...
例如:
wait 1500
根据ASC3 指令的定义,将等待1500个正常速度的游戏的0.1秒.这个形式适合脚本的任何指令.
ASC3 的其他特征字
显然你能够在脚本里输入些别的.下面将罗列它们:
注释
任何一个好的脚本语言都支持注释功能,可以帮助你不用仔细阅读指令,就能更快地理解脚本,下面是注释的特征字:
;这里是注释
必须以";"(不含引号部分)开头,在这个分号之后的所有字符都不会被编译.你可以输入任何字符来为你服务.
宏
ScAIEdit III的一个新特色就是支持带有宏的脚本.宏可以看作是将好多指令封装起来的一个简单语句.例如你可以写一个宏,包含建一些建一些建筑,攻击敌人的指令,只需要调用宏就可以将其内容全部执行.下面是宏的特征字:
!宏名
必须以"!"(不含引号部分)开头,在这个感叹号之后的字符是宏的名字.感叹号和名字之间,名字内部都不能有空格.否则ScAIEdit III会将它们理解为两个宏.宏名不区分大小写.ScAIEdit III自带了很多宏,可以点击这里查看宏列表.
标签
为什么很多脚本指令在它们的参数里使用标签呢?标签可以看作是脚本的一个标记,它可以放在脚本的任何位置.有了标签之后,脚本就可以通过"goto"指令跳转的这个标签,并继续读取其后面的指令,下面是标签的特征字:
:标签名
必须以":"(不含引号部分)开头,在这个冒号之后的字符是标签的名字.和宏一样在冒号后面不允许出现空格.
一旦你建立了一个标签,你就可以在任何一个指令后面把他作为参数.例如,"goto"指令要求唯一一个参数就是标签名,"goto"指令的作用就是让脚本跳转的所指向的标签处,并从标签处继续往下读取脚本.下面是一个例子:
goto somewhere
; 下面这个指令永远不会被调用
build 1 barracks 80
:somewhere
; 下面这个指令会被调用
build 1 supply_depot 80
这里我们看到,通过跳转到"somewhere"标签处,所有在"goto"和标签之间的指令都被跳过而直接从"somewhere"后面开始读取了.
ASC3 的一些规则
这里有一些你必须遵守的设定:
永远不要将超过一个的指令放在同一行.ScAIEdit III脚本编译器总是认为一行要么只有一个指令,要么是空行.
; 这样写不会通过编译
train 2 marine train 2 firebat
; 这样就可以通过编译
train 2 marine
train 2 firebat
注释和标签的定义也必须写在单独的一行里.
; 这样写不会通过编译
train 2 marine ; 训练两个机枪兵
; 这样就可以通过编译
; 训练两个机枪兵
train 2 marine
你必须区分开"build"和"train"这两个指令.指令"build"用于生产建筑,农民和虫族的宿主(Overlord);指令"train"用于训练军事单位.如果你将它们混淆,ScAIEdit III会中断编译进程并给你指出错误.
"build","upgrade"和"tech"三个指令需要一个表征优先级的参数.在ScAIEdit早期版本中,你不得不在其后输入"set_gencmd"或"finalize_research",但是如果缺少优先级参数就会报错.现在定义了"build"指令的默认优先级为80,"upgrade"和"tech"的默认优先级为30.优先级支持从0到255的整数.下面是新版本的指令格式:
build 1 barracks 80
upgrade 1 t_infantry_armor 30
tech stim_packs 30
当你训练"train"或生产"build"单位时,可能指令内容在理解上会有点混乱,记住指令后面的数字不是你要训练或生产的,而是要建筑到和生产达到的数量.例如:
train 2 marine
train 5 marine
总共训练的机枪兵数量不会是7个,而是5个.但是如果在这两条指令之间还有别的指令,电脑将先训练到2个机枪兵,执行别的指令之后在将机枪兵的总数训练到5个.
如果你在电脑不具备条件的情况下决定生产或训练一个单位,电脑将为了你定的目标指令而生产一切必要的东西.但是要注意知道你的目标指令被实现之前不会执行其他的指令.例如:
train 2 battlecruiser
电脑将为了训练battlecruiser(人族大和战舰)而生产一切必要的东西.比如它将生产兵营,重工场,机场,控制塔,科学研究所以及物理实验室,在此之后再开始训练battlecruiser.
标识一个人工智能脚本
在你使用一个人工智能脚本之前,你必须先定义它.你必须为ScAIEdit III提供一个你的脚本的名字和脚本的编号ID.
脚本名是在StarEdit中我们用来选择脚本时用到的.ID则是StarCraft用来区分不同脚本的.所以脚本名可以自己随意定义,而ID则只能有且仅有4个字母或数字组成.ScAIEdit III在ID和已经存在的ID重复或者ID不是4个字母或数字的时候会提醒你.按照下列 *** 定义这两个值:
script_name My First Script!
script_id Scr1
这些语句将当前脚本名定义为"My First Script!",ID定义为"Scr1".如果你忘了插入这两个语句,ScAIEdit III将中断编译你的脚本.你当然也可以更改这两个值.:)
开始写一个人工智能脚本
在你开始动手写人工智能脚本之前,你必须子知道怎么做才能让StarCraft识别并使用你的脚本.在你新建一个脚本之前,你不能直接就开始写指令.你可以用暴雪脚本的开头作为你的脚本的开始,或者干脆自己弄个最简单的.
简单的脚本头
对于一个怕头疼的人来说,下面是一个最行之有效的 *** ,它既简洁,可靠,又有效率:
start_town
常规脚本头
这是暴雪公司用在它们的常规脚本里的脚本头.它将停用farm timing和其他的未知属性.这是为了让电脑能够按照生产顺序建筑物,之后在不紧急的时候你可以再启用farm timing.这个脚本头包含以下指令:
start_town
transports_off
farms_notiming
或者你可以选择一个ScAIEdit III自带的宏来代替这些指令:
!custom_header
战役脚本头
这类脚本头显然只能用于战役中,因为电脑仅仅是部分的执行"start_campaign"所限定的生产顺序.尽管他的影响还没被了解得很明确,但是有时候电脑确实会决定做一些你没有让它做的事情:
如果它开始就有一个核能井,它会生产一个 ***
如果它开始就有一个飞机场,它会生产两个运输机
或者它会建个气矿
或者其他的类似的行为
战役脚本头的意义在于,一些特定的指令是只能用于战役脚本的,例如"create_unit"或"give_money".这个脚本头包含以下指令:
start_campaign
wait 1
start_town
defaultbuild_off
default_min 0
wait 1
或者你可以选择一个ScAIEdit III自带的宏来代替这些指令:
!campaign_header
一旦决定了用哪个脚本头,就要将它插入到你的脚本中.但是这还没有完.我强烈建议你在脚本的开始定义你将用到的某兵种的更大数量.虽然这不是必须的,但是如果你遇到了遭遇战这样的问题,请试试下面的定义指令.所有的常规脚本和大部分暴雪公司的战役脚本都使用这个定义指令.
在你"真正"开始写脚本之前,输入:
define_max 4 scv
当然你不会只使用四个SCV.我们只是确保在脚本完成后不会忘记更改这个数值.一定要记住修改这个值,或许它会给你一个"惊喜".举例说,你的脚本要生产最多30个SCV,24个机枪兵和16个喷火兵,你可以输入以下指令:
define_max 30 scv
define_max 24 marine
define_max 16 firebat
你只需要定义军用单位和SCV的更大数量,不需要定义其他建筑的更大数量.你可以在后面的脚本中随时重新定义这个值,但更好在你使用这个单位之前定义.别因为这个说明而烦恼,即使我也不能彻底理解这个功能,但是它确实帮我避免了一些问题,所以... 别担心,其他的都很简单:)可以查看ASC3的脚本示例.
完成人工智能脚本
在结束杰作之前,你还有一件事情需要完成.如果你这时候编译脚本,ScAIEdit III会中断编译进程并指出有一个错误.好吧,但愿ScAIEdit III没打断你,否则在这个奇怪的事情发生后,ScAIEdit III的人工智能解释器会继续读取这个文件,调用另外一个脚本并且可能发生更奇怪的事情,或许会引起计算机重启.你可以查看结束人工智能脚本的要点来避免这些异常.有两个途径来实现这个目的:
停止指令
指令"stop"无情却有效.它告诉人工智能解释器立刻停止读取脚本.正常动作还将继续,电脑会对抵抗进攻,会继续采矿,但是它自己不会有新的动作.
重要提示:使用指令"stop"会对没有正确使用的指令有一点小影响.如果你以指令"stop"停止了脚本,在那个时刻开始电脑可能在某一条指令上表现得很奇怪.最常见的现象是它不停的生产同一个单位,直到人口上限或资源耗尽.这种现象可以通过下面的第二种 *** 避免.
指令"stop"也用在由指令"expand"或指令"multirun"并发的标签中.停止一个并发的标签时不用惧怕上述的异常.实际上,这种情况下指令"stop"是被强烈推荐的.
指令"goto"
指令"goto"在上面有介绍,可以直接跳转到脚本中定义的标签处.当脚本结束时它能做些什么呢?这个指令可以创立一个一直执行的循环.细心的处理循环中的语句,因为如果你不结束脚本它会引起更多的问题.下面是最简单的一个结束脚本的例子:
:loop
wait 1500
goto loop
这样,脚本总是会这么做:等待1500个正常速度的游戏的0.1秒.当然这种结束脚本的 *** 并不是一定要这样写,你还可以像这样将它完善:
:loop
attack_add 18 marine
attack_add 12 firebat
attack_prepare
attack_do
attack_clear
wait 1500
goto loop
这就会一直有18个机枪兵和12个喷火兵攻击敌人的基地直到它被毁灭.窍门是让一个含有指令的死循环一直执行,这是最有效的结束脚本的 *** .
注意:上面写的循环在StarCraft是无效的.更好是添加指令"train"和指令"wait_train",这里仅是个例子:)查看脚本示例来看一个正确有效的脚本.
文档就写这么多,查看ASC3指令列表看看你都能干些什么!:)
星际争霸1。08Original 和Expansion有什么区别
一个是简单模式,一个是高级模式两个模式在遭遇战里面可以造的单位不同
expansion是blood
war,有新兵种,original是原版
original模式下没有以下单位:
z:地刺,雾龙
t:护士,瓦格雷
机甲巨人的射程无法升级
p:隐刀(自然也没有红球),海盗船