命令14,征税的规则:
如果是7、8、9三个月,即秋季,那么不许征税,会提示已征收。
game_month = Data.DSBUF[0x46]
if game_month//3==2:
Helper.draw_text_with_600a(0x7EA6)
Data.SetWordToOffset(Data.DSBUF,1,0x5C4E)
Helper.GetAll20Commands()
return
如果该郡偏移第0x13个byte的bit 2是1,不许征税,会提示已征收。
if Data.Test(off_13,0x04) is False:
Helper.draw_text_with_600a(0x7EB8)
Data.SetWordToOffset(Data.DSBUF,1,0x5C4E)
return
税收中,征得黄金的规则:
人口开平方后除以10,这个结果与7相比的最大一个,所以最小值也是7,我们记作var_4。人口注意,三国志2里面,内存(存档)里的人口数*100才是游戏界面上显示的人口。比如20郡人口609400人,那么内存(存档)里是6094。像人口最少的第一郡人口93300,那么var_4就是933的开方大概31,除以10之后就是3,然后和7比,去最大值,var_4=7。
然后var_4,再累加诸侯的信任度与该郡的民忠。
接着,在1~901中取随机数,然后加上100,用这个数字再乘以上面的var_4,结果除以200,就是本次征得税额的黄金部分。
所以这里能看到,人口越多税越高。而如果算最小税额,随机数按1算,加上100,乘以7,结果是701,除以200,就是3,也就是说最低的黄金可以征到3。
polution = Data.GetWordFromOffset(Data.DSBUF, current_province_offset + 0x0E)
var_4 = max(int(math.sqrt(polution))//10,7) # 0002CE3F
current_ruler_offset = Data.get_current_ruler_offset_from_3394()
trust = Data.DSBUF[current_ruler_offset+0x06]
loyalty = Data.DSBUF[current_province_offset+0x17]
var_4 += trust+loyalty
gold_tax = Data.math_divice_to_int(random.randint(1,0x385)+0x64,var_4,0xc8) # 0002CE74
征得粮食的规则:
在1~45001中取随机数,然后加上500,用这个数字再乘以上面的var_4,结果除以200,就是本次征得税额的黄金部分。所以这个数最小可以随到5000,最大可以随到50000,也就是说是var_4的25倍到250倍不等。
food_tax = Data.math_divice_to_int(random.randint(1,0xAFC9)+0x1388,var_4,0xc8) # 0002CE9E
征税后,对于诸侯信任度的影响:
取信任度与5的最小值,用信任度减去该值,就是新的信任度。所以信任度如果是大于5,那么信任度直接减5。而信任度如果小于等于5,则信任度直接变为0。
trust = Data.get_2values_min_set(trust,0x05) # 0002CEFA
对于郡的民忠影响,和诸侯信任度类似:
只不过取10的最小值来处理。所以民忠如果是大于10,那么民忠直接减10。而民忠如果小于等于5,则民忠直接变为0。
loyalty = Data.get_2values_min_set(loyalty,0x0A)
[ 本帖最后由 juqiang 于 2025-12-4 14:14 编辑 ]