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

Project1

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

[已经过期] 5人战斗坐标修改

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2011-9-29
帖子
315
跳转到指定楼层
1
发表于 2013-5-26 12:29:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如下图,圈起来的只能左右移动,找不到上下移动

这是左右移动的脚本位置,129行修改160就可以左右移动,当然也限于移动 = =
  1.       @actor_window.push(Window_ActorStatus.new(i, x + i * 160))
复制代码
这是5人战斗完整脚本
  1. #==============================================================================
  2. # ■ Game_Party
  3. #------------------------------------------------------------------------------
  4. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  5. # 请参考 $game_party。
  6. #==============================================================================
  7. class Game_Party
  8. #--------------------------------------------------------------------------
  9. # ● 加入同伴
  10. #     actor_id : 角色 ID
  11. #--------------------------------------------------------------------------
  12. def add_actor(actor_id)
  13.    # 获取角色
  14.    actor = $game_actors[actor_id]
  15.    # 同伴人数未满 5 人、本角色不在队伍中的情况下
  16.    if @actors.size < 5 and not @actors.include?(actor)
  17.      # 添加角色
  18.      @actors.push(actor)
  19.      # 还原主角
  20.      $game_player.refresh
  21.    end
  22. end
  23. end












  24. #==============================================================================
  25. # ■ Window_MenuStatus
  26. #------------------------------------------------------------------------------
  27. #  显示菜单画面和同伴状态的窗口。
  28. #==============================================================================
  29. class Window_MenuStatus
  30. #--------------------------------------------------------------------------
  31. # ● 刷新
  32. #--------------------------------------------------------------------------
  33. def refresh
  34.    self.contents.clear
  35.    @item_max = $game_party.actors.size
  36.    for i in 0...$game_party.actors.size
  37.      x = 64
  38.      y = i * 86
  39.      actor = $game_party.actors[i]
  40.      draw_actor_graphic(actor, x - 40, y + 70)
  41.      draw_actor_name(actor, x, y)
  42.      draw_actor_class(actor, x + 144, y)
  43.      draw_actor_level(actor, x, y + 24)
  44.      draw_actor_state(actor, x + 90, y + 24)
  45.      draw_actor_exp(actor, x, y + 48)
  46.      draw_actor_hp(actor, x + 236, y + 24)
  47.      draw_actor_sp(actor, x + 236, y + 48)
  48.    end
  49. end
  50. #--------------------------------------------------------------------------
  51. # ● 刷新光标矩形
  52. #--------------------------------------------------------------------------
  53. def update_cursor_rect
  54.    if @index < 0
  55.      self.cursor_rect.empty
  56.    else
  57.      self.cursor_rect.set(0, @index * 86, self.width - 32, 76)
  58.    end
  59. end
  60. end














  61. #==============================================================================
  62. # ■ Window_BattleStatus
  63. #------------------------------------------------------------------------------
  64. #  显示战斗画面同伴状态的窗口。
  65. #==============================================================================
  66. class Window_BattleStatus < Window_Base
  67. #--------------------------------------------------------------------------
  68. # ● 刷新
  69. #--------------------------------------------------------------------------
  70. def refresh
  71.    self.contents.clear
  72.    @item_max = $game_party.actors.size
  73.    for i in 0...$game_party.actors.size
  74.      actor = $game_party.actors[i]
  75.      actor_x = i * 120 + 4
  76.      draw_actor_name(actor, actor_x, 0)
  77.      draw_actor_hp(actor, actor_x, 32, 120)
  78.      draw_actor_sp(actor, actor_x, 64, 120)
  79.      draw_actor_tp(actor, actor_x, 96, 120)
  80.      if @level_up_flags[i]
  81.        self.contents.font.color = normal_color
  82.        self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
  83.      else
  84.        draw_actor_state(actor, actor_x, 128)
  85.      end
  86.    end
  87. end
  88. end



  89. class Window_BattleStatus < Window_Base
  90.   #--------------------------------------------------------------------------
  91.   # ● オブジェクト初期化
  92.   #--------------------------------------------------------------------------
  93.   def initialize
  94.     x = (5 - $game_party.actors.size) * 120
  95.     width = $game_party.actors.size * 200
  96.     super(x, 408, width, 192)
  97.     self.back_opacity = 160
  98.     @actor_window = []
  99.     for i in 0...$game_party.actors.size
  100.       @actor_window.push(Window_ActorStatus.new(i, x + i * 160))
  101.     end
  102.     @level_up_flags = [false, false, false, false]
  103.     refresh
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 解放
  107.   #--------------------------------------------------------------------------
  108.   def dispose
  109.     for window in @actor_window
  110.       window.dispose
  111.     end
  112.     super
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● リフレッシュ
  116.   #--------------------------------------------------------------------------
  117.   def refresh(number = 0)
  118.     if number == 0
  119.       cnt = 0
  120.       for window in @actor_window
  121.         window.refresh(@level_up_flags[cnt])
  122.         cnt += 1
  123.       end
  124.     else
  125.       @actor_window[number - 1].refresh(@level_up_flags[number - 1])
  126.     end
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● ATゲージリフレッシュ
  130.   #--------------------------------------------------------------------------
  131.   def at_refresh(number = 0)
  132.     if number == 0
  133.       for window in @actor_window
  134.         window.at_refresh
  135.       end
  136.     else
  137.       @actor_window[number - 1].at_refresh
  138.     end
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # ● フレーム更新
  142.   #--------------------------------------------------------------------------
  143.   def update
  144.     super
  145.     if self.x != (5 - $game_party.actors.size) * 80
  146.       self.x = (5 - $game_party.actors.size) * 80
  147.       self.width = $game_party.actors.size * 160
  148.       for window in @actor_window
  149.         window.dispose
  150.       end
  151.       @actor_window = []
  152.       for i in 0...$game_party.actors.size
  153.         @actor_window.push(Window_ActorStatus.new(i, x + i * 160))
  154.       end
  155.       refresh
  156.     end
  157.     for window in @actor_window
  158.       window.update
  159.     end
  160.   end
  161. end











  162. #==============================================================================
  163. # ■ Scene_Battle
  164. #------------------------------------------------------------------------------
  165. #  处理战斗画面的类。
  166. #==============================================================================
  167. class Scene_Battle
  168. #--------------------------------------------------------------------------
  169. # ● 设置角色指令窗口
  170. #--------------------------------------------------------------------------
  171. def phase3_setup_command_window
  172.    # 同伴指令窗口无效化
  173.    @party_command_window.active = false
  174.    @party_command_window.visible = false
  175.    # 角色指令窗口无效化
  176.    @actor_command_window.active = true
  177.    @actor_command_window.visible = true
  178.    # 设置角色指令窗口的位置
  179.    @actor_command_window.x = @actor_index * 120
  180.    # 设置索引为 0
  181.    @actor_command_window.index = 0
  182. end
  183.   def phase3_setup_command_window
  184. #------------------------------------------------------------------------------
  185. #RTAB观光游第一站,去除“战斗/逃跑”选项部分   
  186.     # パーティコマンドウィンドウを無効化
  187. #    @party_command_window.active = false
  188. #    @party_command_window.visible = false
  189. #------------------------------------------------------------------------------  
  190.     # アクターコマンドウィンドウを有効化
  191.     @actor_command_window.active = true
  192.     @actor_command_window.visible = true
  193.     # アクターコマンドウィンドウの位置を設定
  194.     @actor_command_window.x = @actor_index * 160 +
  195.                               (5 - $game_party.actors.size) * 80
  196.     # インデックスを 0 に設定
  197.     @actor_command_window.index = 0
  198.   end
  199. end











  200. #==============================================================================
  201. # ■ Game_Actor
  202. #------------------------------------------------------------------------------
  203. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  204. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  205. #==============================================================================

  206. class Game_Actor < Game_Battler
  207. #--------------------------------------------------------------------------
  208. # ● 取得战斗画面的 X 坐标
  209. #--------------------------------------------------------------------------
  210. def screen_x
  211.    # 返回计算后的队伍 X 坐标的排列顺序
  212.    if self.index != nil
  213.      return self.index * 150 + 80
  214.    else
  215.      return 0
  216.    end
  217. end
  218. end











  219. #==============================================================================
  220. # ■ Sprite_Battler
  221. #------------------------------------------------------------------------------
  222. #  战斗显示用活动块。Game_Battler 类的实例监视、
  223. # 活动块的状态的监视。
  224. #==============================================================================
  225. =begin
  226. class Spriteset_Battle
  227. #--------------------------------------------------------------------------
  228. # ● 初始化变量
  229. #--------------------------------------------------------------------------
  230. def initialize
  231.    # 生成显示端口
  232.    @viewport1 = Viewport.new(0, 0, 640, 320)
  233.    @viewport2 = Viewport.new(0, 0, 640, 480)
  234.    @viewport3 = Viewport.new(0, 0, 640, 480)
  235.    @viewport4 = Viewport.new(0, 0, 640, 480)
  236.    @viewport2.z = 101
  237.    @viewport3.z = 200
  238.    @viewport4.z = 5000
  239.    # 生成战斗背景活动块
  240.    @battleback_sprite = Sprite.new(@viewport1)
  241.    # 生成敌人活动块
  242.    @enemy_sprites = []
  243.    for enemy in $game_troop.enemies.reverse
  244.      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  245.    end
  246.    # 生成敌人活动块 ★★修改了这里
  247.    @actor_sprites = []
  248.    @actor_sprites.push(Sprite_Battler.new(@viewport2))
  249.    @actor_sprites.push(Sprite_Battler.new(@viewport2))
  250.    @actor_sprites.push(Sprite_Battler.new(@viewport2))
  251.    @actor_sprites.push(Sprite_Battler.new(@viewport2))
  252.    @actor_sprites.push(Sprite_Battler.new(@viewport2))
  253.    # 生成天候
  254.    @weather = RPG::Weather.new(@viewport1)
  255.    # 生成图片活动块
  256.    @picture_sprites = []
  257.    for i in 51..100
  258.      @picture_sprites.push(Sprite_Picture.new(@viewport3,
  259.        $game_screen.pictures[i]))
  260.    end
  261.    # 生成计时器块
  262.    @timer_sprite = Sprite_Timer.new
  263.    # 刷新画面
  264.    update
  265. end
  266.    #--------------------------------------------------------------------------
  267. # ● 刷新画面
  268. #--------------------------------------------------------------------------
  269. def update
  270.    # 刷新角色的活动块 (对应角色的替换) ★修改了这里
  271.    @actor_sprites[0].battler = $game_party.actors[0]
  272.    @actor_sprites[1].battler = $game_party.actors[1]
  273.    @actor_sprites[2].battler = $game_party.actors[2]
  274.    @actor_sprites[3].battler = $game_party.actors[3]
  275.    @actor_sprites[4].battler = $game_party.actors[4]
  276.    # 战斗背景的文件名与现在情况有差异的情况下
  277.    if @battleback_name != $game_temp.battleback_name
  278.      @battleback_name = $game_temp.battleback_name
  279.      if @battleback_sprite.bitmap != nil
  280.        @battleback_sprite.bitmap.dispose
  281.      end
  282.      @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  283.      @battleback_sprite.src_rect.set(0, 0, 640, 320)
  284.    end
  285.    # 刷新战斗者的活动块
  286.    for sprite in @enemy_sprites + @actor_sprites
  287.      sprite.update
  288.    end
  289.    # 刷新天气图形
  290.    @weather.type = $game_screen.weather_type
  291.    @weather.max = $game_screen.weather_max
  292.    @weather.update
  293.    # 刷新图片活动块
  294.    for sprite in @picture_sprites
  295.      sprite.update
  296.    end
  297.    # 刷新计时器活动块
  298.    @timer_sprite.update
  299.    # 设置画面的色调与震动位置
  300.    @viewport1.tone = $game_screen.tone
  301.    @viewport1.ox = $game_screen.shake
  302.    # 设置画面的闪烁色
  303.    @viewport4.color = $game_screen.flash_color
  304.    # 刷新显示端口
  305.    @viewport1.update
  306.    @viewport2.update
  307.    @viewport4.update
  308. end
  309. end
  310. =end
复制代码

Lv1.梦旅人

梦石
0
星屑
49
在线时间
423 小时
注册时间
2011-3-11
帖子
299
2
发表于 2013-5-26 13:20:56 | 只看该作者
你只修改了横坐标,应该同理修改纵坐标。

点评

没找到纵坐标修改的地方  发表于 2013-5-26 13:24
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

3
发表于 2013-5-29 05:32:25 | 只看该作者
本帖最后由 芯☆淡茹水 于 2013-5-29 05:34 编辑

Window_BattleStatus 第 39 - 41 行

draw_actor_name(actor, actor_x, 0)
draw_actor_hp(actor, actor_x, 32, 120)
draw_actor_sp(actor, actor_x, 64, 120)
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2011-9-29
帖子
315
4
 楼主| 发表于 2013-5-29 17:45:55 | 只看该作者
芯☆淡茹水 发表于 2013-5-29 05:32
Window_BattleStatus 第 39 - 41 行

draw_actor_name(actor, actor_x, 0)

不对哦,试了没效果。包括上面5人战斗脚本的102-104行都试过,就是没变化
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 00:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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