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

Project1

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

[已经解决] (求助)ARPG中地图显示HP(SP.技能栏.物品栏)的关闭方法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
444
在线时间
0 小时
注册时间
2010-10-8
帖子
3
跳转到指定楼层
1
发表于 2010-10-8 18:09:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 minivivi 于 2010-10-15 16:20 编辑

主要是希望能够知道如何能在非战斗地图关闭HP等窗口的方法


如上图这样
HP跟SP条常驻在画面上
想做开头画面,也会因为HP条跟SP的显示
看起来怪怪的

在发问前,已经爬了不少文
也搜索了相关字汇

像是這篇脚本高手请入……讨厌的BUG

请问怎么让HP显示可以选择

所以知道应该是跟

def hud_properties
    if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true)
      if @hud.visible == false
        @hud.update
        @hud.visible = true
        @bg.visible = true
      end
    elsif @hud.visible != false
       @hud.visible = false
       @bg.visible = false
     end
   end

这边有关
但是我在地图上试着设定事件
事件指令中的脚本内

我不管是输入
$game_switches[CrissaegrimHud::OnOff_Hud_Switch] == false
还是
$game_switches[0] == true

或是

OnOff_Hud_Switch = 1

都不起作用或是错误

看到有人提到是用变量操作
不知道详细的方法到底是如何?
希望各位高手能够帮我QQ
感激不尽

下面是我用的脚本
  1. #==============================================================================
  2. # Window Hud
  3. #这个脚本是经过yangff修改后的改良版,大量的增加了刷新效率,用这个体院原版hud基本何以满帧了
  4. #==============================================================================
  5. module CrissaegrimHud
  6.   
  7. # imagem de fundo da hud
  8. Background = "HUD_Background"
  9. # Switch que ativa / desativa a HUD
  10. # se for = 0, a Hud será mostrada na tela permanentemente
  11. OnOff_Hud_Switch = 0

  12. end
  13. #------------------------------------------------------------------------------
  14. class Window_CrissaegrimHud < Window_Base
  15.   def initialize
  16.     super(0,0,700,700)
  17.     self.opacity = 0
  18.     update
  19.   end
  20.   
  21.   def update
  22. return if Crissaegrim_ABS::Distance_Weapons == nil
  23.     if (@hp != $game_party.members[0].hp or @mp != $game_party.members[0].mp) or $refreshon==1#(tp1 != @tp1 or tp2 != @tp2)
  24.       #上一行是刷新条件
  25.       @hp = $game_party.members[0].hp
  26.       @mp = $game_party.members[0].mp
  27.       $refreshon = 0
  28.       self.contents.font.size = 16
  29.       self.contents.clear
  30.       skill_count = 0
  31.       for button in Crissaegrim_ABS::Skill_Button.keys
  32.         next if button == nil
  33.         skill = $data_skills[Crissaegrim_ABS::Skill_Button[button]]
  34.         next if skill == nil
  35.         show_icon(skill, (28 * skill_count) + 358, 316)
  36.         skill_count += 1
  37.       end
  38.       item_count = 0
  39.       for btn in Crissaegrim_ABS::Item_Button.keys
  40.         next if btn == nil
  41.         item = $data_items[Crissaegrim_ABS::Item_Button[btn]]
  42.         next if item == nil
  43.         show_icon(item, (28 * item_count) + 358, 356)
  44.         item_count += 1
  45.       end
  46.       actor = $game_party.members[0]
  47.       draw_actor_hp(actor, 0, -4, 96)
  48.       draw_actor_mp(actor, 0, 20, 96)
  49.       draw_actor_level(actor, 0, 44)
  50.       show_state(actor, 115, 0)
  51.       if Crissaegrim_ABS::Distance_Weapons.has_key?($game_party.members[0].weapon_id)
  52.         if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5].to_i > 0
  53.           show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]], 260, 0)
  54.           self.contents.font.size = 18
  55.           self.contents.font.color = text_color(15)
  56.           self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  57.           self.contents.font.size = 16
  58.           self.contents.font.color = text_color(0)
  59.           self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  60.         end
  61.         if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6].to_i > 0
  62.           show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]], 260, 40)
  63.           self.contents.font.size = 18
  64.           self.contents.font.color = text_color(15)
  65.           self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  66.           self.contents.font.size = 16
  67.           self.contents.font.color = text_color(0)
  68.           self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  69.         end
  70.       end
  71.     end
  72. end
  73.   def show_state(actor, x, y)
  74.     count = 0
  75.     for state in actor.states
  76.       draw_icon(state.icon_index, x, y + 24 * count)
  77.       count += 1
  78.       break if (24 * count > 76)
  79.     end
  80.   end
  81.   def show_icon(item, x, y)
  82.     if item != nil
  83.       draw_icon(item.icon_index, x, y)
  84.     end
  85.   end
  86. end

  87. class Scene_Map
  88.   alias hud_start start
  89.   alias hud_update update
  90.   alias hud_terminate terminate
  91.   def start
  92.     super
  93.     @bg = Sprite.new
  94.     @bg.bitmap = Cache.system(CrissaegrimHud::Background)
  95.     @bg.x = 200
  96.     @bg.y = 316
  97.     @hud = Window_CrissaegrimHud.new
  98.     @hud.x = 0
  99.     @hud.y = 0
  100.     hud_properties
  101.     hud_start
  102.   end
  103.   def update
  104.     super
  105.     #@bg.update
  106.     if @hud.visible != false
  107.       @hud.update
  108.     end
  109.     hud_properties
  110.     hud_update
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 与状态窗口的开关相关的语句
  114.   #--------------------------------------------------------------------------   
  115.   def hud_properties
  116.     if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true)
  117.       if @hud.visible == false
  118.         @hud.update
  119.         @hud.visible = true
  120.         @bg.visible = true
  121.       end
  122.     elsif @hud.visible != false
  123.        @hud.visible = false
  124.        @bg.visible = false
  125.      end
  126.    end
  127.   def terminate
  128.     super
  129.     @bg.dispose
  130.     @bg = nil
  131.     @hud.dispose
  132.     @hud = nil
  133.     hud_terminate
  134.   end
  135. end
复制代码

点评

我需要你的脚本。老大  发表于 2010-10-9 00:18

Lv1.梦旅人

水土火风重逢处

梦石
0
星屑
239
在线时间
691 小时
注册时间
2010-7-17
帖子
3042
2
发表于 2010-10-8 18:11:49 | 只看该作者
我给个思路吧,我也不懂脚本,就是给这个脚本加上个开关,然后在你需要显示的地方打开,不需要的地方关闭
独坐望城,望断天涯
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
444
在线时间
0 小时
注册时间
2010-10-8
帖子
3
3
 楼主| 发表于 2010-10-8 22:40:55 | 只看该作者
很感谢LS的回答
不过...
貌似已经有开关设定了

应该就是下面这串
  1. def hud_properties
  2.     if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true)
  3.       if @hud.visible == false
  4.         @hud.update
  5.         @hud.visible = true
  6.         @bg.visible = true
  7.       end
  8.     elsif @hud.visible != false
  9.        @hud.visible = false
  10.        @bg.visible = false
  11.      end
  12.    end
复制代码
我想知道怎么在事件中设定脚本
是下面红圈处那样 用脚本指令吗?
如果是的话,又该怎么写呢??
感谢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
4
发表于 2010-10-9 09:17:01 | 只看该作者
用事件指令就行了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
444
在线时间
0 小时
注册时间
2010-10-8
帖子
3
5
 楼主| 发表于 2010-10-15 16:20:00 | 只看该作者
终于摸索出来了
虽然观念很容易
不过事实上的操作要怎么做,总是没概念
今天突然想到应该是开关编号,预设是0
所以就把脚本开头的OnOff_Hud_Switch
设定成0以外的编号(我设定100)
并且简化下方的语法
  1. #  def hud_properties
  2. #     if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true)
  3. #       if @hud.visible == false
  4. #         @hud.update
  5. #         @hud.visible = true
  6. #         @bg.visible = true
  7. #       end
  8. #     elsif @hud.visible != false
  9. #        @hud.visible = false
  10. #        @bg.visible = false
  11. #      end
  12. #    end
复制代码
if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true)

简化成

if $game_switches[100] == true

然后在事件指令中,打开 开关操作
将编号100的开关给打开
为了避免搞混,顺便给开关取个名称:血条开关
要关闭的时候
再将开关给关闭就好了
就像附图红圈处那样


原来根本用不上事件指令中的脚本功能...
再次感谢各位的帮忙
终于解决了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 21:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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