3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 2725|回复: 19
打印 上一主题 下一主题

[讨论] GetButtonPressed为什么老是-1

  [复制链接]

6

主题

31

帖子

41

积分

初级玩家

Rank: 2

贡献度
6
金元
765
积分
41
精华
0
注册时间
2011-6-24
跳转到指定楼层
主题
发表于 2011-7-14 20:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 415462822 于 2011-7-14 21:09 编辑

我是新手,想做一个多姿势选择的魔法MOD。
在官网上看到MessageBox 和 GetButtonPressed函数,我觉得这是我应该用得上的两个函数。
我在官网http://cs.elderscrolls.com/constwiki/index.php/GetButtonPressed上看到GetButtonPressed的例程。
begin ScriptEffectStart
  messagebox "Melt money?" "Yes" "No"
end

begin ScriptEffectUpdate
  set choice to GetButtonPressed
  if choice == 0
    player.RemoveItem Gold001 1000
  endif
end
把它复制到我的魔法中。但是使用这个魔法后只弹出"Melt money?  yes,no"的对话框。可是我无论点Yes还是No都没有反应。
于是我把程序改为
begin ScriptEffectStart
  messagebox "Melt money?" "Yes" "No"
end
begin ScriptEffectUpdate

set button to GetButtonPressed
message "button return %.0f abc" ,button
end
想通过“message "button return %.0f abc" ,button”来看看,GetButtonPressed读出的到底是什么值。
最后发现当我运行魔法弹出"Melt money?" "Yes" "No"的对话框,还没有点击任何选项时
就已经弹出"button return -1 abc" 了。
当我选择“Yes”或“No”后,均无任何反应。连"button return -1 abc"都没有显示。
不知道这是什么原因。

我还曾将程序改为
begin ScriptEffectStart
  messagebox "Melt money?" "Yes" "No"
  set state to 2  ;
  return
end
begin ScriptEffectUpdate

  if (state ==2)
set button to GetButtonPressed
message "button return %.0f abc" ,button
set state to 0
endif
end
我原来写过C++程序,知道程序应该是一步步执行的,我认为当messagebox "Melt money?" "Yes" "No" 执行完后才执行set state to 2 ,
但是我进入游戏后一运行魔法,对话框一弹出就显示"button return -1abc" 了这说明在我按下"Yes" "No" 前程序就执行到set state to 2 了。
当我按下任何一个键后,GetButtonPressed返回的值都是它原来的-1.

我不知道这个实现选择功能的魔法怎么写了。望高手指教。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-6 10:01 , Processed in 0.029734 second(s), 16 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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