 |
Forum Info
|
 |
Forum Members: 18,581
Total Threads: 8,668
Posts: 94,540
Administrators:
DeeZire, Redemption
There are currently 43 users online.
|
 |
Partner Links
|
 |
 |
Advertisements
|
 |
|
| Generals & Zero Hour Editing Discuss any modding related issues to do with Generals and Zero Hour here. |
06-06-2004, 08:54 AM
|
#1 (permalink)
|
|
Senior Member
Join Date: May 2003
Location: Eindhoven, Netherlands
Posts: 2,278
|
Trade secrets revealed
This is the place where you can submit any tips, tricks, or other miscellaneous modding ideas. It can range from anything to a simple trick how to accomplish something, to an explanation on how to get a working naval yard for example. Any modding tricks you'd like to share with your fellows, submit them here. Try to include a "title" with your tip, so that anyone reading through this knows what it's about.
The idea behind this is that lots of modders found their own solutions to problems they had. By collecting them in this thread, those solutions become public knowledge so everyone can benefit from them.
I'll start by submitting some tricks of my own (also posted in " Simple, but realistic mod ideas for beginners."):
----------------------------------------------------------------------------------------------
Burst-fire sounds
If you have a sound that sounds like a machine gun firing a whole salvo, then it would sound ugly if that sound would be played each time the weapon fires, assuming that the weapon fires multiple shots too (ClipSize is not 0). So to get the sound to only play once, yet still have the weapon fire multiple shots in 1 burst, there's a little trick.
First, go to the sound's entry in SoundEffects.ini. Change "Sounds" to "Attack". Then add "loop" to the "Control" line. So now we have a looped sound, which STARTS the loop by playing the weapon sound, but plays nothing when the loop continues.
Next, go to the entry of the weapon in Weapon.ini, and add "FireSoundLoopTime = n" to the weapon somewhere, where n should be a bit longer than DelayBetweenShots, but shorter than the weapon's ClipReloadTime. This ensures that the sound will only stop looping after n milliseconds of no firing.
If n is smaller than DelayBetweenShots, then the loop will be cut off before the next shot in a single salvo, so you would hear the sound with each shot rather than each clip. If n is larger than ClipReloadTime, then the sound will keep looping until after the second salvo starts, so it will never stop looping. Remember that the sound only plays when a NEW loop starts, not when an existing one continues.
Adding force-move
The force move function, like in the other C&Cs, was originally on the ALT key. But EA decided to remove it in favour of the waypoint function. To add it again, open CommandMap.ini (located in Data/English inside English(ZH).BIG) and go to the BEGIN_FORCEMOVE and END_FORCEMOVE commands. Just remove the semicolons from the lines, but don't forget to assign BEGIN_WAYPOINTS and END_WAYPOINTS (right below the force move) to a different key. Try using KEY_Z, that's what they used in Red Alert 2 aswell.
|
|
|
06-06-2004, 11:24 AM
|
#2 (permalink)
|
|
Senior Member
Join Date: May 2003
Location: Eindhoven, Netherlands
Posts: 2,278
|
Replacing the Fog of War with shroud
It is possible to replace the fog of war system with the shroud system like in the older C&C games. To do this, open Data/INI/multiplayer.ini and set UseShroud to Yes. Now the game will start off shrouded, but once revealed the fog will grow back. This is what it's like in the single-player campaign. To stop the fog from growing back, go to Data/INI/GameData.ini and all the way down the bottom is a setting called UnlookPersistDuration, which sets how long it takes after a unit moves or dies before the fog grows back. Set it to 99999999999999999999 or some other rediculously high number. If the number is high enough, the fog will effectively never grow back, so all you will see is shroud. Once a unit has been at a location, the shroud will disappear and the location stays visible (almost) indefinitely.
Veteran Abilities
You can make a unit change weapons, locomotors, become stealthed, get an armour boost, and more, when it reaches a certain veterancy level, just like in Red Alert 2. Remember those 4-shooter Apocalypse tanks? You can have those in Generals too. Here's what you do. Imagine your unit has a weaponset like this one:
Code:
WeaponSet
Conditions = None
Weapon = PRIMARY SomeWeapon
End
Now it's interesting to know that any veterancy increase also triggers an upgrade when it reaches the next level. These upgrades are named "Upgrade_Veterancy_VETERAN", "Upgrade_Veterancy_ELITE" and "Upgrade_Veterancy_HEROIC". These upgrades are all OBJECT-type upgrades, so they only affect the unit that gets them, not anything else.
So now that we have an upgrade, it's easy to turn this into a new weapon. If we want the unit to get a better weapon when it reaches ELITE level, you'd need this code:
Code:
Behavior = WeaponSetUpgrade ModuleTag_09
TriggeredBy = Upgrade_Veterancy_ELITE Upgrade_Veterancy_HEROIC
End
Remember that in some cases a unit can skip ELITE and go straight to HEROIC, if the target it destroys is worth enough points. So we need to include them both. Then, all we need is a new WeaponSet:
Code:
WeaponSet
Conditions = None
Weapon = PRIMARY SomeWeapon
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY SomeWeaponElite
End
You could also give the unit an extra SECONDARY weapon when it reaches a certain level. As far as upgrades go, you can do anything. You could give it a better locomotor (imagine allowing a tank to hover when it reaches elite), more health, create an OCL, make it invisible, etc. You should remember though that this is an upgrade like any other, so if the unit already has an upgrade that affects the same thing as a veterancy upgrade, the two will conflict with each other. So you can't give a unit an elite WeaponSet if it already has another WeaponSetUpgrade. Of course you can still give it a WeaponBonusUpgrade instead, so use your imagination. 
|
|
|
06-06-2004, 12:31 PM
|
#3 (permalink)
|
|
Senior Member
Join Date: Nov 2003
Location: Hell
Posts: 272
|
Inserting the Radar Jam Abillity
Add This:
Code:
Behavior = ActiveShroudUpgrade ModuleTag_Shroud
TriggeredBy = *WTF Upgrade Name u want*
NewShroudRange = *Range of Shroud Crated
End
After the Last Module, (note that ModuleTag_Shroud can be changed to whatever u want, no neccecerilly a number)
|
|
|
06-06-2004, 01:25 PM
|
#4 (permalink)
|
|
Senior Member
Join Date: May 2003
Location: Eindhoven, Netherlands
Posts: 2,278
|
That's a gap generator, not a radar jammer.  Besides, DZ already wrote a tutorial about that. But while we're on the subject, here's
Making a unit that disables only stuff of a certain type
Zero Hour only
It's possible to make a Radar Jammer like in Red Alert, but you'll have to sacrifice the SUBDUAL_MISSILE, SUBDUAL_VEHICLE or SUBDUAL_BUILDING DamageType for it. So it's not really useful unless you're making a total conversion, or a mod that changes/removes the Microwave Tank or ECM Tank. Also, this particular jammer will completely disable every building that is affected by it. So if you let it jam Command Centers, you won't be able to build Dozers with them either. But this trick can be easily applied to any other building, so if you want to make a unit that specifically disables all production facilities, that's very possible.
So imagine we want to make a unit that disables every production facility within its range. First you copy the ECM Tank's secondary weapon (the one it uses to jam missiles), and adjust it so it looks like this:
Code:
Weapon JammerWeapon
PrimaryDamage = 1000.0
PrimaryDamageRadius = 500.0
AttackRange = 1.0
DamageType = SUBDUAL_BUILDING
DeathType = NORMAL
WeaponSpeed = 999999 ; dist/sec
RadiusDamageAffects = ENEMIES NEUTRALS
DelayBetweenShots = 250 ; time between shots, msec
End
Adjust the damage and radius to suit your likings. The radius is the range at which it can disable things. The damage adjusts how long it takes (relative to an object's hitpoints) to completely disable something. Remember that you should change the DamageType depending on which one you want to use for this.
Next, add this to your unit:
Code:
Behavior = FireWeaponUpdate Whatever
Weapon = JammerWeapon
End
This will get your unit to automatically disable anything that gets near it, without having to target it.
Then there's one last thing to do. You need to make a copy of the armour type (in Armor.ini) of each building you're going to make disableable. So for StructureArmor you make StructureArmorDisableable (if any of the things that can be disabled have StructureArmor), for TankArmor you could make TankArmorDisableable, etc. Now, you must set whatever DamageType you used for this to do 100% damage to these new armour types, and 0% to all other types. This ensures that nothing other than these specific types will be disabled. So then just give whatever can be disabled one of these new armour types. You also need to include something like
Code:
SubdualDamageCap = 2000
SubdualDamageHealRate = 500
SubdualDamageHealAmount = 500
on the "Body" module for the objects that can be disabled. This makes the units actually disableable. Their armour type controls whether a particular weapon is capable of disabling them.
|
|
|
06-06-2004, 01:32 PM
|
#5 (permalink)
|
|
Administrator
Join Date: Dec 2002
Posts: 1,913
|
Quote:
|
Originally Posted by ImmoMan
you'll have to sacrifice the SUBDUAL_MISSILE, SUBDUAL_VEHICLE or SUBDUAL_BUILDING DamageType for it. So it's not really useful unless you're making a total conversion, or a mod that changes/removes the Microwave Tank or ECM Tank.
|
Use SUBDUAL_UNRESISTABLE instead then 
__________________
|
|
|
06-07-2004, 05:49 AM
|
#6 (permalink)
|
|
Senior Member
Join Date: Sep 2001
Posts: 734
|
I see a lot of people wrestling with in-game scaling problems because they do not use a system when they start modeling:
Here's my system :
- obtaining a uniform scaling:
- Customize -> Preference -> General -> System Unit Scale 1 Unit = 1 feet
- Customize -> Unit setup -> Generic Units
use the metric values of the real model in cm
then make the object at 1/20 scale
To find out the dimentions of a unit/object in GMAX :
- select the object
- rightclick and choose "properties"
- at the top you'll find info about the dimentions and face count
In 3dsmax, you can use the "Measure" utility
|
|
|
06-07-2004, 02:45 PM
|
#7 (permalink)
|
|
Administrator
Join Date: Dec 2002
Posts: 1,913
|
Easier String Editing
Instead of using CSF, you can have the game use an STR file instead. You should place your STR file in the Data directory, not in the Data\Language directory.
The differences between the two are;-
- STR is not language specific - it will be read from the Data directory regardless of the language your mod/the game is using, and will overwrite the resident CSF file(s)
- STR is easier to edit - its form is exactly the same as the STR files found in maps, and can be written/edited in any text editor.
Whatever route you choose, the string file is only read once and assembled into RAM at runtime - if you amend your STR file, as with CSF you will have to restart the game to have new or modified entries show up.
EDIT: file needs to be called Generals.STR (as with Generals.CSF).
One more thing, when you want to force the text onto a new line within an STR file, you use \n.
__________________
|
|
|
06-07-2004, 09:03 PM
|
#8 (permalink)
|
|
Administrator
Join Date: Dec 2002
Posts: 1,913
|
Quick UI Tips
To enable the different attack cursor for units that are out of your weapons' range (as in previous C&C games) simply change the MouseCursor OutRange entry in Mouse.INI so it points to SCCOutRange instead of SCCAttack.
To force Dozers and Wokers to use a mouse cursor for structure placement when building, make a new entry in Mouse.INI called MouseCursor Build and point it to your desired cursor - SCCBuild is in the game but unused.
You can use MouseCursor Defector for anything you like - its not used in the game and points to a unique animated mouse cursor.
You can make your own mouse cursor with a MouseCursor InvalidBuild entry.
Tutorial for adding the force-move/crush function;-
http://www.deezire.net/modules.php?n...ticle&artid=36
You can change the color of hotkeys that appear in the Command Bar tooltip window with the HotKeyTextColor = [R: G: B:] statement in GameData.INI.
To allow players the ability to dynamically adjust detail settings on the fly in game (in case their game starts to slow down or lag) without needing the options menu, simply un-comment the TOGGLE_LOWER_DETAILS section in CommandMap.INI and assign a key to it.
|
|
|
06-08-2004, 03:05 AM
|
#9 (permalink)
|
|
Senior Member
Join Date: May 2004
Posts: 181
|
Quote:
|
Originally Posted by DeeZire
By changing the draw module in the cameo window, you can get the game to draw the 3d model of your unit rather than its cameo - handy for mech or future style mods 
|
Dee can you post this as a tip? I still haven't figured out how to get this to work but it sounds pretty sweet.
|
|
|
06-08-2004, 08:25 AM
|
#10 (permalink)
|
|
Senior Member
Join Date: Aug 2003
Location: UK
Posts: 704
|
When I make that .str file, it overrides the old .csf and I have to rewrite all other entries. Is there any way around this?
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 03:51 PM.
|