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

Project1

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

[已经过期] 求此脚本如何设置按键跳过?

[复制链接]

Lv2.观梦者

梦石
0
星屑
365
在线时间
812 小时
注册时间
2012-4-2
帖子
1867

开拓者

跳转到指定楼层
1
发表于 2012-5-14 12:31:19 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
  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?(input::A)
  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
复制代码
夏娜大人的FLASH播放脚本,第二次提问了,如何设置按键跳过呢……

人总是在进步的!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2012-5-12
帖子
29
10
发表于 2012-5-15 23:26:07 | 只看该作者
路过!!!
帮顶……

评分

参与人数 1星屑 -40 收起 理由
hcm -40 过路费20,谢谢惠顾。

查看全部评分

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
365
在线时间
812 小时
注册时间
2012-4-2
帖子
1867

开拓者

9
 楼主| 发表于 2012-5-15 11:27:58 | 只看该作者
tommay 发表于 2012-5-15 10:57
额。。。
首先,确定一下你的按键设置有没有问题;
然后在你上传的那个工程基础上进行修改,只改那个事件, ...

崩溃,依旧无效……
现在用一个笨办法解决了……

人总是在进步的!
回复

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
8
发表于 2012-5-15 10:57:47 | 只看该作者
本帖最后由 tommay 于 2012-5-15 11:00 编辑

额。。。
首先,确定一下你的按键设置有没有问题;
然后在你上传的那个工程基础上进行修改,只改那个事件,别的都别动;
最后,按键之后会有几秒的延时,但是可以通过音乐判断,稍等片刻。
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
365
在线时间
812 小时
注册时间
2012-4-2
帖子
1867

开拓者

7
 楼主| 发表于 2012-5-15 10:51:57 | 只看该作者
tommay 发表于 2012-5-15 09:41
如图。你按“C ”的时候事件也触发呢,让主角向下移动避免触发事件。按键之后等个1-2秒才会退出,可以确定 ...

跳过无力……
一百四十四个键子按了个遍,除了按F12回到主菜单没发现其他反应……
模仿了你那个,加了个设置移动路线,还是没法跳过……
到底差在哪呢……
话说,前辈你改过工程里的脚本么?
直接上事件就能跳过了?
难道是我平时积德太少……
当伸手党压力大啊,面对舆论的谴责问题却又迟迟解决不了……

人总是在进步的!
回复

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
6
发表于 2012-5-15 09:41:45 | 只看该作者
本帖最后由 tommay 于 2012-5-15 09:43 编辑

如图。你按“C ”的时候事件也触发呢,让主角向下移动避免触发事件。按键之后等个1-2秒才会退出,可以确定是dispose的效率问题。。。




‘‘──tommay于2012-5-15 10:12补充以下内容

默认情况下,C是空格键、回车键和C键,具体游戏中按F1自行查看。
另,如果回复我并希望得到我的回答,请用“回复”而不是“点评”,谢谢!
’’

点评

我这边尝试的好HIGH也没看见效果…… 乃那边怎么就好使了? 斗胆问一句默认的“C ” 是哪个键?  发表于 2012-5-15 10:08
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
365
在线时间
812 小时
注册时间
2012-4-2
帖子
1867

开拓者

5
 楼主| 发表于 2012-5-15 08:10:58 | 只看该作者
本帖最后由 DyingCat 于 2012-5-15 08:19 编辑
灵魂の补给 发表于 2012-5-14 18:53
Input 不是input


消掉了注释,i改成了I 进入游戏直接黑屏,按键后跳出……

工程在此
1.25M  大胆不要脸当一回伸手党,只求此脚本能成功实现按键跳过……

人总是在进步的!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
154 小时
注册时间
2011-7-9
帖子
423
4
发表于 2012-5-14 18:53:07 | 只看该作者
Input 不是input
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
365
在线时间
812 小时
注册时间
2012-4-2
帖子
1867

开拓者

3
 楼主| 发表于 2012-5-14 12:57:41 | 只看该作者
灵魂の补给 发表于 2012-5-14 12:34
我好像上次回答过你没理我,.....

去掉注释会有这样的情况发生……

人总是在进步的!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
154 小时
注册时间
2011-7-9
帖子
423
2
发表于 2012-5-14 12:34:48 | 只看该作者
我好像上次回答过你没理我,.....


‘‘──灵魂の补给于2012-5-14 12:36补充以下内容

229行有啊
要按空格跳过改a为C
还有你注视掉干什么

’’

点评

诶?乃是不是换头像了?我记得上次帖子里只有两个给链接的,不过没解决到诶…… 乃有解决办法么?如果可以的话 不胜感激……  发表于 2012-5-14 12:36
New Game:  【QQ堂4.6单机版】(9月新版!【点此】)个人提供快速网盘http://ad.jlweb.tk/upload/ --- 密码:abcdefg
激零工作室孵化中.....网游make中。。招收游戏监督一名,上线时间:5~12 小时 招收脚本员,美工数位。。
本人Q:330639889 验证:zs    ----广:愿意帮我宣传签名的,站内PM
下面的东西是什么?!请进:http://tieba.baidu.com/p/1453289014【2012最新炸弹型ARPG游戏,历时2年间断坚持制作!】
[img=646,262]http://ftp.66rpg.com/WEB_PLUS/attachment/forum/201203/28/1655578kbk8bqkfazk2
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 00:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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