站内搜索

搜索
热搜: 活动 交友 discuz

iFAction 世界需要你的想象力!

关于触发器的实用小技巧【数组变量】

21

主题

46

帖子

581

积分

iF村庄

Rank: 5Rank: 5

积分
581
发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 zimo游戏 于 2025-6-13 14:40 编辑

关于触发器的实用小技巧【数组变量】

问:如何使用触发器创建一个数组?



我也不会。。。。



啊,不会还教程算教程嘛?


算,或者不算吧


废话少说,直接进入正题


我们应该都使用过触发器吧


大佬!我不会使用。。。。


没关系,打开游戏引擎iFAction就会了



言归正传,在变量设置界面,

我们通常只能设置3数据类型的变量:[数值][字符串][开关]

(一不小心吧这三位老大哥装进数组里了,逃~)



如果,有一天,你的变量不够用了怎么办?



啊? 变量还有上限?那我的史山触发器怎么办


这时候,合理的规划变量,就成为了重中之重


所以,发明人:ZIMO

发明项目:数组使用小技巧



(再此处应该配个龙图)


大的要来了

的要来了

要来了

来了


.











玛德,我看你是拉了一坨大的,恼!!!









一键三连,谜底揭晓



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
放置游戏开坑中

21

主题

46

帖子

581

积分

iF村庄

Rank: 5Rank: 5

积分
581
 楼主| 发表于 3 天前 | 显示全部楼层
基础篇


RV.GameData.value[0]


这是一个神奇的代码,喝了它有神奇的力量,为了你,我变成狼人模样。。。。


难道,这就是数组吗?


no,no,no


这个只是一个变量而已


虽然它屁股也有数组


RV.GameData.value[RV.GameData.value[0]]


这样看得懂不?

好像再套娃

是的,这也是一种用法


[]括号里的0,代表变量列表第0个变量的值

例子:

RV.GameData.value[1],[]括号里的1,代表变量列表第1个变量的值

RV.GameData.value[100],[]括号里的100,代表变量列表第100个变量的值


而第二种


RV.GameData.value[RV.GameData.value[0]]


我把它拆开来看

RV.GameData.value[变量0号的值]


这有什么用呢?

好像没什么用


当我要100个变量同时改变,应该怎么写触发器?

RV.GameData.value[1] = 10

RV.GameData.value[2] = 10

RV.GameData.value[3] = 10

RV.GameData.value[4] = 10

RV.GameData.value[5] = 10

。。。

RV.GameData.value[99] = 10

RV.GameData.value[100] = 10

太累了吧。   

这时

RV.GameData.value[RV.GameData.value[0]]

派上用场了,我们可以这样写

循环

条件分歧:RV.GameData.value[0] >=100

RV.GameData.value[0] =0

否则

RV.GameData.value[RV.GameData.value[0]] =10

RV.GameData.value[0] +=1

是的没错,循环它100次,赋值100个变量


也许还有别的用法,等待聪明的你探索吧



放置游戏开坑中

21

主题

46

帖子

581

积分

iF村庄

Rank: 5Rank: 5

积分
581
 楼主| 发表于 3 天前 | 显示全部楼层
进阶篇

RV.GameData.value[RV.GameData.value[0]]

我们已经见过面了

其实,我们还可以加点逻辑计算


RV.GameData.value[RV.GameData.value[1]+RV.GameData.value[2]]


看起来复杂度提升了

只不过是加了个计算

可视化

RV.GameData.value[1号变量的值+2号变量的值]

甚至

RV.GameData.value[RV.GameData.value[1],RV.GameData.value[2],RV.GameData.value[3],RV.GameData.value[4],RV.GameData.value[5]


恭喜你创建了一个数组

虽然这没什么

放置游戏开坑中

21

主题

46

帖子

581

积分

iF村庄

Rank: 5Rank: 5

积分
581
 楼主| 发表于 3 天前 | 显示全部楼层
操作顶级篇

用触发变量声明一个数组

切记 切记 切记

一定要声明

RV.GameData.value[2] =  []


现在你将2号变量声明了成为一个数组,元素为空



RV.GameData.value[2] =  [1,2,3,4,5,6]


现在你将2号变量声明了成为一个数组,元素为[1,2,3,4,5,6]


RV.GameData.value[1] = RV.GameData.value[2][0]


读取RV.GameData.value[2]的第1个元素并且赋值到RV.GameData.value[1],值为1


为什么要重第0开始,我也不知道为什么



现在反过来写



RV.GameData.value[1] = 99

RV.GameData.value[2][0] = RV.GameData.value[1]


RV.GameData.value[1]的值,赋值到RV.GameData.value[2]的第0位,值为[99,2,3,4,5,6]


切记,不要这样赋值

RV.GameData.value[1] =  []

RV.GameData.value[2] =  []

RV.GameData.value[2] =  RV.GameData.value[1]


这样好像值表面上,被赋值了,实际上,他们似乎绑定在一起了


正确做法


RV.GameData.value[1] =  [1,2,3]
RV.GameData.value[2] =  [3,2,1]
RV.GameData.value[3] =  0

循环

条件分歧:

RV.GameData.value[3]>=数组长度(相当于循环的次数)

RV.GameData.value[3]=0

中断循环

否则

RV.GameData.value[2][RV.GameData.value[3]] =  RV.GameData.value[1][RV.GameData.value[3]]

RV.GameData.value[3]+=1

结果

RV.GameData.value[2]的元素为[1,2,3]



最后,以上代码,需要写在触发器指令,脚本选项中,循环指令可用触发器

所以这是一个开拓性的触发器逻辑拓展,再提升就完全可以用脚本写

以上教程,适用于触发器玩家,这也是使用iFActin 的意义

后续可能更新

触发器的数据库教程,以及触发器面向对象事件



未完待续



放置游戏开坑中
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
QQ群:977585123
iFAction下载
Windows客户端
反馈
意见建议
iFAction

iFAction

京ICP备15053274号-1

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.