Project1
标题:
RGSS里怎么获取RTP路径
[打印本页]
作者:
zh99998
时间:
2009-2-9 15:28
标题:
RGSS里怎么获取RTP路径
路径带中文的……
[LINE]1,#dddddd[/LINE]
RGSSGetRTPPath
RGSSGetPathWithRTP
有这两个API函数,在RMXP里成功获取出来,VX不会用
RGSSGetRTPPath = Win32API.new("RGSS103J", "RGSSGetRTPPath", "l", "l")
RGSSGetPathWithRTP = Win32API.new("RGSS103J", "RGSSGetPathWithRTP", "l", "p")
p RGSSGetPathWithRTP.call(RGSSGetRTPPath.call(1))
VX里把那个103J换成200J或202E都只出个
盘符
("C"或"D")
[LINE]1,#dddddd[/LINE]
RGSSClearRTPPath之后,游戏还能正常运行
这是不是说明程序在一开始读取了RTP路径之后,就保存到某个变量里而不需要再次进行读取了
那么,用脚本能不能把程序已经读取到的RTP路径给读出来
作者:
chenyin
时间:
2009-2-9 15:36
HKEY_LOCAL_MACHINE\SOFTWARE\Enterbrain\RGSS2\RTP
在该键值设定RTP目录
回LX,问题是怎么获取?
作者:
Aligatou
时间:
2009-2-9 15:39
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-9 16:37
那,怎么读
Ruby的Win32::Registry支持中文吗
作者:
RXVincent
时间:
2009-2-9 16:45
http://rpg.blue/viewthread.php?tid=98663&ntime=2009%2D2%2D9+8%3A44%3A47
这是XP的,可以看看VX能不能用 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
zh99998
时间:
2009-2-9 16:48
不支持中文路径
Ruby的Registry也是这样
作者:
zh99998
时间:
2009-2-9 23:06
顶起……
作者:
光的圆周率
时间:
2009-2-10 00:01
获得地址后是使用这个脚本转转码?
#------------------------------------------------------------------------------
# Moonlight INN
# http://cgi.members.interq.or.jp/aquarius/rasetsu/
# RaTTiE
#
[email protected]
#------------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================
module EasyConv
# API梡掕悢掕媊
CP_ACP = 0
CP_UTF8 = 65001
#--------------------------------------------------------------------------
# 仠 S-JIS -> UTF-8
#--------------------------------------------------------------------------
def s2u(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# S-JIS -> Unicode
len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);
# Unicode -> UTF-8
len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :s2u
#--------------------------------------------------------------------------
# 仠 UTF-8 -> S-JIS
#--------------------------------------------------------------------------
def u2s(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# UTF-8 -> Unicode
len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);
# Unicode -> S-JIS
len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :u2s
end
复制代码
作者:
zh99998
时间:
2009-2-10 00:47
LS的失败……转出来还是有问号
作者:
疯鸡瘫圣老贱
时间:
2009-2-10 02:51
提示:
作者被禁止或删除 内容自动屏蔽
作者:
沉影不器
时间:
2009-2-10 03:26
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-10 04:43
是的,没法Require可以直接粘贴到脚本编辑器里
貌似有
RGSSGetRTPPath
RGSSGetPathWithRTP
两个API函数,在RMXP里能用(楼顶),VX不会用
作者:
zh99998
时间:
2009-2-10 19:14
顶起……
作者:
美兽
时间:
2009-2-10 19:46
RGSSGetRTPPath = Win32API.new("RGSS102J", "RGSSGetRTPPath", "l", "l")
RGSSGetPathWithRTP = Win32API.new("RGSS102J", "RGSSGetPathWithRTP", "l", "p")
p RGSSGetPathWithRTP.call(RGSSGetRTPPath.call(1))
作者:
美兽
时间:
2009-2-10 19:49
VX的DLL文件在哪里?
作者:
zh99998
时间:
2009-2-10 19:55
我放在系统的%Path%里了
从100J到202E全有
上面那个命令可以成功获取RMXP的RTP,但是对于RMVX无效
作者:
美兽
时间:
2009-2-10 20:13
我看了一下,VX的DLL里确实存在这个函数,至于为何不生效不得而知,没时间试了,不好意思。
作者:
zh99998
时间:
2009-2-10 20:14
thanks the same
作者:
yangff
时间:
2009-2-11 01:27
查VX的到处函数
作者:
zh99998
时间:
2009-2-11 01:29
【到处】函数????
作者:
哈根达斯
时间:
2009-2-11 01:33
应该是导出函数- -b
作者:
yangff
时间:
2009-2-11 01:42
module UacTest
def self.Test
File.open("C:\1gGHADSGDFGFHrgedg.txt","wb") rescue(return false)
GC.start
File.delete("C:\1gGHADSGDFGFHrgedg.txt") rescue(return false)
GC.start
return true
end
end
if not UacTest.Test
print "权限不足"
exit
end
作者:
zh99998
时间:
2009-2-11 02:06
楼上的无效
弄出来个盘符{/pz}
[LINE]1,#dddddd[/LINE]
RGSSGetRTPPath = Win32API.new("RGSS202E.dll", "RGSSGetRTPPath", "l", "l")
RGSSGetPathWithRTP = Win32API.new("RGSS202E.dll", "RGSSGetPathWithRTP", "l", "p")
p RGSSGetPathWithRTP.call(RGSSGetRTPPath.call(1))
作者:
沉影不器
时间:
2009-2-11 03:13
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-11 03:41
RGSSGetPathWithRTP有用的,RGSSGetRTPPath返回的只是一个数字,交给RGSSGetPathWithRTP来解析
[LINE]1,#dddddd[/LINE]确实……新增的这个能读出来,默认的那个就只能读出盘符
会不会是……参数改了
XP的可以多个RTP,VX的只有一个,是不是函数的参数不同呢
上面那些脚本都是按照XP的来写的
作者:
沉影不器
时间:
2009-2-11 04:45
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-11 20:36
"D"是盘符,某人的RTP装在C盘就显示"C"
RGSSClearRTPPath之后,游戏还能正常运行
这是不是说明程序在一开始读取了RTP路径之后,就保存到某个变量里而不需要再次进行读取了
那么,用脚本能不能把程序已经读取到的RTP路径给读出来
貌似越来越复杂了{/pz}
作者:
水蓝
时间:
2009-2-12 00:23
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-14 02:29
以下引用
水蓝于2009-2-11 16:23:14
的发言:
我只问怎么知道RGSSGetRTPPath这个函数的
本帖第二页6楼
作者:
水蓝
时间:
2009-2-14 05:40
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-14 20:20
我也不知道那是啥……大概是某个dll分析工具
作者:
dbshy
时间:
2009-2-15 03:48
= =哪位前辈知道?
作者:
沉影不器
时间:
2009-2-15 06:07
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2009-2-15 15:01
>.<跑题了
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1