查看: 6627|回复: 12

[已经解决] 事件如何使用計時器?

[复制链接]
梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
回帖
729
发表于 2016-2-27 21:23:00 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

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

×
地圖事件獨立計時 比如我做一顆樹,每10分鐘可以採一顆蘋果,但是不可能每個都去搞計時器在弄變量,這樣會搞死人,有辦法讓每個事情獨立計時器嗎?
梦石
0
星屑
1309
在线时间
904 小时
注册时间
2014-12-4
回帖
349
发表于 2016-2-27 23:09:50 来自手机 | 显示全部楼层
公共事件
回复

使用道具 举报

梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
回帖
729
 楼主| 发表于 2016-2-27 23:20:57 | 显示全部楼层
翻滚牛宝宝 发表于 2016-2-27 23:09
公共事件

不董~{:2_248:}
回复

使用道具 举报

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
回帖
145
发表于 2016-2-28 15:52:45 | 显示全部楼层
我尝试了下,如果不在脚本里加上一个用于采集时间的全局变量数组,只靠公共事件的话,用于采集时间的赋值和运算好像非常麻烦啊,公共事件里对单一的变量赋值后,多个事件同时调用好像会有问题,然后公共事件设置并行处理的等待会让人物无法操作,不知该如何解决
回复

使用道具 举报

梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
回帖
729
 楼主| 发表于 2016-2-28 16:00:52 | 显示全部楼层
seedj13 发表于 2016-2-28 15:52
我尝试了下,如果不在脚本里加上一个用于采集时间的全局变量数组,只靠公共事件的话,用于采集时间的赋值和 ...

是阿 如果數量多 總不能一個一個抓時間設定變量吧{:2_276:}
回复

使用道具 举报

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
回帖
145
发表于 2016-2-28 16:25:24 | 显示全部楼层
是否可以这样,在脚本里加入一个二维变量,比如$gameTree[地图ID,事件ID],初始值设为0。然后每棵能采集的果树都加上一条标记来做判定是否调用该变量值。然后在每个有可采集果树的地图上,增加一个事件,对整个地图的果树进行判定,比如$gameTree[1,1]=游戏时间分钟数-该变量,当该差值≥10时,树木的独立开关A变为ON,然后新建页面出现条件为独立开关A打开,显示的图片为可采集状态,然后人物把果实采掉之后,设置独立开关A变为OFF,这个变量设置为当时的游戏时间分钟数,这样以后再次满足条件≥10时,可再次采集。
我的基本框架就是这样子的,我试试看能不能写出来。
回复

使用道具 举报

梦石
0
星屑
440
在线时间
679 小时
注册时间
2014-3-15
回帖
239

开拓者

发表于 2016-2-28 17:36:05 | 显示全部楼层
最简单的方法,使用真实时间插件,每到一定时刻获得一次物品。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
回帖
145
发表于 2016-2-28 21:57:15 | 显示全部楼层
刚才试了试一个办法,可行,但有一些局限性,跟你分享一下:
创建一个事件,两页,第一页为没长果实的树,第二页为长了果实的树
第一页设置并行处理,执行内容:公共事件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号变量先打开,否则会出错。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
回帖
145
发表于 2016-2-28 22:02:50 | 显示全部楼层



点评

测试过的,一切正常  发表于 2016-3-2 11:03
你有測試過了嗎?  发表于 2016-3-2 00:07
用这种方法的话,你只要建立一个树的事件,然后其他树只要你复制粘贴就行了,具体的图片和能采集到什么果实,再自行编辑  发表于 2016-2-28 22:05
回复

使用道具 举报

梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
回帖
729
 楼主| 发表于 2016-2-29 09:59:06 | 显示全部楼层
本帖最后由 小叮鈴 于 2016-2-29 10:05 编辑
seedj13 发表于 2016-2-28 22:02


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

---

話說我剛剛測試之後,沒有反應耶,新建工程也一樣

点评

你第一页设置并行处理了没  发表于 2016-2-29 10:21
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部