Project1
标题:
轩辕剑菜单的状态菜单,怎么把静态行走图改成动态的?(500分)
[打印本页]
作者:
鬼火
时间:
2010-8-10 00:35
标题:
轩辕剑菜单的状态菜单,怎么把静态行走图改成动态的?(500分)
本帖最后由 鬼火 于 2010-8-10 00:58 编辑
高手帮忙改改下面的脚本~~~
状态脚本:
#==============================================================================
# ■ Window_Status
#------------------------------------------------------------------------------
# 显示状态画面、完全规格的状态窗口。
#==============================================================================
class Window_Status_New < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对像
# actor : 角色
#--------------------------------------------------------------------------
def initialize(actor)
super(320, 30,280, 415)
self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
self.opacity = 100
self.contents = Bitmap.new(width , height )
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
self.contents.clear
testname = @actor.battler_name+"_h.png"
if $加密 == true
bitmap=Bitmap.new("Graphics/system/menu/headp/#{testname}")
src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) #——可自己调整大小
self.contents.blt(0, y, bitmap, src_rect)
self.contents.font.size = 18
self.contents.font.color = text_color(6)
draw_actor_name(@actor, 300, 0)
self.contents.font.color = text_color(1)
draw_actor_class(@actor, 400, 32)
draw_actor_level(@actor, 300, 32)
draw_actor_state(@actor, 480, 32)
draw_actor_hp(@actor, 300, 64, 150)
draw_actor_sp(@actor, 300, 96, 150)
draw_actor_exp_state(@actor, 300, 128, 150)
draw_actor_parameter_state(@actor, 480, 66, 0)
draw_actor_parameter_state(@actor, 480, 98, 1)
draw_actor_parameter_state(@actor, 480, 130, 2)
draw_actor_parameter_state(@actor, 320, 162, 3)
draw_actor_parameter_state(@actor, 320, 194, 4)
draw_actor_parameter_state(@actor, 480, 162, 5)
draw_actor_parameter_state(@actor, 480, 194, 6)
self.contents.font.color = system_color
self.contents.draw_text(300, 260, 96, 32, "身上装备")
draw_item_name($data_weapons[@actor.weapon_id], 300, 300)
draw_item_name($data_armors[@actor.armor1_id], 460, 300)
draw_item_name($data_armors[@actor.armor2_id], 300, 340)
draw_item_name($data_armors[@actor.armor3_id], 460, 340)
draw_item_name($data_armors[@actor.armor4_id], 300, 380)
else
if FileTest.exist?("Graphics/system/menu/headp/#{testname}")
bitmap=Bitmap.new("Graphics/system/menu/headp/#{testname}")
src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) #——可自己调整大小
self.contents.blt(160, y + 50, bitmap, src_rect,80)
self.contents.font.size = 18
self.contents.font.color = text_color(6)
@leftless = 296
draw_actor_name(@actor, 300 - @leftless, 0)
self.contents.font.color = text_color(1)
#draw_actor_class(@actor, 400 - @leftless, 32)
draw_actor_level(@actor, 300 - @leftless, 32)
draw_actor_state(@actor, 480 - @leftless, 32)
draw_actor_hp(@actor, 300 - @leftless, 64, 150)
draw_actor_sp(@actor, 300 - @leftless, 96, 150)
draw_actor_exp_state(@actor, 300 - @leftless, 128, 150)
draw_actor_parameter_state(@actor, 480 - @leftless, 66, 0)
draw_actor_parameter_state(@actor, 480 - @leftless, 98, 1)
draw_actor_parameter_state(@actor, 480 - @leftless, 130, 2)
draw_actor_parameter_state(@actor, 320 - @leftless, 162, 3)
draw_actor_parameter_state(@actor, 320 - @leftless, 194, 4)
draw_actor_parameter_state(@actor, 480 - @leftless, 162, 5)
draw_actor_parameter_state(@actor, 480 - @leftless, 194, 6)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(300 - @leftless, 260, 96, 32, "身上装备")
@newless = 10
draw_item_name($data_weapons[@actor.weapon_id], 300 - @leftless, 300 - @newless)
draw_item_name($data_armors[@actor.armor1_id], 460 - @leftless, 300 - @newless)
draw_item_name($data_armors[@actor.armor2_id], 620 - @leftless, 300 - @newless)
draw_item_name($data_armors[@actor.armor3_id], 300 - @leftless, 330 - @newless)
draw_item_name($data_armors[@actor.armor4_id], 460 - @leftless, 330 - @newless)
draw_item_name($data_armors[@actor.armor5_id], 620 - @leftless, 330 - @newless)
draw_item_name($data_armors[@actor.armor6_id], 300 - @leftless, 360 - @newless)
draw_item_name($data_armors[@actor.armor7_id], 460 - @leftless, 360 - @newless)
else
self.contents.font.size = 18
self.contents.font.bold = true
# 加粗
src_rect = Rect.new(340, 70, 640,480)
back_help = Bitmap.new("Graphics/system/menu/【菜单】状态背景")
self.contents.blt(0, 0, back_help, src_rect, 255)
draw_actor_graphic(@actor, 40, 135)
#draw_actor_name(@actor, 4, 0)
#draw_actor_class(@actor, 4 + 144, 0)
draw_actor_level(@actor, 50, 62)
draw_actor_state(@actor, 96, 64)
#draw_actor_hp(@actor, -30, 112, 172)
#draw_actor_sp(@actor, -30, 144, 172)
draw_actor_parameter(@actor, 80, 10, 0)
draw_actor_parameter(@actor, 80, 40, 1)
draw_actor_parameter(@actor, 80, 70, 2)
draw_actor_parameter(@actor, 80, 100, 3)
draw_actor_parameter(@actor, 80, 130, 4)
draw_actor_parameter(@actor, 80, 160, 5)
draw_actor_parameter(@actor, 80, 190, 6)
#self.contents.font.color = system_color
#self.contents.draw_text(10, 108, 80, 32, "经验")
#self.contents.draw_text(10, 130, 80, 32, "下一级")
#self.contents.draw_text(80, 3, 80, 32, "等级")
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(10 + 40, 130, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(10 + 40, 150, 84, 32, @actor.next_rest_exp_s, 2)
self.contents.font.color = Color.new(0,0,0,255)
# self.contents.draw_text(120, 60, 96, 32, "装备")
self.contents.font.bold = false
draw_item_name($data_weapons[@actor.weapon_id], 20, 240)#武器
draw_item_name($data_armors[@actor.armor1_id], 90 , 310)#鞋
draw_item_name($data_armors[@actor.armor2_id], 90 , 170)#头
draw_item_name($data_armors[@actor.armor3_id], 90 , 240)#衣服
draw_item_name($data_armors[@actor.armor4_id], 160 ,240)#书
draw_item_name($data_armors[@actor.armor5_id], 20 , 310)#法器
draw_item_name($data_armors[@actor.armor6_id], 20 , 170)#项链
draw_item_name($data_armors[@actor.armor7_id], 160 ,310) #戒指
end
end
end
def dummy
self.contents.font.color = system_color
self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor5)
self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor6)
draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144)
draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208)
draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272)
draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336)
draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
draw_item_name($data_armors[@actor.armor5_id], 320 + 24, 400)
draw_item_name($data_armors[@actor.armor6_id], 320 + 24, 400)
end
end
复制代码
作者:
越前リョーマ
时间:
2010-8-10 01:24
试试这个
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# 作者: 柳柳
#
# 说明:这是功能我再比较早期的时候发布在幻森,不过那时候比较笨,方法很糟糕
# 这次是拿上就可以用的。
#
# 感谢:Claimh的脚本使我想起这个功能重做了一遍,本想直接用他的,不过他的算法过分
# 冗余了,没好意思用。
#==============================================================================
# 使用方法:默认情况下把静态图变为了走步图。如果想自行修改,提供功能如下:
#
# 角色走步图:draw_walk_actor_graphic
# 角色转向图:draw_turn_actor_graphic
#
# 回复原有静态角色图:删除100行以后的内容。修改下面这个变量可以更改行走速度
#==============================================================================
WALK_REFRESH_FRAME_SPEED = 12 # 刷新的速度,越大越慢,你可以改为3左右试试看
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# 初始化方法
#--------------------------------------------------------------------------
alias initialize_walk initialize
def initialize(x, y, width, height)
initialize_walk(x, y, width, height)
@start_walk = false
@turn_index = 0
@turn_phase = 0
end
#--------------------------------------------------------------------------
# ★ 角色行走图
# actor : 角色
# x : 描绘的 X 坐标
# y : 描绘的 Y 坐标
#--------------------------------------------------------------------------
def draw_walk_actor_graphic(actor, x, y)
if actor.hp == 0
bitmap = RPG::Cache.character(actor.character_name+"_d", actor.character_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0,0,cw,ch)
else
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
@start_turn = true
case @turn_phase
when 0
x_x = 0
when 1
x_x = cw
when 2
x_x = cw * 2
when 3
x_x = cw * 3
end
src_rect = Rect.new(x_x, 0, cw, ch)
end
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#--------------------------------------------------------------------------
# ★ 角色转向图
# actor : 角色
# x : 描绘的 X 坐标
# y : 描绘的 Y 坐标
#--------------------------------------------------------------------------
def draw_turn_actor_graphic(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
@start_turn = true
case @turn_phase
when 0
x_x = 0
when 1
x_x = ch
when 2
x_x = ch * 3
when 3
x_x = ch * 2
end
src_rect = Rect.new(0, x_x, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#--------------------------------------------------------------------------
# 更新(可别使用刷新,玩命耗费内存= =)
#--------------------------------------------------------------------------
alias walk_update update
def update
walk_update
if @start_turn == true
@turn_index += 1
if @turn_index == WALK_REFRESH_FRAME_SPEED
refresh
@turn_index = 0
@turn_phase = (@turn_phase+1)%4
end
end
end
end
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# 把原有静态图改为动态走步图
#--------------------------------------------------------------------------
# def draw_actor_graphic(actor, x, y)
# draw_walk_actor_graphic(actor, x, y)
# end
end
复制代码
作者:
BBBBB6
时间:
2010-8-10 09:25
回复
越前リョーマ
的帖子
收下了thanks~(众:你这个捡漏的家伙...)
作者:
鬼火
时间:
2010-8-10 13:45
本帖最后由 鬼火 于 2010-8-10 14:02 编辑
未命名.JPG
(24.06 KB, 下载次数: 5)
下载附件
保存到相册
2010-8-10 13:40 上传
不对哦,并不显示动态行走图,而是显示了一行静态行走图[我用的是8X8的行走图]
我把你的脚本插入后,把状态脚本99行"draw_actor_graphic(@actor, 40, 135)",改成"draw_turn_actor_graphic(@actor, 100, 135)"
改的对吗?
作者:
退屈£无聊
时间:
2010-8-10 22:45
更改cw和ch
/4 /4什么的改成/8,再把when0...增加到when7
作者:
鬼火
时间:
2010-8-11 12:06
已经改过了,还是静态图没变化啊~~
高手给看看哪错了
状态脚本99行"draw_actor_graphic(@actor, 40, 135)",改成"draw_walk_actor_graphic(@actor, 100, 135)"
[8X8的行走图]动态行走图脚本:
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# 作者: 柳柳
#
# 说明:这是功能我再比较早期的时候发布在幻森,不过那时候比较笨,方法很糟糕
# 这次是拿上就可以用的。
#
# 感谢:Claimh的脚本使我想起这个功能重做了一遍,本想直接用他的,不过他的算法过分
# 冗余了,没好意思用。
#==============================================================================
# 使用方法:默认情况下把静态图变为了走步图。如果想自行修改,提供功能如下:
#
# 角色走步图:draw_walk_actor_graphic
# 角色转向图:draw_turn_actor_graphic
#
# 回复原有静态角色图:删除100行以后的内容。修改下面这个变量可以更改行走速度
#==============================================================================
WALK_REFRESH_FRAME_SPEED = 12 # 刷新的速度,越大越慢,你可以改为3左右试试看
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# 初始化方法
#--------------------------------------------------------------------------
alias initialize_walk initialize
def initialize(x, y, width, height)
initialize_walk(x, y, width, height)
@start_walk = false
@turn_index = 0
@turn_phase = 0
end
#--------------------------------------------------------------------------
# ★ 角色行走图
# actor : 角色
# x : 描绘的 X 坐标
# y : 描绘的 Y 坐标
#--------------------------------------------------------------------------
def draw_walk_actor_graphic(actor, x, y)
if actor.hp == 0
bitmap = RPG::Cache.character(actor.character_name+"_d", actor.character_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0,0,cw,ch)
else
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 8
ch = bitmap.height / 8
@start_turn = true
case @turn_phase
when 0
x_x = 0
when 1
x_x = cw
when 2
x_x = cw * 2
when 3
x_x = cw * 3
when 4
x_x = cw * 4
when 5
x_x = cw * 5
when 6
x_x = cw * 6
when 7
x_x = cw * 7
end
src_rect = Rect.new(x_x, 0, cw, ch)
end
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#--------------------------------------------------------------------------
# ★ 角色转向图
# actor : 角色
# x : 描绘的 X 坐标
# y : 描绘的 Y 坐标
#--------------------------------------------------------------------------
def draw_turn_actor_graphic(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 8
ch = bitmap.height / 8
@start_turn = true
case @turn_phase
when 0
x_x = 0
when 1
x_x = ch
when 2
x_x = ch * 3
when 3
x_x = ch * 2
when 4
x_x = ch * 4
when 5
x_x = ch * 5
when 6
x_x = ch * 6
when 7
x_x = ch * 7
end
src_rect = Rect.new(0, x_x, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#--------------------------------------------------------------------------
# 更新(可别使用刷新,玩命耗费内存= =)
#--------------------------------------------------------------------------
alias walk_update update
def update
walk_update
if @start_turn == true
@turn_index += 1
if @turn_index == WALK_REFRESH_FRAME_SPEED
refresh
@turn_index = 0
@turn_phase = (@turn_phase+1)%4
end
end
end
end
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# 把原有静态图改为动态走步图
#--------------------------------------------------------------------------
#def draw_actor_graphic(actor, x, y)
# draw_walk_actor_graphic(actor, x, y)
#end
end
复制代码
作者:
退屈£无聊
时间:
2010-8-11 18:16
我觉得你直接把133-135的注释去掉再保留原状态菜单的draw_actor_graphic就行了
不行的话就发上工程吧.
作者:
鬼火
时间:
2010-8-11 20:54
这是工程,谢谢大侠了
新建文件夹 (2).rar
(2.02 MB, 下载次数: 105)
2010-8-11 20:53 上传
点击文件名下载附件
作者:
退屈£无聊
时间:
2010-8-12 09:42
好吧,我突然发现了一个可悲的事实,在我的能力下,无论怎样都不能让状态画面动态起来,。。。。
哪怕是原版的。。。
作者:
新坦克君
时间:
2010-8-17 12:54
工程还带密码= =b
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1