Project1

标题: 一个直接把RMXP游戏“简体 -> 繁体”的脚本{无需点数} [打印本页]

作者: 柳柳    时间: 2006-11-6 05:44
标题: 一个直接把RMXP游戏“简体 -> 繁体”的脚本{无需点数}
最近很少用VIP区孵化脚本了,这次相当成功

簡體->繁體腳本使用前後效果截圖

  1. #------------------------------------------------------------------------------
  2. # 本脚本来自www.66RPG.com,功能是将整个游戏中draw_text的简体字全部变为繁体字
  3. # 作者:66RPG技术区版大:灼眼的夏娜
  4. #------------------------------------------------------------------------------
  5. module Conv
  6.   def self.c(str)
  7.    
  8.    m2w = Win32API.new("kernel32","MultiByteToWideChar",'ilpipi','i')
  9.    w2m = Win32API.new("kernel32","WideCharToMultiByte",'ilpipipp','i')
  10.    lcms = Win32API.new("kernel32","LCMapString",'llpipi','i')

  11.    len = m2w.call(65001,0,str,-1,nil,0)
  12.    buf = "\0"*(len*2)

  13.    m2w.call(65001,0,str,-1,buf,len)

  14.    len = w2m.call(0,0,buf,-1,nil,0,nil,nil)
  15.    ret = "\0"*len

  16.    w2m.call(0,0,buf,-1,ret,len,nil,nil)

  17.    len = m2w.call(936,0,ret,-1,nil,0)
  18.    buf01 = "\0"*(len*2+1)
  19.    lcms.call(0x0804,0x04000000,ret,-1,buf01,len*2)
  20.    
  21.    len = m2w.call(0,0,buf01,-1,nil,0)
  22.    buf = "\0" * (len*2)
  23.    m2w.call(0,0,buf01,-1,buf,len)

  24.    len = w2m.call(65001,0,buf,-1,nil,0,nil,nil)
  25.    ret = "\0" * (len-1)
  26.    w2m.call(65001,0,buf,-1,ret,len-1,nil,nil)
  27.    
  28.    return ret
  29. end

  30. end

  31. class Bitmap
  32.   unless $I_LOVE_RMXP_6RWORDCONV
  33.     alias dx draw_text
  34.     def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0)
  35.       case p1
  36.       when Rect
  37.         str = Conv.c(p2)
  38.         dx(p1, str, p3)
  39.       else
  40.         str = Conv.c(p5)
  41.         dx(p1, p2, p3, p4, str, p6)
  42.       end
  43.     end
  44.     $I_LOVE_RMXP_6RWORDCONV = true
  45.   end
  46. end
复制代码


              [本贴由 叶舞枫 于 2007-4-22 22:20:45 进行了编辑]
作者: 柳柳    时间: 2006-11-6 05:44
标题: 一个直接把RMXP游戏“简体 -> 繁体”的脚本{无需点数}
最近很少用VIP区孵化脚本了,这次相当成功

簡體->繁體腳本使用前後效果截圖

  1. #------------------------------------------------------------------------------
  2. # 本脚本来自www.66RPG.com,功能是将整个游戏中draw_text的简体字全部变为繁体字
  3. # 作者:66RPG技术区版大:灼眼的夏娜
  4. #------------------------------------------------------------------------------
  5. module Conv
  6.   def self.c(str)
  7.    
  8.    m2w = Win32API.new("kernel32","MultiByteToWideChar",'ilpipi','i')
  9.    w2m = Win32API.new("kernel32","WideCharToMultiByte",'ilpipipp','i')
  10.    lcms = Win32API.new("kernel32","LCMapString",'llpipi','i')

  11.    len = m2w.call(65001,0,str,-1,nil,0)
  12.    buf = "\0"*(len*2)

  13.    m2w.call(65001,0,str,-1,buf,len)

  14.    len = w2m.call(0,0,buf,-1,nil,0,nil,nil)
  15.    ret = "\0"*len

  16.    w2m.call(0,0,buf,-1,ret,len,nil,nil)

  17.    len = m2w.call(936,0,ret,-1,nil,0)
  18.    buf01 = "\0"*(len*2+1)
  19.    lcms.call(0x0804,0x04000000,ret,-1,buf01,len*2)
  20.    
  21.    len = m2w.call(0,0,buf01,-1,nil,0)
  22.    buf = "\0" * (len*2)
  23.    m2w.call(0,0,buf01,-1,buf,len)

  24.    len = w2m.call(65001,0,buf,-1,nil,0,nil,nil)
  25.    ret = "\0" * (len-1)
  26.    w2m.call(65001,0,buf,-1,ret,len-1,nil,nil)
  27.    
  28.    return ret
  29. end

  30. end

  31. class Bitmap
  32.   unless $I_LOVE_RMXP_6RWORDCONV
  33.     alias dx draw_text
  34.     def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0)
  35.       case p1
  36.       when Rect
  37.         str = Conv.c(p2)
  38.         dx(p1, str, p3)
  39.       else
  40.         str = Conv.c(p5)
  41.         dx(p1, p2, p3, p4, str, p6)
  42.       end
  43.     end
  44.     $I_LOVE_RMXP_6RWORDCONV = true
  45.   end
  46. end
复制代码


              [本贴由 叶舞枫 于 2007-4-22 22:20:45 进行了编辑]
作者: 两只鱼    时间: 2006-11-6 05:59
发现了隐藏的表情~
作者: RockK    时间: 2006-11-6 06:08
以下引用两只鱼于2006-11-5 21:59:59的发言:

发现了隐藏的表情~


[本贴由作者于 2006-11-5 22:03:10 最后编辑]

啊!~~~~~  洋葱头  我都没有!!
都在那里下载的!!{/ll}

统统告诉我!!{/dk}
作者: 雷欧纳德    时间: 2006-11-6 06:21

不可以太水哦!
作者: link006007    时间: 2006-11-6 06:23
直接对RM里面的数据(说明,文章之类)进行转换?!
不太明白!(不过应该不会{/gg})
作者: 雷欧纳德    时间: 2006-11-6 07:26
  1. module Conv
  2.   
  3.   def self.c(str)
  4.    
  5.     m2w = Win32API.new("kernel32","MultiByteToWideChar",'ilpipi','i')
  6.     w2m = Win32API.new("kernel32","WideCharToMultiByte",'ilpipipp','i')
  7.     lcms = Win32API.new("kernel32","LCMapString",'llpipi','i')

  8.     len = m2w.call(65001,0,str,-1,nil,0)
  9.     buf = "\0"*(len*2)

  10.     m2w.call(65001,0,str,-1,buf,len)

  11.     len = w2m.call(0,0,buf,-1,nil,0,nil,nil)
  12.     ret = "\0"*len

  13.     w2m.call(0,0,buf,-1,ret,len,nil,nil)

  14.     len = m2w.call(936,0,ret,-1,nil,0)
  15.     buf01 = "\0"*(len*2+1)
  16.     lcms.call(0x0804,0x04000000,ret,-1,buf01,len*2)
  17.    
  18.     len = m2w.call(0,0,buf01,-1,nil,0)
  19.     buf = "\0" * (len*2)
  20.     m2w.call(0,0,buf01,-1,buf,len)

  21.     len = w2m.call(65001,0,buf,-1,nil,0,nil,nil)
  22.     ret = "\0" * (len-1)
  23.     w2m.call(65001,0,buf,-1,ret,len-1,nil,nil)
  24.    
  25.     return ret
  26.   end
  27.   
  28. end
复制代码


Covn.c(str)
作者: 柳柳    时间: 2006-11-6 07:48

API果然方便,省事了。
作者: ZERO平氏明华    时间: 2006-11-6 15:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雷欧纳德    时间: 2006-11-6 18:41
貌似圣姑的“圣”没有转成繁体字啊?
作者: DODI    时间: 2006-11-6 19:08

这个怎么发的
另外...这个脚本...好ORZ...拿回去看看
作者: link006007    时间: 2006-11-6 20:20
{/ll}  API... ...
果然是好东西!!
作者: 依依    时间: 2006-11-6 20:44
哇哦~~~这个好呢
作者: 叼烟的男孩    时间: 2006-11-6 20:48
..恩...夏好厉害啊
作者: 柳柳    时间: 2006-11-6 20:57
以下引用雷欧纳德于2006-11-6 10:41:44的发言:

貌似圣姑的“圣”没有转成繁体字啊?

的确哦,怎么回事呢{/gg}
作者: DODI    时间: 2006-11-6 21:09
聖姑嗎
原來繁體字是這麽寫的...
一直都以爲這個“聖”就是圣啦~~
作者: 雷欧纳德    时间: 2006-11-6 22:26
以下引用雷欧纳德于2006-11-6 10:41:44的发言:

貌似圣姑的“圣”没有转成繁体字啊?

ms真的呢....什么原因呢...先看看去...{/gg}
作者: 夜雨莹心    时间: 2006-12-2 01:22
{/fd}好神奇的东东捏
作者: 依依    时间: 2006-12-2 01:53
晕``````````居然出现了
作者: ikki    时间: 2006-12-2 02:27
以下引用夜雨莹心于2006-12-1 17:22:22的发言:

好神奇的东东捏

喂,孩子几个月了?{/fd}
作者: 舞舞    时间: 2006-12-2 21:10
这个很好用{/dy}
作者: vzxken    时间: 2006-12-22 04:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: friday5xue    时间: 2006-12-22 11:13
脚本白痴~~~~用工具的人飘过~~~
作者: ji3zp329    时间: 2007-5-9 01:51
對這篇有看沒有懂呢.....
作者: ~雪風~    时间: 2007-6-19 18:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 皇鹧玲    时间: 2007-6-19 19:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 上官展玉    时间: 2007-6-22 17:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水晶凌    时间: 2008-3-17 23:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-3-18 05:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水晶凌    时间: 2008-3-18 05:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 做游戏的新手    时间: 2008-3-26 02:26
只看懂了通过Win32API调用DLL?
作者: danny8376    时间: 2008-7-6 06:28
以下引用水晶凌于2008-3-17 21:50:57的发言:

Menu里面新增加:
1。系统语言设置
2。系统音量控制
3。系统界面[皮肤]选择
4。系统操作手柄设置[快捷键的定义]
…………
不过我只会系统界面[皮肤]选择!


1.请先把各种语言准备好
在脚本中
不要直接输入字串而改用先判断语言在输出对应的字串

在事件中
用条件分歧判断语言
在输出各语言的对话(乱码问题请自行解决或用RMVX)

这会是个大工程
部建议做
会做到死


2.很简单
在System中
把XXX_play(XXX)
中的
Audio.XXX_play("Audio/XXX
/" + XXX.name, XXX.volume, XXX.pitch)

XXX.volume
改为
XXX.volume * 当前设置音量 / 音量最大值


4.这方面除了用内建的F1外就是用到API
我也不知




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