whateverdontcare Posted October 17, 2020 Posted October 17, 2020 3 hours ago, hamimobe said: Maybe you could try triggered_opinion? Make two of them, one for males, the other for females, and apply attraction_opinion differently in each of them. Apparently triggered_opinion doesn't work. Or specifically it only works in tenets. Pretty weird. Hopefully it'll be fixed soon.
kalleklovn Posted October 17, 2020 Posted October 17, 2020 And I don't want to create two versions; making inheritance work would be a pain.
hamimobe Posted October 17, 2020 Posted October 17, 2020 7 hours ago, kalleklovn said: And I don't want to create two versions; making inheritance work would be a pain. It will not be that hard, but worse than one trait. But in case triggered_opinion doesn't work, it's your only choice.
hamimobe Posted October 19, 2020 Posted October 19, 2020 What would it take to add grey skin into the game and make it available via a morph? Same question for: demonic horns (evil), angelic halo (good)? Edit: I figured out the skin, now would like to know how to apply black lipstick at least.
joemann Posted October 20, 2020 Posted October 20, 2020 I'm having a problem getting a scripted_effect full of variables working. It worked in CK2 but they have changed so much in the language that I'm going crazy. I'm not a natural but with lot's of practice I became reasonably comfortable with modding CK2. I have the feeling I have to start all over again, with a half empty wiki, no validator and no charinfo. The latter I really don't understand. It was incredibly useful for checking if flags and variables were correctly added, if your events did not work or appeared not to work. Now you are completely in the dark. Sorry for the rant, but I had to get it of my chest. My scripted_effect is as follows ( it is used in an event that is triggered by an on_action on_game_start_after_lobby ) Spoiler test_libido.001 = { hidden = yes trigger = { NOT = { has_variable = basic_sex_drive } } immediate = { root = { save_scope_as = receiver } add_libido_start_variables = yes } } The scripted_effect is as follows Spoiler add_libido_start_variables = { # Mother's side first scope:receiver = { if = { limit = { mother = { has_variable = basic_sex_drive } # If the mother has a variable, then we'll use it. } scope:receiver = { set_variable = { name = basic_sex_drive value = prev } } } else = { scope:receiver = { set_variable = { name = basic_sex_drive value = 3 } # "normal" basic_sex_drive } } # Father's side next if = { limit = { real_father = { has_variable = basic_sex_drive } } scope:receiver = { set_variable = { name = basic_sex_drive value = prev } } } else = { scope:receiver = { set_variable = { name = basic_sex_drive value = 3 } } } # Calculate character's sex-drive change_variable = { name = basic_sex_drive divide = 2 } if = { limit = { scope:receiver = { is_female = yes } } random_list = { 19 = { change_variable = { name = basic_sex_drive subtract = 2 } } 11 = { change_variable = { name = basic_sex_drive subtract = 1 } } 55 = { } # No change 6 = { change_variable = { name = basic_sex_drive add = 1 } } 9 = { change_variable = { name = basic_sex_drive add = 2 } } } } if = { limit = { scope:receiver = { is_female = no } } random_list = { 4 = { change_variable = { name = basic_sex_drive subtract = 2 } } 10 = { change_variable = { name = basic_sex_drive subtract = 1 } } 79 = { } # No change 10 = { change_variable = { name = basic_sex_drive add = 1 } } 12 = { change_variable = { name = basic_sex_drive add = 2 } } } } # We ensure the sex-drive didn't fall to less than 1 and more than 5 clamp_variable = { name = basic_sex_drive max = 5 min = 1 } } } error_log throws up the following errors Spoiler 17:01:46][jomini_script_system.cpp:169]: Script system error! Error: mother trigger [ Failed context switch ] Script location: file: file: events/test_libido_initialization_events.txt line: 12; add_libido_start_variables line: 5 [17:01:46][jomini_script_system.cpp:169]: Script system error! Error: real_father trigger [ Failed context switch ] Script location: file: file: events/test_libido_initialization_events.txt line: 12; add_libido_start_variables line: 20 [17:01:47][jomini_script_system.cpp:169]: Script system error! Error: clamp_variable effect [ Variable not of the 'value' scope type. Type: Character CorrA_du de Athen of (Internal ID: 18527 - Historical ID 235190) [18527] ] Script location: file: file: events/test_libido_initialization_events.txt line: 12; add_libido_start_variables line: 63 I would much appreciate somebody pointing me in the right direction.
hamimobe Posted October 20, 2020 Posted October 20, 2020 1 hour ago, joemann said: I have the feeling I have to start all over again, with a half empty wiki, no validator and no charinfo. The latter I really don't understand. It was incredibly useful for checking if flags and variables were correctly added, if your events did not work or appeared not to work. Now you are completely in the dark. Sorry for the rant, but I had to get it of my chest. Wrong, if you launch the game in debug mode you can see hidden flags and variables (if you hover over the "AI values" text). You can also see hidden variables in events and interactions. I think the problem is here: Quote set_variable = { name = basic_sex_drive value = prev } I'm not sure what you're trying to achieve here, prev is just the previous scope, it's not a number. You should try something like: value = scope:mother.var:basic_sex_drive
joemann Posted October 20, 2020 Posted October 20, 2020 You're a champ! You solved two of my problems. I'm really glad to have my charinfo tool back. I always play in debug mode but never noticed the "AI values" . You also fixed my scripted_effect. I found the variable under AI values. It still needs some fixing because I'm not convinced by the results it yields but that is just tweaking. The result I'm looking for is to equip all characters with a sex_drive value based on the average of that of their parents, corrected on a random basis, based on "real" statistics ( at this stage it doesn't add up the parents' values before dividing by 2 so I end up too low). I want to translate the sex_drive value which is a constant, into a current_sex_drive value which will vary over time based on the characters stats such as stress, health etc. I can then use this variable to drive the characters' behaviors in events, etc. In a sense it replaces traits such as lustful and chaste by something more elaborate. Thanks for your help.
joemann Posted October 20, 2020 Posted October 20, 2020 The error log still keeps having problems with the mother and real_father. A question, if you have a basic scope such as root, mother and real_father do you still need to precede them with <scope:> or is that only the case for saved scopes?
hamimobe Posted October 20, 2020 Posted October 20, 2020 26 minutes ago, joemann said: The error log still keeps having problems with the mother and real_father. A question, if you have a basic scope such as root, mother and real_father do you still need to precede them with <scope:> or is that only the case for saved scopes? It works but the log still reports it? Is the error the same? Probably scope is not needed in this case. I believe scope: is necessary only for saved scopes, but not for natural/hardcoded scopes like mother/father/faith.
joemann Posted October 20, 2020 Posted October 20, 2020 Spoiler add_libido_start_variables = { # Mother's side first scope:receiver = { if = { limit = { mother = { has_variable = basic_sex_drive } # If the mother has a variable, then we'll use it. } scope:receiver = { set_variable = { name = basic_sex_drive_1 value = scope:receiver.mother.var:basic_sex_drive } } } else = { scope:receiver = { set_variable = { name = basic_sex_drive_1 value = 3 } # "normal" basic_sex_drive } } # Father's side next if = { limit = { real_father = { has_variable = basic_sex_drive } } scope:receiver = { set_variable = { name = basic_sex_drive_2 value = scope:receiver.real_father.var:basic_sex_drive } } } else = { scope:receiver = { set_variable = { name = basic_sex_drive_2 value = 3 } } } # Calculate character's sex-drive set_variable = { name = basic_sex_drive value = 0 } change_variable = { name = basic_sex_drive add = var:basic_sex_drive_1 } change_variable = { name = basic_sex_drive add = var:basic_sex_drive_2 } change_variable = { name = basic_sex_drive divide = 2 } remove_variable = basic_sex_drive_1 remove_variable = basic_sex_drive_2 if = { limit = { scope:receiver = { is_female = yes } } random_list = { 19 = { change_variable = { name = basic_sex_drive subtract = 2 } } 11 = { change_variable = { name = basic_sex_drive subtract = 1 } } 55 = { } # No change 6 = { change_variable = { name = basic_sex_drive add = 1 } } 9 = { change_variable = { name = basic_sex_drive add = 2 } } } } if = { limit = { scope:receiver = { is_female = no } } random_list = { 4 = { change_variable = { name = basic_sex_drive subtract = 2 } } 10 = { change_variable = { name = basic_sex_drive subtract = 1 } } 79 = { } # No change 10 = { change_variable = { name = basic_sex_drive add = 1 } } 12 = { change_variable = { name = basic_sex_drive add = 2 } } } } # We ensure the sex-drive didn't fall to less than 1 and more than 5 } } I ended up with this. The error_log goes crazy with the same error notification for every character that gets the variable on startup, but the basic_sex_drive values the in_game characters end up with are satisfactory. Apparently the script does what it should be doing. I would like to understand what the error is so if anybody sees it I would be grateful. This is these are the error messages: Spoiler [21:20:28][jomini_script_system.cpp:169]: Script system error! Error: mother trigger [ Failed context switch ] Script location: file: file: events/test_libido_initialization_events.txt line: 12; add_libido_start_variables line: 5 [21:20:28][jomini_script_system.cpp:169]: Script system error! Error: real_father trigger [ Failed context switch ] Script location: file: file: events/test_libido_initialization_events.txt line: 12; add_libido_start_variables line: 20 [21:20:28][jomini_script_system.cpp:169]: Script system error! Error: has_variable trigger [ This scope doesn't support variables. Scope: Character Landolfo Caetani of (Internal ID: 16126 - Historical ID 167501) [16126] ] Script location: file: file: events/test_libido_initialization_events.txt line: 12; add_libido_start_variables line: 20
hamimobe Posted October 20, 2020 Posted October 20, 2020 First of all, even though it's not an error, you don't need to write scope:receiver if you're already in that scope. if and limit aren't new scopes. As for those mistakes, it's probably because some people don't have parents. You'll have to check for that.
joemann Posted October 20, 2020 Posted October 20, 2020 Oh that makes sense. I believe there is no <real_father_even_if_dead> scope anymore, though you could create one. But in the case of a game start even dead parents usually don't exist I suppose. The problem with these errors is that the error_log gets longer and longer. One more question. I want the variables to be in a range of 1 to 5. How do I do that? I was thinking of Spoiler if = { scope:receiver: = { has_variable = { name = basic_sex_drive value > 5 } } } set_variable = { name = basic_sex_drive value = 5 } But that is old school CK2 and no longer works. Instead there is a clamp_variable = { name = basic_sex_drive max = 5 min = 1 }. It looks convincing but I have no idea how it works. If it rounds up to one and down to 5 then that would be fine, but is that what it does?
hamimobe Posted October 20, 2020 Posted October 20, 2020 29 minutes ago, joemann said: Oh that makes sense. I believe there is no <real_father_even_if_dead> scope anymore, though you could create one. But in the case of a game start even dead parents usually don't exist I suppose. The problem with these errors is that the error_log gets longer and longer. One more question. I want the variables to be in a range of 1 to 5. How do I do that? I was thinking of Reveal hidden contents if = { scope:receiver: = { has_variable = { name = basic_sex_drive value > 5 } } } set_variable = { name = basic_sex_drive value = 5 } But that is old school CK2 and no longer works. Instead there is a clamp_variable = { name = basic_sex_drive max = 5 min = 1 }. It looks convincing but I have no idea how it works. If it rounds up to one and down to 5 then that would be fine, but is that what it does? Well, you found it, try it out. According to ck3 wiki it should do what you want. If it doesn't work you can always check the value yourself and change it.
joemann Posted October 21, 2020 Posted October 21, 2020 It worked and you were right about the errors being linked to the characters not having parents. When I resumed the game the errors had disappeared. I have another issue about what replaces the Men Time To Happen trigger. According to the wiki you can use random. However, I can't get it to work correctly. here is my event: Spoiler test_cycle.013 = { hidden = yes trigger = { is_female = yes has_character_flag = test_for_menopause age = 40 } immediate = { # increase the chances if factor > 1 # decrease the chances if factor < 1 # annihilate the chances if factor = 0 random = { chance = 20 modifier = { factor = 1 # 20% age == 40 OR = { any_child = { count = 2 } # these factors decrease the chance of early menopause has_trait = temperate } } modifier = { factor = 1.75 # 35% age == 40 OR = { any_child = { count == 0 } # these factors increase the chance of early menopause has_trait = gluttonous current_weight = 50 # obese } } modifier = { factor = 1.5 # 30% age == 41 OR = { any_child = { count = 2 } has_trait = temperate } } modifier = { factor = 1.8 # 36% age == 41 OR = { any_child = { count == 0 } current_weight = 50 has_trait = gluttonous } } etc } remove_character_flag = has_cycle remove_character_flag = menstruating remove_character_flag = ovulating add_character_flag = menopausal } } In the CK2 version this was a mean time to happen event which produced its effects randomly over a 10 year period, now it is triggered by the yearly global on_action. I get the impression that the modifiers sometimes accumulate giving a much higher success rate than intended. Does anybody know how to make this work?
luffyboy Posted October 22, 2020 Posted October 22, 2020 On 10/21/2020 at 11:18 AM, joemann said: It worked and you were right about the errors being linked to the characters not having parents. When I resumed the game the errors had disappeared. I have another issue about what replaces the Men Time To Happen trigger. According to the wiki you can use random. However, I can't get it to work correctly. here is my event: Reveal hidden contents test_cycle.013 = { hidden = yes trigger = { is_female = yes has_character_flag = test_for_menopause age = 40 } immediate = { # increase the chances if factor > 1 # decrease the chances if factor < 1 # annihilate the chances if factor = 0 random = { chance = 20 modifier = { factor = 1 # 20% age == 40 OR = { any_child = { count = 2 } # these factors decrease the chance of early menopause has_trait = temperate } } modifier = { factor = 1.75 # 35% age == 40 OR = { any_child = { count == 0 } # these factors increase the chance of early menopause has_trait = gluttonous current_weight = 50 # obese } } modifier = { factor = 1.5 # 30% age == 41 OR = { any_child = { count = 2 } has_trait = temperate } } modifier = { factor = 1.8 # 36% age == 41 OR = { any_child = { count == 0 } current_weight = 50 has_trait = gluttonous } } etc } remove_character_flag = has_cycle remove_character_flag = menstruating remove_character_flag = ovulating add_character_flag = menopausal } } In the CK2 version this was a mean time to happen event which produced its effects randomly over a 10 year period, now it is triggered by the yearly global on_action. I get the impression that the modifiers sometimes accumulate giving a much higher success rate than intended. Does anybody know how to make this work? If you put days/months/years = { x y } right after trigger events it kind of works like mean time. What you could do is this, create a starter event that looks like this startevent = { Trigger_event= { Testcycle.13 = yes/root/whatever Days = { 45 90 } } } and then have your test cycle event trigger startevent forming a loop where every 45-90 days or whatever long you want your test cycle event is fired. finally when you want it to stop set up a condition where once it’s met instead of firing the startevent again the loop is broken.
AlphaLyxis Posted October 27, 2020 Posted October 27, 2020 Is it possible to show a character portrait in an event without them being selectable (aka making it so you don't know who they are)?
joemann Posted October 31, 2020 Posted October 31, 2020 I am trying to make an event chain similar to the one Doc Tosca made for CK2 whereby after a siege you can capture women and have your way with them. I am using as an example the capture after siege event from the vanilla game. <siege.0001 etc > I have made two scripted triggers: Spoiler scripted_trigger test_war_1000_character_is_desirable_for_capture_sex = { scope:primary_siege_defender = { any_courtier_or_guest = { #does any courtier meet these conditions? is_female = yes is_male = no age >= 16 age <= 40 # OR = { # has_trait = beauty_good_1 # has_trait = beauty_good_3 # is_consort_of = scope:primary_siege_defender # is_close_family_of = scope:primary_siege_defender # } # # Reasons to exclude characters from the capture pool: NOR = { has_trait = scarred has_trait = clubfooted has_trait = hunchbacked has_trait = wheezing has_trait = scaly has_trait = albino has_trait = spindly has_trait = dwarf } } } } scripted_trigger test_war_1000_can_be_captured = { # Captured characters must be located in the raided barony itself. location = scope:barony.title_province scope:primary_siege_defender = { any_courtier_or_guest = { is_female = yes # Reasons to exclude characters from the capture pool: NOR = { is_male = yes age < 16 age > 40 } } } } Which are called further on in an event to make lists and selections from the list. Spoiler ###BUILD CAPTURE ATTEMPT LIST### #Add capture targets from all occupied baronies if it is someone's capital every_in_list = { list = occupied_baronies limit = { exists = holder save_temporary_scope_as = list_barony holder = { capital_barony = { this = scope:list_barony } } } holder = { if = { limit = { test_war_1000_can_be_captured = yes } add_to_list = capture_attempt_targets } every_courtier = { limit = { test_war_1000_can_be_captured = yes } add_to_list = capture_attempt_targets } } } ###BUILD SUCCESSFUL CAPTURE LIST### #Calculate capture success every_in_list = { list = capture_attempt_targets random = { chance = test_siege_base_capture_sex_chance # 35 becomes 20 for average intrigue and prowess, can go as low as 5 at very high intrigue and prowess # Capture Modifiers compare_modifier = { #Adds -20 for 20 intrigue, adds -10 for 10 intrigue #target = this value = intrigue multiplier = -1 min = -20 } compare_modifier = { #Adds -10 for 20 prowess, -5 for 10 prowess #target = this value = prowess multiplier = -0.5 min = -15 } # Capture Effects if = { limit = { test_war_1000_character_is_desirable_for_capture_sex = yes } add_to_list = captured_targets_effects } else = { add_to_list = killed_targets } } } Although the event triggers and works correctly most of the time, I still get prisoners that do not meet the criteria I believe I set in the scripted triggers. I get men and woman over 40. What am I doing wrong? I am wondering if, if there are not enough targets that meet the criteria, the maximum number of prisoners (3) gets made up by adding others that do not meet the criteria. But where would that be scripted?
hamimobe Posted October 31, 2020 Posted October 31, 2020 2 hours ago, joemann said: I am trying to make an event chain similar to the one Doc Tosca made for CK2 whereby after a siege you can capture women and have your way with them. I am using as an example the capture after siege event from the vanilla game. <siege.0001 etc > I have made two scripted triggers: Reveal hidden contents scripted_trigger test_war_1000_character_is_desirable_for_capture_sex = { scope:primary_siege_defender = { any_courtier_or_guest = { #does any courtier meet these conditions? is_female = yes is_male = no age >= 16 age <= 40 # OR = { # has_trait = beauty_good_1 # has_trait = beauty_good_3 # is_consort_of = scope:primary_siege_defender # is_close_family_of = scope:primary_siege_defender # } # # Reasons to exclude characters from the capture pool: NOR = { has_trait = scarred has_trait = clubfooted has_trait = hunchbacked has_trait = wheezing has_trait = scaly has_trait = albino has_trait = spindly has_trait = dwarf } } } } scripted_trigger test_war_1000_can_be_captured = { # Captured characters must be located in the raided barony itself. location = scope:barony.title_province scope:primary_siege_defender = { any_courtier_or_guest = { is_female = yes # Reasons to exclude characters from the capture pool: NOR = { is_male = yes age < 16 age > 40 } } } } Which are called further on in an event to make lists and selections from the list. Reveal hidden contents ###BUILD CAPTURE ATTEMPT LIST### #Add capture targets from all occupied baronies if it is someone's capital every_in_list = { list = occupied_baronies limit = { exists = holder save_temporary_scope_as = list_barony holder = { capital_barony = { this = scope:list_barony } } } holder = { if = { limit = { test_war_1000_can_be_captured = yes } add_to_list = capture_attempt_targets } every_courtier = { limit = { test_war_1000_can_be_captured = yes } add_to_list = capture_attempt_targets } } } ###BUILD SUCCESSFUL CAPTURE LIST### #Calculate capture success every_in_list = { list = capture_attempt_targets random = { chance = test_siege_base_capture_sex_chance # 35 becomes 20 for average intrigue and prowess, can go as low as 5 at very high intrigue and prowess # Capture Modifiers compare_modifier = { #Adds -20 for 20 intrigue, adds -10 for 10 intrigue #target = this value = intrigue multiplier = -1 min = -20 } compare_modifier = { #Adds -10 for 20 prowess, -5 for 10 prowess #target = this value = prowess multiplier = -0.5 min = -15 } # Capture Effects if = { limit = { test_war_1000_character_is_desirable_for_capture_sex = yes } add_to_list = captured_targets_effects } else = { add_to_list = killed_targets } } } Although the event triggers and works correctly most of the time, I still get prisoners that do not meet the criteria I believe I set in the scripted triggers. I get men and woman over 40. What am I doing wrong? I am wondering if, if there are not enough targets that meet the criteria, the maximum number of prisoners (3) gets made up by adding others that do not meet the criteria. But where would that be scripted? Your triggers are not checking if a character is suitable. They check if the defender has courtiers that are suitable. Obviously, they won't work.
joemann Posted October 31, 2020 Posted October 31, 2020 Thanks for your help. So should it be as follows? Spoiler scripted_trigger test_war_1000_character_is_desirable_for_capture_sex = { every_courtier_or_guest = { OR = { is_courtier_of = holder is_foreign_court_or_pool_guest_of = holder } is_female = yes is_male = no age >= 16 age <= 40 # OR = { # has_trait = beauty_good_1 # has_trait = beauty_good_3 # is_consort_of = scope:primary_siege_defender # is_close_family_of = scope:primary_siege_defender # } # # Reasons to exclude characters from the capture pool: NOR = { has_trait = scarred has_trait = clubfooted has_trait = hunchbacked has_trait = wheezing has_trait = scaly has_trait = albino has_trait = spindly has_trait = dwarf } } } Given where/how it is used isn't some of this redundant? Spoiler ###BUILD CAPTURE ATTEMPT LIST### #Add capture targets from all occupied baronies if it is someone's capital every_in_list = { list = occupied_baronies limit = { exists = holder save_temporary_scope_as = list_barony holder = { capital_barony = { this = scope:list_barony } } } holder = { if = { limit = { test_war_1000_can_be_captured = yes } add_to_list = capture_attempt_targets } every_courtier_or_guest = { limit = { test_war_1000_can_be_captured = yes } add_to_list = capture_attempt_targets } } } I used to manage quit well in CK2 but CK3's language seems to have a lot more possibilities/complications.
joemann Posted October 31, 2020 Posted October 31, 2020 A similar problem in the same event_chain. I am trying to limit the event to a character that meets certain conditions. The character is defined as the primary_siege_attacker Spoiler scope:war = { if = { limit = { is_attacker = scope:occupant } # If occupier is an attacker, the war's primary attacker is also the primary attacker in this siege (the attackers have occupied one of the defender's provinces). primary_attacker = { save_scope_as = primary_siege_attacker } primary_defender = { save_scope_as = primary_siege_defender } } else = { # Otherwise the occupier is a defender, so the primary defender in the war is the primary attacker in the siege (the defenders have occupied one of the attacker's provinces). primary_defender = { save_scope_as = primary_siege_attacker } primary_attacker = { save_scope_as = primary_siege_defender } } } But I want to narrow it down further and I tried as follows: Spoiler scope:primary_siege_attacker = { if = { limit = { is_female = no is_imprisoned = no is_attracted_to_men = no dread = 20 OR = { has_trait = rapist has_trait = lustful has_trait = rakish has_trait = sadistic has_trait = wrathful } NOR = { has_trait = incapable has_trait = chaste has_trait = compassionate } } save_scope_as = conquerer } } This doesn't work. The scope:conquerer is not created/recognized.
joemann Posted November 1, 2020 Posted November 1, 2020 What is the equivalent for the CK2 trigger check_variable = { which = <variable_name>x value = <number> } ? CK3 has the trigger <has_variable = name> but what do I do to check that the scope does not just have the variable but also a specific value of the variable?
MongoBongoArt Posted November 2, 2020 Posted November 2, 2020 On 10/31/2020 at 2:32 PM, joemann said: A similar problem in the same event_chain. I am trying to limit the event to a character that meets certain conditions. The character is defined as the primary_siege_attacker Reveal hidden contents scope:war = { if = { limit = { is_attacker = scope:occupant } # If occupier is an attacker, the war's primary attacker is also the primary attacker in this siege (the attackers have occupied one of the defender's provinces). primary_attacker = { save_scope_as = primary_siege_attacker } primary_defender = { save_scope_as = primary_siege_defender } } else = { # Otherwise the occupier is a defender, so the primary defender in the war is the primary attacker in the siege (the defenders have occupied one of the attacker's provinces). primary_defender = { save_scope_as = primary_siege_attacker } primary_attacker = { save_scope_as = primary_siege_defender } } } But I want to narrow it down further and I tried as follows: Hide contents scope:primary_siege_attacker = { if = { limit = { is_female = no is_imprisoned = no is_attracted_to_men = no dread = 20 OR = { has_trait = rapist has_trait = lustful has_trait = rakish has_trait = sadistic has_trait = wrathful } NOR = { has_trait = incapable has_trait = chaste has_trait = compassionate } } save_scope_as = conquerer } } This doesn't work. The scope:conquerer is not created/recognized. My guess is the "dread = 20" may be the problem. Would a "dread >= 20" work?
hamimobe Posted November 2, 2020 Posted November 2, 2020 3 hours ago, joemann said: What is the equivalent for the CK2 trigger check_variable = { which = <variable_name>x value = <number> } ? CK3 has the trigger <has_variable = name> but what do I do to check that the scope does not just have the variable but also a specific value of the variable? It's way easier now. You can refer to any variable by writing var:my_var. So if your mother has variable test_var and you want to check if it's larger than 10, you can write mother.var:test_var > 10.
joemann Posted November 5, 2020 Posted November 5, 2020 Does anyone know how to modify a decal? I tried using Gimp to copy paste stuff into the dds file or using the paintbrush. Copy/paste doesn't seem to work and painting on an existing decal_file results in brown splashes on the characters skin. I probably have to add layers but don't know where to start.
Cheri Song Posted November 7, 2020 Posted November 7, 2020 On 11/6/2020 at 6:18 AM, joemann said: Does anyone know how to modify a decal? I tried using Gimp to copy paste stuff into the dds file or using the paintbrush. Copy/paste doesn't seem to work and painting on an existing decal_file results in brown splashes on the characters skin. I probably have to add layers but don't know where to start. First of all make sure you are using software that can edit the .dds file format. I personally use Aorta to convert to and from other file formats. Second, decals are defined with image filters in the gene files, which means that they are likely to show up differently than you would expect. For instance many decals are rendered with the "multiply" setting which means they will only make skin darker, not lighter. This is most likely the cause of the brown splashes you are talking about. I don't know of a way to have decals render normally, if you find out let me know.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now