Project1

标题: 【经典】XP和VX的事件脚本大全 [打印本页]

作者: 越前リョーマ    时间: 2011-2-6 21:29
标题: 【经典】XP和VX的事件脚本大全
本帖最后由 越前リョーマ 于 2011-2-6 22:22 编辑
事件党原则:这些事件脚本实现的都是事件就有的功能,只是有些时候用事件脚本更为方便,这样并不与事件矛盾。这样也可以算是“伪·纯事件”。


【XP事件脚本】
  1. 显示文章:
  2. $game_temp.message_text= ""
  3. 显示引号中的文章。

  4. 更改文章选项:
  5. $game_system.message_position =0,1,2
  6. 表示上、中、下,三个位置

  7. $game_system.message_frame = 0 ,1
  8. 0表示不透明,其他的话就透明

  9. 等待:
  10. @wait_count = X
  11. 等待X帧

  12. 中断事件处理:
  13. command_end

  14. 把某一个事件暂时消除
  15. $game_map.events[X].erase
  16. 其中X表示把X号事件暂时消除,如果是消除本事件X = @event_id

  17. 执行公共事件:
  18. $game_temp.common_event_id = 编号
  19. 执行编号的公共事件。注意,这个执行和直接在事件中的公共事件有微妙区别。

  20. 开关操作:
  21. $game_switches[编号] = true / false
  22. true是打开,false是关闭

  23. 变量操作:
  24. $game_variables[编号] = 数值
  25. 这里有一些常用的内容:
  26. rand(100):返回0-99的随机数
  27. rand(100)+10000:返回10000-10099的随机数
  28. $game_party.item_number(编号):编号物品的个数

  29. 角色相关:以下为某编号的角色的相关属性
  30. 生命:$game_actors[编号].hp
  31. 精神:$game_actors[编号].sp
  32. 经验:$game_actors[编号].exp
  33. 等级:$game_actors[编号].level
  34. 最大生命:$game_actors[编号].maxhp
  35. 最大精神:$game_actors[编号].maxsp
  36. 力量:$game_actors[编号].str
  37. 灵巧:$game_actors[编号].dex
  38. 速度:$game_actors[编号].agi
  39. 魔力:$game_actors[编号].int
  40. 攻击力:$game_actors[编号].atk
  41. 物理防御:$game_actors[编号].pdef
  42. 魔法防御:$game_actors[编号].mdef
  43. 回避修正:$game_actors[编号].eva
  44. 姓名:$game_actors[编号].name
  45. 职业编号:$game_actors[编号].class_id
  46. 职业名称:$game_actors[编号].class_name
  47. 武器编号:$game_actors[编号].weapon_id
  48. 防具1编号:$game_actors[编号].armor1_id
  49. 防具2编号:$game_actors[编号].armor2_id
  50. 防具3编号:$game_actors[编号].armor3_id
  51. 防具4编号:$game_actors[编号].armor4_id
  52. 完全回复:$game_actors[编号].recover_all
  53. 领悟特技:$game_actors[编号].learn_skill(编号)
  54. 遗忘特技:$game_actors[编号].forget_skill(编号)

  55. 位置(前卫返回0,中卫返回1,后卫返回2):$data_classes[$game_actors[编号].class_id].position
  56. 学会特技总数:$game_actors[编号].skills.size

  57. 敌人:$game_troop.enemies[编号]
  58. 敌人拥有角色的部分功能,包括.hp,.sp,.maxhp,.maxsp,.str,.dex,.agi,.int,.atk,.pdef,.mdef,.eva

  59. 地图的事件属性:
  60. $game_map.events[编号].x,$game_map.events[编号].y
  61. 编号事件的x,y 坐标
  62. $game_map.events[编号].screen_x,$game_map.events[编号].screen_y
  63. 编号事件的屏幕x,y坐标
  64. $game_map.events[编号].direction
  65. 编号事件的朝向
  66. $game_map.events[编号].terrain_tag
  67. 编号事件所处的地形标志
  68. $game_map.events[编号].moveto(x,y)
  69. 把事件扔到(x,y)
  70. ——————————————————以上几个事件的,如果要求为角色,则为“$game_player.x”等

  71. 地图ID:$game_map.map_id
  72. 同伴总人数:$game_party.actors.size
  73. 步数:$game_party.steps
  74. 金钱:$game_party.gold
  75. 游戏总时间(秒数):Graphics.frame_count / Graphics.frame_rate
  76. 游戏总帧数:Graphics.frame_count
  77. 游戏帧速率(可直接=n调整):Graphics.frame_rate
  78. 计时器剩余秒数:$game_system.timer / Graphics.frame_rate
  79. 存档次数:$game_system.save_count

  80. 独立开关操作:
  81. $game_self_switches[[地图编号,事件编号,"A"]] = true/false
  82. 把地图编号的地图上的事件编号的事件的A开关打开。其实不光ABCD,还可以建立更多独立开关,不过调用也得用同样脚本。

  83. 计时器打开:
  84. $game_system.timer = 需要的秒数;$game_system.timer_working = true

  85. 计时器关闭:
  86. $game_system.timer_working = false

  87. 增减金钱:
  88. $game_party.gain_gold(金钱量)

  89. 增减物品:
  90. $game_party.gain_item(物品编号,数量)
  91. 举例:
  92. $game_party.gain_item(rand(10),rand(10)):随机获得0-9号中某一物品,数量为0-9随机。

  93. 增减武器:
  94. $game_party.gain_weapon(物品编号,数量)

  95. 增减防具:
  96. $game_party.gain_armor(物品编号,数量)

  97. 清空现有所有物品:
  98. $game_party.items.clear

  99. 清空所有武器:
  100. $game_party.weapons.clear

  101. 清空所有防具:
  102. $game_party.armors.clear

  103. 角色替换:
  104. 加入角色:$game_party.add_actor(编号)
  105. 删除角色:$game_party.remove_actor(编号)
  106. 初始化角色:$game_party[编号].setup(编号)

  107. 更改窗口外观:
  108. $game_system.windowskin_name = 文件名

  109. 更改禁止存档
  110. $game_system.save_disabled = true/false

  111. 更改禁止菜单:
  112. $game_system.menu_disabled = true/false

  113. 更改禁止遇敌:
  114. $game_system.encounter_disabled = true/false

  115. 地图卷动:
  116. $game_map.start_scroll(方向,距离,速度)

  117. 地图某角色显示动画:
  118. $game_map.events[id].animation_id = 动画编号

  119. 角色透明:
  120. $game_player.transparent = true/false

  121. 等待移动结束:
  122. @move_route_waiting = true

  123. 开始更改色调:
  124. $game_screen.start_tone_change(Tone.new(R,G,B,A),帧数)

  125. 画面闪烁:
  126. $game_screen.start_flash(Color.new(R,G,B,A),帧数)

  127. 画面振动:
  128. $game_screen.start_shake(力度,速度,帧数)

  129. 显示图片:
  130. $game_screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  131. 移动图片:
  132. $game_screen.pictures[number].move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  133. 其中:
  134.   #     name         : 文件名
  135.   #     origin       : 原点
  136.   #     x            : X 坐标
  137.   #     y            : Y 坐标
  138.   #     zoom_x       : X 方向放大率
  139.   #     zoom_y       : Y 方向放大率
  140.   #     opacity      : 不透明度
  141.   #     blend_type   : 合成方式
  142.   #     duration     : 时间

  143. 旋转图片:
  144. $game_screen.pictures[number].rotate(速度)

  145. 删除图片:
  146. $game_screen.pictures[number].erase

  147. 显示动画(战斗中)
  148. battler.animation_id = 动画编号
  149. battler可以是敌人或者自己人,请先定义。

  150. 显示伤害:
  151. battler.damage = 伤害值
  152. battler.damage_pop = true
  153. 注意,这个显示伤害可以让伤害值为字符串!并不会真的减血,减血用battler.hp -= 数值
  154. battler.criticle = true 这个还可以打开会心一击标志

  155. 战斗中断:
  156. $game_temp.battle_abort = true

  157. 调用菜单:
  158. $game_temp.menu_calling = true

  159. 调用存档画面:
  160. $game_temp.save_calling = true

  161. 游戏结束:
  162. $game_temp.gameover = true

  163. 返回标题画面:
  164. $game_temp.to_title = true

  165. 强行启动事件:
  166. $game_map.events[编号].start

  167. 通行判定:
  168. $game_player.passable?(x,y,方向)
  169. 用来判断地图某处是否在某个方向可通行

  170. 正在移动判定:
  171. $game_player.moving?
  172. $game_map.events[编号].moving?

  173. 播放效果:
  174. Audio.bgm_play("文件名",音量,节奏速度)
  175. Audio.bgs_play("文件名",音量,节奏速度)
  176. Audio.me_play("文件名",音量,节奏速度)
  177. Audio.se_play("文件名",音量,节奏速度)
  178. 播放 bgm,bgs,me,se

  179. Audio.bgm_stop
  180. Audio.bgs_stop
  181. Audio.me_stop
  182. Audio.se_stop
  183. 停止播放bgm,bgs,me,se

  184. $game_system.playing_bgm,$game_system.playing_bgs
  185. 获得演奏中的bgm,bgs

  186. game_system.bgm_memorize,game_system.bgm_restore
  187. game_system.bgs_memorize,game_system.bgs_restore
  188. 记忆、还原bgm,bgs

  189. 判断某角色在队伍中:$game_party.actors.include?($game_actors[编号])

  190. 判断是否学过某特技:$game_actors[编号].skill_learn?(特技编号)

  191. 按下某键的时候:Input.press?(键),Input.trigger?(键)
  192. 这两个请参考脚本中的其他定义推理
复制代码
【VX事件脚本】
  1. 显示文章:
  2. $game_message.texts.push("****")
  3. 显示引号中的文章。一般要配合初始化显示文章使用。

  4. 更改文章选项:
  5. $game_message.position = 0,1,2
  6. 表示上、中、下,三个位置

  7. 更改文章背景:
  8. $game_message.background = 0 ,1,2
  9. 表示普通窗口、背景变暗、透明,三种效果

  10. 初始化显示文章:
  11. set_message_waiting
  12. 注:这个用了以后下一次显示文章时的文章选项、背景恢复正常,如果不用这个的话所有显示的文章将并在一个框里,有兴趣的去试一下。

  13. 中断事件处理:
  14. command_end

  15. 把某一个事件暂时消除
  16. $game_map.events[X].erase
  17. 其中X表示把X号事件暂时消除,如果是消除本事件X = @event_id

  18. 执行公共事件:
  19. $game_temp.common_event_id = 编号
  20. 执行编号的公共事件。

  21. 开关操作:
  22. $game_switches[编号] = true / false
  23. true是打开,false是关闭

  24. 变量操作:
  25. $game_variables[编号] = 数值
  26. 这里有一些常用的内容:
  27. rand(100):返回0-99的随机数
  28. rand(100)+10000:返回10000-10099的随机数
  29. $game_party.item_number($data_items[X]):编号物品的个数

  30. 角色相关:以下为某编号的角色的相关属性
  31. $game_actors[编号]
  32. 生命:~.hp
  33. 魔法:~.mp
  34. 生命上限:~.maxhp
  35. 魔法上限:~.maxmp
  36. ID:~.id
  37. 名字:~.name
  38. 职业ID:~.class_id
  39. 初期等级:~.initial_level
  40. 是否二刀流:~.two_swords_style
  41. 是否装备固定:~.fix_equipment
  42. 是否自动战斗:~.auto_battle
  43. 是否强力防御:~.super_guard
  44. 是否药理知识:~.pharmacology
  45. 是否会心频发:~.critical_bonus
  46. 是否学会特技:~.skill_learn?(编号)
  47. 学会特技:~.learn_skill(编号)
  48. 攻击力:~.atk
  49. 防御力:~.def
  50. 精神力:~.spi
  51. 敏捷性:~.agi

  52. 地图ID:$game_map.map_id
  53. 同伴总人数:$game_party.members.size
  54. 步数:$game_party.steps
  55. 金钱:$game_party.gold
  56. 游戏总时间(秒数):Graphics.frame_count / Graphics.frame_rate
  57. 游戏总帧数:Graphics.frame_count
  58. 游戏帧速率(可直接=n调整):Graphics.frame_rate
  59. 计时器剩余秒数:$game_system.timer / Graphics.frame_rate
  60. 存档次数:$game_system.save_count

  61. 独立开关操作:
  62. $game_self_switches[[地图编号,事件编号,"A"]] = true/false
  63. 把地图编号的地图上的事件编号的事件的A开关打开。其实不光ABCD,还可以建立更多独立开关,不过调用也得用同样脚本。

  64. 计时器打开:
  65. $game_system.timer = 需要的秒数;$game_system.timer_working = true

  66. 计时器关闭:
  67. $game_system.timer_working = false

  68. 增减金钱:
  69. $game_party.gain_gold(金钱量)

  70. 增减物品、武器、防具:
  71. $game_party.gain_item(物品,数量)
  72. 举例:
  73. $game_party.gain_item($data_items[1],1):获得1号物品
  74. $game_party.gain_item($data_weapons[1],1):获得1号武器
  75. 角色替换:
  76. 加入角色:$game_party.add_actor(编号)
  77. 删除角色:$game_party.remove_actor(编号)

  78. 更改窗口外观:
  79. 窗口:self.windowskin = Cache.system("文件名")

  80. 更改禁止存档
  81. $game_system.save_disabled = true/false

  82. 更改禁止菜单:
  83. $game_system.menu_disabled = true/false

  84. 更改禁止遇敌:
  85. $game_system.encounter_disabled = true/false

  86. 地图卷动:
  87. $game_map.start_scroll(方向,距离,速度)

  88. 地图某角色显示动画:
  89. $game_map.events[id].animation_id = 动画编号

  90. 角色透明:
  91. $game_player.transparent = true/false

  92. 开始更改色调:
  93. 平时:$game_map.screen.start_tone_change(Tone.new(R,G,B,A),帧数)
  94. 战斗:$game_troop.screen.start_tone_change(Tone.new(R,G,B,A),帧数)

  95. 画面闪烁:
  96. 平时:$game_map.screen.start_flash(Color.new(R,G,B,A),帧数)
  97. 战斗:$game_troop.screen.start_flash(Color.new(R,G,B,A),帧数)

  98. 画面振动:
  99. 平时:$game_map.screen.start_shake(力度,速度,帧数)
  100. 战斗:$game_troop.screen.start_shake(力度,速度,帧数)

  101. 显示图片:
  102. $game_map.screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  103. 移动图片:
  104. $game_map.screen.pictures[number].move(origin, x, y, zoom_x, zoom_y, opacity,blend_type,duration)
  105. 其中:
  106.   #     name         : 文件名
  107.   #     origin       : 原点
  108.   #     x            : X 坐标
  109.   #     y            : Y 坐标
  110.   #     zoom_x       : X 方向放大率
  111.   #     zoom_y       : Y 方向放大率
  112.   #     opacity      : 不透明度
  113.   #     blend_type   : 合成方式
  114.   #     duration     : 时间

  115. 旋转图片:
  116. $game_map.screen.pictures[number].rotate(速度)

  117. 删除图片:
  118. $game_map.screen.pictures[number].erase

  119. 显示动画(战斗中)
  120. battler.animation_id = 动画编号
  121. battler可以是敌人或者自己人,请先定义。

  122. 战斗中断:
  123. $game_temp.battle_abort = true

  124. 调用菜单:
  125. $scene = Scene_Menu.new

  126. 调用存档画面:
  127. $scene = Scene_File.new(true,false,true)

  128. 调用读档画面:
  129. $scene = Scene_File.new(false,false,true)

  130. 游戏结束:
  131. $scene = Scene_Gameover.new

  132. 返回标题画面:
  133. $scene = Scene_Title.new

  134. 强行启动事件:
  135. $game_map.events[编号].start

  136. 通行判定:
  137. $game_player.passable?(x,y)
  138. 用来判断地图某处是否在某个方向可通行

  139. 正在移动判定:
  140. $game_player.moving?
  141. $game_map.events[编号].moving?

  142. 播放SE:
  143. Sound.play_*****
  144. 例:Sound.play_decision

  145. 系统用语:
  146. Vocab::****
  147. 例:Vocab::hp

  148. 判断某角色在队伍中:$game_party.members.include?($game_actors[编号])

  149. 按下某键的时候:Input.press?(键),Input.trigger?(键)
  150. 这两个请参考脚本中的其他定义推理
复制代码

作者: 退屈£无聊    时间: 2011-2-6 21:30
本帖最后由 退屈£无聊 于 2011-2-6 21:30 编辑

【算了……我本来想说事件教程的……手滑……】
作者: 仲秋启明    时间: 2011-2-13 13:36
VX事件脚本补完在策划中
作者: denis466    时间: 2011-8-20 15:29
我补充一个前几天在茄子那淘到的好东东,个人认为也是很重要的事件脚本,目前一直在用
这个如果不是永久保存的话可以用
$game_map.data[x,y,z] = ID 修改
比如修改这个地图【0,0】坐标第1层的元件为385
$game_map.data[0,0,0] = 385 就可以了
自动元件 0~383
基本原件 >383
类似举例
$game_map.data[10,9,1] = 392
$game_map.data[1,5,2] = 402
Z取值0-2
x,y取值自己看地图坐标

if $game_map.terrain_tag(x, y) == 5 # 如果在X,Y坐标处地形标志是5的话!!
作者: 各种压力的猫君    时间: 2011-9-24 00:57
本帖最后由 各种压力的猫君 于 2011-9-24 00:58 编辑

角色相关$game_actors[编号]可以替换为
$game_party.actors[n](XP)
$game_party.members[n](VX)
表示当前队列中的第n号角色(n由0起
~.id可以获取该角色在数据库中设定的id
作者: 小白玩家    时间: 2011-12-9 10:12
我竟然不知道这个群组 条件分歧可以用到诶 赞
作者: 精灵使者    时间: 2012-1-23 11:58
运行时修改数据库系列……这个教程讲得相当全面了。


作者: 芯☆淡茹水    时间: 2013-2-16 15:34
如果把上面的事件脚本运用得很熟练,估计离会写脚本不远了。
作者: stevenrock    时间: 2014-4-5 13:46
貌似很厉害,学学看




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1