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

Project1

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

[RMVX发布] VX添加战斗图~

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
22 小时
注册时间
2006-4-22
帖子
370
跳转到指定楼层
1
发表于 2008-1-23 00:32:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
刚拿到VX不久,测试战斗系统时竟发现没了战斗图,这怎么得了,研究了半天的Spriteset_Battle才发现,它原来还是有生成的角色战斗图视口的,只是被屏了而已,真有点费解~~考虑到应该很多人会需要这个,就把添加流程写出来吧~~~不知有没人发过,发过的话就共享掉吧~~~我的这个战斗图添加方法不知道是不是最直接的,反正效果达到了~~~bug未知~~~

其实单纯是添加战斗图过程很简单,在Game_Actor就可以完成了~~
在Game_Battler它已经有定义battler_name(角色战斗图名),battler_hue(战斗图色相) 这两个实例变量了,Game_Actor是它的子类,所以先直接在Game_actor的
def setup(actor_id)
    actor = $data_actors[actor_id]
    @actor_id = actor_id
    @name = actor.name

下面添加
@battler_name = actor_id.to_s + "_b" #战斗图的命名方式
    @battler_hue = 0

其实最主要的就是就是彩色的那一句,它定义了战斗图的命名方式,像我这样写的意思,把战斗图命名为 "角色id_b"(如 1_b),放在Battlers文件夹里~~然后在Game_Actor找到
def use_sprite?
    return false
  end
把false改为true~~~这个就是被禁用的开关~~~
最后就是在下面插入角色战斗图坐标的定义
#==========================================================================
  #★定义角色战斗图 X 坐标
  #==========================================================================
  def screen_x
   if self.index != nil
    case index
     when 0
      return 20
     when 1
      return 50
     when 2
      return 80
     when 3
      return 110
    end  
  else
   return 0
  end
end
  #========================================================================
  #★定义角色战斗图 Y 坐标
  #========================================================================
  def screen_y
    return 440
  end  
  
  #========================================================================
  #★定义角色战斗图 Z 坐标
  #========================================================================   
  def screen_z
     if self.index != nil
      return 4 - self.index
    else
      return 0
    end
  end

就这么几步角色战斗图就又回来,至于排版什么的大家看着办~~~还有个选中时闪烁,由于篇幅所限,而且方法不是最优化的,所以有机会再弄出来吧,完整脚本如下
  1. #==============================================================================
  2. # ■ Game_Actor
  3. #------------------------------------------------------------------------------
  4. #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors)
  5. # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。
  6. #==============================================================================

  7. class Game_Actor < Game_Battler
  8.   #--------------------------------------------------------------------------
  9.   # ● 公開インスタンス変数
  10.   #--------------------------------------------------------------------------
  11.   attr_reader   :name                     # 名前
  12.   attr_reader   :character_name           # 歩行グラフィック ファイル名
  13.   attr_reader   :character_index          # 歩行グラフィック インデックス
  14.   attr_reader   :face_name                # 顔グラフィック ファイル名
  15.   attr_reader   :face_index               # 顔グラフィック インデックス
  16.   attr_reader   :class_id                 # 職業 ID
  17.   attr_reader   :weapon_id                # 武器 ID
  18.   attr_reader   :armor1_id                # 盾 ID
  19.   attr_reader   :armor2_id                # 頭防具 ID
  20.   attr_reader   :armor3_id                # 体防具 ID
  21.   attr_reader   :armor4_id                # 装飾品 ID
  22.   attr_reader   :level                    # レベル
  23.   attr_reader   :exp                      # 経験値
  24.   attr_accessor :last_skill_id            # カーソル記憶用 : スキル
  25.   #--------------------------------------------------------------------------
  26.   # ● オブジェクト初期化
  27.   #     actor_id : アクター ID
  28.   #--------------------------------------------------------------------------
  29.   def initialize(actor_id)
  30.     super()
  31.     setup(actor_id)
  32.     @last_skill_id = 0
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● セットアップ
  36.   #     actor_id : アクター ID
  37.   #--------------------------------------------------------------------------
  38.   def setup(actor_id)
  39.     actor = $data_actors[actor_id]
  40.     @actor_id = actor_id
  41.     @name = actor.name
  42.     #--------------------------------------------
  43.     #★添加战斗图名称,以便战斗中获取战斗图
  44.     #--------------------------------------------
  45.     @battler_name = actor_id.to_s + "_b"
  46.     @battler_hue = 0
  47.     @character_name = actor.character_name
  48.     @character_index = actor.character_index
  49.     @face_name = actor.face_name
  50.     @face_index = actor.face_index
  51.     @class_id = actor.class_id
  52.     @weapon_id = actor.weapon_id
  53.     @armor1_id = actor.armor1_id
  54.     @armor2_id = actor.armor2_id
  55.     @armor3_id = actor.armor3_id
  56.     @armor4_id = actor.armor4_id
  57.     @level = actor.initial_level
  58.     @exp_list = Array.new(101)
  59.     make_exp_list
  60.     @exp = @exp_list[@level]
  61.     @skills = []
  62.     for i in self.class.learnings
  63.       learn_skill(i.skill_id) if i.level <= @level
  64.     end
  65.     clear_extra_values
  66.     recover_all
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● アクターか否かの判定
  70.   #--------------------------------------------------------------------------
  71.   def actor?
  72.     return true
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● アクター ID 取得
  76.   #--------------------------------------------------------------------------
  77.   def id
  78.     return @actor_id
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● インデックス取得
  82.   #--------------------------------------------------------------------------
  83.   def index
  84.     return $game_party.members.index(self)
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● アクターオブジェクト取得
  88.   #--------------------------------------------------------------------------
  89.   def actor
  90.     return $data_actors[@actor_id]
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 職業オブジェクト取得
  94.   #--------------------------------------------------------------------------
  95.   def class
  96.     return $data_classes[@class_id]
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● スキルオブジェクトの配列取得
  100.   #--------------------------------------------------------------------------
  101.   def skills
  102.     result = []
  103.     for i in @skills
  104.       result.push($data_skills[i])
  105.     end
  106.     return result
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 武器オブジェクトの配列取得
  110.   #--------------------------------------------------------------------------
  111.   def weapons
  112.     result = []
  113.     result.push($data_weapons[@weapon_id])
  114.     if two_swords_style
  115.       result.push($data_weapons[@armor1_id])
  116.     end
  117.     return result
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 防具オブジェクトの配列取得
  121.   #--------------------------------------------------------------------------
  122.   def armors
  123.     result = []
  124.     unless two_swords_style
  125.       result.push($data_armors[@armor1_id])
  126.     end
  127.     result.push($data_armors[@armor2_id])
  128.     result.push($data_armors[@armor3_id])
  129.     result.push($data_armors[@armor4_id])
  130.     return result
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 装備品オブジェクトの配列取得
  134.   #--------------------------------------------------------------------------
  135.   def equips
  136.     return weapons + armors
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 経験値計算
  140.   #--------------------------------------------------------------------------
  141.   def make_exp_list
  142.     @exp_list[1] = @exp_list[100] = 0
  143.     m = actor.exp_basis
  144.     n = 0.75 + actor.exp_inflation / 200.0;
  145.     for i in 2..99
  146.       @exp_list[i] = @exp_list[i-1] + Integer(m)
  147.       m *= 1 + n;
  148.       n *= 0.9;
  149.     end
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 属性修正値の取得
  153.   #     element_id : 属性 ID
  154.   #--------------------------------------------------------------------------
  155.   def element_rate(element_id)
  156.     rank = self.class.element_ranks[element_id]
  157.     result = [0,200,150,100,50,0,-100][rank]
  158.     for armor in armors.compact
  159.       result /= 2 if armor.element_set.include?(element_id)
  160.     end
  161.     for state in states
  162.       result /= 2 if state.element_set.include?(element_id)
  163.     end
  164.     return result
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● ステートの付加成功率の取得
  168.   #     state_id : ステート ID
  169.   #--------------------------------------------------------------------------
  170.   def state_probability(state_id)
  171.     if $data_states[state_id].nonresistance
  172.       return 100
  173.     else
  174.       rank = self.class.state_ranks[state_id]
  175.       return [0,100,80,60,40,20,0][rank]
  176.     end
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● ステート無効化判定
  180.   #     state_id : ステート ID
  181.   #--------------------------------------------------------------------------
  182.   def state_resist?(state_id)
  183.     for armor in armors.compact
  184.       return true if armor.state_set.include?(state_id)
  185.     end
  186.     return false
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 通常攻撃の属性取得
  190.   #--------------------------------------------------------------------------
  191.   def element_set
  192.     result = []
  193.     if weapons.compact == []
  194.       return [1]                  # 素手:格闘属性
  195.     end
  196.     for weapon in weapons.compact
  197.       result |= weapon == nil ? [] : weapon.element_set
  198.     end
  199.     return result
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ● 通常攻撃の追加効果 (ステート変化) 取得
  203.   #--------------------------------------------------------------------------
  204.   def plus_state_set
  205.     result = []
  206.     for weapon in weapons.compact
  207.       result |= weapon == nil ? [] : weapon.state_set
  208.     end
  209.     return result
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● MaxHP の制限値取得
  213.   #--------------------------------------------------------------------------
  214.   def maxhp_limit
  215.     return 9999
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 基本 MaxHP の取得
  219.   #--------------------------------------------------------------------------
  220.   def base_maxhp
  221.     return actor.parameters[0, @level]
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   # ● 基本 MaxMP の取得
  225.   #--------------------------------------------------------------------------
  226.   def base_maxmp
  227.     return actor.parameters[1, @level]
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # ● 基本攻撃力の取得
  231.   #--------------------------------------------------------------------------
  232.   def base_atk
  233.     n = actor.parameters[2, @level]
  234.     for item in equips.compact do n += item.atk end
  235.     return n
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 基本防御力の取得
  239.   #--------------------------------------------------------------------------
  240.   def base_def
  241.     n = actor.parameters[3, @level]
  242.     for item in equips.compact do n += item.def end
  243.     return n
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 基本精神力の取得
  247.   #--------------------------------------------------------------------------
  248.   def base_spi
  249.     n = actor.parameters[4, @level]
  250.     for item in equips.compact do n += item.spi end
  251.     return n
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 基本敏捷性の取得
  255.   #--------------------------------------------------------------------------
  256.   def base_agi
  257.     n = actor.parameters[5, @level]
  258.     for item in equips.compact do n += item.agi end
  259.     return n
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● 命中率の取得
  263.   #--------------------------------------------------------------------------
  264.   def hit
  265.     if two_swords_style
  266.       n1 = weapons[0] == nil ? 95 : weapons[0].hit
  267.       n2 = weapons[1] == nil ? 95 : weapons[1].hit
  268.       n = [n1, n2].min
  269.     else
  270.       n = weapons[0] == nil ? 95 : weapons[0].hit
  271.     end
  272.     return n
  273.   end
  274.   #--------------------------------------------------------------------------
  275.   # ● 回避率の取得
  276.   #--------------------------------------------------------------------------
  277.   def eva
  278.     n = 5
  279.     for item in armors.compact do n += item.eva end
  280.     return n
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● クリティカル率の取得
  284.   #--------------------------------------------------------------------------
  285.   def cri
  286.     n = 4
  287.     n += 4 if actor.critical_bonus
  288.     for weapon in weapons.compact
  289.       n += 4 if weapon.critical_bonus
  290.     end
  291.     return n
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # ● 狙われやすさの取得
  295.   #--------------------------------------------------------------------------
  296.   def odds
  297.     return 4 - self.class.position
  298.   end
  299.   #--------------------------------------------------------------------------
  300.   # ● オプション [二刀流] の取得
  301.   #--------------------------------------------------------------------------
  302.   def two_swords_style
  303.     return actor.two_swords_style
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ● オプション [装備固定] の取得
  307.   #--------------------------------------------------------------------------
  308.   def fix_equipment
  309.     return actor.fix_equipment
  310.   end
  311.   #--------------------------------------------------------------------------
  312.   # ● オプション [自動戦闘] の取得
  313.   #--------------------------------------------------------------------------
  314.   def auto_battle
  315.     return actor.auto_battle
  316.   end
  317.   #--------------------------------------------------------------------------
  318.   # ● オプション [強力防御] の取得
  319.   #--------------------------------------------------------------------------
  320.   def super_guard
  321.     return actor.super_guard
  322.   end
  323.   #--------------------------------------------------------------------------
  324.   # ● オプション [薬の知識] の取得
  325.   #--------------------------------------------------------------------------
  326.   def pharmacology
  327.     return actor.pharmacology
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● 武器オプション [ターン内先制] の取得
  331.   #--------------------------------------------------------------------------
  332.   def fast_attack
  333.     for weapon in weapons.compact
  334.       return true if weapon.fast_attack
  335.     end
  336.     return false
  337.   end
  338.   #--------------------------------------------------------------------------
  339.   # ● 武器オプション [連続攻撃] の取得
  340.   #--------------------------------------------------------------------------
  341.   def dual_attack
  342.     for weapon in weapons.compact
  343.       return true if weapon.dual_attack
  344.     end
  345.     return false
  346.   end
  347.   #--------------------------------------------------------------------------
  348.   # ● 防具オプション [クリティカル防止] の取得
  349.   #--------------------------------------------------------------------------
  350.   def prevent_critical
  351.     for armor in armors.compact
  352.       return true if armor.prevent_critical
  353.     end
  354.     return false
  355.   end
  356.   #--------------------------------------------------------------------------
  357.   # ● 防具オプション [消費 MP 半分] の取得
  358.   #--------------------------------------------------------------------------
  359.   def half_mp_cost
  360.     for armor in armors.compact
  361.       return true if armor.half_mp_cost
  362.     end
  363.     return false
  364.   end
  365.   #--------------------------------------------------------------------------
  366.   # ● 防具オプション [取得経験値 2 倍] の取得
  367.   #--------------------------------------------------------------------------
  368.   def double_exp_gain
  369.     for armor in armors.compact
  370.       return true if armor.double_exp_gain
  371.     end
  372.     return false
  373.   end
  374.   #--------------------------------------------------------------------------
  375.   # ● 防具オプション [HP 自動回復] の取得
  376.   #--------------------------------------------------------------------------
  377.   def auto_hp_recover
  378.     for armor in armors.compact
  379.       return true if armor.auto_hp_recover
  380.     end
  381.     return false
  382.   end
  383.   #--------------------------------------------------------------------------
  384.   # ● 通常攻撃 アニメーション ID の取得
  385.   #--------------------------------------------------------------------------
  386.   def atk_animation_id
  387.     if two_swords_style
  388.       return weapons[0].animation_id if weapons[0] != nil
  389.       return weapons[1] == nil ? 1 : 0
  390.     else
  391.       return weapons[0] == nil ? 1 : weapons[0].animation_id
  392.     end
  393.   end
  394.   #--------------------------------------------------------------------------
  395.   # ● 通常攻撃 アニメーション ID の取得 (二刀流:武器2)
  396.   #--------------------------------------------------------------------------
  397.   def atk_animation_id2
  398.     if two_swords_style
  399.       return weapons[1] == nil ? 0 : weapons[1].animation_id
  400.     else
  401.       return 0
  402.     end
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # ● 経験値の文字列取得
  406.   #--------------------------------------------------------------------------
  407.   def exp_s
  408.     return @exp_list[@level+1] > 0 ? @exp : "-------"
  409.   end
  410.   #--------------------------------------------------------------------------
  411.   # ● 次のレベルの経験値の文字列取得
  412.   #--------------------------------------------------------------------------
  413.   def next_exp_s
  414.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] : "-------"
  415.   end
  416.   #--------------------------------------------------------------------------
  417.   # ● 次のレベルまでの経験値の文字列取得
  418.   #--------------------------------------------------------------------------
  419.   def next_rest_exp_s
  420.     return @exp_list[@level+1] > 0 ?
  421.       (@exp_list[@level+1] - @exp) : "-------"
  422.   end
  423.   #--------------------------------------------------------------------------
  424.   # ● 装備の変更 (ID で指定)
  425.   #     equip_type : 装備部位 (0..4)
  426.   #     item_id    : 武器 ID or 防具 ID
  427.   #     test       : テストフラグ (戦闘テスト、または装備画面での一時装備)
  428.   #    イベントコマンド、および戦闘テストの準備で使用する。
  429.   #--------------------------------------------------------------------------
  430.   def change_equip_by_id(equip_type, item_id, test = false)
  431.     if equip_type == 0 or (equip_type == 1 and two_swords_style)
  432.       change_equip(equip_type, $data_weapons[item_id], test)
  433.     else
  434.       change_equip(equip_type, $data_armors[item_id], test)
  435.     end
  436.   end
  437.   #--------------------------------------------------------------------------
  438.   # ● 装備の変更 (オブジェクトで指定)
  439.   #     equip_type : 装備部位 (0..4)
  440.   #     item       : 武器 or 防具 (nil なら装備解除)
  441.   #     test       : テストフラグ (戦闘テスト、または装備画面での一時装備)
  442.   #--------------------------------------------------------------------------
  443.   def change_equip(equip_type, item, test = false)
  444.     last_item = equips[equip_type]
  445.     unless test
  446.       return if $game_party.item_number(item) == 0 if item != nil
  447.       $game_party.gain_item(last_item, 1)
  448.       $game_party.lose_item(item, 1)
  449.     end
  450.     item_id = item == nil ? 0 : item.id
  451.     case equip_type
  452.     when 0  # 武器
  453.       @weapon_id = item_id
  454.       unless two_hands_legal?             # 両手持ち違反の場合
  455.         change_equip(1, nil, test)        # 逆の手の装備を外す
  456.       end
  457.     when 1  # 盾
  458.       @armor1_id = item_id
  459.       unless two_hands_legal?             # 両手持ち違反の場合
  460.         change_equip(0, nil, test)        # 逆の手の装備を外す
  461.       end
  462.     when 2  # 頭
  463.       @armor2_id = item_id
  464.     when 3  # 身体
  465.       @armor3_id = item_id
  466.     when 4  # 装飾品
  467.       @armor4_id = item_id
  468.     end
  469.   end
  470.   #--------------------------------------------------------------------------
  471.   # ● 装備の破棄
  472.   #     item : 破棄する武器 or 防具
  473.   #    武器/防具の増減で「装備品も含める」のとき使用する。
  474.   #--------------------------------------------------------------------------
  475.   def discard_equip(item)
  476.     if item.is_a?(RPG::Weapon)
  477.       if @weapon_id == item.id
  478.         @weapon_id = 0
  479.       elsif two_swords_style and @armor1_id == item.id
  480.         @armor1_id = 0
  481.       end
  482.     elsif item.is_a?(RPG::Armor)
  483.       if not two_swords_style and @armor1_id == item.id
  484.         @armor1_id = 0
  485.       elsif @armor2_id == item.id
  486.         @armor2_id = 0
  487.       elsif @armor3_id == item.id
  488.         @armor3_id = 0
  489.       elsif @armor4_id == item.id
  490.         @armor4_id = 0
  491.       end
  492.     end
  493.   end
  494.   #--------------------------------------------------------------------------
  495.   # ● 両手装備合法判定
  496.   #--------------------------------------------------------------------------
  497.   def two_hands_legal?
  498.     if weapons[0] != nil and weapons[0].two_handed
  499.       return false if @armor1_id != 0
  500.     end
  501.     if weapons[1] != nil and weapons[1].two_handed
  502.       return false if @weapon_id != 0
  503.     end
  504.     return true
  505.   end
  506.   #--------------------------------------------------------------------------
  507.   # ● 装備可能判定
  508.   #     item : アイテム
  509.   #--------------------------------------------------------------------------
  510.   def equippable?(item)
  511.     if item.is_a?(RPG::Weapon)
  512.       return self.class.weapon_set.include?(item.id)
  513.     elsif item.is_a?(RPG::Armor)
  514.       return false if two_swords_style and item.kind == 0
  515.       return self.class.armor_set.include?(item.id)
  516.     end
  517.     return false
  518.   end
  519.   #--------------------------------------------------------------------------
  520.   # ● 経験値の変更
  521.   #     exp  : 新しい経験値
  522.   #     show : レベルアップ表示フラグ
  523.   #--------------------------------------------------------------------------
  524.   def change_exp(exp, show)
  525.     last_level = @level
  526.     last_skills = skills
  527.     @exp = [[exp, 9999999].min, 0].max
  528.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  529.       level_up
  530.     end
  531.     while @exp < @exp_list[@level]
  532.       level_down
  533.     end
  534.     @hp = [@hp, maxhp].min
  535.     @mp = [@mp, maxmp].min
  536.     if show and @level > last_level
  537.       display_level_up(skills - last_skills)
  538.     end
  539.   end
  540.   #--------------------------------------------------------------------------
  541.   # ● レベルアップ
  542.   #--------------------------------------------------------------------------
  543.   def level_up
  544.     @level += 1
  545.     for learning in self.class.learnings
  546.       learn_skill(learning.skill_id) if learning.level == @level
  547.     end
  548.   end
  549.   #--------------------------------------------------------------------------
  550.   # ● レベルダウン
  551.   #--------------------------------------------------------------------------
  552.   def level_down
  553.     @level -= 1
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● レベルアップメッセージの表示
  557.   #     new_skills : 新しく習得したスキルの配列
  558.   #--------------------------------------------------------------------------
  559.   def display_level_up(new_skills)
  560.     $game_message.new_page
  561.     text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)
  562.     $game_message.texts.push(text)
  563.     for skill in new_skills
  564.       text = sprintf(Vocab::ObtainSkill, skill.name)
  565.       $game_message.texts.push(text)
  566.     end
  567.   end
  568.   #--------------------------------------------------------------------------
  569.   # ● 経験値の獲得 (経験値 2 倍のオプションを考慮)
  570.   #     exp  : 経験値の増加量
  571.   #     show : レベルアップ表示フラグ
  572.   #--------------------------------------------------------------------------
  573.   def gain_exp(exp, show)
  574.     if double_exp_gain
  575.       change_exp(@exp + exp * 2, show)
  576.     else
  577.       change_exp(@exp + exp, show)
  578.     end
  579.   end
  580.   #--------------------------------------------------------------------------
  581.   # ● レベルの変更
  582.   #     level : 新しいレベル
  583.   #     show  : レベルアップ表示フラグ
  584.   #--------------------------------------------------------------------------
  585.   def change_level(level, show)
  586.     level = [[level, 99].min, 1].max
  587.     change_exp(@exp_list[level], show)
  588.   end
  589.   #--------------------------------------------------------------------------
  590.   # ● スキルを覚える
  591.   #     skill_id : スキル ID
  592.   #--------------------------------------------------------------------------
  593.   def learn_skill(skill_id)
  594.     unless skill_learn?($data_skills[skill_id])
  595.       @skills.push(skill_id)
  596.       @skills.sort!
  597.     end
  598.   end
  599.   #--------------------------------------------------------------------------
  600.   # ● スキルを忘れる
  601.   #     skill_id : スキル ID
  602.   #--------------------------------------------------------------------------
  603.   def forget_skill(skill_id)
  604.     @skills.delete(skill_id)
  605.   end
  606.   #--------------------------------------------------------------------------
  607.   # ● スキルの習得済み判定
  608.   #     skill : スキル
  609.   #--------------------------------------------------------------------------
  610.   def skill_learn?(skill)
  611.     return @skills.include?(skill.id)
  612.   end
  613.   #--------------------------------------------------------------------------
  614.   # ● スキルの使用可能判定
  615.   #     skill : スキル
  616.   #--------------------------------------------------------------------------
  617.   def skill_can_use?(skill)
  618.     return false unless skill_learn?(skill)
  619.     return super
  620.   end
  621.   #--------------------------------------------------------------------------
  622.   # ● 名前の変更
  623.   #     name : 新しい名前
  624.   #--------------------------------------------------------------------------
  625.   def name=(name)
  626.     @name = name
  627.   end
  628.   #--------------------------------------------------------------------------
  629.   # ● 職業 ID の変更
  630.   #     class_id : 新しい職業 ID
  631.   #--------------------------------------------------------------------------
  632.   def class_id=(class_id)
  633.     @class_id = class_id
  634.     for i in 0..4     # 装備できない装備品を外す
  635.       change_equip(i, nil) unless equippable?(equips[i])
  636.     end
  637.   end
  638.   #--------------------------------------------------------------------------
  639.   # ● グラフィックの変更
  640.   #     character_name  : 新しい歩行グラフィック ファイル名
  641.   #     character_index : 新しい歩行グラフィック インデックス
  642.   #     face_name       : 新しい顔グラフィック ファイル名
  643.   #     face_index      : 新しい顔グラフィック インデックス
  644.   #--------------------------------------------------------------------------
  645.   def set_graphic(character_name, character_index, face_name, face_index)
  646.     @character_name = character_name
  647.     @character_index = character_index
  648.     @face_name = face_name
  649.     @face_index = face_index
  650.   end
  651.   #--------------------------------------------------------------------------
  652.   # ● スプライトを使うか?
  653.   #--------------------------------------------------------------------------
  654.   #######################################################################
  655.   
  656.   #######################################################################
  657.   def use_sprite?
  658.     return true
  659.   end
  660.   #--------------------------------------------------------------------------
  661.   # ● コラプスの実行
  662.   #--------------------------------------------------------------------------
  663.   def perform_collapse
  664.     if $game_temp.in_battle and dead?
  665.       @collapse = true
  666.       Sound.play_actor_collapse
  667.     end
  668.   end
  669.   #--------------------------------------------------------------------------
  670.   # ● 自動回復の実行 (ターン終了時に呼び出し)
  671.   #--------------------------------------------------------------------------
  672.   def do_auto_recovery
  673.     if auto_hp_recover and not dead?
  674.       self.hp += maxhp / 20
  675.     end
  676.   end
  677.   #--------------------------------------------------------------------------
  678.   # ● 戦闘行動の作成 (自動戦闘用)
  679.   #--------------------------------------------------------------------------
  680.   def make_action
  681.     @action.clear
  682.     return unless movable?
  683.     action_list = []
  684.     action = Game_BattleAction.new(self)
  685.     action.set_attack
  686.     action.evaluate
  687.     action_list.push(action)
  688.     for skill in skills
  689.       action = Game_BattleAction.new(self)
  690.       action.set_skill(skill.id)
  691.       action.evaluate
  692.       action_list.push(action)
  693.     end
  694.     max_value = 0
  695.     for action in action_list
  696.       if action.value > max_value
  697.         @action = action
  698.         max_value = action.value
  699.       end
  700.     end
  701.   end
  702.   #==========================================================================
  703.   #★定义角色战斗图 X 坐标
  704.   #==========================================================================
  705.   def screen_x
  706.    if self.index != nil
  707.     case index
  708.      when 0
  709.       return 20
  710.      when 1
  711.       return 50
  712.      when 2
  713.       return 80
  714.      when 3
  715.       return 110
  716.     end  
  717.   else
  718.    return 0
  719.   end
  720. end
  721.   #========================================================================
  722.   #★定义角色战斗图 Y 坐标
  723.   #========================================================================
  724.   def screen_y
  725.     return 440
  726.   end  
  727.   
  728.   #========================================================================
  729.   #★定义角色战斗图 Z 坐标
  730.   #========================================================================   
  731.   def screen_z
  732.      if self.index != nil
  733.       return 4 - self.index
  734.     else
  735.       return 0
  736.     end
  737.   end
  738.   
  739.   
  740.   
  741. end
复制代码

准备有空挖个坑玩玩..
头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
2
发表于 2008-1-23 00:33:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
3
发表于 2008-1-23 00:35:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1539
在线时间
142 小时
注册时间
2007-4-1
帖子
4263

开拓者贵宾

4
发表于 2008-1-23 00:35:30 | 只看该作者
发现好东西{/fd}  
于是跑来坐沙发,谢谢楼主~{/qiang}
回归,重拾一下绘图工房的管理,先让我熟悉一下,请多指教 ( ´▽` )ノ
新加分规则试行中,如发现问题欢迎提出
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
5
发表于 2008-1-23 00:41:56 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
22 小时
注册时间
2006-4-22
帖子
370
6
 楼主| 发表于 2008-1-23 00:52:30 | 只看该作者
截图~~~~~
哇~`这个还真没法现,没了攻击方动画~~~太汗~~~{/gg}~~看来用这个还得解决这个问题,不然效果就很一般了~~~~
准备有空挖个坑玩玩..
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2006-5-27
帖子
458
7
发表于 2008-1-23 01:05:10 | 只看该作者
= =

希望能做成这样的

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
8
发表于 2008-1-23 01:10:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2006-5-27
帖子
458
9
发表于 2008-1-23 01:45:56 | 只看该作者
{/fd}有一些特别的效果啦,貌似选择的时候人物出现... 不选择的时候隐藏
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

10
发表于 2008-1-23 03:54:32 | 只看该作者
抄袭!!
我的整和工程里的带不动画
但最新版本有
明天最后DDBUG发布!!
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-7 19:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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