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

Project1

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

[RMVX发布] 新手教程-区域控制事件

[复制链接]

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6137
在线时间
6591 小时
注册时间
2007-12-16
帖子
4501

贵宾

跳转到指定楼层
1
发表于 2010-10-4 13:17:55 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
既然这几天夕阳没有功夫,我就发一个自己的新手教程吧。

这次是利用区域控制事件开始

其实,这个用事件的条件分歧就可以做到了,但是,如果侍庞大的地图和大量的坐标哪种方法就显得很废柴

用VX默认的事件就可以做到大量的区域发生事件了

首先要在Game_Player加入以下脚本
  1.   #--------------------------------------------------------------------------
  2.   # ● 判断当前人物所在区域id
  3.   #--------------------------------------------------------------------------
  4.   def area_id
  5.     for area in $data_areas.values
  6.      if in_area?(area)
  7.        return area.id
  8.      end
  9.    end
  10. end
复制代码

以上脚本作者:beside

然后,在地图上设置一个区域

VX主程序里的效果

看到那个没有阴影的地方了吗?当角色走到那里时就会有人说话的
放置一个事件

事件ID,一会儿会用到

再设置一个并行处理事件,判断角色是否在区域里

用到的事件脚本:
  1. area = $game_player.area_id
  2. $game_map.events[X].start if area == M    #X代表地图上事件编号 M代表区域编号
复制代码


然后运行游戏,见证奇迹吧!!!
效果:



异常简陋的工程: Project1.rar (238.21 KB, 下载次数: 2275)

华丽的谢幕

评分

参与人数 1星屑 +1500 收起 理由
小幽的马甲 + 1500

查看全部评分


还在龟速填坑中

Lv2.观梦者

梦石
0
星屑
354
在线时间
1036 小时
注册时间
2011-5-19
帖子
2098
13
发表于 2011-9-21 15:26:36 | 只看该作者
好吧!我这废材只能说支持和感谢。
回复 支持 反对

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
713
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

12
发表于 2011-9-21 06:19:35 | 只看该作者
本帖最后由 各种压力的猫君 于 2011-9-21 06:27 编辑

既然已经挖起来了……- - 报告BUG
如果事件是显示文章的话,会无限循环。
如果用暂时消除事件会报错
  1. ---------------------------
  2. Project2
  3. ---------------------------
  4. 脚本 'Game_Event' 的第 41 行发生了 NoMethodError .

  5. undefined method `size' for nil:NilClass
  6. ---------------------------
  7. 确定   
  8. ---------------------------
复制代码
于是我现在只能用开关控制了

范例提供: 区域控制事件 范例.rar (231.98 KB, 下载次数: 90)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-6-20
帖子
7
11
发表于 2011-6-20 17:14:33 | 只看该作者
代码怎么用啊?区域设置在哪?本人新手谢谢
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
4 小时
注册时间
2011-5-15
帖子
5
10
发表于 2011-5-16 13:44:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
551
在线时间
69 小时
注册时间
2011-3-26
帖子
4
9
发表于 2011-4-11 07:28:23 | 只看该作者
啊 万分感谢, 作为一个新手, 我对RM有无穷的兴趣.
谢谢楼上的支持.
回复 支持 反对

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6137
在线时间
6591 小时
注册时间
2007-12-16
帖子
4501

贵宾

8
 楼主| 发表于 2011-4-10 17:27:21 | 只看该作者
回复 doublefred 的帖子
  1. 01.class Game_Player < Game_Character

  2. 02.  def area_name

  3. 03.    $data_areas.values.each{|area| return area.name if in_area?(area)}

  4. 04.  end

  5. 05.end
复制代码
应该是这样吧,未测试

area = $game_player.area_name
$game_map.events[X].start if area == "M"   #X代表地图上事件编号 M代表区域名称

还在龟速填坑中
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
551
在线时间
69 小时
注册时间
2011-3-26
帖子
4
7
发表于 2011-4-10 12:44:11 | 只看该作者
area== 1, 1代表区域1,不过 同时 我又使用了 显示区域名称 的脚本.
不想在地图上显示Area001的字样.
想把其换成文字, 不知道怎么实现?
请大大帮我...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
132 小时
注册时间
2010-9-30
帖子
100
6
发表于 2010-12-28 13:13:30 | 只看该作者
很实用的:lol
回复 支持 反对

使用道具 举报

Lv1.梦旅人

战国美少年森兰丸

梦石
0
星屑
204
在线时间
852 小时
注册时间
2008-7-20
帖子
3705
5
发表于 2010-10-10 22:06:21 | 只看该作者
支持学长,一起努力吧,咱争取出他30篇教程~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-19 09:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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