@holywingangel 久等了。
首先道歉,因为在下懒的关系,鸽了这么多天才回复。
然后,不幸的消息是,在下还是不能理解阁下会观察到那样的结果的原因。因为,在下把阁下的代码整理成txt然后带进游戏里以后,根本没有发现阁下上面说的问题……
以下是实际情况:
代码:
dlga_member_chat:pet_is_already_the_best_form_0 4095 13 5 33 3 144115188075855987 35 41 1561 3 1224979098644774912 144115188075855987 0 1561 3 1224979098644774913 144115188075855987 1 2147483680 2 1224979098644774912 0 2147483680 2 1224979098644774913 0 Your_pet_can_not_be_evolved_more,_the_current_form_is_the_best_one_it_can_be_evolved_to. 6666 0 NO_VOICEOVER
dlga_pet_is_already_the_best_form_0:pet_is_already_the_best_form_1 4095 6666 0 Your_pet_can_not_be_evolved_more,_the_current_form_is_the_best_one_it_can_be_evolved_to. 6667 0 NO_VOICEOVER
dlga_pet_is_already_the_best_form_1:pet_is_already_the_best_form_0 69631 6667 0 Check_the_data_of_the_pet. 6666 1 2046 0 NO_VOICEOVER
dlga_pet_is_already_the_best_form_1:pet_is_already_the_best_form_0 69631 6667 0 Check_the_equipments_of_the_pet. 6666 1 2051 0 NO_VOICEOVER
dlga_pet_is_already_the_best_form_1:pet_is_already_the_best_form_2 69631 6667 0 No,_I_want_to_check_others. 6668 0 NO_VOICEOVER
dlga_pet_is_already_the_best_form_2:close_window 4095 6668 0 As_you_wish. 6 0 NO_VOICEOVER
dlga_member_chat:pet_can_not_upgrade_introduce_0 4095 13 3 33 3 144115188075855987 35 41 2171 2 1224979098644774912 144115188075855987 2147483678 2 1224979098644774912 20 Your_pet_can_not_evolve_yet,_unless_it_can_grow_more_larger. 6669 0 NO_VOICEOVER
dlga_pet_can_not_upgrade_introduce_0:pet_can_not_upgrade_introduce_1 4095 6669 0 Now_you_can_check_the_data_and_the_equipments_of_your_pet. 6670 0 NO_VOICEOVER
dlga_pet_can_not_upgrade_introduce_1:pet_can_not_upgrade_introduce_0 69631 6670 0 Check_the_data_of_the_pet. 6669 1 2046 0 NO_VOICEOVER
dlga_pet_can_not_upgrade_introduce_1:pet_can_not_upgrade_introduce_0 69631 6670 0 Check_the_equipments_of_the_pet. 6669 1 2051 0 NO_VOICEOVER
dlga_pet_can_not_upgrade_introduce_1:pet_can_not_upgrade_introduce_2 69631 6670 0 No,_I_want_to_check_others. 6671 0 NO_VOICEOVER
dlga_pet_can_not_upgrade_introduce_2:close_window 4095 6671 0 You_can_come_back_later_when_your_pet_is_ready_to_evolve. 6 0 NO_VOICEOVER
dlga_member_chat:pet_upgrade_introduce_1 4095 13 3 33 3 144115188075855987 35 41 2171 2 1224979098644774912 144115188075855987 30 2 1224979098644774912 20 Now,_the_pet_you_are_talking_to_can_be_evolved_to_an_advanced_form. 6672 0 NO_VOICEOVER
dlga_pet_upgrade_introduce_1:pet_upgrade_introduce_3 4095 6672 0 To_continue_you_need_to_take_away_all_equiments_you_want_to_keep_from_your_pet,_otherwise,_they_will_be_destroyed. 6673 1 2051 0 NO_VOICEOVER
dlga_pet_upgrade_introduce_3:pet_upgrade_1 69631 6673 0 Now,_you_can_choose_which_advanced_form_you_want_your_pet_be_evolved_to. 6674 0 NO_VOICEOVER
dlga_pet_upgrade_1:pet_upgrade_2 81919 6674 5 50 1 1224979098644774912 1561 3 1224979098644774913 144115188075855987 0 1561 3 1224979098644774914 144115188075855987 1 33 3 1224979098644774912 1224979098644774913 1224979098644774914 2322 2 1 1224979098644774912 {s1} 6675 3 50 1 1224979098644774912 1610 3 648518346341351424 1224979098644774912 1 1615 3 648518346341351424 144115188075855987 1 NO_VOICEOVER
dlga_pet_upgrade_2:close_window 4095 6675 0 Your_pet_is_evolved_to_your_chosen_form. 6 0 NO_VOICEOVER
正好是对应上面三段的。
把它们放在了部队→兵种对话的前面,范围是35到41,也就是丝袜新兵到游击射手(40),没有用经验分层,而是用等级,分层等级是20级。
也就是说,只有那个范围内的兵种,与其对话时才会发生这些对话。并且,因为是在原来的对话上面,所以会把原先的【你 有 什 么 吩 咐 , {先 生 /夫 人 }? 】覆盖掉,因为这是兵种对玩家说话,优先执行最前面的。
然后,根据等级的划分,丝袜步兵是恰好可以触发第三段对话的,而无视上面两段,丝袜军士因为等级过高,而且没有升级线路,所以只能执行第一段。丝袜新兵有升级线,但是等级低,所以执行第二段。
基本上与阁下的预计一致。
要说有啥问题,第三段的逻辑是不通的,如果一个兵种可以升级,那就会直接进行下一句对话,而不会打开装备界面。
以及那个
[anyone|plyr|repeat_for_troops,"pet_upgrade_1",
[
(store_repeat_object, ":pet_evolve_to" ),
(troop_get_upgrade_troop, ":pet_evolve_target_upper_limit", "$g_talk_troop", 0 ),
(troop_get_upgrade_troop, ":pet_evolve_target_lower_limit", "$g_talk_troop", 1 ),
(is_between, ":pet_evolve_to", ":pet_evolve_target_upper_limit", ":pet_evolve_target_lower_limit"),
(str_store_troop_name, s70, ":pet_evolve_to" ),
],
"{s70}",
"pet_upgrade_2",
[
(store_repeat_object, ":pet_evolved" ),
(party_add_members, "p_main_party", ":pet_evolved", 1),
(party_remove_members, "p_main_party", "$g_talk_troop", 1)
] ],
这里的逻辑不通。在下通过丝袜步兵的试验,发现对话会在这里中断并且无法向下进行。是因为不满足is_between
的条件,而上面的对话又没有别的出路(装备界面没有打开,如上所述)。
而如果删掉is_between的操作的话,一大堆迭代出现的结果姑且不论,这个范围本身也有问题,因为不知道这个兵种的两条升级线,那个有哪个没有,所以会出现类似(is_between, ":pet_evolve_to", 36, -1),这样的情况。
顺带一提,在下用反编译器无法使用s70,所以改用了s1。
大概这就是在下的结论:阁下有哪里操作失误,或者ms编译问题,或者对话的位置或者触发有问题。
不然,阁下可以把在下这堆东西丢进conversation.txt文件(开头行数加17),实际试一下。
另外,如果可以,阁下可以重开一贴,这样,阁下发贴在下肯定能看到,在下发贴阁下也可以直接看到,而不用在下这样再艾特。