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

Project1

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

[有事请教] 请问如何用变量操作公共事件?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
234
在线时间
19 小时
注册时间
2022-3-15
帖子
9
跳转到指定楼层
1
发表于 2022-4-18 20:16:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  各位大佬,感谢您的驻足。这是我个人的一点小问题。
  我游戏我决定以某个变量作为主线推动的标准。就是希望可以当某个变量达到时,无论玩家在哪里,都会主动触发一段剧情。
  我最先想到的是公共事件,不过公共事件只有开关……
  所以想问一下各位大佬,请问有办法做到吗?没有的话只能每个地图挨个粘贴吗?

Lv4.逐梦者

梦石
0
星屑
9852
在线时间
1884 小时
注册时间
2020-1-2
帖子
1089
2
发表于 2022-4-18 20:35:37 | 只看该作者
那就开关开启内容由分支条件判断变量
B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
197
在线时间
25 小时
注册时间
2021-12-17
帖子
9
3
发表于 2022-4-19 00:25:07 | 只看该作者
触发条件选并行处理,然后执行内容第一句就是if变量=你想要的。然后分支里面写剧情事件。结束分支之前再加一个改变这个变量的语句避免反复触发。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11175
在线时间
2066 小时
注册时间
2013-6-10
帖子
1516
4
发表于 2022-4-19 08:16:07 | 只看该作者
嗯,以上二位言之有理,令人赞同
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
234
在线时间
19 小时
注册时间
2022-3-15
帖子
9
5
 楼主| 发表于 2022-4-20 10:02:11 | 只看该作者
xiamumomo 发表于 2022-4-18 20:35
那就开关开启内容由分支条件判断变量

  谢谢大佬,我去试试。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
234
在线时间
19 小时
注册时间
2022-3-15
帖子
9
6
 楼主| 发表于 2022-4-20 10:14:16 | 只看该作者
米诺松鼠 发表于 2022-4-19 00:25
触发条件选并行处理,然后执行内容第一句就是if变量=你想要的。然后分支里面写剧情事件。结束分支之前再加 ...

谢谢大佬
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2882
在线时间
555 小时
注册时间
2021-8-13
帖子
625
7
发表于 2022-4-20 10:20:21 | 只看该作者

触发条件并行处理,开关选你想要的那个
例如我这个图里的,就是开关#0041变为ON之后自动响起电话铃

如果你希望事件只执行一次就中止,可以在事件里加上一行
开关操作#XXXX = OFF
夜空晴朗,星光璀璨,我只顾低着头走,看不见半点别人嘴上说的美丽。
———————————————————
> 不是作家
> 不是孤岛的概念DEMO
> 想和妳一起过生日
> 一名虚无主义者的婚礼
> 杀之不尽死而复生无止无终不可阻挡
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1896
在线时间
603 小时
注册时间
2022-7-5
帖子
108
8
发表于 2022-8-16 13:54:03 | 只看该作者
本帖最后由 bleen 于 2022-8-16 14:00 编辑

我现在遇到同样的问题,受教了受教了

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7247
在线时间
474 小时
注册时间
2021-12-4
帖子
513
9
发表于 2022-8-23 22:07:32 | 只看该作者
Game_Map.prototype.requestRefresh = function() {
    this._needsRefresh = true;
};
官方的所有事件页都是通过这个函数来刷新的(比如改变行走图),这个函数会在【开关/变量/独立开关/队员组成/道具数量】变化时自动执行。
既然公共事件的自动触发只能用开关而不能用变量,那我们可以在这个函数里判断变量并且根据变量去捆绑性地修改开关,比如这样:
Game_Map.prototype.requestRefresh = function() {
    if ($gameVariables.value(114) >= 514) $gameSwitches._data[810] = true; // 当114号变量的值大于等于514时,同步自动开启810号开关。
    this._needsRefresh = true;
};
那么你就可以把公共事件的条件设为810号开关,但实际上通过114号变量去触发了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 03:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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