Project1

标题: 繁体字程序如何转化简体字程序 [打印本页]

作者: 天津包子    时间: 2008-4-15 20:07
标题: 繁体字程序如何转化简体字程序
各位前辈好我是新人还是个小菜各位老大多多指点。谢谢!
作者: 雪流星    时间: 2008-4-15 20:24
之前有人写过这个的脚本
请去主站上寻找

不过是XP的,不知VX是否适用{/pz}
作者: 火鸡三毛老大    时间: 2008-4-15 21:31
  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
复制代码


AIP脚本 XP、VX公用  好像没有BUG


作者: 雪流星    时间: 2008-4-16 07:06
火鸡你这样会害新人变成伸手党喔

还是给连结会比较好{/wx}

让新人自己多逛逛6R好了
作者: 火鸡三毛老大    时间: 2008-4-16 20:17
以下引用snstar2006于2008-4-15 23:06:04的发言:

火鸡你这样会害新人变成伸手党喔

还是给连结会比较好

让新人自己多逛逛6R好了


额...我以前好像也.....
在一次做错事...{/dk}
作者: 八云紫    时间: 2008-4-17 01:54
以下引用火鸡三毛老大于2008-4-15 13:31:23的发言:
AIP脚本 XP、VX公用  好像没有BUG


修正一下,是API(Application Programming Interface),不是AIP。

作者: kiroty    时间: 2008-4-21 05:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 3535    时间: 2008-4-21 05:39
以下引用火鸡三毛老大于2008-4-15 13:31:23的发言:
AIP脚本 XP、VX公用  好像没有BUG

你这是“简体 -> 繁体”
lz是“繁体 -> 简体”

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

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

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

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

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

  len = m2w.call(936,0,ret,-1,nil,0)
  buf01 = "\0"*(len*2+1)
  lcms.call(0x0804,0x02000000,ret,-1,buf01,len*2)
  
  len = m2w.call(0,0,buf01,-1,nil,0)
  buf = "\0" * (len*2)
  m2w.call(0,0,buf01,-1,buf,len)

  len = w2m.call(65001,0,buf,-1,nil,0,nil,nil)
  ret = "\0" * (len-1)
  w2m.call(65001,0,buf,-1,ret,len-1,nil,nil)
  
  return ret
end

end

class Bitmap
unless $I_LOVE_RMXP_6RWORDCONV
   alias dx draw_text
   def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0)
     case p1
     when Rect
       str = Conv.c(p2)
       dx(p1, str, p3)
     else
       str = Conv.c(p5)
       dx(p1, p2, p3, p4, str, p6)
     end
   end
   $I_LOVE_RMXP_6RWORDCONV = true
end
end

作者: kiroty    时间: 2008-4-21 11:30
提示: 作者被禁止或删除 内容自动屏蔽




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