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

Project1

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

45度战斗设置+血条4人版脚本发布

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
910
在线时间
94 小时
注册时间
2005-10-22
帖子
397
跳转到指定楼层
1
发表于 2006-3-28 23:56:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个脚本估计有很多人都想要的吧?这个是四人的版本,可以做10人版本的哦。(我自己用的就是10人版本的,但是,一般游戏四人就够了。)人物坐标、状态、血条均已调好。

  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ Game_Actor
  6. #------------------------------------------------------------------------------
  7. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  8. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  9. #==============================================================================

  10. class Game_Actor < Game_Battler
  11.   #--------------------------------------------------------------------------
  12.   # ● 取得战斗画面的 X 坐标
  13.   #--------------------------------------------------------------------------
  14.   def screen_x
  15.   case self.index
  16.   when 0
  17.     return 350
  18.   when 1
  19.     return 430
  20.   when 2
  21.     return 510
  22.   when 3
  23.     return 580
  24.   else
  25.     return 600

  26.    end
  27. end
  28.   #--------------------------------------------------------------------------
  29.   # ● 取得战斗画面的 Y 坐标
  30.   #--------------------------------------------------------------------------
  31.   def screen_y
  32.   case self.index
  33.   when 0
  34.     return 430
  35.   when 1
  36.     return 395
  37.   when 2
  38.     return 360
  39.   when 3
  40.     return 325
  41.   else
  42.     return 1000
  43.    end
  44. end
  45.   #--------------------------------------------------------------------------
  46.   # ● 取得战斗画面的 Z 坐标
  47.   #--------------------------------------------------------------------------
  48.   def screen_z
  49.   case self.index
  50.   when 0
  51.     return 10
  52.   when 1
  53.     return 9
  54.   when 2
  55.     return 8
  56.   when 3
  57.     return 7
  58.   else
  59.     return 0
  60.     end
  61.   end
  62. end

  63.   
  64. #==============================================================================
  65. # ■ Window_Base
  66. #------------------------------------------------------------------------------
  67. #  游戏中全部窗口的超级类。
  68. #==============================================================================

  69. class Window_Base < Window
  70.   #--------------------------------------------------------------------------
  71.   # ● 描绘 HP
  72.   #     actor : 角色
  73.   #     x     : 描画目标 X 坐标
  74.   #     y     : 描画目标 Y 坐标
  75.   #     width : 描画目标的宽
  76.   #--------------------------------------------------------------------------
  77.   def draw_actor_hp1(actor, x, y, width = 72)
  78.     # 描绘字符串 "HP"
  79.     self.contents.font.color = system_color
  80.     self.contents.draw_text(x, y, 24, 24, $data_system.words.hp)
  81.     # 计算描绘 MaxHP 所需的空间
  82.     if width - 24 >= 32
  83.       hp_x = x + 32# + width - 24
  84.     end
  85.     # 描绘 HP
  86.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  87.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  88.     self.contents.draw_text(hp_x, y, 32, 24, actor.hp.to_s, 2)
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 描绘 SP
  92.   #     actor : 角色
  93.   #     x     : 描画目标 X 坐标
  94.   #     y     : 描画目标 Y 坐标
  95.   #     width : 描画目标的宽
  96.   #--------------------------------------------------------------------------
  97.   def draw_actor_sp1(actor, x, y, width = 72)
  98.     # 描绘字符串 "SP"
  99.     self.contents.font.color = system_color
  100.     self.contents.draw_text(x, y, 24, 24, $data_system.words.sp)
  101.     # 计算描绘 MaxSP 所需的空间
  102.     if width - 24 >= 32
  103.       sp_x = x + 32# + width - 24
  104.     end
  105.     # 描绘 SP
  106.     self.contents.font.color = actor.sp == 0 ? knockout_color :
  107.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  108.     self.contents.draw_text(sp_x, y, 32, 24, actor.sp.to_s, 2)
  109.   end
  110. end
  111.   




  112. #==============================================================================
  113. # ■ Window_BattleStatus
  114. #------------------------------------------------------------------------------
  115. #  显示战斗画面同伴状态的窗口。
  116. #==============================================================================

  117. class Window_BattleStatus < Window_Base
  118.   #--------------------------------------------------------------------------
  119.   # ● 初始化对像
  120.   #--------------------------------------------------------------------------
  121. #$data_system_level_up_me = "Audio/ME/升级音乐"
  122.   def initialize
  123.     super(0, 0, 640, 480)
  124.     self.contents = Bitmap.new(width - 10, height - 32)
  125.     self.opacity = 0
  126.     @level_up_flags = [false, false, false, false]
  127.     refresh
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 释放
  131.   #--------------------------------------------------------------------------
  132.   def dispose
  133.     super
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 设置升级标志
  137.   #     actor_index : 角色索引
  138.   #--------------------------------------------------------------------------
  139.   def level_up(actor_index)
  140.     @level_up_flags[actor_index] = true
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 刷新
  144.   #--------------------------------------------------------------------------
  145.   def refresh
  146.     self.contents.clear
  147.     @item_max = $game_party.actors.size
  148.      for i in 0...$game_party.actors.size
  149.       actor = $game_party.actors[i]
  150.       case i
  151.         when 0
  152.          x = 310
  153.          y = 390
  154.         when 1
  155.          x = 390
  156.          y = 340
  157.         when 2
  158.          x = 480
  159.          y = 300
  160.         when 3
  161.          x = 550
  162.          y = 270
  163.        end
  164.       if @level_up_flags[i]
  165.         self.contents.font.color = normal_color
  166.         self.contents.draw_text(x, y, 80, 24, "LEVEL UP!")
  167.         Audio.me_stop
  168. #        Audio.me_play($data_system_level_up_me)
  169.       else
  170.       draw_actor_hp1(actor, x-15, y-15, 80)
  171.       draw_actor_sp1(actor, x-15, y+5, 80)
  172.      end
  173.     end
  174.   end

  175.   #--------------------------------------------------------------------------
  176.   # ● 刷新画面
  177.   #--------------------------------------------------------------------------
  178.   def update
  179.     super
  180.     # 主界面的不透明度下降
  181.     if $game_temp.battle_main_phase
  182.       self.contents_opacity -= 50 if self.contents_opacity > 1
  183.     else
  184.       self.contents_opacity += 50 if self.contents_opacity < 255
  185.     end
  186.   end
  187. end





  188. #==============================================================================
  189. # ■ Window_BattleStatus
  190. #==============================================================================
  191. class Window_BattleStatus < Window_Base
  192.   #--------------------------------------------------------------------------
  193.   # ● 初始化
  194.   #--------------------------------------------------------------------------
  195.   alias xrxs_bp2_refresh refresh
  196.   def refresh
  197.     xrxs_bp2_refresh
  198.     @item_max = $game_party.actors.size
  199.      for i in 0...$game_party.actors.size
  200.       actor = $game_party.actors[i]
  201.       case i
  202.         when 0
  203.          x = 310
  204.          y = 390
  205.         when 1
  206.          x = 390
  207.          y = 340
  208.         when 2
  209.          x = 480
  210.          y = 300
  211.         when 3
  212.          x = 550
  213.          y = 270
  214.        end
  215.       draw_actor_hp_meter(actor, x, y, 50)
  216.       draw_actor_sp_meter(actor, x, y + 8, 50)
  217.     end
  218.   end
  219. end
  220. #==============================================================================
  221. # ■ Window_Base
  222. #==============================================================================
  223. class Window_Base < Window
  224.   #--------------------------------------------------------------------------
  225.   # ● HP描画
  226.   #--------------------------------------------------------------------------
  227.   def draw_actor_hp_meter(actor, x, y, width = 156, type = 0)
  228.     if type == 1 and actor.hp == 0
  229.       return
  230.     end
  231.     self.contents.font.color = system_color
  232.     self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 25))
  233.     w = width * actor.hp / actor.maxhp
  234.     self.contents.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  235.     self.contents.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  236.     self.contents.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  237.     self.contents.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))
  238.    
  239.     end
  240.   #--------------------------------------------------------------------------
  241.   # ● SP描画
  242.   #--------------------------------------------------------------------------
  243.   def draw_actor_sp_meter(actor, x, y, width = 156, type = 0)
  244.     if type == 1 and actor.hp == 0
  245.       return
  246.     end
  247.     self.contents.font.color = system_color
  248.     self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  249.     w = width * actor.sp / actor.maxsp
  250.     self.contents.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  251.     self.contents.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  252.     self.contents.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  253.     self.contents.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  254.   end
  255. end
复制代码
做脚本先从修改脚本做起,我只修改自己觉得能用到的东西。
以后的任何作品都将不会进行分享。
Bilibili:https://space.bilibili.com/288814521

Lv2.观梦者

梦石
0
星屑
910
在线时间
94 小时
注册时间
2005-10-22
帖子
397
2
 楼主| 发表于 2006-3-28 23:56:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个脚本估计有很多人都想要的吧?这个是四人的版本,可以做10人版本的哦。(我自己用的就是10人版本的,但是,一般游戏四人就够了。)人物坐标、状态、血条均已调好。

  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ Game_Actor
  6. #------------------------------------------------------------------------------
  7. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  8. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  9. #==============================================================================

  10. class Game_Actor < Game_Battler
  11.   #--------------------------------------------------------------------------
  12.   # ● 取得战斗画面的 X 坐标
  13.   #--------------------------------------------------------------------------
  14.   def screen_x
  15.   case self.index
  16.   when 0
  17.     return 350
  18.   when 1
  19.     return 430
  20.   when 2
  21.     return 510
  22.   when 3
  23.     return 580
  24.   else
  25.     return 600

  26.    end
  27. end
  28.   #--------------------------------------------------------------------------
  29.   # ● 取得战斗画面的 Y 坐标
  30.   #--------------------------------------------------------------------------
  31.   def screen_y
  32.   case self.index
  33.   when 0
  34.     return 430
  35.   when 1
  36.     return 395
  37.   when 2
  38.     return 360
  39.   when 3
  40.     return 325
  41.   else
  42.     return 1000
  43.    end
  44. end
  45.   #--------------------------------------------------------------------------
  46.   # ● 取得战斗画面的 Z 坐标
  47.   #--------------------------------------------------------------------------
  48.   def screen_z
  49.   case self.index
  50.   when 0
  51.     return 10
  52.   when 1
  53.     return 9
  54.   when 2
  55.     return 8
  56.   when 3
  57.     return 7
  58.   else
  59.     return 0
  60.     end
  61.   end
  62. end

  63.   
  64. #==============================================================================
  65. # ■ Window_Base
  66. #------------------------------------------------------------------------------
  67. #  游戏中全部窗口的超级类。
  68. #==============================================================================

  69. class Window_Base < Window
  70.   #--------------------------------------------------------------------------
  71.   # ● 描绘 HP
  72.   #     actor : 角色
  73.   #     x     : 描画目标 X 坐标
  74.   #     y     : 描画目标 Y 坐标
  75.   #     width : 描画目标的宽
  76.   #--------------------------------------------------------------------------
  77.   def draw_actor_hp1(actor, x, y, width = 72)
  78.     # 描绘字符串 "HP"
  79.     self.contents.font.color = system_color
  80.     self.contents.draw_text(x, y, 24, 24, $data_system.words.hp)
  81.     # 计算描绘 MaxHP 所需的空间
  82.     if width - 24 >= 32
  83.       hp_x = x + 32# + width - 24
  84.     end
  85.     # 描绘 HP
  86.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  87.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  88.     self.contents.draw_text(hp_x, y, 32, 24, actor.hp.to_s, 2)
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 描绘 SP
  92.   #     actor : 角色
  93.   #     x     : 描画目标 X 坐标
  94.   #     y     : 描画目标 Y 坐标
  95.   #     width : 描画目标的宽
  96.   #--------------------------------------------------------------------------
  97.   def draw_actor_sp1(actor, x, y, width = 72)
  98.     # 描绘字符串 "SP"
  99.     self.contents.font.color = system_color
  100.     self.contents.draw_text(x, y, 24, 24, $data_system.words.sp)
  101.     # 计算描绘 MaxSP 所需的空间
  102.     if width - 24 >= 32
  103.       sp_x = x + 32# + width - 24
  104.     end
  105.     # 描绘 SP
  106.     self.contents.font.color = actor.sp == 0 ? knockout_color :
  107.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  108.     self.contents.draw_text(sp_x, y, 32, 24, actor.sp.to_s, 2)
  109.   end
  110. end
  111.   




  112. #==============================================================================
  113. # ■ Window_BattleStatus
  114. #------------------------------------------------------------------------------
  115. #  显示战斗画面同伴状态的窗口。
  116. #==============================================================================

  117. class Window_BattleStatus < Window_Base
  118.   #--------------------------------------------------------------------------
  119.   # ● 初始化对像
  120.   #--------------------------------------------------------------------------
  121. #$data_system_level_up_me = "Audio/ME/升级音乐"
  122.   def initialize
  123.     super(0, 0, 640, 480)
  124.     self.contents = Bitmap.new(width - 10, height - 32)
  125.     self.opacity = 0
  126.     @level_up_flags = [false, false, false, false]
  127.     refresh
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 释放
  131.   #--------------------------------------------------------------------------
  132.   def dispose
  133.     super
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 设置升级标志
  137.   #     actor_index : 角色索引
  138.   #--------------------------------------------------------------------------
  139.   def level_up(actor_index)
  140.     @level_up_flags[actor_index] = true
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 刷新
  144.   #--------------------------------------------------------------------------
  145.   def refresh
  146.     self.contents.clear
  147.     @item_max = $game_party.actors.size
  148.      for i in 0...$game_party.actors.size
  149.       actor = $game_party.actors[i]
  150.       case i
  151.         when 0
  152.          x = 310
  153.          y = 390
  154.         when 1
  155.          x = 390
  156.          y = 340
  157.         when 2
  158.          x = 480
  159.          y = 300
  160.         when 3
  161.          x = 550
  162.          y = 270
  163.        end
  164.       if @level_up_flags[i]
  165.         self.contents.font.color = normal_color
  166.         self.contents.draw_text(x, y, 80, 24, "LEVEL UP!")
  167.         Audio.me_stop
  168. #        Audio.me_play($data_system_level_up_me)
  169.       else
  170.       draw_actor_hp1(actor, x-15, y-15, 80)
  171.       draw_actor_sp1(actor, x-15, y+5, 80)
  172.      end
  173.     end
  174.   end

  175.   #--------------------------------------------------------------------------
  176.   # ● 刷新画面
  177.   #--------------------------------------------------------------------------
  178.   def update
  179.     super
  180.     # 主界面的不透明度下降
  181.     if $game_temp.battle_main_phase
  182.       self.contents_opacity -= 50 if self.contents_opacity > 1
  183.     else
  184.       self.contents_opacity += 50 if self.contents_opacity < 255
  185.     end
  186.   end
  187. end





  188. #==============================================================================
  189. # ■ Window_BattleStatus
  190. #==============================================================================
  191. class Window_BattleStatus < Window_Base
  192.   #--------------------------------------------------------------------------
  193.   # ● 初始化
  194.   #--------------------------------------------------------------------------
  195.   alias xrxs_bp2_refresh refresh
  196.   def refresh
  197.     xrxs_bp2_refresh
  198.     @item_max = $game_party.actors.size
  199.      for i in 0...$game_party.actors.size
  200.       actor = $game_party.actors[i]
  201.       case i
  202.         when 0
  203.          x = 310
  204.          y = 390
  205.         when 1
  206.          x = 390
  207.          y = 340
  208.         when 2
  209.          x = 480
  210.          y = 300
  211.         when 3
  212.          x = 550
  213.          y = 270
  214.        end
  215.       draw_actor_hp_meter(actor, x, y, 50)
  216.       draw_actor_sp_meter(actor, x, y + 8, 50)
  217.     end
  218.   end
  219. end
  220. #==============================================================================
  221. # ■ Window_Base
  222. #==============================================================================
  223. class Window_Base < Window
  224.   #--------------------------------------------------------------------------
  225.   # ● HP描画
  226.   #--------------------------------------------------------------------------
  227.   def draw_actor_hp_meter(actor, x, y, width = 156, type = 0)
  228.     if type == 1 and actor.hp == 0
  229.       return
  230.     end
  231.     self.contents.font.color = system_color
  232.     self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 25))
  233.     w = width * actor.hp / actor.maxhp
  234.     self.contents.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  235.     self.contents.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  236.     self.contents.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  237.     self.contents.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))
  238.    
  239.     end
  240.   #--------------------------------------------------------------------------
  241.   # ● SP描画
  242.   #--------------------------------------------------------------------------
  243.   def draw_actor_sp_meter(actor, x, y, width = 156, type = 0)
  244.     if type == 1 and actor.hp == 0
  245.       return
  246.     end
  247.     self.contents.font.color = system_color
  248.     self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  249.     w = width * actor.sp / actor.maxsp
  250.     self.contents.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  251.     self.contents.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  252.     self.contents.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  253.     self.contents.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  254.   end
  255. end
复制代码
做脚本先从修改脚本做起,我只修改自己觉得能用到的东西。
以后的任何作品都将不会进行分享。
Bilibili:https://space.bilibili.com/288814521
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-3-27
帖子
78
3
发表于 2006-3-29 03:12:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2227
在线时间
1102 小时
注册时间
2006-1-10
帖子
800
4
发表于 2006-3-29 04:03:07 | 只看该作者
哈哈~~
你怎么给仍出来了~~
我昨天就想放,怕你有想法来着....{/cy}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
910
在线时间
94 小时
注册时间
2005-10-22
帖子
397
5
 楼主| 发表于 2006-3-29 17:48:27 | 只看该作者
顶上去,等待发布。
做脚本先从修改脚本做起,我只修改自己觉得能用到的东西。
以后的任何作品都将不会进行分享。
Bilibili:https://space.bilibili.com/288814521
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级圣迷

梦石
0
星屑
50
在线时间
13 小时
注册时间
2005-10-21
帖子
153
6
发表于 2006-3-29 22:27:19 | 只看该作者
有横版的吗?还是改下坐标就能用了?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级圣迷

梦石
0
星屑
50
在线时间
13 小时
注册时间
2005-10-21
帖子
153
7
发表于 2006-3-29 23:28:40 | 只看该作者
改坐标貌似不难,能不能改成像清爽版的HP条那样的?这样又有字又有条太占地方,人物本来就小,都被挤得看不见了……还有,我用了图标显示状态,结果状态没了……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
910
在线时间
94 小时
注册时间
2005-10-22
帖子
397
8
 楼主| 发表于 2006-3-29 23:56:08 | 只看该作者
以下引用AKA于2006-3-29 15:28:40的发言:

改坐标貌似不难,能不能改成像清爽版的HP条那样的?这样又有字又有条太占地方,人物本来就小,都被挤得看不见了……还有,我用了图标显示状态,结果状态没了……

那个字可以注释掉的。
做脚本先从修改脚本做起,我只修改自己觉得能用到的东西。
以后的任何作品都将不会进行分享。
Bilibili:https://space.bilibili.com/288814521
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
11 小时
注册时间
2006-3-29
帖子
13
9
发表于 2006-3-30 00:49:16 | 只看该作者
我刚开始用XP,能告诉我要显示10个人的话要怎么设?复制以后改坐标?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

10
发表于 2006-3-30 22:18:55 | 只看该作者
窗口设置没画好,注意,有一个向右的箭头。
用默认工程测试就知道了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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