找回密码
 点一下
查看: 1557|回复: 6

发现了一个没用的函数?GetClickedButton()

[复制链接]
发表于 2010-12-9 23:16:15 | 显示全部楼层 |阅读模式
[jass]

function t2 takes nothing returns nothing
    call BJDebugMsg(I2S(GetHandleId(GetClickedButton())))
endfunction
function t1 takes nothing returns nothing
    local dialog d = DialogCreate()
    local button b = DialogAddButton(d,"确定",0)
    local trigger trig = CreateTrigger()
    call TriggerAddAction(trig,function t2)
    call TriggerRegisterDialogButtonEvent(trig,b)
    call DialogDisplay(Player(0),d,true)
endfunction

function t3 takes nothing returns nothing
call t1()
endfunction
[/jass]


返回结果居然是 0 反复几次 GetClickedButton() 这个方法返回都是 0
发表于 2010-12-9 23:57:49 | 显示全部楼层
这个我也遇过,几经周折才弄好的,具体…忘了- -应该说暴雪的漏洞
1:貌似一个按钮只能赋值给一个玩家
2:用对话框被点击事件,然后条件判断按钮
回复

使用道具 举报

发表于 2010-12-10 00:12:27 | 显示全部楼层
怎么可能没用呢~~只是你把事件和事件响应函数的对应关系弄错了而已~~

这个函数响应的是TriggerRegisterDialogEvent这个事件而不是TriggerRegisterDialogButtonEvent这个事件。

你把注册事件那句改成:

call TriggerRegisterDialogEvent(trig,d)

就可以了。
WC3ScrnShot_121010_001305_01.jpg
回复

使用道具 举报

发表于 2010-12-10 00:17:32 | 显示全部楼层
头目正解... 记得以前看过一个讲各种事件会产生哪些触发产物的详细介绍... 可惜找不着了 - -
回复

使用道具 举报

 楼主| 发表于 2010-12-10 08:45:11 | 显示全部楼层

回 2楼(Renee) 的帖子

那我回去试试  [jass]TriggerRegisterDialogButtonEvent[/jass] 这个函数是做什么的呀?
回复

使用道具 举报

发表于 2010-12-10 14:20:16 | 显示全部楼层
还能做什么,一个按钮对应一个触发器用的。
回复

使用道具 举报

 楼主| 发表于 2010-12-10 21:11:12 | 显示全部楼层

回 5楼(Renee) 的帖子

呵呵,明白了。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-27 14:54 , Processed in 0.083106 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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