找回密码
 点一下
查看: 1106|回复: 3

[又是jass] 帮忙看段和对话框有关的触发```

[复制链接]
发表于 2008-3-30 08:03:35 | 显示全部楼层 |阅读模式
[codes=jass]
   call DialogSetMessage( udg_ByeOrNot[ GetConvertedPlayerId(GetTriggerPlayer()) ], "yes or not?" )
   set udg_ByeOrNotS[1]= DialogAddButtonBJ( udg_ByeOrNot[GetConvertedPlayerId(GetTriggerPlayer()) ], "是" )
   set udg_ByeOrNotS[2] = DialogAddButtonBJ( udg_ByeOrNot[GetConvertedPlayerId(GetTriggerPlayer()) ], "否" )
   call DialogDisplayBJ( true, udg_ByeOrNot[GetConvertedPlayerId(GetTriggerPlayer()) ], PL )
   if udg_ByeOrNotS[1]== GetClickedButtonBJ() then
      if....then
      ....
      else
      ....
      endif
  else
  ...
  endif[/codes]

以上`有什么错误吗?
在游戏里测试是没有效果的,对话框是出来了,不过点击了“是”也不会进行if```then``else那段动作
发表于 2008-3-30 08:34:36 | 显示全部楼层
理解上就错了呢~~

首先……至少得将下面半段另起一个触发罢?~~

事件用对话框按钮被点击~~这样才能使用GetClickedButtonBJ()~~


而你这种写法似乎是受了c语言控制台编程的影响~~其实jass可不会因为显示了一个对话框而就挂起线程了~~何况多人游戏模式下显示对话框甚至还不会暂停游戏~
回复

使用道具 举报

发表于 2008-3-30 08:44:10 | 显示全部楼层
虽然在单人模式下显示对话框会暂停游戏~~但是实际上也不是显示后立刻就暂停~~而是会等上0.1秒左右~~足够把后面的运行完了~~而且不用对话框按钮被点击事件来触发的话~~GetClickedButtonBJ()~~根本无从返回值~~
回复

使用道具 举报

 楼主| 发表于 2008-3-30 09:37:21 | 显示全部楼层
啊哦,了解了````
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-20 12:18 , Processed in 0.029554 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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