Project1
标题:
注释法——将事件分类
[打印本页]
作者:
小湖
时间:
2007-1-28 05:34
标题:
注释法——将事件分类
范例:http://www.freefilehosting.net/download/Njk2MzU=
好不容易找了个外国的上传空间……
进去点下DOWNLOAD下载……
RMXP中一个事件可以是一个初始化,一个剧情,一个NPC,或者是一个宝箱,但是对于RMXP来说,他们只是一个事件而已,所以当有些处理要涉及到某类事件的时候就会比较麻烦。
比如有一堆NPC,有男有女,现在剧情要求所有男的跳一下,当然,你可以去看那些男NPC是什么编号的,然后使用设置路线,但是如果日后又添加了一个男NPC,你就需要去修改这个设置路线会比较麻烦~如果使用以下的注释法就可以将事件形象上的“分类”,让RMXP可以认出什么事件是男的{/hx}
这里就用到了看似没有的事件功能——注释~
首先先在这些男的NPC的事件第一行都插入注释“男”,注意一定是第一行,后面会讲,OK,分类成功!
这么简单?其实也差不多,只是后面要用到这一点~
然后剧情中使用事件中的脚本写下:
for event in $game_map.events.values
if event.list[0] == nil
next
end
if event.list[0].parameters != ["男"]
next
end
event.animation_id = 98
end
复制代码
怎么样很简单吧,下面我大致讲解下
第一行for event in $game_map.events.values可以理解为在这个地图所有的事件进行循环判断;
后一段:
if event.list[0] == nil
next
end
复制代码
是指如果事件第一行没有写,也就是一个空事件的划就NEXT(跳过),防止下面的判断发生错误;
后一段:
if event.list[0].parameters != ["男"]
next
end
复制代码
这个就是重点,意思是如果这个事件的第一行不是注释“男”的话也就NEXT了,反过来说,如果这个事件的第一行是注释“男”的话,就能运行一下的event.animation_id = 98(该事件播放98号动画)
另外一些事件可以在第一行写注释“女”,然后
if event.list[0].parameters != ["男"]
next
end
复制代码
改成
if event.list[0].parameters != ["女"]
next
end
复制代码
下面的程序也就作用在这些“女人”上面了{/cy}
以后还要添加什么NPC的话,有需要添一行注释就能让RMXP知道是男是女了,不写的话也不会有副作用
范例是做好了,找个空间上传上来……
[本贴由 叶舞枫 于 2007-4-1 19:53:41 进行了编辑]
作者:
小湖
时间:
2007-1-28 05:34
标题:
注释法——将事件分类
范例:http://www.freefilehosting.net/download/Njk2MzU=
好不容易找了个外国的上传空间……
进去点下DOWNLOAD下载……
RMXP中一个事件可以是一个初始化,一个剧情,一个NPC,或者是一个宝箱,但是对于RMXP来说,他们只是一个事件而已,所以当有些处理要涉及到某类事件的时候就会比较麻烦。
比如有一堆NPC,有男有女,现在剧情要求所有男的跳一下,当然,你可以去看那些男NPC是什么编号的,然后使用设置路线,但是如果日后又添加了一个男NPC,你就需要去修改这个设置路线会比较麻烦~如果使用以下的注释法就可以将事件形象上的“分类”,让RMXP可以认出什么事件是男的{/hx}
这里就用到了看似没有的事件功能——注释~
首先先在这些男的NPC的事件第一行都插入注释“男”,注意一定是第一行,后面会讲,OK,分类成功!
这么简单?其实也差不多,只是后面要用到这一点~
然后剧情中使用事件中的脚本写下:
for event in $game_map.events.values
if event.list[0] == nil
next
end
if event.list[0].parameters != ["男"]
next
end
event.animation_id = 98
end
复制代码
怎么样很简单吧,下面我大致讲解下
第一行for event in $game_map.events.values可以理解为在这个地图所有的事件进行循环判断;
后一段:
if event.list[0] == nil
next
end
复制代码
是指如果事件第一行没有写,也就是一个空事件的划就NEXT(跳过),防止下面的判断发生错误;
后一段:
if event.list[0].parameters != ["男"]
next
end
复制代码
这个就是重点,意思是如果这个事件的第一行不是注释“男”的话也就NEXT了,反过来说,如果这个事件的第一行是注释“男”的话,就能运行一下的event.animation_id = 98(该事件播放98号动画)
另外一些事件可以在第一行写注释“女”,然后
if event.list[0].parameters != ["男"]
next
end
复制代码
改成
if event.list[0].parameters != ["女"]
next
end
复制代码
下面的程序也就作用在这些“女人”上面了{/cy}
以后还要添加什么NPC的话,有需要添一行注释就能让RMXP知道是男是女了,不写的话也不会有副作用
范例是做好了,找个空间上传上来……
[本贴由 叶舞枫 于 2007-4-1 19:53:41 进行了编辑]
作者:
小湖
时间:
2007-1-28 05:43
学校的FTP不敢用………………{/jk}
作者:
魔神之影
时间:
2007-1-28 05:44
哦,不错!
可以干些比较委琐的事……{/hx}
作者:
sizz123
时间:
2007-1-28 05:45
万岁!我一直在想这个功能呢!{/hx}
作者:
小湖
时间:
2007-1-28 06:14
另外
list[0]
后面那个0就是第一行,1是第二行,依此类推……
所以有时候可以给一个事件分多个类,比如又是怪,又是火系免疫
做ARPG的时候攻击的时候是判断怪,用火魔法攻击可以再判断第二行是不是火系免疫等等……
作者:
亿万星辰
时间:
2007-1-28 06:28
首行注释本来就是很好用的东西
以前也有不少例子是用首行注释的
作者:
美兽
时间:
2007-1-28 16:14
记得最早就是在一个古老的ARPG脚本里见到这个,时间再后推好像就是鼠标了???
作者:
亿万星辰
时间:
2007-1-28 17:38
好象那个伪横版也是,还有就是那个增加事件页启动条件的后来也用了首行注释,接着就是鼠标响应,丫丫岭……{/hx}
作者:
俺来也
时间:
2007-1-28 18:17
不错,不错,我最近刚好要用到类似的效果
这样做的效果好像跟你一样:
在Game_Event添加attr_reader:event
for event in $game_map.events.values
if event.event.name == "男"
event.animation_id = 98
end
end
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1