幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: liqunsz

[已解决] 一次性片头动画如何制作?

[复制链接]

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-6-29 20:07:39 | 显示全部楼层
有?("Save/OPENING.rxdata") 的话 就 不会 p 1
没有的话会新建

把 p 1 换成Flash就好了。。。

我还想做高级点的。。。发现这个东西也用不了多高级。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-6-29 20:08:39 | 显示全部楼层
另外补充一点。。。没有save文件夹的话 会杯具
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

10

主题

85

帖子

258

积分

③业余

脚本万年废柴

积分
258
QQ
 楼主| 发表于 2010-6-29 20:51:19 | 显示全部楼层
成功了哦噢噢噢噢…………
BTW,这一段是附在RMFlash脚本后面的,我不知道怎么,弄得故障了,井号掉了以后B键退出功能又没了
不知道什么故障呢
undefined method '[]' for nil:NilClass

  1. #Flash 播放器 v1.3   作者:灼眼的夏娜
  2. class String
  3.   
  4.   CP_ACP = 0
  5.   CP_UTF8 = 65001
  6.   
  7.   def u2s
  8.     m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
  9.     w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
  10.    
  11.     len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
  12.     buf = "\\0" * (len*2)
  13.     m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)
  14.    
  15.     len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
  16.     ret = "\\0" * len
  17.     w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
  18.    
  19.     return ret
  20.   end
  21.   
  22.   def s2u
  23.     m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
  24.     w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
  25.   
  26.     len = m2w.call(CP_ACP, 0, self, -1, nil, 0);
  27.     buf = "\\0" * (len*2)
  28.     m2w.call(CP_ACP, 0, self, -1, buf, buf.size/2);
  29.   
  30.     len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
  31.     ret = "\\0" * len
  32.     w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
  33.      
  34.     return ret
  35.   end
  36.   def s2u!
  37.     self[0, length] = s2u
  38.   end  
  39.   
  40.   def u2s!
  41.     self[0, length] = u2s
  42.   end
  43.   
  44. end
  45. class Bitmap
  46.   
  47.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  48.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  49.   def address
  50.     buffer, ad = "xxxx", object_id * 2 + 16
  51.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
  52.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
  53.     RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
  54.   end
  55.   
  56. end
  57. class RMFlash
  58.     API_NEW              = Win32API.new("RMFlash", "_new", "piil", "l")
  59.     API_UPDATE        = Win32API.new("RMFlash", "_update", "l", "v")
  60.     API_FREE          = Win32API.new("RMFlash", "_free", "l", "v")
  61.     API_PLAYING     = Win32API.new("RMFlash", "_is_playing", "l", "i")
  62.     API_PAUSE          = Win32API.new("RMFlash", "_pause", "l", "v")
  63.     API_RESUME        = Win32API.new("RMFlash", "_resume", "l", "v")
  64.     API_BACK          = Win32API.new("RMFlash", "_back", "l", "v")
  65.     API_REWIND        = Win32API.new("RMFlash", "_rewind", "l", "v")
  66.     API_FORWARD        = Win32API.new("RMFlash", "_forward", "l", "v")
  67.     API_CURFRAME      = Win32API.new("RMFlash", "_cur_frame", "l", "i")
  68.     API_TOTALFRAME    = Win32API.new("RMFlash", "_total_frames", "l", "i")
  69.     API_GOTOFRAME      = Win32API.new("RMFlash", "_goto_frame", "li", "v")
  70.     API_GETLOOP          = Win32API.new("RMFlash", "_get_loop", "l", "i")
  71.     API_SETLOOP          = Win32API.new("RMFlash", "_set_loop", "li", "v")
  72.     API_CLEARALL      = Win32API.new("RMFlash", "_clear_all", "v", "v")
  73.   API_VALID       = Win32API.new("RMFlash", "_valid", "l", "i")
  74.   API_SENDMSG     = Win32API.new("RMFlash", "_send_message", "liii", "l")
  75.    
  76.   CUR_PATH        = Dir.pwd
  77.   
  78.     def self.get_version
  79.     end
  80.     def self.clear_all
  81.         API_CLEARALL.call
  82.     end
  83.   
  84.   def self.load(name, width, height, v = nil)
  85.     new("#{CUR_PATH}/#{name}".u2s, width, height, v)
  86.   end
  87.   
  88.   attr_reader   :valid
  89.     def initialize(flash_name, flash_width, flash_height, viewport = nil)
  90.         @sprite = Sprite.new(viewport)
  91.         @sprite.bitmap = Bitmap.new(flash_width, flash_height)
  92.         @value = API_NEW.call(flash_name, flash_width, flash_height, @sprite.bitmap.address)
  93.         @loop = API_GETLOOP.call(@value) > 0
  94.     @valid = API_VALID.call(@value) > 0
  95.     end
  96.     def viewport
  97.         @sprite.viewport
  98.     end
  99.     def update
  100.         API_UPDATE.call(@value)
  101.     end
  102.     def dispose
  103.         API_FREE.call(@sprite.bitmap.address)
  104.     @sprite.dispose#AVG
  105.     end
  106.     def playing?
  107.         API_PLAYING.call(@value) > 0
  108.     end
  109.     def pause
  110.         API_PAUSE.call(@value)
  111.     end
  112.     def resume
  113.         API_RESUME.call(@value)
  114.     end
  115.     def back
  116.         API_BACK.call(@value)
  117.     end
  118.     def rewind
  119.         API_REWIND.call(@value)
  120.     end
  121.     def forward
  122.         API_FORWARD.call(@value)
  123.     end
  124.     def current_frame
  125.         API_CURFRAME.call(@value)
  126.     end
  127.     def total_frames
  128.         API_TOTALFRAME.call(@value)
  129.     end
  130.     def goto_frame(goal_frame)
  131.         API_GOTOFRAME.call(@value, goal_frame)
  132.     end
  133.     def x
  134.         @sprite.x
  135.     end
  136.     def x=(v)
  137.         @sprite.x = v
  138.     end
  139.     def y
  140.         @sprite.y
  141.     end
  142.     def y=(v)
  143.         @sprite.y = v
  144.     end
  145.     def z
  146.         @sprite.z
  147.     end
  148.     def z=(v)
  149.         @sprite.z = v
  150.     end
  151.     def width
  152.         @sprite.bitmap.width
  153.     end
  154.     def height
  155.         @sprite.bitmap.height
  156.     end
  157.     def loop?
  158.         @loop
  159.     end
  160.     def loop=(v)
  161.         if @loop != v
  162.             @loop = v
  163.             API_SETLOOP.call(@value, v)
  164.         end
  165.     end
  166.   
  167.   def msg_to_flash(msg, wParam, lParam)
  168.     return API_SENDMSG.call(@value, msg, wParam, lParam)
  169.   end
  170.   
  171.   #  例
  172.   WM_MOUSEMOVE  = 0x0200
  173.   
  174.   def make_long(a, b)
  175.     return (a & 0xffff ) | (b & 0xffff) << 16
  176.   end
  177.   
  178.   def on_mouse_move(x, y)
  179.     return msg_to_flash(WM_MOUSEMOVE, 0, make_long(x, y))
  180.   end
  181. end
  182. module Kernel
  183.   alias origin_exit exit unless method_defined? :exit
  184.   
  185.   def exit(*args)
  186.     RMFlash.clear_all
  187.     origin_exit(*args)
  188.   end
  189.   
  190. end
  191. #fls = RMFlash.load("2.swf", 640, 480)
  192. #while true
  193. #    Graphics.update
  194. #    Input.update
  195. #    fls.update
  196. #    break if Input.trigger?(13)
  197. #end
  198. #fls.dispose
  199. #exit
  200. =begin
  201. class RMFlash
  202.   API_NEW = Win32API.new("RMFlash", "_new", "piil", "l")
  203.   API_UPDATE = Win32API.new("RMFlash", "_update", "l", "v")
  204.   API_FREE = Win32API.new("RMFlash", "_free", "l", "v")
  205.   #def self.new(*args)
  206.   #  obj = super(*args)
  207.   #  obj.send :initialize, *args
  208.   #  obj
  209.   #end
  210.   
  211.   def initialize(flashname, fw, fh)
  212.    
  213.   end
  214.   
  215. end
  216. RMFlash.new
  217. exit
  218. =end
  219. #==============AVG新加Flash类播放修改TT======================
  220. class Flash
  221.   def initialize(name,sizex=640,sizey=480,loop=nil,x=0,y=0,z=99999)
  222.     @fls = RMFlash.load(name, sizex, sizey)
  223.     @fls.x = x
  224.     @fls.y = y
  225.     @fls.z = z
  226.     if loop != nil
  227.     @fls.loop = loop
  228.     end
  229. while true
  230.     Graphics.update
  231.     #Input.update
  232.     @fls.update
  233.      break if !@fls.playing?
  234.     if $game_switches[19] == true#AVG如果看片头中跳回标题
  235.             Input.update
  236.           if Input.trigger?(Input::B)
  237.           $scene = Scene_Title.new
  238.           break
  239.         end
  240.       else
  241.         Input.update
  242.         break if Input.trigger?(Input::B)
  243.      end
  244.     end
  245.    @fls.dispose
  246.   end
  247. end
复制代码



就是后面的【AVG新加Flash类播放修改】的故障
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-6-29 21:06:04 | 显示全部楼层
哪一句报错
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

10

主题

85

帖子

258

积分

③业余

脚本万年废柴

积分
258
QQ
 楼主| 发表于 2010-6-29 21:28:23 | 显示全部楼层

回 13楼(secondsen) 的帖子

【if $game_switches[19] == true#AVG如果看片头中跳回标题】
报错……


先睡了啊~
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-6-29 23:00:40 | 显示全部楼层
你用开关怎么可能能行啊!开关是在Scene_Title中定义的。。。你用的时候还没有定义呢
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

10

主题

85

帖子

258

积分

③业余

脚本万年废柴

积分
258
QQ
 楼主| 发表于 2010-6-30 18:36:47 | 显示全部楼层
我是不想用它那个开关啊……请教一下怎么改可以让这个开关去掉,然后保留在播放动画时按B键退出的功能?

我提供一下整个的Flash脚本原版,怎么变成按B键退出?

范例会自动播放一个叫02的swf,在根目录……
调用时还是用Flash.new吗??
  1. class String
  2.   
  3.   CP_ACP = 0
  4.   CP_UTF8 = 65001
  5.   
  6.   def u2s
  7.     m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
  8.     w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
  9.    
  10.     len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
  11.     buf = "\\0" * (len*2)
  12.     m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)
  13.    
  14.     len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
  15.     ret = "\\0" * len
  16.     w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
  17.    
  18.     return ret
  19.   end
  20.   
  21.   def s2u
  22.     m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
  23.     w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
  24.   
  25.     len = m2w.call(CP_ACP, 0, self, -1, nil, 0);
  26.     buf = "\\0" * (len*2)
  27.     m2w.call(CP_ACP, 0, self, -1, buf, buf.size/2);
  28.   
  29.     len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
  30.     ret = "\\0" * len
  31.     w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
  32.      
  33.     return ret
  34.   end
  35.   def s2u!
  36.     self[0, length] = s2u
  37.   end  
  38.   
  39.   def u2s!
  40.     self[0, length] = u2s
  41.   end
  42.   
  43. end
  44. class Bitmap
  45.   
  46.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  47.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  48.   def address
  49.     buffer, ad = "xxxx", object_id * 2 + 16
  50.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
  51.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
  52.     RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
  53.   end
  54.   
  55. end
  56. class RMFlash
  57.     API_NEW              = Win32API.new("RMFlash", "_new", "piil", "l")
  58.     API_UPDATE        = Win32API.new("RMFlash", "_update", "l", "v")
  59.     API_FREE          = Win32API.new("RMFlash", "_free", "l", "v")
  60.     API_PLAYING     = Win32API.new("RMFlash", "_is_playing", "l", "i")
  61.     API_PAUSE          = Win32API.new("RMFlash", "_pause", "l", "v")
  62.     API_RESUME        = Win32API.new("RMFlash", "_resume", "l", "v")
  63.     API_BACK          = Win32API.new("RMFlash", "_back", "l", "v")
  64.     API_REWIND        = Win32API.new("RMFlash", "_rewind", "l", "v")
  65.     API_FORWARD        = Win32API.new("RMFlash", "_forward", "l", "v")
  66.     API_CURFRAME      = Win32API.new("RMFlash", "_cur_frame", "l", "i")
  67.     API_TOTALFRAME    = Win32API.new("RMFlash", "_total_frames", "l", "i")
  68.     API_GOTOFRAME      = Win32API.new("RMFlash", "_goto_frame", "li", "v")
  69.     API_GETLOOP          = Win32API.new("RMFlash", "_get_loop", "l", "i")
  70.     API_SETLOOP          = Win32API.new("RMFlash", "_set_loop", "li", "v")
  71.     API_CLEARALL      = Win32API.new("RMFlash", "_clear_all", "v", "v")
  72.   API_VALID       = Win32API.new("RMFlash", "_valid", "l", "i")
  73.   API_SENDMSG     = Win32API.new("RMFlash", "_send_message", "liii", "l")
  74.    
  75.   CUR_PATH        = Dir.pwd
  76.   
  77.     def self.get_version
  78.     end
  79.     def self.clear_all
  80.         API_CLEARALL.call
  81.     end
  82.   
  83.   def self.load(name, width, height, v = nil)
  84.     new("#{CUR_PATH}/#{name}".u2s, width, height, v)
  85.   end
  86.   
  87.   attr_reader   :valid
  88.     def initialize(flash_name, flash_width, flash_height, viewport = nil)
  89.         @sprite = Sprite.new(viewport)
  90.         @sprite.bitmap = Bitmap.new(flash_width, flash_height)
  91.         @value = API_NEW.call(flash_name, flash_width, flash_height, @sprite.bitmap.address)
  92.         @loop = API_GETLOOP.call(@value) > 0
  93.     @valid = API_VALID.call(@value) > 0
  94.     end
  95.     def viewport
  96.         @sprite.viewport
  97.     end
  98.     def update
  99.         API_UPDATE.call(@value)
  100.     end
  101.     def dispose
  102.         API_FREE.call(@sprite.bitmap.address)
  103.     end
  104.     def playing?
  105.         API_PLAYING.call(@value) > 0
  106.     end
  107.     def pause
  108.         API_PAUSE.call(@value)
  109.     end
  110.     def resume
  111.         API_RESUME.call(@value)
  112.     end
  113.     def back
  114.         API_BACK.call(@value)
  115.     end
  116.     def rewind
  117.         API_REWIND.call(@value)
  118.     end
  119.     def forward
  120.         API_FORWARD.call(@value)
  121.     end
  122.     def current_frame
  123.         API_CURFRAME.call(@value)
  124.     end
  125.     def total_frames
  126.         API_TOTALFRAME.call(@value)
  127.     end
  128.     def goto_frame(goal_frame)
  129.         API_GOTOFRAME.call(@value, goal_frame)
  130.     end
  131.     def x
  132.         @sprite.x
  133.     end
  134.     def x=(v)
  135.         @sprite.x = v
  136.     end
  137.     def y
  138.         @sprite.y
  139.     end
  140.     def y=(v)
  141.         @sprite.y = v
  142.     end
  143.     def z
  144.         @sprite.z
  145.     end
  146.     def z=(v)
  147.         @sprite.z = v
  148.     end
  149.     def width
  150.         @sprite.bitmap.width
  151.     end
  152.     def height
  153.         @sprite.bitmap.height
  154.     end
  155.     def loop?
  156.         @loop
  157.     end
  158.     def loop=(v)
  159.         if @loop != v
  160.             @loop = v
  161.             API_SETLOOP.call(@value, v)
  162.         end
  163.     end
  164.   
  165.   def msg_to_flash(msg, wParam, lParam)
  166.     return API_SENDMSG.call(@value, msg, wParam, lParam)
  167.   end
  168.   
  169.   #  例
  170.   WM_MOUSEMOVE  = 0x0200
  171.   
  172.   def make_long(a, b)
  173.     return (a & 0xffff ) | (b & 0xffff) << 16
  174.   end
  175.   
  176.   def on_mouse_move(x, y)
  177.     return msg_to_flash(WM_MOUSEMOVE, 0, make_long(x, y))
  178.   end
  179. end
  180. module Kernel
  181.   alias origin_exit exit unless method_defined? :exit
  182.   
  183.   def exit(*args)
  184.     RMFlash.clear_all
  185.     origin_exit(*args)
  186.   end
  187.   
  188. end
  189. fls = RMFlash.load("2.swf", 640, 480)
  190. while true
  191.     Graphics.update
  192.     Input.update
  193.     fls.update
  194.     break if Input.trigger?(13)
  195. end
  196. fls.dispose
  197. exit
  198. =begin
  199. class RMFlash
  200.   API_NEW = Win32API.new("RMFlash", "_new", "piil", "l")
  201.   API_UPDATE = Win32API.new("RMFlash", "_update", "l", "v")
  202.   API_FREE = Win32API.new("RMFlash", "_free", "l", "v")
  203.   #def self.new(*args)
  204.   #  obj = super(*args)
  205.   #  obj.send :initialize, *args
  206.   #  obj
  207.   #end
  208.   
  209.   def initialize(flashname, fw, fh)
  210.    
  211.   end
  212.   
  213. end
  214. RMFlash.new
  215. exit
  216. =end
复制代码

夏娜大的原脚本,不是改过的,原始范例里面放在Game_Temp的上面,调用了两个外部的,一个是【RMFlash.dll】,一个是Flash.ocx

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

10

主题

85

帖子

258

积分

③业余

脚本万年废柴

积分
258
QQ
 楼主| 发表于 2010-7-1 21:48:03 | 显示全部楼层
版大不见了,下载了脚本和调用……
呆在论坛主页??挂机??
…………呼叫ING~
睡觉了…………
回复 支持 反对

使用道具 举报

10

主题

85

帖子

258

积分

③业余

脚本万年废柴

积分
258
QQ
 楼主| 发表于 2010-7-2 21:33:05 | 显示全部楼层
………………已解决~
主楼已更新~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-2 13:11 , Processed in 0.024392 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表