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

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

受限技能 (一些复杂的条件分歧状态技能)

2006-4-10 00:00| 发布者: 柳柳| 查看: 5583| 评论: 0|原作者: SailCat

摘要:    作者 SailCat(技术区大牛一只)  版本与更新  2005年4月更新  相关网址  http://bbs.66rpg.com/forumTopicRead.asp?id=13609  范例工程 不提供 脚本说明 脚本说明:  &
 

 作者

SailCat(技术区大牛一只)

 版本与更新

 2005年4月更新

 相关网址

 http://bbs.66rpg.com/forumTopicRead.asp?id=13609

 范例工程

不提供



脚本说明

脚本说明:
   思路是修改Game_Battler中关于技能是否使用的判定,原则上说,配合开关、游戏进程变量、人物状态等可以做出无数的可能性。
   这里是以活用 restriction == 1 的情况(在数据库中设定为"不能使用魔法")为例   当然也可以用开关和变量来作为分歧条件

常用的技能判定:(前面写$data_skills[skill_id]),比如$data_skills[skill_id].atk_f
纯魔法: .atk_f == 0
非魔法: .atk_f != 0
纯物理: .atk_f >= 100
攻击类: .power > 0
回复类: .power < 0
支援类: .power == 0
全体类: .scope % 2 == 0 and .scope != 0
单体类: .scope % 2 == 1

使用方法

这是一个思路,使用参考范例脚本即可。

举例:

# 沈默, 纯魔法特技不能使用————则身中5号状态,纯魔法特技不能使用
elsif self.state?(5) and $data_skills[skill_id].atk_f == 0
       return false

# 虚脱, HP在一半以下时不能使用特技————则身中28号状态,生命小于一半时不能使用特技
elsif self.state?(28) and self.hp < self.maxhp / 2
       return false

别忘了给每个状态添加“不能使用魔法”

相关截图


 

 脚本内容

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

#===========================================================================
# 受限技能 by SailCat
#===========================================================================
# 设定方法:一堆受限状态,每一个都选为"不能使用魔法",然后在脚本里面来判定
# 判定分支的写法参见脚本注释
# 变化注释:通过强制return true可以写出在特定状态下一定可以使用的特技,但是
# 请注意状态的优先顺位问题
#===========================================================================

class Game_Battler
 #--------------------------------------------------------------------------
 # ● 可以使用特技的判定
 #     skill_id : 特技 ID
 #--------------------------------------------------------------------------
 def skill_can_use?(skill_id)
   # 战斗不能的情况下不能使用
   if dead?
     return false
   end
   # 限制为"不能使用魔法"的情况下
   if self.restriction == 1
     # 天使之音, 攻击性特技可以无条件使用
     if self.state?(21) and $data_skills[skill_id].power > 0
       return true
     # 沈默, 纯魔法特技不能使用
     elsif self.state?(5) and $data_skills[skill_id].atk_f == 0
       return false
     # 弱力, 非魔法特技不能使用
     elsif self.state?(27) and $data_skills[skill_id].atk_f != 0
       return false
     # 虚脱, HP在一半以下时不能使用特技
     elsif self.state?(28) and self.hp < self.maxhp / 2
       return false
     # 遗忘, 学会的技能有一定的概率不能使用
     elsif self.state?(25)
       return rand(100) < 50 ? true : false
     # 诅咒, 任何消耗SP的技能都不能使用
     elsif self.state?(29) and $data_skills[skill_id].sp_cost != 0
       return false
     end
   end
   # SP 不足的情况下不能使用
   if $data_skills[skill_id].sp_cost > self.sp
     return false
   end
   # 获取可以使用的时机
   occasion = $data_skills[skill_id].occasion
   # 战斗中的情况下
   if $game_temp.in_battle
     # [平时] 或者是 [战斗中] 可以使用
     return (occasion == 0 or occasion == 1)
   # 不是战斗中的情况下
   else
     # [平时] 或者是 [菜单中] 可以使用
     return (occasion == 0 or occasion == 2)
   end
 end
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


 

脚本使用的通用说明

约定:本脚本来源于网络,任何人不得随意将本脚本应用于商业用途,如需转载,必须保留所有版权信息,如果是国内作者,最好征求作者同意——否则发生任何后果,66RPG不予负责。使用此脚本表示您默认接受上述约定。

说明:不同脚本之间、尤其是不同作者脚本之间会有冲突,本站会对已知脚本冲突进行简单说明。测试新脚本请下载本站提供的测试文件或者新建工程测试。脚本不要贪多,否则可能会互相冲突对您的游戏造成未知的影响。如果脚本内或者本站内提供了解释,请务必完全看完解释后再使用,如有问题,请到论坛讨论。


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

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

GMT+8, 2024-4-25 23:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部