Como aumentar el tamaño de las partys (numero de efectivos) con Module System

    Comparte

    Jatynski
    Espadachín
    Espadachín

    : : Europa en Llamas
    Porta-cafes oficial
    Mensajes : 189
    Facción : Alcoholicos Unidos

    Como aumentar el tamaño de las partys (numero de efectivos) con Module System

    Mensaje por Jatynski el Mar Nov 03, 2015 9:01 pm

    Hola chic@s

    Este tutorial está basado en un antiguo post de Nord Champion en TW, que he encontrado tras mucho investigar y trastear.
    Post original: https://forums.taleworlds.com/index.php/topic,149878.0.html

    En la segunda parte, hay un add-on de Caba 'Drin, que añade nuevas caracteristicas para la party del player: bonus de tamaño modificados, pero sobre todo, y lo mas interesante, hace una nueva presentación (via report menus) en module_game_menus.

    Empecemos:

    1º parte:

    A: Cómo aumentar el límite del tamaño de las partys de los lords

    Iremos a module_scripts y buscaremos party_get_ideal_size

    Encontraremos este script:
    Código:
    ("party_get_ideal_size",
       [color=#ff3333]e_script_param_1, ":party_no"),
         (assign, ":limit", 30),
         (try_begin),
           (party_slot_eq, ":party_no", slot_party_type, spt_kingdom_hero_party),
           (party_stack_get_troop_id, ":party_leader", ":party_no", 0),
           (store_faction_of_party, ":faction_id", ":party_no"),
           (assign, ":limit", 10),

           (store_skill_level, ":skill", "skl_leadership", ":party_leader"),
           (store_attribute_level, ":charisma", ":party_leader", ca_charisma),
           (val_mul, ":skill", 5),
           (val_add, ":limit", ":skill"),
           (val_add, ":limit", ":charisma"),

           (troop_get_slot, ":troop_renown", ":party_leader", slot_troop_renown),
           (store_div, ":renown_bonus", ":troop_renown", 25),
           (val_add, ":limit", ":renown_bonus"),

           (try_begin),
             (faction_slot_eq, ":faction_id", slot_faction_leader, ":party_leader"),
             (val_add, ":limit", 100),
           (try_end),

           (try_begin),
             (faction_slot_eq, ":faction_id", slot_faction_marshall, ":party_leader"),
             (val_add, ":limit", 20),
           (try_end),        

           (try_for_range, ":cur_center", castles_begin, castles_end),
             (party_slot_eq, ":cur_center", slot_town_lord, ":party_leader"),
             (val_add, ":limit", 20),
           (try_end),        
         (try_end),
               
         (store_character_level, ":level", "trp_player"), #increase limits a little bit as the game progresses.
         (store_add, ":level_factor", 80, ":level"),
         (val_mul, ":limit", ":level_factor"),
         (val_div, ":limit", 80),
         (assign, reg0, ":limit"),
     ]),

    Lo que nos ocupa son los números coloreados;

    El primer número coloreado (10) es el tamaño base de la party
    El siguiente, (5) hace referencia a cuantas tropas se añadiran por punto de skill "leadership"
    El tercero, nos dice que por cada (25) puntos de renombre, se añadirá al límite, +1
    El cuarto (100), indica el bonus de tamaño para los Lideres de Facción (de la AI)
    El quinto (20), indica lo mismo, pero aplicado a los Marshall
    El sexto (20), marca el bonus de tamaño para los lords que poseen feudos: +20 por feudo. (Ej: Si tienen 1 aldea y 1 ciudad, serían +40)

    Por último y el más importante aquí para nosotros:
    El último número coloreado, (80) es un divisor para los cálculos internos del juego: Bajando este número, dividiremos por un número inferior, y en consecuencia, AUMENTAREMOS EL TAMAÑO DE LA PARTY de manera sencilla, sin alterar demasiado los patrones del juego.
    Ej: modificando el valor de 80 a 40, doblaremos el tamaño "límite" de la party de TODOS los lords.

    ejemplo:
    (store_character_level, ":level", "trp_player"), #increase limits a little bit as the game progresses.
         (store_add, ":level_factor", 80, ":level"),
         (val_mul, ":limit", ":level_factor"),
         (val_div, ":limit", 40),
         (assign, reg0, ":limit"),
     ]),

    Nota: Podemos modificar los otros valores, pero no es demasiado conveniente, ya que puede cambiar mucho el balance original del juego, siendo mas sencillo hacerlo con el divisor final.

    B: Cómo aumentar el límite del tamaño de la party del jugador.

    Seguimos en module_scripts y buscamos el siguiente script que nos interesa, que no es otro que game_get_party_companion_limit

    Código:
    ("game_get_party_companion_limit",
       [color=#00cc00], ":troop_no", "trp_player"),

         (assign, ":limit", 30),
         (store_skill_level, ":skill", "skl_leadership", ":troop_no"),
         (store_attribute_level, ":charisma", ":troop_no", ca_charisma),
         (val_mul, ":skill", 5),
         (val_add, ":limit", ":skill"),
         (val_add, ":limit", ":charisma"),

         (troop_get_slot, ":troop_renown", ":troop_no", slot_troop_renown),
         (store_div, ":renown_bonus", ":troop_renown", 25),
         (val_add, ":limit", ":renown_bonus"),

         (assign, reg0, ":limit"),
         (set_trigger_result, reg0),
     ]),

    Veamos:
    El primer número coloreado, (30) es la base del tamaño de la party
    El segundo (5) refiere el número añadido al límite máximo, por punto de skill "leadership"
    Por último, el tercero (25) nos indica cuánto renombre necesitamos para añadir +1 tropa al límite final.

    Así que en este caso, sí necesitaremos modificar los valores de estas variables para poder aumentar el límite de nuestra party.

    Yo los tengo cambiados como sigue: 36, 6, 20. (Es decir, he aumentado el límite de mi party un 20% aproximadamente).

    ........

    Ahora que hemos aumentado los valores máximos de número de efectivos que un lord o el jugador pueden tener en su party, faltará el reclutamiento, verdad?

    Vale, en cuanto al jugador, no hay más que hacer, salvo ir de aldea en aldea para reclutar "carne fresca" que se parta la cara por tí.
    ¿Pero y los lords? Ahora hemos de indicar al juego lo que han de reclutar, y hacer que "spawnee" con esa party a tope.

    Para ellos, nos vamos a party_templates y encontramos las plantillas de tropas de cada facción.
    Siguiendo esa plantilla, las partys de los lords apareceran al inicio del juego con las tropas indicadas en dichas plantillas.

    El funcionamiento de cada "template" ya ha sido cubierta ampliamente en otros tutoriales del foro, así que no voy a entrar en profundidad en explicarlas, pero sí que es importante hacer un apunte que nos concierne, en este asunto de aumentar el número de tropas:

    Código:
     ("kingdom_1_reinforcements_a", "{!}kingdom_1_reinforcements_a", 0, 0, fac_commoners, 0, [(trp_swadian_recruit,5,10),(trp_swadian_militia,2,4)]),
     ("kingdom_1_reinforcements_b", "{!}kingdom_1_reinforcements_b", 0, 0, fac_commoners, 0, [(trp_swadian_footman,3,6),(trp_swadian_skirmisher,2,4)]),
     ("kingdom_1_reinforcements_c", "{!}kingdom_1_reinforcements_c", 0, 0, fac_commoners, 0, [(trp_swadian_man_at_arms,2,4),(trp_swadian_crossbowman,1,2)]), #Swadians are a bit less-powered thats why they have a bit more troops in their modernised party template (3-6, others 3-5)

    Y así todas las facciones de que dispongas en tu modulo

    El factor (número) más bajo que aparece junto a cada tipo de tropa (ej: trp_swadian_recruit,5,10) es el número mínimo  y el segundo número es el máximo, de veces que ese tipo de tropa intentará spawnear en las party de la AI de esa facción, INCLUYENDO LAS PARTYS DE LOS LORDS Y LAS GUARNICIONES.

    Editar estos valores es posible, pero es muy difícil de equilibrar, ya que alterarlos, da valores aburdos muchas veces, y además, provoca que otras unidades ni siquiera puedan llegar a  aparecer. Lo mejor es seguir un proceso de prueba/corrección, hasta que encuentres valores que te satisfagan.


    Parte 2º del tutorial:
    Añadir al jugador los mismos bonus de los que dispone la AI para calcular el tamaño límite de su party.

    Este add-on, escrito por Caba 'drin, iguala las condiciones que regulan el tamaño límite de la party, como comento en el encabezado, y además, los muestra en el menú "reports".

    Es realmente sencillo de implementar, y para modificar los valores a coveniencia, sólo hay que seguir las reglas del paso nº1 de este tutorial.

    Buscamos en Module_scripts , el siguiente script: game_get_party_companion_limit

    Código:
    ("game_get_party_companion_limit",
    [
    (assign, ":troop_no", "trp_player"),

    (assign, ":limit", 30),
    (store_skill_level, ":skill", "skl_leadership", ":troop_no"),
    (store_attribute_level, ":charisma", ":troop_no", ca_charisma),
    (val_mul, ":skill", 5),
    (val_add, ":limit", ":skill"),
    (val_add, ":limit", ":charisma"),

    (troop_get_slot, ":troop_renown", ":troop_no", slot_troop_renown),
    (store_div, ":renown_bonus", ":troop_renown", 20),
    (val_add, ":limit", ":renown_bonus"),

    (try_begin),
    (gt, "$players_kingdom", 0),
    (faction_slot_eq, "$players_kingdom", slot_faction_leader, ":troop_no"), #bonus for king
    (val_add, ":limit", 100),
    (assign, reg6, 100), #For size report
    (else_try),
    (assign, reg6, 0), #For size report
    (try_end),
    (try_begin),
    (faction_slot_eq, "$players_kingdom", slot_faction_marshall, ":troop_no"), #bonus for marshall
    (val_add, ":limit", 20),
    (assign, reg7, 20), #For size report
    (else_try),
    (assign, reg7, 0), #For size report
    (try_end),

    (assign, ":fief_count", 0),
    (assign, ":pre_limit", ":limit"),
    (try_for_range, ":cur_center", centers_begin, centers_end),
    (party_slot_eq, ":cur_center", slot_town_lord, ":troop_no"),
    (val_add, ":fief_count", 1),
    (party_slot_eq, ":cur_center", slot_party_type, spt_castle), #This will do what this loop did previously, giving a 20 troop boost for each castle owned
    (val_add, ":limit", 20),
    (try_end),
    (store_sub, ":pre_limit", ":limit", ":pre_limit"),
    (assign, reg8, ":pre_limit"), #For size report, castles
    (try_begin),
    (gt, ":fief_count", 0),
    (val_add, ":limit", bump-for-being-a-lord), #bonus for holding at least one fief and therefore being nobility
    (assign, reg9, bump-for-being-a-lord), #For size report
    (else_try),
    (assign, reg9, 0), #For size report
    (try_end),

    (assign, reg0, ":limit"),
    (set_trigger_result, reg0),
    ]),

    Y sustituimos la "frase" bump-for-being-a-lord por el valor que nos interese.

    Esto lo mostrará en el Camp Report screen.
    En Module_game_menus, buscamos script_get_party_companion_limit y añadimos estas líneas de código:

    Código:
    ("party_size_report",0,
    "{s1}",
    "none",
    [(call_script, "script_game_get_party_companion_limit"),
    (assign, ":party_size_limit", reg0),

    (store_skill_level, ":leadership", "skl_leadership", "trp_player"),
    (val_mul, ":leadership", 5),
    (store_attribute_level, ":charisma", "trp_player", ca_charisma),

    (troop_get_slot, ":renown", "trp_player", slot_troop_renown),
    (val_div, ":renown", 25),
    (try_begin),
    (gt, ":leadership", 0),
    (str_store_string, s2, "@{!} +"),
    (else_try),
    (str_store_string, s2, "str_space"),
    (try_end),
    (try_begin),
    (gt, ":charisma", 0),
    (str_store_string, s3, "@{!} +"),
    (else_try),
    (str_store_string, s3, "str_space"),
    (try_end),
    (try_begin),
    (gt, ":renown", 0),
    (str_store_string, s4, "@{!} +"),
    (else_try),
    (str_store_string, s4, "str_space"),
    (try_end),
    (assign, reg5, ":party_size_limit"),
    (assign, reg1, ":leadership"),
    (assign, reg2, ":charisma"),
    (assign, reg3, ":renown"),
    #Size Tweak Additions
    (try_begin),
    (gt, reg9, 0), #Lord
    (str_store_string, s5, "@{!} +{reg9}"),
    (else_try),
    (str_store_string, s5, "str_space"),
    (try_end),
    (try_begin),
    (gt, reg8, 0), #Castles
    (str_store_string, s6, "@{!} +{reg8}"),
    (else_try),
    (str_store_string, s6, "str_space"),
    (try_end),
    (try_begin),
    (gt, reg7, 0), #Marshall
    (str_store_string, s7, "@{!} +{reg7}"),
    (else_try),
    (str_store_string, s7, "str_space"),
    (try_end),
    (try_begin),
    (gt, reg6, 0), #King
    (str_store_string, s8, "@{!} +{reg6}"),
    (else_try),
    (str_store_string, s8, "str_space"),
    (try_end),

    (str_store_string, s1, "@Current party size limit is {reg5}.^Current party size modifiers are:^^Base size: +30^Leadership: {s2}{reg1}^Charisma: {s3}{reg2}^Renown: {s4}{reg3}^^Lord: {s5}^Castles: {s6}^Marshall: {s7}^King: {s8}^TOTAL: {reg5}"),
    ],
    [
    ("continue",[],"Continue...",
    [(jump_to_menu, "mnu_reports"),
    ]
    ),
    ]
    ),

    Y ya está, funciona perfectamente. Espero que os haya servido este tutorial.


    Última edición por Jatynski el Vie Nov 06, 2015 11:14 am, editado 1 vez


    _________________
     EUROPE IN FLAMES (1618 AD)

    Mikeboix
    Emperador
    Emperador

    : : wyrd bi∂ ful ārǣd
    Mensajes : 11268
    Facción : Imperio de Calradia

    Re: Como aumentar el tamaño de las partys (numero de efectivos) con Module System

    Mensaje por Mikeboix el Miér Nov 04, 2015 12:01 am

    Eres un grande, Jatynski. No sólo no te diste por vencido, si no que hallaste la solución por ti mismo, y no contentándote con esto nos traes un genial tutorial al foro.

    Muchas gracias por el aporte Smile


    _________________
    ~No olvides leer las normas. No resuelvo dudas de los juegos por mensaje privado.~




    Last Breath of Calradian Empire: Mod sobre el glorioso pasado de Calradia. ¡Apoya el desarrollo!

    JBJ
    Modder
    Modder

    Mensajes : 524
    Edad : 24
    Facción : Sultanato Sarránido

    Re: Como aumentar el tamaño de las partys (numero de efectivos) con Module System

    Mensaje por JBJ el Miér Nov 04, 2015 11:57 am

    :aplauso: Genial trabajo compañero. Me alegra que solucionaras el problema.


    _________________

    Rafalongo
    Modder
    Modder

    Mensajes : 379
    Edad : 26
    Facción : Reino de Swadia

    Re: Como aumentar el tamaño de las partys (numero de efectivos) con Module System

    Mensaje por Rafalongo el Mar Mar 15, 2016 12:34 am

    buenisimo!! lo mejor es q minimizando todos los valores, y aumentando las tropas por puntos de "leadership" se puede personalizar el tamaño de los ejercitos de cada lord en particular desde esa habilidad, entre 10 valores diferentes Very Happy se lo voy a meter a mi mod, me encanta personalizar xD

    hay un pequeño error, el numero 80 que deberia estar coloreado, el q se debe cambiar es el segundo que aparece, no el primero!

    Contenido patrocinado

    Re: Como aumentar el tamaño de las partys (numero de efectivos) con Module System

    Mensaje por Contenido patrocinado Hoy a las 10:49 pm


      Fecha y hora actual: Mar Dic 06, 2016 10:49 pm