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

Project1

 找回密码
 注册会员
搜索

有没有办法批量导出替换全部当前地图中的某个字或者词

查看数: 5614 | 评论数: 12 | 收藏 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-4-20 18:03

正文摘要:

刚才测试,发现因为输入法和更换系统,造成 帕秋莉这个词汇 很多地方都打成了 帕秋丽,包括素材 素材就算了,反正那个名字都能用,但是事件里面的,就必须替换了。 目前只能根据记忆一个一个找地图中可能出现这个词 ...

回复

芯☆淡茹水 发表于 2018-4-20 22:52:03
本帖最后由 芯☆淡茹水 于 2018-4-20 23:00 编辑
89444640 发表于 2018-4-20 22:36
新建了个工程,把干净的Scripts放进去,然后复制脚本过去运行,还是跳出
...




  1. class Bitmap
  2.   alias xr_replace_draw_text draw_text
  3.   def draw_text(*args)
  4.     index = args[0].is_a?(Rect) ? 1 : 4
  5.     args[index].gsub!(/帕秋莉/, "帕秋丽")
  6.     xr_replace_draw_text(*args)
  7.   end
  8. end
复制代码


至于对话框里面的,可以这样(这个没测试)

RUBY 代码复制
  1. class Game_Temp
  2.   def message_text=(text)
  3.     @message_text = text
  4.     @message_text && @message_text.gsub!(/帕秋莉/, "帕秋丽")
  5.   end
  6. end

点评

还是三个字靠谱,避免错换,谢谢提供了一种在不挨个纠正的情况下,修理特定名词错别字的方式。不过……强迫症发作中,正再挨个手动替换ORZ  发表于 2018-4-20 23:20
唔~,照着那个格式往下面加就可以替换所有对话里的同类型错别字  发表于 2018-4-20 23:16
要不你可以把脚本里的 帕秋 两个字删了,然后你游戏对话里面所有 莉 都是 丽 了  发表于 2018-4-20 23:14
第二个需要替换的名字里外写反了--b 我调换一下,测试有效,可以替换错别字。  发表于 2018-4-20 23:12
只有 帕秋莉 三个字写到一堆才有效。  发表于 2018-4-20 23:04

评分

参与人数 2星屑 +100 +2 收起 理由
RyanBern + 100 + 1 认可答案
89444640 + 1

查看全部评分

guoxiaomi 发表于 2018-5-3 20:07:34
复制脚本到游戏里,关掉工程正常运行,查看生成的txt文件,就知道这些事件的位置了。去掉最后 save_data 前面的注释会直接修改对应的地图文件。
请做好data文件夹的备份以防万一,使用完毕后删掉此脚本。
这个脚本只要在main前,放哪都行,反正就用一次,最好放在最前面。
因为可能出现不在同一行的情况,所以也顺便检测了帕秋和帕,这个自己去替换吧
RUBY 代码复制
  1. file = File.open('result-paqiuli.txt', 'w')
  2. Dir.glob('Data/Map*.rxdata') do |fn|
  3.   # 排除掉地图设置文件
  4.   next if fn == 'Data/MapInfos.rxdata'
  5.   # 读取地图内容
  6.   file.puts fn
  7.   data_map = load_data(fn)
  8.   data_map.events.each do |id, event|
  9.     event.pages.each do |page|
  10.       page.list.each do |cmd|
  11.         case cmd.code
  12.         when 101, 401
  13.           if cmd.parameters[0] =~ /帕秋丽/
  14.             file.puts "Event#{id}: 帕秋丽"
  15.             cmd.parameters[0].gsub!('帕秋丽', '帕秋莉')
  16.           elsif cmd.parameters[0] =~ /帕秋/
  17.             file.puts "Event#{id}: 帕秋"
  18.           elsif cmd.parameters[0] =~ /帕/
  19.             file.puts "Event#{id}: 帕"
  20.           end
  21.         end
  22.       end
  23.     end
  24.   end
  25.   # 取消下面一行的注释以修改地图文件
  26.   # save_data(data_map, fn)
  27. end
  28. file.close
  29. p '请查看txt文件!'
  30. exit

评分

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

查看全部评分

Tsar_NicholasII 发表于 2018-6-9 13:43:49
实际显示的文本加脚本替换
hyperzlib 发表于 2018-6-8 10:54:36
理论可行,因为地图其实是ruby归档,不过要写程序

点评

我对ruby不是很懂,如果是rmmv的,我就能直接写段替换程序给你了  发表于 2018-6-8 11:36
这个,我已经手动全体换了,依然非常感谢提供方法。  发表于 2018-6-8 11:28
Tsar_NicholasII 发表于 2018-6-8 01:14:20
没办法,只能重做
yang1zhi 发表于 2018-4-21 18:11:21
本帖最后由 yang1zhi 于 2018-4-21 18:13 编辑

因为你人名没有采用数据库里面的人名。
如果你是调用数据库里的人名,或者脚本里的变量
那只要修改一处就全改过来了


-----------
自从吃亏后。我现在都是把文字写在脚本里。事件的对话框里什么也没写。
chd114 发表于 2018-4-21 17:58:32
在实际显示文本的脚本加替换就行了,然后你原来错误的也不需要改
这个应该是最保险的了当然坏处是你两个词只有一个可以用了(因为另一个会被换掉)
灯笼菜刀王 发表于 2018-4-21 14:12:33
我觉得,你让新脚本和你的那一大群老住户搞好邻里关系的时间,足够你一个字一个字修回来了吧......

点评

所以我手动修,顺道改错字,这不就发现了上午那个脚本有问题,多测试没坏处。XD  发表于 2018-4-21 14:19
guoxiaomi 发表于 2018-4-21 02:20:45
去看看sailcat的工具包,这个应该直接对数据下手,前面提到的方法不对。
data_map.events.pages.list类似的……判断一下code = 401或者101

评分

参与人数 1+1 收起 理由
ikki + 1 sailcat是超级大佬的说,各种工具特别多。.

查看全部评分

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

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

GMT+8, 2025-7-4 17:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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