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

Project1

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

[已经过期] 请前辈们帮忙。怎么加入判断角色死亡然后名字消失。

[复制链接]

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
跳转到指定楼层
1
发表于 2013-9-11 00:29:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
对脚本一窍不通。。

怎么给这个脚本加入当角色死亡时候名字消失
  1. class Spriteset_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化变量
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     # 生成显示端口
  7.     @viewport1 = Viewport.new(0, 0, 640, 480)
  8.     @viewport2 = Viewport.new(0, 0, 640, 480)
  9.     @viewport3 = Viewport.new(0, 0, 640, 480)
  10.     @viewport4 = Viewport.new(0, 0, 640, 480)
  11.     @viewport2.z = 101
  12.     @viewport3.z = 200
  13.     @viewport4.z = 5000
  14.     # 生成战斗背景活动块
  15.     @battleback_sprite = Sprite.new(@viewport1)
  16.     # 生成敌人活动块
  17.     @enemy_sprites = []
  18.     for enemy in $game_troop.enemies.reverse
  19.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  20.     end
  21.     #bearrpg 原来是获取敌人名字,改成获取角色名
  22.     @actor_names = []
  23.     for actor in $game_party.actors#循环角色队伍
  24.       #默认显示角色信息的视窗是高于战斗背景的活动块的视窗,
  25.       #所以不管你怎么改Z值,对无法将这里的名字显示在角色状态窗口之上,
  26.       #只能修改视窗决口
  27.       @actor_names.push(Sprite.new(@viewport3))#默认是1
  28.       @actor_names[-1].bitmap = Bitmap.new(128,32)
  29.       @actor_names[-1].bitmap.font.color = Color.new(255,255,255,200)#这里是描绘颜色
  30.       @actor_names[-1].bitmap.font.size = 16 #字体大小
  31.       @actor_names[-1].bitmap.draw_text(0,0,128,20,actor.name)
  32.       @actor_names[-1].x = actor.screen_x - 20#这里是定位名字的X坐标
  33.       @actor_names[-1].y = actor.screen_y - 115#这里是定位名字的Y坐标
  34.       @actor_names[-1].z = 999
  35.      # @actor_names.bitmap.font = 16 #字体大小@actor.bitmap.font.size
  36.     end
  37.     #bearrpg
  38.    # @enemy_names = []
  39.    # for enemy in $game_troop.enemies
  40.    #   @enemy_names.push(Sprite.new(@viewport1))
  41.    #   @enemy_names[-1].bitmap = Bitmap.new(128,32)
  42.    #   @enemy_names[-1].bitmap.font.color = Color.new(125,0,125,255)
  43.    #   @enemy_names[-1].bitmap.draw_text(0,0,128,32,enemy.name)
  44.    #   @enemy_names[-1].x = enemy.screen_x - 20
  45.    #   @enemy_names[-1].y = enemy.screen_y - 30
  46.    #   @enemy_names[-1].z = 999
  47.    # end
  48.     # 生成敌人活动块
  49.     @actor_sprites = []
  50.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  51.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  52.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  53.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  54.     # 生成天候
  55.     @weather = RPG::Weather.new(@viewport1)
  56.     # 生成图片活动块
  57.     @picture_sprites = []
  58.     for i in 51..100
  59.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  60.         $game_screen.pictures[i]))
  61.     end
  62.     # 生成计时器块
  63.     @timer_sprite = Sprite_Timer.new
  64.     # 刷新画面
  65.     update
  66.   end
  67.   def hide_name(i)
  68.       #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  69.     @actor_names[i].opacity = 0 if i != nil
  70.   end
  71.   def appear_name(i)  #貌似翻了应该是name appear
  72.    
  73.           #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  74.     @actor_names[i].opacity = 255 if i != nil
  75.   end
  76. end

  77. class Game_Enemy
  78.   attr_reader  :member_index
  79. end
  80. class Scene_Battle
  81.   alias u update_phase4_step3
  82.   def update_phase4_step3
  83.     #bearrpg 下面所以对敌人进行的判断都改成角色就可以了。
  84.     if @active_battler.is_a?(Game_Actor)
  85.      #bearrpg member_index是敌人的序列,
  86.      #角色的系列是index,所以下面所有的member_index也要进行相应的修改
  87.       @spriteset.hide_name(@active_battler.index)
  88.     end
  89.     u
  90.   end
  91.     alias u4 update_phase4_step4
  92.   def update_phase4_step4
  93.     for i in @target_battlers
  94.       if i.is_a?(Game_Actor)
  95.         @spriteset.hide_name(i.index)
  96.       end
  97.     end
  98.     u4
  99.   end
  100.   alias up update
  101.   def update
  102.     if @wait_count == 1
  103.       @spriteset.appear_name(@active_battler.index) if @active_battler.is_a?(Game_Actor)
  104.       for i in @target_battlers
  105.         @spriteset.appear_name(i.index) if i.is_a?(Game_Actor)
  106.       end
  107.     end
  108.     up
  109.   end
  110. end
复制代码

Lv5.捕梦者

梦石
0
星屑
33123
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2013-9-11 15:30:47 | 只看该作者
插入了一个条件分歧:如果角色存在(不是死亡或隐藏),才显示名字。
  1. class Spriteset_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化变量
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     # 生成显示端口
  7.     @viewport1 = Viewport.new(0, 0, 640, 480)
  8.     @viewport2 = Viewport.new(0, 0, 640, 480)
  9.     @viewport3 = Viewport.new(0, 0, 640, 480)
  10.     @viewport4 = Viewport.new(0, 0, 640, 480)
  11.     @viewport2.z = 101
  12.     @viewport3.z = 200
  13.     @viewport4.z = 5000
  14.     # 生成战斗背景活动块
  15.     @battleback_sprite = Sprite.new(@viewport1)
  16.     # 生成敌人活动块
  17.     @enemy_sprites = []
  18.     for enemy in $game_troop.enemies.reverse
  19.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  20.     end
  21.     #bearrpg 原来是获取敌人名字,改成获取角色名
  22.     @actor_names = []
  23.     for actor in $game_party.actors#循环角色队伍
  24.       if actor.exist?
  25.         #默认显示角色信息的视窗是高于战斗背景的活动块的视窗,
  26.         #所以不管你怎么改Z值,对无法将这里的名字显示在角色状态窗口之上,
  27.         #只能修改视窗决口
  28.         @actor_names.push(Sprite.new(@viewport3))#默认是1
  29.         @actor_names[-1].bitmap = Bitmap.new(128,32)
  30.         @actor_names[-1].bitmap.font.color = Color.new(255,255,255,200)#这里是描绘颜色
  31.         @actor_names[-1].bitmap.font.size = 16 #字体大小
  32.         @actor_names[-1].bitmap.draw_text(0,0,128,20,actor.name)
  33.         @actor_names[-1].x = actor.screen_x - 20#这里是定位名字的X坐标
  34.         @actor_names[-1].y = actor.screen_y - 115#这里是定位名字的Y坐标
  35.         @actor_names[-1].z = 999
  36.        # @actor_names.bitmap.font = 16 #字体大小@actor.bitmap.font.size
  37.       end
  38.     end
  39.     #bearrpg
  40.    # @enemy_names = []
  41.    # for enemy in $game_troop.enemies
  42.    #   @enemy_names.push(Sprite.new(@viewport1))
  43.    #   @enemy_names[-1].bitmap = Bitmap.new(128,32)
  44.    #   @enemy_names[-1].bitmap.font.color = Color.new(125,0,125,255)
  45.    #   @enemy_names[-1].bitmap.draw_text(0,0,128,32,enemy.name)
  46.    #   @enemy_names[-1].x = enemy.screen_x - 20
  47.    #   @enemy_names[-1].y = enemy.screen_y - 30
  48.    #   @enemy_names[-1].z = 999
  49.    # end
  50.     # 生成敌人活动块
  51.     @actor_sprites = []
  52.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  53.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  54.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  55.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  56.     # 生成天候
  57.     @weather = RPG::Weather.new(@viewport1)
  58.     # 生成图片活动块
  59.     @picture_sprites = []
  60.     for i in 51..100
  61.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  62.         $game_screen.pictures[i]))
  63.     end
  64.     # 生成计时器块
  65.     @timer_sprite = Sprite_Timer.new
  66.     # 刷新画面
  67.     update
  68.   end
  69.   def hide_name(i)
  70.       #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  71.     @actor_names[i].opacity = 0 if i != nil
  72.   end
  73.   def appear_name(i)  #貌似翻了应该是name appear
  74.    
  75.           #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  76.     @actor_names[i].opacity = 255 if i != nil
  77.   end
  78. end

  79. class Game_Enemy
  80.   attr_reader  :member_index
  81. end
  82. class Scene_Battle
  83.   alias u update_phase4_step3
  84.   def update_phase4_step3
  85.     #bearrpg 下面所以对敌人进行的判断都改成角色就可以了。
  86.     if @active_battler.is_a?(Game_Actor)
  87.      #bearrpg member_index是敌人的序列,
  88.      #角色的系列是index,所以下面所有的member_index也要进行相应的修改
  89.       @spriteset.hide_name(@active_battler.index)
  90.     end
  91.     u
  92.   end
  93.     alias u4 update_phase4_step4
  94.   def update_phase4_step4
  95.     for i in @target_battlers
  96.       if i.is_a?(Game_Actor)
  97.         @spriteset.hide_name(i.index)
  98.       end
  99.     end
  100.     u4
  101.   end
  102.   alias up update
  103.   def update
  104.     if @wait_count == 1
  105.       @spriteset.appear_name(@active_battler.index) if @active_battler.is_a?(Game_Actor)
  106.       for i in @target_battlers
  107.         @spriteset.appear_name(i.index) if i.is_a?(Game_Actor)
  108.       end
  109.     end
  110.     up
  111.   end
  112. end
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
3
 楼主| 发表于 2013-9-11 22:33:46 | 只看该作者
芯☆淡茹水 发表于 2013-9-11 15:30
插入了一个条件分歧:如果角色存在(不是死亡或隐藏),才显示名字。

没效果你试一下~~~~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
4
 楼主| 发表于 2013-9-11 23:08:40 | 只看该作者
芯☆淡茹水 发表于 2013-9-11 15:30
插入了一个条件分歧:如果角色存在(不是死亡或隐藏),才显示名字。

你加的这段没作用if actor.exist?

我觉得应该是在83段后加一个判断才会有效果。。可我不会脚本。。哎~~~~~
拜托啦
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33123
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

5
发表于 2013-9-13 08:15:48 | 只看该作者
唔,那这样试下
  1. class Spriteset_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化变量
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     # 生成显示端口
  7.     @viewport1 = Viewport.new(0, 0, 640, 480)
  8.     @viewport2 = Viewport.new(0, 0, 640, 480)
  9.     @viewport3 = Viewport.new(0, 0, 640, 480)
  10.     @viewport4 = Viewport.new(0, 0, 640, 480)
  11.     @viewport2.z = 101
  12.     @viewport3.z = 200
  13.     @viewport4.z = 5000
  14.     # 生成战斗背景活动块
  15.     @battleback_sprite = Sprite.new(@viewport1)
  16.     # 生成敌人活动块
  17.     @enemy_sprites = []
  18.     for enemy in $game_troop.enemies.reverse
  19.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  20.     end
  21.     #bearrpg 原来是获取敌人名字,改成获取角色名
  22.     @actor_names = []
  23.     for actor in $game_party.actors#循环角色队伍
  24.         #默认显示角色信息的视窗是高于战斗背景的活动块的视窗,
  25.         #所以不管你怎么改Z值,对无法将这里的名字显示在角色状态窗口之上,
  26.         #只能修改视窗决口
  27.       @actor_names.push(Sprite.new(@viewport3))#默认是1
  28.       @actor_names[-1].bitmap = Bitmap.new(128,32)
  29.       @actor_names[-1].bitmap.font.color = Color.new(255,255,255,200)#这里是描绘颜色
  30.       @actor_names[-1].bitmap.font.size = 16 #字体大小
  31.       @actor_names[-1].bitmap.draw_text(0,0,128,20,actor.name)
  32.       @actor_names[-1].x = actor.screen_x - 20#这里是定位名字的X坐标
  33.       @actor_names[-1].y = actor.screen_y - 115#这里是定位名字的Y坐标
  34.       @actor_names[-1].z = 999
  35.        # @actor_names.bitmap.font = 16 #字体大小@actor.bitmap.font.size
  36.     end
  37.     #bearrpg
  38.    # @enemy_names = []
  39.    # for enemy in $game_troop.enemies
  40.    #   @enemy_names.push(Sprite.new(@viewport1))
  41.    #   @enemy_names[-1].bitmap = Bitmap.new(128,32)
  42.    #   @enemy_names[-1].bitmap.font.color = Color.new(125,0,125,255)
  43.    #   @enemy_names[-1].bitmap.draw_text(0,0,128,32,enemy.name)
  44.    #   @enemy_names[-1].x = enemy.screen_x - 20
  45.    #   @enemy_names[-1].y = enemy.screen_y - 30
  46.    #   @enemy_names[-1].z = 999
  47.    # end
  48.     # 生成敌人活动块
  49.     @actor_sprites = []
  50.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  51.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  52.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  53.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  54.     # 生成天候
  55.     @weather = RPG::Weather.new(@viewport1)
  56.     # 生成图片活动块
  57.     @picture_sprites = []
  58.     for i in 51..100
  59.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  60.         $game_screen.pictures[i]))
  61.     end
  62.     # 生成计时器块
  63.     @timer_sprite = Sprite_Timer.new
  64.     # 刷新画面
  65.     update
  66.   end
  67.   def hide_name(i)
  68.       #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  69.     @actor_names[i].opacity = 0 if i != nil
  70.   end
  71.   def appear_name(i)  #貌似翻了应该是name appear
  72.    
  73.           #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  74.     @actor_names[i].opacity = 255 if i != nil
  75.   end
  76. end

  77. class Game_Enemy
  78.   attr_reader  :member_index
  79. end
  80. class Scene_Battle
  81.   alias u update_phase4_step3
  82.   def update_phase4_step3
  83.     #bearrpg 下面所以对敌人进行的判断都改成角色就可以了。
  84.     if @active_battler.is_a?(Game_Actor) and @active_battler.exist?
  85.      #bearrpg member_index是敌人的序列,
  86.      #角色的系列是index,所以下面所有的member_index也要进行相应的修改
  87.       @spriteset.hide_name(@active_battler.index)
  88.     end
  89.     u
  90.   end
  91.     alias u4 update_phase4_step4
  92.   def update_phase4_step4
  93.     for i in @target_battlers
  94.       if i.is_a?(Game_Actor) and i.exist?
  95.         @spriteset.hide_name(i.index)
  96.       end
  97.     end
  98.     u4
  99.   end
  100.   alias up update
  101.   def update
  102.     if @wait_count == 1
  103.       @spriteset.appear_name(@active_battler.index) if @active_battler.is_a?(Game_Actor)
  104.       for i in @target_battlers
  105.         if i.exist?
  106.           @spriteset.appear_name(i.index) if i.is_a?(Game_Actor)
  107.         end
  108.       end
  109.     end
  110.     up
  111.   end
  112. end
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
6
 楼主| 发表于 2013-9-13 15:31:12 | 只看该作者
芯☆淡茹水 发表于 2013-9-13 08:15
唔,那这样试下

没效果呢~~~~~~~
看不出你改了哪里
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-29 21:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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