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

Project1

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

[已经解决] 能让状态的行走图变成战斗图吗

[复制链接]

Lv1.梦旅人

梦石
0
星屑
218
在线时间
356 小时
注册时间
2011-3-8
帖子
66
跳转到指定楼层
1
 楼主| 发表于 2013-2-9 04:40:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 daosi 于 2013-2-12 15:42 编辑

本来不想做伸手党的,真心搜不到
想用更改战斗图的方式时刻更新状态里面的头像
比如中毒了,头像就换一张

刚才看了脚本教程,貌似只能指定一张跟角色ID名字一样的图片
不会脚本伤不起啊,我只能想到替换队员来更改角色ID实现换图片的效果了
物品虽然还在,但是属性会被初始化吧……好纠结
跪求解决方法……



想弄个解谜游戏,只有主角一个人,因为只有【物品】【存档】【结束游戏】,只改刚点进菜单的状态就好
不知道能不能实现啊……

Lv1.梦旅人

梦石
0
星屑
218
在线时间
356 小时
注册时间
2011-3-8
帖子
66
2
 楼主| 发表于 2013-2-9 13:43:47 | 只看该作者
没有人么……OTL,人工提前一下,灌水?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

3
发表于 2013-2-10 14:25:14 | 只看该作者
  本人来解决LZ第二个问题

脚本:
  1. class Window_Base < Window
  2.   def draw_actor_xdrs(actor, x, y)
  3.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  4.     cw = bitmap.width
  5.     ch = bitmap.height
  6.     src_rect = Rect.new(0, 0, cw, ch)
  7.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  8.   end
  9. end
  10. #============================================================================
  11. class Window_ActorCommand < Window_Selectable
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(0, 0, 640, 64)
  15.     self.contents = Bitmap.new(width - 32, height - 32)
  16.     @item_max = 3
  17.     @column_max = 3
  18.     @commands = [$data_system.words.item, "存档", "结束"]
  19.     refresh
  20.     self.index = 0
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   def refresh
  24.     self.contents.clear
  25.     for i in 0...@item_max
  26.       draw_item(i)
  27.     end
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   def draw_item(index)
  31.     x = 65 + index * 213
  32.     self.contents.draw_text(x, 0, 128, 32, @commands[index])
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   def update_cursor_rect
  36.     self.cursor_rect.set(24 + index * 213, 0, 128, 32)
  37.   end
  38. end
  39. class Window_MenuShow < Window_Base
  40.   #--------------------------------------------------------------------------
  41.   def initialize
  42.     super(0, 384, 640, 96)
  43.     self.contents = Bitmap.new(width - 32, height - 32)
  44.     refresh
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def refresh
  48.     self.contents.clear
  49.     self.contents.font.color = system_color
  50.     self.contents.draw_text(4, 0, 120, 32, "游戏时间")
  51.     @total_sec = Graphics.frame_count / Graphics.frame_rate
  52.     hour = @total_sec / 60 / 60
  53.     min = @total_sec / 60 % 60
  54.     sec = @total_sec % 60
  55.     text = sprintf("%02d:%02d:%02d", hour, min, sec)
  56.     self.contents.font.color = normal_color
  57.     self.contents.draw_text(4, 32, 120, 32, text, 2)
  58.     self.contents.font.color = system_color
  59.     self.contents.draw_text(324, 0, 120, 32, "步数")
  60.     self.contents.font.color = normal_color
  61.     self.contents.draw_text(324, 32, 120, 32, $game_party.steps.to_s, 2)
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   def update
  65.     super
  66.     if Graphics.frame_count / Graphics.frame_rate != @total_sec
  67.       refresh
  68.     end
  69.   end
  70. end
  71. class Window_Back_a < Window_Base
  72.   #--------------------------------------------------------------------------
  73.   def initialize
  74.     super(0, 64, 214, 320)
  75.     self.contents = Bitmap.new(width - 32, height - 32)
  76.   end
  77. end
  78. class Window_Back_b < Window_Base
  79.   #--------------------------------------------------------------------------
  80.   def initialize
  81.     super(214, 64, 426, 320)
  82.     self.contents = Bitmap.new(width - 32, height - 32)
  83.   end
  84. end
  85. class Window_ActorStatus < Window_Base
  86.   #--------------------------------------------------------------------------
  87.   def initialize
  88.     super(0, 64, 640, 320)
  89.     self.contents = Bitmap.new(width - 32, height - 32)
  90.     self.opacity = 0
  91.     refresh
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   def refresh
  95.     self.contents.clear
  96.     actor = $game_party.actors[0]
  97.     draw_actor_xdrs(actor, 80, 226)
  98.     draw_actor_name(actor,  300, 64)
  99.     draw_actor_state(actor,  480, 0)
  100.     draw_actor_hp(actor, 300, 106)
  101.     draw_actor_sp(actor,  300, 148)
  102.   end
  103. end
  104. #==============================================================================
  105. class Scene_Menu
  106.   #--------------------------------------------------------------------
  107.   def main
  108.     @command_window = Window_ActorCommand.new
  109.     if $game_system.save_disabled
  110.       @command_window.disable_item(1)
  111.     end
  112.     @menushow_window = Window_MenuShow.new
  113.     @status_window = Window_ActorStatus.new
  114.     @backa_window = Window_Back_a.new
  115.     @backb_window = Window_Back_b.new
  116.     Graphics.transition
  117.     loop do
  118.       Graphics.update
  119.       Input.update
  120.       update
  121.       if $scene != self
  122.         break
  123.       end
  124.     end
  125.     Graphics.freeze
  126.     @command_window.dispose
  127.     @menushow_window.dispose
  128.     @status_window.dispose
  129.     @backa_window.dispose
  130.     @backb_window.dispose
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   def update
  134.     @command_window.update
  135.     @menushow_window.update
  136.     @status_window.update
  137.     @backa_window.update
  138.     @backb_window.update
  139.     if @command_window.active
  140.       update_command
  141.       return
  142.     end
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   def update_command
  146.     if Input.trigger?(Input::B)
  147.       $game_system.se_play($data_system.cancel_se)
  148.       $scene = Scene_Map.new
  149.       return
  150.     end
  151.     if Input.trigger?(Input::C)
  152.       if $game_party.actors.size == 0 and @command_window.index < 4
  153.         $game_system.se_play($data_system.buzzer_se)
  154.         return
  155.       end
  156.       case @command_window.index
  157.       when 0  
  158.         $game_system.se_play($data_system.decision_se)
  159.         $scene = Scene_Item.new
  160.       when 1  
  161.         if $game_system.save_disabled
  162.           $game_system.se_play($data_system.buzzer_se)
  163.           return
  164.         end
  165.         $game_system.se_play($data_system.decision_se)
  166.         $scene = Scene_Save.new
  167.       when 2  
  168.         $game_system.se_play($data_system.decision_se)
  169.         $scene = Scene_End.new
  170.       return
  171.       end
  172.     end
  173.   end
  174. end
复制代码
复制插到 main 前

由于竖向选择不好排版,我改横向。效果:



人物的战斗图,放在character 文件夹下。
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
218
在线时间
356 小时
注册时间
2011-3-8
帖子
66
4
 楼主| 发表于 2013-2-12 15:40:11 | 只看该作者
芯☆淡茹水 发表于 2013-2-10 14:25
本人来解决LZ第二个问题

脚本:复制插到 main 前

{:2_270:} 非常感谢,以为没人回答嗷嗷,弄回去好好研究
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-29 19:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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