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

Project1

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

注释法——将事件分类

 关闭 [复制链接]

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

跳转到指定楼层
1
发表于 2007-1-28 05:34:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
范例:http://www.freefilehosting.net/download/Njk2MzU=

好不容易找了个外国的上传空间……

进去点下DOWNLOAD下载……


RMXP中一个事件可以是一个初始化,一个剧情,一个NPC,或者是一个宝箱,但是对于RMXP来说,他们只是一个事件而已,所以当有些处理要涉及到某类事件的时候就会比较麻烦。

比如有一堆NPC,有男有女,现在剧情要求所有男的跳一下,当然,你可以去看那些男NPC是什么编号的,然后使用设置路线,但是如果日后又添加了一个男NPC,你就需要去修改这个设置路线会比较麻烦~如果使用以下的注释法就可以将事件形象上的“分类”,让RMXP可以认出什么事件是男的{/hx}

这里就用到了看似没有的事件功能——注释~

首先先在这些男的NPC的事件第一行都插入注释“男”,注意一定是第一行,后面会讲,OK,分类成功!

这么简单?其实也差不多,只是后面要用到这一点~

然后剧情中使用事件中的脚本写下:

  1. for event in $game_map.events.values
  2. if event.list[0] == nil
  3.   next
  4. end
  5. if event.list[0].parameters != ["男"]
  6.   next
  7. end
  8. event.animation_id = 98
  9. end
复制代码


怎么样很简单吧,下面我大致讲解下
第一行for event in $game_map.events.values可以理解为在这个地图所有的事件进行循环判断;
后一段:

  1. if event.list[0] == nil
  2.   next
  3. end
复制代码

是指如果事件第一行没有写,也就是一个空事件的划就NEXT(跳过),防止下面的判断发生错误;
后一段:

  1. if event.list[0].parameters != ["男"]
  2.   next
  3. end
复制代码

这个就是重点,意思是如果这个事件的第一行不是注释“男”的话也就NEXT了,反过来说,如果这个事件的第一行是注释“男”的话,就能运行一下的event.animation_id = 98(该事件播放98号动画)

另外一些事件可以在第一行写注释“女”,然后

  1. if event.list[0].parameters != ["男"]
  2.   next
  3. end
复制代码

改成

  1. if event.list[0].parameters != ["女"]
  2.   next
  3. end
复制代码

下面的程序也就作用在这些“女人”上面了{/cy}

以后还要添加什么NPC的话,有需要添一行注释就能让RMXP知道是男是女了,不写的话也不会有副作用

范例是做好了,找个空间上传上来……

              [本贴由 叶舞枫 于 2007-4-1 19:53:41 进行了编辑]

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

2
 楼主| 发表于 2007-1-28 05:34:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
范例:http://www.freefilehosting.net/download/Njk2MzU=

好不容易找了个外国的上传空间……

进去点下DOWNLOAD下载……


RMXP中一个事件可以是一个初始化,一个剧情,一个NPC,或者是一个宝箱,但是对于RMXP来说,他们只是一个事件而已,所以当有些处理要涉及到某类事件的时候就会比较麻烦。

比如有一堆NPC,有男有女,现在剧情要求所有男的跳一下,当然,你可以去看那些男NPC是什么编号的,然后使用设置路线,但是如果日后又添加了一个男NPC,你就需要去修改这个设置路线会比较麻烦~如果使用以下的注释法就可以将事件形象上的“分类”,让RMXP可以认出什么事件是男的{/hx}

这里就用到了看似没有的事件功能——注释~

首先先在这些男的NPC的事件第一行都插入注释“男”,注意一定是第一行,后面会讲,OK,分类成功!

这么简单?其实也差不多,只是后面要用到这一点~

然后剧情中使用事件中的脚本写下:

  1. for event in $game_map.events.values
  2. if event.list[0] == nil
  3.   next
  4. end
  5. if event.list[0].parameters != ["男"]
  6.   next
  7. end
  8. event.animation_id = 98
  9. end
复制代码


怎么样很简单吧,下面我大致讲解下
第一行for event in $game_map.events.values可以理解为在这个地图所有的事件进行循环判断;
后一段:

  1. if event.list[0] == nil
  2.   next
  3. end
复制代码

是指如果事件第一行没有写,也就是一个空事件的划就NEXT(跳过),防止下面的判断发生错误;
后一段:

  1. if event.list[0].parameters != ["男"]
  2.   next
  3. end
复制代码

这个就是重点,意思是如果这个事件的第一行不是注释“男”的话也就NEXT了,反过来说,如果这个事件的第一行是注释“男”的话,就能运行一下的event.animation_id = 98(该事件播放98号动画)

另外一些事件可以在第一行写注释“女”,然后

  1. if event.list[0].parameters != ["男"]
  2.   next
  3. end
复制代码

改成

  1. if event.list[0].parameters != ["女"]
  2.   next
  3. end
复制代码

下面的程序也就作用在这些“女人”上面了{/cy}

以后还要添加什么NPC的话,有需要添一行注释就能让RMXP知道是男是女了,不写的话也不会有副作用

范例是做好了,找个空间上传上来……

              [本贴由 叶舞枫 于 2007-4-1 19:53:41 进行了编辑]

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

3
 楼主| 发表于 2007-1-28 05:43:55 | 只看该作者
学校的FTP不敢用………………{/jk}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

妹控魔

梦石
0
星屑
50
在线时间
176 小时
注册时间
2006-10-7
帖子
1463
4
发表于 2007-1-28 05:44:28 | 只看该作者
哦,不错!
可以干些比较委琐的事……{/hx}
主进度:70%
番外进度:生化篇100% [未知]0% [未知]0%
系统翻新进度:15%
全动作补完:90%(枪械100%)(近战兵器:80%)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
20 小时
注册时间
2005-10-24
帖子
1571
5
发表于 2007-1-28 05:45:26 | 只看该作者
万岁!我一直在想这个功能呢!{/hx}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

6
 楼主| 发表于 2007-1-28 06:14:24 | 只看该作者
另外
list[0]
后面那个0就是第一行,1是第二行,依此类推……
所以有时候可以给一个事件分多个类,比如又是怪,又是火系免疫
做ARPG的时候攻击的时候是判断怪,用火魔法攻击可以再判断第二行是不是火系免疫等等……
回复 支持 反对

使用道具 举报

Lv2.观梦者

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

贵宾

7
发表于 2007-1-28 06:28:20 | 只看该作者
首行注释本来就是很好用的东西

以前也有不少例子是用首行注释的
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

8
发表于 2007-1-28 16:14:50 | 只看该作者
记得最早就是在一个古老的ARPG脚本里见到这个,时间再后推好像就是鼠标了???
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

Lv2.观梦者

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

贵宾

9
发表于 2007-1-28 17:38:10 | 只看该作者
好象那个伪横版也是,还有就是那个增加事件页启动条件的后来也用了首行注释,接着就是鼠标响应,丫丫岭……{/hx}
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
7020
在线时间
0 小时
注册时间
2007-1-25
帖子
3
10
发表于 2007-1-28 18:17:26 | 只看该作者
不错,不错,我最近刚好要用到类似的效果

这样做的效果好像跟你一样:
在Game_Event添加attr_reader:event
for event in $game_map.events.values
if event.event.name == "男"
event.animation_id = 98
end
end
联合国驻6R监狱办事处
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-16 02:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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