大航海时代吧 关注:77,024贴子:999,367
  • 27回复贴,共1

这这这………不知为何招募不了比利雷斯啊…

只看楼主收藏回复

我看公式说是4级爵位79级就能招募,我不清楚平民算0级还是1级爵位所有,爵士和准男爵都试了82级不能招募,这是啥情况啊?


IP属地:北京来自iPhone客户端1楼2025-12-04 11:31回复
    我乃武则天是也、善良的dasffsdf、米兰公敌. . . 被楼主禁言,将不能再进行回复
    如果等级不够还好说我再去漂几轮,我怕等级冒漾了。
    还有就是到时候招卡特琳娜的话对爵位有没有要求?我想招完比利雷斯就去升公爵又怕影响招卡特琳娜。


    IP属地:北京来自iPhone客户端2楼2025-12-04 11:35
    回复
      2026-01-08 00:14:39
      广告
      不感兴趣
      开通SVIP免广告
      89级了………还是招不了………不会是溢出了吧………这这这………不会是级别太高招不了了?


      IP属地:北京来自iPhone客户端3楼2025-12-04 15:38
      回复
        我从没招过


        IP属地:广东来自iPhone客户端4楼2025-12-04 17:30
        回复
          搞不懂,我md版航海40多级的公爵就可以招了


          IP属地:浙江来自iPhone客户端5楼2025-12-04 19:18
          回复
            看你这个情况应该是已经超了。我招他时记得是航战79级加准男爵。你可以换个国籍把爵位削了重新换个低点的招他。


            IP属地:江苏来自Android客户端6楼2025-12-04 20:14
            收起回复
              1,有公式。
              2,有溢出。
              且2>1。
              有些时候,注定永远不能招募彼利雷斯。可能碰巧被你赶上了


              IP属地:黑龙江来自Android客户端7楼2025-12-04 22:28
              收起回复
                我从来都是单威尼斯炮艇400水手,海员招不招无所谓


                IP属地:山东来自Android客户端8楼2025-12-05 03:33
                回复
                  2026-01-08 00:08:39
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这个版本有下载地址吗,我只玩过MD版的


                  IP属地:上海9楼2025-12-05 10:26
                  收起回复
                    4级爵位时,82级刚好溢出,只有79~81才是合适的。


                    IP属地:浙江10楼2025-12-05 17:34
                    收起回复
                      《大航海时代2 航海士招收条件,及一些相关内容》
                      作者:horsepower7
                      发表时间:2014-01-18
                      应某人要求,谈谈旅馆和酒馆的航海士招收条件
                      首先介绍一些相关的属性
                      一个航海士,有如下几个参数(当然不止这些,这里列出的是与本主题相关的):
                      =================================================================
                      - 7 项能力值:依次为,统御力,航海术,知识,直觉,勇气,剑术,魅力(每项最高 100)
                      - 2 个等级:航海等级,战斗等级(每项最高 100)
                      - 对主角的好感度(也就是招收后的忠诚度,是同一个数字,最高 100)
                      - 所属舰队的编号,等于 -1 表示无舰队,谈话时会说“无依无靠,四处漂泊”
                      - 职务,在舰队内的职务,意义如下:0 可雇用 1 总船长 2 分船长 3 助手 4 会计 5 水手长 6 普通水手(这个参数很重要)
                      - 个性值,理论上可以是 0 1 2 3 四个数中的一个,但实际上好像只有 0 1 2。这个数也可称为“叛变值”,越高越容易在港口提出要离开
                      - 嗜酒值,只有两种可能,“嗜酒”或“不嗜酒”
                      =================================================================
                      另外,主角还有一个参数“爵位”,取值是 0 到 9。
                      现在介绍下雇用航海士的成功条件
                      雇用的时候,主角说出“哈罗,下次跟我们一起出海吧!”,然后开始依次做下列判断:
                      =================================================================
                      1、该人职务是否等于 0,不等于 0 会说“不想改变现在的职业.”,招收失败
                      请注意,这里的判断条件是 职务是否等于 0,而并不判断其舰队是否等于 -1(即无舰队)。大家都知道有些在职招收的 bug,就源自于此——某航海士因某种原因仍属于某舰队,但职务被设为 0,这样在谈话时会说自己是某某舰队的某某,但却可以招收。
                      2、队伍里的航海士是否满了 30 人,满了会说“不能再增加人了.”,招收失败
                      3、如果是在酒馆招收,并且对主角好感度小于等于 30,会说“您的船,我不想去.”,招收失败
                      4、找出该人的 7 项能力值中最高的一项(有并列的取排在前面的),计算一个数:A = (该人 7 项能力的最高值) * (该人的航海等级 + 该人的战斗等级)
                      5、计算另一个数:B = (主角的相应能力值) * (主角的航海等级 + 主角的战斗等级),这里“主角的相应能力值”指的是要招收的那人的最高能力值的那项,比如那人最高的能力值是“知识”,在这里就要用主角的“知识”来计算
                      6、再计算 C = B + (B * 主角的爵位) / 10,然后取一个 [0, 20) 的随机数 X(记号 [0, 20) 表示大于等于 0 小于 20),比较 A + X 和 C,如果 A + X >= C,会说“对不起,我不去.再积累些经验吧!”,招收失败
                      7、如果 A + X < C,该人会提示工资,提示的数目以 (A/400 + 1) * 10 为基准值,在此基础上随机增加 0 或 10 或 20(各 1/3 概率),超过 200 就算 200(工资上限)
                      8、如果答应,就招收成功;如果拒绝,没什么坏处,好感度也不会降
                      =================================================================
                      总结一下,对好感度的要求只有在酒馆招收时才有,要求是大于 30,这可以通过喝酒来办到;而能力方面的要求,重要的是该人的强项不能是主角的弱项,另外就是主角的航海等级 + 战斗等级要高;而爵位的帮助最多可以达到将近翻倍的效果
                      另外,有一个 [0, 20) 的随机数起作用,所以当看到“对不起,我不去.再积累些经验吧!”的时候,不妨再试个一两次,说不定会成功
                      以下再介绍下酒馆喝酒的好感度上升
                      影响的参数是“个性值”和“嗜酒值”,这两个值都是每个航海士与生俱来的,不会改变
                      每次请喝酒,如果主角和该航海士的个性值相同,这种情况称为“合得来”,会说“请我喝酒呀,咱们挺投缘的.”,不然只会说“多谢!”(但海盗不一样,不管合不合得来,都只会说“想用酒诱惑我,办不到.”)
                      请喝一次酒,好感度的上升量 = 6 * 合得来加成 * 嗜酒加成
                      其中:合得来加成 = 1 或 3,如果合得来,就是 3,否则就是 1
                      嗜酒加成 = 1 或 2,如果该人嗜酒,就是 2,否则就是 1
                      所以每次好感度的上升量可能是 6,12,18,36
                      海盗虽然不会说“咱们挺投缘的”,但理论上也有合得来加成
                      然而我粗看了一下,海盗们的个性值好像都是 2,而主角们没有个性值等于 2 的,所以也没什么可加成的
                      主角的个性值如下:
                      葡萄牙小黄毛:0
                      西班牙小红毛:1
                      英国小胡子:1
                      荷兰小书呆子:0
                      意大利小老头:1
                      奥斯曼帝国小财迷:1
                      再次重申,这个个性值不只是用来判断合不合得来,在好感度低的时候,个性值越高,该人越容易在港口提出离队
                      嗯…… 今天就说这么多吧,今天说的好像条理不是很清楚


                      IP属地:浙江11楼2025-12-05 20:54
                      回复
                        《关于大航海时代2 的一类常见 bug》
                        作者:horsepower7
                        发表时间:2014-01-18
                        本贴也许会让大多数人不感兴趣,主要为了回答某人关于招收航海士的问题:有些航海士,在爵位高的时候收不了,改国籍后爵位清零了反而能收,这是什么原因呢?
                        这其实是游戏中很常见的一种 bug。这里的“常见”,指的是在程序中常见,不是在游戏中常见。
                        其实原理说来很简单,就是“数据溢出”。以下介绍相关的计算机知识。
                        ==============================================================
                        大家都知道,计算机的运算数据有“字节”,“字”,“双字”等区别,一个“字节”是 8 位,能表示 0 到 255 的数字;一个“字”是 16 位,能表示 0 到 65535 的数字;一个“双字”是 32 位,能表示 0 到 4294967295 的数字。
                        溢出,就是这样一种情况:比如一个字节 a 等于 200,另一个字节 b 等于 100,我们如果计算 a + b,算出来结果是 300,写成 2 进制是:100101100。但这个结果是 9 位,超过 8 位了,要想把这个结果存进一个字节里的话,计算机不得不把超过 8 位的部分扔掉,而只保存最后 8 位。这样一来,如果进行字节操作 c = a + b,最后结果会变成 c = 00101100(2 进制)= 44。
                        上面举的例子是加法溢出。乘法同样会溢出,而且更容易发生。如果字节 a = 20,字节 b = 15,我们计算 a * b 并存入字节 c,就会得到 c = 44,计算结果就错了。
                        一般来讲,程序员都应当特别注意这些问题,避免因溢出而产生错误结果。
                        然而有些程序员的编程是体育老师教的,就会忘记考虑这些情况。
                        ==============================================================
                        我们现在来看一下我在前贴中给出的航海士招收判断算法。这里只摘录相关的重点步骤,详情请看前贴:http://tieba.baidu.com/p/2820245810
                        ==============================================================
                        4、找出该人的 7 项能力值中最高的一项(有并列的取排在前面的),计算一个数:A = (该人 7 项能力的最高值) * (该人的航海等级 + 该人的战斗等级)
                        5、计算另一个数:B = (主角的相应能力值) * (主角的航海等级 + 主角的战斗等级),这里“主角的相应能力值”指的是要招收的那人的最高能力值的那项,比如那人最高的能力值是“知识”,在这里就要用主角的“知识”来计算
                        6、再计算 C = B + (B * 主角的爵位) / 10,然后取一个 [0, 20) 的随机数 X(记号 [0, 20) 表示大于等于 0 小于 20),比较 A + X 和 C,如果 A + X >= C,会说“对不起,我不去.再积累些经验吧!”,招收失败
                        ==============================================================
                        好吧,也许你会有疑问,为什么我所有的贴子里的公式都写得那么复杂,像是 C = B + (B * 主角的爵位) / 10 这样,为什么不把 B 提出来,写成更简洁直观的 C = B * (1 + 主角的爵位 / 10) 这样呢?
                        原因就是,我写的公式,是按照计算机的计算步骤来的。计算机在算乘法的时候,可能发生之前说的溢出问题;而在算除法的时候,会把余数舍掉,只取整数部分。
                        比如,如果做字节操作,计算 100 * 3 / 3,算出来是多少呢?答案完全不是 100。
                        首先算 100 * 3,得出 300,但因为是字节操作,溢出了,结果会变成 44。
                        然后再算 44 / 3,结果是商 14 余 2,余数会被舍掉,结果变成 14。
                        我在公式里没有写出每一步是字节操作还是字操作还是双字操作,因为不想把公式弄得太复杂;但乘除法的顺序绝对不能换的,比如 C = B * (1 + 主角的爵位 / 10),由于主角的爵位永远小于 10,所以 主角的爵位 / 10 永远等于 0,这样算出来会变成 C = B,公式就不对了。
                        也许你已经发现了为什么有时候爵位高反而招不到航海士——原因就是溢出。实际上,在这些公式里的操作,全都是字操作,就是说最大不能超过 65535——这个上界明显很不够,当主角的相应能力值达到 100,航海和战斗等级都达到 100,而爵位等于 9 的话,这时算出的 B = 100 * (100 + 100) = 20000,再计算 B * 爵位,会溢出得一塌糊涂。
                        这样,之后的所有计算当然也都是错的了。而当爵位清零之后,变成 C = B,又回到 20000 以下,不存在溢出问题了,就又能招收了。
                        这种潜在的 bug,在游戏中比比皆是,我完全没有办法总结一下全列出来。在此再举一例:
                        ==============================================================
                        金钱的上限是 600000000(6 个亿),以一个双字(32 位)存放。而在王宫被捕会扣掉 4/5 的金钱(这里有另一个算是小 bug 的问题,就是银行贷款也会扣掉 4/5…… 当然你也可以说这很合理),这个扣钱的计算过程,如你所想,是这样的:钱 - 钱 * 4 / 5。
                        如果钱是满的(6 个亿),当计算 钱 * 4 的时候,会得到 24 亿——看上去好像没有超过 32 位的上限,但问题在于,下一步计算 除以 5 的时候,是按有符号数来算的,也就是说,首位为 1 被认为是负数。而 24 亿 超过了 32 位的上限的一半,首位为 1,就成为负数了。
                        这样一来,如果以 6 个亿的现金去王宫被抓住,扣的钱就会出问题。不会出问题的临界值是 2^31 - 1 = 536870911,也即是说钱大于这个数字之后,进王宫被捕,钱的计算就会出问题。
                        ==============================================================
                        正如之前所说的,程序读得越透彻,越感觉这个游戏变得丑陋起来…… 很纠结。
                        补充说明一下,我上面举的王宫的例子,其实问题更复杂,还牵涉到 neg 0x8000 的问题,总之大家了解大概原理就行了。


                        IP属地:浙江12楼2025-12-05 20:57
                        收起回复
                          本层内容是是我对horsepower7以上2个帖子的解读,供大家参考。
                          解读1:
                          ============================以下原文引用==================================
                          4、找出该人的 7 项能力值中最高的一项(有并列的取排在前面的),计算一个数:A = (该人 7 项能力的最高值) * (该人的航海等级 + 该人的战斗等级)
                          5、计算另一个数:B = (主角的相应能力值) * (主角的航海等级 + 主角的战斗等级),这里“主角的相应能力值”指的是要招收的那人的最高能力值的那项,比如那人最高的能力值是“知识”,在这里就要用主角的“知识”来计算
                          6、再计算 C = B + (B * 主角的爵位) / 10,然后取一个 [0, 20) 的随机数 X(记号 [0, 20) 表示大于等于 0 小于 20),比较 A + X 和 C,如果 A + X >= C,会说“对不起,我不去.再积累些经验吧!”,招收失败
                          ============================以上原文引用==================================
                          关于招人公式的BUG,我验证了一下,貌似在计算A和B时是没有溢出的,发生溢出是在计算C时,B*主角的爵位 这一步,当 B*主角的爵位>=32768 时即发生溢出,存储计算结果的这个字的最高位如果是1时,会被看成是负数。如果该字用二进制表述是1111 1111 1111 1111,则其值实际是十进制的-1;如果该字二进制表述是1000 0000 0000 0001,则其值实际是十进制的-32767。
                          解读2:
                          为了方便计算,我拟了个等效公式:
                          A = (该人 7 项能力的最高值) * (该人的航海等级 + 该人的战斗等级)
                          B = (主角的相应能力值) * (主角的航海等级 + 主角的战斗等级),
                          C = B + (B * 主角的爵位) / 10,
                          然后取一个 [0, 20) 的随机数 X(记号 [0, 20) 表示 0<=X<20),
                          比较 A + X 和 C,如果 A + X >= C,会说“对不起,我不去.再积累些经验吧!”,招收失败
                          当 65536*n <= B*爵位 < 65536*n+32768时
                          C=B+(B*爵位-65536*n))/10
                          当 65536*n+32768 <= B*爵位 < 65536*(n+1) 时
                          C=B+(B*爵位-65536*(n+1))/10
                          注:n为整数,n>=0
                          推论1:
                          4级爵位的时候,主角航海术100,能成功招收彼利·雷斯的等级和可以达到最低,等级和范围是79级到81级。78级或者82级就不能收了,78级或者以下是不够,82级或者以上是溢出。
                          推论2:
                          初始人物中,除了约翰·法雷尔、卡特琳娜·艾兰茨互收、奥托·斯宾诺拉招收罗伯托乌斯·艾泽格、主角招收彼利·雷斯和西蒙·斯卡隆可能需要规划之外,其他已知NPC按公式 C=B+(B*主角爵位)/10 直接计算只要条件一达到就去招收,不管在哪个爵位,都是不容易遇见溢出BUG的。


                          IP属地:浙江本楼含有高级字体13楼2025-12-05 21:06
                          回复
                            爵位等级 爵位名称 奥斯曼爵位
                               0  平民   平民
                               1  士爵   士族
                               2  准爵士  监督官
                               3  爵士   郡长官
                               4  准男爵  知事
                               5  男爵   藩王
                               6  子爵   大藩王
                               7  伯爵   君候
                               8  侯爵   首相
                               9  公爵   大首相


                            IP属地:浙江14楼2025-12-06 12:29
                            回复