Red Alert: Tiberium Origins MOD

Information and discussion for custom maps and mods.
User avatar
Sleipnir
Posts: 826
Joined: Wed Apr 10, 2002 11:52 pm
Contact:

Post by Sleipnir »

My first guess is case sensitivity, It looks like you are using capitals in the yaml, but lower case for the real files. OpenRA now requires the filename case used in the yaml to match that of the files on disk.

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

Sleipnir wrote: My first guess is case sensitivity, It looks like you are using capitals in the yaml, but lower case for the real files. OpenRA now requires the filename case used in the yaml to match that of the files on disk.
That might be it - I'll re-test as soon as I finish my current issue - adding Tiberium.

For the life of me I can't get that to work... I've added the .shp files, the sequences, the terrain types in temperat/desert/winter/interior/yaml files, added speed modifiers in the vehicles section, but as soon as I run the game, it crashes to desktop with no error...

no error means I can't fix the problem... here is some code;

From World.yaml:

Code: Select all

	ResourceType@ore:
		Type: Ore
		Name: Valuable Minerals
		PipColor: Yellow
		ResourceType: 1
		TerrainType: Ore
		Palette: player
		Sequences: gold01,gold02,gold03,gold04
		MaxDensity: 12
		ValuePerUnit: 15
		AllowedTerrainTypes: Clear,Road
		AllowUnderActors: true
	ResourceType@gem:
		Type: Gems
		Name: Valuable Minerals
		PipColor: Red
		ResourceType: 2
		TerrainType: Gems
		Palette: player
		Sequences: gem01,gem02,gem03,gem04
		MaxDensity: 3
		ValuePerUnit: 30
		AllowedTerrainTypes: Clear,Road
		AllowUnderActors: true
	ResourceType@tiberium:
        Type: Tiberium
		Name: Tiberium
		PipColor: Green
		TerrainType: Tiberium
		ResourceType: 3
		Palette: player
		EditorSprite: ti1
		Variants: ti1,ti2,ti3,ti4,ti5,ti6,ti7,ti8,ti9,ti10,ti11,ti12
		MaxDensity: 12
		ValuePerUnit: 50
		AllowedTerrainTypes: Clear,Road
		AllowUnderActors: true


From temperat.yaml (same for desert, winter and interior yaml files):

Code: Select all


	TerrainType@Gems:
		Type: Gems
		TargetTypes: Ground
		AcceptsSmudgeType: Crater, Scorch
		Color: 8470FF
		RestrictPlayerColor: true
	TerrainType@Ore:
		Type: Ore
		TargetTypes: Ground
		AcceptsSmudgeType: Crater, Scorch
		Color: 948060
		RestrictPlayerColor: true
	TerrainType@Tiberium:
		Type: Tiberium
		TargetTypes: Ground
		AcceptsSmudgeType: Crater, Scorch
		Color: A1E21C
		RestrictPlayerColor: true

From defaults.yaml

Code: Select all


^TibTree:
	Inherits@1: ^SpriteActor
	Interactable:
	Tooltip:
		Name: Blossom Tree
		ShowOwnerRow: false
	RenderSprites:
		Palette: staticterrain
	WithSpriteBody:
	Building:
		Footprint: x
		Dimensions: 1,1
	AppearsOnRadar:
	RadarColorFromTerrain:
		Terrain: Tiberium
	HiddenUnderShroud:
	WithMakeAnimation:
	EditorTilesetFilter:
		Categories: Resource spawn

All sequences are in place as well. One notable difference I could spot is that CnC uses a Trees.yaml and Red Alert (on witch my mod is based on) stores trees in decorations.yaml, so I put Split2 and Split3 (blossom trees) in there... would that make the engine crash?

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

Right - so I'm getting "Exception of type `System.InvalidOperationException`: Unit `resources` does not have a sequence named `ti1`"

When I clearly have the sequience defined:

Code: Select all

resources:
	Defaults:
		Length: *
		UseTilesetExtension: true
		TilesetOverrides:
			INTERIOR: TEMPERAT
			DESERT: TEMPERAT
	gold01: gold01
	gold02: gold02
	gold03: gold03
	gold04: gold04
	gem01: gem01
	gem02: gem02
	gem03: gem03
	gem04: gem04
	ti1: ti1
	ti2: ti2
	ti3: ti3
	ti4: ti4
	ti5: ti5
	ti6: ti6
	ti7: ti7
	ti8: ti8
	ti9: ti9
	ti10: ti10
	ti11: ti11
	ti12: ti12

User avatar
Sleipnir
Posts: 826
Joined: Wed Apr 10, 2002 11:52 pm
Contact:

Post by Sleipnir »

It will also give that error if it is not able to find or parse the referenced ti* files.

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

Sleipnir wrote: It will also give that error if it is not able to find or parse the referenced ti* files.
Yup - the engine seems to look for all tileset specific file extensions (.tem / .sno / .des) unless told otherwise. Since my Bits folder only contains ti*.shp files, I had to add AllowTilesetExtension=False and now it works :)

Tiberium should be ingame and ready in tomorrow's release.

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

Version 0.85 is up!

Changes:

- Added Tiberium.
- Ore is now 15 credits / bale, and the ore truck can carry 35 bales = 525 credits / load.
- Gems are now 30 credits / bale - one load = 1050 credits
- Tiberium is 50 credits / bale. One tiberium harvester carries 22 bales => 1200 credits / load
- Added Tiberium Rafinery (TRAF)
- Added Tiberium Harvester (THRV)
- Added Tiberium Research Lab (TRF) - required to build Tiberium Rafinery, Harvester and some units.
- Removed MIG and YAK from GDI airfield - it was an oversight witch I have now corrected.
- Added HELI for NOD. They can now build both helicopters
- Fixed TRAN for all sides - everyone can now build the Chinook Helicopter
- Tweaked A10 Thunderbot's damage
- Increased Nuclear Missile charge time to 18000 ticks (12 minutes)
- Increased Ion Cannon charge time to 9000 ticks (6 minutes)
- Added the Flamethrower Infantry for NOD

- Made some changes to desert-shellmap. Might replace it with another in the future.

- Added C&C Music - it now comes with the mod
- Added unique notification voices for all sides. GDI gets EVA (TD notifications). NOD gets Cabal (Tsun NOD notifications). Soviets get RA2 notifications (Natasha). Allies keep RA1 notifications (Nigel). Some bugs here - silos needed notification was missing for some sides and I replaced it with audio clips from other sides until I can extract and add the correct audio file. Same for Nuclear Missile Approaching notification. Affected sides are NOD and Soviets.

- Added Tiberium to some skirmish maps.
- The addition of Tiberium and the second refinery opens new gameplay possibilities. Some maps might have very little ore and abundant tiberium, compelling the player to build the tiberium refinery and prolonging games. Others might have abundant ore/gems, making tiberium refineries optional.

- Added WINTER tileset from Tiberian Dawn. Since this tileset somehow conflocted with the SNOW tileset from RA, I renamed SNOW.PAL to SNO.PAL. Both Tilesets work correctly and can be used for maps and missions.

Bugs: Naval AI is not finished. It only works for Allies and Soviet, but will not build any of the new units.

Download from my modDB page: http://www.moddb.com/mods/command-conqu ... /downloads

Installation isntructions are in the description.

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

Hi guys. Need a little help with mission 'lua scripting.

I have an actor (already on the map), named Hummvee1, witch I want to have patrol between waypoint1 (HummPatrol1) and waypoint2 (HummPatrol2).

I found a guide witch shows me how to CREATE new actors witch are sent on patrol, but that's not what I'm looking for. ( https://github.com/OpenRA/OpenRA/wiki/Setting-a-patrol )

I need to have the allready existing actor patrol - how can I do that?

SirCake
Posts: 381
Joined: Thu Feb 04, 2016 5:40 pm

Post by SirCake »

Well, how about Hummvee1.Patrol({HummPatrol1.Location, HummPatrol2.Location }, true) ? ;)
(Put it into WorldLoaded in your Lua file)
See Lua API on which other functions you can call on an actor (=the humvee)

Check out Dune2k-Advanced on my moddb page!

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

SirCake wrote: Well, how about Hummvee1.Patrol({HummPatrol1.Location, HummPatrol2.Location }, true) ? ;)
(Put it into WorldLoaded in your Lua file)
See Lua API on which other functions you can call on an actor (=the humvee)

Code: Select all

Hummvee1.Patrol(Hummvee1Path, true, 40)
-- did the trick. Added after WorldLoaded

I also added:

Code: Select all

Hummvee1Path = { HummPatrol1.Location, HummPatrol2.Location, HummPatrol3.Location }
before WorldLoaded to define the path it should take. It seems the Patrol function is dependent on the Path having the same name as the actor, and it is Case Sensitive (witch is kind of annoying).

Thanks for the help!

SirCake
Posts: 381
Joined: Thu Feb 04, 2016 5:40 pm

Post by SirCake »

Of course it is case sensitive, like every programming language ;):)
You can name the path whatever you want. Only the curly brackets are important. Also important is that you define the path before you use it! Unlike yaml where ordering doesn't matter at all.
I tested my code before posting with RA.

For example with this code you can send all units in UnitList on a patrol:

Code: Select all

UnitList = { Humvee, Abrams, Infantry1, Infantry2 }
Path = { PatrolPathWaypoint1.Location, PatrolPathWaypoint2.Location, PatrolPathWaypoint3.Location }

for key,actor in pairs( UnitList )
do
    actor.Patrol( Path, true )
end
--key isn't useful for anything most of the time

Check out Dune2k-Advanced on my moddb page!

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

SirCake wrote: Of course it is case sensitive, like every programming language ;):)
You can name the path whatever you want. Only the curly brackets are important. Also important is that you define the path before you use it! Unlike yaml where ordering doesn't matter at all.
I tested my code before posting with RA.

For example with this code you can send all units in UnitList on a patrol:

Code: Select all

UnitList = { Humvee, Abrams, Infantry1, Infantry2 }
Path = { PatrolPathWaypoint1.Location, PatrolPathWaypoint2.Location, PatrolPathWaypoint3.Location }

for key,actor in pairs( UnitList )
do
    actor.Patrol( Path, true )
end
--key isn't useful for anything most of the time
Had a crash course in C and Lua scripting, and just managed to finish my first mission ! Can't wait to release it for everyone.

On that tought, is it possible to set actor health in map.yaml? I'd like to make a tiberium infested areas witch has civilian buildings on very low health in and around the field.

Is it possible to set an actor's health in the map.yaml file?

EDIT: - apparently you can. Found out how by experimenting :

Actor745: windmill
Owner: Neutral
Location: 35,7
Health: 50

Health is written in percentages, so 100 is full health, and 50 like above is 50%.

User avatar
ThunderStruck115
Posts: 6
Joined: Thu Oct 26, 2017 1:01 am
Location: America (Fuck Yeah!)
Contact:

Post by ThunderStruck115 »

How do you install and play it? I've been looking through the files and I can't find anything.

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

ThunderStruck115 wrote: How do you install and play it? I've been looking through the files and I can't find anything.
Files and instructions can be found on the mod's modb page.

Version 0.87d released!

Link: http://www.moddb.com/mods/command-conqu ... /downloads

Please let me know what you think about the 3 single player missions.
Last edited by kaneCVR on Thu Apr 05, 2018 7:41 am, edited 1 time in total.

User avatar
Sleipnir
Posts: 826
Joined: Wed Apr 10, 2002 11:52 pm
Contact:

Post by Sleipnir »

Editing an installed copy of OpenRA is hard, so I dropped the mod into the SDK template and generated installers that everyone can use.

Windows (installer): https://www.dropbox.com/s/jw3i4dx29fmnx ... d.exe?dl=1
Windows (portable): https://www.dropbox.com/s/jm6w9q6fxxdav ... e.zip?dl=1
macOS: https://www.dropbox.com/s/68rf4fav3xsqs ... S.zip?dl=1

Unfortunately the mod has quite a few problems with filenames (mismatched filename case between files on disk and references from yaml), so it won't work on Linux without a bunch of fixes.
I'll probably keep these links active for a few weeks or until I see kaneCVR has released a newer version.

kaneCVR
Posts: 93
Joined: Tue Dec 10, 2013 9:20 pm

Post by kaneCVR »

Sleipnir wrote: Editing an installed copy of OpenRA is hard, so I dropped the mod into the SDK template and generated installers that everyone can use.

Windows (installer): https://www.dropbox.com/s/jw3i4dx29fmnx ... d.exe?dl=1
Windows (portable): https://www.dropbox.com/s/jm6w9q6fxxdav ... e.zip?dl=1
macOS: https://www.dropbox.com/s/68rf4fav3xsqs ... S.zip?dl=1

Unfortunately the mod has quite a few problems with filenames (mismatched filename case between files on disk and references from yaml), so it won't work on Linux without a bunch of fixes.
I'll probably keep these links active for a few weeks or until I see kaneCVR has released a newer version.
Thank you! I've uploaded the installer version on the moddb page as well.

I'll look into the filename issue so it can have a working linux version as well.

Post Reply