Help - Search - Members - Calendar
Full Version: Working Gif script for RMXP
RPG RPG Revolution Forums > Scripting > Script Submissions > RGSS-Submissions
darkhalo
A very useful script for RMXP that enables use of gif images to be used in your projects.
Potentially it can can be used for any type of animated event including animated face sets
alongside text etc. List is endless really.
From 66rpg.com as I recall, so credit goes to the creator who submitted it there I guess.
Game demo included. (Gif Player)

Gif animated script download
=begin

脚本:【怨念产物 - GIF图片播放】

功能:在游戏中播放GIF图片 ※ 表情优先。

说明: 使用步骤:

1、使用 @gs = GIFSprite.new([viewport,[x,[,y,[loop_counts]]]])
创建GIF图片对象;

2、然后使用 @gs.bitmap = "gif_filename" ※ 包含文件夹路径;

3、可以 @gs.loop_counts = n

设置循环次数,-1表示无限循环(默认的),0就释放图片。

4、@gs.x = x,@gs.y = y,@gs.z = z 等设置各种坐标值。

补充:1、由于考虑的效率问题,提供了生成临时文件技术,

��
��
��
��第一运行之后以后每次运

行会直接读取临时文件生成对象,可以使用 GIFSprite.TmpFileclear 清空临时

文件。

2、可以使用 GIFSprite.pre_load(filename_arr) 数组预加载一组图片。

版本:v1.0

作者:灼眼的夏娜

=end


#==============================================================================
# ■ System
#------------------------------------------------------------------------------
#  处理系统相关的模块 。
#==============================================================================
module System

#--------------------------------------------------------------------------
# ● 模块函数
#--------------------------------------------------------------------------
module_function

#--------------------------------------------------------------------------
# ● API函数声明
#--------------------------------------------------------------------------
WinExec = Win32API.new("kernel32","WinExec",'pi','i')

#--------------------------------------------------------------------------
# ● 查看或修改文件及文件夹属性
# filename :文件或文件夹名字
#
# +a -a :添加、删除 存档 属性
# +r -r :添加、删除 只读 属性
# +s -s :添加、删除 系统 属性
# +h -h :添加、删除 隐藏 属性
#--------------------------------------------------------------------------
def attrib(filename,*args)
if args.empty?
astr = `attrib #{filename}`
attri_arr = Array.new
astr = astr.split(/:/)[0]
astr = astr[0,astr.size - 1]
astr.gsub!(/ /,"")
return astr.split(//)
else
cmdline = ""
for cmdchar in args
cmdchar.downcase!
next if cmdline.include? cmdchar
if ["+a","-a","+r","-r","+s","-s","+h","-h"].include? cmdchar
cmdline += " " + cmdchar
end
end
cmdline += " "
result = WinExec.call("attrib #{cmdline}#{filename}",0)
if result < 31
return
end
end
end

end

#==============================================================================
# ■ GIF
#------------------------------------------------------------------------------
#  分析处理GIF图片的核心模块 。
#==============================================================================
module GIF

# 定义常量
SIZE_GIFH = 6

SIZE_GIFS = 7

SIZE_GIFI = 9

SIZE_GIFC = 6

SIZE_GIFP = 13

SIZE_GIFA = 12

CODE_MASK = [0x0000,
0x0001,0x0003,0x0007,0x000f,
0x001f,0x003f,0x007f,0x00ff,
0x01ff,0x03ff,0x07ff,0x0fff]

INC_TABLE = [8,8,4,2,0]

BGN_TABLE = [0,4,2,1,0]

# 建立文件夹
Dir.mkdir("GIF") unless Dir["*"].include?("GIF")

# 函数定义
module_function

#--------------------------------------------------------------------------
# ● 分解gif图片
#--------------------------------------------------------------------------
def analyze_gif
@old_dir = Dir.pwd
Dir.chdir("GIF")
@total_gif = []
for g in Dir["*"]
suf = g.split(/\./)
if suf[1].is_a?(String) and suf[1].downcase == "gif"
@total_gif.push(g)
Dir.mkdir(suf[0]) unless Dir["*"].include? suf[0]
end
end
@total_gif.each{|file| self.readdata(file)}
Dir.chdir(@old_dir)
p '全部分解完毕,点击确定退出'
exit
end

#--------------------------------------------------------------------------
# ● 读取文件数据:成功返回@gif_infos,失败返回nil
#--------------------------------------------------------------------------
def readdata(filename)
# 检查是否有临时记忆文件
tmp_filename = File.basename(filename,".*")
unless Dir["~TEMP/#{tmp_filename}_infos.fmd"].empty?
begin
giffr = open("~TEMP/#{tmp_filename}_infos.fmd","rb")
tmp_infos = Marshal.load(giffr)
giffr.close
if Dir["~TEMP/#{tmp_filename}_*.png"].size == tmp_infos.total_frames
return tmp_infos
end
rescue
end
end
# 初始化数据
self.initial_var(filename)
# 打开文件
begin
@f = open(filename,"rb")
# 读取文件头
self.read_gifh
# 读取逻辑屏幕描述块
self.read_gifs
# 读取下一个字节
@temp = @f.read(1)[0]
# 循环读取每个图象描述块
while true
if @temp == 0x2c
# 读取图象描述块
self.read_gifi
end
if @temp == 0x21
# 读取图象扩展块
self.read_gife
end
if @temp == 0x3b
break
end
# 读取下一个字节
@temp = @f.read(1)[0]
end
# ※ 设置图象帧数
@gif_infos.total_frames = @frame_count
# ※ 写入图象分解数据
giffw = open("~TEMP/#{@filename}_infos.fmd","wb")
Marshal.dump(@gif_infos,giffw)
giffw.close
rescue
return nil
ensure
@f.close
end
return @gif_infos
end

#--------------------------------------------------------------------------
# ● 初始化变量
#--------------------------------------------------------------------------
def initial_var(filename)
# ※ 生成图象数据对象
@gif_infos = GIFSprite::Infos.new
# 帧数计数
@frame_count = 0
@f = nil
@temp = nil
# 获取文件名
@filename = File.basename(filename,".*")
end

#--------------------------------------------------------------------------
# ● 读取文件头
#--------------------------------------------------------------------------
def read_gifh
@gifh = @f.read(SIZE_GIFH)
if @gifh[0,3] != "GIF"
raise "不是GIF文件!"
end
if @gifh[3,3] != "87a" and @gifh[3,3] != "89a"
raise "不支持的版本!"
end
end

#--------------------------------------------------------------------------
# ● 读取逻辑屏幕描述块
#--------------------------------------------------------------------------
def read_gifs
@gifs = @f.read(SIZE_GIFS).unpack("S2C3")
# 获取调色板位数
@_pal_bits = (@gifs[2] & 7) + 1
# ※ 获取图象宽度
@gif_infos.width = @gifs[0]
# ※ 获取图象高度
@gif_infos.height = @gifs[1]
# 是否有全局调色板
if @gifs[2] >> 7 == 1
# 全局调色板大小
@g_pal_size = 3 * (1 << @_pal_bits)
# 读取全局调色板数据
@g_pal = @f.read(@g_pal_size).unpack("C*")
end
end

#--------------------------------------------------------------------------
# ● 读取图象描述块
#--------------------------------------------------------------------------
def read_gifi
# 读取图象描述块
@gifi = @f.read(SIZE_GIFI).unpack("S4C")
# ※ 生成临时帧数据对象
@gif_fd = GIFSprite::Infos::FrameData.new if @gif_fd.nil?
# ※ 获取帧偏移
@gif_fd.offset_x = @gifi[0]
@gif_fd.offset_y = @gifi[1]
# 获取宽度和高度
@_width = @gifi[2]
@_height = @gifi[3]
# 清空局部调色板
@l_pal = nil
# 是否有局部调色板
if @gifi[4] >> 7 == 1
# 获取调色板位数
@_pal_bits = (@gifi[4] & 7) + 1
# 局部调色板大小
@l_pal_size = 3 * (1 << @_pal_bits)
# 读取局部调色板数据
@l_pal = @f.read(@l_pal_size).unpack("C*")
end
# 获取交错标记
@_lace = (@gifi[4] >> 6) & 1
# 修正调色板位数
@_pal_bits = @_pal_bits == 1 ? 1 : (@_pal_bits <= 4 ? 4 : 8)
# 获取行字节数
@_width_bytes = (((@_width * @_pal_bits) + 31) >> 5) << 2
# 读取图象压缩数据
self.read_lzw_data
# ※ 设置GIF帧数据
@gif_infos.frame_data[@frame_count - 1] = @gif_fd
# ※ 清除帧数据
@gif_fd = nil
end

#--------------------------------------------------------------------------
# ● 读取图象压缩数据
#--------------------------------------------------------------------------
def read_lzw_data
# 解码用
lzw_mincodelen = @f.read(1)[0]
# 帧数加 1
@frame_count += 1
# 图象块数据
image_data = ""
# 块大小
blocksize = @f.read(1)[0]
while blocksize > 0
image_data += @f.read(blocksize)
blocksize = @f.read(1)[0]
end
# 导出图象
self.dump_imgs(image_data,lzw_mincodelen)
end

#--------------------------------------------------------------------------
# ● 读取扩充块
#--------------------------------------------------------------------------
def read_gife
label = @f.read(1)[0]
case label
when 0xf9 # 图形控制扩展块
@gifc = @f.read(SIZE_GIFC).unpack("C2SC2")
# ※ 生成帧数据对象
@gif_fd = GIFSprite::Infos::FrameData.new
# ※ 获取帧数据 延迟时间
@gif_fd.delay_time = @gifc[2]
# ※ 获取下一帧的处理方法
@gif_fd.disposal_method = (@gifc[1] & 28) >> 2
# 获取透明颜色
@_trans_index = nil
if @gifc[1] & 1 > 0
@_trans_index = @gifc[3]
end
when 0x01 # 图形说明扩展块
@gifp = @f.read(SIZE_GIFP).unpack("CS4C4")
blocksize = @f.read(1)[0]
while blocksize > 0
@f.read(blocksize)
blocksize = @f.read(1)[0]
end
when 0xfe # 注解说明扩展块
blocksize = @f.read(1)[0]
while blocksize > 0
@f.read(blocksize)
blocksize = @f.read(1)[0]
end
when 0xff # 应用程序扩展块
@gifa = @f.read(SIZE_GIFA).unpack("C*")
blocksize = @f.read(1)[0]
while blocksize > 0
@f.read(blocksize)
blocksize = @f.read(1)[0]
end
end
end

#--------------------------------------------------------------------------
# ● 设置调色板
#--------------------------------------------------------------------------
def set_pal
@_pal = []
if @l_pal != nil
@_pal = @l_pal
elsif @g_pal != nil
@_pal = @g_pal
else
for i in 0...1 << @_pal_bits
@_pal.push i,i,i
end
end
end

#--------------------------------------------------------------------------
# ● 解码图形数据
#--------------------------------------------------------------------------
def dump_imgs(image_data,lze_len)
@image_data = image_data.unpack("C*")

self.set_pal

@png_data = []

@stack = []
@images = []

@prefix = []
@suffix = []

@bitcount = @_pal_bits
@widthcount = 0

@left_bits = 0x00
@current_bits = lze_len + 0x01

@lzw_clear = 1 << lze_len
@lzw_eoi = @lzw_clear + 1
@nowtablendx = @lzw_clear + 2
@toptablendx = 1 << @current_bits

@wdata = 0
@wcode = 0
@oldcode = 0xffff
@row_num = 0
@tempchar = 0x00
@pass = 0x00
@firstchar = 0
@tempndx = 0
# 读取编码字符
self.read_byte
# 不是@lzw_eoi则循环
while @wcode != @lzw_eoi
# @lzw_clear码
if @wcode == @lzw_clear
for i in 0...@lzw_clear
@prefix[i] = 0xffff
@suffix[i] = i
end
for i in @nowtablendx...4096
@prefix[i] = 0xffff
@suffix[i] = 0x00
end
@current_bits = lze_len + 0x01
@nowtablendx = @lzw_clear + 2
@toptablendx = 1 << @current_bits
@oldcode = 0xffff
# 读取编码字符
self.read_byte
if @wcode != @lzw_eoi
while @prefix[@wcode] != 0xffff
@stack.push(@suffix[@wcode])
@wcode = @prefix[@wcode]
end
@stack.push(@suffix[@wcode])
@firstchar = @stack[-1]
# 输出解码数据
self.output_data
end
else
if @wcode < @nowtablendx
@tempndx = @wcode
else
@tempndx = @oldcode
@stack.push(@firstchar)
end
while @prefix[@tempndx] != 0xffff
@stack.push(@suffix[@tempndx])
@tempndx = @prefix[@tempndx]
end
@stack.push(@suffix[@tempndx])
@firstchar = @stack[-1]
@prefix[@nowtablendx] = @oldcode
@suffix[@nowtablendx] = @firstchar
@nowtablendx += 1
if @nowtablendx == @toptablendx and @current_bits < 12
@current_bits += 1
@toptablendx = 1 << @current_bits
end
# 输出解码数据
self.output_data
end
@oldcode = @wcode
# 读取编码字符
self.read_byte
end
Graphics.update
# 生成png图
self.make_png
end

#--------------------------------------------------------------------------
# ● 读取下一个字节
#--------------------------------------------------------------------------
def read_byte
while @left_bits < @current_bits
@next_char = @image_data.shift
@wdata |= (@next_char << @left_bits)
@left_bits += 0x08
end
@wcode = @wdata & CODE_MASK[@current_bits]
@wdata >>= @current_bits
@left_bits -= @current_bits
end

#--------------------------------------------------------------------------
# ● 输出解码数据
#--------------------------------------------------------------------------
def output_data
while !@stack.empty?
@tempchar |= (@stack.pop << (8 - @bitcount))
if @bitcount == 8
@images.push(@tempchar)
@tempchar = 0x00
@bitcount = @_pal_bits
else
@bitcount += @_pal_bits
end
@widthcount += 1
if @widthcount == @_width
if @bitcount != @_pal_bits
@images.push(@tempchar)
@tempchar = 0x00
@bitcount = @_pal_bits
end
@png_data[@row_num] = @images.clone
@images.clear
if @_lace > 0
@row_num += INC_TABLE[@pass]
if @row_num >= @_height
@pass += 1
@row_num = BGN_TABLE[@pass]
end
else
@row_num += 1
end
@widthcount = 0
end
end
end

#--------------------------------------------------------------------------
# ● 生成png图片
#--------------------------------------------------------------------------
def make_png
fp = open("~TEMP/#@filename" + sprintf("_%02d",@frame_count)+".png","wb")
fp.write(self.make_png_header)
fp.write(self.make_png_ihdr)
fp.write(self.make_png_plte) if @_trans_index.nil?
fp.write(self.make_png_idat)
fp.write(self.make_png_iend)
fp.close
end

#--------------------------------------------------------------------------
# ● png头文件
#--------------------------------------------------------------------------
def make_png_header
return [0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a].pack("C*")
end

#--------------------------------------------------------------------------
# ● png信息头块
#--------------------------------------------------------------------------
def make_png_ihdr
ih_size = [13].pack("N")
ih_sign = "IHDR"
ih_width = [@_width].pack("N")
ih_height = [@_height].pack("N")
if @_trans_index != nil
ih_bit_depth = [@_pal_bits > 8 ? 16 : 8].pack("C")
ih_color_type = [6].pack("C")
else
ih_bit_depth = [@_pal_bits].pack("C")
ih_color_type = [3].pack("C")
end
ih_compression_method = [0].pack("C")
ih_filter_method = [0].pack("C")
ih_interlace_method = [0].pack("C")
string = ih_sign + ih_width + ih_height + ih_bit_depth + ih_color_type +
ih_compression_method + ih_filter_method + ih_interlace_method
ih_crc = [Zlib.crc32(string)].pack("N")
return ih_size + string + ih_crc
end

#--------------------------------------------------------------------------
# ● png调色板块
#--------------------------------------------------------------------------
def make_png_plte
pl_size = [@_pal.size].pack("N")
pl_sign = "PLTE"
pl_data = @_pal.pack("C*")
pl_crc = [Zlib.crc32(pl_sign + pl_data)].pack("N")
return pl_size + pl_sign + pl_data + pl_crc
end

#--------------------------------------------------------------------------
# ● png数据块
#--------------------------------------------------------------------------
def make_png_idat
lz_data = []
if @_trans_index != nil
for i in 0...@png_data.size
lz_data.push 0
for j in @png_data[i]
if j == @_trans_index
lz_data.push @_pal[j*3],@_pal[j*3+1],@_pal[j*3+2],0
else
lz_data.push @_pal[j*3],@_pal[j*3+1],@_pal[j*3+2],255
end
end
end
else
for i in 0...@png_data.size
lz_data.push 0
lz_data += @png_data[i]
end
end
id_data = Zlib::Deflate.deflate(lz_data.pack("C*"),9)
id_size = [id_data.size].pack("N")
id_sign = "IDAT"
id_crc = [Zlib.crc32(id_sign + id_data)].pack("N")
return id_size + id_sign + id_data + id_crc
end

#--------------------------------------------------------------------------
# ● png 结尾块
#--------------------------------------------------------------------------
def make_png_iend
ie_size = [0].pack("N")
ie_sign = "IEND"
ie_crc = [Zlib.crc32(ie_sign)].pack("N")
return ie_size + ie_sign + ie_crc
end

end

#==============================================================================
# ■ Graphics
#------------------------------------------------------------------------------
#  处理画面的模块 。
#==============================================================================
class << Graphics

#--------------------------------------------------------------------------
# ● 添加别名、线程、临界区
#--------------------------------------------------------------------------
unless method_defined? :origin_update
alias origin_update update
def update_critical
Thread.critical = true
origin_update
Thread.critical = false
end
Thread.new{loop{Graphics.update_critical;sleep(9)}}
end

#--------------------------------------------------------------------------
# ● 定义类变量
#--------------------------------------------------------------------------
@@gif_sprites = Array.new

#--------------------------------------------------------------------------
# ● 添加GIF图片精灵
#--------------------------------------------------------------------------
def add(gs)
@@gif_sprites << gs
end

#--------------------------------------------------------------------------
# ● 删除GIF图片精灵
#--------------------------------------------------------------------------
def del(gs)
@@gif_sprites.delete gs
end

#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
update_critical
@@gif_sprites.each{|gs| gs.update}
end

end

#==============================================================================
# ■ GIFSprite
#------------------------------------------------------------------------------
#  GIF精灵的核心类 。
#==============================================================================
class GIFSprite

#============================================================================
# ● GIFSprite::Infos
#----------------------------------------------------------------------------
#  GIF图片信息类 。
#============================================================================
class Infos

#------------------------------------------------------------------------
# ● 定义实例变量
#------------------------------------------------------------------------
attr_accessor :total_frames
attr_accessor :width
attr_accessor :height
attr_accessor :frame_data

#------------------------------------------------------------------------
# ● 初始化
#------------------------------------------------------------------------
def initialize
@total_frames = 0
@width = 0
@height = 0
@frame_data = Array.new
end

#==========================================================================
# ● GIFSprite::Infos::FrameData
#--------------------------------------------------------------------------
#  GIF图片每帧信息类 。
#==========================================================================
class FrameData

#----------------------------------------------------------------------
# ● 定义实例变量
#----------------------------------------------------------------------
attr_accessor :offset_x
attr_accessor :offset_y
attr_accessor :delay_time
attr_accessor :disposal_method

#----------------------------------------------------------------------
# ● 初始化
#----------------------------------------------------------------------
def initialize
@offset_x = 0
@offset_y = 0
@delay_time = 0
@disposal_method = 0
end

end

end

#--------------------------------------------------------------------------
# ● 预处理:建立临时文件夹
#--------------------------------------------------------------------------
unless Dir["*"].include?("~TEMP")
Dir.mkdir("~TEMP")
System.attrib("~TEMP","+h","+s")
end

#--------------------------------------------------------------------------
# ● 清空硬缓存
#--------------------------------------------------------------------------
def self.TmpFileclear
begin
Dir["~TEMP/*"].each{|filename| File.delete filename}
rescue
end
end

#--------------------------------------------------------------------------
# ● 预加载图片
#--------------------------------------------------------------------------
def self.pre_load(filename_arr)
filename_arr.each{|fn| GIF.readdata(fn)}
end

#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :x
attr_accessor :y
attr_reader :z
attr_accessor :loop_counts
attr_accessor :viewport

#--------------------------------------------------------------------------
# ● 创建对象
#--------------------------------------------------------------------------
def self.new(viewport = nil,x = 0,y = 0,loop_counts = -1)
obj = super()
obj.viewport = viewport
obj.x = x
obj.y = y
obj.loop_counts = loop_counts
Graphics.add(obj)
obj
end

#--------------------------------------------------------------------------
# ● 获取图片信息
#--------------------------------------------------------------------------
def bitmap
@gif_infos
end

#--------------------------------------------------------------------------
# ● 设置图片文件名
#--------------------------------------------------------------------------
def bitmap=(filename)
@gif_infos = GIF.readdata(filename)
if @gif_infos != nil
@sp_arr = Array.new
basename = File.basename(filename,".*")
for i in 0...@gif_infos.total_frames
sp = Sprite.new(@viewport)
sp.bitmap = Bitmap.new(sprintf("~TEMP/#{basename}_%02d.png",i + 1))
sp.visible = i == 0
sp.x = @gif_infos.frame_data[i].offset_x
sp.y = @gif_infos.frame_data[i].offset_y
@sp_arr << sp
end
@update_frame_count = 0
@current_show_frame = 0
@next_frame_counts =
(@gif_infos.frame_data[0].delay_time * Graphics.frame_rate / 100)
end
end

#--------------------------------------------------------------------------
# ● 定义x=
#--------------------------------------------------------------------------
def x=(x)
if @gif_infos.nil?
@x = 0
return
end
@x = x
for i in 0...@gif_infos.total_frames
@sp_arr[i].x = @gif_infos.frame_data[i].offset_x + @x
end
end

#--------------------------------------------------------------------------
# ● 定义y=
#--------------------------------------------------------------------------
def y=(y)
if @gif_infos.nil?
@y = 0
return
end
@y = y
for i in 0...@gif_infos.total_frames
@sp_arr[i].y = @gif_infos.frame_data[i].offset_y + @y
end
end

#--------------------------------------------------------------------------
# ● 定义z=
#--------------------------------------------------------------------------
def z=(z)
if @gif_infos.nil?
@z = 0
return
end
@z = z
for i in 0...@gif_infos.total_frames
@sp_arr[i].z = @z
end
end

#--------------------------------------------------------------------------
# ● 获取宽度
#--------------------------------------------------------------------------
def width
return @gif_infos.nil? ? 0 : @gif_infos.width
end

#--------------------------------------------------------------------------
# ● 获取高度
#--------------------------------------------------------------------------
def height
return @gif_infos.nil? ? 0 : @gif_infos.height
end

#--------------------------------------------------------------------------
# ● 释放精灵
#--------------------------------------------------------------------------
def dispose
Graphics.del(self)
@sp_arr.each{|sp|
sp.bitmap.dispose
sp.dispose
}
@sp_arr.clear
@gif_infos = nil
end

#--------------------------------------------------------------------------
# ● 更新精灵
#--------------------------------------------------------------------------
def update
if @gif_infos.nil?
return
end
@update_frame_count += 1
if @update_frame_count >= @next_frame_counts
@current_show_frame = (@current_show_frame + 1) % @gif_infos.total_frames
case @gif_infos.frame_data[@current_show_frame - 1].disposal_method
when 0 # 不处理

when 1 # 图象保留在原处

when 2 # 当前图象消失
@sp_arr[@current_show_frame - 1].visible = false
when 3 # 尚不明 = =

end
@sp_arr[@current_show_frame].visible = true
if @current_show_frame == 0
@loop_counts -= 1 if @loop_counts > 0
if @loop_counts == 0
self.dispose
return
end
for i in 0...@sp_arr.size
@sp_arr[i].visible = i == @current_show_frame
end
end
@update_frame_count = 0
@next_frame_counts = (@gif_infos.frame_data[@current_show_frame].\
delay_time * Graphics.frame_rate / 100)
end
end

end



Gif Player download
carnie_natas
I'll have to check this out, could be useful....
punk_blood
how do you use it?.....
Night_Runner
You need to go into your games folder, and browse to Graphics/ and create a folder called GIF. Paste all your GIF imaged in there.

To make the GIF's in game, have an event run the code:

CODE
  @sp = GIFSprite.new
  @sp.bitmap="Graphics/GIF/name_of_gif.gif"
  @sp.x = 100
  @sp.y = 200


And to dispose of the GIF, have that same event run:
CODE
@sp.bitmap.dispose
@sp.dispose


Or something like that smile.gif
stripe103
Can someone translate it? Google Translate isn't good for this. It even translates the english code into something else so the script don't work afterwards.
darkhalo
The script works fine with RGSS102E despite the language. Well worth d/l the demo.
As Nightrunner says, thats all you need to activate and dispose the event.
Spectralfire
It works in the demo but when i transfer the script in my project it gives me line 196 error can sommeone help me.
punk_blood
works fine in my game...
did you make a file in your game file in the graphics section named GIF?
IserLurick
Can this script be used for applications such as having animated Icons for Items or it's limited to show .gif images through avents?
Redd
If you edit your menu/title scripts or w/e, then yes it is possible.

Great find by the way smile.gif
Shadyone
I am also getting error in line 196, also
How do I use it for the title screen? lol
de22lano
Hi, im making a DOOM project and i wonder if anyone know how to Change this part:
@sp = GIFSprite.new
@sp.bitmap="Graphics/GIF/name_of_gif.gif"
@sp.x = 100
@sp.y = 200


So the GIF ll show up at the (walking monster)Events place..??

Regards,
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.