Aeon221
Sergeant at Arms

Alright, so everyone knows that, over time, cows go extinct. But why?
Is it because of the cow quest?
Nope! The game checks "(lt, ":num_cattle", 50)," to see if there are lless than 50 cattle, but checking to see if there are fewer than 50 cattle is not the same thing as saying "(assign, ":num_cattle", 0)", which would assign the variable ":num_cattle" to zero. So we can say for a fact that the cow quest does not delete cows.
Nor does delivering them!
Nor does buying them!
So where are they going?!
Perhaps they are being made into leather, meat, and other fine cattle byproducts?
No. As you can clearly see, the number of cattle in the slot is checked, but not modified in any way.
So, cows are disappearing! And not because of mistakes in the code, or from their use as an industrial input!
Hey, where do cows come from, anyway?
Oh. Is that the only place? Does that only run once? Looks like yes to both.
Now, I feel that this is some pretty conclusive proof. But there are tens of thousands of lines of code in there, and I only found the ones I did by searching. And I also didn't find the script that goes into detail about the process of raiding with respect to cows. So, I can't say with one hundred percent accuracy that cows aren't being destroyed by the cow quest, and are instead being wiped out by raiding, and that the fixed number of cows throughout the game is the other big problem.
Do I know for a fact that cows don't have another originating source? No, but I do know that I looked for all instances of the slot_center_head_cattle and slot_village_number_of_cattle, and I didn't find one. And since you need to modify those to modify the number of cattle in a village, it's unlikely that new cattle are being born.
So, that's what I found today!
Is it because of the cow quest?
插入代码块:
(else_try), ###COWQUEST
(eq, ":quest_no", "qst_deliver_cattle"),
(try_begin),
(is_between, ":giver_center_no", villages_begin, villages_end),
#The quest giver is the village elder
(party_get_slot, ":num_cattle", ":giver_center_no", slot_village_number_of_cattle),
(lt, ":num_cattle", 50),
(assign, ":quest_target_center", ":giver_center_no"),
(store_random_in_range, ":quest_target_amount", 5, 10),
(assign, ":quest_expiration_days", 30),
(assign, ":quest_dont_give_again_period", 20),
(assign, ":result", ":quest_no"),
(try_end),
Nope! The game checks "(lt, ":num_cattle", 50)," to see if there are lless than 50 cattle, but checking to see if there are fewer than 50 cattle is not the same thing as saying "(assign, ":num_cattle", 0)", which would assign the variable ":num_cattle" to zero. So we can say for a fact that the cow quest does not delete cows.
Nor does delivering them!
插入代码块:
(try_begin),
(party_slot_eq, ":party_no", slot_party_type, spt_village),
(party_get_slot, ":village_cattle_amount", ":party_no", slot_village_number_of_cattle),
(val_add, ":village_cattle_amount", ":num_added"),
(party_set_slot, ":party_no", slot_village_number_of_cattle, ":village_cattle_amount"),
(try_end),
Nor does buying them!
插入代码块:
(party_get_slot, ":num_cattle", ":village_no", slot_village_number_of_cattle),
(val_sub, ":num_cattle", ":amount"),
(party_set_slot, ":village_no", slot_village_number_of_cattle, ":num_cattle"),
(store_mul, ":cost", ":single_cost", ":amount"),
(troop_remove_gold, "trp_player", ":cost"),
So where are they going?!
Perhaps they are being made into leather, meat, and other fine cattle byproducts?
插入代码块:
#Cattle products ###COWSTUFF
(else_try),
(eq, ":cur_good", "itm_cattle_meat"), #Demand = 5
(party_get_slot, ":base_production", ":center_no", slot_center_head_cattle),
(val_div, ":base_production", 9),
(else_try),
(eq, ":cur_good", "itm_dried_meat"), #Demand = 15
(party_get_slot, ":base_production", ":center_no", slot_center_head_cattle),
(val_div, ":base_production", 3),
(else_try),
(eq, ":cur_good", "itm_cheese"), #Demand = 10
(party_get_slot, ":base_production", ":center_no", slot_center_head_cattle),
(val_div, ":base_production", 4),
(else_try),
(eq, ":cur_good", "itm_butter"), #Demand = 2
(party_get_slot, ":base_production", ":center_no", slot_center_head_cattle),
(val_div, ":base_production", 20),
(else_try),
(eq, ":cur_good", "itm_raw_leather"), #Demand = ??
(party_get_slot, ":base_production", ":center_no", slot_center_head_cattle),
(val_div, ":base_production", 6),
(party_get_slot, ":sheep_addition", ":center_no", slot_center_head_sheep),
(val_div, ":sheep_addition", 12),
(val_add, ":base_production", ":sheep_addition"),
(else_try),
(eq, ":cur_good", "itm_leatherwork"), #Demand = ??
(party_get_slot, ":base_production", ":center_no", slot_center_tanneries),
(val_mul, ":base_production", 20),
No. As you can clearly see, the number of cattle in the slot is checked, but not modified in any way.
So, cows are disappearing! And not because of mistakes in the code, or from their use as an industrial input!
Hey, where do cows come from, anyway?
插入代码块:
(store_random_in_range, ":random_cattle", 35, 65),
(party_set_slot, ":village_no", slot_center_head_cattle, ":random_cattle"),
Oh. Is that the only place? Does that only run once? Looks like yes to both.
Now, I feel that this is some pretty conclusive proof. But there are tens of thousands of lines of code in there, and I only found the ones I did by searching. And I also didn't find the script that goes into detail about the process of raiding with respect to cows. So, I can't say with one hundred percent accuracy that cows aren't being destroyed by the cow quest, and are instead being wiped out by raiding, and that the fixed number of cows throughout the game is the other big problem.
Do I know for a fact that cows don't have another originating source? No, but I do know that I looked for all instances of the slot_center_head_cattle and slot_village_number_of_cattle, and I didn't find one. And since you need to modify those to modify the number of cattle in a village, it's unlikely that new cattle are being born.
So, that's what I found today!


