Paradox Iberoamérica
Para poder disfrutar de todo el contenido del foro debe estar registrado y conectado.

HOI2: Programacion de la IA

Ver el tema anterior Ver el tema siguiente Ir abajo

HOI2: Programacion de la IA

Mensaje por PaoX el 23/10/2016, 15:31

[Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo]  | [Tienes que estar registrado y conectado para ver este vínculo]  | [Tienes que estar registrado y conectado para ver este vínculo]

|           [Tienes que estar registrado y conectado para ver este vínculo]      |       [Tienes que estar registrado y conectado para ver este vínculo]        |        [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo]   


HOI2: Programacion de la IA

A continuación encontraran varios comandos utilizados en los eventos del juego, clasificados segun su utilidad. Al lado luego de la tecla numeral # se explica para que es lo que sirve específicamente.
Arriva encontraran un link para dirigirse a una lista de herramientas donde encontraran algunas utilidades para modding

El siguiente tutorial fue creado para Hearts of iron 2 Armageddon, no todos los comandos funcionan con Darkest hour o Arsenal of Democracy



#Encabezado

switch = no # [yes/no]  # Indica si el archivo de inteligencia se reajusta cada año a otro archivo de intelgiencia (p.ej empieza en 1936-> ger_36.ai al año siguiente busca si existe un ger_37.ai y lo carga)

max_front_ratio = 1.2 # Proporción de tropas tuyas por tropas enemigas en frontera
max_front_ratios = { FIN = 2.0 } # Lo mismo que lo anterior pero para naciones específicas
max_garrison_prop = 0.30 # En tiempos de guerra indica la proporcion máxima de tropas destinadas a labores de guarnición
min_garrison_prop = 0.20 # En tiempos de guerra indica la proporcion minima de tropas destinadas a labores de guarnición

neutrality = 90.000 # Indica como ha de ser neutral el pais, más de 100 practicamente nunca entrará en alguna alianza, para 150 neutralidad totalmente garantizada
war = 0 # Nos indica lo propenso que será el pais para declarar una guerra, 100 es guerra asegurada

strat_redeploy_threshold = 50 # indica los dias que la IA tiene que esperar para usar traslado estrategico
max_redeploying = 0.05 # Proporción de tropas que puedes ser trasladadas a la vez

exp_force_ratio = 0.2 # Proporción de fuerzas expedicionarias que mandará este pais
exp_force_ratios = { FIN = 0.50 } # Lo mismo que lo anterior pero para determinados paises
no_exp_forces_to = { JAP } # Indica los paises a los que no madar fuerzas expedicionarias

upgrading = 0.1 # la máxima proporción de CI dedicada a modernizar divisiones
reinforcement = 0.1 # máxima proporcion de CI dedicada a reforzar divisiones

desperation = 0.3 # Si el pais pierde este porcentaje de CI se pondrá a construir milicia como un loco

#Diplomacia

combat = { ENG = 70 }  # Indica que paises son prioritarios a la hora de conquistar y con intensidad deben ser eliminados

demand_claims = { POL } # Son los paises a los que insistirá en reclamar territorio
claim_acceptance = -1 # Probabilidad de que acepte reclamaciones territoriales

befriend = { ITA = 60 } # Son los paises que consideramos aliados naturales y por lo tanto influenciaremos más

protect = { ITA = 80 } # Son aquellos paises que protegemos y defenderemos en caso de agresión, están en nuestra esfera de influencia y por lo tanto practicamente garantizamos su independencia

target = { 303 = 50 } # (0-100) Son provincias con gran valor para el pais, las más deseadas a conquistar y las que reclamaremos en propuestas de paz

liberate = { LIT } # Paises que liberará cuando tenga ocasión

resistance = { ROM = 8 } # Especial resistencia a ser influido por la nación X

#### Diplomacia : sección acuerdos comerciales ####

trade = {
cancel_deal_threshold = 2 # Nos indica cuanto va a aguntar la IA malos acuerdos, cuanto más bajo antes cancelará

energy = -1 # estos valores -1 indica que usaran los ratios estandar del archivo db\resource_values.csv, si se quiere alguno especifico solo hay que cambiarlo aquí
rare_materials = -1
metal = -1
oil = -1
supplies = -1
money = -1

favored = { # Nos indica cuales serán nuestros paises favoritos para comerciar, cuanto valor más alto más negociaremos con ellos
SWE = 150
}
embargo = { } # Paises con los que no intercambiaremos nada de nada
}

## Diplomacia : sección tecnologias

tech_sharing = {
favored = { ROM = 120 } # Nos indica con que paises estaremos dispuesto a intercambiar mayor cantidad de planos
embargo = { ENG } # A que paises no daremos ningun plano
not = { } # Las ids de tecnos que nunca compartiremos
prioritized = { 1310 = 100 } # Tecnologias que aceptaremos de buena gana en intercambios

}


# Inteligencia (espias)

spyprefs = {
percentage_on_spies = 0.2 # Porcentaje de espias que mandará a casa
percentage_foreign_mission = 0.7 # Porcentaje de espias que mandará fuera de casa

spyprefsdata = {
NumberOfSpies = 5 # Numero de espias minimos para la defensa
counter_espionage =  10 # Espias minimos para realizar contraespionaje
country = GER # Indica para que pais son estas condiciones, debe ser el mismo para el que se diseña la IA
}

spyprefsdata = {
country_priorities = 3 # Caunto más alto más prioridad para intentar introducir o realizar acciones espias
NumberOfSpies = 3 # Número maximo de espias a introducir
min_number_of_spies     = 1 # Numero minimo de espias a introducir
steal_blueprint = 10 # Prioridad para inentar robar planos
minister_assassination  = 1
smear_campaign = 3
coup = 4
sabotage_industry = 5
nuclear_sabotage = 0
found_partisans = 0
massmedia = 3
counter_espionage = 5
disrupt_techteam = 5
country = NONE # Indica el pais objetivo, none indica general
}
}

# Producción

construction = {

max_factor = 0.020 # Porcentaje de CI dedicada a construir

AA_batteries = yes # [yes/no/atwar/not_atwar] Construir anti aereos
max_AA_level = 4 # Nivel máximo a construir
AA_provs = { 76 } # Id de las provincias donde construir AA

coastal_fort = atwar # [yes/no/atwar/not_atwar] Construir defensas costeras
max_coastal_level = 3 # Nivel máximo
coastal_fort_provs = { 90 } # Provincias donde construir

radar_station = atwar # [yes/no/atwar/not_atwar] Construir radares
max_radar = 2 # Nivel máximo
radar_provs = { 67 } # Provincias donde contruir

air_base = atwar # [yes/no/atwar/not_atwar] Construir bases aereas
max_air_base = 3 # Nivel máximo
air_base_provs = { 67 } # Provincias donde contruir

land_fort = no # [yes/no/atwar/not_atwar] Construir fortificaciones terrestres
max_land_level = 2 # Nivel máximo
fort_borders = { SOV } # Construir fortificaciones en las fronteras con estos paises
fort_provs = { 74 } # Provincia donde construir

ic_at_war = no # Contruir fabricas en tiempo de guerra
force_ic_until = 1935 # Construir fabricas hasta el año
ic_end_year = 1941 # No construir más fabricas apartir del
IC_provs = { 74 } # Provincia donde construir
}

# Producción :  sección construir ejercito
military = {

relative_build_scheme = no # Indica si produce de forma equilibrada (yes) o cumple los porcentajes indicados más abajo

max_batch_peace = 360 # Indica al pais el máximo que puede durar una producción en tiempos de paz
max_batch_war = 180 # Indica al pais el máximo que puede durar una producción en tiempos de guerra, pero el enemigo no es nuestro vecino
max_batch_home_front = 180 # Indica al pais el máximo que puede durar una producción en tiempos de guerra, pero el enemigo es nuestro vecino


#### Ejercito Tierra
infantry = 35
cavalry = 0
motorized = 3
mechanized = 0
light_armor = 5
armor = 0
paratrooper = 0
marine = 0
bergsjaeger = 1
garrison = 8
    hq = 3
militia = 0
## Total: 55 %


#### Ejercito Aire
interceptor = 6
multi_role = 2
cas = 4
strategic_bomber = 0
tactical_bomber = 5
naval_bomber = 3
transport_plane = 0
flying_bomb = 0
flying_rocket = 0
## Total: 20 %

#### Ejercito Mar
battleship = 1
carrier = 0
escort_carrier = 0
destroyer = 5
light_cruiser = 3
heavy_cruiser = 1
battlecruiser = 0
submarine = 10
nuclear_submarine = 0
transports = 5
## Total: 25 %

## Suma : 100 % (debe sumar justamente 100)

#### Brigadas - Nos indica de forma relativa cuantas brigadas y de que modelo construirá (no tiene que sumar 100, pero si menos que 100)
artillery = 20
sp_artillery = 8
rocket_artillery = 0
sp_rct_artillery = 0
anti_tank = 11
tank_destroyer = 5
light_armor_brigade = 2
heavy_armor = 5
super_heavy_armor = 0
armored_car = 0
anti_air = 6
police = 3
engineer = 5

cag = 100.000 # Siempre así

}

# Investigación

technology = {

endgoal = { } # Ids de tecnos considerados como objetivos finales, no investigará más una vez conseguidos (preferiblemente vacío)

preference = { 5050 } # Ids de tecnos que son prioritarias a la hora de investigar

ignore = { 4220 } # Ids de tecnos que nunca investigará

armor = 5 # Nos indica la prioridad a la hora de investigar alguno de estos campos
infantry = 6
industry = 8
aircraft = 5
naval = 1
land_doctrines = 2
secret_weapons = 1
air_doctrines = 1
naval_doctrines = 1

}


# Ejercito, lideres y forma de combatir

leader_ratio = {

land_field_marshal =0.02  # Por cada 100 divisiones debe haber X mariscales (X=100*0.02)
land_general =0.031
land_lt_general =0.41

sea_grand_admiral =0.02
sea_admiral =0.061
sea_vice_admiral =0.401

air_marshal =0.02
air_general =0.091
air_lt_General =0.11

}

garrison = {  # Sección de defensa

defend_overseas_beaches = yes # Defender playas no nacionales
home_multiplier = 1.0 # En territorio nacional multiplicará por X lo necesario para defender
overseas_multiplier = 1.0 # En territorio no nacional multiplicar por x lo necesario para defender
home_peace_cap = 20 # En tiempo de paz, x divisiones para proteger la zona de la capital
war_zone_odds = 2.0 # Intentar llevar el numero de divisiones a zonas objetivo=numero de divisiones enemigas*X
key_point_prio_mult = 0.5 # El valor en puntos de la provincia*X= prioridad para proteger
revolt_risk_mult = 0.3 # En zonas rebeldes cuantas tropas son necesarias

beach = 0 # Prioridad para proteger playas
capital = 40 # Prioridad para proteger nuestra capital
human_border = 0 # Prioridad para fronteras con humanos (si está aliado omite este valor)
war_target = 50 # Prioridad para próximo objetivo de guerra

opposing_alliance = 50 # Prioridad respecto a otras alianzas
claim_threat = 0 # Si somos neutrales, los países con demandas sobre nosotros lo consiguen con este porcentaje
unstable_border = 0 # Prioridad con fronteras de paises en guerra


country_priorities = { POL = 100 } # Prioridades especiales para paises, -1 lo ignora

ignore = { 75 } # Provincias que ignorará a la hora de defender

province_priorities = { 313 = 30 } # Provincia a defender con prioridad X

area_multiplier = { 304 = 3.5 } # Area alrededor de la provincia a defender con prioridad X
}


front = { # Sección ataque-frontera

recklessness = 2 # 0-3  Nos indica lo "suicida" del ataque, un 3 atacan a lo loco, 0 supone sólo atacar cuando se esté muy seguro
distrib_vs_ai = even [even/reactive/defensive/offensive/op_defensive]
distrib_vs_human = even [even/reactive/defensive/offensive/op_defensive]

# Even - Fuerzas repartidas a lo largo de la frontera
# Reactive - Poner más donde haya más concentración enemiga
# Defensive - Más tropas en provincias y regiones principales
# Offensive - Concentrar más tropas donde el enemigo esté más debil
# Operational Defensive - Defensa estratégica, para evitar bolsas y realizar retiradas con las mínimas bajas


enemy_reinf_days = 6 # La IA comprueba el movimiento enemigo para reforzar el frente y actua en consecuencia
reserve_prop = 0.1 # Proporción de tropas que la IA dejará detrás de las lineas del frente
panic_ratio_vs_ai = 2.5 # Cuando el enemigo IA supere esta proporcion de tropas la IA mandará más tropas al enemigo
panic_ratio_vs_human = 2.5 # Cuando el enemigo humano supere esta proporcion de tropas la IA mandará más tropas al enemigo
base_attack_odds = 1.3 # Atacar cuando las probabilidades sean igual o mejor a X
min_attack_odds = 1.1 # Probabilidad de ganar mínima para realizar ataque
max_attack_odds = 3.0 # Probabilidad máxima de ganar para realizar ataque (deberá atacar obligatoriamente al llegar a este valor)
reinforce_odds = 1.2 # Mandar más fuerzas si los enemigos poseen este valor de probabilidad para ganar la batalla
withdraw_odds = 0.6 # Parar el ataque cuando baje de esta probabilidad la victoria

strength = 1.0 # Valores que modificarán para el computo de probabilidad de victoria, 1.0 = no afecta, <1.0 reduce el porcentaje de victoria
organisation = 1.0
soft_attack = 1.0
hard_attack = 1.0
ground_defense = 1.0
dig_in = 1.0 # Against defender

frozen_attack = 1.0
snow_attack = 1.0
blizzard_attack = 1.0
storm_attack = 1.0
muddy_attack = 1.0

occupied = 0.7
owned = 0.7

jungle_attack = 1.0
mountain_attack = 1.0
swamp_attack = 1.0
forest_attack = 1.0
hill_attack = 1.0
urban_attack = 1.0
river = 1.0

enemy_handicap = { FRA = 300 } # Dias que tienen que pasar antes de atacar

passivity = { FRA = 100 } # 0-100 Nos indica el "interés" por atacar, 100 no ataca más

}

# Fuerza aerea y bombardeo

air_marshal = {

min_mission_strength_org = 0.8 # Porcentaje minimo de fuerza para realizar acción aerea
icxdayscostfactor = 10.0 # Importancia de la industria para reforzar la aviación debido a las bajas (si no se tiene CI no mandará aviones, ya que repararlos es caro)
manpowercostfactor = 100.0 # Lo mismo que lo anterior pero referido a rec humanos
destructionriskthreashold = 0.2 # Cuando debe parar una misión ya que la unidad puede ser destruida debido a sus bajas (me imagino que %fuerza < factor parar)

airsuperioritydesirability = 30.0 # Nos indica las ganas de realizar esta misión
groundattackdesirability = 40.0
inderdictiondesirability = 20.0
logisticalstrikedesirability = 2.0
runwaycrateringdesirability = 10.0
strategicstrikedesirability = 10.0
installationstrikedesirability = 5.0
navalstrikedesirability = 15.0
portstrikedesirability = 9.0
convoyraiddesirability = 9.0

airsuperioritylosstolerance = 1.0 # la tolerancia es la "matanza" requerida: la proporción de pérdida que esperaba hacer la misión, 2.0 acepta dos veces las pérdidas de tu enemigo, 0.5 acepta mitad
groundattacklosstolerance = 1.0
interdictionlosstolerance = 2.0
logisticalstrikelosstolerance = 0.5
runwaycrateringlosstolerance = 1.5
strategicstriketolerance = 4.5
installationstriketolerance = 1.5
navalstriketolerance = 1.0
portstriketolerance = 1.0
convoyraidtolerance = 1.0

logisticalstrikeefficency = 0.01 # nos indica el valor minimo de daño que debe provocar esta misión
runwaycrateringefficency = 0.01
strategicstrikeefficency = 0.01
installationstrikeefficency = 0.01


taskforcetype = { name = "Air Superiority" desiredratio = 0.400 rangeweight = 10.000 airkillpowerweight = 2000.000 hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = -1.000 surfacevulnurabilityweight = 0.000 idle = yes reorganize = yes air_superiority = yes }
taskforcetype = { name = "Soft Bombing" desiredratio = 0.250 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 0.000 softkillpowerweight = 2000.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = 0.000 surfacevulnurabilityweight = -1.000 idle = yes reorganize = yes interdiction = yes ground_attack = yes }
taskforcetype = { name = "Hard Bombing" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 2000.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = 0.000 surfacevulnurabilityweight = -1.000 idle = yes reorganize = yes interdiction = yes ground_attack = yes }
taskforcetype = { name = "Strategic Bombing" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 2000.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = -0.500 surfacevulnurabilityweight = -0.500 idle = yes reorganize = yes logistical_strike = yes runway_cratering = yes strategic_bombardment = yes installation_strike = yes }
taskforcetype = { name = "Naval Bombing" desiredratio = 0.050 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 2000.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = 0.000 surfacevulnurabilityweight = -1.000 idle = yes reorganize = yes naval_strike = yes port_strike = yes convoy_air_raiding = yes }
taskforcetype = { name = "Airlift" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = -2000.000 softkillpowerweight = -2000.000 navalkillpowerweight = 0.000 strategickillpowerweight = -2000.000 transportcapacityweight = 1000000.000 airvulnurabilityweight = -1.000 surfacevulnurabilityweight = 0.000 idle = yes reorganize = yes airborne_assault = yes air_supply = yes }

# Nos indica como combinará la IA las fuerzas aereas
# desiredratio = proporción de este tipo de combinación que el pais realizará (cuanto más alto más escuadrillas de este tipo habrá)
# XXXXXweight =  nos indica el peso de esta propiedad a la hora de elegir los aviones para realizar las escuadrillas
# idle = yes # nos indica si se debe parar la misión cuando no hay nada que hacer?
# reorganize = yes # nos indica si puede volver a rehacer la escuadrilla
#air_superiority = yes  # elegimos que tipo de misión puede realizar la escuadrilla
#interdiction = yes
#ground_attack = yes
#logistical_strike = yes
#runway_cratering = yes
#strategic_bombardment = yes
#installation_strike = yes
#naval_strike = yes
#port_strike = yes
#convoy_air_raiding = yes
#airborne_assault = yes
#air_supply = yes

}

# Fuerza naval y desembarco

invasion = {
base = 0.1 # Cuanto más bajo los objetivos a invadir son más importantes
random = 8.0 # Porcentaje de realizar un desembar en una zona al azar  (1.0 = 1%)
coastal = 0.1 # aumentar para evitar fortalezas costeras
beach = 0.1 # cuanto más alto evitar las playas peores
distance = 0.1 # cuanto más alto evitará las distancias
max_distance    = 20.0  # Máxima distancia permitida (en este caso es la distancia de Rostock a Narvik)
pocket = 20.0 # evitar provincias donde poder quedar embolsado, por ejemplo, donde hay vecinos
island = 0.1 # prioridad a tomar islas
enemy = 2.0 # cuanto más alto más tropas manda a la provincia?
adjacentenemy = 2.0 # cuanto más alto más tropas manda a provincias cerca?
air_base = 1.5   # prioridad si tiene bases aereas cerca
      naval_base = 0.1   # prioridad si tiene bases navales cerca
      air_support = 3.0   # prioridad para playas que estén bajo nuestro rango aereo para poder bombardear
      redirect = priority # [priority/nearest/home] priority indica que lo intente en las provincias indicadas,nearest donde tenga buenas probabilidades para el ataque y home con buena probabilidad de retirada de nuevo a puerto (para escapar)
ignore = no    # lanzar desembarco aunque tengamos frontera con ellos
help_allies = no # ayudar a aliados cuando inicien desembarco

target = { 107 = 4000 } # indica probabilidad de invasión en esa provincia, valor negativo impide desembarcar allí

}

admiral = {

min_org = 100 # Minimo porcentaje de organización para salir de puerto
min_dmg = 98    # Minimo porcentaje de fuerza para salir de puerto
return_org = 60 # Al llegar a este porcentaje de organización volver a puerto
return_dmg = 80 # Al llegar a este porcentaje de fuerza volver a puerto

ignore = { "Barents Sea" }  # Igonarar estas zonas maritimas para patrullar

base = { 90 } # Puertos que usaremos como bases

target = { } # ¿?

core = { 2494 } # zonas maritimas consideradas nacionales y que deben ser totalmente controladas

}

################################# Final del archivo IA ######################
}




Este tutorial fue creado por quintelosky

PaoX
Administrador
Administrador

Mensajes : 476
Reputación : 1
Fecha de inscripción : 10/08/2015
Edad : 21
Localización : Argentina

https://www.facebook.com/groups/heartsofiron.latinoamerica/

Volver arriba Ir abajo

Re: HOI2: Programacion de la IA

Mensaje por ElRusky23 el 23/10/2016, 15:55

Gracias camarada! por ahora lo comprendo,ya veré en la práctica. Smile

ElRusky23
Soldado
Soldado

Mensajes : 2
Reputación : 0
Fecha de inscripción : 28/02/2016
Localización : Monterrey.

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.