找回密码
 点一下
查看: 1414|回复: 4

脚本中对动作者发送消息 有何限制?

[复制链接]
发表于 2011-7-21 21:17:12 | 显示全部楼层 |阅读模式
尝试制作给限定玩家创建特效的效果,遇到一个问题。

当使用ActorSend() 给一个actor发送一个“计时器设置”的消息时,发现不能生效,想问下这样做是不是不可以?

如果不可以的话,还有哪些消息是不能这样使用的。
如果可以的话,请问我哪里做错了呢?

脚本代码如下:
[codes=galaxy]
playergroup Actor_HaveNonePlayersInPlayerGroup(playergroup pg){
    int p = 0;
    playergroup otherPlayers = PlayerGroupEmpty();
&#160;&#160;&#160;&#160;while(p<=15){
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(!PlayerGroupHasPlayer(pg,p)){
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;PlayerGroupAdd(otherPlayers,p);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;p = p + 1;
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;return otherPlayers;
}
actor Actor_AttachModelToUnitForPlayerGroup(unit u,playergroup players,string lj,string attachPoint){
&#160;&#160;&#160;&#160;actorscope scope = ActorScopeFromUnit(u);
&#160;&#160;&#160;&#160;playergroup otherPlayers = Actor_HaveNonePlayersInPlayerGroup(players);
&#160;&#160;&#160;&#160;actor a;
&#160;&#160;&#160;&#160;UIFlyerHelperOverride(players, 2);
&#160;&#160;&#160;&#160;UIFlyerHelperOverride(otherPlayers, 0);
&#160;&#160;&#160;&#160;a = ActorCreate(scope, "FuJiaTeXiaoDian", attachPoint, "", "");
&#160;&#160;&#160;&#160;ActorSend(a,"TimerSet 0.100000,0.000000 Destroy");
&#160;&#160;&#160;&#160;a = ActorCreate(scope, "FuJiaTeXiao", lj, "", "");
&#160;&#160;&#160;&#160;ActorSend(a,"TimerSet 0.070000,0.000000 Destroy");
&#160;&#160;&#160;&#160;UIFlyerHelperClearOverride(PlayerGroupAll());
&#160;&#160;&#160;&#160;return a;
}
[/codes]

问题地图也附上了,进入地图后请按“空格”。

actor msg test.SC2Map

27 KB, 下载次数: 17

发表于 2011-7-21 22:52:09 | 显示全部楼层
计时器设置消息不是该这样用吗?
ActorSend(a, "TimerSet 1.000000 timer");
回复

使用道具 举报

发表于 2011-7-22 01:12:24 | 显示全部楼层
没声明过的计时器不能用触发器来启动。

事先在数据编辑器里使用一次这个名字的计时器
回复

使用道具 举报

 楼主| 发表于 2011-7-22 09:23:40 | 显示全部楼层
还有一个问题,“FuJiaTeXiaoDian”的动作者类型是部位,如果创建频率很大的话,需要将它连同模型动作者一起删除掉吗?
回复

使用道具 举报

 楼主| 发表于 2011-7-22 09:57:18 | 显示全部楼层
引用第1楼okmpl1350于2011-07-21 22:52发表的  :
计时器设置消息不是该这样用吗?
ActorSend(a, "TimerSet 1.000000 timer");

嗯,我用了这个格式了,之前因为没有效果,所以我想会不会是格式不完全导致的,所以逗号后面的是范围数值。


我弄好了,谢谢大家的帮助。

actor msg test.SC2Map

27 KB, 下载次数: 9

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 20:55 , Processed in 0.089989 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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