Results 1 to 19 of 19

Thread: Myth Buster: Cloned Characters

  1. #1

    Icon1 Myth Buster: Cloned Characters

    Most of the more recent mods are going away from scripting named characters due to a common belief that this will always result in the campaign ending cloned character CTD. This is a sad state of affairs considering the scripted historical characters bring a great element to the game, and this is especially true for role players. Therefore, in this post I will seperate fact from fiction concerning the cloned character CTD issue.

    Before I begin let me clarify that I'm not saying cloned character CTDs are not a reality. What I am saying is that it is possible to script characters for both the player and some AI factions without any risk of getting the cloned character CTD.

    There are three categories that are believed to be related causes of the cloned character CTD. Those categories follow:

    1. Non-family members in descr_strat.txt
    2. Scripted Characters for the AI Faction
    3. Scripted Characters for the Player Faction

    Lets begin by discussing category number one. If you add a non-family member to descr_strat.txt that character will become adopted and cloned. This is the case for both the AI factions and the player faction. With that being said there is a way around this problem as discovered by dvk901. Any non-family member character that is in descr_strat.txt must be implemented with a "sub_faction" statement to prevent the adoption and clone. For more details on this category see dvk901's posts in this thread: http://www.twcenter.net/forums/showt...ight=clone+ctd

    Now on to category number two. Scripting characters for the AI faction is the tricky part. An AI faction with a family tree will always adopt and clone a scripted character. Don't even bother trying to script in characters for this type of AI faction. However, AI factions without family trees do not adopt and therefore they do not clone scripted characters. One example of an AI faction without a family tree is the slave faction. Then you also have the possibility for dead until resurected factions like empire_east_rebels from BI. They don't form family trees either. They have a faction leader, but no faction heir. It is important to note that although the faction emire_east_rebels was a BI faction you can setup factions like wise for the RTW.exe as well as the alex.exe. I've tested scripted characters against this setup with 20 scripted characters without a single clone or CTD.

    In the following spoilers I'll show you an example of how you can setup one of these dead until resurrected factions.

    Start with descr_strat.txt:
    Spoiler Alert, click show to read: 

    faction thrace, balanced smith
    dead_until_resurrected
    re_emergent

    denari 0

    In this example I have made the changes neccessary within this file to turn thrace into a dead until resurrected faction. I added the two lines in red font, and I took away all of the faction's money, territories, and starting characters/armies.


    The next thing you have to change is descr_sm_factions.txt
    Spoiler Alert, click show to read: 

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    faction romans_brutii, shadowed_by thrace ;Romans
    culture roman
    symbol models_strat/symbol_brutii.CAS
    rebel_symbol models_strat/symbol_slaves.CAS
    primary_colour red 135, green 20, blue 20
    secondary_colour red 135, green 20, blue 20
    loading_logo loading_screen/symbols/symbol128_brutii.tga
    standard_index 1
    logo_index 24
    small_logo_index 249
    triumph_value 5
    intro_movie fmv/intros/julii_intro_final.wmv
    victory_movie fmv/victory/julii_outro_320x240.wmv
    defeat_movie fmv/lose/julii_eliminated.wmv
    death_movie fmv/death/death_julii_grass_320x240.wmv
    custom_battle_availability yes
    can_sap yes
    prefers_naval_invasions yes

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    faction egypt, shadowed_by thrace
    culture egyptian
    symbol models_strat/symbol_egypt.CAS
    rebel_symbol models_strat/symbol_egypt_rebel.CAS
    primary_colour red 161, green 51, blue 82
    secondary_colour red 161, green 51, blue 82
    loading_logo loading_screen/symbols/symbol128_egypt.tga
    standard_index 5
    logo_index 245
    small_logo_index 257
    triumph_value 5
    intro_movie fmv/intros/egyptian_intro_640x480_bars.wmv
    victory_movie fmv/victory/greek_outro_320x240.wmv
    defeat_movie fmv/lose/egyptians_eliminated.wmv
    death_movie fmv/death/death_egypt_sand_320x240.wmv
    custom_battle_availability yes
    can_sap yes
    prefers_naval_invasions yes
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    faction thrace, shadowing romans_brutii ;;Rebel Romans
    culture roman
    symbol models_strat/symbol_thrace.CAS
    rebel_symbol models_strat/symbol_greek_rebel.CAS
    primary_colour red 35, green 95, blue 175
    secondary_colour red 0, green 0, blue 0
    loading_logo loading_screen/symbols/symbol128_thrace.tga
    standard_index 19
    logo_index 249
    small_logo_index 262
    triumph_value 5
    intro_movie fmv/intros/greek_intro_640x480_bars.wmv
    victory_movie fmv/victory/greek_outro_320x240.wmv
    defeat_movie fmv/lose/greeks_eliminated.wmv
    death_movie fmv/death/death_greek_grass_320x240.wmv
    custom_battle_availability yes
    can_sap no
    prefers_naval_invasions no
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    The important part to take note of here is the text that is in red font. In this example thrace is shadowing both romans_brutii and egypt. Therefore, if either of these factions revolts it will be thrace that takes their settlement. You can modify descr_strat.txt in a way to intentionally setup a settlement to revolt early in the game as this will bring to life the "dead until resurrected" AI faction which you will want to script named characters for.

    As far as I am aware the above method is the only way you can script named characters for the AI factions without getting the clone character CTD.

    Now lets talk about category number three. Lately I've had a lot of people telling me that you cannot script named characters for the player's faction without getting a cloned character CTD. I know from my past experience that that is not true. As long as you follow House of Ham's tutorial when you script the player faction's named characters you will not have any clone ctd at all. You can find House of Ham's tutorial for this here: http://www.twcenter.net/forums/showthread.php?t=221683

    Now I said I know this to be true based on my own experience. I know that that is not good enough to convince many of you who believe that scripting named characters will cause a clone CTD for the player faction. Hence, I ran a little test which I documented for anyone whom is in doubt. In this test I scripted 50 named characters for the players faction in an otherwise unmodified vanilla RTW. I managed to get 45 of these named characters adopted via "Man of the Hour." The other five I just gave up on and killed because the game never wanted to credit them with Man of the Hour regardless of how many victories they won. In any case, I adoped 45 of these characters, and I allowed most of them to live long enough to marry and have a child before I killed them. I had to kill them all in order to test for the clone CTD, and after having done so there were no clones and no CTDs.

    In the spoilers below you can find the images of each of the scripted named characters that I managed to adopt. For each character, image one is the picture of the character being adopted via "Man of the Hour." Image two is a picture of the adopted named character in the family tree. Image three is a picture of the adopted named character after his death. The death picture is to debunk the theory that you will have a clone CTD with scripted characters for the player's faction. If there had been a clone there would be a campaign ending CTD when the character died.

    I also included the background script I used for this experiment in the last spoiler.

    Amulius Aelius
    Spoiler Alert, click show to read: 



    Appius Acilius
    Spoiler Alert, click show to read: 



    Asinius Acilius
    Spoiler Alert, click show to read: 



    Augustus Acilius
    Spoiler Alert, click show to read: 



    Augustus Aelius
    Spoiler Alert, click show to read: 



    Aulus Aelius
    Spoiler Alert, click show to read: 



    Caius Acilius
    Spoiler Alert, click show to read: 



    Caius Aelius
    Spoiler Alert, click show to read: 



    Cassius Aelius
    Spoiler Alert, click show to read: 



    Cnaeus Aelius
    Spoiler Alert, click show to read: 



    Cornelius Acilius
    Spoiler Alert, click show to read: 



    Cornelius Aelius
    Spoiler Alert, click show to read: 



    Decimus Acilius
    Spoiler Alert, click show to read: 

    Decius Acilius
    Spoiler Alert, click show to read: 



    Decius Aelius
    Spoiler Alert, click show to read: 


    Flavius Acilius
    Spoiler Alert, click show to read: 



    Flavius Aelius
    Spoiler Alert, click show to read: 



    Gaius Acilius
    Spoiler Alert, click show to read: 



    Galerius Acilius
    Spoiler Alert, click show to read: 


    Gnaeus Acilius
    Spoiler Alert, click show to read: 




    Herennius Acilius
    Spoiler Alert, click show to read: 



    Herius Acilius
    Spoiler Alert, click show to read: 



    Julianus Acilius
    Spoiler Alert, click show to read: 


    Kaeso Acilius
    Spoiler Alert, click show to read: 



    Lentulus Acilius
    Spoiler Alert, click show to read: 



    Luca Acilius
    Spoiler Alert, click show to read: 


    Lucius Acilius
    Spoiler Alert, click show to read: 

    Manius Acilius
    Spoiler Alert, click show to read: 


    Marcellus Acilius
    Spoiler Alert, click show to read: 



    Marcus Acilius
    Spoiler Alert, click show to read: 


    Nero Acilius
    Spoiler Alert, click show to read: 

    Numerius Acilius
    Spoiler Alert, click show to read: 



    Oppius Acilius
    Spoiler Alert, click show to read: 

    Placus Acilius
    Spoiler Alert, click show to read: 



    Publius Acilius
    Spoiler Alert, click show to read: 



    Secundus Acilius
    Spoiler Alert, click show to read: 


    Sextus Acilius
    Spoiler Alert, click show to read: 


    Spurius Acilius
    Spoiler Alert, click show to read: 




    Titus Acilius
    Spoiler Alert, click show to read: 



    Tiberius Acilius
    Spoiler Alert, click show to read: 

    Tertius Acilius
    Spoiler Alert, click show to read: 

    Quintis Acilius
    Spoiler Alert, click show to read: 



    Quintus Acilius
    Spoiler Alert, click show to read: 



    Valerius Acilius
    Spoiler Alert, click show to read: 



    Vibius Acilius
    Spoiler Alert, click show to read: 




    Background Script Used for this experiment:
    Spoiler Alert, click show to read: 
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;; Rome Surrectum 2 Background Script ;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    script

    ; Anything following a semicolon is a comment.

    ; Remove the adviser portrait from screen.
    select_ui_element advisor_dismiss_button
    simulate_mouse_click lclick_up

    ; Wait for it to go away.
    while I_AdvisorVisible
    end_while

    suspend_unscripted_advice true

    ; Open the adviser message bubble automatically whenever advance_advice_thread is called.
    ; I recommend using this method instead of the select_ui_element + simulate_mouse_click approach.
    ; Do NOT mix both methods, though, or the advisor will show and then immediately close before
    ; you get a chance to read the text.
    declare_show_me

    ; Very useful for debugging - uncomment to use
    console_command toggle_perfect_spy

    ; Handle saved game reloads
    monitor_event GameReloaded TrueCondition
    terminate_script
    end_monitor

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;CHECK FOR WORKING SCRIPT
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


    console_command add_money 1



    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;FORCED SHUTDOWN
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;;;
    ;;; --- Forced shutdown ---
    ;;;
    ;;; Press 'Esc' on the campaign map, then click on the '?' button in the
    ;;; menu scroll to terminate the script.
    ;;;
    ;;; When would this be useful? -- When you are already in a game and
    ;;; exit back to the main menu to restart the campaign, or reload a saved
    ;;; game, RTW does not automatically terminate the script, so you have
    ;;; to do it yourself. if you leave the old script running, you'll have all
    ;;; sorts of weird problems with the script in the new game.
    ;;;
    monitor_event ScrollAdviceRequested ScrollAdviceRequested end_game_scroll
    suspend_unscripted_advice false
    terminate_script
    end_monitor

    ;;; spawn characters

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 1

    console_command kill_character "Amulius Acilius"

    spawn_army
    faction romans_julii
    character Amulius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 2

    console_command kill_character "Augustus Acilius"

    spawn_army
    faction romans_julii
    character Augustus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 3

    console_command kill_character "Aulus Acilius"

    spawn_army
    faction romans_julii
    character Aulus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 4

    console_command kill_character "Caius Acilius"

    spawn_army
    faction romans_julii
    character Caius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 5

    console_command kill_character "Cassius Acilius"

    spawn_army
    faction romans_julii
    character Cassius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 6

    console_command kill_character "Cnaeus Acilius"

    spawn_army
    faction romans_julii
    character Cnaeus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 7

    console_command kill_character "Cornelius Acilius"

    spawn_army
    faction romans_julii
    character Cornelius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 8

    console_command kill_character "Decius Acilius"

    spawn_army
    faction romans_julii
    character Decius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 9

    console_command kill_character "Flavius Acilius"

    spawn_army
    faction romans_julii
    character Flavius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 10

    console_command kill_character "Gaius Acilius"

    spawn_army
    faction romans_julii
    character Gaius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 11

    console_command kill_character "Galerius Acilius"

    spawn_army
    faction romans_julii
    character Galerius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 12

    console_command kill_character "Gnaeus Acilius"

    spawn_army
    faction romans_julii
    character Gnaeus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 13

    console_command kill_character "Julianus Acilius"

    spawn_army
    faction romans_julii
    character Julianus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 14

    console_command kill_character "Kaeso Acilius"

    spawn_army
    faction romans_julii
    character Kaeso Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 15

    console_command kill_character "Lentulus Acilius"

    spawn_army
    faction romans_julii
    character Lentulus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 16

    console_command kill_character "Luca Acilius"

    spawn_army
    faction romans_julii
    character Luca Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 17

    console_command kill_character "Lucius Acilius"

    spawn_army
    faction romans_julii
    character Lucius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end

    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 18

    console_command kill_character "Manius Acilius"

    spawn_army
    faction romans_julii
    character Manius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 19

    console_command kill_character "Marcus Acilius"

    spawn_army
    faction romans_julii
    character Marcus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Marcus Acilius" Fertile 3
    console_command give_trait "Decius Acilius" Fertile 3
    console_command give_trait "Flavius Acilius" Fertile 3
    console_command give_trait "Gaius Acilius" Fertile 3
    console_command give_trait "Galerius Acilius" Fertile 3
    console_command give_trait "Gnaeus Acilius" Fertile 3
    console_command give_trait "Julianus Acilius" Fertile 3
    console_command give_trait "Kaeso Acilius" Fertile 3
    console_command give_trait "Lentulus Acilius" Fertile 3
    console_command give_trait "Manius Acilius" Fertile 3
    console_command give_trait "Lucius Acilius" Fertile 3
    console_command give_trait "Luca Acilius" Fertile 3
    console_command give_trait "Cornelius Acilius" Fertile 3
    console_command give_trait "Cnaeus Acilius" Fertile 3
    console_command give_trait "Cassius Acilius" Fertile 3
    console_command give_trait "Caius Acilius" Fertile 3
    console_command give_trait "Aulus Acilius" Fertile 3
    console_command give_trait "Augustus Acilius" Fertile 3
    console_command give_trait "Amulius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 20

    console_command kill_character "Nero Acilius"

    spawn_army
    faction romans_julii
    character Nero Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Nero Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 21

    console_command kill_character "Numerius Acilius"

    spawn_army
    faction romans_julii
    character Numerius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Numerius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 22

    console_command kill_character "Oppius Acilius"

    spawn_army
    faction romans_julii
    character Oppius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Oppius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 23

    console_command kill_character "Placus Acilius"

    spawn_army
    faction romans_julii
    character Placus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Placus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 24

    console_command kill_character "Publius Acilius"

    spawn_army
    faction romans_julii
    character Publius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Publius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 25

    console_command kill_character "Quintis Acilius"

    spawn_army
    faction romans_julii
    character Quintis Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Quintis Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 26

    console_command kill_character "Quintus Acilius"

    spawn_army
    faction romans_julii
    character Quintus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Quintus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 27

    console_command kill_character "Secundus Acilius"

    spawn_army
    faction romans_julii
    character Secundus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Secundus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 28

    console_command kill_character "Servius Acilius"

    spawn_army
    faction romans_julii
    character Servius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Servius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 29

    console_command kill_character "Sextus Acilius"

    spawn_army
    faction romans_julii
    character Sextus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Sextus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 30

    console_command kill_character "Spurius Acilius"

    spawn_army
    faction romans_julii
    character Spurius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Spurius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 31

    console_command kill_character "Tertius Acilius"

    spawn_army
    faction romans_julii
    character Tertius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Tertius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 32

    console_command kill_character "Tiberius Acilius"

    spawn_army
    faction romans_julii
    character Tiberius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Tiberius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 33

    console_command kill_character "Titus Acilius"

    spawn_army
    faction romans_julii
    character Titus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Titus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 34

    console_command kill_character "Valerius Acilius"

    spawn_army
    faction romans_julii
    character Valerius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Valerius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 35

    console_command kill_character "Vibius Acilius"

    spawn_army
    faction romans_julii
    character Vibius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Vibius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 36

    console_command kill_character "Appius Acilius"

    spawn_army
    faction romans_julii
    character Appius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Appius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 37

    console_command kill_character "Decimus Acilius"

    spawn_army
    faction romans_julii
    character Decimus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Decimus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 38

    console_command kill_character "Herius Acilius"

    spawn_army
    faction romans_julii
    character Herius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Herius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 39

    console_command kill_character "Herennius Acilius"

    spawn_army
    faction romans_julii
    character Herennius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Herennius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 40

    console_command kill_character "Marcellus Acilius"

    spawn_army
    faction romans_julii
    character Marcellus Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Marcellus Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 41

    console_command kill_character "Asinius Acilius"

    spawn_army
    faction romans_julii
    character Asinius Acilius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Asinius Acilius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 42

    console_command kill_character "Amulius Aelius"

    spawn_army
    faction romans_julii
    character Amulius Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Amulius Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 43

    console_command kill_character "Augustus Aelius"

    spawn_army
    faction romans_julii
    character Augustus Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Augustus Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 44

    console_command kill_character "Aulus Aelius"

    spawn_army
    faction romans_julii
    character Aulus Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Aulus Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 45

    console_command kill_character "Flavius Aelius"

    spawn_army
    faction romans_julii
    character Flavius Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Flavius Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 46

    console_command kill_character "Caius Aelius"

    spawn_army
    faction romans_julii
    character Caius Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Caius Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 47

    console_command kill_character "Cassius Aelius"

    spawn_army
    faction romans_julii
    character Cassius Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Cassius Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 48

    console_command kill_character "Cnaeus Aelius"

    spawn_army
    faction romans_julii
    character Cnaeus Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Cnaeus Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 49

    console_command kill_character "Cornelius Aelius"

    spawn_army
    faction romans_julii
    character Cornelius Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Cornelius Aelius" Fertile 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionIsLocal
    and I_TurnNumber = 50

    console_command kill_character "Decius Aelius"
    spawn_army
    faction romans_julii
    character Decius Aelius, named character, age 16, , x 89, y 80
    unit roman generals guard cavalry early, exp 9 armour 3 weapon_lvl 3
    end
    console_command give_trait "Decius Aelius" Fertile 3
    terminate_monitor
    end_monitor

    ;;;
    ;;; 12-turns per year script
    ;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;; End of your code
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Spin forever - Do not let the script terminate or any monitors you have set up will immediately get thrown away.
    while I_TurnNumber < 99999
    suspend_unscripted_advice true
    end_while

    end_script
    Last edited by CPT Worsham; January 15, 2011 at 03:02 AM.

  2. #2
    chris10's Avatar Primicerius
    Join Date
    Sep 2009
    Location
    Spain
    Posts
    3,239

    Default Re: Myth Buster: Cloned Characters

    I wrote a long reply before but my browser crashed...

    I redo a short version:
    Iam under the impression that you got something fundamentally wrong and while your intention was myth busting you are about to create more myths.
    "console_command kill_character xxxx" kills the named character and reduces him to a generic general without traits,ancillarys and abilitys...
    by assigning this unit to others and sent it to battle the game very likely fires a "man of the hour" event and sort of re-promotes the character using the name and age assigned before and offers an adoption....Its the game who creates the character and hence no clone CTD...nothing spectacular new...this is tricking the character into the family tree and is lightyears away from being a reliable way to bring characters into the game as one has no influence on what traits and ancillarys the character brings, neither its 100% sure that the general will get adopted and that "the man of the hour" really fires even the % is high another unstable variable is WHEN this is happen. It can be 1 turn or 10 turns or 30 tuns or never...
    On the other hand It would requiere active participation on the players side to trick these characters into their current games and therefore it could not be considered as valuable approach.
    For people familar with the mechanic it could work for their own game but I dont see this viable for the normal generic player...
    Additionally there is no whatsoever possibility to assure that these Characters will get to their supposed position by the time they should (Leaders,Consuls,Emperors etc....). They most likely will be only insignificant family members of one of the roman familiy trees...
    Last edited by chris10; January 15, 2011 at 09:16 AM.

  3. #3

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by chris10 View Post
    I wrote a long reply before but my browser crashed...

    I redo a short version:
    Iam under the impression that you got something fundamentally wrong and while your intention was myth busting you are about to create more myths.
    "console_command kill_character xxxx" kills the named character and reduces him to a generic general without traits,ancillarys and abilitys...

    by assigning this unit to others and sent it to battle the game very likely fires a "man of the hour" event and sort of re-promotes the character using the name and age assigned before and offers an adoption....Its the game who creates the character and hence no clone CTD...nothing spectacular new...this is tricking the character into the family tree and is lightyears away from being a reliable way to bring characters into the game as one has no influence on what traits and ancillarys the character brings, neither its 100% sure that the general will get adopted and that "the man of the hour" really fires even the % is high another unstable variable is WHEN this is happen. It can be 1 turn or 10 turns or 30 tuns or never...
    On the other hand It would requiere active participation on the players side to trick these characters into their current games and therefore it could not be considered as valuable approach.
    For people familar with the mechanic it could work for their own game but I dont see this viable for the normal generic player...
    Additionally there is no whatsoever possibility to assure that these Characters will get to their supposed position by the time they should (Leaders,Consuls,Emperors etc....). They most likely will be only insignificant family members of one of the roman familiy trees...
    Chris10,

    kill_character is just used to kill any character that has the name of the character you are spawning before you spawn him. Even if you don't use kill character they will be two separate characters rather than clones, but they will share a name, and not CTD. Trust me I did this experiment. The character you spawn is NOT a generic general (ie. Captain). Rather it is a named character with a portrait, and it has the ability to acquire traits whether it gets adopted or not. You can even use the script to give any traits to the charater that you want it to have. I gave trait "fertile 3" to all of the characters in this script. The proof of all this is in my pictures. If you still refuse to believe I suggest you use the background script I posted in the last spoiler and try this for yourself.

    Your point about a player having to intentionally get the character adopted via man of the hour in order to get him in the family tree is true. If you want the named character adopted you have to to go win some battles with him so he will likely be adopted via man of the hour.

    You have obviously not tried to do this yourself or your lack of understanding would not be so profound.
    Last edited by CPT Worsham; January 15, 2011 at 09:32 AM.

  4. #4

    Default Re: Myth Buster: Cloned Characters

    While the discovery is useful, the fact that one has to turn factions into shadow factions (or emergent factions, like RB), a feature which is tied to a great deal of hardcoded side-effects, decreases its overall usefulness quite a bit, imho. Pity, because it would be nice to be able to have script-created characters without that CTD.
    Last edited by Aradan; January 15, 2011 at 10:13 AM.

  5. #5

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by CPT Worsham View Post
    Now on to category number two. Scripting characters for the AI faction is the tricky part. An AI faction with a family tree will always adopt and clone a scripted character. Don't even bother trying to script in characters for this type of AI faction. However, AI factions without family trees do not adopt and therefore they do not clone scripted characters. One example of an AI faction without a family tree is the slave faction. Then you also have the possibility for dead until resurected factions like empire_east_rebels from BI. They don't form family trees either. They have a faction leader, but no faction heir. It is important to note that although the faction emire_east_rebels was a BI faction you can setup factions like wise for the RTW.exe as well as the alex.exe. I've tested scripted characters against this setup with 20 scripted characters without a single clone or CTD.
    Ive been reading this thread with some interest, but there are a few things I dont understand. I have only just found out about this type of CTD so please forgive my ignorance if write something stupid.

    From your post am I to understand that spawning a named character for a faction other than the players, will result in a CTD? So how has it been done in EB there are a number of scripted characters in EB which are spawned for the AI faction.

    Code:
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;Human player not Karthadast;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    monitor_event FactionTurnStart FactionType egypt
    and I_TurnNumber = 67
    and not I_LocalFaction egypt
        spawn_army
            faction egypt
            character, Xanthippos ofcarthago, named character, command 0, influence 0, management 0, subterfuge 0, age 40, , x 83, y 100
            unit hellenistic infantry spartiateshoplitai, exp 2 armor 1 weapon_lvl 0
        end
        console_command give_trait "Xanthippos ofcarthago" XanthipposBiography 1
        console_command give_trait "Xanthippos ofcarthago" NaturalIntelligence 4
        console_command give_trait "Xanthippos ofcarthago" NaturalCharisma 2
        console_command give_trait "Xanthippos ofcarthago" NaturalEnergy 4
        console_command give_trait "Xanthippos ofcarthago" Selflessness 2
        console_command give_trait "Xanthippos ofcarthago" Temperament 2
        console_command give_trait "Xanthippos ofcarthago" Loyalty 4
        console_command give_trait "Xanthippos ofcarthago" TurnsAlive 4
        console_command give_trait "Xanthippos ofcarthago" CommandExperience 3
        console_command give_trait "Xanthippos ofcarthago" Outsider 1
        console_command give_trait "Xanthippos ofcarthago" GoodTactician 1
        console_command give_trait "Xanthippos ofcarthago" GoodAttacker 1
        console_command give_trait "Xanthippos ofcarthago" Disciplinarian 1
        console_command give_trait "Xanthippos ofcarthago" Stoic 1
        console_command give_ancillary "Xanthippos ofcarthago" mercenary_captain
        terminate_monitor
    end_monitor
    Ive played as Roma numerous times and this character has been spawned, Ive also killed the guy numerous times and no CTD.

    How is this possible? If the faction already has a large family tree will it still adopt these spawned characters?


  6. #6

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by Hannibal Smith View Post
    From your post am I to understand that spawning a named character for a faction other than the players, will result in a CTD? So how has it been done in EB there are a number of scripted characters in EB which are spawned for the AI faction.
    If the AI faction has a family tree this will in most cases lead to the scripted character being cloned, and a campaign ending CTD occurs later in the game when either the character dies or its clone dies. The key thing to understand about this though is that the character only gets cloned if it is adopted. So perhaps this scripted AI character in EB is killed before he is adopted.

    The other way for you to script AI faction characters without getting the clone character CTD is to use an AI faction that does not have a family tree as discussed in the original post.

    Quote Originally Posted by Hannibal Smith View Post
    How is this possible? If the faction already has a large family tree will it still adopt these spawned characters?
    The AI faction is just like the human faction when it comes to determining whether it needs to adopt a character or not. If the faction has more territories than it has family members for then it will normally adopt characters to fill the need.

  7. #7
    chris10's Avatar Primicerius
    Join Date
    Sep 2009
    Location
    Spain
    Posts
    3,239

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by CPT Worsham View Post
    1. If you still refuse to believe I suggest you use the background script I posted in the last spoiler and try this for yourself.

    2. Your point about a player having to intentionally get the character adopted via man of the hour in order to get him in the family tree is true. If you want the named character adopted you have to to go win some battles with him so he will likely be adopted via man of the hour.

    3. You have obviously not tried to do this yourself or

    4. your lack of understanding would not be so profound.
    1. Thanks but dont really need that ....it took a minute to spawn a named roman character with kill_character in my current campaign to give it a test...

    2. Funny that you ignored the other points such as

    • neither its 100% sure that the general will get adopted and that "the man of the hour" really fires even the % is high


    • another unstable variable is WHEN this is happen. It can be 1 turn or 10 turns or 30 tuns or never...


    • Additionally there is no whatsoever possibility to assure that these Characters will get to their supposed position by the time they should (Leaders,Consuls,Emperors etc....). They most likely will be only insignificant family members of one of the roman familiy trees...

    I feel that these facts reduce the usefulness of spawning characters for a special purpose for the players faction towards zero as there is simply not enough control over it.

    3. You are right...not unitl right now

    4. I think my profound lack of understanding pointed you to quite a few things in the last 2 weeks,didnt it ?
    ...anyway...I could say the same about you and I will tell you why....

    If you use console_command kill_character when spawning a character for the players faction it will be indeed a named character with all attributes...just like it can be appreciated in the screen I took a second ago..
    Attachment 133441

    If on the other hand you spawn a Character or an Army for an AI faction or in other words for any faction which is NOT the player and you use console_command kill_character it will kill the character you are going to spawn and reduce it to a generic general...which can be appreciated in this screen...The AI Generals Unit is shown as unit "Averni Chieftrain" with no Character Portrait because there is no Character as it has been killed,nevertheless the "general" keeps the name of the formerly spawned character...
    The second screen shows another spawned AI Army where I used kill_character and on the battle screen it is obvious that there is no Named Character anymore as the command killed him on spawning
    Attachment 133442 Attachment 133470

    Said that its obvious that console_command kill_character has different effects depending if used for
    and FactionIsLocal or and not FactionIsLocal ......

    I said what I said because I have written about 12.000 script lines and spawned hundreds of AI armys in the last 6 weeks while working on the expansion for the RSII Roman Campaign so I was damn sure about what I said...
    So in a certain way we both where right but ignorant towards the other side of the coin.

    Summarizing: Its indeed useful to know that the shadowig faction can be used to spawn characters because they do not form familiy trees just like the slave faction...but spawning for the players faction: uuuhhhh---Its to much of a hassle and as I said before lightyears away from being a reliable way..I would not consider doin it...but thats just me
    Last edited by chris10; January 15, 2011 at 12:45 PM.

  8. #8

    Default Re: Myth Buster: Cloned Characters

    Thanks for the reply. So no CTD if the character is not adopted...

    picking up on dvk901's post about sub factions. I tried to spawn a character using the sub faction thing.

    Code:
    monitor_event FactionTurnStart FactionIsLocal
              and I_TurnNumber = 2
    
        console_command kill_character "Ambiorix"
    
        spawn_army
        faction gauls sub_faction gauls
        character Ambiorix, named character, command 0, influence 0, management 0, subterfuge 0, age 20, x 96, y 71
        unit barb chieftain cavalry early gaul, exp 9 armour 1 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb peltast gaul, exp 0 armour 0 weapon_lvl 0
        unit barb cavalry gaul, exp 0 armour 0 weapon_lvl 0
    
            end
    
        terminate_monitor
    
    end_monitor
    The character spawns fine. How would I go about testing if this solves the problem i.e check if this character is adopted or not?


  9. #9
    chris10's Avatar Primicerius
    Join Date
    Sep 2009
    Location
    Spain
    Posts
    3,239

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by Hannibal Smith View Post
    Thanks for the reply. So no CTD if the character is not adopted...

    picking up on dvk901's post about sub factions. I tried to spawn a character using the sub faction thing.

    Code:
    monitor_event FactionTurnStart FactionIsLocal
              and I_TurnNumber = 2
    
        console_command kill_character "Ambiorix"
    
        spawn_army
        faction gauls sub_faction gauls
        character Ambiorix, named character, command 0, influence 0, management 0, subterfuge 0, age 20, x 96, y 71
        unit barb chieftain cavalry early gaul, exp 9 armour 1 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb peltast gaul, exp 0 armour 0 weapon_lvl 0
        unit barb cavalry gaul, exp 0 armour 0 weapon_lvl 0
    
            end
    
        terminate_monitor
    
    end_monitor
    The character spawns fine. How would I go about testing if this solves the problem i.e check if this character is adopted or not?
    Adding a sub faction should solve the clone CTD with the characters coming from the descr_strat.txt and not with the into the game spawned AI named characters...If so most likely it would have been done in RSII instead of removing all AI Generals entirely.
    By now there seems no way to spawn AI characters by script and go arond a clone CTD.
    Btw..If you spawn character for the players faction using kill_character it has a different effect than kill_character spawning for an AI faction...see post 7
    Another thing I noticed...these things are uselss and have no effect and could be removed from the code
    Code:
    command 0, influence 0, management 0, subterfuge 0
    Last edited by chris10; January 15, 2011 at 12:36 PM.

  10. #10

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by Hannibal Smith View Post
    Thanks for the reply. So no CTD if the character is not adopted...

    picking up on dvk901's post about sub factions. I tried to spawn a character using the sub faction thing.

    Code:
    monitor_event FactionTurnStart FactionIsLocal
              and I_TurnNumber = 2
    
        console_command kill_character "Ambiorix"
    
        spawn_army
        faction gauls sub_faction gauls
        character Ambiorix, named character, command 0, influence 0, management 0, subterfuge 0, age 20, x 96, y 71
        unit barb chieftain cavalry early gaul, exp 9 armour 1 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb peltast gaul, exp 0 armour 0 weapon_lvl 0
        unit barb cavalry gaul, exp 0 armour 0 weapon_lvl 0
    
            end
    
        terminate_monitor
    
    end_monitor
    The character spawns fine. How would I go about testing if this solves the problem i.e check if this character is adopted or not?
    The sub_faction code is only useful in descr_strat.txt if you are not assigning the character to the faction leaders family.

    If you are scripting the character for the players faction or for an AI faction without a family tree there is no need for the sub_faction feature.

    If you try to script a character for an AI faction that has a family tree it will result in cloned character CTDs whether you use sub_faction or not.
    Last edited by CPT Worsham; January 15, 2011 at 01:24 PM.

  11. #11

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by chris10 View Post
    2. Funny that you ignored the other points such as

    • neither its 100% sure that the general will get adopted and that "the man of the hour" really fires even the % is high


    • another unstable variable is WHEN this is happen. It can be 1 turn or 10 turns or 30 tuns or never...


    • Additionally there is no whatsoever possibility to assure that these Characters will get to their supposed position by the time they should (Leaders,Consuls,Emperors etc....). They most likely will be only insignificant family members of one of the roman familiy trees...
    I ignored those things because they have nothing to do with my original post. This topic is to explain that it is possible to script named characters for both the player faction and AI factions that don't have family trees without risk of getting a cloned character CTD.

    Quote Originally Posted by chris10 View Post
    4. I think my profound lack of understanding pointed you to quite a few things in the last 2 weeks,didnt it ?
    Chris10 you have taught me a thing or two and I appreciate that! I respect you for your knowledge and helpfulness, but I become frustrated with you due to your closed-mindedness on this issue.

    If on the other hand you spawn a Character or an Army for an AI faction or in other words for any faction which is NOT the player and you use console_command kill_character it will kill the character you are going to spawn and reduce it to a generic general...which can be appreciated in this screen...The AI Generals Unit is shown as unit "Averni Chieftrain" with no Character Portrait because there is no Character as it has been killed,nevertheless the "general" keeps the name of the formerly spawned character...
    The second screen shows another spawned AI Army where I used kill_character and on the battle screen it is obvious that there is no Named Character anymore as the command killed him on spawning
    Attachment 133442 Attachment 133470

    Said that its obvious that console_command kill_character has different effects depending if used for
    and FactionIsLocal or and not FactionIsLocal ......
    I understand the differences that you point out on the effects of kill_charater between the players faction and the AI faction. However, this does not mean you are going to have a cloned character. I'll go further out of my way to prove this by intentionally doing this with an AI faction that does not have a family tree and I'll show you the screenshots for evidence.

    Did you know that you can actually spawn a character without using kill_character and end up with two different characters that share the exact same name? I've tested this too by getting both like named characters in the same family tree, and it does not cause a clone or a CTD when either or both of the characters die. It is only useful to kill the character that has the name you want to use so you don't have the odd situation of having characters with duplicate names.

  12. #12
    chris10's Avatar Primicerius
    Join Date
    Sep 2009
    Location
    Spain
    Posts
    3,239

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by CPT Worsham View Post
    1. AI factions that don't have family trees without risk of getting a cloned character CTD.

    2. but I become frustrated with you due to your closed-mindedness on this issue.

    3. I understand the differences that you point out on the effects of kill_charater between the players faction and the AI faction. However, this does not mean you are going to have a cloned character.

    4. I'll go further out of my way to prove this by intentionally doing this with an AI faction that does not have a family tree and I'll show you the screenshots for evidence.

    5. Did you know that you can actually spawn a character without using kill_character and end up with two different characters that share the exact same name? I've tested this too by getting both like named characters in the same family tree, and it does not cause a clone or a CTD when either or both of the characters die.
    1. Thats not really breaking news mate . I spawn a bunch of them in my expansion

    2. Iam not ...its only that I already came to final conclusions and there is nothing more to investigate.
    a. Spawning characters for AI Faction = CTD
    b. Spawning Characters for Players faction = Yes and No as they have to be tricked into the family tree without guarantee to success...usefulness=pretty low
    c. Spawning Characters for Shadowing Faction: Thats indeed a discovery...
    d. Spawning Characters for Slave = No problem

    3. Did not said that. I said that we where missing each others point,nothing else... Read it again

    4. Again...why? this is clearer than water...no family tree no clone CTD...I posted this in my expansion thread on Dec 23rd...
    Quote Originally Posted by chris10 View Post
    ..the slave faction works different from the other factions and is not susceptive for the clone CTD as they are not organized in family trees hence will not be adopted and therefore can not cause a clone to be created.

    5. sighhh...what frustrates me is that you think you reinvented the wheel while except for 2c. thats all old stuff,mate
    I had these two placed in the same settlement a good while ago

    But they are no clones neither they have the same traits,ancillarys,abilitys age etc....
    the clone is created directly from a spawnd character....having 2 guys with the same name has nothing to do with the clone CTD...additionally this is only what you see on the screen...internally the engine has assigned a capital letter to each name. One will be Numerius Cornelius ScipioA and the other will be Numerius Cornelius ScipioB. If the same name pops up for whatever reason the game adds a Capital Letter to it until it runs out of letters. In RSII F is the highest letter for the Roman Player Faction hence you can have 6 guys with the same names,traits,ancillarys and ailitys without getting in trouble. So even in the very unlikely case that when having the same age and they would adquiere the exact same traits,ancillarys,management,influence and so on (which would cause indeed a generic erroless CTD because the engine gets confused) the engine can differ between them because of the assigned capital letters which are not seen on the screen.
    In vanilla the selection is more narrow as there are no capital letters added to the names nevertheless it is highly unlikely that 2 guys with the same name will have the same age and have the exact same traits,ancillarys abilitys command stars and so on and as we dont have access to the source code nobody can say if the image assigned to a character does has an effect too...so if thats the case 2 characters can be totally equal but as long as they have different images assigned it would not cause any trouble...
    Last edited by chris10; January 15, 2011 at 03:10 PM.

  13. #13

    Default Re: Myth Buster: Cloned Characters

    1. Thats not really breaking news mate . I spawn a bunch of them in my expansion
    I never claimed it to be breaking news. I simply wanted to clarify things because I've talked to several people whom seem to be confused on the issue.


    4. Again...why? this is clearer than water...no family tree no clone CTD
    Good! I'm glade that is clear as I just finished taking a bunch of photos of the Spartacus rebellion and was dreading the slow upload to imageshack.

    5. Oh yeah...what frustrates me is that you think you reinvented the wheel while except for 2c. thats all old stuff,mate
    I don't know what gives you the impression that I think I reinvented the wheel. Most everything I posted here I learned from reading these forums. However, a lot of people these days seem to have the idea that scripting named characters will always cause a CTD. I simply set out to prove that notion to be a fallacy by consolidating data on the subject and backing it all up with a documented experiment.


    But they are no clones neither they have the same traits,ancillarys,abilitys age etc....
    the clone is created from a spawnd character....having 2 guys with the same name has nothing to do with the clone CTD...additionally this is only what you see on the screen...internally the engine has assigned a capital letter to each name. One will be Numerius Cornelius ScipioA and the other will be Numerius Cornelius ScipioB. So even in the very unlikely case that when having the same age and they would adquiere the exact same traits,ancillarys,management,influence and so on (which would cause indeed a CTD) the engine can differ between them because of the letters which are not seen on the screen.
    The different internal names you are referring to is the way RS2 is setup. RTW vanilla did not have different internal names with the same external name. I ran a test in vanilla RTW in which I scripted two characters sharing both the same internal and external name. They were scripted into the game in separate turns, but with the same age. They were not clones, but separate characters. Both characters were adopted, and they both developed their own unique traits. They also had their own portraits. After they both died the campaign continued on without a CTD. So this is my long drawn out way of telling you that the characters can even have the same internal name without being a clone for the player faction.

  14. #14
    chris10's Avatar Primicerius
    Join Date
    Sep 2009
    Location
    Spain
    Posts
    3,239

    Default Re: Myth Buster: Cloned Characters

    deleted....

    EDIT..Nevermind...I think there is nothing to add to the matter...good thing about the shadowing faction....and hopefully some confused people will be able to get some info out of this discussion ...
    Last edited by chris10; January 15, 2011 at 04:08 PM.

  15. #15
    dvk901's Avatar Consummatum est
    Patrician

    Join Date
    Mar 2006
    Location
    Michigan
    Posts
    20,984

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by Hannibal Smith View Post
    Thanks for the reply. So no CTD if the character is not adopted...

    picking up on dvk901's post about sub factions. I tried to spawn a character using the sub faction thing.

    Code:
    monitor_event FactionTurnStart FactionIsLocal
              and I_TurnNumber = 2
    
        console_command kill_character "Ambiorix"
    
        spawn_army
        faction gauls sub_faction gauls
        character Ambiorix, named character, command 0, influence 0, management 0, subterfuge 0, age 20, x 96, y 71
        unit barb chieftain cavalry early gaul, exp 9 armour 1 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb infantry gaul, exp 0 armour 0 weapon_lvl 0
        unit barb peltast gaul, exp 0 armour 0 weapon_lvl 0
        unit barb cavalry gaul, exp 0 armour 0 weapon_lvl 0
    
            end
    
        terminate_monitor
    
    end_monitor
    The character spawns fine. How would I go about testing if this solves the problem i.e check if this character is adopted or not?
    I'm VERY curious about how and whether this works. Is the character cloned, and is the 'sub_faction' addition recognized? I'm really not questioning so much as 'musing', because if this works, then real characters could be spawned no matter what.

    The way to check whether this does indeed work is to spawn the character for the PLAYED faction, and then just hit end turn a few times. My experience has been that a non-family spawned character, or any non-family character added will be adopted and cloned very quickly...like in the first few turns. If he isn't, then the game is seeing that character as a sub_faction character, just like it does in descr_strat.txt.

    Creator of: "Ecce, Roma Surrectum....Behold, Rome Arises!"
    R.I.P. My Beloved Father

  16. #16

    Default Re: Myth Buster: Cloned Characters

    I tried the same thing long time ago and I remember I was unable to spawn a character for a sub_faction, though it seems I tried it the wrong way:
    Code:
    spawn_army
        sub_faction gauls
    Your idea is good, but I bet the part: "sub_faction gauls" is being ignored by the engine. I wonder what would happen if you test something like:
    Code:
    spawn_army
        faction germans sub_faction gauls

  17. #17
    Squid's Avatar Opifex
    Patrician Artifex Technical Staff

    Join Date
    Feb 2007
    Location
    Frozen waste lands of the north
    Posts
    17,760
    Blog Entries
    3

    Default Re: Myth Buster: Cloned Characters

    I know that in M2TW scripts the subfaction notation does work for recruiting units from other factions, at least for the slave faction.
    Under the patronage of Roman_Man#3, Patron of Ishan
    Click for my tools and tutorials
    "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe." -----Albert Einstein

  18. #18
    chris10's Avatar Primicerius
    Join Date
    Sep 2009
    Location
    Spain
    Posts
    3,239

    Default Re: Myth Buster: Cloned Characters

    Quote Originally Posted by Bardo View Post
    I wonder what would happen if you test something like:
    Code:
    spawn_army
        faction germans sub_faction gauls
    CTD......
    I had the same idea when working on the backgroundscript of my little RSII Rome expansion
    Quote Originally Posted by Squid View Post
    I know that in M2TW scripts the subfaction notation does work for recruiting units from other factions, at least for the slave faction.
    For the slave faction its irrelevant in RTW anyway as they dont form a family tree and dont produce clone CTD...we can spawn as much named characters for them as we want...only downside of the slave faction is the highly passive AI, they almost never attack nothing...would be marvelous if it would act like a faction more agressively...it would open a whole new world of possibilities.....well...curious what S2TW brings and if CA keeps his promise to make it more modfriendly
    Last edited by chris10; February 15, 2011 at 11:00 AM.

  19. #19
    Squid's Avatar Opifex
    Patrician Artifex Technical Staff

    Join Date
    Feb 2007
    Location
    Frozen waste lands of the north
    Posts
    17,760
    Blog Entries
    3

    Default Re: Myth Buster: Cloned Characters

    The point was just that the syntax actually does work for allowing one faction to recruit another factions units.
    Under the patronage of Roman_Man#3, Patron of Ishan
    Click for my tools and tutorials
    "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe." -----Albert Einstein

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •