Displayed here my experimental weapons. Don't take this as a serious mod for players. But you can try the old lab mod.

Post news Report RSS A plan for the ultimate ini editor

While all editors limit users to the few designed boxes to fill, I thought of how real human do the INI works. The regular way of notepad edit is just copying&pasting some existing ini blocks and create links between them. The plan was finished some time ago, when I told LH_Mouse, the answer is "will take about a month if I have the time for it". Dcoder told me 3 months or 6. Anyway I will just drop the plan and its design here.

Posted by on

First of all it is a visual editor, which might be the hardest part. Drag in blocks to create ini modules, click or draw line to create links.

INI modules would be first prepared. For example, a default unit would be a conscript copy, a default weapon is MissileLauincher copy, a default projectile is AAHeatSeeker, a default Warhead is HE

Then it is super flexible,we should be able to change its link rules by editing config files.

We first setup a link rule:unit-weapon link uses Primary= tag.
It means your editor does not know INI rules. You should teach it how to link different modules.
So we do the weapon->projectile,weapon->warhead rules.

Then you drag in a unit module and a weapon module, and link them together. While most code are not links, they should be in a normal txt editor window. When you select a module you can also change its name.

Setup another link rule: Projectile->weapon uses ShrapnelWeapon=, and an additional tag ShrapnelCount.

Then drag in another weapon module and link the previous weapon with it. You create a shrapnel system like that.

When you draw all needed code, click an output buttom to write them into different inis or into a whole file. When you hit it, run a name check.

That is the basic working way of it.
There are also other additional,detailed designs of it,

A understandable config example:

[WeaponType]
Link1=ProjectileType,Projectile
Link2=WarheadType,Warhead
Link3=AnimationType,Anim,Multi

Multi means each link will not erase the previous setting.

[AnimationType]
Link1=AnimationType,Next
Link2=WarheadType,Warhead
Link3=ParticleType,SpawnsParticle
Link3Other=NumParticles

The xxxOther defaults to 1.

[ProjectileType]
Link1=WeaponType,AirburstWeapon
Link1Other=Cluster
Link2=WeaponType,ShrapnelWeapon
Link2Other=ShrapnelCount

If there is alternative link methods, use the first one as default.

[WarheadType]
Link1=AnimationType,AnimList
Link2=AnimationType,Temporal.WarpAway
Location:rulesmd,[Warheads]
You can add other links by editing the config file.
the location tag defines which ini file and where it should go to.All big types should have this.

[UnitType]
Link1=WeaponType,Primary
Link2=WeaponType,ElitePrimary,Optional,Off
Link3=WeaponType,Secondary,Optional,Off
Link4=WeaponType,EliteSecondary,Optional,Off
Link5=WeaponType,DeathWeapon,Optional,Off
Link6=WeaponType,EliteDeathWeapon,Optional,Off

so you need to activate them to make the links "appear"

[ProjectileTypeAirburst]
Link1=WeaponType,AirburstWeapon

[ProjectileTypeShrapnel]
Link1=WeaponType,ShrapnelWeapon

So you can easily set up the primary types for your own convenience

The prepared modules should be written like this:

[DefaultAnimation]
Type=AnimationType
;----------------------------------------
LoopCount=1
Rate=400

[DefaultGun]
Type=WeaponType
;-----------------------------------------
Damage=15
ROF=20
Range=4
Projectile=InvisibleLow
Speed=100
Warhead=SA
Report=GIAttack
Anim=MGUN-N,MGUN-NE,MGUN-E,MGUN-SE,MGUN-S,MGUN-SW,MGUN-W,MGUN-NW
OccupantAnim=UCFLASH

[DefaultCannon]
Type=WeaponType
;-----------------------------------------
Damage=90
ROF=65
Range=5.75
Projectile=Cannon
Speed=40
Warhead=AP
Report=RhinoTankAttack
Anim=GUNFIRE
Bright=yes

when you put them to use, every single line except the type= will be directly copied. You can change the default settings by editing them. When you create links the default link will be overwritten.
Or the default modules should come without link tags.

Optional modules will be combined to the linked module.

like this

[GattlingModule]
IsGattling=yes
TurretCount=1
WeaponCount=6
WeaponStages=3
Stage1=200
Stage2=400
Stage3=600
EliteStage1=100
EliteStage2=200
EliteStage3=300
RateUp=1
RateDown=50
IsCyclicGattling=no

Link1=WeaponType,Weapon1
Link2=WeaponType,EliteWeapon1,Optional,On
Link3=WeaponType,Weapon2,Optional,On
Link4=WeaponType,EliteWeapon2,Optional,On
Link5=WeaponType,Weapon3,Optional,On
Link6=WeaponType,EliteWeapon3,Optional,On
Link7=WeaponType,Weapon4,Optional,On
Link8=WeaponType,EliteWeapon4,Optional,On
Link9=WeaponType,Weapon5,Optional,On
Link10=WeaponType,EliteWeapon5,Optional,On
Link11=WeaponType,Weapon6,Optional,On
Link12=WeaponType,EliteWeapon6,Optional,On

So a basic superweapon module should include the basic recharge,power,etc etc, use additional modules to define what it exactly is.
The same use can be for spawned missiles,for shake screen tags or anything of the user's idea.


you can display every link point on the module ,a point with no link should not be written the tag in the output.


Or you just link them together with regular tags, you can activate rarely used tags by the optional control.


Post comment Comments
Tleno
Tleno - - 1,048 comments

Please do, this sounds wonderful.

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: