Project1
标题:
把VX的脚本放到VX ACE里报错
[打印本页]
作者:
ttcsxs
时间:
2012-6-21 09:48
标题:
把VX的脚本放到VX ACE里报错
本帖最后由 ttcsxs 于 2012-6-21 09:50 编辑
1.jpg
(15.9 KB, 下载次数: 23)
下载附件
保存到相册
2012-6-21 09:46 上传
#========================================================#==============================================================================
module Enemy_HP
HP_WIDTH = 60 # 血条的默认宽度
SHOW_VALUE = true # 是否显示敌人生命值
SHOW_NAME = true # 是否显示敌人名称
NAME_SIZE = 16 # 敌人名称字体大小
NAME_COLOR = 0 # 敌人名称字体颜色
end
#==============================================================================
# ■ RPG
#==============================================================================
module RPG
class Enemy
def hp_width
return self.read_note('hp_width')
end
end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ○ 血条宽度
#--------------------------------------------------------------------------
def hp_width
return $data_enemies[@enemy_id].hp_width
end
end
#==============================================================================
# ■ Sprite_Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# ◎ 初始化对象
# viewport : 视区
# battler : 战斗者 (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = 0 # 效果种类
@effect_duration = 0 # 效果剩余时间
if @battler.is_a?(Game_Enemy)
width = hp_width + 32
height = 24 + 32
x = @battler.screen_x - width/2
y = @battler.screen_y - height/2
# 调节名称位置
if Enemy_HP::SHOW_NAME
height += Enemy_HP::NAME_SIZE + 2
y -= Enemy_HP::NAME_SIZE + 2
end
# 生成血条窗体
@enemy_hp_window = Window_Base.new(x, y, width, height)
@enemy_hp_window.opacity = 0
@enemy_hp_window.contents_opacity = 0
@enemy_hp_window.contents = Bitmap.new(width - 32, height - 32)
@enemy_hp_window.draw_enemy_info(@battler, 0, 0, width - 32)
# 保存旧血量(控制刷新)
@old_hp = -1
end
end
#--------------------------------------------------------------------------
# ◎ 释放
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
@enemy_hp_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ◎ 释放敌人活动块
#--------------------------------------------------------------------------
def dispose_enemies
for sprite in @enemy_sprites
sprite.dispose
@enemy_hp_window.dispose
end
end
#--------------------------------------------------------------------------
# ◎ 更新画面
#--------------------------------------------------------------------------
def update
super
if @battler == nil
self.bitmap = nil
else
@use_sprite = @battler.use_sprite?
if @use_sprite
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
update_battler_bitmap
end
setup_new_effect
update_effect
# 更新血条窗体
if @enemy_hp_window != nil and @old_hp != @battler.hp
@enemy_hp_window.contents.clear
@enemy_hp_window.draw_enemy_info(@battler, 0, 0, hp_width)
@old_hp = @battler.hp
end
end
end
#--------------------------------------------------------------------------
# ◎ 更新出现效果
#--------------------------------------------------------------------------
def update_appear
self.blend_type = 0
self.color.set(0, 0, 0, 0)
self.opacity = (16 - @effect_duration) * 16
# 对象非敌人时返回
return unless @battler.is_a?(Game_Enemy)
@enemy_hp_window.contents_opacity = self.opacity
end
#--------------------------------------------------------------------------
# ◎ 更新消失效果
#--------------------------------------------------------------------------
def update_disappear
self.blend_type = 0
self.color.set(0, 0, 0, 0)
self.opacity = 256 - (32 - @effect_duration) * 10
# 对象非敌人时返回
return unless @battler.is_a?(Game_Enemy)
@enemy_hp_window.contents_opacity = self.opacity
end
#--------------------------------------------------------------------------
# ◎ 更新崩溃效果
#--------------------------------------------------------------------------
def update_collapse
self.blend_type = 1
self.color.set(255, 128, 128, 128)
self.opacity = 256 - (48 - @effect_duration) * 6
# 对象非敌人时返回
return unless @battler.is_a?(Game_Enemy)
@enemy_hp_window.contents_opacity = self.opacity
end
#--------------------------------------------------------------------------
# ○ 血条宽度
#--------------------------------------------------------------------------
def hp_width
result = Enemy_HP::HP_WIDTH
if @battler.is_a?(Game_Enemy)
if @battler.hp_width.to_i == 0
result = Enemy_HP::HP_WIDTH
else
result = @battler.hp_width.to_i
end
end
return result
end
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ○ 描绘敌人信息
# enemy : 角色
# x : 描绘目标 X 坐标
# y : 描绘目标 Y 坐标
# width : 宽
#--------------------------------------------------------------------------
def draw_enemy_info(enemy, x, y, width = 64)
# 为字体阴影内缩1像素
width -= 1
# 显示名称
if Enemy_HP::SHOW_NAME
self.contents.font.color = text_color(Enemy_HP::NAME_COLOR)
self.contents.font.size = Enemy_HP::NAME_SIZE
self.contents.draw_text(x, y, width, WLH, enemy.name, 1)
self.contents.font.size = Font.default_size
y += Enemy_HP::NAME_SIZE + 2
end
# 描绘血槽
draw_actor_hp_gauge(enemy, x, y, width)
# 描绘生命符号
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
# 描绘具体生命值
return unless Enemy_HP::SHOW_VALUE
self.contents.font.color = hp_color(enemy)
xr = x + width
self.contents.draw_text(xr - 40, y, 40, WLH, enemy.hp, 2)
end
end
{:2_270:} 真心不懂脚本 dsu_plus_rewardpost_czw
作者:
容嬷嬷
时间:
2012-6-21 10:01
本帖最后由 容嬷嬷 于 2012-6-21 10:13 编辑
貌似VX ACE是不支持VX的部分脚本的吧。
作者:
yychchhh
时间:
2012-6-21 12:54
VA是不支持VX的脚本的,需要重新自己写。所以说,换一条VX用的脚本吧!
作者:
明特·布兰马修
时间:
2012-6-21 16:08
本帖最后由 明特·布兰马修 于 2012-6-21 16:09 编辑
没有经过整合的VX脚本放入VA必定报错
不然还分VX\VA区呢?
作者:
我是老A
时间:
2012-6-23 14:00
VX和VA不一样的。
VX是RGSS2,VA是RGSS3。
作者:
旺仔牛奶糖
时间:
2012-6-23 14:38
不是通用的是不可以使用VX脚本的 因为VX是RGSS2,VA是RGSS3.脚本根本就不同,你试试把ACE的脚本用在VX试试看看行不行..?
作者:
1715063941
时间:
2013-2-25 21:22
貌似有些脚本三个兼容
不过没有这个脚本吧
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1