The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 871 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 871 errorHandler->error




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


Messages In This Thread
A new Yuri's Revenge INI editor (update 05/27/11) - by linq2js - 24.05.2011, 21:29:57
RE: A new Yuri's Revenge INI editor - by DCoder - 24.05.2011, 21:34:28
RE: A new Yuri's Revenge INI editor - by linq2js - 24.05.2011, 21:44:15
RE: A new Yuri's Revenge INI editor - by AlexB - 24.05.2011, 22:15:54
RE: A new Yuri's Revenge INI editor - by Orac - 25.05.2011, 00:41:49



Users browsing this thread: 1 Guest(s)