设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2206|回复: 5
打印 上一主题 下一主题

[已经解决] RMFlash 脚本第62行发生错误……

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
30 小时
注册时间
2013-6-21
帖子
79
跳转到指定楼层
1
发表于 2013-7-29 22:09:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
事件如图



脚本如下

RUBY 代码复制下载
  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.  
  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.  
  46. class Bitmap
  47.  
  48.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  49.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  50.  
  51.   def address
  52.     buffer, ad = "xxxx", object_id * 2 + 16
  53.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
  54.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
  55.     RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
  56.   end
  57.  
  58. end
  59.  
  60. class RMFlash
  61.  
  62.         API_NEW                      = Win32API.new("RMFlash", "_new", "piil", "l")
  63.         API_UPDATE            = Win32API.new("RMFlash", "_update", "l", "v")
  64.         API_FREE              = Win32API.new("RMFlash", "_free", "l", "v")
  65.         API_PLAYING     = Win32API.new("RMFlash", "_is_playing", "l", "i")
  66.         API_PAUSE              = Win32API.new("RMFlash", "_pause", "l", "v")
  67.         API_RESUME            = Win32API.new("RMFlash", "_resume", "l", "v")
  68.         API_BACK              = Win32API.new("RMFlash", "_back", "l", "v")
  69.         API_REWIND            = Win32API.new("RMFlash", "_rewind", "l", "v")
  70.         API_FORWARD            = Win32API.new("RMFlash", "_forward", "l", "v")
  71.         API_CURFRAME          = Win32API.new("RMFlash", "_cur_frame", "l", "i")
  72.         API_TOTALFRAME        = Win32API.new("RMFlash", "_total_frames", "l", "i")
  73.         API_GOTOFRAME          = Win32API.new("RMFlash", "_goto_frame", "li", "v")
  74.         API_GETLOOP                  = Win32API.new("RMFlash", "_get_loop", "l", "i")
  75.         API_SETLOOP                  = Win32API.new("RMFlash", "_set_loop", "li", "v")
  76.         API_CLEARALL          = Win32API.new("RMFlash", "_clear_all", "v", "v")
  77.   API_VALID       = Win32API.new("RMFlash", "_valid", "l", "i")
  78.   API_SENDMSG     = Win32API.new("RMFlash", "_send_message", "liii", "l")
  79.  
  80.   CUR_PATH        = Dir.pwd
  81.  
  82.         def self.get_version
  83.  
  84.         end
  85.  
  86.         def self.clear_all
  87.                 API_CLEARALL.call
  88.         end
  89.  
  90.   def self.load(name, width, height, v = nil)
  91.     new("#{CUR_PATH}/#{name}".u2s, width, height, v)
  92.   end
  93.  
  94.   attr_reader   :valid
  95.  
  96.         def initialize(flash_name, flash_width, flash_height, viewport = nil)
  97.                 [url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new(viewport)
  98.                 @sprite.bitmap = Bitmap.new(flash_width, flash_height)
  99.                 @value = API_NEW.call(flash_name, flash_width, flash_height, @sprite.bitmap.address)
  100.                 @loop = API_GETLOOP.call(@value) > 0
  101.     @valid = API_VALID.call(@value) > 0
  102.         end
  103.  
  104.         def viewport
  105.                 @sprite.viewport
  106.         end
  107.  
  108.         def update
  109.                 API_UPDATE.call(@value)
  110.         end
  111.  
  112.         def dispose
  113.                 API_FREE.call(@sprite.bitmap.address)
  114.     @sprite.bitmap.dispose
  115.     @sprite.dispose
  116.         end
  117.  
  118.         def playing?
  119.                 API_PLAYING.call(@value) > 0
  120.         end
  121.  
  122.         def pause
  123.                 API_PAUSE.call(@value)
  124.         end
  125.  
  126.         def resume
  127.                 API_RESUME.call(@value)
  128.         end
  129.  
  130.         def back
  131.                 API_BACK.call(@value)
  132.         end
  133.  
  134.         def rewind
  135.                 API_REWIND.call(@value)
  136.         end
  137.  
  138.         def forward
  139.                 API_FORWARD.call(@value)
  140.         end
  141.  
  142.         def current_frame
  143.                 API_CURFRAME.call(@value)
  144.         end
  145.  
  146.         def total_frames
  147.                 API_TOTALFRAME.call(@value)
  148.         end
  149.  
  150.         def goto_frame(goal_frame)
  151.                 API_GOTOFRAME.call(@value, goal_frame)
  152.         end
  153.  
  154.         def x
  155.                 @sprite.x
  156.         end
  157.  
  158.         def x=(v)
  159.                 @sprite.x = v
  160.         end
  161.  
  162.         def y
  163.                 @sprite.y
  164.         end
  165.  
  166.         def y=(v)
  167.                 @sprite.y = v
  168.         end
  169.  
  170.         def z
  171.                 @sprite.z
  172.         end
  173.  
  174.         def z=(v)
  175.                 @sprite.z = v
  176.         end
  177.  
  178.         def width
  179.                 @sprite.bitmap.width
  180.         end
  181.  
  182.         def height
  183.                 @sprite.bitmap.height
  184.         end
  185.  
  186.         def loop?
  187.                 @loop
  188.         end
  189.  
  190.         def loop=(v)
  191.                 if @loop != v
  192.                         @loop = v
  193.                         API_SETLOOP.call(@value, v)
  194.                 end
  195.         end
  196.  
  197.   def msg_to_flash(msg, wParam, lParam)
  198.     return API_SENDMSG.call(@value, msg, wParam, lParam)
  199.   end
  200.  
  201.   #  例
  202.   WM_MOUSEMOVE  = 0x0200
  203.  
  204.   def make_long(a, b)
  205.     return (a & 0xffff ) | (b & 0xffff) << 16
  206.   end
  207.  
  208.   def on_mouse_move(x, y)
  209.     return msg_to_flash(WM_MOUSEMOVE, 0, make_long(x, y))
  210.   end
  211.  
  212. end
  213.  
  214. module Kernel
  215.  
  216.   alias origin_exit exit unless method_defined? :exit
  217.  
  218.   def exit(*args)
  219.     RMFlash.clear_all
  220.     origin_exit(*args)
  221.   end
  222.  
  223. end

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

2
发表于 2013-7-30 00:06:17 | 只看该作者
好歹把报错的截图扔上来吧,估计楼主是不是没有将范例里的dll文件复制进去。

评分

参与人数 1星屑 +66 收起 理由
︶ㄣ牛排ぶ + 66 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
490
在线时间
14 小时
注册时间
2013-6-1
帖子
4
3
发表于 2013-7-30 11:00:57 | 只看该作者
本帖最后由 123455555 于 2013-7-30 11:02 编辑

我也遇到了这个错误
错误信息是:
脚本'RMFlash' 的62行 发生了 RunTimeError。
LoadLibrary: RMFlash
-------------------------------------
现在好了……自行看了一遍,确实是没复制dll。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

4
发表于 2013-7-30 11:51:35 | 只看该作者
范例内带的DLL复制到游戏文件夹内了吗?

评分

参与人数 1星屑 +66 收起 理由
︶ㄣ牛排ぶ + 66 认可答案

查看全部评分

大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
30 小时
注册时间
2013-6-21
帖子
79
5
 楼主| 发表于 2013-7-30 22:20:04 | 只看该作者
美丽晨露 发表于 2013-7-30 11:51
范例内带的DLL复制到游戏文件夹内了吗?

复制后解决了 谢谢~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
30 小时
注册时间
2013-6-21
帖子
79
6
 楼主| 发表于 2013-7-30 22:20:27 | 只看该作者
弗雷德 发表于 2013-7-30 00:06
好歹把报错的截图扔上来吧,估计楼主是不是没有将范例里的dll文件复制进去。 ...

复制后解决了 感谢~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-26 21:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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