Project1

标题: 关于主角不在的地图,事件仍然执行 [打印本页]

作者: r403736524    时间: 2014-8-17 16:57
标题: 关于主角不在的地图,事件仍然执行
游戏中主角不在的地图,事件都是不执行的吧?
我想做一个自动经商的商队事件,让这个事件不管主角在不在的情况下都执行事件的内容。
就是一个事件从A地图到B地图在到C地图,然后返回,主角在D地图,当事件返回到A地图指定地点时,主角获得金钱、武器之类的。。
其中无论主角是否经过ABC地图,事件都一直执行事件中的内容  (也就是说,例如事件从B地图往C地图传送点走到一半的时候,主角进入B地图,事件还是在B地图往C地图传送点一半的地方走,不是从B地图传送点往C地图传送点走。不知道说清楚没有。。)

作者: taroxd    时间: 2014-8-17 16:58
本帖最后由 taroxd 于 2014-8-17 17:00 编辑

公共事件-并行处理

至于追逐战,参考这个:https://rpg.blue/forum.php?mod=viewthread&tid=366833
作者: r403736524    时间: 2014-8-17 17:07
taroxd 发表于 2014-8-17 16:58
公共事件-并行处理

至于追逐战,参考这个:https://rpg.blue/forum.php?mod=viewthread&tid=366833 ...

看来我说没说清楚。。
我说的是主角不在的地图,地图内的事件仍然执行,不是一个事件追着主角跑,而是一个事件在多个地图内走来走去,其中,无论主角在不在都执行。

你说的那个追逐战是主角在当前地图的情况下事件才会执行。
谢谢你的回答
作者: taroxd    时间: 2014-8-17 17:10
本帖最后由 taroxd 于 2014-8-17 17:11 编辑
r403736524 发表于 2014-8-17 17:07
看来我说没说清楚。。
我说的是主角不在的地图,地图内的事件仍然执行,不是一个事件追着主角跑,而是一 ...


并没有问题啊。

所谓“在多个地图内走来走去”,就是可以用每一个地图里都放一个事件进行模拟的。

你可以用一个变量记录当前事件的位置。然后每个地图的对应事件如果符合条件“当前位置在地图中”的话就出现在当前的位置中。

你的要求并非需要真正的“一个事件在多个地图里执行”,不是吗。
作者: r403736524    时间: 2014-8-17 17:20
taroxd 发表于 2014-8-17 17:10
并没有问题啊。

所谓“在多个地图内走来走去”,就是可以用每一个地图里都放一个事件进行模拟的。

确实,我需要的并不是一个事件在多个地图里执行,
我需要的是主角不在地图的情况下事件仍然执行,
例如我需要一个事件从A地图往B地图走,然后在从B返回A,
当主角在A地图的时候,事件会从当前位置往A地图的传送点移动,
那么当主角只在A地图,而不往B地图走的时候,那么这个事件要怎么从B返回A呢?

谢谢你的耐心
作者: 千夙    时间: 2014-8-17 17:32
那你需要一个计时器,什么时候执行什么
作者: 喵呜喵5    时间: 2014-8-17 17:34
根据游戏进行的时间和事件移动一张地图所需要的时间来计算事件的位置,没次进入A、B、C地图的时候都执行这样的一次计算,然后设置事件的位置设置主角是否获得道具XXX

或者就这样:把所有的地图都合并到一起,主角在地图上移动只是在同一张地图的不同位置来回切换
作者: taroxd    时间: 2014-8-17 17:36
本帖最后由 taroxd 于 2014-8-17 17:47 编辑
r403736524 发表于 2014-8-17 17:20
确实,我需要的并不是一个事件在多个地图里执行,
我需要的是主角不在地图的情况下事件仍然执行,
例如我 ...


你可以用三个变量去“模拟”事件的位置

第一个是地图ID(设为变量1)
第二个是X坐标(设为变量2)
第三个是Y坐标(设为变量3)

并且在一个并行处理的公共事件中,对事件的位置进行更新
比如说这样的事件。打开条件为开关1(角色与事件不在一个地图)
  1. 注释:每 1 秒 移动一次
  2. 等待 60 帧

  3. 获取角色的地图ID -> 变量 4

  4. 注释:根据玩家的位置模拟事件的移动,即更改变量1,2,3的值。这需要你自己来完成

  5. 注释:事件“移动”到了角色所在的地图
  6. 分支条件:如果变量1 等于 变量4
  7.   开关1 关闭
  8.   设置事件位置 事件 变量2 变量3
  9. 结束
  10.   
复制代码
另外,每次角色切换地图前后运行这样两个公共事件:

  1. 注释:移动前执行
  2. 获取角色的地图ID -> 变量 4

  3. 注释:角色移动前和事件在同一张地图
  4. 分支条件: 变量1 等于 变量4

  5.   注释:没有这一条事件指令。这一句话由你自己实现。
  6.   获取事件的位置 -> 变量2, 变量3
  7. 结束
复制代码


  1. 注释:移动后执行
  2. 获取角色的地图ID -> 变量 4

  3. 注释:角色移动后和事件在同一张地图
  4. 分支条件:变量1 等于 变量4
  5.   开关1 关闭
  6.   设置事件位置 事件 变量2 变量3
  7. 否则
  8.   开关1 打开
  9. 结束


复制代码

作者: r403736524    时间: 2014-8-17 17:50
喵呜喵5 发表于 2014-8-17 17:34
根据游戏进行的时间和事件移动一张地图所需要的时间来计算事件的位置,没次进入A、B、C地图的时候都执行这 ...

这个方法确实可以,但是地图大的话。。。。不知道会有多卡。。。
作者: r403736524    时间: 2014-8-17 18:02
taroxd 发表于 2014-8-17 17:36
你可以用三个变量去“模拟”事件的位置

第一个是地图ID(设为变量1)

这个方法很棒,
有没有比较简单一点的,
例如刷新某个地图,或者某个地图的事件?
如果没有我就用这样方法吧。


感谢
作者: r403736524    时间: 2014-8-17 18:09
taroxd 发表于 2014-8-17 17:36
你可以用三个变量去“模拟”事件的位置

第一个是地图ID(设为变量1)

用公共事件是很方便,要是我设置多个这样的事件不是很麻烦么。。。
还是谢谢你啦,就用这个方法吧。

作者: 我心飞扬    时间: 2014-8-18 06:56
我的理解,楼主是不是要做大航海那样的游戏?不管主角在哪个地图在做什么,竞争者们都做着自己的事情?
作者: r403736524    时间: 2014-8-18 09:43
我心飞扬 发表于 2014-8-18 06:56
我的理解,楼主是不是要做大航海那样的游戏?不管主角在哪个地图在做什么,竞争者们都做着自己的事情? ...

正解
作者: 我心飞扬    时间: 2014-8-19 07:26
r403736524 发表于 2014-8-18 09:43
正解

做大航海游戏一直是我的梦想,可惜鄙人也是一个脚本盲。




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