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

Project1

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

[已经解决] 请问如何永久删除事件

[复制链接]

Lv5.捕梦者

梦石
0
星屑
32013
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

1
发表于 2015-2-13 22:39:57 | 显示全部楼层
下面这个估摸着写的,没测试。
要永久删除就在 事件 — 脚本 里写:remove_event(地图ID, 事件ID)
运行后,指定的事件永久消失。关掉工程后再打开,事件也从编辑器上消失。
  1. def remove_event(map_id, event_id)
  2.   return unless FileTest.exist?(sprintf("Data/Map%03d.rxdata", map_id))
  3.   map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
  4.   return unless map.events.keys.include?(event_id)
  5.   map.events.delete(event_id)
  6.   save_data(map, sprintf("Data/Map%03d.rxdata", map_id))
  7.   $game_map.remove_event(event_id) if $game_map.map_id == map_id  
  8. end
  9. class Game_Map
  10.   def remove_event(event_id)
  11.     @events.delete(event_id)
  12.     refresh
  13.   end
  14. end
  15. class Spriteset_Map
  16.   alias add_update_xdrs update
  17.   def update
  18.     if @character_data != $game_map.events
  19.       @character_data = $game_map.events.clone
  20.       @character_sprites.each{|s| s.dispose}
  21.       @character_sprites.clear
  22.       for i in $game_map.events.keys.sort
  23.         sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  24.         @character_sprites.push(sprite)
  25.       end
  26.       @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  27.     end
  28.     add_update_xdrs
  29.   end
  30. end
复制代码

点评

大神请问下用您的这种方法删除地图上的一个事件对工程数据库有没有影响呢?游戏新开一档后这个事件还会出现吗?  发表于 2021-10-18 16:25

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
hys111111 + 100 + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 03:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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