Project1

标题: 技能冷却问题 [打印本页]

作者: a6363635    时间: 2011-5-17 22:00
标题: 技能冷却问题
本帖最后由 a6363635 于 2011-5-17 23:08 编辑

#===========BY 叶子===========
   #冷却的情况下不能使用
   #冷却的技能ID(xx) 和这个技能对应附加的状态ID(yy)
   if skill_id == xx and self.states.include?(yy)
     #状态存在时,技能无法使用
     return false
   end
   #在下面可以继续添加其他需要冷却的技能
   #如果添加 or 语句,还可以多技能实现共同冷却
#===========BY 叶子===========


我用了这个脚本,也按照做了新建了一个状态,状态号是17,我用十字斩为例,可是没用。我的状态
在数据库设置也没问题啊。怎么会没用呢,我新建了一个工程也没用
我发现原来还要调用一个公共事件,不过出错了,不明白,哪个高手帮我看看,范例发上了,脚本在
GAME_BATTLER 3里


a6363635于2011-5-17 23:09补充以下内容:
请各位高手或者谁帮下忙,看看?难道是我公共事件的语句用错了?dsu_plus_rewardpost_czw

Project1.zip

201.53 KB, 下载次数: 42


作者: 白鬼    时间: 2011-5-17 23:21
本帖最后由 白鬼 于 2011-5-17 23:47 编辑

愁死我了你!把脚本贴到论坛里,万一我下线了,你给我留言我又看不到,还可以有别的朋友帮忙!
帮你贴出来吧!
  1. class Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 可以使用特技的判定
  4.   #     skill_id : 特技 ID
  5.   #--------------------------------------------------------------------------
  6.   def skill_can_use?(skill_id)
  7.     # SP 不足的情况下不能使用
  8.     if $data_skills[skill_id].sp_cost > self.sp
  9.       return false
  10.     end
  11.     # 战斗不能的情况下不能使用
  12.     if dead?
  13.       return false
  14.     end
  15.         #===========BY 叶子===========
  16.    #冷却的情况下不能使用
  17.    #冷却的技能ID(xx) 和这个技能对应附加的状态ID(yy)
  18.    #if skill_id == xx and self.states.include?(yy)
  19.      #状态存在时,技能无法使用
  20.    # return false
  21.    #end
  22.       if skill_id == 82 and self.states.include?(17)
  23.      #状态存在时,技能无法使用
  24.      return false
  25.    end
  26.    #在下面可以继续添加其他需要冷却的技能
  27.    #如果添加 or 语句,还可以多技能实现共同冷却
  28.     #===========BY 叶子===========
  29.     # 沉默状态的情况下、物理特技以外的特技不能使用
  30.     if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
  31.       return false
  32.     end


  33.     # 获取可以使用的时机
  34.     occasion = $data_skills[skill_id].occasion
  35.     # 战斗中的情况下
  36.     if $game_temp.in_battle
  37.       # [平时] 或者是 [战斗中] 可以使用
  38.       return (occasion == 0 or occasion == 1)
  39.     # 不是战斗中的情况下
  40.     else
  41.       # [平时] 或者是 [菜单中] 可以使用
  42.       return (occasion == 0 or occasion == 2)
  43.     end
  44.   end
复制代码
好吧,你有没有在使用了技能后,为使用者添加第17号状态???
看了附件,很显然,你添加状态的方法有问题。
问问其他人一个管用的添加状态的方法吧。
把这个下载回去覆盖源文件,我更改了公共事件和状态。
冷却n回合,设置的时候,要设置成n-1会和后自动解除。
Data.zip (171.84 KB, 下载次数: 80)
就是这个附件,拿去试试看。
作者: a6363635    时间: 2011-5-17 23:41
回复 白鬼 的帖子

你的意思就是使用82号技能后给使用者添加那个状态
也就是利用公共事件来添加吧,我是这么写的$scene.active_battler.add_state(17)
可他就是出错。你可以下我的范例,我已经上传了




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