找回密码
 点一下
查看: 2180|回复: 2

[伸手] 谁能告诉我如何用单位类型得到单位的图标

[复制链接]
发表于 2010-8-7 19:36:41 | 显示全部楼层 |阅读模式
比如输入"Gateway" 输出神族兵营的图标的字符串
的一个这样的函数...
发表于 2010-8-7 20:10:23 | 显示全部楼层
因为其实单位类型不和图标挂钩,所以严格来说这样的是做不到的。一个单位可以有多种图标,并不绑定在单位属性里。虽然单位有个默认图标但它是绑定在Actor里的。


因为Actor的id及其对应的单位的id可以是不一样的。所以你必须查询并遍历Actor的Events字段才能找到它绑定了哪些单位,而且还必须分割字符串。而且Unit并不绑定Actor,你必须遍历所有Actor才能找到哪些Actor绑定了你的Unit。这样的计算量就太大了。而且效率很差。


好在官方的Actor一般都只绑定一个单位,而且两边基本用同一个id。所以取巧的的方法是直接用单位id来当Actor的id,然后查询它的UnitIcon字段。
回复

使用道具 举报

发表于 2010-8-7 20:12:33 | 显示全部楼层
先做一个函数GetUnitActorIcon(),取Actor的UnitIcon字段。

[trigger]
Get Unit Actor Icon
    Options: Function
    Return Type: String
    Parameters
        UnitId = "" <String>
    Grammar Text: Get UnitId Actor Icon
    Hint Text: (None)
    Custom Script Code
    Local Variables
    Actions
        General - Return (Value of Actors UnitId "UnitIcon" for player 0)
[/trigger]

下面这个是测试用触发器
[trigger]
Test
    Events
        Game - Player Any Player types a chat message containing "", matching Partially
    Local Variables
    Conditions
    Actions
        Debug - Display (Text((Get (Entered chat string) Actor Icon))) as debug output using Type 1, and Do display it in the game window
[/trigger]


注意,大小写敏感,比如必须输入"Gateway"否则就读不出来。



附件是演示
Screenshot2010-08-07 20_15_10.jpg

11.SC2Map

34 KB, 下载次数: 11

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 22:11 , Processed in 0.122787 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表