赞 | 0 |
VIP | 1 |
好人卡 | 0 |
积分 | 1 |
经验 | 3179 |
最后登录 | 2013-10-25 |
在线时间 | 140 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 66
- 在线时间
- 140 小时
- 注册时间
- 2012-2-6
- 帖子
- 384
|
本帖最后由 杂兵天下 于 2012-2-10 14:58 编辑
LZ明晃晃的版猪字样瞎了我的钛合金狗眼。。。。class Game_Interpreter def command_303 return if $game_party.in_battle $game_console.run("p \"角色原名:\"+$game_actors[param[0]].name p \"请输入角色新名字\" gnm=s2u(gets) gnm=gnm[0..gnm.length-3] $game_actors[param[0]].name=gnm terminate",@params) wait(50) end end #============================================================================== # ■ [RMVA]基于控制台的Debugger #------------------------------------------------------------------------------ # 版本:1.00b # 作者:光的圆周率 # 许可协议: FSL - NAM # # 已经被我改的面目全非了。 #------------------------------------------------------------------------------ # 脚本来自66RPG.com 转载请保留版权信息 #============================================================================== class Game_Console SetWindowText = Win32API.new("user32", "SetWindowTextA" , "LP", "L") SetFocus = Win32API.new("user32", "SetForegroundWindow" , "L" , "L") GetWindowRect = Win32API.new("user32", "ShowWindow" , "LL" , "L") def terminate#毁尸灭迹。一段toeval代码的最后必须加上terminate。 system("cls") GetWindowRect.call(@Con_hWnd,0) SetFocus.call(@Mai_hWnd) end def initialize @Con_hWnd = get_ChWnd @Mai_hWnd = get_hWnd terminate end def run(toeval="",param=nil) SetFocus.call(@Con_hWnd) SetWindowText.call(@Con_hWnd,"Console") GetWindowRect.call(@Con_hWnd,4) eval toeval end end #============================================================================== # ■ Kernel #------------------------------------------------------------------------------ # 获取游戏窗口及控制台窗口的脚本 # 作者 : 紫苏 #------------------------------------------------------------------------------ # 脚本来自66RPG.com 转载请保留版权信息 #============================================================================== module Kernel GetWindowThreadProcessId = Win32API.new("user32", "GetWindowThreadProcessId", "LP", "L") GetWindow = Win32API.new("user32", "GetWindow", "LL", "L") GetClassName = Win32API.new("user32", "GetClassName", "LPL", "L") GetCurrentThreadId = Win32API.new("kernel32", "GetCurrentThreadId", "V", "L") GetForegroundWindow = Win32API.new("user32", "GetForegroundWindow", "V", "L") def get_hWnd threadID = GetCurrentThreadId.call hWnd = GetWindow.call(GetForegroundWindow.call, 0) while hWnd != 0 if threadID == GetWindowThreadProcessId.call(hWnd, 0) className = " " * 11 GetClassName.call(hWnd, className, 12) break if className == "RGSS Player" end hWnd = GetWindow.call(hWnd, 2) end return hWnd end def get_ChWnd threadID = GetCurrentThreadId.call hWnd = GetWindow.call(GetForegroundWindow.call, 0) while hWnd != 0 if threadID == GetWindowThreadProcessId.call(hWnd, 0) className = " " * 18 GetClassName.call(hWnd, className, 19) break if className == "ConsoleWindowClass" end hWnd = GetWindow.call(hWnd, 2) end return hWnd end end
class Game_Interpreter
def command_303
return if $game_party.in_battle
$game_console.run("p \"角色原名:\"+$game_actors[param[0]].name
p \"请输入角色新名字\"
gnm=s2u(gets)
gnm=gnm[0..gnm.length-3]
$game_actors[param[0]].name=gnm
terminate",@params)
wait(50)
end
end
#==============================================================================
# ■ [RMVA]基于控制台的Debugger
#------------------------------------------------------------------------------
# 版本:1.00b
# 作者:光的圆周率
# 许可协议: FSL - NAM
#
# 已经被我改的面目全非了。
#------------------------------------------------------------------------------
# 脚本来自66RPG.com 转载请保留版权信息
#==============================================================================
class Game_Console
SetWindowText = Win32API.new("user32", "SetWindowTextA" , "LP", "L")
SetFocus = Win32API.new("user32", "SetForegroundWindow" , "L" , "L")
GetWindowRect = Win32API.new("user32", "ShowWindow" , "LL" , "L")
def terminate#毁尸灭迹。一段toeval代码的最后必须加上terminate。
system("cls")
GetWindowRect.call(@Con_hWnd,0)
SetFocus.call(@Mai_hWnd)
end
def initialize
@Con_hWnd = get_ChWnd
@Mai_hWnd = get_hWnd
terminate
end
def run(toeval="",param=nil)
SetFocus.call(@Con_hWnd)
SetWindowText.call(@Con_hWnd,"Console")
GetWindowRect.call(@Con_hWnd,4)
eval toeval
end
end
#==============================================================================
# ■ Kernel
#------------------------------------------------------------------------------
# 获取游戏窗口及控制台窗口的脚本
# 作者 : 紫苏
#------------------------------------------------------------------------------
# 脚本来自66RPG.com 转载请保留版权信息
#==============================================================================
module Kernel
GetWindowThreadProcessId = Win32API.new("user32", "GetWindowThreadProcessId", "LP", "L")
GetWindow = Win32API.new("user32", "GetWindow", "LL", "L")
GetClassName = Win32API.new("user32", "GetClassName", "LPL", "L")
GetCurrentThreadId = Win32API.new("kernel32", "GetCurrentThreadId", "V", "L")
GetForegroundWindow = Win32API.new("user32", "GetForegroundWindow", "V", "L")
def get_hWnd
threadID = GetCurrentThreadId.call
hWnd = GetWindow.call(GetForegroundWindow.call, 0)
while hWnd != 0
if threadID == GetWindowThreadProcessId.call(hWnd, 0)
className = " " * 11
GetClassName.call(hWnd, className, 12)
break if className == "RGSS Player"
end
hWnd = GetWindow.call(hWnd, 2)
end
return hWnd
end
def get_ChWnd
threadID = GetCurrentThreadId.call
hWnd = GetWindow.call(GetForegroundWindow.call, 0)
while hWnd != 0
if threadID == GetWindowThreadProcessId.call(hWnd, 0)
className = " " * 18
GetClassName.call(hWnd, className, 19)
break if className == "ConsoleWindowClass"
end
hWnd = GetWindow.call(hWnd, 2)
end
return hWnd
end
end
奥,我忘记了。
要真正用这个东西必须在Main上写$game_console=Game_Console.new rgss_main { SceneManager.run }
$game_console=Game_Console.new
rgss_main { SceneManager.run }
然后必须用game console命令打开带命令提示符的RGSS Interpreter。
如此麻烦的东西。。。LZ还是不要研究了 |
|