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

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
楼主: FFUR2007SLX2_5

[教程] 武装突袭2函数教程全集(更新至106楼)

  [复制链接]
 楼主| 发表于 2011-11-27 18:00:38 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-11-27 18:05 编辑

61楼,插入阵列 (BIS_fnc_arrayPushStack)

  1. array = [1,2,3]
  2. [array, [4,5,6]] call BIS_fnc_arrayPush

  3. array2 = [[5,6,7], [8,[9],10]] call BIS_fnc_arrayPush

  4. array is now [1,2,3,4,5,6]
  5. array2 is now [5,6,7,8,[9],10]
复制代码
从官方的例子中我们就可以看到该函数可以将一个阵列插入至原始阵列的末端。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2011-11-27 18:29:28 | 显示全部楼层
本帖最后由 纯真年代 于 2011-12-6 14:22 编辑

其实还是需要很强的C基础呀,好好学习!{:soso_e179:}
发表于 2011-12-2 20:59:04 | 显示全部楼层
12312
发表于 2011-12-2 22:36:19 | 显示全部楼层
得看看,做任务
 楼主| 发表于 2011-12-2 23:51:20 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-12-3 00:08 编辑

66楼,删除阵列第一元素并返还。(BIS_fnc_arrayShift)

  1. array = [1,2,3,4]
  2. element = [array] call BIS_fnc_arrayShift

  3. array is now [2,3,4]
  4. element is now 1
复制代码
原始阵列为[1,2,3,4],使用该函数后1便被删除,余下的阵列为[2,3,4],返还值为1.
由于目前该函数还存在一些问题,已经报告至官网。http://forums.bistudio.com/showp ... 92&postcount=42
发表于 2011-12-2 23:59:40 | 显示全部楼层
看看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
发表于 2011-12-3 19:25:55 来自手机 | 显示全部楼层
谢谢分享
 楼主| 发表于 2011-12-5 23:07:01 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-12-5 23:13 编辑

69楼,阵列首添加元素并返还(BIS_fnc_arrayUnShift)

  1. array = [2,3,4]
  2. [array, 1] call BIS_fnc_ArrayUnshift
  3. array2 = [[6,7,8], 5] call BIS_fnc_ArrayUnshift

  4. array is now [1,2,3,4]
  5. array2 is now [5,6,7,8]
复制代码
从官方的例子中我们可以看到该函数可以在一个阵列的首部添加一个元素并返还更新后的阵列。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2011-12-6 01:50:34 | 显示全部楼层
好像很不錯~~~~~
发表于 2011-12-6 09:31:00 | 显示全部楼层
必须支持
 楼主| 发表于 2011-12-6 09:44:36 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-12-6 09:53 编辑

72楼,筛选函数(BIS_fnc_conditionalSelect)

该函数可以筛选出满足条件的阵列并返还,下面是官方的例子:
  1. Example: [[10,0,8,2,6,4], {_x > 5}] call BIS_fnc_conditionalSelect
  2. Returns: [10,8,6]

  3. Example: [[10,true,8,player], {typename _x == "STRING"}] call BIS_fnc_conditionalSelect
  4. Returns: []
复制代码
第一个例子中我们看到凡是大于5的元素全部被筛选了出来,当然在使用变量_x时,原始阵列要全部是数字,否则就会出错。同理,如果使用字符对数字进行筛选也会出错。
第二个例子则是筛选阵列中是否有字符,不过显然没有,所以返还为[]。_x的用法多样,以上只是用法的两种。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
 楼主| 发表于 2011-12-6 23:41:39 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-12-6 23:47 编辑

73楼,返还元素所在数组基数(BIS_fnc_findNestedElement)

该函数会找到所需元素在数组中的基数并返还第一个值。
譬如:
  1. Example:
  2.         _array = [[1, 2], [3, 4]];
  3.         _path = [_array, 3] call BIS_fnc_findNestedElement; //Expected result: [1, 0]

  4.         Parameter(s):
  5.         _this select 0: Array
  6.         _this select 1: queried element (Any Value)
复制代码
第一个为原始数组,第二个为所需查找的元素。


上面这个例子返还值为[2,0]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
 楼主| 发表于 2011-12-11 18:44:31 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-12-11 18:56 编辑

74楼,返还数组元素最大差异值(BIS_fnc_maxDiffArray)

该函数可以返还数组中数字最大差异值,如图例:

当然,目前在1.60RC2中尚存在问题,估计在ARMA2的最终版本中问题会得到解决。
  1. sqf = [[1,2,3]] spawn {array = _this select 0; sleep 1; hint format ["%1",array call BIS_fnc_maxDiffArray];};
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2011-12-11 23:51:16 | 显示全部楼层
{:soso_e181:}学习学习
 楼主| 发表于 2011-12-17 20:12:32 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2011-12-17 20:15 编辑

76楼,返还数组随机指数(BIS_fnc_randomIndex)

该函数可以返还数组随机指数,指数取决于数组中所含元素的数量。
  1. Example: [1,2,3] call BIS_fnc_selectRandom
  2. Returns: 0, 1, or 2
复制代码
非常简单的一个函数,比如我想随机从数组中抽取一个元素就可以直接通过函数来选择。
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-26 10:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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