设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2188|回复: 3
打印 上一主题 下一主题

[讨论] 关于牧场养殖事件实现。

[复制链接]

Lv2.观梦者

梦石
0
星屑
775
在线时间
924 小时
注册时间
2006-6-26
帖子
1529
跳转到指定楼层
1
发表于 2016-2-23 11:35:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
前提:没有范例工程, 基于“时间系统”才能实现。

前言:
老实说,从我读书毕业以后,大脑就自动排除出了几乎所有的数学知识。你现在让我做一道二元方程,我也不会。所以这种逻辑运算对诸位来说算是简单,但对我来说,难上加难,以下的成果,我想了两天才想明白,个人觉得应该没什么漏洞了。发上来,也是希望那位高手帮我看看,看还有没有什么漏洞。(PS:这也是我学不会和不想学脚本的原因……)

先上图!

事件第一页:(放出奶牛种!)PS:在奶牛圈里面放一个奶牛行走图,把条件设置为“奶牛1”开关打开时显示,即可。


事件第二页:(喂养饲料)定义 “养殖-日”和“日”。就是将变动的“日期”喂养饲料时的变量值,记录到“养殖-日”这个变量里面去,以后有用……(养殖-月、养殖-年同理)喂养方式:一天一喂,X天后,生产。


事件第三页:(这里有点复杂了,下面再说!)


事件第四页:(收获,)我写错了,是“奶牛生产了牛奶才对。”






好,接下来重点讲讲第三页,这也是我苦思冥想很久后,才完善的。


首先,因为“时间系统”(很多这样的脚本,自行搜索。)的关系,变量“日”是不断在变化的。
那么我举例,
你1月1日,种下奶牛(第一页),然后喂养饲料(第二页)。此时,“1”这个变量值,被记录到了“养殖-日”这个变量里,而变量“日”还在继续行走。OK
第二天,1月2日。这个时候“日”的变量值变成了“2”,而“养殖-日”的变量值,仍然是“1”。所以只要“日”大于“养殖-日”我们就可以判定,这个时候已经是过了一天了。可以再次喂养饲料了。
关于变量“日”不等于“1”的设置:
原因是因为,如果你是1月30日喂养的饲料,那么第二天应该是2月1日。所以这个时候,“养殖-日”记录的是“30”这个数值,而“日”却变成了“1”。所以“日”不等于“1”的时候,可以使用上述处理,如果日等于“1”的时候,那就说明,已经翻月了,那么这个时候,必须处理成“养殖-日”大于“日”才能判定出,是否已经又过了一天。

那么为什么我们还要去记录“月”和“年”的变量值呢?
这也是我昨晚想到的BUG,所以今天反复再思考后,这样加上去的。估计应该是正确的。
那么就是,
并行处理的事件,必须要在人物进入这个地图时,才开始执行。也就是说,如果玩家在其他地图随便晃悠,即便是“日”已经大于“养殖-日”了,也不会执行这个事件。
那么这里就有个问题了,假设玩家在1月30日喂养了一次牲畜。 这个时候的变量情况是 ,日=30  养殖日=30。过了一天,就是2月1日。这个时候 日=1  这个时候应该执行 条件分歧,当 日=1的时候的判定。这就合情合理。 但是如果说,2月1日这一天, 玩家没有进入过牧场,也就是说事件页 第三页的并行处理事件没有被触发。直到2月2日。
这个时候,日就≠1了,日=2 了。 那么他又会判定成,日≠1 的条件分歧。这就无法判定了,因为这个时候,养殖日=30  日=2   养殖日分明大于日。 但是 日不等于1下面的条件分歧是,养殖日小于1时。所以这个时候就必须“月”来帮忙。
之前记录的养殖月=1(1月30日饲养的)现在的月=2(2月2日甚至以后)所以当养殖月小于月的时候,判定再判定一次,表示已经过了一个月了,无论你的日是在那个值上面,都应该被弹回饲养那里。
同理,当月=12时,就要开始翻年了,如果一个玩家,饲养一次后,一年以后再饲养,就必须借助“年”的帮助。才能判定下来。

这就是我的理论

求更改更新。
我是不是可以签名了?

Lv1.梦旅人

梦石
0
星屑
61
在线时间
696 小时
注册时间
2011-1-4
帖子
208
2
发表于 2016-2-28 13:21:04 | 只看该作者
那么如何让母牛生下小牛呢,也就是怎样创造一个新的事件?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
775
在线时间
924 小时
注册时间
2006-6-26
帖子
1529
3
 楼主| 发表于 2016-2-28 21:28:31 | 只看该作者
cjlzbb 发表于 2016-2-28 13:21
那么如何让母牛生下小牛呢,也就是怎样创造一个新的事件?

我想了下,这个其实和最后“收成”的那个事件很相似。 你想想看。最后一页时间(收成)当“奶牛养殖1”=8时(也就是喂养了8次,过了至少8天。)就激活收成。。如果是你想设置成 连续八天正常饲养,即可生小牛。那么你就 再创一个事件页。设置成生小牛, 或者直接设置成可以收成一个“奶牛种” 然后把条件设置成当变量“奶牛养殖1”=8 时, 就好了。 或者不需要多创建一个事件页,,直接在最后一页的事件页(收成那里。)多设置一个“得到物品”“奶牛种”就可以。
我是不是可以签名了?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
696 小时
注册时间
2011-1-4
帖子
208
4
发表于 2016-2-28 21:30:51 | 只看该作者
1243852 发表于 2016-2-28 21:28
我想了下,这个其实和最后“收成”的那个事件很相似。 你想想看。最后一页时间(收成)当“奶牛养殖1”=8 ...


奶牛种。。。囧

没有办法创建新的事件吗
估计只能放多几个空白事件在地图里了。。

点评

肯定的,除非用脚本。我是不会写的了。  发表于 2016-2-29 09:46
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-2 17:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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