Odie1974 Posted November 16, 2012 Share Posted November 16, 2012 (edited) Ok, I had this idea that I will play a little with cover bonueses. What I wanted to achieve is to make high / low cover better (i.e. increase their bonuses). Coupled with some other changes this should result in more tactical / flanking gameplay & eliminate situations when humans (and aliens) can stil be quite easily shot while in full cover. I found a bunch of interesting constantrs in XcomGame.upk / XGTacticalGameCoreNativeBase:const LOW_COVER_BONUS = 20;const HIGH_COVER_BONUS = 40; As you can see they are not only cover related but determine other things such as e.g. perk bonuses, initial number of rockets etc etc... Problem is that while I can change those constants using hex edit, the changes are not applied ingame. I started a totally new game to see the effects and nothing happened :( Does anyone know why that is so? Shoud I look elsewhere for high / low cover bonuses? Where are they stored then? The full list is below: const SCREEN_PC_BUFFER = 0.25f;const FLYING_MAXPATHCOST = 20;const LOW_COVER_BONUS = 20;const HIGH_COVER_BONUS = 40;const HUNKER_BONUS = 2.0;const AIR_EVADE_DEF = 20;const NO_COVER_DEF = 20;const REACTION_PENALTY = 0.7;const LIGHTNING_REACTION_PENALTY = 0.375;const DASHING_REACTION_MODIFIER = 0.7f;const WEAPON_COOLDOWN_PER_TURN = 5;const WEAPON_OVERHEAT_BASE = 0;const GRENADE_TOUCH_RADIUS = 46.0f;const FOUNDRY_PISTOL_AIM_BONUS = 10;const FOUNDRY_SCOPE_CRIT_BONUS = 10;const FOUNDRY_PISTOL_CRIT_BONUS = 20;const HARDENED_ENEMY_CRIT_VALUE = 60;const FLANKING_CRIT_BONUS = 50;const FLUSH_MIN_DIST = 480;const FLUSH_AIM_BONUS = 30;const FLUSH_DMG_REDUCTION = 0.50f;const FALLENCOMRADES_PENALTY = 5;const BATTLEFATIGUE_PENALTY = 5;const BATTLEFATIGUE = 1.0f;const BATTLEFATIGUE = 0.51f;const AIM_BONUS = 20;const PRECISION_SHOT_DAMAGE_BONUS = 2;const PRECISION_SHOT_CRITICAL_CHANCE_BONUS = 30;const TELEKINETIC_FIELD_DEFENSE_BONUS = 40;const MINDFRAY_MOBILITY_PENALTY = 0.5;const BRING_EM_ON_DAMAGE_BONUS = 1;const BRING_EM_ON_MAX_ENEMIES = 5;const BUTTON_UP_SHOT_OFFENSE_MOD = -20;const DANGER_ZONE_RADIUS_BONUS = 192;const DAMN_GOOD_GROUND_OFFENSE_BONUS = 10;const DAMN_GOOD_GROUND_DEFENSE_BONUS = 10;const SNAP_SHOT_AIM_PENALTY = 20;const DENSE_SMOKE_DEFENSE_BONUS = 20;const SMOKE_BOMB_DEFENSE_BONUS = 20;const COMBAT_DRUGS_AIM_CHANCE_BONUS = 20;const COMBAT_DRUGS_CRITICAL_CHANCE_BONUS = 10;const COMBAT_DRUGS_WILL_BONUS = 20;const BASE_NUM_ROCKETS = 1;const ROCKETEER_BONUS_ROCKETS = 1;const BASE_SMOKE_BOMBS = 1;const SMOKEANDMIRROR_BONUS_BOMBS = 1;const HEATAMMO_DMG_MULTIPLIER = 2;const TRACER_BEAMS_BONUS = 10;const BASE_BATTLESCANNERS = 2;const CHITIN_PLATING_DMG_MULT = 0.5f;const COMBAT_STIM_DMG_MULT = 0.5f;const COMBAT_STIM_WILL_BONUS = 40;const COMBAT_STIM_MOBILITY_BONUS = 4;const EXECUTIONER_AIM_BONUS = 10;const EXECUTIONER_HP_MIN = 0.5f;const BATTLE_SCANNER_DURATION = 2;const AGGRESSION_CRIT_BONUS = 10;const AGGRESSION_MAX_ENEMIES = 3;const TACTICALSENSE_DEFENSE_BONUS = 5;const TACTICALSENSE_MAX_ENEMIES = 4;const CLOSECOMBATSPECIALIST_RANGE = 6;const WILLTOSURVIVE_DMG_REDUCTION = 2;const KILLERINSTINCT_CRIT_DMG_MULT = 0.5f;const SHREDDER_ROCKET_DURATION = 4;const FIELDMEDIC_CHARGES = 3;const GRENADIER_CHARGES = 2;const PSIINSPIRED_WILL_BONUS = 30;const DOUBLETAP_COOLDOWN = 3;const BLOODCALL_AIM_BONUS = 10;const BLOODCALL_WILL_BONUS = 10;const BLOODCALL_MOBILITY_BONUS = 4;const MINDMERGE_CRIT_BONUS = 25;const MINDMERGE_HP_BONUS = 1;const LOW_AMMO_PERCENT = 23;const SPREAD_THETA = 75;const MAX_SPREAD_LENGTH = 576;const DEATH_BLOSSOM_RANGE = 384;const DEATH_BLOSSOM_COOLDOWN = 4;const DEATH_BLOSSOM_DAMAGE_MIN = 4;const DEATH_BLOSSOM_DAMAGE_MAX = 6;const MINDFRAY_BASE_DMG = 5;const FLAME_NUM_BURN_TURNS = 4;const FLAME_MAX_SPREAD_HOPS = 1;const FLAME_MAX_FIRES_FROM_EXPLOSION = 4;const SMOKE_NUM_TURNS = 4;const DENSE_SMOKE_RADIUS_MULT = 1.25f;const POISONED_DAMAGE_PER_TURN = 1;const POISONED_AIM_PENALTY = 20;const POISONED_REACTION_PENALTY = 0.5f;const POISONED_MOVEMENT_PENALTY = 0.25f;const POISONED_INITIAL_DURATION = 2;const POISONED_REMISSION_CHANCE = 0.33f;const POISONED_REMISSION_CHANCE = 0.66f;const POISON_ATTACK_CHANCE = 0.5f;const POISON_NUM_TURNS = 4;const RAPIDFIRE_AIM_PENALTY = 15;const DISABLINGSHOT_AIM_PENALTY = 10;const CHRYSSALID_SPAWN_HP_REDUCTION = 4;const FLAME_UNIT_DOT = 2;const ACID_UNIT_DOT = 6;const FLAME_WORLD_DOT = 201;const ACID_WORLD_DOT = 201;const STATIC_HEIGHT_BONUS_Z = 192.0f;const HEIGHT_OFF_BONUS = 20;const HEARING_RADIUS = 40.0f;const CRITICAL_BLEED_OUT = 3;const BASE_CRITWOUND_CHANCE = 15;const OTS_CRITICAL_WOUND_BONUS = 5;const CRITWOUND_WILL_PENALTY = 15;const LUCK_ROLL_BONUS = 5;const CB_XP_BONUS = 0.25f;const PANIC_TURNS = 1;const PANIC_RANDOM_TURNS = 0;const PANIC_BASE_VALUE = 30;const MEDIKIT_HEAL_HP = 4;const MEDIKIT_FOUNDRY_BONUS = 2;const MEDIKIT_SAVIOR_BONUS = 4;const REVIVE_HEALTH_AMOUNT = 0.33f;const SPRINTER_MOBILITY_BONUS = 4;const RAPIDREACTION_MIN_DIST = 192;const TRACER_BEAM_DURATION = 1;const CLUSTER_BOMB_PREVIEW_RADIUS = 432;const MIN_TIME_ARC_HEIGHT = 3.0f;const MAX_TIME_ARC_HEIGHT = 6.0f;const MAX_ENGAGED_AI = 5;const MIN_AI_TURN_LENGTH = 4;const MAX_OVERMIND_REVEAL_TILES = 4;const OVERLOAD_DAMAGE_DRONE = 3;const DEATH_DAMAGE_CYBERDISC = 3;const DEATH_DAMAGE_SECTOPOD = 5;const DEATH_DAMAGE_ETHEREAL = 4;const OVERLOAD_RADIUS_DRONE = 192.0f;const DEATH_RADIUS_CYBERDISC = 192.0f;const DEATH_RADIUS_SECTOPOD = 320.0f;const DEATH_RADIUS_ETHEREAL = 144.0f;const INTIMIDATE_CHANCE_MUTON = 33;const INTIMIDATE_CHANCE_BERSERKER = 66;const CC_RANGE = 3.0f;const CC_INSTIGATOR_BASE = 20;const CC_ASSAULT_BONUS = 10;const CC_SECOND_MOVE_PENALTY = 20;const CC_RUN_PATH_PCT = 50;const RIFLE_I_MOB_BONUS = 2;const RIFLE_II_SUPP_BONUS = 10;const PISTOL_I_CRIT_BONUS = 25;const PISTOL_II_DEF_BONUS = 15;const HEAVY_I_OFF_BONUS = 10;const HEAVY_II_OFF_BONUS = 20;const SNIPER_I_OFF_BONUS = 10;const SNIPER_II_CRIT_BONUS = 25;const XP_KILL = 50;const HP_PER_TICK = 1;const HP_PULSE_PCT = 25;const LOOT_RANGE = 3;const LOOT_DESTRUCT_TIMER = 5;const MIND_PROBE_INTEL = 10;const NAV_INTEL = 5;const COVER_DRAW_RADIUS = 1;const JETPACK_FUEL_HOVER_COST = 1;const MOVE_INTERVAL_REACTION_PROCESSING = 96.0f;const SAFE_FROM_REACTION_FIRE_MIN_DIST_TO_DEST = 96.0f;const REACTION_MINIMUM = 1;const REACTION_BONUS_FOR_OVERWATCH = 20;const REACTION_BONUS_FOR_DASH = 20;const REACTION_FIRE_AMMO_COST_PERCENTAGE = 25;const REACTION_FIRE_AMMO_COST_PERCENTAGE_HEAVY = 33;const REPAIR_SHIV_HP = 6;const STUN_I_HP_THRESHHOLD = 3;const STUN_II_HP_THRESHHOLD = 6;const STUN_BASE_CHANCE = 70;const STUN_MAX_CHANCE = 95;const STUN_MIN_CHANCE = 1;const TIMEDILATION_APPROACHRATE = 15.0f;const TIMEDILATION_MODE_NORMAL = 1.0f;const TIMEDILATION_MODE_VICTIMOFOVERWATCH = 0.01f;const TIMEDILATION_MODE_REACTIONFIRING = 0.4f;const TIMEDILATION_MODE_TRIGGEREDPODACTIVATION = 0.0f;const CYBERDISC_MIN_CLOSED_MOVE_DIST = 320.0f;const CYBERDISC_MAX_FLIGHT_DURATION = 3;const MAX_REPAIRS_PER_TURN = 1;const DRONE_REPAIR_HP = 3;const DRONE_COUNT_OVERRIDE = false;const DRONES_PER_CYBERDISC = 1;const DRONES_PER_SECTOPOD = 3;const DRONE_MAX_FLIGHT_DURATION = 6;const FLOATER_MAX_FLIGHT_DURATION = 3;const HEAVY_FLOATER_MAX_FLIGHT_DURATION = 4;const PSI_DRAIN_HP = 4;const RIFT_MAX_DISTANCE = 100;const RIFT_DAMAGE_RADIUS = 6.75;const RIFT_WILL_BALANCE = 20;const RIFT_WILL_DMG_SLICE = 10;const RIFT_START_DMG = 8;const RIFT_END_DMG = 10;const RIFT_START_DMG_MIN = 4;const RIFT_END_DMG_MIN = 5;const PSI_LANCE_WILL_BALANCE = 20;const PSI_LANCE_WILL_DMG_SLICE = 10;const PSI_LANCE_BASE_DMG = 7;const PSI_LANCE_MIN_DMG = 2;const PSI_LANCE_MAX_DMG = 20;const TELEKINETIC_FIELD_RADIUS = 12.75;const PSI_INSPIRE_FIELD_RADIUS = 3.75;const SUPPRESSION_AIM_PENALTY = 30;const CLOSEANDPERSONAL_MAX_DIST = 9.0f;const CLOSEANDPERSONAL_PER_DIST = 1.5f;const CLOSEANDPERSONAL_BONUS = 5;const RAND_DMG_VARIANCE = 1.5f;const WOUND_AIM_PENALTY = -15;const WOUND_MOB_PENALTY = -2;const TINVENTORY_MAX_LARGE_ITEMS = 16;const TINVENTORY_MAX_SMALL_ITEMS = 16;const TINVENTORY_MAX_CUSTOM_ITEMS = 16;const RELATIVE_HEIGHT_BONUS_ZDIFF = 192.0f;const RELATIVE_HEIGHT_BONUS_WEAPON_RANGE = 1.5f;const MAX_SIGHTLINES = 10; Edited November 16, 2012 by Odie1974 Link to comment Share on other sites More sharing options...
Drakous79 Posted November 16, 2012 Share Posted November 16, 2012 (edited) These constans seems to be not working. Daemonjax tried changing ones in XGStrategyActorNativeBase with the same result. From my own experience I can tell that const START_YEAR = 2015 isn't working. Starting year is set by function SetTime(0, 0, 0, 3, 1, 2015). So constants in NativeBases may be: a leftoveran information serving for communication in development stagea base for creating GlobalPersistentCookerData.upk (some of them)So would be better to look elsewhere. Edited November 16, 2012 by Drakous79 Link to comment Share on other sites More sharing options...
willssi Posted November 18, 2012 Share Posted November 18, 2012 Did you guys update the exe with XSHAPE and and start the game in offline mode? Link to comment Share on other sites More sharing options...
Odie1974 Posted November 18, 2012 Author Share Posted November 18, 2012 Did you guys update the exe with XSHAPE and and start the game in offline mode? Sure we did... CHanges just do not seem to be carried into the game.... Link to comment Share on other sites More sharing options...
willssi Posted November 18, 2012 Share Posted November 18, 2012 (edited) What utility do you use to look inside the unpacked UPK files? Is there a chance that those values that you've found are actually being read from another source and written into XGTacticalGameCoreNativeBase, so that all your modifications are being overwritten when the source is re-read at the start of the game? Edited November 18, 2012 by willssi Link to comment Share on other sites More sharing options...
BlackAlpha Posted November 19, 2012 Share Posted November 19, 2012 (edited) Well, if you look at the date constant, you'll see the date is actually set somewhere else, inside a couple of different functions. So, if I had to make a guess, I'd say the constants are part of old code that isn't used anymore. Edited November 19, 2012 by BlackAlpha Link to comment Share on other sites More sharing options...
Odie1974 Posted November 19, 2012 Author Share Posted November 19, 2012 Well, if you look at the date constant, you'll see the date is actually set somewhere else, inside a couple of different functions. So, if I had to make a guess, I'd say the constants are part of old code that isn't used anymore. That's my impression as well. Yesterday I was looking at upk files to find out where the bonuses are retrieved from... I found a few calls to a function that seems to retrieve cover values from somewhere... But so far I ahve not been able to pinpoint where this particular function is coded / where it takes data from... Jeez the game's file structure is a not very logical it seems. Link to comment Share on other sites More sharing options...
Drakous79 Posted November 19, 2012 Share Posted November 19, 2012 Found in console log that cover value reflects in iCurrentCoverValue and aCurrentStats[2] (iDefense). Low cover[0492.62] Log: m_aCurrentStats[2]=20[0492.66] Log: m_iCurrentCoverValue=20High cover + 10 Damn Good Ground[1607.82] Log: m_aCurrentStats[2]=50[1607.86] Log: m_iCurrentCoverValue=40High cover +40 Dense Smoke[3025.94] Log: m_aCurrentStats[2]=80[3025.98] Log: m_iCurrentCoverValue=80By the way, what is in GlobalPersistentCookerData.upk in CookedPCConsole? It is also in DLC\PCConsole\DLC_PackIn\CookedPCConsole\ Link to comment Share on other sites More sharing options...
Recommended Posts