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

Project1

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

再请教紫苏。。关于那个显示图标的脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2008-12-11
帖子
124
跳转到指定楼层
1
发表于 2009-5-15 17:43:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
原脚本的功能:打开一个开关,右上角显示图标,我希望平时右上角只显示角色的SP数值,当所有开关都关闭后,所有图标消失,依然还原为只显示角色的SP数值,可不可以?另外用那脚本通过地图事件直接得失物品的话,右上角的物品数量没有更新


原地址:
http://rpg.blue/viewthread.php?tid=124735&ntime=2009-5-15+9%3A24%3A32




  1. class Floating < Sprite
  2. SWITCH_TO_ITEM = {
  3.    10 => 50,
  4.    11 => 51
  5. }
  6. def initialize(viewport = nil)
  7.    super(viewport)
  8.    self.bitmap = Bitmap.new(96, 32)
  9.    self.x = 640 - 96
  10.    self.z = 1000
  11.    @item = 0
  12. end
  13. def dispose
  14.    self.bitmap.dispose
  15.    super
  16. end
  17. def update
  18.    super
  19.    SWITCH_TO_ITEM.each_key { |i|
  20.      if $game_switches[i] && @item != i
  21.        bitmap = RPG::Cache.icon($data_items[SWITCH_TO_ITEM[i]].icon_name)
  22.        self.bitmap.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24))
  23.        self.bitmap.draw_text(32, 4, 64, 32,
  24.          sprintf("×%3d", $game_party.item_number(i)))
  25.        @item = i
  26.        return
  27.      end
  28.    }
  29. end
  30. end

  31. class Scene_Map
  32. alias main_old main if !method_defined? :main_old
  33. def main
  34.    @floating = Floating.new
  35.    main_old
  36.    @floating.dispose
  37. end
  38. alias update_old update if !method_defined? :update_old
  39. def update
  40.    @floating.update
  41.    update_old
  42. end
  43. end
复制代码

版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-5-15 18:22:39 | 只看该作者
描绘哪个角色的 sp ?
在 each_key 迭代结束之后(中途没有 return 说明制定的开关全部都是关闭着的)描绘 sp 即可,下面是显示队伍中第一个角色的 sp~
class Floating < Sprite
   SWITCH_TO_ITEM = {
     10 => 50,
     11 => 51
   }
   def initialize(viewport = nil)
     super(viewport)
     self.bitmap = Bitmap.new(96, 32)
     self.x = 640 - 96
     self.z = 1000
     update
   end
   def dispose
     self.bitmap.dispose
     super
   end
   def update
     super
     SWITCH_TO_ITEM.each_key { |i|
       if $game_switches
         id = SWITCH_TO_ITEM
         number = $game_party.item_number(id)
         if @item != id || @item_number != number
           self.bitmap.clear
           bitmap = RPG::Cache.icon($data_items[id].icon_name)
           self.bitmap.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24))
           self.bitmap.draw_text(32, 4, 64, 32, sprintf("×%3d", number))
           @item = id
           @item_number = number
           @sp = -1
         end
         return
       end
     }
     sp = $game_party.actors[0].sp
     if @sp != sp
       self.bitmap.clear
       self.bitmap.draw_text(4, 0, 88, 32, sprintf("SP:%5d", sp))
       @sp = sp
       @item = 0
       @item_number = 0
     end

   end
end

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2008-12-11
帖子
124
3
 楼主| 发表于 2009-5-15 18:34:19 | 只看该作者
对了,就是显示队伍中第一个角色的 sp。

我就改了开关和图标编号,为什么开关打开之后没反应了呢,什么都没显示,比如开476号开关显示28号物品图标,并关闭其它两个开关{/fd}
class Floating < Sprite
  SWITCH_TO_ITEM = {
    476 => 28,
    477 => 29,
    478 => 30
  }
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 2009-5-15 18:37:56 | 只看该作者
这只是替换 class Floating ...end 那一段, Scene_Map 的那一段还是要保留的……

另外上面编辑了一下,回帖的时候没看到你说的数量改变不刷新的问题~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2008-12-11
帖子
124
5
 楼主| 发表于 2009-5-15 18:43:24 | 只看该作者
明白了!谢谢{/gg}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-15 13:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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