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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: Innelysion
打印 上一主题 下一主题

如何使某些技能在处于特殊状态下才可使用(解决一半..)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
129 小时
注册时间
2007-2-13
帖子
48
11
 楼主| 发表于 2008-4-5 07:54:33 | 只看该作者
to.长江七号

加了个s后不报错了…… 但技能仍然在未附加状态时可以正常使用
而且同样是加了状态后使用却报错orz


我想大概是缺少规定不在此状态下时无法使用的语句吧……
能否将语句设定成
先判定是某ID的技能
然后再判定身上是否有某ID的状态
是return true
否return false
……
这样
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
129 小时
注册时间
2007-2-13
帖子
48
12
 楼主| 发表于 2008-4-5 08:21:54 | 只看该作者
自己解决了一半...

搜索贴时搜到了  "让某变量的值小于一定量时某特技无法使用"的方法
  def skill_can_use?(skill_id)
    if $game_variables[变量ID] < 变量值 and skill_id == 技能ID
        return false
      else
        skill_id == 技能ID
        return true
      end

只要在施放某状态的技能上附加一个操作变量的公共事件,但新问题是如何再状态消失的回合将变量改回原来的状态……
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

13
发表于 2008-4-5 09:21:03 | 只看该作者
以下引用Innelysion于2008-4-4 23:11:24的发言:

我那个方法,状态ID和技能ID需要改成数字....
等我找找看原脚本OTZ

找到了,这样

class Game_Battler
  def skill_can_use?(skill_id)
    # SP 不足的情况下不能使用
    if $data_skills[skill_id].sp_cost > self.sp
      return false
    end
    # 战斗不能的情况下不能使用
    if dead?
      return false
    end
    # 沉默状态的情况下、物理特技以外的特技不能使用
    if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
      return false
    end

# ==========================================================
    if !self.state?(状态ID) and skill_id == 你设置的技能ID
      return false
    end
#  注意把状态ID和技能ID改成数字
# ==========================================================
    # 获取可以使用的时机
    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


插入原脚本前边,或者你参考着替换Game_battler3相同部分
抱歉,我刚犯了脑残的错误……
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
40
在线时间
0 小时
注册时间
2008-4-5
帖子
3
14
发表于 2008-4-5 10:41:58 | 只看该作者
一个状态限制多个技能。
class Game_Battler
def skill_can_use?(skill_id)
   # SP 不足的情况下不能使用
   if $data_skills[skill_id].sp_cost > self.sp
     return false
   end
   # 战斗不能的情况下不能使用
   if dead?
     return false
   end
   # 沉默状态的情况下、物理特技以外的特技不能使用
   if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
     return false
   end

# ==========================================================
   if !self.state?(状态ID) and [13,14,15].include?(skill_id)
     return false
   end
#  注意把状态ID和技能ID改成数字 假设13,14,15三个特技限制一个在一个状态中,记得半角逗号分割。
# ==========================================================
   # 获取可以使用的时机
   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

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-4-1
帖子
60
15
发表于 2008-4-5 16:22:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
676
在线时间
224 小时
注册时间
2006-12-7
帖子
839
16
发表于 2008-4-5 17:07:59 | 只看该作者
如果LZ要在状态回合数到的时候操作变量的话就这样
Game_Battler 2
  1.   #--------------------------------------------------------------------------
  2.   # ● 状态自然解除 (回合改变时调用)
  3.   #--------------------------------------------------------------------------
  4.   def remove_states_auto
  5.     for i in @states_turn.keys.clone
  6.       if @states_turn[i] > 0
  7.         @states_turn[i] -= 1
  8.       elsif rand(100) < $data_states[i].auto_release_prob
  9.         remove_state(i)
  10.            $game_variables[XXX] = XXX  ######回合数到的时候要操作的变量   
  11.       end
  12.     end
  13.   end
复制代码

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
129 小时
注册时间
2007-2-13
帖子
48
17
 楼主| 发表于 2008-4-5 18:14:36 | 只看该作者
非常感谢楼上各位的解答…… 问题已经解决了 但不知道给谁分好orz
都给吧,谢谢大家了!
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

18
发表于 2008-4-5 21:26:20 | 只看该作者
能不能用这个方法呢?
参考这里http://rpg.blue/web/htm/news240.htm
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-29 01:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表