- 好友
- 7
- 在线时间
- 0 小时
- 最后登录
- 2024-11-19
见习骑士
- UID
- 3189500
- 第纳尔
- 2704
- 精华
- 0
- 互助
- 26
- 荣誉
- 6
- 贡献
- 20
- 魅力
- 437
- 注册时间
- 2020-6-13
鲜花( 67) 鸡蛋( 0)
|
楼主 |
发表于 2023-1-20 12:11:09
|
显示全部楼层
研究了一上午,换了个思路。既然不好传参,那就用最简单的begin,and。用MS里的eq判断参数与数值是否相等,从而将数值传给函数。代码如下:
在脚本文件头部添加
from module_troops import *
from process_common import *
from ID_troops import *
def get_troop_char_id(i_troop):
return ("str_trp_" + str(troops[i_troop][0]))
def get_i_troop():
get_troop_id = []
get_troop_id.extend([(try_begin),(eq, "$troop_id", 0),(display_message, get_troop_char_id(0))])
for i_troop in xrange(trp_npc1, trp_heroes_end):
get_troop_id.extend([(else_try),(eq, "$troop_id", i_troop),(display_message, get_troop_char_id(i_troop))])
get_troop_id.append((try_end))
return get_troop_id[:]
再在script里调用函数
("get_troop_char_id", get_i_troop()),
在触发器下调用脚本
(assign, "$troop_id", "trp_kingdom_1_lord"),
(call_script, "script_get_troop_char_id"),
最后成功显示“哈劳斯国王”
以上我借鉴了R大的帖子[教学] [难度4]MOD教程之Python语言在Module System里的简单应用,在script里循环多次写入list[判断语句,函数调用语句],从而达到间接传参的目的。
这样的缺点就是性能没这么好,导出的txt不美观,因为本质上就是一直在判断。
不知道大家是否有更好的解决办法。
|
|