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

Project1

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

[讨论] 自制纯事件循环副本任务系统,请教个功能[图示,范例]

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
139 小时
注册时间
2011-7-18
帖子
208
跳转到指定楼层
1
发表于 2011-8-21 11:39:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 iten1017 于 2011-8-21 20:25 编辑

大家好~~我是个完全靠事件,的脚本小白……由于制作需要,要做多个可以重复进入的副本,并作为任务。
循环副本任务所需并已经达成的功能:

1:接取任务并自主决定何时进入副本。
2:接取后可随意查看或放弃任务。
3:离开副本,下次进入时副本会初始化。
4:完成不同副本会有相应奖励,完成后还可以再次接取进入。
5:消除未接任务却可以领奖励,进入副本,放弃任务后还能领奖励,进入副本或者副本无法初始化等小bug。
6:精简变量,不同副本公用变量作为开关,并可以循环使用。
范例工程: 循环式副本.rar (194.49 KB, 下载次数: 831)



需要解决的问题:
PS:这个工程只是临时的骨架,主游戏制作中每个副本都有不同的剧情,不同的结构,不同的玩法和分歧,而且也有一定的长度。
所以要使副本初始化,因为不会脚本,用的纯事件,所以全是用变量操作,独立开关因为无法复原(在开关决定的事件页如果设置关闭开关操作,有可能会在同一次任务中循环。如果用条件分歧,因为不能用自动执行,又会变成触发式还原。)所以独立开关基本不能在副本模式中使用。而当副本剧情复杂,解谜机关多样的时候,没有独立开关就意味着需要大量占用公用变量。【很占内存】,最后离开副本时所需要的还原操作也会比较繁杂。
我也考虑过,如果使用独立开关,在每个事件的最优先一页,做个当某个公用开关为on时自动自动关闭独立开关并跳回第一页的事件页,然后关闭该开关,这样,一个地图的初始化可以用一个开关完成。但当地图多的时候……换地图时该开关已经为off,这样就需要另外一个开关。【因为如果主动触发的话,难保在同一次任务中出现事件错乱循环什么的……至今没有想到完全之策】地图一多,又是一个大数据,这样任务结束后的批量处理会很麻烦,特别是剧情中有打量分歧的情况下,所以独立开关基本就不能用了……

所以,我想实现的功能是,当放弃任务,或者完成任务触发的时候,所有有关副本的地图可以一次性初始化。
简单而言就是地图中一次性所有事件开关变量初始化。简化的公共事件也好,脚本【我看不太懂脚步额最好有用法注释和注意事项】也好……我只想简单点实现这个功能。

谢谢了~~~那个骨架工程谁要用的就拿去研究吧……���dsu_plus_rewardpost_czw
半途而废的游戏,等于0。

令人怀念的新手处女作《梦之祭1.01》,挂着跑……
http://rpg.blue/thread-194089-1-1.html

Lv2.观梦者

梦石
0
星屑
265
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2011-8-21 12:06:02 | 只看该作者
本帖最后由 亿万星辰 于 2011-8-21 12:06 编辑

简单一点的方法可以把副本中使用的变量、开关都限定在一个范围内,比如变量都用100~300,开关都在100~200之间,这样就可以使用事件里的统一操作直接对这个范围内的变量和开关统一关闭,而对于独立开关,也可以用事件里的脚本来实现统一控制,不过还是比较繁琐的,因为还涉及到了使用到的地图~

点评

可以实现,虽然有些费脑细胞,需要反复测试检查。罢了,就先这个样子用着…… 以后遇到问题再说。  发表于 2011-8-21 14:13
副本之间不同的变量和开关毕竟是少数,可以尝试单独来控制~大致就是要做到从副本里出来以后,外面的时间一切如故,我感觉事件似乎还是可以实现  发表于 2011-8-21 13:50
统一操作的方法我已经在用了,做成个一个公共事件。但不同副本的时候有些变量开关会有区别。所以想找记忆地图初始状态,还原状态的功能。  发表于 2011-8-21 12:18
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
77 小时
注册时间
2011-7-31
帖子
142
3
发表于 2011-8-21 14:53:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
139 小时
注册时间
2011-7-18
帖子
208
4
 楼主| 发表于 2011-8-21 15:06:13 | 只看该作者
|.мīss.чou 发表于 2011-8-21 14:53
这个问题我很早就解决了! 当初是为了做一个传送宝石而想出的纯事件处理!而你说的把任务取消 然后重置所有 ...

那啥,我都是用变量指定的,如果用物品,在我这里有50多个副本,每个副本有0~4个支线的情况下,要用物品实在太耗内存。
你下范例来看,我这里的原理是:
接取任务时候,会得到任务单[有个调用物品查看的公共事件],同时,接不同的任务,会修改任务变量,如任务1变量=1,任务2变量=2……然后进入任务的时候,记忆地图以及坐标,变量1的时候进入1副本,2的时候进入2副本……任务单在身不可接其他任务。放弃任务任务变量=0,失去任务单,读取记忆坐标【这个无关主题,范例里没做,游戏工程里有一整套】重置副本设计变量号50-100.调出公共事件的时候,变量1显示任务1等等,你看完范例再看主题看看怎么解决吧。你说的方法是我最早的时候抛弃了的。
半途而废的游戏,等于0。

令人怀念的新手处女作《梦之祭1.01》,挂着跑……
http://rpg.blue/thread-194089-1-1.html
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
77 小时
注册时间
2011-7-31
帖子
142
5
发表于 2011-8-21 15:07:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
265
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

6
发表于 2011-8-21 15:19:48 | 只看该作者
想关闭独立开关的话可以用事件页里的脚本功能
  1. $game_self_switches[[[地图ID,事件ID,独立开关名字]]]=true/false
复制代码
如要关闭1号地图2号事件的独立开关A
  1. $game_self_switches[[1,2,"A"]]=false
复制代码
但是记住在所有的独立开关操作完毕后请加一句
  1. $game_map.need_refresh = true
复制代码

点评

><右下角只有举报和使用道具。  发表于 2011-8-21 20:20
都在右下角  发表于 2011-8-21 18:03
对了,怎么查看地图ID呢?谢谢回答……  发表于 2011-8-21 15:34
谢谢,看懂了[中括号要几重?]怎么样认可真确答案?【这是讨论帖变成请教贴,奖励怎么弄啊泪奔……】 再问个:有木有批量处理事件号的表达?  发表于 2011-8-21 15:32
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-6 04:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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