Project1

标题: 请问一个在战斗中显示使用技能时的方框问题。 [打印本页]

作者: 春风莉露    时间: 2012-5-7 13:07
标题: 请问一个在战斗中显示使用技能时的方框问题。
喔喔
看附件吧。
内容在里头了。

dsu_plus_rewardpost_czw
作者: ROMB板    时间: 2012-5-7 20:20
更改窗口?
作者: 春风莉露    时间: 2012-5-8 21:37
ROMB板 发表于 2012-5-7 20:20
更改窗口?

喔喔
怎么可能?
作者: hcm    时间: 2012-5-8 22:19
我好像看不见有附件下载啊?
作者: cinderelmini    时间: 2012-5-8 23:08
本帖最后由 cinderelmini 于 2012-5-8 23:10 编辑

呃。。。顺手写了点。。。
直接替换原来的Window_Help脚本就好了~
由于没有深入测试,有问题@我。。
  1. #==============================================================================
  2. # ■ Window_Help
  3. #------------------------------------------------------------------------------
  4. #  特技及物品的说明、角色的状态显示的窗口。
  5. #==============================================================================

  6. class Window_Help < Window_Base
  7.   
  8. # ======================================================================
  9. # 前置两个开关,以便兼容
  10. # ======================================================================
  11.   # ======================================================================
  12.   # KIMIHA,是否在没有文本的时候仍显示Help窗体,
  13.   # true:则无论如何都显示,且当无文本的时候自动宽度至满屏
  14.   # false:则没有文本的时候不显示Help窗体
  15.   KIMIHA = false
  16.   # ======================================================================
  17.   
  18.   # ======================================================================
  19.   # ANATAHA,是否无论何时都使用根据文本大小决定窗体宽度
  20. # true:则无论何时都是这个效果
  21. # false:则只在战斗有此效果  
  22. ANATAHA = false
  23.   # ======================================================================
  24.   
  25.   #--------------------------------------------------------------------------
  26.   # ● 初始化对像
  27.   #--------------------------------------------------------------------------
  28.   def initialize
  29.     super(0, 0, 640, 64)
  30.     self.contents = Bitmap.new(width - 32, height - 32)
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 设置文本
  34.   #     text  : 窗口显示的字符串
  35.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  36.   #--------------------------------------------------------------------------
  37.   def set_text(text, align = 0)
  38. if ANATAHA
  39.     # 如果文本和对齐方式的至少一方与上次的不同
  40.     if text != @text or align != @align
  41.       # 再描绘文本
  42.       self.contents.clear
  43.       self.contents.font.color = normal_color
  44.       size =self.contents.text_size(text).width
  45.       if text.nil? or text == ""
  46.         self.width = 640
  47.         self.visible = false if !KIMIHA
  48.       else
  49.         self.width = size + 32
  50.         self.visible = true if !KIMIHA
  51.       end
  52.       self.x = 320 - (self.width / 2)
  53.       self.contents.dispose
  54.       self.contents = Bitmap.new(self.width - 32, self.height - 32)
  55.       self.contents.draw_text(0, 0, size, 32, text, align)
  56.       @text = text
  57.       @align = align
  58.       @actor = nil
  59.     end
  60.     self.visible = true if KIMIHA
  61. else
  62. if $game_temp.in_battle
  63.     # 如果文本和对齐方式的至少一方与上次的不同
  64.     if text != @text or align != @align
  65.       # 再描绘文本
  66.       self.contents.clear
  67.       self.contents.font.color = normal_color
  68.       size =self.contents.text_size(text).width
  69.       if text.nil? or text == ""
  70.         self.width = 640
  71.         self.visible = false if !KIMIHA
  72.       else
  73.         self.width = size + 32
  74.         self.visible = true if !KIMIHA
  75.       end
  76.       self.x = 320 - (self.width / 2)
  77.       self.contents.dispose
  78.       self.contents = Bitmap.new(self.width - 32, self.height - 32)
  79.       self.contents.draw_text(0, 0, size, 32, text, align)
  80.       @text = text
  81.       @align = align
  82.       @actor = nil
  83.     end
  84.     self.visible = true if KIMIHA
  85. else
  86.     # 如果文本和对齐方式的至少一方与上次的不同
  87.     if text != @text or align != @align
  88.       # 再描绘文本
  89.       self.contents.clear
  90.       self.contents.font.color = normal_color
  91.       self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  92.       @text = text
  93.       @align = align
  94.       @actor = nil
  95.     end
  96.     self.visible = true
  97. end
  98. end
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 设置角色
  102.   #     actor : 要显示状态的角色
  103.   #--------------------------------------------------------------------------
  104.   def set_actor(actor)
  105.     if actor != @actor
  106.       self.contents.clear
  107.       draw_actor_name(actor, 4, 0)
  108.       draw_actor_state(actor, 140, 0)
  109.       draw_actor_hp(actor, 284, 0)
  110.       draw_actor_sp(actor, 460, 0)
  111.       @actor = actor
  112.       @text = nil
  113.       self.visible = true
  114.     end
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 设置敌人
  118.   #     enemy : 要显示名字和状态的敌人
  119.   #--------------------------------------------------------------------------
  120.   def set_enemy(enemy)
  121.     text = enemy.name
  122.     state_text = make_battler_state_text(enemy, 112, false)
  123.     if state_text != ""
  124.       text += "  " + state_text
  125.     end
  126.     set_text(text, 1)
  127.   end
  128. end
复制代码

作者: 春风莉露    时间: 2012-5-8 23:16
本帖最后由 春风莉露 于 2012-5-8 23:18 编辑


喔喔
偶只需要改变战斗的技能和物品显示即可。
那脚本在显示状态时会显示不完全。


‘‘──春风莉露于2012-5-8 23:20补充以下内容
  1. #==============================================================================
  2. # ■ Window_Help
  3. #------------------------------------------------------------------------------
  4. #  特技及物品的说明、角色的状态显示的窗口。
  5. #==============================================================================

  6. class Window_Help < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.    unless $scene.is_a?(Scene_Skill)
  12.    if $scene.is_a?Scene_Battle
  13.      super(0, 0, 640, 64)
  14.      self.contents = Bitmap.new(width - 32, height - 32)
  15.      self.opacity = 255
  16.    else
  17.    super(0, 0, 640, 64)
  18.    self.contents = Bitmap.new(width - 32, height - 32)
  19.    self.opacity = 0
  20.    end
  21. else
  22.    super(0, 0, 640, 480)
  23.    self.opacity = 0
  24.    self.contents = Bitmap.new(width - 32, height - 32)
  25.    end
  26. end   

  27.   #--------------------------------------------------------------------------
  28.   # ● 设置文本
  29.   #     text  : 窗口显示的字符串
  30.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  31.   #--------------------------------------------------------------------------
  32.   def set_text(text, align = 0)
  33.     # 如果文本和对齐方式的至少一方与上次的不同
  34.     if text != @text or align != @align
  35.       # 再描绘文本
  36.       self.contents.clear
  37.       self.contents.font.color = normal_color
  38.       self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  39.       @text = text
  40.       @align = align
  41.       @actor = nil
  42.     end
  43.     self.visible = true
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 设置角色
  47.   #     actor : 要显示状态的角色
  48.   #--------------------------------------------------------------------------
  49.   def set_actor(actor)
  50.     if actor != @actor
  51.       self.contents.clear
  52.       draw_actor_name(actor, 4, 0)
  53.       draw_actor_state(actor, 140, 0)
  54.       draw_actor_hp(actor, 284, 0)
  55.       draw_actor_sp(actor, 460, 0)
  56.       @actor = actor
  57.       @text = nil
  58.       self.visible = true
  59.     end
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 设置敌人
  63.   #     enemy : 要显示名字和状态的敌人
  64.   #--------------------------------------------------------------------------
  65.   def set_enemy(enemy)
  66.     text = enemy.name
  67.     state_text = make_battler_state_text(enemy, 112, false)
  68.     if state_text != ""
  69.       text += "  " + state_text
  70.     end
  71.     set_text(text, 1)
  72.   end
  73. end
复制代码
请你参考这个改一下吧
谢谢
’’
作者: cinderelmini    时间: 2012-5-8 23:25
春风莉露 发表于 2012-5-8 23:16
喔喔
偶只需要改变战斗的技能和物品显示即可。
那脚本在显示状态时会显示不完全。

呃~不关乎Scene作为条件了~
因为在战斗里Scene只是Scene_Battle了~
Scene不能再作为条件~
不过,要想只是在选择技能或物品或者说,
在阿东技能或使用物品的时候有这个效果的话~
可以在Window_Help里加个全局开关,
然后在Scene_Battle里操作开关~
因为你的战斗系统已经不是默认了~
希望能带上战斗系统附件~
作者: 春风莉露    时间: 2012-5-8 23:32
喔喔
这是里面用到的脚本

Project3.rar (221.2 KB, 下载次数: 14)
作者: cinderelmini    时间: 2012-5-8 23:46
OK~表示这工程不能测试。。。
于是似乎跟默认战斗系统没有步骤上的太大差异~
总之,在默认工程测试基本通过~
工程里只动了俩脚本 脚本名后带 : ☆整合、
自己看看~
然后在Scene_Battle 4 里搜索“# watashi”
查看添加的句子。。

哦啦~要碎叫了~
还有问题明晚见啦。。。
バイバイ~~~
Project3.7z (223.7 KB, 下载次数: 65)

作者: 春风莉露    时间: 2012-5-9 12:19
喔喔
这个问题?


作者: cinderelmini    时间: 2012-5-9 18:58
呃~OK了~~昨晚脑残了。。。关闭开关放错地方了~~~
于是。。。呃,,不说了~工程:
Project3修正.7z (223.64 KB, 下载次数: 328)

还有BUG的话请继续喊俺。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1