查看: 2823|回复: 2

[RMVA发布] 哈希表练手初成果?渣成果+改进一个旧东西【翻译脚本?】

[复制链接]
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-11-22 14:59:01 | 显示全部楼层 |阅读模式

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

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

×
这个东西感觉常规情况下用处不大···

可以拿来当翻译机什么的,比如加条件判断一开始选择游戏语言,然后翻译(中文简繁转换最好用,中翻英逐词的话就“我是楼主”和“你是楼主”的“是”都要判断am和are的翻法了···)···
也可以拿来当成和谐系统,比如有的游戏给角色起名,玩家不爽给角色起个“草泥马”之类的名字你可以用这个和谐掉(实际上是因为[pre lang="ruby" line="1"](1..Chd114::Text::TEXT[:before].size).each{|i|done_flag |= result.gsub!(/#{Chd114::Text::TEXT[:before].to_s}/i) { Chd114::Text::TEXT[:after] }}[/pre]的转换优先级是最高的原因导致的···)


使用方法:下面2个脚本即插即用

[fold=脚本戳我]
[pre lang="ruby" line="1"]module Chd114 end
module Chd114::Text
   #每一个before都对应了after,则符合before[1]的文字内容会被转换成after[1]的文字内容
  TEXT = {
    before: {#在这里设定要被转换掉的文字
    1=>"我爱你",
    2=>"生存还是毁灭,这是一个值得思考的问题"
    },
    after: {#在这里设定转换后的文字
    1=>"I Love You",
    2=>"To be, or not to be- that is the question"
    },
  }
end[/pre]

[pre lang="ruby" line="1"]#==============================================================================
# ** 转义字符加强
#------------------------------------------------------------------------------
#  加强用于显示文章和其它使用draw_text_ex的转义字符。
#    - \V[n],\N[n],\P[n] 支持无限嵌套
#    - 添加以下转义字符
#        + \ITM[n] 替换为n号道具 (带图标)
#        + \WPN[n] 替换为n号武器 (带图标)
#        + \ARM[n] 替换为n号防具 (带图标)
#        + \SKL[n] 替换为n号特技 (带图标)
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # * Preconvert Control Characters
  #    As a rule, replace only what will be changed into text strings before
  #    starting actual drawing. The character "\" is replaced with the escape
  #    character (\e).
  #--------------------------------------------------------------------------
  def convert_escape_characters(text)
    result = text.to_s.clone
    result.gsub!(/\\/)            { "\e" }
    result.gsub!(/\e\e/)          { "\\" }

    while true
      done_flag = nil
      done_flag |= result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
      done_flag |= result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
      done_flag |= result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
      done_flag |= result.gsub!(/\eITM\[(\d+)\]/i) { item_ctrl_str($data_items[$1.to_i]) }
      done_flag |= result.gsub!(/\eWPN\[(\d+)\]/i) { item_ctrl_str($data_weapons[$1.to_i]) }
      done_flag |= result.gsub!(/\eARM\[(\d+)\]/i) { item_ctrl_str($data_armors[$1.to_i]) }
      done_flag |= result.gsub!(/\eSKL\[(\d+)\]/i) { item_ctrl_str($data_skills[$1.to_i]) }
      done_flag |= result.gsub!(/被替换掉的文字/i) { "替换后的文字" }#纯属辨别哪一个是转换用的东西而已
      (1..Chd114::Text::TEXT[:before].size).each{|i|done_flag |= result.gsub!(/#{Chd114::Text::TEXT[:before].to_s}/i) { Chd114::Text::TEXT[:after] }}
      break unless done_flag
    end
   
    result.gsub!(/\eG/i) { Vocab::currency_unit }
    result
  end

  def item_ctrl_str(item)
    "\eI[#{item.icon_index}] #{item.name}"
  end
end[/pre]
[/fold]
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-11-22 15:02:52 | 显示全部楼层
本帖最后由 taroxd 于 2014-11-22 15:07 编辑

https://rpg.blue/thread-368844-1-1.html

目测楼主不知道什么叫“哈希表”。

可以考虑随便拿个语言手写个哈希表玩玩。

点评

话说''和""有什么区别···  发表于 2014-11-22 16:42
我这个的实际用途是拿来当度娘翻译用的···角色拿到翻译机什么的就正常显示了···和精灵使者说的那个OB一样···  发表于 2014-11-22 15:17
是啊。我本来的目的就是这个  发表于 2014-11-22 15:13
话说你的那一个是直接改了工程?msgbox '全局替换成功!请重启编辑器以查看效果。'  发表于 2014-11-22 15:10
'文字'也可以吗0.0  发表于 2014-11-22 15:05
回复

使用道具 举报

【欧皇】

梦石
3
星屑
2055
在线时间
1004 小时
注册时间
2013-8-19
回帖
3040

开拓者

发表于 2014-12-24 13:18:29 来自手机 | 显示全部楼层
向外站发布正好
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部