中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 下网上载

[求助] 提问~某按键实现某功能,脚本该怎么写?

[复制链接]
发表于 2013-3-19 13:38:18 | 显示全部楼层
下网上载 发表于 2013-3-19 13:18
就是这样写啊~
_display = findDisplay 46;
_display displayAddEventHandler ["KeyDown", "if ((_this ...

少东西了。

  1. _display = findDisplay 46;
  2. _YourHandler = _display displayAddEventHandler ["KeyDown", "if ((_this select 1) == 25) then {0.1 fadeSound 0};"];
复制代码
 楼主| 发表于 2013-3-19 14:11:55 | 显示全部楼层
本帖最后由 下网上载 于 2013-3-19 14:26 编辑
FFUR2007SLX2_5 发表于 2013-3-19 13:38
少东西了。


为什么要这样对我~我做错了什么~~~

我在脚本里写用sqf脚本调用~就不行~~~写在触发器就可以

_YourHandler = (findDisplay 46) displayAddEventHandler ["KeyDown", "if ((_this select 1) == 25) then {moveout player};"];
这样就可以实现跳飞机了~~~但是脚本无法触发
发表于 2013-3-19 15:50:29 | 显示全部楼层
下网上载 发表于 2013-3-19 14:11
为什么要这样对我~我做错了什么~~~

我在脚本里写用sqf脚本调用~就不行~~~写在触发器就可以 ...

没有任何问题啊......

无论你是用sqf调用eventhandler,还是eventhandler中调用sqf都不存在任何问题。

你把sqf也贴上来。
 楼主| 发表于 2013-3-19 16:00:04 | 显示全部楼层
FFUR2007SLX2_5 发表于 2013-3-19 15:50
没有任何问题啊......

无论你是用sqf调用eventhandler,还是eventhandler中调用sqf都不存在任何问题。 ...

sqf脚本只有一句话


_YourHandler = (findDisplay 46) displayAddEventHandler ["KeyDown", "if ((_this select 1) == 25) then {0.1 fadeSound 0};"];

触发器可用~放脚本里就不行了~~~见鬼了 没任何提示报错
发表于 2013-3-19 16:29:31 | 显示全部楼层
下网上载 发表于 2013-3-19 16:00
sqf脚本只有一句话

当然你首先得sqf = [] execvm "x.sqf";

否则按P是没用的。
 楼主| 发表于 2013-3-19 16:41:12 | 显示全部楼层
FFUR2007SLX2_5 发表于 2013-3-19 16:29
当然你首先得sqf = [] execvm "x.sqf";

否则按P是没用的。

我肯定有写调用啊

这点基本道理我还是懂的~~已经调用了无任何报错提示
发表于 2013-3-19 18:42:49 | 显示全部楼层
mission打包发上来。
 楼主| 发表于 2013-9-13 22:13:22 | 显示全部楼层
FFUR2007SLX2_5 发表于 2013-3-18 13:23
定义按键使用displayAddEventHandler,而不是displaySetEventHandler

给你一张表你就明白了:

不得不把这贴顶回去~我已经研究出来了。。。

在sqf里必须加waitUntil {!isNull findDisplay 46};
在前面才可以运行。。。

但是现在我遇到新的问题就是。。。如何弄组合键???我想靠两个键触发又该怎么做?版主老师~~
 楼主| 发表于 2013-9-14 10:47:02 | 显示全部楼层

版主快现身吧~
发表于 2013-9-14 15:35:03 | 显示全部楼层

多重以上的组合键我们需要至少两个或两个以上的变量判断值从而可以激活判定。BI KEY CODE所有的定义都是单键的,所以我们需要keyDown和KeyUp两个control组合使用,比如说我们需要同时按住right shift + P给玩家加满弹药,写法如下:
  1. conl_P = false;
  2. conl_shift = false;
  3. _eh = (findDisplay 46) displayAddEventHandler ["Keydown", "if ((_this select 1) == 25) then {conl_P = true};"];
  4. _eh = (findDisplay 46) displayAddEventHandler ["KeyUp", "if ((_this select 1) == 25) then {conl_P = false};"];
  5. _eh = (findDisplay 46) displayAddEventHandler ["Keydown", "if ((_this select 1) == 54) then {conl_shift = true};"];
  6. _eh = (findDisplay 46) displayAddEventHandler ["KeyUp", "if ((_this select 1) == 54) then {conl_shift = false};"];
复制代码
  1. waitUntil {conl_P&&conl_shift}
  2. player setvehicleammo 1
复制代码
 楼主| 发表于 2013-9-14 16:32:43 | 显示全部楼层
FFUR2007SLX2_5 发表于 2013-9-14 15:35
多重以上的组合键我们需要至少两个或两个以上的变量判断值从而可以激活判定。BI KEY CODE所有的定义都是 ...

这么说的话~就是两个脚本分开~

靠变量作为判断~给
waitUntil {conl_P&&conl_shift}
player setvehicleammo 1

这里面的脚本设置个循环~,加了弹药以后~循环再检测直到等待的条件就可以了~~这么理解对不对?

感谢版主面授机宜
发表于 2015-7-2 13:57:14 | 显示全部楼层
定义按键功能?
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-5-6 21:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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