- 好友
- 4
- 在线时间
- 0 小时
- 最后登录
- 2024-11-16
见习骑士
- UID
- 3199602
- 第纳尔
- 1162
- 精华
- 0
- 互助
- 36
- 荣誉
- 0
- 贡献
- 1
- 魅力
- 227
- 注册时间
- 2020-9-4
鲜花( 60) 鸡蛋( 0)
|
首先先感谢诸位前辈对我的不吝赐教,在此我将最近一段时间我遇到的一些问题和得到的解答一并放出,希望能给正在研究MS的诸位提供一些帮助。
Q(奥杜因):有没有办法检测正在激活的mission_tamplate
A(东海@815208129 ):不能,建议用slot。
补充:最后我检测scene去了。
Q(奥杜因):用agent_get_position得到的坐标,单位是多少?为什么动辄几十上百万的?
A(植物人@huagao ):agent_get_position显示的是精度。
补充:后来我看到了,专门有get_distance_between_positions和get_distance_between_positions_in_meters检测agent的距离。
Q(奥杜因):
(ti_on_agent_spawn, 0, 0, [],
[
(store_trigger_param_1, ":agent_no"),
(try_begin),
(agent_is_human, ":agent_no"),
(agent_is_alive, ":agent_no"),
(agent_get_team, ":agent_team", ":agent_no"),
(eq, ":agent_team", 1),
(agent_get_position, pos4, ":agent_no"),
(agent_set_scripted_destination, ":agent_no", pos4, 1),
(try_end),
]),
这段代码怎么理解?为什么在攻打劫匪巢穴时,要用指令让敌人一出生就移动到自己出生的位置?那不是什么效果都没有吗?而且为什么只对敌军做这个操作,不动玩家友军?
A1(约修亚○o翊@stevenxxy007 ):目的可能是为了让敌军不卡在地下。
A2(var_世居东海之滨,初举孝廉入仕/彼得@vegetto ):目的是为了让敌军原地待命。(agent_set_scripted_destination, ":agent_no", pos4, 1),后面的参数1一般是不写,因为1表示auto_set_z_to_ground_level,设置在地表上,所以如果有城墙楼梯之类的东西,AI就会迷茫。
补充:骑砍要注意延迟的问题。虽然所有代码看似都是同意瞬间执行,但是其实还是有先后顺序,从上往下的。战团的系统本身也有极限。
Q(奥杜因):
像这种可以拖动的物品栏,如何在run里把物品信息正好显示在物品上?可以拖动,说明使用了container,这片区域坐标重算。而run和container所在的load是不同分区,它可没有坐标重算,怎么得出物品的确切位置?
A(约修亚○o翊):直接将信息栏显示在鼠标移动到的地方就可以了。
Q(奥杜因):
(assign, reg0, 0),
(assign, reg1, 1),
(assign, reg2, 2),
(assign, reg3, 3),
(shuffle_range, 0, 4),
这个代码中,shuffle_range后面接的0和4,是几个寄存器reg的编号,还是之前(assign, reg0, 0),四个赋予的序号?
A(路奇@路奇 ):估计是reg0到reg4的序号。
补充:shuffle_range这个代码的作用是将指定数量的寄存器中,储存的元素重新分配,非常之有用。举个例子,如果我要将三个数随机分给三个人,用传统的store_random_in_range,需要1.将三个数编号为123,2.随机出其中一个数分给甲,3.将剩下两个数编号为12,4.随机出一个数分给乙,5.最后一个分给丙。这还只是三个人,就得写上一百行甚至九十九行代码,如果人数更多,那得写多少我是想都不敢想。而这种情况使用shuffle_range这个代码,简简单单几行就搞定了。
Q(奥杜因):ti_question_answered这个触发器词条,使用场景是什么?
A(东海):只能在mission_tamplate中使用,并且前置是question box这个弹窗。玩家点击弹窗的返回键,这个就执行。
|
鲜花鸡蛋幼稚园殺手 在2022-9-6 16:43 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下 huagao 在2022-9-6 13:08 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下
|