找回密码
 点一下
查看: 1957|回复: 12

如何使用本地玩家创建及删除特效

[复制链接]
发表于 2008-11-25 17:58:29 | 显示全部楼层 |阅读模式


对本地玩家创建特效是不会引起掉线的

问题是,如何在我需要的时候删除这些特效呢?

returnbug吗?

在删除这些特效时如何避免因为本地玩家数据不同步引起的掉线呢?

如果有个特效全局变量EF

IF GetLocalPlayer()=Player(0)
创建特效
endif
设置EF=最后创建的特效

对不同玩家,这个EF值是一致的吗?

如果换做

IF GetLocalPlayer()=Player(0)
创建特效
设置EF=最后创建的特效
endif

这样会直接掉线吧?
发表于 2008-11-25 18:04:11 | 显示全部楼层
正好相反,设置EF = 特效不会掉线,因为产生不同步的是实例而不是引用。

掉线的是那个创建特效

难道你有办法可以只对Player(0)创建特效而不掉线?
回复

使用道具 举报

 楼主| 发表于 2008-11-25 18:07:40 | 显示全部楼层
我见DotA中是这样做的

对本地玩家设置不同的字符串

然后创建这个字符串的特效给所有玩家
回复

使用道具 举报

发表于 2008-11-25 18:20:48 | 显示全部楼层
貌似上次有一帖讨论过,是用了如ls所说的方法

参考帖
回复

使用道具 举报

 楼主| 发表于 2008-11-25 18:23:49 | 显示全部楼层
问题是如何记录他们呢?在我需要删除他们的时候

如果通过本地玩家创建了不同的特效之后,退出本地玩家判断后
设置变量EF为最后创建的特效

在我需要的时候删除这个EF

是否做到了删除特效的效果?
回复

使用道具 举报

发表于 2008-11-25 18:26:24 | 显示全部楼层
删除如同以前一样,使用return bug或者其他什么方法记录变量就好了,很多特效创建了可以直接删除,就像那个帖子里那样,call DestroyEffect(AddSpecialEffectTarget(s,lu,"overhead"))就可以了
回复

使用道具 举报

发表于 2008-11-25 18:27:29 | 显示全部楼层
做到了。。因为这2个特效虽然效果不同,地址却一样。。
回复

使用道具 举报

 楼主| 发表于 2008-11-25 19:21:52 | 显示全部楼层
引用第6楼thewisp于2008-11-25 18:27发表的  :
做到了。。因为这2个特效虽然效果不同,地址却一样。。


咋个做法
回复

使用道具 举报

发表于 2008-11-25 19:31:57 | 显示全部楼层
就是那帖的做法
回复

使用道具 举报

 楼主| 发表于 2008-11-25 19:37:11 | 显示全部楼层
那贴是直接创建特效 然后删除

我这个想要的是创建后,在我需要的时候删除

不是立刻删除的。。
回复

使用道具 举报

发表于 2008-11-25 21:08:18 | 显示全部楼层
应该是一样的,你用变量记录试试看呢
回复

使用道具 举报

发表于 2008-11-27 04:15:02 | 显示全部楼层
本来就可以不用立即删除~~

不过你删除的时候要记得不要在非同步情况下删除就是了~~

简单地说~~流程是~~你新建一个变量A~~

然后给不同用户创建不同路径的特效呗~~

然后用全局变量记下创建的特效即可~~根本没必要用什么return bug因为特效变量本身就是一个储存handle值的类型~~

在这种情况下~~你对不同用户创建不同路径的特效~~所返回的handle值是一样的~~因此你也删除它的时候自然也是同步删除~~
回复

使用道具 举报

发表于 2008-11-27 04:20:54 | 显示全部楼层
[jass]
if GetLocalPlayer() == Player(0) then
        set SFXstr="..............\\\\.mdl"
else
        set SFXstr=""
endif
set udg_SFX=AddSpecialEffect(SFXstr,x,y)

[/jass]


等到要销毁的时候就
call DestroyEffect(udg_SFX)
就可以了~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 02:42 , Processed in 0.033892 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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