[Solved] How to Adjust Unit BaseSightRange when on a Hill

MR.Pat

Chieftain
Joined
Apr 7, 2019
Messages
24
Location
Germany
Hello,
I want to create a Mod that changes the BaseSightRange of Units when on a Hill, but i cant get it to work with Modifiers, or Abilitys, or Traits,
I´m new to Modding, and reading Guides and looking at other Mods.

This is what i have written:

Code:
INSERT INTO Types                (Type, Kind)
            VALUES                ('ENHANCED_SIGHT_ON_HILLS_A', 'KIND_MODIFIER'),
                                ('ENHANCED_SIGHT_ON_HILLS_B', 'KIND_MODIFIER'),
                                ('ENHANCED_SIGHT_ON_HILLS_C', 'KIND_MODIFIER'),
                                ('ENHANCED_SIGHT_ON_HILLS_D', 'KIND_MODIFIER'),
                                ('ENHANCED_SIGHT_ON_HILLS_E', 'KIND_MODIFIER');
INSERT INTO Types                (Type, Kind)
            VALUES                ('EFFECT_ADJUST_UNIT_SIGHT_A', 'KIND_EFFECT'),
                                ('EFFECT_ADJUST_UNIT_SIGHT_B', 'KIND_EFFECT'),
                                ('EFFECT_ADJUST_UNIT_SIGHT_C', 'KIND_EFFECT'),
                                ('EFFECT_ADJUST_UNIT_SIGHT_D', 'KIND_EFFECT'),
                                ('EFFECT_ADJUST_UNIT_SIGHT_E', 'KIND_EFFECT');
INSERT INTO Types                (Type, Kind)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A', 'KIND_ABILITY'),
                                ('ABILITY_ENHANCED_SIGHT_B', 'KIND_ABILITY'),
                                ('ABILITY_ENHANCED_SIGHT_C', 'KIND_ABILITY'),
                                ('ABILITY_ENHANCED_SIGHT_D', 'KIND_ABILITY'),
                                ('ABILITY_ENHANCED_SIGHT_E', 'KIND_ABILITY');
                                
                                


--------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------

INSERT INTO GameEffects            (Type,                            CommonName, Description,    Tags, GameCapabilities, ContextInterfaces, SubjectInterfaces, SupportsRemove)
            VALUES                ('EFFECT_ADJUST_UNIT_SIGHT_A',  NULL, 'ADJUST_UNIT_SIGHT_A', NULL, NULL,            NULL,                NULL,                NULL),
                                ('EFFECT_ADJUST_UNIT_SIGHT_B',  NULL, 'ADJUST_UNIT_SIGHT_B', NULL, NULL,            NULL,                NULL,                NULL),
                                ('EFFECT_ADJUST_UNIT_SIGHT_C',  NULL, 'ADJUST_UNIT_SIGHT_C', NULL, NULL,            NULL,                NULL,                NULL),
                                ('EFFECT_ADJUST_UNIT_SIGHT_D',  NULL, 'ADJUST_UNIT_SIGHT_D', NULL, NULL,            NULL,                NULL,                NULL),
                                ('EFFECT_ADJUST_UNIT_SIGHT_E',  NULL, 'ADJUST_UNIT_SIGHT_E', NULL, NULL,            NULL,                NULL,                NULL);


INSERT INTO DynamicModifiers    (ModifierType, CollectionType, EffectType)
            VALUES                ('ENHANCED_SIGHT_ON_HILLS_A', 'COLLECTION_ALL_UNITS', 'EFFECT_ADJUST_UNIT_SIGHT_A'),
                                ('ENHANCED_SIGHT_ON_HILLS_B', 'COLLECTION_ALL_UNITS', 'EFFECT_ADJUST_UNIT_SIGHT_B'),
                                ('ENHANCED_SIGHT_ON_HILLS_C', 'COLLECTION_ALL_UNITS', 'EFFECT_ADJUST_UNIT_SIGHT_C'),
                                ('ENHANCED_SIGHT_ON_HILLS_D', 'COLLECTION_ALL_UNITS', 'EFFECT_ADJUST_UNIT_SIGHT_D'),
                                ('ENHANCED_SIGHT_ON_HILLS_E', 'COLLECTION_ALL_UNITS', 'EFFECT_ADJUST_UNIT_SIGHT_E');

INSERT INTO Modifiers            (ModifierId,            ModifierType, OwnerRequirementSetId, SubjectRequirementSetId)
            VALUES                ('ENHANCED_SIGHT_A',    'ENHANCED_SIGHT_ON_HILLS_A',  NULL, 'TERRAIN_IS_A_HILL_A'),
                                ('ENHANCED_SIGHT_B',    'ENHANCED_SIGHT_ON_HILLS_B',  NULL, 'TERRAIN_IS_A_HILL_B'),
                                ('ENHANCED_SIGHT_C',    'ENHANCED_SIGHT_ON_HILLS_C',  NULL, 'TERRAIN_IS_A_HILL_C'),
                                ('ENHANCED_SIGHT_D',    'ENHANCED_SIGHT_ON_HILLS_D',  NULL, 'TERRAIN_IS_A_HILL_D'),
                                ('ENHANCED_SIGHT_E',    'ENHANCED_SIGHT_ON_HILLS_E',  NULL, 'TERRAIN_IS_A_HILL_E');


INSERT INTO     ModifierArguments    (ModifierId,            Name, Value)
            VALUES                ('ENHANCED_SIGHT_A',    'BaseSightRange', 20),
                                ('ENHANCED_SIGHT_B',    'BaseSightRange', 20),
                                ('ENHANCED_SIGHT_C',    'BaseSightRange', 20),
                                ('ENHANCED_SIGHT_D',    'BaseSightRange', 20),
                                ('ENHANCED_SIGHT_E',    'BaseSightRange', 20);
                                

INSERT INTO    RequirementSets        (RequirementSetId,        RequirementSetType)
            VALUES                ('TERRAIN_IS_A_HILL_A', 'REQUIREMENTSET_TEST_ALL'),
                                ('TERRAIN_IS_A_HILL_B', 'REQUIREMENTSET_TEST_ALL'),
                                ('TERRAIN_IS_A_HILL_C', 'REQUIREMENTSET_TEST_ALL'),
                                ('TERRAIN_IS_A_HILL_D', 'REQUIREMENTSET_TEST_ALL'),
                                ('TERRAIN_IS_A_HILL_E', 'REQUIREMENTSET_TEST_ALL');

INSERT INTO RequirementSetRequirements (RequirementSetId, RequirementId)
            VALUES                ('TERRAIN_IS_A_HILL_A', 'TERRAIN_ON_HILL_A'),
                                ('TERRAIN_IS_A_HILL_B', 'TERRAIN_ON_HILL_B'),
                                ('TERRAIN_IS_A_HILL_C', 'TERRAIN_ON_HILL_C'),
                                ('TERRAIN_IS_A_HILL_D', 'TERRAIN_ON_HILL_D'),
                                ('TERRAIN_IS_A_HILL_E', 'TERRAIN_ON_HILL_E');


INSERT INTO Requirements        (RequirementId, RequirementType)
            VALUES                ('TERRAIN_ON_HILL_A', 'REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES'),
                                ('TERRAIN_ON_HILL_B', 'REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES'),
                                ('TERRAIN_ON_HILL_C', 'REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES'),
                                ('TERRAIN_ON_HILL_D', 'REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES'),
                                ('TERRAIN_ON_HILL_E', 'REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES');


INSERT INTO RequirementArguments(RequirementId, Name, Value)
            VALUES                ('TERRAIN_ON_HILL_A', 'TerrainType', 'TERRAIN_GRASS_HILLS'),
                                ('TERRAIN_ON_HILL_B', 'TerrainType', 'TERRAIN_PLAINS_HILLS'),
                                ('TERRAIN_ON_HILL_C', 'TerrainType', 'TERRAIN_DESERT_HILLS'),
                                ('TERRAIN_ON_HILL_D', 'TerrainType', 'TERRAIN_TUNDRA_HILLS'),
                                ('TERRAIN_ON_HILL_E', 'TerrainType', 'TERRAIN_SNOW_HILLS');

---------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
INSERT INTO TraitModifiers        (TraitType,                        ModifierId)
            VALUES                ('TRAIT_LEADER_MAJOR_CIV',        'ENHANCED_SIGHT_A'),
                                ('TRAIT_LEADER_MAJOR_CIV',        'ENHANCED_SIGHT_B'),
                                ('TRAIT_LEADER_MAJOR_CIV',        'ENHANCED_SIGHT_C'),
                                ('TRAIT_LEADER_MAJOR_CIV',        'ENHANCED_SIGHT_D'),
                                ('TRAIT_LEADER_MAJOR_CIV',        'ENHANCED_SIGHT_E'),
                                
                                ('MINOR_CIV_DEFAULT_TRAIT',        'ENHANCED_SIGHT_A'),                   
                                ('MINOR_CIV_DEFAULT_TRAIT',        'ENHANCED_SIGHT_B'),
                                ('MINOR_CIV_DEFAULT_TRAIT',        'ENHANCED_SIGHT_C'),
                                ('MINOR_CIV_DEFAULT_TRAIT',        'ENHANCED_SIGHT_D'),
                                ('MINOR_CIV_DEFAULT_TRAIT',        'ENHANCED_SIGHT_E');

---------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------

 INSERT INTO UnitAbilityModifiers    (UnitAbilityType,                ModifierId)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A',        'ENHANCED_SIGHT_A'),
                                ('ABILITY_ENHANCED_SIGHT_B',        'ENHANCED_SIGHT_B'),
                                ('ABILITY_ENHANCED_SIGHT_C',        'ENHANCED_SIGHT_C'),
                                ('ABILITY_ENHANCED_SIGHT_D',        'ENHANCED_SIGHT_D'),
                                ('ABILITY_ENHANCED_SIGHT_E',        'ENHANCED_SIGHT_E');



INSERT INTO UnitAbilities        (UnitAbilityType,            Name,                        Description,                    Inactive,    ShowFloatTextWhenEarned)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A', 'LOC_ABILITY_ENHANCED_SIGHT_A_NAME', 'LOC_ABILITY_ENHANCED_SIGHT_A_DESCRIPTION', 0, 1),
                                ('ABILITY_ENHANCED_SIGHT_B', 'LOC_ABILITY_ENHANCED_SIGHT_B_NAME', 'LOC_ABILITY_ENHANCED_SIGHT_B_DESCRIPTION', 0, 1),
                                ('ABILITY_ENHANCED_SIGHT_C', 'LOC_ABILITY_ENHANCED_SIGHT_C_NAME', 'LOC_ABILITY_ENHANCED_SIGHT_C_DESCRIPTION', 0, 1),
                                ('ABILITY_ENHANCED_SIGHT_D', 'LOC_ABILITY_ENHANCED_SIGHT_D_NAME', 'LOC_ABILITY_ENHANCED_SIGHT_D_DESCRIPTION', 0, 1),
                                ('ABILITY_ENHANCED_SIGHT_E', 'LOC_ABILITY_ENHANCED_SIGHT_E_NAME', 'LOC_ABILITY_ENHANCED_SIGHT_E_DESCRIPTION', 0, 1);


INSERT INTO TypeTags            (Type,                            Tag)                               
            VALUES                ('ABILITY_ENHANCED_SIGHT_A',        'CLASS_ANTI_AIR'),   
                                ('ABILITY_ENHANCED_SIGHT_B',        'CLASS_ANTI_AIR'),
                                ('ABILITY_ENHANCED_SIGHT_C',        'CLASS_ANTI_AIR'),
                                ('ABILITY_ENHANCED_SIGHT_D',        'CLASS_ANTI_AIR'),
                                ('ABILITY_ENHANCED_SIGHT_E',        'CLASS_ANTI_AIR');
INSERT INTO TypeTags            (Type,                            Tag)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A',        'CLASS_ANTI_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_B',        'CLASS_ANTI_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_C',        'CLASS_ANTI_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_D',        'CLASS_ANTI_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_E',        'CLASS_ANTI_CAVALRY');
INSERT INTO TypeTags            (Type,                            Tag)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A',        'CLASS_LIGHT_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_B',        'CLASS_LIGHT_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_C',        'CLASS_LIGHT_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_D',        'CLASS_LIGHT_CAVALRY'),
                                ('ABILITY_ENHANCED_SIGHT_E',        'CLASS_LIGHT_CAVALRY');
INSERT INTO TypeTags            (Type,                            Tag)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A',        'CLASS_MELEE'),
                                ('ABILITY_ENHANCED_SIGHT_B',        'CLASS_MELEE'),
                                ('ABILITY_ENHANCED_SIGHT_C',        'CLASS_MELEE'),
                                ('ABILITY_ENHANCED_SIGHT_D',        'CLASS_MELEE'),
                                ('ABILITY_ENHANCED_SIGHT_E',        'CLASS_MELEE');
INSERT INTO TypeTags            (Type,                            Tag)
            VALUES                ('ABILITY_ENHANCED_SIGHT_A',        'CLASS_RECON'),
                                ('ABILITY_ENHANCED_SIGHT_B',        'CLASS_RECON'),
                                ('ABILITY_ENHANCED_SIGHT_C',        'CLASS_RECON'),
                                ('ABILITY_ENHANCED_SIGHT_D',        'CLASS_RECON'),
                                ('ABILITY_ENHANCED_SIGHT_E',        'CLASS_RECON');

For Example the CollectenType or EffectType in the DynamicModifiers dosent work at all i belive,
Sorry i ám, trying now for day´s and hours to get it to work and im frustrated now,

Thanks
 
This is code I've used to grant Spec Ops +1 sight on hills. It should be pretty easy to modify it to your needs.
Spoiler :
Code:
-----------------------------------------------
-- Types
-----------------------------------------------

INSERT INTO Types
            (Type,                                              Kind)
VALUES      ('ABILITY_LK_SPECIAL_FORCES_SIGHT_RANGE',           'KIND_ABILITY'),
            ('MODTYPE_LK_SPECIAL_FORCES_ADJUST_SIGHT_RANGE',    'KIND_MODIFIER');
            
-----------------------------------------------
-- Tags
-----------------------------------------------

INSERT INTO Tags       
            (Tag,                                      Vocabulary)
VALUES      ('CLASS_LK_SPECIAL_FORCES_SIGHT_RANGE',    'ABILITY_CLASS');

-----------------------------------------------
-- TypeTags
-----------------------------------------------

INSERT INTO TypeTags
            (Type,                                        Tag)
VALUES      ('ABILITY_LK_SPECIAL_FORCES_SIGHT_RANGE',     'CLASS_LK_SPECIAL_FORCES_SIGHT_RANGE'),
            ('UNIT_SPEC_OPS',                             'CLASS_LK_SPECIAL_FORCES_SIGHT_RANGE');
            
-----------------------------------------------
-- UnitAbilities
-----------------------------------------------

INSERT INTO UnitAbilities
            (UnitAbilityType,                             Name,                                                 Description)
VALUES      ('ABILITY_LK_SPECIAL_FORCES_SIGHT_RANGE',     'LOC_ABILITY_LK_SPECIAL_FORCES_SIGHT_RANGE_NAME',     'LOC_ABILITY_LK_SPECIAL_FORCES_SIGHT_RANGE_DESCRIPTION');

-----------------------------------------------
-- UnitAbilityModifiers
-----------------------------------------------

INSERT INTO UnitAbilityModifiers
            (UnitAbilityType,                             ModifierId)
VALUES      ('ABILITY_LK_SPECIAL_FORCES_SIGHT_RANGE',     'MODIFIER_LK_SPECIAL_FORCES_SIGHT_RANGE');

-----------------------------------------------
-- DynamicModifiers
-----------------------------------------------

INSERT INTO DynamicModifiers
            (ModifierType,                                       CollectionType,                EffectType)
VALUES      ('MODTYPE_LK_SPECIAL_FORCES_ADJUST_SIGHT_RANGE',    'COLLECTION_OWNER',            'EFFECT_ADJUST_UNIT_SIGHT');

-----------------------------------------------
-- Modifiers
-----------------------------------------------

INSERT INTO Modifiers
            (ModifierId,                                 ModifierType,                                     SubjectRequirementSetId)
VALUES      ('MODIFIER_LK_SPECIAL_FORCES_SIGHT_RANGE',   'MODTYPE_LK_SPECIAL_FORCES_ADJUST_SIGHT_RANGE',    'REQSET_LK_SPECIAL_FORCES_SIGHT_RANGE');

-----------------------------------------------
-- ModifierArguments
-----------------------------------------------

INSERT INTO ModifierArguments
            (ModifierId,                                 Name,         Value)
VALUES      ('MODIFIER_LK_SPECIAL_FORCES_SIGHT_RANGE',   'Amount',     1);

-----------------------------------------------
-- RequirementSetRequirements
-----------------------------------------------

INSERT INTO RequirementSetRequirements
            (RequirementSetId,                           RequirementId)
VALUES      ('REQSET_LK_SPECIAL_FORCES_SIGHT_RANGE',     'REQ_LK_SPECIAL_FORCES_SIGHT_RANGE_HILLS');
        
-----------------------------------------------
-- RequirementSets
-----------------------------------------------

INSERT INTO RequirementSets
            (RequirementSetId,                           RequirementSetType)
VALUES      ('REQSET_LK_SPECIAL_FORCES_SIGHT_RANGE',     'REQUIREMENTSET_TEST_ALL');

-----------------------------------------------
-- Requirements
-----------------------------------------------

INSERT INTO Requirements
            (RequirementId,                                 RequirementType,                 Inverse)
VALUES      ('REQ_LK_SPECIAL_FORCES_SIGHT_RANGE_HILLS',     'REQUIREMENT_PLOT_IS_HILLS',    0);
 
As an FYI you cannot add new 'KIND_EFFECT' Types. While you can certainly add new rows to the Types table where the 'Kind' argument is 'KIND_EFFECT', the game will not do anything with them since the implementation for all 'KIND_EFFECT' Types is within the inaccessible DLL source code. For this same reason there is no value to adding new rows to table GameEffects, nor should one ever alter whatever is already within that table.

You can add a new ModifierType in table DynamicModifiers, but the argument values for columns CollectionType and EffectType must be borrowed from those which already are defined by and used by the base game or its Expansions.
 
Top Bottom