Lathrael
Recruit
Selamlar, zamanım olmadığı için bir süredir yazma fırsatı bulamadım. Bu derste module_scripts içerisindeki aile ağacını, ve yeni faction eklerken istediğiniz sayıda lord eklemek için gerekenlere deyineceğim.
Warband'ın faction sistemi 20 lord (8 baba, 8 oğul ve 4 aile ferdi olmayan) için hazırlanmış. Eğer yeni bir ırk ekleyip 20 den az ve tam aile olmayan lordları eklerseniz iş feci karışmakta. Ymira King Harlus'un babası olabilmekte Bunun sebebi module_script's teki "initialise_aristocracy" script'i. Şimdi öncelikle bunu inceleyelim;
("initialize_aristocracy",
[
#LORD OCCUPATIONS, BLOOD RELATIONSHIPS, RENOWN AND REPUTATIONS
#King ages
(try_for_range, ":cur_troop", kings_begin, kings_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_hero),
(store_random_in_range, ":age", 50, 60),
(troop_set_slot, ":cur_troop", slot_troop_age, ":age"),
(eq, ":cur_troop", "trp_kingdom_5_lord"),
(troop_set_slot, ":cur_troop", slot_troop_age, 47),
(try_end),
#The first thing - family structure
#lords 1 to 8 are patriarchs with one live-at-home son and one daughter. They come from one of six possible ancestors, thus making it likely that there will be two sets of siblings
#lords 9 to 12 are unmarried landowners with sisters
#lords 13 to 20 are sons who still live in their fathers' houses
#For the sake of simplicity, we can assume that all male aristocrats in prior generations either married commoners or procured their brides from the Old Country, thus discounting intermarriage Burada açıklandığı gibi troops.txt'deki ilk 8 lord babalar, 9-12 arasındakiler evlenmemiş kız kardeşleri olan ailesi olmayan tek lordlar, ve 13-20 arası sırası ile ilk 8 lord'un oğulları oluyor. knight1'in oğlu knight 13, 2'nin 14 vs.
(try_for_range, ":cur_troop", kingdom_ladies_begin, kingdom_ladies_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_lady),
(try_end),
(assign, ":cur_lady", "trp_kingdom_1_lady_1"),
(try_for_range, ":cur_troop", lords_begin, lords_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_hero),
(store_random_in_range, ":father_age_at_birth", 23, 26),
# (store_random_in_range, ":mother_age_at_birth", 19, 22),
(try_begin),
(is_between, ":cur_troop", "trp_knight_1_1", "trp_knight_2_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_1_1"),
(assign, ":ancestor_seed", 1), Bu aile reisi olan lordların birbiri ile kardeş olma şanslarını etkiliyor. Ancestor seed artık esamesi okunmayan, bu lordların babalarını temsil etmekte. biraz aşşağıdaki satırda buna her lord için 0-5 arası bir sayı ekleniyor, bu sayı onların babalarını temsil ediyor. Sayıları eşit olanlar kardeş oluyor.
(else_try),
(is_between, ":cur_troop", "trp_knight_2_1", "trp_knight_3_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_2_1"),
(assign, ":ancestor_seed", 7),
(else_try),
(is_between, ":cur_troop", "trp_knight_3_1", "trp_knight_4_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_3_1"),
(assign, ":ancestor_seed", 13),
(else_try),
(is_between, ":cur_troop", "trp_knight_4_1", "trp_knight_5_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_4_1"),
(assign, ":ancestor_seed", 19),
(else_try),
(is_between, ":cur_troop", "trp_knight_5_1", "trp_knight_6_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_5_1"),
(assign, ":ancestor_seed", 25),
(else_try),
(is_between, ":cur_troop", "trp_knight_6_1", lords_end),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_6_1"),
(assign, ":ancestor_seed", 31),
(try_end),
(try_begin),
(lt, ":npc_seed", , #NPC seed is the order in the faction Knight_1'den _8 dahil 8 e kadar lordlar aile reisi olacak demek.eğer azaltılırsa aile şeması aynı şekilde değişir.
(assign, ":reputation", ":npc_seed"),
(store_random_in_range, ":age", 45, 64),
(store_random_in_range, ":father", 0, 6), #six possible fathers Biraz önce bahsettiğim sayı, ne kadar az olursa kardeş olma olasılıkları o kadar artar. olasılığı düşürmek için sayı arttırılabilir (6 mesela 7 olabilir), fakat ancestor seed'in de aynı oranda arttırılması gerekir yoksa örnek olarak rhodok lordları ile sarranid lordlarını kardeş görmeniz olası olur.
(val_add, ":father", ":ancestor_seed"),
(troop_set_slot, ":cur_troop", slot_troop_father, ":father"),
#wife lady lerde 1. knight 1 in eşi, 2. kızı, 3. knight 2 nin eşi, 4. knight 2 nin kızı vs, son 4 lady ise 9-12 arası lordların kız kardeşleri. şema şeklinde daha sonra buraya geleceğim.
(troop_set_slot, ":cur_troop", slot_troop_spouse, ":cur_lady"),
(troop_set_slot, ":cur_lady", slot_troop_spouse, ":cur_troop"),
(store_random_in_range, ":wife_reputation", 20, 26),
(try_begin),
(eq, ":wife_reputation", 20),
(assign, ":wife_reputation", lrep_conventional),
(try_end),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":wife_reputation"),
(call_script, "script_init_troop_age", ":cur_lady", 49),
(call_script, "script_add_lady_items", ":cur_lady"),
(val_add, ":cur_lady", 1),
#daughter
(troop_set_slot, ":cur_lady", slot_troop_father, ":cur_troop"),
(store_sub, ":mother", ":cur_lady", 1),
(call_script, "script_init_troop_age", ":cur_lady", 19),
##diplomacy start+ fix native bug (daughters are their own mothers)
#(troop_set_slot, ":cur_lady", slot_troop_mother, ":cur_lady"),
(troop_set_slot, ":cur_lady", slot_troop_mother, ":mother"),
##diplomacy end+
(store_random_in_range, ":lady_reputation", lrep_conventional, 34), #33% chance of father-derived
(try_begin),
(le, ":lady_reputation", 25),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":lady_reputation"),
(else_try),
(eq, ":lady_reputation", 26),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_conventional),
(else_try),
(eq, ":lady_reputation", 27),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_moralist),
(else_try),
(assign, ":guardian_reputation", ":reputation"),
(try_begin),
(this_or_next|eq, ":guardian_reputation", lrep_martial),
(eq, ":guardian_reputation", 0),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_conventional),
(else_try),
(eq, ":guardian_reputation", lrep_quarrelsome),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_otherworldly),
(else_try),
(eq, ":guardian_reputation", lrep_selfrighteous),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_ambitious),
(else_try),
(eq, ":guardian_reputation", lrep_cunning),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_adventurous),
(else_try),
(eq, ":guardian_reputation", lrep_goodnatured),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_adventurous),
(else_try),
(eq, ":guardian_reputation", lrep_debauched),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_ambitious),
(else_try),
(eq, ":guardian_reputation", lrep_upstanding),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_moralist),
(try_end),
(try_end),
(call_script, "script_add_lady_items", ":cur_lady"),
(val_add, ":cur_lady", 1),
#high renown
(else_try), #Older unmarried lords
(is_between, ":npc_seed", 8, 12), Bu sayılar arasındaki lordlar (knight8-12 arası) babası veya oğlu olmayan sadece kız kardeşleri olan lordlar olmakta.
(store_random_in_range, ":age", 25, 36),
(store_random_in_range, ":reputation", 0, ,
(store_random_in_range, ":sister_reputation", 20, 26),
(try_begin),
(eq, ":sister_reputation", 20),
(assign, ":sister_reputation", lrep_conventional),
(try_end),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":sister_reputation"),
(troop_set_slot, ":cur_lady", slot_troop_guardian, ":cur_troop"),
(call_script, "script_init_troop_age", ":cur_lady", 21),
(call_script, "script_add_lady_items", ":cur_lady"),
(val_add, ":cur_lady", 1),
(else_try), #Younger unmarried lords Aile reisi lordların oğulları
#age is father's minus 20 to 25
(store_sub, ":father", ":cur_troop", 12), Lord'un sayısından 12 çıkartıyor, çıkan sayı babası oluyor. örnek; knight 14 ün babası (14-12=2) knight_2 olmakta. bunu değiştirerek yine aile şeması ile oynayabiliyoruz.
(troop_set_slot, ":cur_troop", slot_troop_father, ":father"),
(troop_get_slot, ":mother", ":father", slot_troop_spouse),
(troop_set_slot, ":cur_troop", slot_troop_mother, ":mother"),
(troop_get_slot, ":father_age", ":father", slot_troop_age),
(store_sub, ":age", ":father_age", ":father_age_at_birth"),
(try_begin), #50% chance of having father's rep
(store_random_in_range, ":reputation", 0, 16),
(gt, ":reputation", 7),
(troop_get_slot, ":reputation", ":father", slot_lord_reputation_type),
(try_end),
(try_end),
(try_begin),
(eq, ":reputation", 0),
(assign, ":reputation", 1),
(try_end),
(troop_set_slot, ":cur_troop", slot_lord_reputation_type, ":reputation"),
(call_script, "script_init_troop_age", ":cur_troop", ":age"),
(try_end),
(try_begin),
(eq, "$cheat_mode", 1),
(assign, reg3, "$cheat_mode"),
(display_message, "@{!}DEBUG -- Assigned lord reputation and relations"),
# (display_message, "str_assigned_lord_reputation_and_relations_cheat_mode_reg3"), #This string can be removed
(try_end),
(try_for_range, ":cur_troop", pretenders_begin, pretenders_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_inactive_pretender),
(store_random_in_range, ":age", 25, 30),
(troop_set_slot, ":cur_troop", slot_troop_age, ":age"),
(eq, ":cur_troop", "trp_kingdom_5_pretender"),
(troop_set_slot, ":cur_troop", slot_troop_age, 45),
(try_end),
]),
Warband'ın faction sistemi 20 lord (8 baba, 8 oğul ve 4 aile ferdi olmayan) için hazırlanmış. Eğer yeni bir ırk ekleyip 20 den az ve tam aile olmayan lordları eklerseniz iş feci karışmakta. Ymira King Harlus'un babası olabilmekte Bunun sebebi module_script's teki "initialise_aristocracy" script'i. Şimdi öncelikle bunu inceleyelim;
("initialize_aristocracy",
[
#LORD OCCUPATIONS, BLOOD RELATIONSHIPS, RENOWN AND REPUTATIONS
#King ages
(try_for_range, ":cur_troop", kings_begin, kings_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_hero),
(store_random_in_range, ":age", 50, 60),
(troop_set_slot, ":cur_troop", slot_troop_age, ":age"),
(eq, ":cur_troop", "trp_kingdom_5_lord"),
(troop_set_slot, ":cur_troop", slot_troop_age, 47),
(try_end),
#The first thing - family structure
#lords 1 to 8 are patriarchs with one live-at-home son and one daughter. They come from one of six possible ancestors, thus making it likely that there will be two sets of siblings
#lords 9 to 12 are unmarried landowners with sisters
#lords 13 to 20 are sons who still live in their fathers' houses
#For the sake of simplicity, we can assume that all male aristocrats in prior generations either married commoners or procured their brides from the Old Country, thus discounting intermarriage Burada açıklandığı gibi troops.txt'deki ilk 8 lord babalar, 9-12 arasındakiler evlenmemiş kız kardeşleri olan ailesi olmayan tek lordlar, ve 13-20 arası sırası ile ilk 8 lord'un oğulları oluyor. knight1'in oğlu knight 13, 2'nin 14 vs.
(try_for_range, ":cur_troop", kingdom_ladies_begin, kingdom_ladies_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_lady),
(try_end),
(assign, ":cur_lady", "trp_kingdom_1_lady_1"),
(try_for_range, ":cur_troop", lords_begin, lords_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_kingdom_hero),
(store_random_in_range, ":father_age_at_birth", 23, 26),
# (store_random_in_range, ":mother_age_at_birth", 19, 22),
(try_begin),
(is_between, ":cur_troop", "trp_knight_1_1", "trp_knight_2_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_1_1"),
(assign, ":ancestor_seed", 1), Bu aile reisi olan lordların birbiri ile kardeş olma şanslarını etkiliyor. Ancestor seed artık esamesi okunmayan, bu lordların babalarını temsil etmekte. biraz aşşağıdaki satırda buna her lord için 0-5 arası bir sayı ekleniyor, bu sayı onların babalarını temsil ediyor. Sayıları eşit olanlar kardeş oluyor.
(else_try),
(is_between, ":cur_troop", "trp_knight_2_1", "trp_knight_3_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_2_1"),
(assign, ":ancestor_seed", 7),
(else_try),
(is_between, ":cur_troop", "trp_knight_3_1", "trp_knight_4_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_3_1"),
(assign, ":ancestor_seed", 13),
(else_try),
(is_between, ":cur_troop", "trp_knight_4_1", "trp_knight_5_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_4_1"),
(assign, ":ancestor_seed", 19),
(else_try),
(is_between, ":cur_troop", "trp_knight_5_1", "trp_knight_6_1"),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_5_1"),
(assign, ":ancestor_seed", 25),
(else_try),
(is_between, ":cur_troop", "trp_knight_6_1", lords_end),
(store_sub, ":npc_seed", ":cur_troop", "trp_knight_6_1"),
(assign, ":ancestor_seed", 31),
(try_end),
(try_begin),
(lt, ":npc_seed", , #NPC seed is the order in the faction Knight_1'den _8 dahil 8 e kadar lordlar aile reisi olacak demek.eğer azaltılırsa aile şeması aynı şekilde değişir.
(assign, ":reputation", ":npc_seed"),
(store_random_in_range, ":age", 45, 64),
(store_random_in_range, ":father", 0, 6), #six possible fathers Biraz önce bahsettiğim sayı, ne kadar az olursa kardeş olma olasılıkları o kadar artar. olasılığı düşürmek için sayı arttırılabilir (6 mesela 7 olabilir), fakat ancestor seed'in de aynı oranda arttırılması gerekir yoksa örnek olarak rhodok lordları ile sarranid lordlarını kardeş görmeniz olası olur.
(val_add, ":father", ":ancestor_seed"),
(troop_set_slot, ":cur_troop", slot_troop_father, ":father"),
#wife lady lerde 1. knight 1 in eşi, 2. kızı, 3. knight 2 nin eşi, 4. knight 2 nin kızı vs, son 4 lady ise 9-12 arası lordların kız kardeşleri. şema şeklinde daha sonra buraya geleceğim.
(troop_set_slot, ":cur_troop", slot_troop_spouse, ":cur_lady"),
(troop_set_slot, ":cur_lady", slot_troop_spouse, ":cur_troop"),
(store_random_in_range, ":wife_reputation", 20, 26),
(try_begin),
(eq, ":wife_reputation", 20),
(assign, ":wife_reputation", lrep_conventional),
(try_end),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":wife_reputation"),
(call_script, "script_init_troop_age", ":cur_lady", 49),
(call_script, "script_add_lady_items", ":cur_lady"),
(val_add, ":cur_lady", 1),
#daughter
(troop_set_slot, ":cur_lady", slot_troop_father, ":cur_troop"),
(store_sub, ":mother", ":cur_lady", 1),
(call_script, "script_init_troop_age", ":cur_lady", 19),
##diplomacy start+ fix native bug (daughters are their own mothers)
#(troop_set_slot, ":cur_lady", slot_troop_mother, ":cur_lady"),
(troop_set_slot, ":cur_lady", slot_troop_mother, ":mother"),
##diplomacy end+
(store_random_in_range, ":lady_reputation", lrep_conventional, 34), #33% chance of father-derived
(try_begin),
(le, ":lady_reputation", 25),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":lady_reputation"),
(else_try),
(eq, ":lady_reputation", 26),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_conventional),
(else_try),
(eq, ":lady_reputation", 27),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_moralist),
(else_try),
(assign, ":guardian_reputation", ":reputation"),
(try_begin),
(this_or_next|eq, ":guardian_reputation", lrep_martial),
(eq, ":guardian_reputation", 0),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_conventional),
(else_try),
(eq, ":guardian_reputation", lrep_quarrelsome),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_otherworldly),
(else_try),
(eq, ":guardian_reputation", lrep_selfrighteous),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_ambitious),
(else_try),
(eq, ":guardian_reputation", lrep_cunning),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_adventurous),
(else_try),
(eq, ":guardian_reputation", lrep_goodnatured),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_adventurous),
(else_try),
(eq, ":guardian_reputation", lrep_debauched),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_ambitious),
(else_try),
(eq, ":guardian_reputation", lrep_upstanding),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, lrep_moralist),
(try_end),
(try_end),
(call_script, "script_add_lady_items", ":cur_lady"),
(val_add, ":cur_lady", 1),
#high renown
(else_try), #Older unmarried lords
(is_between, ":npc_seed", 8, 12), Bu sayılar arasındaki lordlar (knight8-12 arası) babası veya oğlu olmayan sadece kız kardeşleri olan lordlar olmakta.
(store_random_in_range, ":age", 25, 36),
(store_random_in_range, ":reputation", 0, ,
(store_random_in_range, ":sister_reputation", 20, 26),
(try_begin),
(eq, ":sister_reputation", 20),
(assign, ":sister_reputation", lrep_conventional),
(try_end),
(troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":sister_reputation"),
(troop_set_slot, ":cur_lady", slot_troop_guardian, ":cur_troop"),
(call_script, "script_init_troop_age", ":cur_lady", 21),
(call_script, "script_add_lady_items", ":cur_lady"),
(val_add, ":cur_lady", 1),
(else_try), #Younger unmarried lords Aile reisi lordların oğulları
#age is father's minus 20 to 25
(store_sub, ":father", ":cur_troop", 12), Lord'un sayısından 12 çıkartıyor, çıkan sayı babası oluyor. örnek; knight 14 ün babası (14-12=2) knight_2 olmakta. bunu değiştirerek yine aile şeması ile oynayabiliyoruz.
(troop_set_slot, ":cur_troop", slot_troop_father, ":father"),
(troop_get_slot, ":mother", ":father", slot_troop_spouse),
(troop_set_slot, ":cur_troop", slot_troop_mother, ":mother"),
(troop_get_slot, ":father_age", ":father", slot_troop_age),
(store_sub, ":age", ":father_age", ":father_age_at_birth"),
(try_begin), #50% chance of having father's rep
(store_random_in_range, ":reputation", 0, 16),
(gt, ":reputation", 7),
(troop_get_slot, ":reputation", ":father", slot_lord_reputation_type),
(try_end),
(try_end),
(try_begin),
(eq, ":reputation", 0),
(assign, ":reputation", 1),
(try_end),
(troop_set_slot, ":cur_troop", slot_lord_reputation_type, ":reputation"),
(call_script, "script_init_troop_age", ":cur_troop", ":age"),
(try_end),
(try_begin),
(eq, "$cheat_mode", 1),
(assign, reg3, "$cheat_mode"),
(display_message, "@{!}DEBUG -- Assigned lord reputation and relations"),
# (display_message, "str_assigned_lord_reputation_and_relations_cheat_mode_reg3"), #This string can be removed
(try_end),
(try_for_range, ":cur_troop", pretenders_begin, pretenders_end),
(troop_set_slot, ":cur_troop", slot_troop_occupation, slto_inactive_pretender),
(store_random_in_range, ":age", 25, 30),
(troop_set_slot, ":cur_troop", slot_troop_age, ":age"),
(eq, ":cur_troop", "trp_kingdom_5_pretender"),
(troop_set_slot, ":cur_troop", slot_troop_age, 45),
(try_end),
]),