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

Project1

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

自定义事件出现条件的刷新问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2008-8-9
帖子
28
跳转到指定楼层
1
发表于 2008-8-9 02:23:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我做了个自定义事件出现条件脚本,但是刷新很有问题,请教一下各位大大怎么改
脚本
  1. class Game_Event < Game_Character
  2.   def conditions_met?(page)
  3.     c = page.condition
  4.     if c.switch1_valid      # 开关1
  5.       return false if $game_switches[c.switch1_id] == false
  6.     end
  7.     if c.switch2_valid      # 开关2
  8.       return false if $game_switches[c.switch2_id] == false
  9.     end
  10.     if c.variable_valid     # 变量
  11.       return false if $game_variables[c.variable_id] < c.variable_value
  12.     end
  13.     if c.self_switch_valid  # 独立开关
  14.       key = [@map_id, @event.id, c.self_switch_ch]
  15.       return false if $game_self_switches[key] != true
  16.     end
  17.     if c.item_valid         # 物品
  18.       item = $data_items[c.item_id]
  19.       return false if $game_party.item_number(item) == 0
  20.     end
  21.     if c.actor_valid        # 角色
  22.       actor = $game_actors[c.actor_id]
  23.       return false unless $game_party.members.include?(actor)
  24.     end
  25. #仅仅加了一句话而已↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
  26.     return eval(page.list[0].parameters[0]) if page.list[0].code == 108
  27. #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
  28.     return true   # 条件符合
  29.   end
  30. end
复制代码

其实就是在Game_Event的conditions_met?的return true前加了一句话
  1.     return eval(page.list[0].parameters[0]) if page.list[0].code == 108
复制代码

意思是如果事件第一句是注释,那么就判断第一句,如果是false或nil就不出现事件,否则就出现事件

然后发现可以顺利执行,但是刷新很有问题,当我满足条件是并不能立即出现事件,满足条件后按下ESC键(菜单)再返回就能出现事件(因为返回的时候刷新了)


我的事件是:
出现条件:无
行走图:无
运动方式:固定
事件块参数:步行动画on,其余off
优先级:角色下方
触发方式:自动执行
事件指令:注释:$game_player.y < 5
          显示文章:来这里干什么,下去下去
          设置移动轨迹:主角 向下移动

工程:http://rpg.blue/upload_program/files/Project4_98648556.rar

不要用太耗FPS的方法,因为耗FPS的话还不如用并行+判断
版务信息:本贴由楼主自主结贴~

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-8-9 02:33:45 | 只看该作者
话说不操作大量变量开关的并行事件一般是不大卡的。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
3
发表于 2008-8-9 02:43:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2008-8-9
帖子
28
4
 楼主| 发表于 2008-8-9 03:18:45 | 只看该作者
以下引用kissye于2008-8-8 18:43:47的发言:
那为什么不在满足条件后顺便刷新一下?

找不到地方……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

5
发表于 2008-8-9 04:19:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
614
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

6
发表于 2008-8-9 15:27:07 | 只看该作者
以下引用沉影不器于2008-8-8 20:19:45的发言:

效果上,跟开关控制事件页有什么不一样吗为啥不能用开关或变量解决

我的事件出现条件是主角y坐标<5
如果用开关变量,那么就必须有一个并行事件随时判断角色y坐标,事件解释器的效率比较低,同一张地图上有多个需要自定义条件的事件的话会更卡……
用这个东西其实只是为了减少FPS损耗……
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
7
发表于 2008-8-9 15:36:07 | 只看该作者
手机上无法做出具体回答…话说有些调用这个方法的语句可能会在反回true时才执行一些东西…你把那个存到全局变量试试…
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
8
发表于 2008-8-9 16:39:36 | 只看该作者
循环下事件
在Scene_Map里的update判断。
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
614
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

9
发表于 2008-8-9 18:02:19 | 只看该作者
以下引用★_茄孓于2008-8-9 8:39:36的发言:

循环下事件
在Scene_Map里的update判断。

不懂
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
614
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

10
发表于 2008-8-10 20:00:10 | 只看该作者
没人会?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 17:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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