赞 | 0 |
VIP | 40 |
好人卡 | 2 |
积分 | 1 |
经验 | 10932 |
最后登录 | 2016-5-17 |
在线时间 | 462 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 462 小时
- 注册时间
- 2007-7-30
- 帖子
- 643
|
脚本
本帖最后由 david50407 于 2010-12-29 23:10 编辑
回复 精灵使者 的帖子
先写了精灵的脚本 FSL 协议 如下
- #==============================================================================
- # ■ 重定义 Kernel#exit
- # Kernel#exit rewrite
- #----------------------------------------------------------------------------
- # 重定义了 Kernel#exit ,改以Kill 线程的方式进行,至于用途……不方便说噜~
- #----------------------------------------------------------------------------
- # 更新作者: David Kuo
- # 许可协议: FSL -MEE
- # 项目版本: 1.0.1229
- #----------------------------------------------------------------------------
- # 更新信息见下方……
- #==============================================================================
- #----------------------------------------------------------------------------
- # ● 登记 FSL。
- #----------------------------------------------------------------------------
- $fscript = {} if !$fscript
- $fscript['Kernel_Exit_rewrite'] = '1.0.1229'
- #==============================================================================
- # ■ FSL
- #------------------------------------------------------------------------------
- # 自由RGSS脚本通用公开协议的功能模块。
- #==============================================================================
- module FSL
- module Kernel_Exit_rewrite
- TransTime = 20 #transition时长
- #------------------------------------------------------------------------
- # ● 定义需要的 Windows API。
- #------------------------------------------------------------------------
- GetCurrentProcessId = Win32API.new('kernel32', 'GetCurrentProcessId', 'V', 'L')
- TerminateProcess = Win32API.new('kernel32', 'TerminateProcess', 'LL', 'I')
- GetExitCodeProcess = Win32API.new('kernel32', 'GetExitCodeProcess', 'LP', 'I')
- OpenProcess = Win32API.new('kernel32', 'OpenProcess', 'LIL', 'L')
- #GetLastError = Win32API.new('kernel32', 'GetLastError', 'V', 'L')
-
- #--------------------------------------------------------------------------
- # ● 初始化对像。
- #--------------------------------------------------------------------------
- def self.exit
- h = OpenProcess.call(20 | 0x40 | 0x0001, 0, GetCurrentProcessId.call)
- pa = [0].pack "L"
- GetExitCodeProcess.call(h, pa)
- code = pa.unpack("L")
- if TerminateProcess.call(h, code[0]) == 0
- #p GetLastError.call
- end
- end
- end
- end
- class Kernel_Exit_rewrite
- #--------------------------------------------------------------------------
- # ● 初始化对像。
- #--------------------------------------------------------------------------
- def initialize
- end
- def main
- Graphics.transition(FSL::Kernel_Exit_rewrite::TransTime)
- exit
- end
- end
- $Kernel_Exit_rewrite_jump.call if $Kernel_Exit_rewrite_jump
- module Kernel
- def exit(*args)
- FSL::Kernel_Exit_rewrite.exit
- end
- end
- callcc { |$Kernel_Exit_rewrite_jump| } # F12 后的跳转标记
- #==============================================================================
- # 更新信息:
- # - 1.0.1229 By David Kuo
- # * 初版
- #
- #==============================================================================
复制代码 然后在 main while 整个换成:
- while true
- $scene = Kernel_Exit_rewrite.new if $scene == nil
- $scene.main
- end
复制代码 退出时的transition时长 在 模块中定义
10s Hangup问题可参考 紫苏 的 http://rpg.blue/forum.php?mod=viewthread&tid=134316
到Line 126即可 不需要eval 因为有这个exit了 = =bb |
|