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

Project1

 找回密码
 注册会员
搜索
查看: 2525|回复: 3
打印 上一主题 下一主题

[已经过期] 武器决定技能和RTAB 1.16脚本发生冲突

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
50 小时
注册时间
2009-8-16
帖子
18
跳转到指定楼层
1
发表于 2009-11-12 04:40:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 kekaishi 于 2009-11-13 09:11 编辑

使用武器决定技能脚本後
进入战斗便出现"脚本  武器决定技能的110行发生了NoMethoError"
要怎麽解决?
#==============================================================================
# 武器决定技能 by 沉影不器
#------------------------------------------------------------------------------
# 开放式RPG用
# 每种武器都有特定的技能,必须装备该种武器才能使用
# 角色的职业是开放性的,能够使用多种类型的武器,比如可以拿剑也可以拿枪或者弓
# 同样的,角色能学习多种技能,比如剑技 枪技等
# 当然也包括不受武器限制的技能,比如 盗帅冬瓜 的 犯贱 技能这类
#------------------------------------------------------------------------------
# 使用方法:
# ① 数据库中设定属性,让相关联的武器和技能同时选用该属性
#    例: 数据库中设定"剑"属性,所有剑类的武器都选此属性;所有剑类的技能都选此属性
#        比如:[武器]玄铁重剑 钩选"剑"属性,[技能]独孤九剑 钩选"剑"属性
#        未钩选任何武器和技能关联的属性,即是不受武器限制的技能
# ② 复制脚本,插入到main之前
# ③ 脚本第23行 设定武器和技能关联的属性id
#    比如范例中,从第17号属性开始到24号属性都是武器关联技能的属性,依次填入
# ④ 数据库中设定名为"全体化"的属性,凡带此属性的武器,其普通攻击变为攻击敌全体
#==============================================================================

class Game_Battler
#--------------------------------------------------------------------------
SW_SET = [16,17,18,19,20,21,22,23,24] # 此处设定武器和技能关联的属性id
#--------------------------------------------------------------------------
def skill_can_use?(skill_id)
   if self.is_a?(Game_Actor) and self.weapon_id > 0
     sw_boolean = false # 判断武器和技能关联
     s = SW_SET & $data_skills[skill_id].element_set
     if s.empty?
       sw_boolean = true
     else
       for i in s
         if  $data_weapons[self.weapon_id].element_set .include?(i)
           sw_boolean = true
           break
         end
       end
     end
     if sw_boolean == false
       return false
     end
   end
   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
   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
#==============================================================================

class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in [email protected]
     skill = $data_skills[@actor.skills]
     if skill != nil and @actor.skill_can_use?(skill.id) # 排除无法使用的技能
       @data.push(skill)
     end
   end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
end
end
#==============================================================================

class Scene_Battle
#--------------------------------------------------------------------------
def scope_id
   scope = 0
   for i in 1...$data_system.elements.size
     if $data_system.elements =~ /全体化/
       scope = i
       break
     end
   end
   return scope
end
#--------------------------------------------------------------------------
def update_phase3_basic_command
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     phase3_prior_actor
     return
   end
   if Input.trigger?(Input::C)
     case @actor_command_window.index
     when 0  # 攻击
       $game_system.se_play($data_system.decision_se)
       @active_battler.current_action.kind = 0
       @active_battler.current_action.basic = 0
       # 开始选择敌人
       if @active_battler.weapon_id > 0 and
         $data_weapons[@active_battler.weapon_id].element_set.include?(scope_id)
         phase3_next_actor
       else
         start_enemy_select
       end
     when 1  # 特技
       $game_system.se_play($data_system.decision_se)
       @active_battler.current_action.kind = 1
       start_skill_select
     when 2  # 防御
       $game_system.se_play($data_system.decision_se)
       @active_battler.current_action.kind = 0
       @active_battler.current_action.basic = 1
       phase3_next_actor
     when 3  # 物品
       $game_system.se_play($data_system.decision_se)
       @active_battler.current_action.kind = 2
       start_item_select
     when 4  # 变更武器
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 设置行动
       @active_battler.current_action.kind = 3
        # 开始选择武器
       start_weapon_select
     end
     return
   end
end
#--------------------------------------------------------------------------
def make_basic_action_result # 改写自 随机全体化的武器装备(柳柳)
   if @active_battler.current_action.basic == 0
     @animation1_id = @active_battler.animation1_id
     @animation2_id = @active_battler.animation2_id
     if @active_battler.is_a?(Game_Enemy)
       if @active_battler.restriction == 3
         target = $game_troop.random_target_enemy
       elsif @active_battler.restriction == 2
         target = $game_party.random_target_actor
       else
         index = @active_battler.current_action.target_index
         target = $game_party.smooth_target_actor(index)
       end
     end
     if @active_battler.is_a?(Game_Actor)
       if @active_battler.restriction == 3
         target = $game_party.random_target_actor
       elsif @active_battler.restriction == 2
         target = $game_troop.random_target_enemy
       else
         # 武器带[全体化]属性时
         if @active_battler.weapon_id > 0 and
           $data_weapons[@active_battler.weapon_id].element_set.include?(scope_id)
           for enemy in $game_troop.enemies
             if enemy.exist?
               @target_battlers.push(enemy)
             end
           end
         end
         index = @active_battler.current_action.target_index
         target = $game_troop.smooth_target_enemy(index)
       end
     end
     if @target_battlers == []
       # 设置对像方的战斗者序列
       @target_battlers = [target]
     end
     for target in @target_battlers
       target.attack_effect(@active_battler)
     end
     return
   end
   if @active_battler.current_action.basic == 1
     @help_window.set_text($data_system.words.guard, 1)
     return
   end
   if @active_battler.is_a?(Game_Enemy) and
      @active_battler.current_action.basic == 2
     @help_window.set_text("逃跑", 1)
     @active_battler.escape
     return
   end
   if @active_battler.current_action.basic == 3
     $game_temp.forcing_battler = nil
     @phase4_step = 1
     return
   end
end
end

武器决定技能.rar

772.11 KB, 下载次数: 107

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4207
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

2
发表于 2009-11-12 09:28:00 | 只看该作者
LZ把工程传上来吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
50 小时
注册时间
2009-8-16
帖子
18
3
 楼主| 发表于 2009-11-13 09:11:51 | 只看该作者
已将工程上传
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
50 小时
注册时间
2009-8-16
帖子
18
4
 楼主| 发表于 2009-12-19 20:25:02 | 只看该作者
自頂
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 22:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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