星际争霸地图编辑器用法Word文件下载.docx
《星际争霸地图编辑器用法Word文件下载.docx》由会员分享,可在线阅读,更多相关《星际争霸地图编辑器用法Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
比如改成学校,家里。
这对后面要讲的触发器是有很大联系的
有的触发必须依赖地点而存在
接着讲Force,玩家组队
你可以把8个玩家分成4队
还可以给每个队改名
结盟就是这组玩家是盟友
结盟胜利就是但一个玩家胜利,全组胜利
任意开始地点就是这组玩家的开始地点是随机的
(其实是玩家随机)
第3个要讲的是PlayerSetting(玩家设定)
它在player菜单下
在这里,你可以设定玩家由谁扮演
是人(human),还是电脑(computer),还是中立的,(nautral)
或是走近就可以变成自己的兵的(resuable)
在unit的页面下,你可以设定那个玩家可以造什么兵
不可以造什么兵
在upgrade下,你可以设定玩家的初始升级资料
和允许/禁止玩家的某种升级
SpeicalAblities就是魔法设定了
如果你理解了第一章的内容
已经有一定基础了
可以开始进阶内容了
现在讲的是RPG地图的核心内容--触发器(trigger)
触发器有人说很难
其实非常非常…………(此处省略N个非常)简单
任何一个正常人都可以理解
触发器分3个部分
执行人,条件,结果
执行人随便写,只有一个触发和执行人有关(是结盟的触发)
注意,如果你写force4(第4组)
而force4你没有放一个玩家
或有一个人类玩家,但他没加入游戏
那么执行人为force4的触发都不会执行
(就是要有人或电脑来执行)
条件有很多种
ACCUMULATEPlayeraccumulatesquantityresources.
该玩家积累多少资源时
ALWAYSAlways.
总是
BRINGPlayerbringsquantityunitstolocation.
该玩家带多少单位到特定区域时
COMMANDPlayercommandsquantityunits.
该玩家控制多少单位时
COMMANDTHELEASTCurrentplayercommandstheleastunits.
当前玩家最少控制多少单位时
COMMANDTHELEASTATCurrentplayercommandstheleastunitsatlocation.
当前玩家在特定区域最少控制多少单位时
COMMANDTHEMOSTCurrentplayercommandsthemostunits.
当前玩家最多控制多少单位时
COMMANDTHEMOSTATCurrentplayercommandsthemostunitsatlocation.
当前玩家在特定区域最多控制多少单位时
COUNTDOWNTIMERCountdowntimerisdurationgameseconds.
游戏时间倒数计时多少秒时
DEATHSPlayerhassufferedquantitydeathsofunit.
该玩家损失多少单位时
ELAPSEDTIMEElapsedscenariotimeisdurationgameseconds.
游戏时间经过多少秒时(游戏时间)
HIGHESTSCORECurrentplayerhashighestscorepoints.
当前玩家得分最高时
KILLPlayerkillsquantityunits.
该玩家杀死一定数量的单位时
LEASTKILLSCurrentplayerhasleastkillsofunit.
当前玩家杀死单位最少时
LEASTRESOURCESCurrentplayerhasleastresources.
当前玩家积累资源最少时
LOWESTSCORECurrentplayerhaslowestscorepoints.
当前玩家得分最低时
MOSTKILLSCurrentplayerhasmostkillsofunit.
当前玩家杀死单位最多时
MOSTRESOURCESCurrentplayerhasmostresources.
当前玩家积累资源最多时
NEVERNever.从不
OPPONENTSPlayerhasquantityopponentsremaininginthegame.
该玩家在游戏拥有多少对手时
SCOREPlayerscoretypescoreisquantity.
该玩家得分是多少时
SWITCHSwitchisset.
开关被设置或清除时
(慢慢看,3分钟后再看下面)
结果也有很多种
CENTERVIEWCenterviewforcurrentplayeratlocation.
将画面转至某特定区域
COMMENTComment:
comment.
对触发器加以说明,使之便于阅读
CREATEUNITSCreatequantityunitatlocationforplayer
在特定区域为玩家创造一定数量的单位
CREATEUNITSWITHPROPERTIESCreatequantity
unitatlocationforplayer.Applyproperties
在特定区域为玩家创造一定数量的具有一定属性(如隐形,钻地等)的单位
DEFEATEndscenarioindefeatforcurrentplayer.
当前玩家任务失败
DISPLAYTEXTMESSAGEDisplayforcurrentplayer:
text.
为当前玩家显示一些交代文字
DRAWEndthescenarioinadrawforallplayers.
所有玩家平手
GIVEUNITSTOPLAYERGivequantityunitsownedbyplayeratlocationtoplayer.
将特定区域的一个玩家(前者)的一定数量的部队给另一个玩家(后者)
KILLUNITKillallunitsforplayer.
杀死玩家的所有单位
KILLUNITSATLOCATIONKillquantityunitsforplayeratlocation.
杀死玩家的在特定区域的一定数量的单位
LEADERBOARD(CONTROLATLOCATION)
ShowLeaderBoardformostcontrolofunitsatlocation.Displaylabel:
label
显示目前特定区域里的单位控制情况
LEADERBOARD(CONTROL)
ShowLeaderBoardformostcontrolofunit.Displaylabel:
显示目前单位控制情况
LEADERBOARD(GREED)
ShowGreedLeaderBoardforplayerclosesttoaccumulationofnumberoreandgas.
显示目前总的资源收集情况
LEADERBOARD(KILLS)
ShowLeaderBoardformostkillsofunit.Displaylabel:
显示目前杀死单位的情况
LEADERBOARD(POINTS)
ShowLeaderBoardformostpoints.Displaylabel:
显示目前得分情况
LEADERBOARD(RESOURCES)
ShowLeaderBoardforaccumulationofmostresource.Displaylabel:
显示目前资源收集情况
LEADERBOARDGOAL(CONTROLATLOCATION)
ShowLeaderBoardforplayerclosesttocontrolofnumberofunitsatlocation.Displaylabel:
显示还需在特定区域里控制多少单位可达目标
LEADERBOARDGOAL(CONTROL)
ShowLeaderBoardforplayerclosesttocontrolofnumberofunit.Displaylabel:
显示还需控制多少单位可达目标
LEADERBOARDGOAL(KILLS)
ShowLeaderBoardforplayerclosesttonumberkillsofunit.Displaylabel:
显示还需杀死多少单位可达目标
LEADERBOARDGOAL(POINTS)
ShowLeaderBoardforplayerclosesttonumberpoints.Displaylabel:
显示距离目标得分还差多少
LEADERBOARDGOAL(RESOURCES)
ShowLeaderBoardforplayerclosesttoaccumulationofnumberresource.Displaylabel:
显示还需收集资源可达目标
LEADERBOARDCOMPUTERPLAYERSSetuseofcomputerplayersinleaderboardcalculations.
关闭或打开电脑的情况显示
MINIMAPPINGShowminimappingforcurrentplayeratlocation.
当前玩家的小地图显示警告框
MODIFYUNITENERGYSetenergypointsforquantityunitsownedbyplayeratlocationtopercent%.
修改特定区域里一定数量的玩家控制单位的能量
MODIFYUNITHANGARCOUNTAddatmostquantitytohangarforquantityunitsatlocationownedbyplayer.
修改特定区域里一定数量的玩家控制单位的弹药(如航母,金甲虫)
MODIFYUNITHITPOINTSSethitpointsforquantityunitsownedbyplayeratlocationtopercent%.
修改特定区域里一定数量的玩家控制单位的生命值
MODIFYUNITRESOURCEAMOUNTSetresourceamountforquantityresourcesourcesownedbyplayeratlocationtoquantity.
修改特定区域里一定数量的玩家控制单位的能量
MODIFYUNITSHIELDPOINTSSetshieldpointsforquantityunitsownedbyplayeratlocationtopercent%.
修改特定区域里一定数量的玩家控制单位的护盾
MOVELOCATIONCenterlocationlabeledlocationonunitsownedbyplayeratlocation.
将一个特定区域移动到一个单位身上在一个特定区域内
MOVEUNITSMovequantityunitsforplayeratlocationtodestination.
将玩家一定数量的单位由一个特定区域移动到另一个特定区域
MUTEUNITSPEECHMuteallnon-triggerunitsoundsforcurrentplayer.
关闭当前玩家所有非触发单位的声音
ORDERIssueordertoallunitsownedbyplayeratlocation:
ordertodestination.
命令玩家的单位在从一个特定区域里移动.攻击.巡逻到另一个特定区域
PAUSEGAMEPausethegame.
暂停游戏
PAUSETIMERPausethecountdowntimer.
暂停倒计时
PLAYWAVPlayWAVfile
播放一段声音
PRESERVETRIGGERPreserveTrigger.
循环执行当前触发
REMOVEUNITRemoveallunitsforplayer.
移除玩家所有单位
REMOVEUNITSATLOCATIONRemovequantityunitsforplayeratlocation.
移除玩家在特定区域里的一定数量的单位
RUNAISCRIPTExecuteAIscriptscript.
运行一个人工智能
RUNAISCRIPTATLOCATIONExecuteAIscriptscriptatlocation.
在特定区域运行一个人工智能
SETALLIANCESTATUSSetPlayertoAllystatus.
设置当前玩家与另一个玩家同盟或敌对
SETCOUNTDOWNTIMERModifyCountdownTimer:
Setdurationseconds.
设置倒计时时间
SETDEATHSModifydeathcountsforplayer:
Setquantityforunit.
设置玩家的死亡单位计数
SETDOODADSTATESetdoodadstateforunitsforplayeratlocation.
特定区域里小物件的设置
SETINVINCIBILITYSetinvincibilityforunitsownedbyplayeratlocation
设置特定区域里的玩家单位无敌
SETMISSIONOBJECTIVESSetMissionObjectivesto:
设定本关任务
SETNEXTSCENARIOLoadscenarioaftercompletionofcurrentgame.
设定当前任务结束后读取的地图
SETRESOURCESModifyresourcesforplayer:
Setquantityresource.
为玩家设定一定数量的资源
SETSCOREModifyscoreforplayer:
Setquantitypoints.
设定玩家得分
SETSWITCHSetswitch.
开关设置
TALKINGPORTRAITShowunittalkingtocurrentplayerfordurationmilliseconds.
为当前玩家显示单位肖像一段时间
TRANSMISSIONSendtransmissiontocurrentplayerfromunitatlocation.PlayWAVfile.Modifytransmissionduration:
Setnumbermilliseconds.Displaythefollowingtext:
Text
设置一段对话。
包括小地图上单位的地点显示,伴随的声音及文字
UNMUTEUNITSPEECHUnmuteallnon-triggerunitsoundsforcurrentplayer.
解除当前玩家所有非触发单位的声音的关闭
UNPAUSEGAMEUnpausethegame.
解除游戏暂停
UNPAUSETIMERUnpausethecountdowntimer.
解除倒计时暂停
VICTORYEndscenarioinvictoryforcurrentplayer.
当前玩家任务胜利
WAITWaitfordurationmilliseconds.
等待一段时间(千分之一秒)
(看5分钟后再接着看)
条件满足了就会执行结果
比如:
条件:
我至少杀了一个人(player1killatleastoneanyunit)
结果:
把我移动到监狱.
(Moveallunitsforplayer1atanywhereto监狱.)
星际RPG地图制作(三)AI的使用
首先大家应该知道的是AI脚本有两大类:
1.是无分位置(Location,以下内容不作解释)的AI脚本
2.是在指定位置运行的AI脚本
先讲第一种吧:
它的Actions是RunAIScript,其中有三项
1.Sendallunitonstrategicsuicidemissions:
是一种有计谋的杀戮行动!
会把自己的兵力像是开扁似的全叫去打(只要去得到的地方),直至可能被杀到的敌人(包括以其敌对的电脑玩家!
以下内容不作解释)全死或自己部队全死,否则就不停的杀杀杀!
2.Sendallunitonrandomsuicidemissions:
像是没用使用任何AI时一样,但警觉范围明显更大。
3.Switchcomputerplayerrescuepassive:
就是让该Player进入被缓救状态(就是你走前去就会加入的那种),简单地说该Player的Control(Player/Setting.....)变了Rescuable。
第二种的AI有很多!
但其实大致分以下几类:
1.(种族省略)Customlevel:
星际旧版本(非血战)的建造基地AI,几乎没有进攻性。
2.还有Zerg/Terran/ProtossCampaignEasy/Medium/Difficult/Insane
以下是各难度等级的介绍:
Easy:
低级的发展和进攻AI,一般用来设计系列地图的初始关。
Medium:
中等级别的发展和进攻AI,比Easy更晓得发展,会造更多的兵种,在系列地图中,头几关会用得着。
Difficult:
一般与玩单人模式的AI差不了多少,大家心知,所以不作介绍。
Insane:
有弱智和疯狂的意思,只会疯狂地造兵和发展,有频密的进攻而且所用兵种一次比一次高级的!
但一般是以量取胜,且不死掉原有的低级兵种就不会想到去发展高级的,所以弱智,但当魔法和高兵种出现时异常难对付!
有时还发傻似的乱打,如果基地大而又少防守公事的话,呵呵...等受罪吧。
还有一个特别的难度(其实不是难度等级):
Areatown:
只采矿,几乎不发展和造兵的AI!
如果用于设置任务中电脑的分基地的AI的话就非常有用(这才是真正用途)。
注:
加了Expansion字眼的AI是指以血战为基础的AI,若用没有Expansion一词的AI将不造血战的新兵种(如医生之类)和不升级新的科技(如大象的速度和皮+2的升级)!
当然用来有Expansion字眼的AI文件会存为SCX文件。
设置联盟状态AI脚本:
Setplayerto(*状态)
*Enemy:
以Player为敌;
*Ally:
以Player为盟。
这种AI与Actaion中的Setalliancestatus有异曲同工之效(但是并非完全一样)!
valuethisAreahigher:
使电脑玩家在所用之处放兵力防守,一般是让电脑看守重要地方或建筑的AI。
Enterclosestbunker:
所用之处的Terran人自动进入最近的堡垒。
还有就是进出运输工具(各族的)
(*动作)Transport:
*Enter:
陆地兵种们会进入该位置的运输工具;
*Exit:
相反,这个AI会使运输工具里的东东出来。
Enterclosestbunker和Enter/ExitTransport,还有SetplayertoEnemy/ally是可用在人类(Human)玩家上的。
怎样才能使电脑有好的作战AI呢