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

Project1

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

[已经解决] 用脚本在地图上显示血条的一些问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2010-7-8
帖子
28
跳转到指定楼层
1
发表于 2010-9-14 00:45:48 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 鲜鲜兔 于 2010-9-23 18:39 编辑

       我用的是下面这个脚本,这个脚本只默认显示带头者的血条,而我想实现显示整队人的血条,我已经做了一些修改,添加了 for i  in ...$game_party.actors.size   等等这样的语句,结果
                                                         actor = $game_party.actors
出现这样的效果:例如初期是三个人,只能显示2个人的血条,中途加人就更不可能显示了;另外,中途减人最最离谱,明明就剩1个人了,地图上居然还显示2个人的血条,狂汗 -_-|||
      到底是什么原因造成的丫,麻烦各位高手帮我解答一下,多谢了!!!
  1. DT_SWITCH = 66
  2. #有问题,找蚂蚁 redant修改
  3. #_______________________________________________________________________________
  4. # MOG_MPW HUD Elena V2.0           
  5. #_______________________________________________________________________________
  6. # By Moghunter
  7. # [url]http://www.atelier-rgss.com[/url]
  8. #_______________________________________________________________________________
  9. module MOG
  10.   #HUD Position.
  11.   STMAPX = -10   # X Pos
  12.   STMAPY = 410   # Y Pos
  13.   STMAPVIS = 1    #Disable HUD Switch ID.  
  14.   STMAPSKIN = ""  #Windowskin name.
  15.   STMAPOPA = 0    #Window Opacity.
  16. end
  17.   $mogscript = {} if $mogscript == nil
  18.   $mogscript["mpstelen"] = true
  19.   
  20. #=============================================#
  21. #window_Base                                  #
  22. #=============================================#
  23. class Window_Base < Window
  24.   def draw_maphp2(actor, x, y)
  25.     for i in 0...$game_party.actors.size
  26.       actor = $game_party.actors[i]
  27.       text = RPG::Cache.picture("Bar_Meter")   
  28.     cw = text.width
  29.     ch = text.height
  30.     src_rect = Rect.new(0, 0, cw, ch)
  31.     self.contents.blt( 56+140*i, 13, text, src_rect)
  32.     meter = RPG::Cache.picture("HP_Meter")   
  33.     cw = meter.width * actor.hp / actor.maxhp  
  34.     ch = meter.height
  35.     src_rect = Rect.new(0, 0, cw, ch)
  36.     self.contents.blt( 56+140*i ,13 , meter, src_rect)
  37.     end
  38.   end  
  39.   def draw_mapsp2(actor, x, y)
  40.     for i in 0...$game_party.actors.size
  41.     actor = $game_party.actors[i]
  42.     text = RPG::Cache.picture("Bar_Meter")   
  43.     cw = text.width
  44.     ch = text.height
  45.     src_rect = Rect.new(0, 0, cw, ch)
  46.     self.contents.blt( 56+140*i, 25, text, src_rect)
  47.     meter = RPG::Cache.picture("SP_Meter")
  48.     cw = meter.width  * actor.sp / actor.maxsp
  49.     ch = meter.height
  50.     src_rect = Rect.new(0, 0, cw, ch)
  51.     self.contents.blt( 56+140*i, 25, meter,  src_rect)
  52.     end
  53.   end
  54.   def draw_mexp(actor, x, y)
  55.      for i  in  0...$game_party.actors.size
  56.      actor = $game_party.actors[i]
  57.      if actor.next_exp != 0
  58.       rate = actor.now_exp.to_f / actor.next_exp
  59.     else
  60.       rate = 1
  61.     end
  62.     bitmap = RPG::Cache.picture("Exp_Meter")
  63.     if actor.level < 99
  64.       cw = bitmap.width * rate  
  65.     else
  66.       cw = bitmap.width
  67.     end   
  68.     ch = bitmap.height
  69.     src_rect = Rect.new(0, 0, cw, ch)
  70.     self.contents.blt(56 ,37, bitmap, src_rect)
  71.   end  
  72. end
  73.   def nada
  74.     face = RPG::Cache.picture("")
  75.   end  
  76.   def draw_heroface(actor,x,y) #"Graphics/system/menu/headp/" + actor.name + ".png"
  77.     for i in 0...$game_party.actors.size
  78.     actor = $game_party.actors[i]
  79.     face = RPG::Cache.picture($game_party.actors[i].name)   rescue nada
  80.     cw = face.width
  81.     ch = face.height
  82.     src_rect = Rect.new(0, 0, cw, ch)
  83.     self.contents.blt(0+140*i , 8, face, src_rect)
  84.     end
  85.   end  
  86. end

  87. #=====================================================#
  88. # Game_Actor                                          #
  89. #=====================================================#
  90. class Game_Actor < Game_Battler
  91.   def now_exp
  92.     return @exp - @exp_list[@level]
  93.   end
  94.   def next_exp
  95.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  96.   end
  97. end

  98. #=====================================================#
  99. # Window_Status_Map                                   #
  100. #=====================================================#
  101. class Window_Sthero < Window_Base
  102.   def initialize
  103.     super(0, 0, 310, 120)
  104.     self.contents = Bitmap.new(width - 32, height - 32)
  105.     self.windowskin = RPG::Cache.windowskin(MOG::STMAPSKIN)   
  106.     self.contents.font.bold = true
  107.     self.contents.font.size = 20
  108.     self.contents.font.name = "Georgia"
  109.     self.opacity = MOG::STMAPOPA
  110.     refresh
  111.   end  
  112.   def refresh
  113.     if $game_switches[DT_SWITCH]
  114.       self.contents.clear
  115.       for i in 0...$game_party.actors.size
  116.       actor = $game_party.actors[i]
  117.       draw_maphp2(actor, 35, 35)
  118.       draw_mapsp2(actor, - 40, 60)
  119.       draw_hpstore(actor, 100, 10)       #*************************
  120. #     draw_mexp(actor, 100, 10)
  121.       draw_heroface(actor, 0, 70)
  122.       end
  123.     end
  124.   end
  125. end

  126. #====================================================#
  127. # Game_Player                                        #
  128. #====================================================#
  129. class Game_Player < Game_Character
  130.   attr_accessor :wref
  131. end

  132. #====================================================#
  133. # Scene_Map                                          #
  134. #====================================================#
  135. class Scene_Map
  136.   alias mog11_main main
  137.   def main
  138.     @sthero = Window_Sthero.new
  139.     @sthero.x = MOG::STMAPX
  140.     @sthero.y = MOG::STMAPY
  141.     if $game_switches[MOG::STMAPVIS] == false
  142.       @sthero.visible = true  
  143.     else
  144.       @sthero.visible = false  
  145.     end  
  146.     mog11_main
  147.     @sthero.dispose
  148.   end  
  149.   alias mog11_update update
  150.   def update
  151.     mog11_update
  152.     if $game_switches[MOG::STMAPVIS] == false
  153.       @sthero.visible = true  
  154.     else
  155.       @sthero.visible = false  
  156.     end
  157.     if $game_switches[DT_SWITCH]
  158.       @sthero.visible = true
  159.       if $game_player.wref == true
  160.         @sthero.refresh
  161.         $game_player.wref = false
  162.       end
  163.     else
  164.       @sthero.visible = false  
  165.       $game_player.wref = false
  166.     end
  167.   end
  168. end  

  169. #======================================================#
  170. # Game_Party                                           #
  171. #======================================================#
  172. class Game_Party
  173.   alias mog11_check_map_slip_damage check_map_slip_damage  
  174.   def check_map_slip_damage
  175.     for actor in @actors
  176.       if actor.hp > 0 and actor.slip_damage?
  177.         $game_player.wref = true
  178.       end
  179.     end
  180.     mog11_check_map_slip_damage  
  181.   end
  182. end

  183. #=====================================================#
  184. # Interpreter                                         #
  185. #=====================================================#
  186. class Interpreter
  187.   alias mog11_command_311 command_311
  188.   def command_311
  189.     mog11_command_311
  190.     $game_player.wref = true   
  191.   end   
  192.   alias mog11_command_312 command_312
  193.   def command_312
  194.     mog11_command_312
  195.     $game_player.wref = true   
  196.   end     
  197.   alias mog11_command_313 command_313
  198.     def command_313
  199.     mog11_command_313
  200.     $game_player.wref = true   
  201.   end   
  202.   alias mog11_command_314 command_314
  203.   def command_314
  204.     mog11_command_314
  205.     $game_player.wref = true   
  206.   end  
  207.   alias mog11_command_315 command_315
  208.   def command_315
  209.     mog11_command_315
  210.     $game_player.wref = true   
  211.   end   
  212. end   

  213. #====================================================#
  214. # Game_Battler                                       #
  215. #====================================================#
  216. class Game_Battler
  217.   alias mog11_attack_effect attack_effect
  218.   def attack_effect(attacker)
  219.     mog11_attack_effect(attacker)  
  220.     $game_player.wref = true
  221.   end
  222.   alias mog11_skill_effect skill_effect
  223.   def skill_effect(user, skill)
  224.     mog11_skill_effect(user, skill)
  225.     $game_player.wref = true  
  226.   end  
  227.   alias mog11_item_effect item_effect
  228.   def item_effect(item)
  229.     mog11_item_effect(item)
  230.     $game_player.wref = true  
  231.   end
  232.   alias mog11_add_state add_state
  233.   def add_state(state_id, force = false)
  234.     mog11_add_state(state_id, force = false)
  235.     $game_player.wref = true  
  236.   end
  237. end
复制代码

点评

自己揣摩出来了,结贴  发表于 2010-9-23 18:37
工程重新更新了一下,加了显示行走图,手头没什么素材,也就没做成头像,大概就是这个思路~  发表于 2010-9-16 08:13

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2010-8-1
帖子
231
3
发表于 2010-9-14 22:03:19 | 只看该作者
本帖最后由 seasoneast 于 2010-9-16 08:12 编辑

回复 鲜鲜兔 的帖子

你可以试试这个,范例里面有说明,地图上显示小队名称,生命值,魔法值,状态,可自行修改显示哪些数据,增减队员都没有问题。
Project1.rar (186.62 KB, 下载次数: 363)

点评

谢谢你丫,你给的这个范例我也有,但是单纯显示数值没有头像什么的有点单调了, 自己修改的话呢,我又不懂脚本,真郁闷呐,也许我不该要求这么高的说 ╮(╯▽╰)╭   发表于 2010-9-14 23:52
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42399
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2010-9-14 17:06:55 | 只看该作者
回复 鲜鲜兔 的帖子


    在队员加入时初始化一次这个脚本。

点评

恩,我大概也猜到是因为这个原因了,问题是在队员加入时到底应该怎么初始化呢, 完全不懂 %>_  发表于 2010-9-14 23:47
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 04:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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