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

Project1

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

[通用发布] 加强型事件出现条件...事件的出现条件可以自定义了咿咿...

[复制链接]

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
跳转到指定楼层
1
发表于 2015-5-7 20:59:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
大家好,我是聪聪,今年16岁,全国第三帅...
先上范例...
【XP】加强型事件出现条件.rar (192.4 KB, 下载次数: 83)
【VX】加强型事件出现条件.rar (242.67 KB, 下载次数: 92)
【VA】加强型事件出现条件.rar (1.43 MB, 下载次数: 137)
今天聪聪给大家发福利了咿咿...写了一个《加强型事件出现条件》,介绍一下本脚本的用途...
弥补地图事件出现的条件局限性大的缺陷...如XP有开关、变量和独立开关满足条件后事件出现...VX和VA增加了物品和在队角色,但是仅有这些局限性还是非常大...通过这个脚本,可以设置任何你能想到的事件出现条件,例如:金钱大于某个值时,独立开关E为打开时,队伍中活着的人数为某个值时,某个事件的坐标满足条件时等等...
脚本最大的优点:
1、通用脚本,只要是RM都能直接使用...
2、兼容性非常好,只要出现条件的脚本书写正确,可以兼容几乎所有的脚本,包括新添加的外来脚本...
脚本的缺点:
1、依然不是实时监测,在满足条件时,除非是从一个场景变化到地图场景,否则地图必须$game_map.need_refresh = true才能看到效果...
2、需要正确书写出现条件的判定脚本,对脚本基本功有一定的要求,不太适合纯新手使用...
我再发个截图解释一下【注意事项】中的第4和第5点...
以下书写是有效的:
第4点的情形,换行衔接...

第5点的情形,多注释衔接...

下面给大家发一下脚本,插入到main之上就能用了咿咿...脚本的介绍请看脚本开头的文字说明...
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 加强型事件出现条件(RMXP/VX/VA通用脚本)
  3. #
  4. # 作者:正太君(聪聪)
  5. # 转载请保留脚本来源:rpg.blue
  6. #------------------------------------------------------------------------------
  7. # ★ 脚本用途:
  8. #    弥补地图事件出现的条件局限性大的缺陷...如XP有开关、变量和独立开关满足条件后
  9. #    事件出现...VX和VA增加了物品和在队角色,但是仅有这些局限性还是非常大...通过这
  10. #    个脚本,可以设置任何你能想到的事件出现条件,例如:金钱大于某个值时,独立开关
  11. #    E为打开时,队伍中活着的人数为某个值时,某个事件的坐标满足条件时等等...
  12. #   
  13. # ★ 脚本用法:
  14. #    在希望出现的事件页添加注释,注释必须写在所有事件的最前面,注释的第一行必须写
  15. #    上【加强型事件出现条件】,然后下一行接着写事件页出现的条件,例如希望金钱大于
  16. #    2的时候事件页出现,则写$game_party.gold >= 2即可,如果希望当开关1和开关2只要
  17. #    其中一个打开事件页就出现,那就写$game_switches[1] or $game_switches[1]即可...
  18. #    只要是有效的脚本指令,都能触发执行...所以随便你发挥就好了,咿咿...
  19. #
  20. # ★ 注意事项:
  21. # 1、注释事件必须写在所有事件的最前面,并且第一行必须写上【加强型事件出现条件】...
  22. # 2、加强型事件注释和默认的出现条件不冲突,是“and”的关系,可以联合使用...
  23. # 3、如果一行写不完脚本可以自由换行衔接,甚至一个完整的单词都能分成两行来写...
  24. # 4、如果一个注释都写不完,可以添加第二个注释,第二个注释开头无需再写【加强型事件
  25. #    出现条件】,但必须紧随第一个注释之后,并且支持与第一个注释的换行衔接...
  26. # 5、如果出现条件满足但是事件无反应,说明需要在条件变化点添加一句刷新地图的脚本
  27. #    $game_map.need_refresh = true来刷新地图,例如改变金钱时,就应该在改变金钱的事
  28. #    件后面写上脚本命令$game_map.need_refresh = true,为了保险起见,请养成良好的习
  29. #    惯,在每次操作完成后都刷新一次地图...
  30. #==============================================================================
  31. module Kernel
  32.   def get_rm_type
  33.     message = ""
  34.     f = File.open("Game.ini","r")
  35.     f.each_line{|i| message += i if i.include?("RGSS") and i.include?("dll")}
  36.     /([0-9]+)/ =~ message
  37.     return $1.to_i / 100
  38.   end
  39. end
  40.  
  41. class Game_Event < Game_Character
  42.   if get_rm_type > 1
  43.     alias :new_conditions_met? :conditions_met? unless defined? new_conditions_met?
  44.     def conditions_met?(page)
  45.       return false unless code_condition(page)
  46.       new_conditions_met?(page)
  47.     end
  48.   else  
  49.     def refresh
  50.       new_page = nil
  51.       unless @erased
  52.         for page in @event.pages.reverse
  53.           c = page.condition
  54.           next if $game_switches[c.switch1_id] == false if c.switch1_valid
  55.           next if $game_switches[c.switch2_id] == false if c.switch2_valid
  56.           next if $game_variables[c.variable_id] < c.variable_value if c.variable_valid
  57.           if c.self_switch_valid
  58.             key = [@map_id, @event.id, c.self_switch_ch]
  59.             next if $game_self_switches[key] != true
  60.           end
  61.           next unless code_condition(page)
  62.           new_page = page
  63.           break
  64.         end
  65.       end
  66.       return if new_page == @page
  67.       @page = new_page
  68.       clear_starting
  69.       if @page == nil
  70.         @tile_id = 0
  71.         @character_name = ""
  72.         @character_hue = 0
  73.         @move_type = 0
  74.         @through = true
  75.         @trigger = nil
  76.         @list = nil
  77.         @interpreter = nil
  78.         return
  79.       end
  80.       @tile_id = @page.graphic.tile_id
  81.       @character_name = @page.graphic.character_name
  82.       @character_hue = @page.graphic.character_hue
  83.       if @original_direction != @page.graphic.direction
  84.         @direction = @page.graphic.direction
  85.         @original_direction = @direction
  86.         @prelock_direction = 0
  87.       end
  88.       if @original_pattern != @page.graphic.pattern
  89.         @pattern = @page.graphic.pattern
  90.         @original_pattern = @pattern
  91.       end
  92.       @opacity = @page.graphic.opacity
  93.       @blend_type = @page.graphic.blend_type
  94.       @move_type = @page.move_type
  95.       @move_speed = @page.move_speed
  96.       @move_frequency = @page.move_frequency
  97.       @move_route = @page.move_route
  98.       @move_route_index = 0
  99.       @move_route_forcing = false
  100.       @walk_anime = @page.walk_anime
  101.       @step_anime = @page.step_anime
  102.       @direction_fix = @page.direction_fix
  103.       @through = @page.through
  104.       @always_on_top = @page.always_on_top
  105.       @trigger = @page.trigger
  106.       @list = @page.list
  107.       @interpreter = nil
  108.       @interpreter = Interpreter.new if @trigger == 4
  109.       check_event_trigger_auto
  110.     end
  111.   end  
  112.  
  113.   def code_condition(page)
  114.     code = ""
  115.     page.list.each_with_index{|i, index|
  116.     if i.code == 108 or i.code == 408
  117.       code += i.parameters[0]
  118.     else
  119.       break
  120.     end}
  121.     if code.include?("【加强型事件出现条件】")
  122.       code.delete!("【加强型事件出现条件】")
  123.       return eval(code)
  124.     else
  125.       return true
  126.     end
  127.     return false
  128.   end
  129.  
  130.   alias :new_start :start unless defined? new_start
  131.   def start
  132.     return if @list.all? {|i| [0, 108, 408].include?(i.code)}
  133.     new_start
  134.   end
  135. end

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2015-5-7 21:12:56 | 只看该作者
前排强插。。。不来张图吗?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
3
发表于 2015-5-8 22:47:15 | 只看该作者
很厉害的样子。
或许能配合我这个
https://rpg.blue/thread-378375-1-2.html
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

卑微的梦

梦石
0
星屑
523
在线时间
820 小时
注册时间
2013-2-23
帖子
1185

短篇九勇士组季军

4
发表于 2015-5-9 08:24:20 手机端发表。 | 只看该作者
前排支持聪聪┑( ̄Д  ̄)┍
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2015-5-9 08:54:09 | 只看该作者
http://taroxd.github.io/rgss/%E7 ... 8F%98%E9%87%8F.html

很久以前写的,能实时监测,功能也不只是事件的出现条件
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 14:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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