Решил я поиграться с IDA скриптингом, и вот что у меня получилось. Мой скрипт для IDA достает инфу из EXE файла. Вот пример на типе ParticleEmitterContainer, с комментами вшитыми в класс.
Код
== Reading XConteiner Info ===
<ParticleEmitterContainer>
ParticleEmitterContainer.Comment <XString>
// Description of the emitter. PLEASE FILL THIS IN!
ParticleEmitterContainer.EmitterType <XEnum>
// ParticleTypeEnum
/* enum kNormal
kSnow
kRain
kTrail
*/
ParticleEmitterContainer.SpriteSet <XString>
// Resource ID of the sprite used to render the perticle
ParticleEmitterContainer.MeshAnimNodeName <XString>
// Animation frame(s) for XOM mesh particles. Syntax '[loop:]<NodeName1> [+|,[loop:]<NodeName2]...]. To Loop animation start with 'Loop:'. To play animations simultaneously use '+'. To play animations in sequence use ','. Any number of animations can be played
ParticleEmitterContainer.EmitterAcceleration <XVector3f>
// Accelaration of the EMITTER
ParticleEmitterContainer.EmitterAccelerationRandomise <XVector3f>
// Accelaration of the EMITTER
ParticleEmitterContainer.EmitterIsAttachedToLand <XBool>
// If set then the emmiter will die if the land directly below it disappears
ParticleEmitterContainer.EmitterIsOfInterest <XBool>
// If set then the current turn will not end until the emitter dies
ParticleEmitterContainer.EmitterIsLaunchedFromWeapon <XBool>
// If set then the emitter will come the end of the weapon
ParticleEmitterContainer.EmitterLifeTime <XUint>
// Lifetime of the emitter (in ms)
ParticleEmitterContainer.EmitterLifeTimeRandomise <XUint>
// Lifetime of the emitter (in ms)
ParticleEmitterContainer.EmitterMaxParticles <XUint>
// Maximum number of particles visible
ParticleEmitterContainer.EmitterNumCollide <XUint>
// How many of MaxParticles will collide with the ground. VERY EXPENSIVE so keep low!
ParticleEmitterContainer.EmitterNumSpawn <XUint>
// Number of particles the emitter will spawn at once
ParticleEmitterContainer.EmitterNumSpawnRadnomise <XUint>
// Number of particles the emitter will spawn at once
ParticleEmitterContainer.EmitterOriginOffset <XVector3f>
// Position of the emitter (relative to the emitter's origin)
ParticleEmitterContainer.EmitterOriginRandomise <XVector3f>
// Position of the emitter (relative to the emitter's origin)
ParticleEmitterContainer.EmitterParticleExpireFX <XString>
// Particle emitter to spawn when EACH particle expires - EXPENSIVE!
ParticleEmitterContainer.EmitterParticleFX <XString>
// Particle emitter effect to attatch to EACH particle - EXPENSIVE!
ParticleEmitterContainer.EmitterSameDirectionAsWorm <XBool>
// If set then particles will be emitted in the direction the worm is facing
ParticleEmitterContainer.EmitterSoundFX <XString>
// Sound effect to play when the emitter is created
ParticleEmitterContainer.EmitterSoundFXVolume <XFloat>
// Volume of the Sound effect
ParticleEmitterContainer.EmitterSpawnFreq <XUint>
// How frequently the emitter will spawn particles (in ms)
ParticleEmitterContainer.EmitterSpawnFreqRansomise <XUint>
// How frequently the emitter will spawn particles (in ms)
ParticleEmitterContainer.EmitterSpawnSizeVelocity <XVector2f>
ParticleEmitterContainer.EmitterStartDelay <XUint>
// Delay before the emitter starts emitting prarticles (in ms)
ParticleEmitterContainer.EmitterVelocity <XVector3f>
// Velocity of the EMITTER
ParticleEmitterContainer.EmitterVelocityRandomise <XVector3f>
// Velocity of the EMITTER
ParticleEmitterContainer.ParticleAcceleration <XVector3f>
// Acceleration of the particles. (Set Y to a negative value for gravity)
ParticleEmitterContainer.ParticleAccelerationRandomise <XVector3f>
// Acceleration of the particles. (Set Y to a negative value for gravity)
ParticleEmitterContainer.ParticleAlpha <XFloat>
// Initial alpha of the particle ( Between 0 & 1)
ParticleEmitterContainer.ParticleAlphaFadeIn <XUint>
// Time until the alpha value reaches the value set in the ParticleAlpha files (i.e length of fade in )
ParticleEmitterContainer.ParticleAlphaVelocity <XFloat>
// How the alpha changes over time. Set to -1 to fade out over lifetime
ParticleEmitterContainer.ParticleAlphaVelocityDelay <XUint>
// Delay before alpha velocity is applied (in ms)
ParticleEmitterContainer.ParticleAlternateAccelerationN <XFloat>
ParticleEmitterContainer.ParticleAlternateAccelerationS <XFloat>
ParticleEmitterContainer.ParticleAnimationFrame <XUint8>
// Inital Animation frame of the particle
ParticleEmitterContainer.ParticleAnimationFrameRandomise <XUint8>
// Inital Animation frame of the particle
ParticleEmitterContainer.ParticleAnimationSpeed <XUint>
// Speed to animate (in ms)
ParticleEmitterContainer.ParticleAnimationSpeedRandomize <XUint>
// Speed to animate (in ms)
ParticleEmitterContainer.ParticleAttractor <XVector3f>
// Position (relative to the emitter origin) that the particles attract towards
ParticleEmitterContainer.ParticleAttractorRandomise <XVector3f>
// Position (relative to the emitter origin) that the particles attract towards
ParticleEmitterContainer.ParticleAttractorIsActive <XBool>
// Enable attract to point mode
ParticleEmitterContainer.ParticleCanEnterWater <XBool>
// If set to false then particles will expire when they hit the water
ParticleEmitterContainer.ParticleCollisionFreq <XUint>
// Which particles collide with the worms ie Every n particle will do collision detection
ParticleEmitterContainer.ParticleCollisionImmuneTime <XUint>
// Time (in MS) until the particle can re-collide with a worm.
ParticleEmitterContainer.ParticleCollisionMinAlpha <XFloat>
// If the alpha of the particles is below this value then don't collide with a worm
ParticleEmitterContainer.ParticleCollisonRadius <XFloat>
// Size of the collision sphere of the particle
ParticleEmitterContainer.ParticleCollisonRadiusOffset <XVector3f>
ParticleEmitterContainer.ParticleCollisonRadiusVelocity <XFloat>
// How the collision sphere radius changes over time
ParticleEmitterContainer.ParticleCollisionShowDebug <XBool>
ParticleEmitterContainer.ParticleCollisionWormDamageMagnitude <XUint8>
ParticleEmitterContainer.ParticleCollisionWormImpulseMagnitude <XFloat>
ParticleEmitterContainer.ParticleCollisionWormImpulseYMagnitude <XFloat>
ParticleEmitterContainer.ParticleCollisionWormPoisonMagnitude <XUint8>
ParticleEmitterContainer.ParticleCollisionWormType <XEnum>
// WormCollideEnum
/* enum kWC_Standard
kWC_Expire
kWC_Lightside
kWC_Darkside
*/
ParticleEmitterContainer.ParticleExpireShake <XBool>
// Shake the camera when EACH particle dies
ParticleEmitterContainer.ParticleExpireShakeLength <XUint>
// Length of the camera shake when EACH particle dies (in MS)
ParticleEmitterContainer.ParticleExpireShakeMagnitude <XFloat>
// Strength of the camera shake when EACH particle dies
ParticleEmitterContainer.ParticleIsAlternateAcceleration <XBool>
// If set then particles will come out fast & then quickly slow down
ParticleEmitterContainer.ParticleIsEffectedByWind <XBool>
// If set then particles will be blown by the wind
ParticleEmitterContainer.ParticleIsSpiral <XBool>
// If set then particles will spiral upwards
ParticleEmitterContainer.ParticleIsUnderWaterEffect <XBool>
// If set then particles will die when the reach the water level (from under the water
ParticleEmitterContainer.ParticleLandCollideType <XEnum>
// LandCollideEnum
/* enum kLC_None
kLC_Bounce
kLC_Expire
kLC_StopMoving
kLC_StopMovingAndAttach
*/
// What to do when the particle collides with the land (NumCollide must be set too)
ParticleEmitterContainer.ParticleLife <XUint>
// Lifetime of each particle (in ms)
ParticleEmitterContainer.ParticleLifeRandomise <XUint>
// Lifetime of each particle (in ms)
ParticleEmitterContainer.ParticleMass <XFloat>
// Mass of the particles
ParticleEmitterContainer.ParticleNumColors <XByte>
// The number of colours in the particle effect
ParticleEmitterContainer.ParticleNumFrames <XByte>
// Number of animation frames
ParticleEmitterContainer.ParticleOrientation <XVector3f>
// Rotation of the particle (in degrees)
ParticleEmitterContainer.ParticleOrientationRandomise <XVector3f>
// Rotation of the particle (in degrees)
ParticleEmitterContainer.ParticleOrientationVelocity <XVector3f>
// How the rotation changes over time
ParticleEmitterContainer.ParticleOrientationVelocityRandomise <XVector3f>
// How the rotation changes over time
ParticleEmitterContainer.ParticleSize <XVector2f>
// Size of the particles
ParticleEmitterContainer.ParticleSizeOriginIsCenterPoint <XBool>
// If set then the particle will be sizes around it's center point, rather than the bottom left corner
ParticleEmitterContainer.ParticleSizeRandomise <XFloat>
// Size of the particles
ParticleEmitterContainer.ParticleSizeVelocity <XVector2f>
// How the size changes over time
ParticleEmitterContainer.ParticleSizeVelocityRandomise <XVector2f>
// How the size changes over time
ParticleEmitterContainer.ParticleSizeVelocityDelay <XUint>
// Delay until the particle starts resizing
ParticleEmitterContainer.ParticleSizeVelocityDelayRandomise <XUint>
ParticleEmitterContainer.ParticleFinalSizeScale <XVector2f>
// The size of the particle when it's finshed (dies). This value is a scale factor. eg set to (0.25,0.25) to make it shrink to a quater of it's original size when by the time it dies
ParticleEmitterContainer.ParticleFinalSizeScaleRandomise <XFloat>
ParticleEmitterContainer.ParticleSizeFadeIn <XUint>
// Time taken (in MS) to fade the size of the particles from zero to their actual size
ParticleEmitterContainer.ParticleSizeFadeInRandomize <XUint>
ParticleEmitterContainer.ParticleSizeFadeInDelay <XUint>
// Don't start fading in the size of the particles until this time
ParticleEmitterContainer.ParticleSizeFadeInDelayRandomize <XUint>
ParticleEmitterContainer.ParticleRenderScene <XEnum>
// ParticleSceneEnum
/* enum kPS_Default
kPS_Scene1
kPS_Scene2
kPS_Scene3
kPS_Scene4
kPS_Scene5
*/
// Order in which to render the particles. Scene1 will always be rendered before Scene2 and so on
ParticleEmitterContainer.ParticleSpiralRadius <XFloat>
// Radius of the spiral effect
ParticleEmitterContainer.ParticleSpiralRadiusRandomise <XFloat>
ParticleEmitterContainer.ParticleSpiralRadiusVelocity <XFloat>
// How fast the particles move around the spiral radius
ParticleEmitterContainer.ParticleSpiralRadiusVelocityRandomise <XFloat>
ParticleEmitterContainer.ParticleSpiralRadiusSizeVelocity <XFloat>
// How the spiral radius changes over time
ParticleEmitterContainer.ParticleVelocity <XVector3f>
// Velocity of the particles
ParticleEmitterContainer.ParticleVelocityRandomise <XVector3f>
ParticleEmitterContainer.ParticleVelocityIsNormalised <XBool>
== Reading XConteiner end ===
P.S. Знаю где-то это на форуме уже было, но тут более детальное описание некоторых Enum типов.