找回密码
 点一下
查看: 1398|回复: 10

当前镜头的目标点、源点什么的怎么用才不掉线?

[复制链接]
发表于 2012-8-9 23:59:59 | 显示全部楼层 |阅读模式
利用了本地玩家的
还是会掉线
[jass]
GetCameraEyePositionLoc()//当前镜头源位置

   function Play3DSound takes sound s, real x, real y, real z, integer v returns nothing//播放音效的函数
       call SetSoundPosition(s, x, y, z)
       call SetSoundVolume(s, v)
       call StartSound(s)
    endfunction

    if (GetLocalPlayer() == Player(id)) then
        call Play3DSound(OtherSound, GetLocationX(GetCameraEyePositionLoc()), GetLocationY(GetCameraEyePositionLoc()), 0, 128)
     endif [/jass]

这样都还是会掉线,实在不解。
 楼主| 发表于 2012-8-10 00:15:41 | 显示全部楼层
真是郁闷爆了,混论坛这么久了代码怎么高亮都不会。。编辑N次了。。。。 [s:202] [s:202]
回复

使用道具 举报

发表于 2012-8-10 00:46:02 | 显示全部楼层
local sound s
if 本地玩家是目标玩家 then
    set s = othersound
else
    set s = null
endif
然后播放音效s
回复

使用道具 举报

发表于 2012-8-10 07:33:05 | 显示全部楼层
yelite:local sound s
if 本地玩家是目标玩家 then
    set s = othersound
else
    set s = null
....... (2012-08-10 00:46)
我觉得LZ要的是在触发玩家的镜头目标点播放音乐。。
不是只有触发玩家才能听到音乐。。

然后……为什么我有种LZ要的效果不用同步镜头也能实现的感觉。。错觉错觉……

LZ把要实现的效果大致讲一下吧~
回复

使用道具 举报

 楼主| 发表于 2012-8-10 08:50:03 | 显示全部楼层

回 chyj4747 的帖子

chyj4747:我觉得LZ要的是在触发玩家的镜头目标点播放音乐。。
不是只有触发玩家才能听到音乐。。

然后……为什么我有种LZ要的效果不用同步镜头也能实现的感觉。。错觉错觉……
....... (2012-08-10 07:33)
使用了全屏背包   想实现在点击背包物品的时候加点3D声效  而3D声效必须绑定位置...
嗯嗯 对啊 我就是要不同玩家听到不同声效  我先试试3楼做法
回复

使用道具 举报

 楼主| 发表于 2012-8-10 08:52:57 | 显示全部楼层

回 yelite 的帖子

yelite:local sound s
if 本地玩家是目标玩家 then
    set s = othersound
else
    set s = null
....... (2012-08-10 00:46)
不是这样,声音异步已经成功了(我前面的函数已经证明的),问题应该出在镜头选择上。可是按我的理解我写的那代码应该是不会掉线的啊..
回复

使用道具 举报

 楼主| 发表于 2012-8-10 08:55:06 | 显示全部楼层
[s:193] [s:193] 继续求助...BZ能否发个怎么高亮Jass的详细教程....手笨实在不会弄..
回复

使用道具 举报

发表于 2012-8-10 10:24:05 | 显示全部楼层

回 0751472 的帖子

0751472: [s:193] [s:193] 继续求助...BZ能否发个怎么高亮Jass的详细教程....手笨实在不会弄.. (2012-08-10 08:55) 
那现在这代码是会掉线还是没效果?

掉线的话主要问题就是像你之前那样有的玩家创建了音效,有的玩家没有创建,就会掉线
只要给不需要的玩家创建一个空的音效就可以的(貌似不能对于本地玩家单独地call一个函数?反正我都是只放set的。。未验证过。。)



如果是没效果,那问题的可能性就有很多了,自己好好检查一下吧。。

刚刚看了一下。。好像sound是可以异步创建的。。。。
回复

使用道具 举报

 楼主| 发表于 2012-8-10 10:35:33 | 显示全部楼层

回 yelite 的帖子

yelite:那现在这代码是会掉线还是没效果?

掉线的话主要问题就是像你之前那样有的玩家创建了音效,有的玩家没有创建,就会掉线
只要给不需要的玩家创建一个空的音效就可以的(貌似不能对于本地玩家单独地call一个函数?反正我都是只放set的。。未验证过。。)
....... (2012-08-10 10:24)
可以call 的

我在别的地方用
[jass]
if (GetLocalPlayer() == Player(i)) then
       call Play3DSound(OtherSound, GetUnitX(udg_Hero), GetUnitY(udg_Hero), 0, 128)
   endif[/jass]
不会掉线

关键这里是用到了GetCameraEyePositionLoc()这个函数  就掉线了 搞不懂...
回复

使用道具 举报

 楼主| 发表于 2012-8-10 10:45:55 | 显示全部楼层
最新测试...这样也能掉线 郁闷了
[jass]
  if (GetLocalPlayer() == Player(id)) then
        set p=GetCameraEyePositionLoc()
    endif[/jass]
回复

使用道具 举报

发表于 2012-8-10 10:47:11 | 显示全部楼层

回 0751472 的帖子

0751472:可以call 的

我在别的地方用
[jass]
....... (2012-08-10 10:35) 
也许是因为这个函数会创建点?
用GetCameraEyePositionX和Y应该可以?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 08:12 , Processed in 0.061540 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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