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

Project1

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

[已经解决] 〓一些条件判断可以简单的用事件完成么?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2012-11-16
帖子
80
跳转到指定楼层
1
发表于 2014-6-8 00:12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

将3个巨石移动到上边3个红色位置
开门
3个红色位置上的巨石在任何时候在缺少巨石的时候都是关门的
也就是之前门开了但是把巨石移开后门会重新关闭
这样的判断可以简单的用事件完成么?

目前尝试过变量事件判断还有开关
还是不得要领

点评

事件太麻烦,直接给你个脚本。稍稍研究下,应该就懂了  发表于 2014-6-8 00:39

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10073
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2014-6-8 00:33:04 | 只看该作者
本帖最后由 VIPArcher 于 2014-6-8 22:38 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ☆ Custom Adventure 踩踏/置物判断
  3. # -- Last Updated: 2014.6.3
  4. # -- by Moy
  5. # -- 转载请保留以上信息
  6. #==============================================================================
  7. #   本脚本判断一个在人物下层的事件是否被其他事件/角色踩踏
  8. #   对本事件使用只需要在分歧脚本中使用get_character(0).stepped_on?即可。
  9. #   判断别的事件请自行获取实例后使用。
  10. #==============================================================================
  11. # ■ Game_Event
  12. #==============================================================================
  13. class Game_Event < Game_Character
  14.   #--------------------------------------------------------------------------
  15.   # ● 判断本事件是否被其他事件/角色踩踏
  16.   #--------------------------------------------------------------------------
  17.   def stepped_on?
  18.     stepped_by_events?(@x,@y) || stepped_by_player_characters?(@x, @y)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 判断某位置是否被其他事件踩踏
  22.   #--------------------------------------------------------------------------
  23.   def stepped_by_events?(x, y)
  24.     $game_map.events_xy_nt(x, y).any? do |event|
  25.       event.normal_priority?
  26.     end
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 判断某位置是否被主控角色踩踏
  30.   #--------------------------------------------------------------------------
  31.   def stepped_by_player_characters?(x, y)
  32.     @priority_type == 0 && $game_player.collide?(x, y)
  33.   end
  34. end
用这个脚本
3个开关都分歧条件get_character(0).stepped_on?

门哪里就分歧当变量X  >=3时开门
又传了个工程,事件和脚本方法都有,自己看着做吧。
呼唤@Sion  

Project2.rar

1.43 MB, 下载次数: 136

应该符合你的要求了

事件 和脚本.rar

1.43 MB, 下载次数: 155

你自己看吧

点评

恩!反复研究你的脚本和事件后!发现那个简单版纯事件是最适合的!事件简单!并且万能!不怕更改按钮位置等各种情况!其他的太量身定做了!稍改则变  发表于 2014-6-8 16:05
又给了你一个工程,自己看看。我是觉得很麻烦就是了  发表于 2014-6-8 11:33
请讲讲事件该如何做?我看看到底有多麻烦....... 脚本还是向后拖一拖  发表于 2014-6-8 08:43
@moy 写的。注意设置为“在人物下方”以及“允许穿透(为了其他事件能推上去)  发表于 2014-6-8 00:37

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
342
在线时间
377 小时
注册时间
2013-1-30
帖子
219
3
发表于 2014-6-8 00:33:35 | 只看该作者
这个参考推箱子事件移动石头,然后读取并判断石头是否被移动到某三个位置,在任何一个位置时打开一个开关,否则关闭开关,三个开关都打开时门打开

点评

你说的参考在哪里? 然后是判断石头的所在位置么?那么如何判断石头位置?或者说如何判断一个图的位置?  发表于 2014-6-8 08:44
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41103
在线时间
7568 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

4
发表于 2014-6-8 09:08:16 | 只看该作者
可以推动每个石头的时候判断一下这个石头的地形标记之类,
把按钮下面的地形标记设置为特殊的数字,
如果地形标记为预计标记,则某变量+1,如果到3就开门。

点评

脚本距离你不远,只是辅助判断而已,好好使用可以减轻你很多功夫。其实事件只是把脚本更直观,更便捷地给你设置而已。  发表于 2014-6-8 15:28
没有不满 只是脚本距离我远 事件距离我近 想先从我更熟悉的地方学习  发表于 2014-6-8 13:57
楼主不想要脚本的样子……  发表于 2014-6-8 10:20
moy
你对我那脚本有什么不满吗← ←(雾  发表于 2014-6-8 10:19
推开的时候-1  发表于 2014-6-8 09:11

评分

参与人数 1星屑 +15 收起 理由
·雾逝者· + 15 壮哉我大地形标记!

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
290
在线时间
3599 小时
注册时间
2012-2-29
帖子
3385

黄金编剧

5
发表于 2014-6-8 11:44:03 | 只看该作者
本帖最后由 ·雾逝者· 于 2014-6-8 11:49 编辑

有个很简单的办法

3颗巨石均有两个事件页,平时放在事件页1上,开关01或02打开或变量01=1后跳到事件2(取决于是哪颗巨石)
事件页一:判定方向,推动,判断石头与按钮XY坐标,如相同则开关01或02打开,或变量01=1(取决于是哪颗巨石)
事件页二:判定方向,推动,开关01或02关闭,或变量01=0(取决于是哪颗巨石)
门也有2个事件页,平常在事件页1,开关01与02同时打开,同时变量01=1时调到事件页2
事件页1:空白,行走图为关闭
事件页2:接触场景移动,行走图为开启

如此,只有同时3颗巨石都在按钮上,门才会开启
有一颗离开则关闭一个条件,门也会立刻关闭
共用到2开关 3变量,制作时间约为3-6分钟

——————
唔,看了下LS,似乎LZ对XY坐标判定不太熟悉,于是来贴教程
首先,变量02与03,可以分别命名为:02"巨石" 03"按钮"
变量02=事件页-变量操控-角色-巨石1-X坐标
变量03=事件页-变量操控-角色-按钮1-X坐标
条件分歧:若变量02=03,则
变量02=事件页-变量操控-角色-巨石1-Y坐标
变量03=事件页-变量操控-角色-按钮1-Y坐标
条件分歧:若变量02=03,则
开关01=ON
↑此时视为巨石与按钮重合,因其XY坐标一样
简化 高效 简约 便捷,为用户体验而思考。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

梦石
0
星屑
2315
在线时间
5539 小时
注册时间
2011-1-10
帖子
6619

青铜编剧史诗剧作家剧作品鉴家

6
发表于 2014-6-8 13:15:15 | 只看该作者
并行处理事件用6个变量赋值三个球的XY坐标,条件判断当所有球的Y坐标等于按钮Y坐标的情况,再分别讨论当球的X坐标等于三个按钮的X坐标的情况,条件全部符合就打开开关。

如果要加上按钮特效,那么就把一个球推入三个按钮的情况全部讨论了吧。
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

7
发表于 2014-6-8 14:34:32 | 只看该作者
说实话因为一想就觉得很麻烦因此我没考虑完全用事件做过
总之你需要用到这个获取指定位置的信息
首先清零使用到的变量
获取3个石头的xy,然后分别获取这3个xy位置的地形标志/区域ID(我推荐用区域处理)
如果是指定的地形标志/区域ID,则给某个变量+1
以上执行全部完毕后,判断该变量是否为3,为3则打开门

点评

石头里面的语句很简单的。就是一些判断。想一下逻辑就懂了 再看看应该就懂了  发表于 2014-6-8 17:01
你知道么,脚本代码是挺少,英文也看的懂.但是我却不知道需要改变的时候我要做些什么.比如6个按钮呢.而且我看石头那里也要填写代码.似乎需要对应啊  发表于 2014-6-8 16:35
moy
变量比较方便啦=-=,开关比较适合逻辑上转不过弯的  发表于 2014-6-8 16:34
哎 麻烦死了。楼主你直接用@moy 那个脚本不就简单明了?~\(≧▽≦)/~  发表于 2014-6-8 15:00
变量不好,3个开关 分别对应一个石头,位置正确开关打开,否则关上。3个都打开则开门。  发表于 2014-6-8 14:58
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

8
发表于 2014-6-8 16:45:19 | 只看该作者
姑且给你贴一下我自己的工程里使用到的情况吧。
和那个脚本略有不同的是我是直接使用的其中不需要事件要求的,因为我偷懒没给开关放事件(因为我不打算设置动画效果
并且由于不想额外设置开关,我直接用脚本改了“门”的独立开关,也就是最左边那个红箭头
于是一共4个事件,第一个是并行判断,剩下3个是完全一样的石头
判断事件:

石头:

全景图

点评

我用了10个开关1个变量和100多个事件做完了~ 呼~要是能有个还原功能就好了!我再开个帖问问还原~  发表于 2014-6-9 15:28
moy
然后不占用变量也不占用开关的机关就完成了- -bbb  发表于 2014-6-8 16:49
moy
哦,为防误解我说明下,使用by_event还有一个原因是我根本不打算让人踩上去有效。  发表于 2014-6-8 16:48

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 13:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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