Project1

标题: 求助。。战斗时无法角色活块 [打印本页]

作者: a111a    时间: 2013-8-30 20:14
标题: 求助。。战斗时无法角色活块
本帖最后由 a111a 于 2013-8-31 12:18 编辑

这个脚本能显示在战斗时候显示四个角色名字的脚本。。但是我把人数改成了十个。。。

这个脚本只能显示四个角色的活块。。能够把这个脚本能够显示角色活块的数量改成十个吗?{注:第四个角色后面的人物战斗图都无法显示出来了~~}

因为无法显示角色活块。。战斗时候角色的战斗图就没办法显示出来


实在听不懂的看图解释


RUBY 代码复制下载
  1. #--------------------------------------------------------------------------
  2.   # ● 初始化变量
  3.   #--------------------------------------------------------------------------
  4.   def initialize
  5.     # 生成显示端口
  6.     @viewport1 = Viewport.new(0, 0, 640, 480)
  7.     @viewport2 = Viewport.new(0, 0, 640, 480)
  8.     @viewport3 = Viewport.new(0, 0, 640, 480)
  9.     @viewport4 = Viewport.new(0, 0, 640, 480)
  10.     @viewport2.z = 101
  11.     @viewport3.z = 200
  12.     @viewport4.z = 5000
  13.     # 生成战斗背景活动块
  14.     @battleback_sprite = Sprite.new(@viewport1)
  15.     # 生成敌人活动块
  16.     @enemy_sprites = []
  17.     for enemy in $game_troop.enemies.reverse
  18.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  19.     end
  20.     #bearrpg 原来是获取敌人名字,改成获取角色名
  21.     @actor_names = []
  22.     for actor in $game_party.actors#循环角色队伍
  23.       #默认显示角色信息的视窗是高于战斗背景的活动块的视窗,
  24.       #所以不管你怎么改Z值,对无法将这里的名字显示在角色状态窗口之上,
  25.       #只能修改视窗决口
  26.       @actor_names.push(Sprite.new(@viewport3))#默认是1
  27.       @actor_names[-1].bitmap = Bitmap.new(128,32)
  28.       @actor_names[-1].bitmap.font.color = Color.new(255,255,255,200)#这里是描绘颜色
  29.       @actor_names[-1].bitmap.draw_text(0,0,128,20,actor.name)
  30.       @actor_names[-1].x = actor.screen_x - 20#这里是定位名字的X坐标
  31.       @actor_names[-1].y = actor.screen_y - 115#这里是定位名字的Y坐标
  32.       @actor_names[-1].z = 999
  33.     end
  34.     #bearrpg
  35.    # @enemy_names = []
  36.    # for enemy in $game_troop.enemies
  37.    #   @enemy_names.push(Sprite.new(@viewport1))
  38.    #   @enemy_names[-1].bitmap = Bitmap.new(128,32)
  39.    #   @enemy_names[-1].bitmap.font.color = Color.new(125,0,125,255)
  40.    #   @enemy_names[-1].bitmap.draw_text(0,0,128,32,enemy.name)
  41.    #   @enemy_names[-1].x = enemy.screen_x - 20
  42.    #   @enemy_names[-1].y = enemy.screen_y - 30
  43.    #   @enemy_names[-1].z = 999
  44.    # end
  45.     # 生成敌人活动块
  46.     @actor_sprites = []
  47.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  48.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  49.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  50.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  51.     # 生成天候
  52.     @weather = RPG::Weather.new(@viewport1)
  53.     # 生成图片活动块
  54.     @picture_sprites = []
  55.     for i in 51..100
  56.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  57.         $game_screen.pictures[i]))
  58.     end
  59.     # 生成计时器块
  60.     @timer_sprite = Sprite_Timer.new
  61.     # 刷新画面
  62.     update
  63.   end
  64.   def hide_name(i)
  65.       #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  66.     @actor_names[i].opacity = 0 if i != nil
  67.   end
  68.   def appear_name(i)  #貌似翻了应该是name appear
  69.           #bearrpg 因为数组名成了@actor_names所以这里也要进行修改
  70.     @actor_names[i].opacity = 255 if i != nil
  71.   end
  72. end
  73.  
  74. class Game_Enemy
  75.   attr_reader  :member_index
  76. end
  77. class Scene_Battle
  78.   alias u update_phase4_step3
  79.   def update_phase4_step3
  80.     #bearrpg 下面所以对敌人进行的判断都改成角色就可以了。
  81.     if @active_battler.is_a?(Game_Actor)
  82.      #bearrpg member_index是敌人的序列,
  83.      #角色的系列是index,所以下面所有的member_index也要进行相应的修改
  84.       @spriteset.hide_name(@active_battler.index)
  85.     end
  86.     u
  87.   end
  88.   alias u4 update_phase4_step4
  89.   def update_phase4_step4
  90.     for i in @target_battlers
  91.       if i.is_a?(Game_Actor)
  92.         @spriteset.hide_name(i.index)
  93.       end
  94.     end
  95.     u4
  96.   end
  97.   alias up update
  98.   def update
  99.     if @wait_count == 1
  100.       @spriteset.appear_name(@active_battler.index) if @active_battler.is_a?(Game_Actor)
  101.       for i in @target_battlers
  102.         @spriteset.appear_name(i.index) if i.is_a?(Game_Actor)
  103.       end
  104.     end
  105.     up
  106.   end

作者: a111a    时间: 2013-8-31 12:17
求解!!!!!!
作者: a111a    时间: 2013-9-1 00:15
人呢??
作者: a111a    时间: 2013-9-5 02:41

人呢??




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1