Project1

标题: VX区发提问帖时,使用Ruby代码框出错 [打印本页]

作者: iisnow    时间: 2012-4-3 15:59
标题: VX区发提问帖时,使用Ruby代码框出错
本帖最后由 iisnow 于 2012-4-3 16:25 编辑

在VX区的一个帖子,打开以后是这个样子的:

注意内容是空的,然后点评按钮出现了错误;
点击点评后:出现
Discuz! System Error
Your request has encountered a problem.
Error messages:

    您当前的访问请求当中含有非法字符,已经被系统拒绝


Program messages:

    [Line: 0017]forum.php(discuz_core::instance)
    [Line: 0051]source/class/class_core.php(discuz_core->discuz_core)
    [Line: 0060]source/class/class_core.php(discuz_core->_init_output)
    [Line: 0296]source/class/class_core.php(discuz_core->_xss_check)
    [Line: 0328]source/class/class_core.php(system_error)
    [Line: 0018]source/function/function_core.php(discuz_error::system_error)
    [Line: 0024]source/class/class_error.php(discuz_error::debug_backtrace)


我原以为是LZ发了白贴,然后编辑后发现是有内容的:
之前写了个魔法盾的效果,是这样的
在Gme  Battler里加入了两段
RUBY 代码复制
  1. def make_attack_damage_value(attacker)
  2.     damage = attacker.atk * 4 - self.def * 2        # 基本计算
  3.     damage = 0 if damage < 0
  4.         if self.state?(51)   #寒冰禁锢状态时
  5.     damage = 0
  6.         end
  7.       if self.state?(24)   #大地之盾时,伤害为1
  8.       damage = 1
  9.     end
  10.      if self.state?(54)   #魔法盾状态时
  11.       damage = ((attacker.atk * 4 - self.def * 2)*0.8).round
  12.         end
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 反映伤害
  3.   #     user : 特技以及物品的使用者
  4.   #    调用前先设置 @hp_damage、@mp_damage、@absorbed。
  5.   #--------------------------------------------------------------------------
  6.   def execute_damage(user)
  7.     if @hp_damage > 0           # 伤害为正数
  8.       remove_states_shock       # 受到攻击解除的状态
  9.     end
  10.     self.hp -= @hp_damage
  11.  
  12.  
  13.  
  14.     self.mp -= @mp_damage
  15.     if @absorbed                # 吸收的情况
  16.       user.hp += @hp_damage
  17.       user.mp += @mp_damage
  18.     end
  19.      if self.state?(54)  #魔法盾状态时
  20.       self.mp -=(@hp_damage*0.25).round
  21.     end
  22.     if self.mp < (@hp_damage*0.25).round #魔法值不足时消除状态
  23.       self.remove_state(54)
  24.       end
  25.   end

这时的确在受到攻击时可以用魔法值抵消一定的伤害,不过在使用加血的药时,魔法值也会跟着回复,这个应该怎么解决呢?

然后我将RUBY框去掉,换成普通的[code][\code]就可以正常显示了;
不知道为什么:

帖子地址:http://rpg.blue/thread-226981-1-1.html
作者: 小传子    时间: 2012-4-3 16:11
为什么我在哪里看代码框都是好的?
作者: fux2    时间: 2012-4-3 16:45
@传说VS天涯一楼点评崩了
作者: 小传子    时间: 2012-4-3 16:59
这个真是奇葩,回头看看,版主就帮忙校正一下吧XD




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