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

Project1

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

[已经过期] 各位大神可以帮我一下吗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
238
在线时间
50 小时
注册时间
2010-7-3
帖子
13
跳转到指定楼层
1
发表于 2016-11-18 02:35:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我在网上找到一个影片播放的脚本,想做一个片头..但会一直重复播放,有谁可以帮我修改一下..改到只播放一次吗?其实原贴有教学..但是我看不明白..原贴(https://forum.gamer.com.tw/C.php?bsn=04918&snA=20313)
拜托帮帮忙
----------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------------------------------------------------------
腳本:
#Final 2016-08-09

class String
CP_ACP = 0
CP_UTF8 = 65001

def u2s
m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")

len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
buf = "\0" * (len*2)
m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)

len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)

return ret
end

def s2u
m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")

len = m2w.call(CP_ACP, 0, self, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_ACP, 0, self, -1, buf, buf.size/2);

len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);

return ret
end

def s2u!
self[0, length] = s2u
end

def u2s!
self[0, length] = u2s
end

end

class Bitmap

RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')

def address
buffer, ad = "xxxx", object_id * 2 + 16
RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
end

end

class RMFlash

API_NEW = Win32API.new("RMFlash", "_new", "piil", "l")
API_UPDATE = Win32API.new("RMFlash", "_update", "l", "v")
API_FREE = Win32API.new("RMFlash", "_free", "l", "v")
API_PLAYING = Win32API.new("RMFlash", "_is_playing", "l", "i")
API_PAUSE = Win32API.new("RMFlash", "_pause", "l", "v")
API_RESUME = Win32API.new("RMFlash", "_resume", "l", "v")
API_BACK = Win32API.new("RMFlash", "_back", "l", "v")
API_REWIND = Win32API.new("RMFlash", "_rewind", "l", "v")
API_FORWARD = Win32API.new("RMFlash", "_forward", "l", "v")
API_CURFRAME = Win32API.new("RMFlash", "_cur_frame", "l", "i")
API_TOTALFRAME = Win32API.new("RMFlash", "_total_frames", "l", "i")
API_GOTOFRAME = Win32API.new("RMFlash", "_goto_frame", "li", "v")
API_GETLOOP = Win32API.new("RMFlash", "_get_loop", "l", "i")
API_SETLOOP = Win32API.new("RMFlash", "_set_loop", "li", "v")
API_CLEARALL = Win32API.new("RMFlash", "_clear_all", "v", "v")
API_VALID = Win32API.new("RMFlash", "_valid", "l", "i")
API_SENDMSG = Win32API.new("RMFlash", "_send_message", "liii", "l")

CUR_PATH = Dir.pwd

def self.get_version

end

def self.clear_all
API_CLEARALL.call
end

def self.load(name, width, height, v = nil)
new("#{CUR_PATH}/#{name}".u2s, width, height, v)
end

attr_reader :valid

def initialize(flash_name, flash_width, flash_height, viewport = nil)
@sprite = Sprite.new(viewport)
@sprite.bitmap = Bitmap.new(flash_width, flash_height)
@value = API_NEW.call(flash_name, flash_width, flash_height, @sprite.bitmap.address)
@loop = API_GETLOOP.call(@value) > 0
@valid = API_VALID.call(@value) > 0
end

def viewport
@sprite.viewport
end

def update
API_UPDATE.call(@value)
end

def dispose
API_FREE.call(@sprite.bitmap.address)
@sprite.bitmap.dispose
@sprite.dispose
end

def playing?
API_PLAYING.call(@value) > 0
end

def pause
API_PAUSE.call(@value)
end

def resume
API_RESUME.call(@value)
end

def back
API_BACK.call(@value)
end

def rewind
API_REWIND.call(@value)
end

def forward
API_FORWARD.call(@value)
end

def current_frame
API_CURFRAME.call(@value)
end

def total_frames
API_TOTALFRAME.call(@value)
end

def goto_frame(goal_frame)
API_GOTOFRAME.call(@value, goal_frame)
end

def x
@sprite.x
end

def x=(v)
@sprite.x = v
end

def y
@sprite.y
end

def y=(v)
@sprite.y = v
end

def z
@sprite.z
end

def z=(v)
@sprite.z = v
end

def width
@sprite.bitmap.width
end

def height
@sprite.bitmap.height
end

def loop?
@loop
end

def loop=(v)
if @loop != v
@loop = v
API_SETLOOP.call(@value, v)
end
end

def msg_to_flash(msg, wParam, lParam)
return API_SENDMSG.call(@value, msg, wParam, lParam)
end

# 例
WM_MOUSEMOVE = 0x0200

def make_long(a, b)
return (a & 0xffff ) | (b & 0xffff) << 16
end

def on_mouse_move(x, y)
return msg_to_flash(WM_MOUSEMOVE, 0, make_long(x, y))
end

end

module Kernel

alias origin_exit exit unless method_defined? :exit

def exit(*args)
RMFlash.clear_all
origin_exit(*args)
end

end

#fls = RMFlash.load("2.swf", 640, 480)

#while true
# Graphics.update
# Input.update
# fls.update
# break if Input.trigger?(13)
#end
#fls.dispose

#exit

=begin
class RMFlash
API_NEW = Win32API.new("RMFlash", "_new", "piil", "l")
API_UPDATE = Win32API.new("RMFlash", "_update", "l", "v")
API_FREE = Win32API.new("RMFlash", "_free", "l", "v")
#def self.new(*args)
# obj = super(*args)
# obj.send :initialize, *args
# obj
#end

def initialize(flashname, fw, fh)

end

end

RMFlash.new
exit
=end

Lv1.梦旅人

梦石
0
星屑
238
在线时间
50 小时
注册时间
2010-7-3
帖子
13
2
 楼主| 发表于 2016-11-18 02:52:29 手机端发表。 | 只看该作者
本帖最后由 kane619john 于 2016-11-18 10:38 编辑

追加一问,这对话能够顯示人物的是什么脚本? va能用吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
238
在线时间
50 小时
注册时间
2010-7-3
帖子
13
3
 楼主| 发表于 2016-11-18 02:54:45 手机端发表。 | 只看该作者
本帖最后由 kane619john 于 2016-11-18 10:37 编辑
kane619john 发表于 2016-11-18 02:52
追加一问,这对话能够提示人物的是什么脚本? va能用吗?


求教,剛才忘記了發圖

Screenshot_2016-11-18-02-48-03.png (70.88 KB, 下载次数: 11)

Screenshot_2016-11-18-02-48-03.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 16:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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