Project1

标题: 事件如何使用計時器? [打印本页]

作者: 小叮鈴    时间: 2016-2-27 21:23
标题: 事件如何使用計時器?
地圖事件獨立計時 比如我做一顆樹,每10分鐘可以採一顆蘋果,但是不可能每個都去搞計時器在弄變量,這樣會搞死人,有辦法讓每個事情獨立計時器嗎?
作者: 翻滚牛宝宝    时间: 2016-2-27 23:09
公共事件
作者: 小叮鈴    时间: 2016-2-27 23:20
翻滚牛宝宝 发表于 2016-2-27 23:09
公共事件

不董~{:2_248:}
作者: seedj13    时间: 2016-2-28 15:52
我尝试了下,如果不在脚本里加上一个用于采集时间的全局变量数组,只靠公共事件的话,用于采集时间的赋值和运算好像非常麻烦啊,公共事件里对单一的变量赋值后,多个事件同时调用好像会有问题,然后公共事件设置并行处理的等待会让人物无法操作,不知该如何解决
作者: 小叮鈴    时间: 2016-2-28 16:00
seedj13 发表于 2016-2-28 15:52
我尝试了下,如果不在脚本里加上一个用于采集时间的全局变量数组,只靠公共事件的话,用于采集时间的赋值和 ...

是阿 如果數量多 總不能一個一個抓時間設定變量吧{:2_276:}
作者: seedj13    时间: 2016-2-28 16:25
是否可以这样,在脚本里加入一个二维变量,比如$gameTree[地图ID,事件ID],初始值设为0。然后每棵能采集的果树都加上一条标记来做判定是否调用该变量值。然后在每个有可采集果树的地图上,增加一个事件,对整个地图的果树进行判定,比如$gameTree[1,1]=游戏时间分钟数-该变量,当该差值≥10时,树木的独立开关A变为ON,然后新建页面出现条件为独立开关A打开,显示的图片为可采集状态,然后人物把果实采掉之后,设置独立开关A变为OFF,这个变量设置为当时的游戏时间分钟数,这样以后再次满足条件≥10时,可再次采集。
我的基本框架就是这样子的,我试试看能不能写出来。
作者: sonicdonggua    时间: 2016-2-28 17:36
最简单的方法,使用真实时间插件,每到一定时刻获得一次物品。
作者: seedj13    时间: 2016-2-28 21:57
刚才试了试一个办法,可行,但有一些局限性,跟你分享一下:
创建一个事件,两页,第一页为没长果实的树,第二页为长了果实的树
第一页设置并行处理,执行内容:公共事件1;
第二页设置决定键触发,出现条件为独立开关A,执行内容为摘果实的环节,摘好果实后加上脚本:
var time=$gameSystem.playtime();           //读取游戏时间,单位是秒
var varid=this._mapId+this._eventId.padZero(2);          //读取当前的地图ID+事件ID。如1号地图事件5,则返回数据为“105”。
$gameVariables.setValue(varid,time);          //把游戏时间赋值给变量,比如上例105号变量。
//这三条可以并在一起,我是为了看的时候方便一点。
然后设置公开变量1:
添加脚本:
var time=$gameSystem.playtime();
var varid=this._mapId+this._eventId.padZero(2);
var selfid=[this._mapId,this._eventId,'A'];           //返回地图ID,事件ID,'A'表示独立开关A
if((time-$gameVariables.value(varid))>5){        //当时间过了5秒后,此处可根据需要改成你要的10分钟,即600秒
$gameSelfSwitches.setValue(selfid,true);          //设置当前事件的独立开关A为ON
}

另外,因为我用地图ID+事件ID组合的编号来选择变量进行赋值,所以会用到编号非常大的变量,如1号地图5号事件,为105号变量,如果是10号地图20号事件,则需要用到1020号变量,而且不支持地图中的100号及以上事件,否则赋值会出现问题。
综上,如果你的树最多放到20号地图的99号事件,则你必须提前把2099号变量先打开,否则会出错。
作者: seedj13    时间: 2016-2-28 22:02




作者: 小叮鈴    时间: 2016-2-29 09:59
本帖最后由 小叮鈴 于 2016-2-29 10:05 编辑
seedj13 发表于 2016-2-28 22:02


慘了,我地圖超過200號{:2_276:} 變量最多只能9999{:2_276:}

---

話說我剛剛測試之後,沒有反應耶,新建工程也一樣
作者: 小叮鈴    时间: 2016-2-29 11:59
seedj13 发表于 2016-2-28 22:02

併行設定 還是一樣
作者: seedj13    时间: 2016-3-2 11:31

作者: 小叮鈴    时间: 2016-3-2 14:04
var varid=this._mapId+this._eventId.padZero(2);

我把這一段改成

var varid=1+this._eventId.padZero(2);

是不是就可以變成1XX變量了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1