SC最高指挥官修改心得(转游侠naboo )

SC最高指挥官修改心得

1、安装目录\gamedata*.scd文件为zip编码,只要更改后辍为.zip .rar即可打开。
2、后面的.bp和.lua文件用记事本即可打开。
3、修改前去掉.scd文件只读属性。

要修改的文件为:
units.scd (所有单位蓝图,blueprint(bp))
projectiles.scd (发射物,弹头等,后面有修改核弹和战列舰主炮需要)
mods.scd (安装时官方带的3个mod,最后一个为2倍资源)

先来说说这个mods.scd的修改,以2倍资源来举例:
打开mods.scd(rar)\mods\ResourceRich\hook\lua\system\Blueprints.lua
文件内容:
function ModBlueprints(all_bps)
local econScale = 30.0

#loop through the blueprints and adjust as desired.
for id,bp in all_bps.Unit do
if bp.Economy.ProductionPerSecondMass then
bp.Economy.ProductionPerSecondMass = bp.Economy.ProductionPerSecondMass * econScale
end
if bp.Economy.ProductionPerSecondEnergy then
bp.Economy.ProductionPerSecondEnergy = bp.Economy.ProductionPerSecondEnergy * econScale
end
end
end
将econScale符值,数字即为资源倍数。
更改后保存文件,会提示更新压缩包,确定,最后将后辍改回.scd即可游戏。

(建议只修改此mod来进行游戏,按下面方法修改单位的话,会大大减少游戏乐趣及游戏寿命,hehe~)

units.scd的修改(这个文件有650多M,改后重新压缩时间较长)
打开units.rar\units\,会看到很多UAB0101这样的目录:
先看我整理的我喜欢的Cybran族单位目录参照
urb0101 = landfactory
0103 = Naval Factory
0201 = t2 landfactory
0203 = T2 Naval Factory
0301 = T3 Land Factory
0302 = Tier 3 Air Unit Factory
0303 = T3 Naval Factory
0304 = Quantum Gate
1101 = Power Generator
1102 = Hydrocarbon Power Plant
1103 = Tier 1 Mass Extractor
1104 = Mass Fabricator
1105 = Energy Storage
1106 = Mass Storage
1201 = Tier 2 Power Generator
1202 = Tier 2 Mass Extractor
1301 = Power Generator
1302 = Tier 2 Mass Extractor
1303 = T3 Mass Fabricator
2108 = Tactical Missile Launcher
2302 = Long Range Artillery
2305 = Strategic Missile Launcher
3104 = Omni Sensor Suite
3201 = Long Range Radar
4202 = Shield Generator
4302 = Strategic Missile Defense
url0001 = Commander Unit
1015 = T1 Engineer
0208 = Tier 2 Engineer
0309 = Tier 3 Engineer
0402 = Spider Bot
urs0201 = Destroyer
0202 = Cruiser
0203 = Attack Sub
0302 = Battleship
0303 = Aircraft Carrier
0304 = Strategic Missile Submarine

看到了么,URB****、UEL****、UAS****等目录,其中U就是unit,R、E、A等就是cybran,uef,aeon三族的简写,而第三位的B、L、S、A等就是building、land、sea、air的简写。

怎么找到要修改的单位对应的目录呢?以URB4202(Cybran族的护盾)为例。
打开lua.scd(rar)\lua\modules\basetemplates.lua(基本模板),翻至最后,看最后几百行,:)
有这样的定义:

Cybran Building List(Cybran族建筑列表)

-Shield Defense(护盾定义)

{
‘T2ShieldDefense’,
‘urb4202’, ----当当当当
},

Artillery Structures(小二炮定义,hehe~,它的确是T2么)

{
‘T2Artillery’,
‘urb2303’, ----当当当当
},
知道了吧,找到了吧。
打开units.scd(rar)\units\URB4202\URB4202_script.lua,看上面几行注释,有gas powered程序员留下的描述:#** Summary : Cybran Shield Generator Script。
如果有东西不好找,把units.scd全部解压出来,然后用windows搜索关键字。

终于到具体修改了:
URB4202(Cybran族的护盾)
units.scd(rar)\units\URB4202\URB4202_unit.bp (蓝图文件)
我摘其中的几段给大家,很简单的。

Categories = {(种类定义)
‘SELECTABLE’,
‘BUILTBYTIER2ENGINEER’,
‘BUILTBYTIER3ENGINEER’,
‘BUILTBYTIER2COMMANDER’,
‘BUILTBYTIER3COMMANDER’,
‘CYBRAN’,(所属种族)
‘STRUCTURE’,
‘DEFENSE’,
‘TECH2’,
‘SHIELD’,
‘DRAGBUILD’,
‘SIZE12’,
‘VISIBLETORECON’,
‘RECLAIMABLE’,
},
Defense = {
ArmorType = ‘Normal’,
Health = 50000,(生命值)
MaxHealth = 50000,(最大生命值)
RegenRate = 200,(回血率,就是量,200/秒)
Shield = {(能量盾定义)
ShieldEnergyDrainRechargeTime = 5,
ShieldMaxHealth = 4000,
ShieldRechargeTime = 18,(格挡后重新充能时间)
ShieldRegenRate = 800,
ShieldRegenStartTime = 13,
ShieldSize = 18,
ShieldVerticalOffset = -3,
},(很容易懂的吧)
},
Economy = {
BuildCostEnergy = 2000,(建造需电能,越多所需建造时间越长)
BuildCostMass = 160,(建造需Mass,同上)
BuildRate = 10,(建造倍率)
BuildTime = 60,(建造时间)

Enhancements = {(此段为cy族盾的4层升级定义)
Shield1 = {(层1)
BuildCostEnergy = 3000,
BuildCostMass = 300,
BuildTime = 60,
Icon = ‘ch-01’,
MaintenanceConsumptionPerSecondEnergy = 200,
Name = ‘Shield Expansion 1 of 4’,
ShieldEnergyDrainRechargeTime = 5,
ShieldEnhancementNumber = 1,
ShieldMaxHealth = 7000,
ShieldRechargeTime = 16,
ShieldRegenRate = 1400,
ShieldRegenStartTime = 14,
ShieldSize = 22,
ShieldVerticalOffset = -3,
Slot = ‘Shield’,
},
Shield2 = {(层2)
BuildCostEnergy = 15000,
BuildCostMass = 1000,
BuildTime = 60,
Icon = ‘ch-02’,
MaintenanceConsumptionPerSecondEnergy = 300,
Name = ‘Shield Expansion 2 of 4’,
Prerequisite = ‘Shield1’,
ShieldEnergyDrainRechargeTime = 5,
ShieldEnhancementNumber = 2,
ShieldMaxHealth = 10000,
ShieldRechargeTime = 18,
ShieldRegenRate = 2000,
ShieldRegenStartTime = 16,
ShieldSize = 28,
ShieldVerticalOffset = -4,
Slot = ‘Shield’,
},
Shield3 = {(层3)
BuildCostEnergy = 30000,
BuildCostMass = 1500,
BuildTime = 60,
Icon = ‘ch-03’,
MaintenanceConsumptionPerSecondEnergy = 400,
Name = ‘Shield Expansion 3 of 4’,
Prerequisite = ‘Shield2’,
ShieldEnergyDrainRechargeTime = 5,
ShieldEnhancementNumber = 3,
ShieldMaxHealth = 13000,
ShieldRechargeTime = 20,
ShieldRegenRate = 2600,
ShieldRegenStartTime = 18,
ShieldSize = 34,
ShieldVerticalOffset = -5,
Slot = ‘Shield’,
},
Shield4 = {(层4)
BuildCostEnergy = 50000,
BuildCostMass = 3000,
BuildTime = 60,
Icon = ‘ch-04’,
MaintenanceConsumptionPerSecondEnergy = 500,
Name = ‘Shield Expansion 4 of 4’,
Prerequisite = ‘Shield3’,
ShieldEnergyDrainRechargeTime = 5,
ShieldEnhancementNumber = 4,
ShieldMaxHealth = 400000,
ShieldRechargeTime = 3,
ShieldRegenRate = 4000,
ShieldRegenStartTime = 3,
ShieldSize = 40,
ShieldVerticalOffset = -6,
Slot = ‘Shield’,
},(嗯,很好理解)

再来看URB2305,Cybran族的核弹:
基本属性同盾,但它是武器,看此段:
Veteran = {(等级升级)
Level1 = 100,(1星所需杀人数)
Level2 = 200,
Level3 = 500,
Level4 = 1000,
Level5 = 2000,(5星所需杀人数)
},
Weapon = {
{
Audio = {
Fire = Sound {
Bank = ‘URLWeapon’,
Cue = ‘URB2305_Missile_Cruise’,
LodCutoff = ‘Weapon_LodCutoff’,
},
},
BallisticArc = ‘RULEUBA_None’,
Buffs = {
{
Add = {
OnImpact = true,
},
AppliedToTarget = true,
BuffType = ‘STUN’,
Duration = 15,
Radius = 40,
TargetAllow = ‘ALLUNITS’,
},
},
CollideFriendly = false,
CountedProjectile = true,
Damage = 0,
DamageType = ‘Normal’,
DisplayName = ‘EMP Flux Warhead’,
EnergyDrainPerSecond = 0,
EnergyRequired = 0,
FireTargetLayerCapsTable = {
Land = ‘Land|Water’,
Seabed = ‘Land|Water’,
Sub = ‘Land|Water’,
Water = ‘Land|Water’,
},
FiringTolerance = 2,(落点误差)
ForceSingleFire = true,(没有试验)
InitialProjectileStorage = 100,(初始(造好后)自带的弹药数)
Label = ‘NukeMissiles’,
ManualFire = 1,
MaxProjectileStorage = 100,(最大储弹量)
MaxRadius = 20000,(最大攻击范围)
MinRadius = 0,(最小攻击范围)
MuzzleSalvoDelay = 0,
MuzzleSalvoSize = 1,
MuzzleVelocity = 0,
NukeInnerRingDamage = 70000,(内圈伤害值)
NukeInnerRingRadius = 30,
NukeInnerRingTicks = 24,
NukeInnerRingTotalTime = 24,
NukeOuterRingDamage = 500,(外圈伤害值)
NukeOuterRingRadius = 40,
NukeOuterRingTicks = 20,
NukeOuterRingTotalTime = 10,
NukeWeapon = true,
ProjectileId = ‘/projectiles/CIFEMPFluxWarhead01/CIFEMPFluxWarhead01_proj.bp’,(ProjectileId(发射物序号),这里很重要,按给出的路径:安装目录下\projectiles.scd(rar)/CIFEMPFluxWarhead01/CIFEMPFluxWarhead01_proj.bp,打开后可以看到核弹弹头速度等,按拦截导弹速度修改后,对方两族拦截速度慢,就不能拦截你的nukeclear了)
ProjectilesPerOnFire = 1,(每次开火的发射物数,同上没有试验)
RackBones = {
{
MuzzleBones = {
‘Projectile’,
},
RackBone = ‘Projectile’,
},
},
RackFireTogether = false,
RackRecoilDistance = 0,
RackReloadTimeout = 0,
RackSalvoChargeTime = 0,
RackSalvoReloadTime = 0,
RackSalvoSize = 1,
RackSlavedToTurret = false,
RateOfFire = 1,(重要参数,开火速率,像cy的T3轨道炮为0.0375)
TargetCheckInterval = 0.5,
TargetRestrictDisallow = ‘UNTARGETABLE’,
TurretDualManipulators = false,
TurretPitch = 0,
TurretPitchRange = 0,
TurretPitchSpeed = 0,
TurretYaw = 0,
TurretYawRange = 0,
TurretYawSpeed = 0,
Turreted = false,
Weap,
WeaponRepackTimeout = 5,
Weap,
WeaponUnpackAnimationRate = 1,
WeaponUnpacks = true,
},
},
/projectiles/CIFEMPFluxWarhead01/CIFEMPFluxWarhead01_proj.bp
C族核弹发射物蓝本中最后一段:
Physics = {
Acceleration = 3,
CollideEntity = false,
CollideSurface = false,
DestroyOnWater = false,
InitialSpeed = 0,
Lifetime = 600,
MaxSpeed = 70,核弹飞行速度
RotationalVelocity = 0,
RotationalVelocityRange = 0,
TrackTarget = true,
TurnRate = 0,
UseGravity = false,
VelocityAlign = true,
},
StrategicIc,
}

增加个体能量盾:
URL0402_unit.bp(C族大蜘蛛),主要段:(红字为需增加的代码)
Defense = {
ArmorType = ‘Normal’,
Health = 165000,
MaxHealth = 165000,
RegenRate = 5000.0,
Shield = {
ShieldEnergyDrainRechargeTime = 2,
ShieldMaxHealth = 400000,
ShieldRechargeTime = 3,
ShieldRegenRate = 10000,
ShieldRegenStartTime = 3,
ShieldSize = 8,
ShieldVerticalOffset = 0,(盾模型的垂直偏移量,就是以盾球中心点,负数为向下方向,正数为向上方向的位置,需自己跟具体单位高度调整)
},
},
Description = ‘Spiderbot’,
Display = {
Abilities = {
‘Submersible’,
‘Torpedo’,
‘Shield’,
‘Massive: Crushes Enemy Units’,
‘Stealth: Can Hide From Radar’,
},
General = {
Category = ‘Experimental’,
Classification = ‘RULEUC_MilitaryVehicle’,
CommandCaps = {
RULEUCC_Attack = true,
RULEUCC_CallTransport = false,
RULEUCC_Capture = false,
RULEUCC_Guard = true,
RULEUCC_Move = true,
RULEUCC_Nuke = false,
RULEUCC_Patrol = true,
RULEUCC_Reclaim = false,
RULEUCC_Repair = false,
RULEUCC_RetaliateToggle = true,
RULEUCC_StealthToggle = true,
RULEUCC_Stop = true,
RULEUCC_ShieldToggle = true,(增加护盾开关按钮)
RULEUCC_Transport = false,
},
Facti,
TechLevel = ‘RULEUTL_Secret’,
UnitName = ‘Monkeylord’,
UnitWeight = 1,
},

建议不要更改任何原文件以免对升级造成影响(包括mod.scd……:L )

用正确的方法添加可以达到任何想要的效果(用hook、merge)

详细的见我那个帖子的附件内容~

[

莫非是原文作者?失敬失敬~~

呵呵,欢迎欢迎

[

败…… 此文作者与在下没有任何关系,除了都是SC的玩家且可能都是地球人外~:L

只是一个Cybran的支持者,真实身份在某区提到过。(在此谢罪,表扁俺)

这样的好技术文章,以后多多益善。:lol :handshake

不过,关于SCD文件,我用6G的原盘装出来的和700M硬盘版装出来的大小不一哦,原盘的文件较大,相信是原ZIP文件,而700M硬盘版是用7z压出来的,用了参数 trzip,压出来小好多的说

而我主要想说的是,我用WINRAR(3.62)自压ZIP改名SCD后就不能玩了。(700M硬盘版)

安全起见,我一直都是用原压缩格式作修改…… 700MB的到底区别在哪里啊?只是压缩方法不一样?movie呢?完整版有2.33GB的电影文件啊……

[ 本帖最后由 零星 于 2007-3-23 14:47 编辑 ]

不要说MOVIE了,所有MOVIE都是MPEG1 Video 1024x576的文件,又大又没有用。不过我就只是想完成战役后才删除啦。

700MB的好处就是小,不过没有voice和movie,只还有音效。不过就好就是小,而且就高版本,不过现在好似又有新的patch出了吧?

原来是MPEG-1格式的啊……

发现movie里面有个thelogo_china.sfd的文件~ 果然在制作的时候就考虑中国版本了啊……

最大的文件竟然是制作人员名单…… GPG不会换个纯文本格式?晕死~~~