Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
A new Yuri's Revenge INI editor (update 05/27/11)
#1
I develop a modding tool "Yuri's Revenge INI Editor".

Some program screenshots:

[Image: 1.jpg]
List of sections and child sections or section properties, can jump to section with a button on editing grid.

[Image: 2.jpg]
Advanced find section tool with wildcard supporting (startwith / endwith), default search any section name contains a keyword.

[Image: 4.jpg]
Edit property easily with auto complete popup dialog (customizable by config.ini)

[Image: 5.jpg]
Predifined template supporting for quick creating a new section

[Image: 3.jpg]

Main program commands:
Filter -> filter property / section displayed in editing grid
Goto section -> goto current editing section
Auto Complete -> popup available values of selected property
Find Section -> find section with wildcards
Clone Section -> copy all properties of current to new section
Copy Properties -> copy selected properties to other section
Merge Properties -> copy all properties to other section
Copy INI Code -> copy ini code of selected / all properties to clipboard
Show INI source
Insert INI code -> insert ini snippet to current source and reload
Clear Property Value -> clear selected / all propertie values of current section

config.ini
A program customization data, some snippets:

[rulesmd] -> define a schema for rulesmd.ini
@General=node -> indicate General section show in left panel
@BuildingTypes=list -> indicate BuildingTypes show in left panel and auto reorder child sections, display "jump to section" button in a editing grid


(*)/Owner=multiple(@Countries) -> indicate Owner property of any section has popup dialog showing all values in Countries section
(*)/ToProtect=boolean -> indicate a boolean (yes/no)
(*)/FreeUnit=single(@VehicleTypes)
(*)/Primary=single(@All) -> @All token mean "All section names"
(*)/Prerequisite=multiple(@BuildingTypes)

syntax: multiple(@SectionName1, value1, value2, @SectionName2) => popup multiple values selecting dialog

syntax: single(@SectionName1, value1, value2, @SectionName2) => popup single value selecting dialog

Section or property matching can be regular expression.
Ex: (*)/Weapon\d+= => match Weapon1, Weapon2, WeaponX...

General/AICaptureWounded=number -> AICaptureWounded property of General section is number

[rulesmd.template] -> define a templates for rulesmd.ini
#Title=Building Type -> Text display in menu
UIName=
Name=
BuildCat=
Prerequisite=
Strength=
Armor=
TechLevel=


[rulesmd.template] -> define a templates for rulesmd.ini
#Title=InfantryType -> Text display in menu
UIName=
Name=
Image
Prerequisite=
Strength=
Cost=
Armor=
Primary=
Seconday=
TechLevel=


... and more ...
In order, the template menu item has shortcutkeys is Ctrl+1 -> Ctrl+0 and Ctrl+Shift+1 -> Ctrl+Shift+0 (total 20 items), >21th item has no shortcutkeys

Update 05/25/2011:
Now, the editor can validate INI code. Validation conditions store in config.ini. Download link changed.

[rulesmd.validation] => define a validation
Warheads/(*)=exist => all items in Warheads section must be existed
(*)/Primary=exist => all values of Primary property in any section must be existed
(*)/Seconday=exist
(*)/Projectile=exist
(*)/Prerequisite=exist
(*)/Owner=exist

(*)/Warhead=exist(Warheads) => all values of Wardhead property must be existed in Warheads section

Screenshots:
[Image: 6.jpg]



Update 05/27/11 (Download link changed):
+ New menu INI, move some items from Edit menu to the INI.

+ New command Fill Series

+ Add color selector dialog
config.ini code: (*)/PropertyName = color
[Image: 9.jpg]

+ Section groupping / filtering
[Image: 8.jpg]

Some examples:
@(*)=filter(mode=Basic & prerequisite=GACNST & title=Allied Buildings) => filter with basic mode, section must has prerequisite=GACNST, show title in list of sections

@(*)=filter(mode=Basic & prerequisite=GAPILE & category=Soldier & title=Allied Infantry)

@(*)=filter(mode=Basic & prerequisite=GAWEAP & category=AFV & title=Allied Units)

@(*)=filter(mode=Basic & prerequisite=GAYARD & title=Allied Naval)

@(*)=filter(title=All Weapons & projectile) => any section has projectile (no property value restriction)

@(*)=filter(title=Used Weapons & mode=Collect & property=Primary & property=Secondary) => collection all sections in indicated properties

General syntax:
filter(paramName1 = paramValue1 & paramName2 = paramValue2)
- Preversed parameter names: title, mode, test, property
- Other parameters are filter conditions, parameter has only name means value is optional.
- Parameter name can duplicate in some case.


+ Fix INI validation errors, config.ini code:
[rulesmd.validation]
Warheads/(*)=exist
(*)/Primary=exist(!NONE)
(*)/Seconday=exist(!NONE)
(*)/Projectile=exist => section of this property must be existed
(*)/Prerequisite=exist(!BARRACKS,!RADAR,!TECH,!PROC,!POWER,!FACTORY,!BASE) => check existing and ignore some ALIAS
(*)/Owner=exist
(*)/Warhead=exist(Warheads) => must be exist in Warheads section

+ INI comparision
[Image: 10.jpg]

[Image: 11.jpg]

Next features: Replace property value.

Install / Requirements:
- No installation required
- Program run on Microsoft .NET Framework 3.5, download here
- Download link

Notes:
Program is still developing, please backup your ini file before edit by program.

Please report bugs / questions in this thread.

Thanks for your reading
Reply
#2
Looks useful, keep up the good work!

Just mind that there are several thousand tags in the engine, your configuration file will end up quite large.
Reply
#3
(24.05.2011, 21:34:28)DCoder Wrote: Looks useful, keep up the good work!

Just mind that there are several thousand tags in the engine, your configuration file will end up quite large.

Thank you, I think every modder only use small set of tags for themselves . Program can load a <100k config file quickly.
Reply
#4
Good work so far.
Reply
#5
Thats really handy, nice work!
FormerAres Documentation Manager
Nobody here but us trees...
Graion Dilach Wrote:Worm, you know this guy is an American lawyer of some sort.
Giggle Good one!
Reply
#6
Inpressive. That looks like a very effective interface.
Lovely work, I'll use it.
Reply
#7
I always used wordpad to edit my ini files, but this tool looks awesome, I think I will use it.
Java student.
Reply
#8
Crap, of course these pops up after my GPU fries!

When I get a new PC, I'll check this one. Looks nice but TBH... an AI editor with this awesomity would be much more helpful.
Reply
#9
Thanks all, new features will update soon, some screenshots:

Fixed PROC, BASE, FACTORY error messages when validate INI code
[Image: 7.jpg]

Can define section filters for quickly access
[Image: 8.jpg]

Color selector
[Image: 9.jpg]
Reply
#10
(26.05.2011, 15:44:03)linq2js Wrote: Thanks all, new features will update soon, some screenshots:

Fixed PROC, BASE, FACTORY error messages when validate INI code
[Image: 7.jpg]

Can define section filters for quickly access
[Image: 8.jpg]

Color selector
[Image: 9.jpg]
Good update Smile
Reply
#11
Preview a AI Editor:

Features:

AI Editor is a part of Yuri'Revenge INI Editor, at Tools -> AI Editor (in the future: Art Editor etc.)

[Image: 12.jpg]

Main screen is very simple, no buttons. All commands will execute by shortcuts (Ctrl+A select all, Ctrl+D deselect all ..). Available single keys: Del, Enter, Insert ... for editing. Other commands: Clone

- ID is readonly and auto generation
- 1, 2, 3, 4: list of object type
- 5: predefined filter
- 6: quick filter: can input text for basic searching or advanced syntax for property value searching
Ex: search trigger: TechType = NAMISL & Side = 1 & (ProbDef = 10 | ProbDef = 20)
Operators supported:
=, <> for string / number comparision
>, <, >=, <= for number comparision
& (and), | (or) logic
(, ) grouping
Property name only means "property is not empty"
!Property name only means "property is empty"

- 7, 8: multi editing with previous, next buttons and dropdown list
- 9: can reset one / all editing object to origin values

Download link will update soon
Reply
#12
Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.
Reply
#13
(30.05.2011, 21:09:43)Graion Dilach Wrote: Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.

That's a good question, having it be able to be used for new Sides would greatly increase the chance of it being used.
Reply
#14
(31.05.2011, 00:08:01)hogo Wrote:
(30.05.2011, 21:09:43)Graion Dilach Wrote: Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.

That's a good question, having it be able to be used for new Sides would greatly increase the chance of it being used.

Sides and Countries read from rulesmd in order (1 = GDI, 2 = NOD, 3 = ThirdSide, 4 = FourthSide and so on)
Reply




Users browsing this thread: 1 Guest(s)