赞 | 3 |
VIP | 21 |
好人卡 | 10 |
积分 | 2 |
经验 | 32573 |
最后登录 | 2024-6-13 |
在线时间 | 332 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 155
- 在线时间
- 332 小时
- 注册时间
- 2013-7-6
- 帖子
- 356
|
本帖最后由 wolves 于 2014-7-23 21:52 编辑
你非要弄的话我这儿有个脚本。
内容如下:
在所有脚本运行前面加入以下脚本- if FileTest.exist?("logo.png")
- File.delete("logo.png")
- end
复制代码 在main前加入以下脚本- #==============================================================================
- # ★ Part.1 RMzas! RMODFS For Rmxp
- #------------------------------------------------------------------------------
- # Rock Man Zero Additions Studio Online Download File System
- # Version 2012.10.08.01.SP4 By ML4455739
- #------------------------------------------------------------------------------
- # 使用这个系统,你能在你的游戏和服务器10s网速范围在线下载任意文件。
- # 如果加入Loading画面,便使边玩边下成为可能。感谢亿万星辰提供基础代码。
- #==============================================================================
- =begin
- 说明:
- 1. 本系统几乎无冲突可能,注册了RWA的用户可完美兼容RMzas的在线更新系统。
- 2. 使用本系统前,你的本地计算机需要连接到互联网,同时配备一个服务器。
- 3. 从59行开始直到100行,就是请您自定义的设置。
- 4. 不需要66RPG头像获取的,左拐删除地址补正脚本。
-
- 方法:
- 一,在线下载图片: 下载而来的文件放入指定的Graphics/子文件夹
- 事件脚本:g_dl("图像文件夹子文件夹名","文件名.jpg")
- 例子: g_dl("Autotiles","007-G_Undulation01.png")
- g_dl("Pictures","Dash.png")
-
- 二,在线下载音乐: 下载而来的文件放入指定的Audio/子文件夹
- 事件脚本:a_dl("音乐文件类型名","文件名.mid")
- 例子: a_dl("BGM","057-Negative06.mid")
- a_dl("SE","movesnd.ogg")
-
- 三,在线下载文件: 下载而来的文件放入路径,无路径则在主目录下
- 事件脚本:f_dl("\文件夹名/文件名.xxx")
- 例子: f_dl("news.txt")
- f_dl("\Data/rar/help.rar")
- 方法:
- Interpreter::GURL = "http://rpg.blue/static/image/common/"
- g_dl("Pictures","logo.png")
- 注意:
- I. 虽然RM是有自动分辨后缀名的功能,但你的网络服务器没有,
- 使用事件脚本函数时,请注意写对后缀名,“/”也不能写成“\”,
- 如果文件下载成功却是无效文件,可能就是文件路径相关输入不正确。
- 非直链网盘等下载地址不固定的服务器无法应用本系统。请注意大小写。
-
- II. 下面这个函数可以用于判断文件是否存在,
- 显示、播放前判断一下,避免因不成功下载造成找不到文件报错。
- if FileTest.exist?("\Graphics/Pictures/Zero.jpg")
-
- III. 超过10s未能下载下来的文件或弹出“脚本已备份”并退出,
- 被下载的文件建议不超过1000kb,请为低网速玩家着想。
- 当然,您可以通过其他的脚本来根除这个限制。
-
- IV. 该系统无法代替自动在线更新系统,不能对Data进行版本识别、替换。
-
- V. 该系统会大量消耗服务器的流量,建议图片、音乐、文件三向分流。
- 如果您使用范例中提供的服务器,我们不保证其稳定性。
-
- VI. 删除223行以下的Part.2脚本即可直接不显示任何提示。
-
- =end
- class Interpreter
-
- # ·图片下载所用的服务器根目录网址,可以与音乐的一样
- GURL = "http://rmzas.xp3.biz/"
- # 这个地址可以通过Interpreter::GURL来修改
-
- # ·下载任务开始前弹出的提示,为空字符串则不显示
- READ = ""
-
- # ·图片下载完成后弹出的提示,为空字符串则不显示
- GDOK = ""
-
- # ·图片下载失败后弹出的提示,为空字符串则不显示
- GDNO = ""
-
- # ·音乐下载所用的服务器根目录网址,可以与图片的一样
- AURL = ""
- # 这个地址可以通过Interpreter::AURL来修改
-
- # ·音乐下载完成后弹出的提示,为空字符串则不显示
- ADOK = ""
-
- # ·音乐下载失败后弹出的提示,为空字符串则不显示
- ADNO = ""
-
- # ·文件下载所用的服务器根目录网址,可以与图片的一样
- FURL = "http://rmzas.xp3.biz/"
- # 这个地址可以通过Interpreter::FURL来修改
-
- # ·文件下载完成后弹出的提示,为空字符串则不显示
- FDOK = ""
-
- # ·文件下载失败后弹出的提示,为空字符串则不显示
- FDNO = ""
- # ·即使同名文件已经存在本地也继续进行联网下载。(true/false)
- UNEXIST = false
- # 提示:如果网络上的文件内容有更新的话就可以更新的说,但流量..
-
- # ·因为API操作出现问题时是否退出游戏?(true/false)
- EXIT = false
-
- # ·您是否希望能够得到RMzas工作室的后续支持?(true/false)
- RWA_OK = true # 这可能会些微的占用您的内存,输入false,将取消注册到RMzas
-
- #------------------------------------------------------------------------------
- # RWA 赤翼社区脚本联盟 注册开始
- if RWA_OK
- $rwascript ||= {}
- $rwascript["RMOLDownloadForXP"] = [121008.01]
- end
- # RWA 赤翼社区脚本联盟 注册结束
- #------------------------------------------------------------------------------
- def rwa_chain_api
- return if !RWA_OK
- unless $rwascript.include?("RMOnlineUpdate")
- @@shellexecute = Win32API.new('urlmon.dll', 'URLDownloadToFileA',
- '%w(l p p l l)', 'l')
- end
- end
-
- def g_dl(path, picname)
- dl_process(path, picname, type = "Graphics")
- end
-
- def a_dl(path, sndname)
- dl_process(path, sndname, type = "Audio")
- end
-
- def f_dl(filename)
- path = nil
- dl_process(path, filename, type = "File")
- end
- def dl_process(path, name, type)
- Scene_Map.new.text_show(READ) if $rwascript.include?("RmIMapTextSForXP")
- if !need_download?(path, name, type)
- # 无需下载
- else
- if !get_file_root(path, name, type)
- $scene = nil if EXIT
- else
- Graphics.update
- if !download_full(type)
- $scene = nil if EXIT
- else
- @@dl_into = true
- chain_printer_imts(type)
- end # if !download_fun
- end # if !get_file_root
- end # if !need_download?
- end # def
-
- def need_download?(path, name, type)
- return true if UNEXIST
- if type == "Graphics"
- judge = FileTest.exist?("\Graphics/#{path}/#{name}")
- elsif type == "Audio"
- judge = FileTest.exist?("\Audio/#{path}/#{name}")
- else
- judge = FileTest.exist?("#{name}")
- end
- return (judge ? false : true)
- end
- def get_file_root(path, name, type)
- if type == "Graphics"
- @file_root = ["\Graphics/#{path}/#{name}"]
- elsif type == "Audio"
- @file_root = ["\Audio/#{path}/#{name}"]
- else
- @file_root = ["#{name}"]
- end # if type
- @download_listed = []
- rwa_chain_api if RWA_OK
- return true
- end
- def download_full(type)
- for file in @file_root
- name = file; file = file.split("/")
- url = file[file.size - 1]
- if type == "Graphics"
- url = "#{GURL}" + "#{url}"
- elsif type == "Audio"
- url = "#{AURL}" + "#{url}"
- else
- url = "#{FURL}" + "#{url}"
- end
- if not $rwascript.include?("RMOnlineUpdate")
- shell = @@shellexecute.call(0, url, name, 0, 0)
- else
- shell = $rwascript["RMOnlineUpdate"][1].call(0, url, name, 0, 0)
- end
- if shell != 0
- @@dl_into = false
- chain_printer_imts(type)
- download_ok = false
- return download_ok
- else
- @download_listed.push(file)
- end # if shell != 0
- download_ok = true
- end # for
- end # def
- def chain_printer_imts(type)
- if type == "Graphics"
- @@dl_into ? mes = GDOK : mes = GDNO
- elsif type == "Audio"
- @@dl_into ? mes = ADOK : mes = ADNO
- else
- @@dl_into ? mes = FDOK : mes = FDNO
- end # if type
- if RWA_OK
- if $rwascript.include?("RmIMapTextSForXP")
- Scene_Map.new.text_show("#{mes}")
- else
- print mes if mes != ""
- end
- else
- print mes if mes != ""
- end # if RWA_OK
- end # def
- end # class
- #==============================================================================
- # ★ Part.2 RMzas! IMTS For RMXP
- #------------------------------------------------------------------------------
- # Instant Map Text Show Version 2012.10.03.02 By imsy
- #------------------------------------------------------------------------------
- # Chain RMODFS | 随手一写,此后是坑。
- #------------------------------------------------------------------------------
- # RWA 赤翼社区脚本联盟 注册开始
- # if Interpreter::RWA_OK
- # $rwascript ||= {}
- # $rwascript["RmIMapTextSForXP"] = [121003.02]
- # end
- # RWA 赤翼社区脚本联盟 注册结束
- #------------------------------------------------------------------------------
- #class Scene_Map
-
- # def text_show(d)
- # return if d == ""
- # $imts ||= []
- # $imts[1] ||= 0
- # $imts[1] += 1
- # $imts[0] = Sprite.new
- # $imts[0].bitmap = Bitmap.new(640,480)
- # $imts[0].x = 435
- # $imts[0].y = 5 + $imts[1] * 20
- # $imts[1] = 0 if $imts[0].y > 450
- # $imts[0].z = 5000
- # $imts[0].bitmap.font.name = "黑体"
- # $imts[0].bitmap.font.bold = true
- # $imts[0].bitmap.font.size = 16
- # $imts[0].bitmap.draw_text(0, 0, 220, 25, d, 1)
- # end
-
- # alias text_show_renew update
- # def update
- # text_show_renew
- # return if $imts.class != Array
- # return if $imts[0].class != Sprite
- # return if $imts[0].disposed?
- # $imts[0].update
- # $imts[0].opacity -= 1
- # $imts[0].dispose if $imts[0].opacity <= 0
- # end
-
- #end
复制代码 然后在游戏开始时候建立个事件插入以下脚本自动执行一次:- Interpreter::FURL =
- "http://rpg.blue/static/image/common/"
- f_dl("""logo.png")
复制代码- if FileTest.exist?("logo.png")
- File.delete("logo.png")
- exit
- end
复制代码 |
|