查看: 4765|回复: 4

[已经解决] 关于标题变更

[复制链接]
梦石
0
星屑
50
在线时间
56 小时
注册时间
2014-7-10
回帖
4
发表于 2014-7-10 16:42:53 | 显示全部楼层 |阅读模式

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

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

×
请问该如何做出当某一结局开启以后变更标题的名称呢?
也就是更改这个地方:
QQ图片20140710164049.jpg

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-7-10 17:02:15 | 显示全部楼层
本帖最后由 VIPArcher 于 2014-7-10 18:09 编辑


如果是要在游戏里改标题的名字可以用事件脚本指令(这个只适用于默认标题)
  1. $data_system.game_title = "游戏名"
复制代码
(反正我是不会啦)
别在意这楼,看楼下。
回复

使用道具 举报

…あたしは天

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

开拓者贵宾

发表于 2014-7-10 17:29:16 | 显示全部楼层
本帖最后由 taroxd 于 2014-7-10 17:51 编辑

读取目录下的 Game.ini 文件,然后改了它……

我试了一下,Ruby1.9 似乎并不支持 GB2312 编码。因此请使用英文标题……

在事件脚本中调用这个就可以修改标题了。

[pre lang="ruby" line="1"]
file = File.open(
'Game.ini', 'r+')
string = file.read.sub(
/^Title=.*/,
'Title=new_title')
file.rewind
file.write string
file.close
[/pre]

点评

不管了233,反正楼下有更触的了。我是没有换行的版本在脚本编辑器里测试的……  发表于 2014-7-10 19:02
是啊。好像是参数出错了(0 for 1)  发表于 2014-7-10 19:00
你是英文标题么?  发表于 2014-7-10 18:47
诶,我试了一下,为啥出错了?  发表于 2014-7-10 18:44
大触饶命  发表于 2014-7-10 18:35

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 感谢帮忙

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
108 小时
注册时间
2012-7-3
回帖
44
发表于 2014-7-10 17:49:52 | 显示全部楼层
  1. SetWindowText = Win32API.new 'user32', 'SetWindowText', 'lp', 'l'
  2. SetWindowText.call hwnd, "Hello World"
复制代码
即时刷新,前提是你知道怎样获取窗口句柄(论坛上有)

PS: 中文标题需要转码才能正常显示

评分

参与人数 2星屑 +120 梦石 +1 收起 理由
taroxd + 1 认可答案
喵呜喵5 + 120 大触请收下我的膝盖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2014-7-10 18:39:15 | 显示全部楼层
[pre lang="ruby" line="1"]#==============================================================================
# ■ String
#------------------------------------------------------------------------------
#  为字符串追加编码转换的机能。
#==============================================================================
# 参考:
#http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072(v=vs.85).aspx
#http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130(v=vs.85).aspx
#http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx
#==============================================================================
class String
  #--------------------------------------------------------------------------
  # ● 常量定义
  #--------------------------------------------------------------------------
  MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  WideCharToMultiByte = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  Codepages = {
    :System => 0,     :UTF7   => 65000, :UTF8   => 65001,
    :S_JIS  => 932,   :GB2312 => 936,   :BIG5   => 950,
  }
  #--------------------------------------------------------------------------
  # ● 伪 iconv 编码转换
  #--------------------------------------------------------------------------
  #     s : 原始编码,可使用 Codepages 中的符号或者直接使用代码页值。
  #     d : 目标编码,同上。
  #--------------------------------------------------------------------------
  def iconv s, d
    src  = s.is_a?(Symbol)? Codepages : s
    dest = d.is_a?(Symbol)? Codepages[d] : d
   
    len = MultiByteToWideChar.call src, 0, self, -1, nil, 0
    buf = "\0" * (len * 2)
    MultiByteToWideChar.call src, 0, self, -1, buf, buf.size / 2
   
    len = WideCharToMultiByte.call dest, 0, buf, -1, nil, 0, nil, nil
    ret = "\0" * len
    WideCharToMultiByte.call dest, 0, buf, -1, ret, ret.size, nil, nil
   
    self.respond_to?(:force_encoding) ?
    ret.force_encoding("ASCII-8BIT").delete("\000") :
    ret.delete("\000")
  end
  #--------------------------------------------------------------------------
  # ● 快捷方式:从 ANSI 转为 UTF-8 编码
  #--------------------------------------------------------------------------
  def s2u
    self.respond_to?(:force_encoding) ?
    iconv(:System, :UTF8).force_encoding("utf-8") :
    iconv(:System, :UTF8)
  end
  #--------------------------------------------------------------------------
  # ● 快捷方式:从 UTF-8 转为 ANSI 编码
  #--------------------------------------------------------------------------
  def u2s
    iconv(:UTF8, :System)
  end
end[/pre]
  1. class Game_Interpreter
  2.   def title(str)
  3.     t = File.read("Game.ini").s2u.sub(/^Title=.*/) { "Title="+str } .u2s
  4.     File.open("Game.ini", "w") { |f| f.write t }
  5.     exit
  6.   end
  7. end
复制代码
以上 按照第一个脚本在上的顺序插入这两个脚本

然后在事件脚本中输入 title(新的游戏名) # 可以使用中文
此方法被触发后会自动退出游戏, 所以不想玩家觉得太突兀的话还是游戏中给出一些说明(设定)

点评

谢谢!  发表于 2014-7-11 11:58
太触了,,,,  发表于 2014-7-10 18:54
太触了……还是ruby2.0以上的好啊……  发表于 2014-7-10 18:49
@taroxd 上面那个这么高大上怎么可能是在下写的  发表于 2014-7-10 18:45

评分

参与人数 2星屑 +264 梦石 +1 收起 理由
VIPArcher + 132 + 1 认可答案
taroxd + 132 大触你好、大触再见,虽然我知道上面那段估.

查看全部评分


  -fk: -azogi:
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部