Effects
-
lol,
just make sure the crc’s are correct, if you apply the FX in game and you dont get a CTD, its just the CRC values are incorrect
-
you need to get the crc of the new FX from inside the ALE file (its the FX name) then you need to put it into a program LS made
http://digitalbrilliance.com/Downloader/index.php?action=downloads&id=33
I cant rememnebr which Value you need form its output But just try them all until it works lol…… >.>
-
Hang on a minute there wolfie,
Are you wanting to make custom .ale effects?
Or are you just altering .ini files to give new effects? Either way you will need to update the CRC value to match the .ale effect you are referering to.
If you want to do custom .ale’s you will need the ALE Editor and CRC calculation tool (both available from digital brilliance DB software). For guides on how to use these have a browse around the forums here and over at digital brillaicne forums. There are plenty of threads on it.
If you just want effects made by combining different existing .ale’s and by changing other .ini paramters you can just use good old Biniedit and the CRC tool and alter the .ini files using those.
Hope this helps…
edit: havent checked them all but at least the first two CRC’s seem ok. Are you using different .txm combinations? Also, are they defined in effects.ini?
edit again! : I’m not sure if combining different .txm files will work to be honest. They are referenced in the .ale files themselves. Your best bet is to have a go at editing the .ale’s to get he desired effects, although it is longer way around.
-
There isn’t any tut on ALE coding yet, I only finished the ALE Editor just a few months ago.
-
; ---> ; ALE Effects Library <=> gf_tradelaneendsplash.ale ; DB Software ********************************************************************* [ALE] Version = 1.1 ; Number of parts = 1 Type = Layer0 [Section] ; ==> 1 Effect_Name = gf_tradelaneendsplash ULParams = 0, 0, 0 ; *** Param #1 ANL_Nickname = gf_tradelaneendsplash.app ; 0x13FF8A40 335514176 Parent = NULL FX_Slot = 3 Slot_Flag = 0 ; *** Param #2 ANL_Nickname = gf_tradelaneendsplash_Cone.emt ; 0xEFA7E299 4020757145 Parent = NULL FX_Slot = 4 Slot_Flag = 0 ; *** Param #3 ANL_Nickname = gf_tradelaneendsplash ; 0x10457143 34123860 Parent = 3 FX_Slot = 5 Slot_Flag = 2 Slot_Order = 0, 4, 3, 3, 5
; ALE Scripter By DB Software ; Original filename is "gf_tradelaneendsplash.ale" ;****************************************************************************************************** [ALE] Version = 1.1 ; Number of sections = 3 ; **************************************************************************** [Section] ; ==> 1 FX_Type = FxBasicAppearance Node_Name = gf_tradelaneendsplash.app ; 0x13FF8A40 335514176 Node_LifeSpan = 3.0000000000000000 Node_Transform = {} Appearance_LODCurve = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 1.0000000000000000 SubFlag = 4 } BasicApp_TriTexture = True BasicApp_QuadTexture = False BasicApp_MotionBlur = True BasicApp_Color = { Flag = 4 Entry = 0.0000000000000000 SubFlag = 4 SubEntry = 0.0000000000000000, 0.4901961088180542, 0.4901961088180542, 1.0000000000000000 SubEntry = 1.0000000000000000, 1.0000000000000000, 1.0000000000000000, 1.0000000000000000 } BasicApp_Alpha = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 1.0000000000000000, 1.0000000000000000, 0.0012410000199452 SubFlag = 4 } BasicApp_Size = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 20.0000000000000000 SubFlag = 4 } BasicApp_HToVAspect = { Entry = 0.0000000000000000 SubEntry = 0.0000000000000000, 1.0000000000000000 } BasicApp_Rotate = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 0.0000000000000000 SubFlag = 4 } BasicApp_TexName = planetflare ; 0x13E2D528 333632808 BasicApp_BlendInfo = 5, 2 BasicApp_UseCommonTexFrame = True BasicApp_TexFrame = { Flag = 4 Entry = 0.0000000000000000 SubFlag = 4 SubEntry = 0.0000000000000000, 0.0000000000000000 } BasicApp_CommonTexFrame = { Entry = 0.0000000000000000, 0.0000000000000000 } BasicApp_FlipTexU = True BasicApp_FlipTexV = True ; **************************************************************************** [Section] ; ==> 2 FX_Type = FxConeEmitter Node_Name = gf_tradelaneendsplash_Cone.emt ; 0xEFA7E299 4020757145 Node_LifeSpan = 2.0000000000000000 Node_Transform = { Flag = 4 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 SEntry = 0.0000000000000000, -90.0000000000000000, 0.0000000000000000, 0.0000000000000000 SFlag = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 } Emitter_LODCurve = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 1.0000000000000000 SubFlag = 4 } Emitter_InitialParticles = 0 Emitter_Frequency = { Flag = 4 Entry = 0.0000000000000000, 100.0000000000000000 EFlag = 0 SubFlag = 2 SubEntry = -0.0034849999938160, 225.3201293945312500, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.4018868505954742, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000 } Emitter_MaxParticles = { Flag = 4 Entry = 0.0000000000000000, 10000.0000000000000000 EFlag = 0 } Emitter_EmitCount = { Entry = 0.0000000000000000, 0.0000000000000000 } Emitter_InitLifeSpan = { Flag = 4 Entry = 0.0000000000000000, 2.0000000000000000 EFlag = 0 SubFlag = 21 SubEntry = -0.0579088404774666, 1.3900524377822876, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.0351229794323444, 1.6478916406631470, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.1058981120586395, 1.3769224882125854, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.1412869393825531, 1.5585585832595825, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.2249331176280975, 1.5615367889404297, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.2313671112060547, 1.4573193788528442, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.3021459579467773, 1.3024809360504150, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.3632711172103882, 1.4543414115905762, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.3761401176452637, 1.5942906141281128, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.4404820799827576, 1.4305204153060913, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.4726529717445374, 1.5555837154388428, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.5241299271583557, 1.3292773962020874, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.5949060916900635, 1.3560786247253418, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.6045591235160828, 1.6508674621582031, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.6753351092338562, 1.5168719291687012, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.7654129266738892, 1.4305186271667480, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.8072391152381897, 1.5317598581314087, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.8844500780105591, 1.4424303770065308, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.8973190784454346, 1.4066984653472900, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.9230561256408691, 1.5138939619064331, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.9262730479240418, 1.5198498964309692, 0.0000000000000000, 0.0000000000000000 } Emitter_Pressure = { Flag = 4 Entry = 0.0000000000000000, 10.0000000000000000 EFlag = 0 SubFlag = 1 SubEntry = -0.0002680000034161, 0.3995040059089661, 0.0000000000000000, 0.0000000000000000 } Emitter_VelocityApproach = { Entry = 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MinRadius = { Entry = 0.0000000000000000, 0.0000000000000000 SubEntry = -0.0195700004696846, 59.4491271972656250, 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MaxRadius = { Entry = 0.0000000000000000, 1.0000000000000000 SubEntry = 90.0000000000000000, 90.0000000000000000, 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MinSpread = { Entry = 0.0000000000000000, 0.0000000000000000 SubEntry = 0.0000000000000000, 90.0000000000000000, 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MaxSpread = { Flag = 4 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 0 SubFlag = 1 SubEntry = 0.0000000000000000, 90.0000000000000000, 0.0000000000000000, 0.0000000000000000 } ; **************************************************************************** [Section] ; ==> 3 FX_Type = FxAirField Node_Name = gf_tradelaneendsplash ; 0x10457143 34123860 Node_LifeSpan = 3.0000000000000000 Node_Transform = { Flag = 4 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 SEntry = 0.0000000000000000, -90.0000000000000000, 0.0000000000000000, 0.0000000000000000 SFlag = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 } AirField_Magnitude = { Entry = 0.0000000000000000, 1.0000000000000000 SubEntry = 0.0000000000000000, 1002.0000000000000000, 0.0000000000000000, -1000.2546386718750000 SubEntry = 0.6013399958610535, 1.2431429624557495, 0.0000000000000000, 0.0000000000000000 } AirField_Approach = { Entry = 0.0000000000000000, 1.0000000000000000 } ;00000604 **** EOF ****
DO ANYONE SEE A FAILURE?!
-
Well, I see 2 so far. Your slot order contains too many entries. Second, you are missing the ‘Main_Node’ in the AEL file.
-
Try slot_order 3, 4, 5 - that might just work. Generally, emitter comes before appearance (there are two kinds of sections in your ael file, emitter and appearance /emt and app/)
Also, rename each of those nodes, and generate CRC values using the DB Hash CRC Calc app. Copy them in there so they will match the new names (use Signed CRC generation)
After you’ve done that in both your ael and anl, you are free to modify the anl in any way you see fit. However, always be sure that the CRCs match up wherever necessary.
Those are pretty much the basics, the rest is experimentation, trial and error. Also, I don’t know about the specifics of tradelane effects.
-
ya mean like this:
; ALE Scripter By DB Software ; Original filename is "gf_tradelaneendsplash.ale" ;****************************************************************************************************** [ALE] Version = 1.1 ; Number of sections = 3 ; **************************************************************************** [Section] ; ==> 1 FX_Type = FxBasicAppearance Node_Name = gf_tradelaneendsplashnew.app ; 0x1A97F2A1 446165665 Node_LifeSpan = 3.0000000000000000 Node_Transform = {} Appearance_LODCurve = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 1.0000000000000000 SubFlag = 4 } BasicApp_TriTexture = True BasicApp_QuadTexture = False BasicApp_MotionBlur = True BasicApp_Color = { Flag = 4 Entry = 0.0000000000000000 SubFlag = 4 SubEntry = 0.0000000000000000, 0.4901961088180542, 0.4901961088180542, 1.0000000000000000 SubEntry = 1.0000000000000000, 1.0000000000000000, 1.0000000000000000, 1.0000000000000000 } BasicApp_Alpha = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 1.0000000000000000, 1.0000000000000000, 0.0012410000199452 SubFlag = 4 } BasicApp_Size = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 20.0000000000000000 SubFlag = 4 } BasicApp_HToVAspect = { Entry = 0.0000000000000000 SubEntry = 0.0000000000000000, 1.0000000000000000 } BasicApp_Rotate = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 0.0000000000000000 SubFlag = 4 } BasicApp_TexName = planetflare ; 0x13E2D528 34123860 BasicApp_BlendInfo = 5, 2 BasicApp_UseCommonTexFrame = True BasicApp_TexFrame = { Flag = 4 Entry = 0.0000000000000000 SubFlag = 4 SubEntry = 0.0000000000000000, 0.0000000000000000 } BasicApp_CommonTexFrame = { Entry = 0.0000000000000000, 0.0000000000000000 } BasicApp_FlipTexU = True BasicApp_FlipTexV = True ; **************************************************************************** [Section] ; ==> 2 FX_Type = FxConeEmitter Node_Name = gf_tradelaneendsplash_Conenew.emt ; 0xEACBAB55 3939216213 Node_LifeSpan = 2.0000000000000000 Node_Transform = { Flag = 4 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 SEntry = 0.0000000000000000, -90.0000000000000000, 0.0000000000000000, 0.0000000000000000 SFlag = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 } Emitter_LODCurve = { Entry = 0.0000000000000000 EFlag = 4 SubEntry = 0.0000000000000000, 1.0000000000000000 SubFlag = 4 } Emitter_InitialParticles = 0 Emitter_Frequency = { Flag = 4 Entry = 0.0000000000000000, 100.0000000000000000 EFlag = 0 SubFlag = 2 SubEntry = -0.0034849999938160, 225.3201293945312500, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.4018868505954742, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000 } Emitter_MaxParticles = { Flag = 4 Entry = 0.0000000000000000, 10000.0000000000000000 EFlag = 0 } Emitter_EmitCount = { Entry = 0.0000000000000000, 0.0000000000000000 } Emitter_InitLifeSpan = { Flag = 4 Entry = 0.0000000000000000, 2.0000000000000000 EFlag = 0 SubFlag = 21 SubEntry = -0.0579088404774666, 1.3900524377822876, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.0351229794323444, 1.6478916406631470, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.1058981120586395, 1.3769224882125854, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.1412869393825531, 1.5585585832595825, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.2249331176280975, 1.5615367889404297, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.2313671112060547, 1.4573193788528442, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.3021459579467773, 1.3024809360504150, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.3632711172103882, 1.4543414115905762, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.3761401176452637, 1.5942906141281128, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.4404820799827576, 1.4305204153060913, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.4726529717445374, 1.5555837154388428, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.5241299271583557, 1.3292773962020874, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.5949060916900635, 1.3560786247253418, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.6045591235160828, 1.6508674621582031, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.6753351092338562, 1.5168719291687012, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.7654129266738892, 1.4305186271667480, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.8072391152381897, 1.5317598581314087, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.8844500780105591, 1.4424303770065308, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.8973190784454346, 1.4066984653472900, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.9230561256408691, 1.5138939619064331, 0.0000000000000000, 0.0000000000000000 SubEntry = 0.9262730479240418, 1.5198498964309692, 0.0000000000000000, 0.0000000000000000 } Emitter_Pressure = { Flag = 4 Entry = 0.0000000000000000, 10.0000000000000000 EFlag = 0 SubFlag = 1 SubEntry = -0.0002680000034161, 0.3995040059089661, 0.0000000000000000, 0.0000000000000000 } Emitter_VelocityApproach = { Entry = 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MinRadius = { Entry = 0.0000000000000000, 0.0000000000000000 SubEntry = -0.0195700004696846, 59.4491271972656250, 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MaxRadius = { Entry = 0.0000000000000000, 1.0000000000000000 SubEntry = 90.0000000000000000, 90.0000000000000000, 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MinSpread = { Entry = 0.0000000000000000, 0.0000000000000000 SubEntry = 0.0000000000000000, 90.0000000000000000, 0.0000000000000000, 0.0000000000000000 } ConeEmitter_MaxSpread = { Flag = 4 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 0 SubFlag = 1 SubEntry = 0.0000000000000000, 90.0000000000000000, 0.0000000000000000, 0.0000000000000000 } ; **************************************************************************** [Section] ; ==> 3 FX_Type = FxAirField Node_Name = gf_tradelaneendsplashnew ; 0xE9CF1664 3922663012 Node_LifeSpan = 3.0000000000000000 Node_Transform = { Flag = 4 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Header = 0.0000000000000000, 0.0000000000000000 HFlag = 4 HTail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 SEntry = 0.0000000000000000, -90.0000000000000000, 0.0000000000000000, 0.0000000000000000 SFlag = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 0.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 Entry = 0.0000000000000000, 1.0000000000000000 EFlag = 4 EType = 1 ETail = 0 } AirField_Magnitude = { Entry = 0.0000000000000000, 1.0000000000000000 SubEntry = 0.0000000000000000, 1002.0000000000000000, 0.0000000000000000, -1000.2546386718750000 SubEntry = 0.6013399958610535, 1.2431429624557495, 0.0000000000000000, 0.0000000000000000 } AirField_Approach = { Entry = 0.0000000000000000, 1.0000000000000000 } ;00000604 **** EOF ****
; ---> ; ALE Effects Library <=> gf_tradelaneendsplash.ale ; DB Software ********************************************************************* [ALE] Version = 1.1 ; Number of parts = 1 Type = Layer0 [Section] ; ==> 1 Effect_Name = gf_tradelaneendsplashnew ULParams = 0, 0, 0 ; *** Param #1 ANL_Nickname = gf_tradelaneendsplashnew.app ; 0x1A97F2A1 446165665 Parent = NULL FX_Slot = 3 Slot_Flag = 0 ; *** Param #2 ANL_Nickname = gf_tradelaneendsplash_Conenew.emt ; 0xEACBAB55 3939216213 Parent = NULL FX_Slot = 4 Slot_Flag = 0 ; *** Param #3 ANL_Nickname = gf_tradelaneendsplashnew ; 0xE9CF1664 3922663012 Parent = 3 FX_Slot = 5 Slot_Flag = 2 Slot_Order = 3, 4, 5
-
**Looking at your code above, you now have the proper Slot Order but you still don’t have a Main_Node in there. Decompile any ALE and you will see what I mean. Your FX will never work without it since FL uses the Main_Node to activate your FX.
Second, your naming is bad
gf_tradelaneendsplash_Conenew.emt
Should be gf_tradelaneendsplashnew_Cone.emt
You can’t mess with the extension naming (_Conenew.emt) must stay (_Cone.emt). FL uses that internally to determine which part of the FX it is.**