<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[包子の研究社]]></title> 
<link>http://blog.paspy.org/index.php</link> 
<description><![CDATA[Chobits - Spicy & Wolf]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[包子の研究社]]></copyright>
<item>
<link>http://blog.paspy.org/post/106/</link>
<title><![CDATA[[破东西]空之轨迹系列OGG无限循环播放器~]]></title> 
<author>包子研究员 &lt;luchencs6@hotmail.com&gt;</author>
<category><![CDATA[RGSS]]></category>
<pubDate>Mon, 25 Aug 2008 10:27:02 +0000</pubDate> 
<guid>http://blog.paspy.org/post/106/</guid> 
<description>
<![CDATA[ 
	　　话说那啥继上次研究怎么添加OGG无限循环标记后，发现灭什么播放器支持这种标记滴，既然RPGVX支持这种标记播放，所以干脆自己写一个好了……<br/>　　=w=简单到可以让地球人都吐槽的地步OTL……<br/><br/>使用方法：<br/>直接解压缩到空之轨迹三部曲的根目录即可…如果需要播放其它无限循环曲目，可将相应的OGG文件拷贝到BGM目录下~<br/><br/>下载地址：<br/><a href="attachment.php?fid=102">点击这里下载文件</a><br/><br/>注解：其实Falcom的游戏都可以用……不仅限于空之轨迹啦~<br/><br/>以下是本播放器的核心脚本（注：播放功能为VX自带）很简单…真的很简单，没任何技术含量…<br/><br/>窗口部分：<br/><br/><textarea name="code" class="ruby" rows="15" cols="100">
#==============================================================================
# ■ Window_OGG_List
#------------------------------------------------------------------------------
# 　获取OGG目录列表的窗口
#==============================================================================

class Window_OGG_List &lt; Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize(column_max = 1)
    super(0, 0, 272, 416)
    load_ogg
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● 读取OGG列表
  #--------------------------------------------------------------------------
  def load_ogg
    old_dir = Dir.pwd
    Dir.chdir(&quot;BGM&quot;)
    ogg_list = Dir[&quot;*.ogg&quot;]
    Dir.chdir(old_dir)
    @item_max = ogg_list.size
    @ogg_size = @item_max
    @column_max = column_max
    @commands = ogg_list
    for i in 0...ogg_list.size
      ogg_list[i] = ogg_list[i].split(/&#92;./)[0]       
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # ● 描绘项目
  #--------------------------------------------------------------------------
  def draw_item(index)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, index * 24, 300, 32, @commands[index])
  end
  def ogg_music
    return @commands[self.index] + &quot;.ogg&quot;
  end
end
</textarea><br/><br/>处理的类部分：<br/><br/><textarea name="code" class="ruby" rows="15" cols="100">
#==============================================================================
# ■ Scene_OGG_Music
#------------------------------------------------------------------------------
# 　处理播放OGG的类。
#==============================================================================

class Scene_OGG_Music &lt; Scene_Base
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @left_window = Window_OGG_List.new
  end
  #--------------------------------------------------------------------------
  # ● 结束处理
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @left_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @left_window.update
    if Input.trigger?(Input::C)
      Audio.bgm_fade(1000)
      ogg_name = @left_window.ogg_music
      Audio.bgm_play(&quot;BGM/#&#123;ogg_name&#125;&quot;,100, 100)
    end
  end  
end
</textarea><br/>Tags - <a href="http://blog.paspy.org/tags/%25E9%259A%258F%25E6%2589%258B%25E7%25A0%2594%25E7%25A9%25B6%25E5%25BD%2595/" rel="tag">随手研究录</a> , <a href="http://blog.paspy.org/tags/rgss2/" rel="tag">rgss2</a>
]]>
</description>
</item><item>
<link>http://blog.paspy.org/post/23/</link>
<title><![CDATA[[RGSS]Fuki对话框附加功能整合版]]></title> 
<author>包子研究员 &lt;luchencs6@hotmail.com&gt;</author>
<category><![CDATA[RGSS]]></category>
<pubDate>Sat, 17 Nov 2007 15:18:24 +0000</pubDate> 
<guid>http://blog.paspy.org/post/23/</guid> 
<description>
<![CDATA[ 
	<br/>Tags - <a href="http://blog.paspy.org/tags/rgss/" rel="tag">rgss</a> , <a href="http://blog.paspy.org/tags/%25E6%25B8%25B8%25E6%2588%258F%25E5%2588%25B6%25E4%25BD%259C/" rel="tag">游戏制作</a> , <a href="http://blog.paspy.org/tags/%25E7%25B3%25BB%25E7%25BB%259F/" rel="tag">系统</a> , <a href="http://blog.paspy.org/tags/%25E9%259A%258F%25E6%2589%258B%25E7%25A0%2594%25E7%25A9%25B6%25E5%25BD%2595/" rel="tag">随手研究录</a>
]]>
</description>
</item><item>
<link>http://blog.paspy.org/post/4/</link>
<title><![CDATA[[研究结果]RTAB版添加HP/SP百分比消耗功能！]]></title> 
<author>包子研究员 &lt;luchencs6@hotmail.com&gt;</author>
<category><![CDATA[RGSS]]></category>
<pubDate>Sun, 14 Oct 2007 12:57:21 +0000</pubDate> 
<guid>http://blog.paspy.org/post/4/</guid> 
<description>
<![CDATA[ 
	今天折腾了一上午，似乎我的思路很复杂，最后只能到66论坛去提问，结果经过 K&#039; 高手的指点，原来思路换一下就变的这么简单！<br/>以下是实现的方法，总体思路为通过数据库属性进行判断，用原有消费SP数据框实现常量百分比化<br/><br/>需要修改的地方有两个脚本：<br/>（注意！普通战斗脚本请做相应修改，这里用RTAB1.16整合版作示范）<br/>修改脚本Game_Battler 3，这个是默认自带的脚本，在定义函数“skill_can_use?(skill_id)”这里下面的注释“SP/HP 不足的情况下不能使用”下面的，删除原有的：<br/><textarea name="code" class="ruby" rows="15" cols="100">
if $data_skills[skill_id].sp_cost &gt; self.sp
  return false
end
</textarea><br/>再添加如下判断：<br/><br/><textarea name="code" class="ruby" rows="15" cols="100">
if $data_skills[skill_id].element_set.include?(13) and $data_skills[skill_id].element_set.include?(14)
  if $data_skills[skill_id].sp_cost &gt; self.sp * 100 / self.maxsp or $data_skills[skill_id].sp_cost &gt; self.hp * 100 / self.maxhp 
    return false
  end
  elsif $data_skills[skill_id].element_set.include?(13) 
    if $data_skills[skill_id].sp_cost &gt; self.sp * 100 / self.maxsp 
      return false
    end 
  elsif $data_skills[skill_id].element_set.include?(14)
    if $data_skills[skill_id].sp_cost &gt; self.hp * 100 / self.maxhp 
      return false
    end
  else
    if $data_skills[skill_id].sp_cost &gt; self.sp
      return false
    end
end
</textarea><br/>解释功能：这里是判断技能使用不能的情况下，技能显示灰色不能按。此处添加了3个条件分歧，第一个是判断SP、HP是否共同足够的情况，第二个是判断SP是否足够的情况，第三个则是HP。<br/><br/>继续修改脚本“RTAB连击数-计算部分”：（默认战斗系统为“Scene_Battle 4”）<br/><br/>查找该脚本的这行代码：<br/><textarea name="code" class="ruby" rows="15" cols="100">
battler.sp -= @skill.sp_cost
</textarea><br/>普通战斗系统为：<br/><textarea name="code" class="ruby" rows="15" cols="100">
@active_battler.sp -= @skill.sp_cost
</textarea><br/><br/>将这行代码注释掉（前面加井号#）并加上如下代码（RTAB）：<br/><textarea name="code" class="ruby" rows="15" cols="100">
if $data_skills[@skill.id].element_set.include?(13) and $data_skills[@skill.id].element_set.include?(14) 
  battler.hp -= battler.maxhp * @skill.sp_cost / 100
  battler.sp -= battler.maxsp * @skill.sp_cost / 100
elsif $data_skills[@skill.id].element_set.include?(13)
  battler.sp -= battler.maxsp * @skill.sp_cost / 100
elsif $data_skills[@skill.id].element_set.include?(14)
  battler.hp -= battler.maxhp * @skill.sp_cost / 100
else
  battler.sp -= @skill.sp_cost
end
</textarea><br/>默认战斗系统则需要把上述代码中的“battler.sp”或“battler.hp”替换为“@active_battler.sp”和“@active_battler.hp”<br/><br/>解释功能：同样是三个条件分歧，分别是同时消耗HP、SP百分比，SP百分比或者HP百分比！<br/><br/>注意：()内数字部分是属性编号，这里是带上13号属性的技能会消耗百分比SP，14号属性会消耗百分比HP，同时带上则同时消耗！使用的时候注意根据自身情况进行修改~<br/><br/>使用方法：<br/>这样添加功能后只要带上相应属性，然后照常在数据库技能消费SP文本框中写数字就可以了（记住不要大于100，100就是消耗100%，别忘记带上属性哦）<br/><br/>补充问题：<br/>技能框消费SP显示问题，即修改后实际上是拥有了这个百分比消耗SP/HP功能，不过玩家在战斗中选择技能的时候，会发现消费SP点数那里是没有单位的（这样就不方便判断这个技能是百分比消耗还是常量消耗）<br/>临时解决办法：<br/>想了一个简单且偷懒的方法（也方便提示HP消耗），定位自带脚本“Window_Skill”，查找代码：<br/><textarea name="code" class="ruby" rows="15" cols="100">
self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
</textarea><br/>直接把这一行注释掉，然后把这行代码上面的一行代码：<br/><textarea name="code" class="ruby" rows="15" cols="100">
self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
</textarea><br/>把数值204改成252，这样做的结果是取消掉原来在技能框显示的技能消耗数值，然后把显示技能名字的位置加长（原来如果技能名过长会被压缩，不美观）<br/>然后消耗SP/HP的情况就直接写在技能的说明一栏，这样就可以解决这个问题了，而且也能很好的告诉玩家这个技能消耗SP/HP的详细情况！<br/><br/>今天的收获不小呢~~希望这也可以对你有帮助！<br/><br/>Tags - <a href="http://blog.paspy.org/tags/%25E7%25B3%25BB%25E7%25BB%259F/" rel="tag">系统</a> , <a href="http://blog.paspy.org/tags/rgss/" rel="tag">rgss</a>
]]>
</description>
</item>
</channel>
</rss>