幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2846|回复: 10

急!!求助!!角色职业转换问题!!!!

[复制链接]

1

主题

9

帖子

360

积分

④见习

积分
360
发表于 2004-11-30 13:27:16 | 显示全部楼层 |阅读模式
为什么我的角色无法实现职业转换,在事件指令里面插入角色职业转换,结果无效。

角色的职业没有变化。   难道是和小日本的脚本有冲突的说?

请各位前辈,帮帮我!!!!!谢谢!!!!!!!!!!!!
[em04][em04][em04][em04]
回复

使用道具 举报

13

主题

237

帖子

1452

积分

⑥精研

积分
1452
QQ
发表于 2004-11-30 16:16:22 | 显示全部楼层
……无效?
截个图看看……-_-#
我已经很老很老了...老到已经记不清RMXP是什么东西了....
回复 支持 反对

使用道具 举报

1

主题

9

帖子

360

积分

④见习

积分
360
 楼主| 发表于 2004-11-30 16:30:42 | 显示全部楼层
应该是和那些小日本的RGSS脚本冲突啦,但是我就是不知道哪里冲突啦。。。。。
我试了很多次了,根本没有办法实现角色职业的转换。
例如: 小A   职业:见习战士     建立个NPC作用是职业转换为:战士       可是无效,职业还是见习战士。
角色图形和战斗图能够转变,但是就是职业改变不了。     郁闷死我啦。。。。。。。。。。。。。。。
[em04][em04][em04][em04]
[em04][em04]
回复 支持 反对

使用道具 举报

13

主题

237

帖子

1452

积分

⑥精研

积分
1452
QQ
发表于 2004-11-30 18:18:54 | 显示全部楼层
你重新建个工程,看能不能换职业……
我已经很老很老了...老到已经记不清RMXP是什么东西了....
回复 支持 反对

使用道具 举报

1

主题

9

帖子

360

积分

④见习

积分
360
 楼主| 发表于 2004-11-30 18:25:36 | 显示全部楼层
重新建个工程,到是不会出现这个问题。。。。。。。但是我的游戏不是白做啦。。。。
[em06][em06][em06][em06][em06][em06]
回复 支持 反对

使用道具 举报

121

主题

3186

帖子

2万

积分

管理员

お嬢様

Rank: 9Rank: 9Rank: 9

积分
22410
发表于 2004-11-30 19:05:09 | 显示全部楼层
没办法的办法...
把所有数值带如相应的变数..然后在本来的角色中多添家一个\"主角\"(除了职业不一样其他都一样....)
然后把到转职的时候,把原来的主角的数值全部代入变数(LV HP 力量 敏捷 等等....)
然后先让那个\"主角\"入队..让原来的主角离开...把原来的主角的数值的变数带入\"主角\"
虽然是个看似麻烦的办法,但对楼主说的情况应该很有效.....
最后:稍微提醒下~想问题要站在玩家的角度想...
回复 支持 反对

使用道具 举报

1

主题

9

帖子

360

积分

④见习

积分
360
 楼主| 发表于 2004-11-30 19:25:14 | 显示全部楼层
[em01]  多谢JING姐姐,我知道是怎么回事啦。谢谢啦,万分感谢。。。。。。。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

360

积分

④见习

积分
360
 楼主| 发表于 2004-11-30 19:38:51 | 显示全部楼层
# ▼▲▼ XRXS21. 特殊効果詰め合わせ ElseEX ver..03a ▼▲▼
# by 桜雅 在土
#------------------------------------------------------------------------------
#
#
# 「キャラクター変化」「バトラー変化」「クラス変化」
#
#
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● セットアップ
  #--------------------------------------------------------------------------
  alias xrxs21_setup setup
  def setup(actor_id)
    xrxs21_setup(actor_id)
    # オリジナルデータを保存
    @character_name_original = @character_name
    @battler_name_original   = @battler_name
    @class_id_original       = @class_id
  end
  #--------------------------------------------------------------------------
  # ● 装備の変更
  #--------------------------------------------------------------------------
  alias xrxs21_equip equip
  def equip(equip_type, id)
    # 防具の場合
    if equip_type >= 1
      if id == 0 or $game_party.armor_number(id) > 0
        # 既存装備の判定
        case equip_type
        when 1
          armor_id = @armor1_id
        when 2
          armor_id = @armor2_id
        when 3
          armor_id = @armor3_id
        when 4
          armor_id = @armor4_id
        end
        # \"キャラクター変化\"がある防具を外した場合、元に戻す。
        file_name = armor_id_element_suftext(armor_id, \"キャラクター変化\")
        if file_name != nil
          @character_name = @character_name_original
        end
        # \"バトラー変化\"がある防具を外した場合、元に戻す。
        file_name = armor_id_element_suftext(armor_id, \"バトラー変化\")
        if file_name != nil
          @battler_name = @battler_name_original
        end
        # \"クラス変化\"がある防具を外した場合、元に戻す。
        returnar = armor_id_element_include?(armor_id, \"クラス変化\")
        if returnar[1] > 0
          @class_id = @class_id_original
        end
        
        # 新規装備の判定
        # \"キャラクター変化\"がある防具を装備した場合、変化。
        file_name = armor_id_element_suftext(id, \"キャラクター変化\")
        if file_name != nil
          @character_name = file_name
        end
        # \"バトラー変化\"がある防具を装備した場合、変化。
        file_name = armor_id_element_suftext(id, \"バトラー変化\")
        if file_name != nil
          @battler_name = file_name
        end
        # \"クラス変化\"がある防具を装備した場合、変化。
        returnar = armor_id_element_include?(id, \"クラス変化\")
        if returnar[1] > 0
          @class_id = returnar[1]
        end
        
        # プレイヤーをリフレッシュ
        $game_player.refresh
      end
    end
    # 戻す
    xrxs21_equip(equip_type, id)
  end
  #--------------------------------------------------------------------------
  # ● クラス ID の変更
  #--------------------------------------------------------------------------
  alias xrxs21_class_id= class_id=
  def class_id=(class_id)
    # 呼び戻す
    xrxs21_class_id=(class_id)
    # オリジナルデータの変更
    @class_id_original       = @class_id
  end
  #--------------------------------------------------------------------------
  # ● グラフィックの変更
  #--------------------------------------------------------------------------
  alias xrxs21_set_graphic set_graphic
  def set_graphic(character_name, character_hue, battler_name, battler_hue)
    # 呼び戻す
    xrxs21_set_graphic(character_name, character_hue, battler_name, battler_hue)
    # オリジナルデータを変更
    @character_name_original = @character_name
    @battler_name_original   = @battler_name
  end
end
#------------------------------------------------------------------------------
#
#
# 「装備戦技」「ATK」~「EVA」
#
#
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 属性補正値の取得
  #--------------------------------------------------------------------------
  alias xrxs21_element_rate element_rate
  def element_rate(element_id)
    rate = xrxs21_element_rate(element_id)
    element_name = $data_system.elements[element_id]
    # 属性防御を持つ\"装備戦技\"をもつ場合は半減
    for i in @skills
      skill = $data_skills
      next if skill == nil
      if skill_element_include?(skill, \"装備戦技\")[0]
        for j in skill.element_set
          if $data_system.elements[j] != nil
            if $data_system.elements[j] =~ /^#{element_name}属性([+-]?[0-9]+)(%|%)/
              rate += $1.to_i
            end
            if $data_system.elements[j] =~ /^全属性([+-]?[0-9]+)(%|%)/
              rate += $1.to_i
            end
          end
        end
      end
    end
    return rate
  end
  #--------------------------------------------------------------------------
  # ● ステート有効度の取得
  #--------------------------------------------------------------------------
  def state_percent(state_id)
    effect_percent = [0,100,80,60,40,20,0][self.state_ranks[state_id]]
    state_name = $data_states[state_id].name
    return effect_percent if self.is_a?(Game_Enemy)
    # 防具にステート%防御が設定されている場合は確率減少
    for k in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
      armor = $data_armors[k]
      next if armor == nil
      for j in armor.guard_state_set
        if $data_states[j] != nil
          if $data_states[j].name =~ /^#{state_name}確率([0-9]+)(%|%)/
            effect_percent -= $1.to_i
          end
        end
      end
    end
    # ステートのステート変化を参照
    for k in @states
      # マイナスステートにステート%防御が設定されている場合は確率減少
      for j in $data_states[k].minus_state_set
        if $data_states[j] != nil
          if $data_states[j].name =~ /^#{state_name}確率([0-9]+)(%|%)/
            effect_percent -= $1.to_i
          end
        end
      end
      # プラスステートにステート%防御が設定されている場合は確率上昇
      for j in $data_states[k].plus_state_set
        if $data_states[j] != nil
          if $data_states[j].name =~ /^#{state_name}確率([0-9]+)(%|%)/
            effect_percent += $1.to_i
          end
        end
      end
    end
    # ステート防御を持つ\"装備戦技\"をもつ場合は確率計算
    for i in @skills
      skill = $data_skills
      next if skill == nil
      if skill_element_include?(skill, \"装備戦技\")[0]
        for j in skill.plus_state_set
          if $data_states[j] != nil
            if $data_states[j] =~ /^#{state_name}確率([0-9]+)(%|%)/
              effect_percent += $1.to_i
            end
          end
        end
        for j in skill.minus_state_set
          if $data_states[j] != nil
            if $data_states[j] =~ /^#{state_name}確率([0-9]+)(%|%)/
              effect_percent -= $1.to_i
            end
          end
        end
      end
    end
    return effect_percent
  end
  #--------------------------------------------------------------------------
  # ● 基本腕力の取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_str base_str
  def base_str
    b_str = xrxs21_base_str
    percentage = 100
    # 特殊効果:STR(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"STR\")
    if returnar[0]
      percentage += returnar[2]
      b_str+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.str_f*10 - 100)
      end
    end
    # ----------------
    return b_str * percentage / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本器用さの取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_dex base_dex
  def base_dex
    b_dex = xrxs21_base_dex
    percentage = 100
    # 特殊効果:DEX(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"DEX\")
    if returnar[0]
      percentage += returnar[2]
      b_dex+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.dex_f*10 - 100)
      end
    end
    # ----------------
    return b_dex * percentage / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本素早さの取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_agi base_agi
  def base_agi
    b_agi = xrxs21_base_agi
    percentage = 100
    # 特殊効果:AGI(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"AGI\")
    if returnar[0]
      percentage += returnar[2]
      b_agi+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.agi_f*10 - 100)
      end
    end
    # ----------------
    return b_agi * percentage / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本魔力の取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_int base_int
  def base_int
    b_int = xrxs21_base_int
    percentage = 100
    # 特殊効果:INT(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"INT\")
    if returnar[0]
      percentage += returnar[2]
      b_int+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.int_f*10 - 100)
      end
    end
    # ----------------
    return b_int * percentage / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本攻撃力の取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_atk base_atk
  def base_atk
    b_atk = xrxs21_base_atk
    percentage = 100
    # 特殊効果:ATK(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"ATK\")
    if returnar[0]
      percentage += returnar[2]
      b_atk+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.atk_f*10 - 100)
      end
    end
    # ----------------
    return b_atk * percentage / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本物理防御の取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_pdef base_pdef
  def base_pdef
    b_pdef = xrxs21_base_pdef
    percentage = 100
    # 特殊効果:PDEF(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"DEF\")
    if returnar[0]
      percentage += returnar[2]
      b_pdef+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.pdef_f*10 - 100)
      end
    end
    # ----------------
    return b_pdef * percentage / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本魔法防御の取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_mdef base_mdef
  def base_mdef
    b_mdef = xrxs21_base_mdef
    percentage = 100
    # 特殊効果:MDEF(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"MDEF\")
    if returnar[0]
      percentage += returnar[2]
      b_mdef+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.mdef_f*10 - 100)
      end
    end
    # ----------------
    return b_mdef * percentage / 100
  end
回复 支持 反对

使用道具 举报

1

主题

9

帖子

360

积分

④见习

积分
360
 楼主| 发表于 2004-11-30 19:39:20 | 显示全部楼层
#--------------------------------------------------------------------------
  # ● 基本回避修正の取得
  #--------------------------------------------------------------------------
  alias xrxs21_base_eva base_eva
  def base_eva
    b_eva = xrxs21_base_eva
    percentage = 100
    # 特殊効果:EVA(±数字)[%]
    returnar = equip_weapon_element_include?(self, \"EVA\")
    if returnar[0]
      percentage += returnar[2]
      b_eva+= returnar[1]
    end
    # 特殊効果:装備戦技
    for i in @skills
      skill = $data_skills
      if skill_element_include?(skill, \"装備戦技\")[0]
        percentage += (skill.eva_f*10 - 100)
      end
    end
    # ----------------
    return b_eva * percentage / 100
  end
end
#------------------------------------------------------------------------------
#
#
# 「非表示」
#
#
#==============================================================================
# ■ Window_Item
#==============================================================================
class Window_Item &lt; Window_Selectable
  #--------------------------------------------------------------------------
  # ○ インクルード
  #--------------------------------------------------------------------------
  include XRXS_Check_ElementName_Set
  #--------------------------------------------------------------------------
  # ● 描写するアイテムの取得 @data
  #--------------------------------------------------------------------------
  alias xrxs21_get_data_of_draw_items get_data_of_draw_items
  def get_data_of_draw_items
    # 基本データ
    xrxs21_get_data_of_draw_items
    # 除外するデータを探す
    exclude_data = []
    for material in @data
      if material != nil
        if material_element_include?(material, \"非表示\")[0]
          exclude_data.push(material)
        end
      end
    end
    # 除外
    @data -= exclude_data
  end
end
#==============================================================================
# ■ Window_ShopSell
#==============================================================================
class Window_ShopSell &lt; Window_Selectable
  #--------------------------------------------------------------------------
  # ○ インクルード
  #--------------------------------------------------------------------------
  include XRXS_Check_ElementName_Set
  #--------------------------------------------------------------------------
  # ● 所有数が 1 以上のアイテムを @data に返す
  #--------------------------------------------------------------------------
  alias xrxs21_set_own_item_data set_own_item_data
  def set_own_item_data
    xrxs21_set_own_item_data
    # 除外するデータを探す
    exclude_data = []
    for item in @data
      if item != nil
        if item_element_include?(item, \"非表示\")[0]
          exclude_data.push(item)
        end
      end
    end
    # 除外
    @data -= exclude_data
  end   
end
#------------------------------------------------------------------------------
#
#
# 「SP消費」
#
#
#==============================================================================
# ■ Window_Skill
#==============================================================================
class Window_Skill &lt; Window_Selectable
  #--------------------------------------------------------------------------
  # ● 習得しているスキルを取得
  #--------------------------------------------------------------------------
  alias xrxs21_get_skill_data get_skill_data
  def get_skill_data
    xrxs21_get_skill_data
    # 除外するデータを探す
    exclude_data = []
    for skill in @data
      if skill != nil
        if skill_element_include?(skill, \"非表示\")[0]
          exclude_data.push(skill)
        end
      end
    end
    # 除外
    @data -= exclude_data
  end
  #--------------------------------------------------------------------------
  # ● スキルの消費SPの値の取得
  #--------------------------------------------------------------------------
  alias xrxs21_get_sp_cost get_sp_cost
  def get_sp_cost(skill)
    # 初期化
    percentage = 100
    variatage  = 0
    # SP消費%の取得
    returnar = actor_element_equip?(@actor, \"SP消費\")
    if returnar[0]
      percentage = 100 + returnar[2]
      variatage  = returnar[1]
    end
    if percentage != 100 or variatage != 0
      return (skill.sp_cost * percentage) / 100 + variatage
    else
      return xrxs21_get_sp_cost(skill)
    end
  end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● スキルの消費SPの値の取得
  #--------------------------------------------------------------------------
  alias xrxs21_get_sp_cost get_sp_cost
  def get_sp_cost(skill)
    # 初期化
    percentage = 100
    variatage  = 0
    # SP消費%の取得
    returnar = actor_element_equip?(@active_battler, \"SP消費\")
    if returnar[0]
      percentage = 100 + returnar[2]
      variatage  = returnar[1]
    end
    if percentage != 100 or variatage != 0
      return (skill.sp_cost * percentage) / 100 + variatage
    else
      return xrxs21_get_sp_cost(skill)
    end
  end
end
#//////////////////////////////////////////////////////////////////////////////
# ◇ インクルード
#//////////////////////////////////////////////////////////////////////////////
class Game_Actor &lt; Game_Battler
  include XRXS_Check_ElementName_Set
end
class Window_Skill &lt; Window_Selectable
  include XRXS_Check_ElementName_Set
end
class Scene_Battle
  include XRXS_Check_ElementName_Set
end
回复 支持 反对

使用道具 举报

1

主题

9

帖子

360

积分

④见习

积分
360
 楼主| 发表于 2004-11-30 19:42:54 | 显示全部楼层
[em01]以上的就是导致无法实现职业转换的脚本,也就是武器特殊属性锻造的脚本,可以付与武器ATK,PDEF,STR
什么的,我把它贴出来,让大家分享一下,也希望各位达人们能够研究一下,究竟和职业转换冲突在哪里啦,谢谢!!!
[em01][em01][em01][em01][em01][em01]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-8 16:53 , Processed in 0.013464 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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