首页>游戏>mod模组>红警手机版mod核战争
红警手机版mod核战争
红警手机版mod核战争

红警手机版mod核战争

高速下载 普通下载
15
详情 同类热门 热门攻略
  • 红警手机版mod核战争
  • 红警手机版mod核战争
  • 红警手机版mod核战争
详情

红警手机版mod核战争是一款基于《红色警戒2》的MOD,这个游戏设定在21世纪,描绘了一个由中国崛起引发的国际政治和军事冲突背景。游戏中加入了多个新的阵营,包括中国、俄罗斯、美国、日本、德国、印度、法国、朝鲜和阿拉伯等,每个国家都有其独特的现代化军事单位。

玩法攻略

红警怎么设置脚本

执行后可以观察到输出

一共100个EASB。

这条循环语句可以理解为:令i=1,如果i<=100,则i自增(i=i+1),并执行WriteToFile,然后继续判断i<=100是否成立,如果成立,则再自增,并执行WriteToFile,再判断......直到i自增到101时,i<=100不成立,结束循环。

可以用break或return提前结束循环。

为了比较两者的区别,这里写上

执行后可以看到输出

break语句可以跳出本层循环,再看看使用return的情况

输出文件为

这次没有最后的那句'interrupt"了,因为当执行到return的时候,不仅会跳出循环,还会直接终止执行本条function的所有内容。

写一个能够获取单位百分比血量的function(因为是取整的所以会有误差)

function GetUnitPercentHealth(Object)

if type(Object) == "table" then

Object = GetObjectOrderName(Object)

end

for i=0,100 do

if EvaluateCondition("UNIT_HEALTH",Object,CompareTable["<="],i) then

return i*0.01

end

end

end

利用原版中海啸坦克开f后会获得USER_6的模型条件,以此触发lua。

同时

为了排除干扰,可以暂时先把原本的那个回血模块去掉。

执行完毕后可以查看输出,并计算一下看看测得是否准确,误差应该不会超过1%。

确认无误后,我们弄一个扣血的算法,当三轮车使用技能后,根据自己目前的血量来确定瞬间扣除多少的生命值。

造成的伤害=百分比生命值*163+5,并向负方向取整。

table的使用是lua中非常重要的内容,是实现各种复杂功能的关键,所以下面会用比较长的篇幅来举例说明。

table也称表、数组,是lua语言中最重要储存数据的结构(全局变量也可以储存数据,但功能远不如table)。

先认识一下table长什么样的。

显性地表示,table长这样

第一个EASB就是一个table,只不过里面没有元素。

第二个SBEA是最常见的形式的table,相当于SBEA[1]的值为数字4,SBEA[2]的值为数字3,SBEA[3]=false,SBEA[4]=0,SBEA[5]="RA3"等等。

第三个EA,这种用字符串索引的table,查询的形式是EA["rts"]的值是字符串"HHHHHH",EA["RA3"]="EAEAEAEA"以及["EASB"]=7。

第四个包含有二维数组的结构,ra3[1]的值是另一个table,即ra3[1]={"jjk","factory"},而且ra3[1][1]的值为字符串"jjk",ra3[1][2]="factory"而ra3[2][1]="ss",ra3[2][2]="Engineer"(这个对照第二个那个EASB应该能想明白)。

第五个也是包含了二维数组的结构,其中RA3["JJK"]={"WarFactory","sells itself"},而在这里,RA3["JJK"][1]="WarFactory",RA3["JJK"][2]="sells itself"。至于后面自然就是RA3["sell factory"]=233(对照一下第三个那个EA应该能想明白)

在游戏的lua中table的主要功能就是存储信息,并在需要使用的时候提供访问查询。

我们前篇文章写到的那个

这实际上就是一个table,其中CompareTable["<"]=0,CompareTable["<="]=1等等。而在这里,table就可以起到一个查询信息的功能,因为我们不能在脚本参数中直接填写比较符号而要填对应数字,所以写上这个table的,比如当我们需要比较关系大于>的时候,就可以写CompareTable[">"],从而比填写数字4更加直观,虽然直接对着填数字看起来更简洁,但无论是哪种写法,我们写的这个table就避免了每次写比较关系都要打开地编来数数的麻烦。

事实上在EvaluateCondition和ExecuteAction中的ObjectStatus和KindOf都不能直接填写,而是要和上面一样填写地编里(或者xsd里)对应的顺序。所以当不使用table来记录这些信息的时候就有点麻烦了,因为要数上百个,而且还容易出错。而当使用了table的时候,事情就变得轻松多了。

table的一个功能就是查询信息,以状态的判断和设置为例。

用于判断状态的脚本是这个。

先这样来做一个对比。

分别让三轮坦克升级到星级前后使用技能触发,观察到输出

可以看出在星级前对于海啸坦克没有NO_BRIBE状态的判断似乎都准确,但当它升级到星级后明明是具有NO_BRIBE的状态的,可前面的那个脚本判断似乎没有正确,而后面填的那个看起来莫名其妙的199似乎是判断出来了什么。

我们打开地编看看这条脚本

看到这里是否已经意识到,和之前的那个比较大小的写法一样,这里也是需要数数然后填数字的,或者可以在ObjectStatus.xsd里面数,但无论是在哪里数,要数到199个那真是不情愿。所以我们可以使用一个这样的table。

源代码文件名为ObjectStatusTable.lua,运行结果ObjectStatusTable.txt。

把这个ObjectStatusTable复制到Scripts.lua的最开头,此后我们可以写道

在这里,通过字符串索引"NO_BRIBE"和"IMMUNE_TO_BARK",成功在ObjectStatusTable中访问到了对应的值,即这两个状态的顺序。执行这个function后我们可以得到正确的判断。

用脚本设置状态的写法示例

状态的设置可以用这两种函数,但第二个函数除了可以赋予状态,还能消除状态。

利用循环遍历表

(1)下面这个是原版所有的ModelCondition(文件名ModelStateTable.txt)

太长了截不完

把它复制到Lua文件的靠前面,然后可以测试一下载具载乘客的时候会有哪些模型状态。

以IFV为例

function OnAlliedAntiAirVehicleTech1Damaged(self)

for i=1,getn(ModelStateTable) do

WriteToFile(ModelStateTable[i].." "..tostring(ObjectTestModelCondition(self,ModelStateTable[i])))

end

end

分别在IFV进入乘客前后执行,可以通过对比查找true,然后可以发现

仅有这一个true,因而可以判断载具有乘客时会有一个LOADED的模型条件。

(2)测出用地编放置的物体有没有特殊状态。

还是以IFV为例,写上

function OnAlliedAntiAirVehicleTech1Damaged(self)

local ObjSelf = GetObjectOrderName(self)

for i=0,222 do

WriteToFile(tostring(i).." "..tostring(EvaluateCondition("UNIT_HAS_OBJECT_STATUS",ObjSelf,i)))

end

end

执行后查看输出文件

只有第134个是true,再看看第134个对应的是LOADED_FROM_MAP,所以知道地编放置的单位会有一个LOADED_FROM_MAP的状态。

table的内容可以根据需要进行修改。在阅读下文时要始终记得:function执行中产生的信息,在其执行完毕后就会消失,因而对于一些在之后要用到的信息,我们必须先想办法储存起来,即存于table中。在table里存储的信息会一直保存直至对其进行修改或游戏结束。

(这个看不懂可以先看一下下个例子)在第二篇文章中提到,根据AI战术命名的队伍由于无法直接确定遭遇战玩家数字而不能直接使用队伍全名,但使用了table之后,就可以解决这个问题,因为可以使用归属同一玩家的物体用户玩家相同(也就是ObjectDescription那里的玩家数字)的特性,弄一个参照表,显性表示就是形如

这里相当于用用户玩家查询出遭遇战玩家

事实上这个table每个玩家只需填写一次,所以可以由PlayerSpellBook触发执行。

把魔导书KIndOf属性里的INERT去掉,加一段lua模块

写上

在lua文件里,我们需要先写一个返回用户玩家的function

为了测试一下,我们再写一个

让魔导书执行function后我们可以看到输出文件

成功将遭遇战队伍名(当然也就可以代表对应的遭遇战玩家名)和用户玩家名对应了。

那现在将用户玩家和遭遇战玩家对应起来

写一个获得遭遇战玩家的function

function GetPlayerNameByTeam(teamname)

if teamname then

if teamname ~= "team" then

return strsub(teamname,1,strfind(teamname,"/")-1)

else return "Player_0" end

end

end

让魔导书出生的时候填table

我们再对那个GetObjectTeamName进行一些修改

现在我们对帝国电站进行测试

给帝国电站写上Lua,并写个function

进入游戏测试,可以查看输出并看看对于遭遇战AI和人类玩家分别有什么效果。

接下来的例子比较重要,希望大家能够掌握。

(1)如果我们要统计百合子用了多少次技能

先给百合子一个lua模块

lua里写上

其中这个YurikoTable是用于统计百合子使用了多少次技能的。自然在初始时候这个table是没有元素的,但能够依靠后面函数的执行而对其进行添加元素。

假设某个百合子的名称是"object_233",即ObjSelf此时的值,那出生后就增加了YurikoTable中的内容,显性地表示就是YurikoTable["object_233"]=0。

完成这个工作后,现在就可以统计百合子使用技能的次数了。因为百合子使用技能后会有一个PACKING的模型,所以

加上个

lua里写上

表明每次使用技能结束后,原先的YurikoTable["object_233"]都会自增。

测试一下,统计百合子使用技能的次数(为方便测试可以将技能CD改短)

假设我们要它根据使用技能的次数的,在使用技能后给不同的效果,比如

function JapanCommandoTech1L_PACKING(self)

local ObjSelf = GetObjectOrderName(self)

YurikoTable[ObjSelf] = YurikoTable[ObjSelf] + 1

if YurikoTable[ObjSelf] == 1 then

ExecuteAction("NAMED_DAMAGE",ObjSelf,-100)

elseif YurikoTable[ObjSelf] == 2 then

ExecuteAction("UNIT_GIVE_EXPERIENCE_LEVEL",ObjSelf,"JapanCommandoTech1ExperienceLevel_4")

elseif YurikoTable[ObjSelf] == 3 then

ObjectCreateAndFireTempWeapon(self,"JapanEmperorsResolveWeapon_L3")

else ObjectCreateAndFireTempWeapon(self,"TelekineticExplosion")

end

end

测试发现,第一次使用技能后,会恢复100点血,第二次会升级到星级,第三次会释放三级天皇之怒,其余情况是释放超能波武器(在这里相当于第四次,因为自己被炸死了没有后续)。

把百合子建造的数量限制去掉,多制造几个百合子看看计数是否会混乱?

不会混乱,因为名称是唯一的,那每个名称的索引就是唯一的,都是会分开计数的,显性地表示就是形如YurikoTable = { ["object_233"]=3,["object_234"]=1,["object_235"]=2}。

如果想要在第三次释放天皇生气后重新计数,则可以改成

(2)通过协议,将自己的东西送给指定玩家。以盟军矿场为例,弄一个敌人的ATM给自己提款。

我们给魔导书写个两个关联的技能,第一段是选中指定矿场,第二段是选中指定玩家的建造厂。要改的内容包括指令集、指令、技能、用技能发射武器、武器、按钮等等(这里只展示部分,记得把魔导书KIndOf的INERT去掉)

这个禁止模型好像不起作用

武器那里,第一个就是给自己矿场的,第二个是给建造厂的。

先改一下盟军矿场,把这段lua改成

为了让大家能弄明白原理,先用WriteToFile展示一下(如果自认为能看懂可以去掉WriteToFile)

再改一下苏联建造厂的lua

在游戏里,对自己的盟军矿场使用协议,然后对敌人苏联建造厂使用,我们可以发现自己的矿场给了对面,再看一下输出

object_1就是自己的魔导书名称,object_307就是矿场。

其中第一行是在矿厂触发的,所以是ObjOther="object_1",ObjSelf="object_307",那自然SpellBookTable[ObjOther] = ObjSelf也就表示将字符串"object_307"的值赋予SpellBookTable["object_1"]。

第二和第三行,是在建造厂的函数里触发的,对照下来看,所以以魔导书名称为索引的table成功实现了存储矿场名称的功能,并在建造厂触发lua的时候通过魔导书的索引在SpellBookTable中查询出了矿场的名称,进而用脚本将其强制纳入自己的队伍。为了有提款机的作用,顺便给矿场设置了一个不能出售的状态。

为了让还没展开、已经转让过的矿场不能转让,同时为了避免语法有误,对代码进行一些完善

以下方式二选一

(3)下面的例子参照 https://www.bilibili.com/read/cv5406460

要实现铁锤坦克出生后自动吸造出自己的重工,办法是在铁锤出生瞬间给重工一个信号,触发重工的lua事件并用table记录下来铁锤对应的重工(即自己),稍后铁锤触发自己的lua,查询table并吸自己的重工。

首先铁锤出生的时候向重工发送一个信号

注意有改动

可以调用原版的function,并且为铁锤出生后设置3s的USER_1模型,以便后续触发lua

function OnSovietAntiVehicleVehicleTech1Created_2(self)

OnSovietAntiVehicleVehicleTech1Created(self)

ObjectBroadcastEventToAllies(self,"BeginChanting",1)

ExecuteAction("UNIT_SET_MODELCONDITION_FOR_DURATION",self,"USER_1",3,100)

end

接着给重工注册lua

新建table,为了便于理解,还写上

之后写上铁锤失去USER_1的模型后触发的lua

当铁锤造出来后,我们可以看到

实际上这就是重工触发的那个lua,可以理解object_532就是重工的名称,object_534就是铁锤的。当铁锤失去USER_1之后触发对应的function,看到多了后面那两个

再对应代码,object_534就是铁锤自己的名称,而object_532是造出自己的重工的名称,因为之前重工执行的function相当于以铁锤的名称为索引,登记上了自己的名字,即在这里是HammerTable["object_534"]="object_532"从而后续铁锤能够根据索引查询出对应的重工。

明白了这点后把那几个WriteToFile去掉,然后

function SovietAntiVehicleVehicleTech1L_USER_1(self)

local ObjSelf = GetObjectOrderName(self)

if not ObjectTestModelCondition(self,"WEAPONSTATE_ONE") then

ExecuteAction("NAMED_USE_COMMANDBUTTON_ABILITY",ObjSelf,"Command_ToggleLeechBeam")

end

ExecuteAction("NAMED_FORCE_ATTACK_NAMED",ObjSelf,HammerTable[ObjSelf])

ObjectForbidPlayerCommands(self,true)

end

实现的功能分别是:通过模型条件判断是否切换了汲取武器,如果没有则使用技能;强制攻击对应重工;禁止玩家控制自己。

节目效果

扩展内容(此部分内容建议阅读下一个例子后再看):

为了在重工被吸爆后还会寻找己方的其他的重工,我们可以在所有重工展开好后以自己的用户玩家(或者遭遇战玩家或队伍,总之唯一就行)为索引,登记一个2维的table。

新加一些东西

function SovietWarFactoryL_STRUCTURE_UNPACKING(self)

local UserPlayer = GetObjectUserPlayerName(self)

if not WarFactoryTable[UserPlayer] then

WarFactoryTable[UserPlayer] = {}

end

local length = getn(WarFactoryTable[UserPlayer])

WarFactoryTable[UserPlayer][length+1] = GetObjectOrderName(self)

end

假设UserPlayer=”player 3",当自己第一个重工展开时,那WarFactoryTable[UserPlayer]的值肯定是nil,所以not WarFactoryTable[UserPlayer]即not nil的值为true,则执行then后面的一段,即创建一个二维的数组WarFactoryTable[”player 3"] = {}。getn(WarFactoryTable[UserPlayer])为当前二维数组的元素个数(当然第一次为0),赋值给length,接着给WarFactoryTable[UserPlayer]添加元素,即自己的名称。

为了便于理解,我们可以新多加几句

在游戏里自己连续造出来5个重工,看看文件输出

这样我们就相当于对每个重工的名字进行了登记(因为地编直接放置的重工没有展开过程所以不会登记)。

现在把新加的那部分去掉。

因为要当一个重工摧毁后,铁锤会失去攻击的FORCE_ATTACKING状态,所以可以以此作为触发条件

function SovietAntiVehicleVehicleTech1L_FORCE_ATTACKING(self)

local UserPlayer = GetObjectUserPlayerName(self)

local ObjSelf = GetObjectOrderName(self) local Factory

for i=1,getn(WarFactoryTable[UserPlayer]) do

Factory = WarFactoryTable[UserPlayer][i]

if EvaluateCondition("NAMED_NOT_DESTROYED",Factory) then

ExecuteAction("NAMED_FORCE_ATTACK_NAMED",ObjSelf,Factory) return

end

end

ObjectForbidPlayerCommands(self,false)

end

这样当己方一个重工摧毁后,就会寻找下一个重工,直到己方所有重工摧毁,恢复控制。

可以再测试一下,恢复控制后再造重工,再次强A会有什么效果。

所以为了让恢复控制的铁锤不再自己吸重工,我们可以

补上这些,原理是

首先触发条件只有都满足完才会触发,即拥有IN_COVER的状态,又失去了FORCE_ATTACKING的状态才能触发,但铁锤恢复控制后会消除IN_COVER的状态,所以之后就不会再次触发(IN_COVER有什么实际作用我不知道,只是作为一个判断的标签使用)。

(4)在兵营摧毁后,杀死由该兵营训练出的所有动员兵。

基本方法还是动员兵出生时给兵营一个信号,让兵营在table里登记,兵营摧毁后通过查表找到对应的动员兵并杀死。

要让动员兵出生的时候发送一个信号,如

对于兵营

BarracksTable = {}

function OnSovietBarracksCreated(self)

local SelfName = GetObjectOrderName(self)

BarracksTable[SelfName] = {}

WriteToFile(SelfName)

WriteToFile(BarracksTable[SelfName])

end

function SovietBarracksBeScary(self,other)

local ObjSelf = GetObjectOrderName(self)

local TableLength = getn(BarracksTable[ObjSelf])

BarracksTable[ObjSelf][TableLength+1] = GetObjectOrderName(other)

end

function OnSovietBarracksDestroyed(self)

local ObjSelf = GetObjectOrderName(self)

local length = getn(BarracksTable[ObjSelf])

WriteToFile(length)

if length >=1 then

local Conscript

for i=1,length do

Conscript = BarracksTable[ObjSelf][i]

ExecuteAction("NAMED_KILL",Conscript)

WriteToFile(Conscript)

end

end

end

首先兵营出生,执行对应的function,即建立二维table,并且观察到输出

第一个就是兵营的名称,第二个就是BarracksTable["object_474"]的值,可以看出是一个table,这里涉及到了二维table的结构,即相当于BarracksTable = { ["object_474"]={} }。

接着训练出几个动员兵,因为每个动员兵出生后都会发送一个BeScary的信号,由兵营接收后按顺序往后登记(形式就如同之前说到底ModelStateTable,参考一下)。

兵营摧毁时,执行对应函数,length实际上就是BarracksTable["object_474"]这个二维table的元素个数,表示了登记了多少个动员兵。在后面中将每个动员兵按顺序杀死。

试一下多造一些兵营试验,是否会造成混乱?为什么?

红警补充说明

Range控制的是你选定一个超武准备释放的时候显示的那个范围,而且也只是个显示范围,实际作用的范围是由SW.Range控制的。LineMultiplier是决定这个范围圈里的那些小圈的密集程度

UseChargeDrain这个语句是TS里GDI的火风暴防御系统用的,实际效果是这个超武在充能完毕以后启动时以一个固定的速率消耗它的充能条直到耗尽,玩家可以在启动后再次点击图标来手动停止启动,超武会重新充能消耗掉的部分而不是重置倒计时。这个功能只应当与Type=Firestorm的超武共同使用,给其他类型超武用UseChargeDrain=yes可能导致无法预测的结果(来自Ares说明书)

红警超级武器的制作方法

相信是很多玩家感兴趣的东西,它们凭借强大的威力和震慑力,给你玩家们留下了深刻的印象。也因此经常惨遭封禁,每次联机前都要求关闭超级武器。尽管一般超级武器经常被封禁,但是这也不能成为一个MOD没有自己的超级武器的理由。今天,我通过几个实例,给大家讲解如何新增一个超级武器。

超级武器的基本概念

在制作超级武器之前,首先要弄清超级武器的概念。如果你连它是什么都不知道,那更不要提制作了。很多人可能会笑了,谁还不知道超级武器呢?但是我们MODer口中的超级武器,跟玩家口中的超级武器概念是不一样的。好比高中物理速度的概念是位移除以时间,初中则是路程除以时间,这就是内行和外行的区别。超级武器硬要说的话,就是可以在你的武器界面直接选择目标释放,由指挥官(即玩家)亲自操纵的武器。美国大兵用的自己的机关枪,犀牛坦克用的自己的主炮,而指挥官的武器,就是超级武器。这样说可能大家还不明白,我举个例子,伞兵,侦察机什么的都是超级武器,现在不懂的话没关系,等后面讲完制作等一系列知识,就能理解了。

2.制作超级武器必备的知识

前面提到,伞兵、侦察机什么的也是超级武器。超级武器由于是指挥官直接释放,它就需要一个特殊的鼠标指针,而且游戏规定,不同超级武器使用的鼠标指针不能相同,因此,在制作超级武器之前,我们首先要知道如何新增一个鼠标指针。

定义鼠标指针的方法NP和Ares是不同的,这里我们只说Ares的,NP的在说明书里已经详细到不能再详细了,Ares的汉化说明书给出的说明较少,当然你可以去官方英文说明查看,但是我认为还是我这这里讲一下比较好。

首先,在rules.ini里自己新增一个[MouseCursors]注册表,这跟Ares新增那个空爆武器注册表差不多,你随便找个不冲突的位置插进去这个注册表就可以。接着就是新增指针了,首先我们用XCC进入ra2md→conqmd.mix,找到mouse.sha文件,ctrl+Q自动调色后,看到这个文件是鼠标的全部指针的一个动画。双击开始播放动画,找到你想用的动画的帧,记住序号。接着我们到这个注册表下定义指针,我定义了一个,定义方法及含义如下:

[MouseCursors]

TestCursors=249,10,6,516,1,Center,Middle

;Name=Frame,Count,Interval,MiniFrame,MiniCount,HotSpotX,HotSpotY

;指针名称=[开始桢],[ 动画桢数],[停顿间隔],[小地图开始桢],[ 小地图的动画桢数],[鼠标坐标X],[ 鼠标坐标Y]

这里说一下要点:

HotSpotX可以填的值有Left, Center和Right,意思不用我说了吧,只要你会小学英语

HotSpotY可以填的值有Top, Middle和Bottom,不过多解释

NP和Ares虽然定义结构相同,但是这两个值是不一样的,NP的是用数字表示,一定不要弄混

将小地图开始帧写成-1来禁用小地图释放超级武器

另外,这种指针定义的方法在你用Ares自定义移动、部署、进入等鼠标指针时,也会用到。

然后记住你定义的指针名称,等会要用。

3.新增一个超级武器的实例——超级变态心灵控制

注:请大家不要以这种变态玩法为目的制作超级武器,这里只是演示效果和制作方法,也是应某人的要求。

超级武器制作非常的简单,对NP来说,找到要制作的类型,直接复制说明书的代码改参数就可以了。对Ares来说,则要复制上原版超级武器有的代码,然后组合Ares新的超级武器代码。这里我的超级变态心灵控制要实现的效果是大范围全单位控制。。

我们打开Ares中文说明书的超级武器部分,里面有通用设置和各种类型超级武器的专门设置,通用设置的代码有两种,一种是公用必须的设置,另一种则是用来控制一些特殊的特性。其中公用必须的设置是必须存在的。下面我们开始制作!

第一步,超级武器是需要注册的,在[SuperWeaponTypes]里进行注册。注意超级武器的注册名不要太长,否则会导致超级武器作废。这里我注册了一个TestSpecial。

[SuperWeaponTypes]

………………

13=TestSpecial ;注册超级武器

接着我复制原版的心灵控制的超级武器(PsychicDominatorSpecial)代码,并加以修改,以下是修改后的代码,我已经给出了注释。

[TestSpecial]

UIName=Name:TestSpecial ;显示的名称

Name=Lightning Storm ;注释用的

IsPowered=true ;是否需要电力

;-------------------------------------

RechargeVoice=00-I156

ChargingVoice=

ImpatientVoice=

SuspendVoice=

;-------------------------------------

RechargeTime=2 ;充能时间(min)

Type=PsychicDominator ;类型=心灵支配

;Action=PsychicDominator ;使用的鼠标指针(原版)

Cursor=TestCursors ;鼠标指针

SidebarImage=PDOMICON ;显示的图标

ShowTimer=yes ;是否在屏幕右下角显示倒计时

DisableableFromShell=no ;是否受到超级武器开关影响

Range=50 ; 鼠标指针指示的范围

LineMultiplier=3 ;用于显示范围的线数

SW.Range=50 ;控制范围

SW.Damage=-1 ;控制前伤害,负数是没伤害

SW.AffectsTarget=infantry,units,buildings ;控制对象

Dominator.CaptureImmuneToPsionics=yes ;是否可以强行控制免疫的单位

Message.Ready=MSG:TestSpecialReady ;超武就绪后提示的文本信息

UseChargeDrain=yes ;是否为充能超武

这里说一下重点:

跟国家与阵营制作一样,这里的代码有很多使用了默认值,全部代码详见说明书

跟国家与阵营制作一样,你可以在原版的超级武器上加入这些Ares超级武器语句,达到对原版超级武器的修改,或者去修改原版超级武器的参数(在全局设置[General]部分)

特别注意:原版Ares教程中在通用设置里SW.Range=的翻译是错的,真正掌控鼠标指针指示范围的是Range=而不是SW.Range=,相信大家能看出来,因为他在每种类型又说了不同的效果啊,肯定是不合理的

Ares使用鼠标指针的语句已改成Cursor=,不再使用原版的Action=,请注释掉原版防止冲突

UseChargeDrain=充能超武是原版一种未使用的逻辑,仍然有效,他的作用是在你超武释放时进行反充能计时,在此过程可以无限制释放超级武器

这样我们的超级武器就制作完成了,接下来我们需要把他绑定到相应的建筑上,原版一个建筑只能绑定两个超级武器,分别使用SuperWeapon=与SuperWeapon2=,Ares可以绑多个,使用SuperWeapons=,当然你用SuperWeapons=就绑一个也可以。我为了测试快,把他绑定在尤里基地(YACNST)上。

[YACNST]

………………

SuperWeapons=TestSpecial ;关联的超级武器=超级变态心灵控制

最后,进入游戏,选择尤里,展开基地车,等超武充能完毕测试效果。

红警热键介绍

Q--- 建筑建造栏。再按一下可快速放下准备好的建筑。

W --- 防御设施建造栏。

E--- 人员建造栏。 R--- 车辆建造栏。

K --- 修理。

L--- 变卖。

H--- 回主基地。

space(空格)--- 前往当前出事地点。

部队选取键:

M---下一个部队。

N---上一个部队。

U---按生命值选择部队。

Y---按等级选择部队。 T---选取同类型部队。

P---集结所有有攻击力的部队,可用与无力生产的时候拼个鱼死网破。

队伍控制键:

CTRL + 0~9 ---编队。

SHIFT + 0~9 ---加入编队。

CTRL + F(1~4) ---设定建筑物编号。

CTRL ---强行攻击。打击幻影和防止自己误伤。

CTRL + SHIFT---移动攻击。可用于探路的时候,增加咬死对方狗狗的机会,也可以用于对付蜘蛛海和飞兵。 ALT---强制移动。压兵和躲避法国大炮。

ALT + Z---压兵。COOL! CTRL + ALT ---保护其他单位。

D ---部署。特别是对美国大兵和装了辐射兵的防空车。 G---警戒。对幻影效果特别好。 X---散开。主要用于美国大兵。

S---停止行动。可以让部队快速停止移动,利于诱敌进入你的优势火力中,也可在与狗狗对面碰的时候,快速反应,咬死对方的*R>CTRL + 方向键---移动到屏幕底端。初期探路用,非常好。

F---跟随镜头。

Z---设定移动和攻击LU线。

多人对战模式键:

TAB---外交菜单。

A---结MENG。

C---欢呼。

Enter---与所有观战者交谈。按Enter开启交谈功能,输入讯息后,再按 Enter 传送讯息,按鼠标右键取消讯息。

Home---与所有盟友交谈。

End---与所有玩家交谈。

B---布置信标 。按下 B 键,按下 Enter 输入讯息后,再按 Enter 传讯,按 Del 取消讯息。

Ctrl + F1~F4---设立书签。

F1 ~ F4---前往书签所在位置。

F5 ~ F12 ---向其他玩家传送预设的音效讯息。 常用的是:D展开,H回主基地,T是全选.

Ctrl+Nnm(1~9)为编号.G为自动警戒.差不多就这些常用

战术介绍:战术:就是开局发展模式和微操结合起来的作战方式。前期如何建造决定你要使用的战术。而如何建造要和自己的地形和对手的发展模式决定。

1、兵海:顾名思义,以兵为基础,进行作战,兵海在于抢种,如果大批兵偷袭却不成功就造成外强中干,中一完就输,建造模式:电场--兵营--矿--矿--矿--重工--接下来怎么造就要看战况了,你可以再造重工也可以造矿场。具体出先出坦克还是先出矿车也要根据情况,具体出多少坦克和矿车也要看情况,是矿车坦克1:5出好呢还是1:4好呢,还是先出几矿车再狂出坦克呢,这要靠自己实战去领悟了。开局先造2狗去探两边的路或去对手路上去埋伏。探两边路可使视野更开阔。埋伏对手可使对手兵先顿一顿减慢对手第一批兵占中速度。开始有10兵就去占中。后面出兵时记着出3--5狗,第2矿场造完后选其矿车带上第2批兵狗去抢中,到中时对手压你兵可时兵后退集中注意用X键散兵D卧起。XD连续按翻滚式攻击花哨不太实用影响操作可根据情况用。后起之兵无所谓就是让对手的兵爬到中矿你用矿车和狗将其处理掉,再将你的兵爬上就OK简单明了。如果对手也是兵海,抢中失败后就很危险可能会偷你,这时你先发制敌偷他,抢中胜利后中兵就不必再爬在中间起身攻其家!此时坦克也跟上。造成坦克坦克加大兵之势。灵活运用,三矿抢不到中开局造四矿。抢中胜利后战术也可转变可以变为高科。可以变为其他战术,这要靠自己了。 2、坦克战:以坦克为基础。开局一矿或两矿开局一矿为主,又分为几种打法:快攻发展模式:电场--兵营--矿场--重工--重工--暂时停止建造。出20兵左右防御成功后偷袭可分路偷袭。重工里一矿车八坦克。完成后带上矿车(把把矿车的矿全倒完最好剩的钱能再出一矿车)必要时把基地卖掉加快出坦克速度。破拉中时常用。微操好的带上3狗。坦克1号矿车2号狗3号同时指挥。

基本坦克战发展模式:电场--兵营--矿--重--矿--重(也可矿场)剩下的怎么建造还是要看战况。记住没电了要卖多余矿场,不要动不动就造电。电多了不是好事。此法抢中为重工里出一矿车5坦克1矿车5坦克。具体具体战况定,抢到中后进攻要果断,即使无法攻下全部也可在对手家门口来回忽悠牵制。此时自家车矿车,但不要出太多,2、3个能多采几车矿打平对手就行。在进攻时记住要出矿车,因为进攻时是最安全的。 3、拉中:将基地开局拉到中矿进行发展。以兵为基础。主要分为两中拉中。防御行拉中,先期兵不动先保护自家然后反击。进攻型拉中,分路偷袭,做到6个兵就望对手家跑要快。进攻不成变埋伏。主动进攻。建造模式:电场--兵营(矿出兵和适量狗)--矿--矿--重 一般为双矿开局,对付万元破拉中战术时如果自家坦克没损失可考虑一矿开局出重工,对付此战术时记住兵不要在家里不停的忘对手家跑。拉中记住准备一碉堡。矿车编个号手动倒矿加快赚钱速度。E 4、步兵车战术:用于破拉中。和坦克战发展模式一样出步兵车装小兵带矿车去破中。或对付兵海。造三车带一矿车去打对手电场。不作为主流战术可练习了解。用来应付千变万化的战况。 5、偷术:电场--兵营--矿--重工--接下来也可出矿也可出重。介绍两个发展模式和打法。

1电场--兵营--矿--重--矿---重工里先出一步兵车装工程师。然后点上2矿车,最好手到指挥矿车去采边上的富矿。可以选一矿车先将对手家兵清理,当然要看战况了如果对手用兵海家里没那么兵那就不要带。记着造一碉堡偷成后要放火的。

2电场--兵营--矿--重--重--先出一偷车,再出一矿再出一偷车,看形式多出矿车造成矿车海。或偷完后直接出几个坦克打其家。等等等,还是那句话战术灵活多变要看战况而定,如果对手都发动快攻了你还出矿车不就完了,所以一定要多看看对手家里,没事就看看 顺便看看有没有偷袭的兵当然不是用空指是用肉眼。如果微操好观看到位对手哪路兵你都知道望那个方向走那就可以用狗狗去早早拦截了。

6、矿车海:快攻发展模式,双重开局为多。可以用 偷引出矿车海。前期小兵去偷袭。前三矿车不要菜中或菜边富因为距离问题随便钱多但要考虑路程,所以前三矿车老老实实在家采矿之后重工路径再设至中矿,配合狗处理中间。主要针对破中或破兵海但不作为主流战术。不过潜心研究也可能成为主流战术。

7、高科战:利用高深兵种作战,战术漂亮容易出彩但使用难度系数最大,需要极高的操作和应变能力。介绍两种发展模式。

单矿高科:一矿开局主要以偷术引出高科。电场--兵营--矿--重(偷车、碉堡)空指--电场--高科--训练中心、海豹部队同时点--矿--或重具体看情况。要点:前期最好别要对手坦克探开你家,偷时主要针对矿场,海豹训练三级后装车先出一超时空,不要出太多超时空兵要根据自己经济。海豹车迅速赶至其家,距离对手家不远住此超时空也训练好,飞过去。如果把握好,飞到的地方正好好海豹车赶齐。这时卸下海豹先把超时空装上再装海豹深入敌营放出英雄超时空保护进行轰炸。必要时带上一矿车压兵,海豹最好编号。轰炸时用好上面介绍的路径连法更妙。 双矿高科:发展模式基本一样不过是双矿开局,兵要多造点。进行偷袭牵制。虽然两矿慢但两矿车赚钱快。兵也造多了进攻对手时更能拖延时间。实际时间并不慢。

红警新手教学

1、开始鼠标先不要点很远。只要让你的坦克开始移动就可以。因为基地很快就展开了。你必须在同一时间开始建造电厂。在电厂开始建造的同时,确定对角线方向,并把鼠标一直移动到那个角的位置,点一下鼠标左键(如果多人游戏要结盟,也是在这个时间最合适)。注意,这时不要用ctrl+shift。因为这辆坦克的使命是探开对方的基地,而不是摧毁对方的坦克。

2、看到对方的坦克往你家来也不要往回追,那将会浪费你获得对方基地信息的时间,也将失去攻击、骚扰对方的机会。对方的坦克到你家时,出防御部队是来的及的。指挥完坦克后,迅速切换回基地。这时电厂也造好了。放置好电厂后造什么呢?这要看是什么地图了。

3、如果是小地图,就先造兵营,在出兵的同时造矿厂(具体的出兵数因对手而定,我个人感觉以十个左右为好,出多了将影响你下一步的发展速度。

4、在这里随便说一点,在官方版的红警里大家都用狗探路,有了兵营先造两条狗。这在共和国之光辉中不是明智之举。一条狗200,这200块钱将决定你的黑鹰是早10秒还是晚十秒出来。

补充:

1、先说开局。万事开头难。基础的好坏关系到后面的发展。所以说,游戏一开始是最重要的,你的几个作步骤基本就决定了这一局的胜败。为什么这么说呢?因为战争打的就是时间和金钱。在一场战争中,时间的把握对结局起着决定性的作用。

2、当大家同时进入游戏后。一个高手的作要比菜鸟发展快很多的。那么时间差在哪呢?当你展开基地后,首先造电厂,这是毫无疑问的。问题是,在展开基地的同时,你的部队(假定开始部队数为1)必须要编号并出动(在这能争取1到2秒的时间)。往哪出动呢?探路是很有学问的。如果是1V1,就让你的坦克直奔对角线的方向而去。

3、如果是多人联网,就让你的部队直上或直下,到边了没有看到敌人就再直左或直右(我不喜欢设定路径,如果微作好的话,控制坦克行动是不会耽误时间的并且有很多好处)。

红警阵营武器

中国阵营武器:辽宁号航空母舰、093型核导弹潜艇、二炮系列导弹:DF41 DF31 DF21 DF15、海神战舰、东风大型战机、神剑2000巡航导弹等。

俄罗斯阵营武器:涅佐夫号航空母舰、北风之神核导弹潜艇、苏俄黑海级攻击潜艇、白杨M洲际导弹、苏35 苏37 米格29战机、飞毛腿导弹等。

印度阵营武器:F117、烈火5导弹、f16战机、f35 攻击机、B2核子轰战机、布拉莫斯超音速巡航导弹、猛虎重榴炮、LCA战机等。

日本阵营武器:战斧式导弹、飞龙级航空母舰、光灵坦克、幻影坦克、长剑2000地空导弹、多功能步兵战车、M1A2主战坦克、印度采矿车等。

朝鲜阵营武器:死神自爆卡车、自爆卡车、自爆吉普车、苏35、苏37、米格29战机、基洛夫空艇、天启坦克、自行榴弹炮、飞毛腿导弹。

德国阵营武器:飞龙级航空母舰、F117、f16战机、f35 攻击机、B2核子轰战机、A10攻击机、豹2主战坦克、战斧式导弹、光灵坦克。

以色列阵营武器:战斧式导弹、飞龙级航空母舰、F117、f16战机、f35攻击机、大和魂魄轰炸机、A10攻击机、美国驱逐舰、梅卡瓦主战坦克。

阿拉伯阵营武器:飞毛腿导弹、黑海级战舰、无畏级导弹战舰、苏35 苏37 米格29战机、图-160远程战略轰炸机、基洛夫空艇、S300地空导弹。

美国阵营武器:F22猛禽战机、f35 攻击机、f16战机、F117、B2核子轰战机、B52轰炸机、A10攻击机、俄亥俄战略核导弹潜艇、罗斯福号、华盛顿号、尼米兹号航空母舰等。

红警背景设定

这款游戏描述的是21世纪是一个高速发达的社会,中国的崛起,打破了冷战后美国一家独大的现状,亚洲各国也都不甘心,日本、印度等加强了军事合作,朝鲜也在研制自己的核武器,法国等一些阿拉伯国家也开始了核研制,再加上不甘被别人取代的大国美国、俄罗斯、德国等,种种矛盾频繁的相碰,核战争将一触即发。

展开全部
同类热门
红警手游