スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

web拍手 by FC2   

[RGSS]スティール

使い方は → こちら

[RGSS]スティール
敵からアイテムなどを盗むスキルを作れます。

スクリーンショット サムネイルクリックで拡大画像が見られます。
rgss_stile.jpg

プログラムは続きにあります。

=begin
===========================================================================
  ☆★☆★☆★☆★ スティール ★☆★☆★☆★☆
===========================================================================

 製作・開発:STERS
  アイデア:ルルベル様

  Page::http://stersblog.blog15.fc2.com/

導入方法------------------------------------------------------------------

    このスクリプトを Scene_Debug より下 Main より上に
   新しく作ったセクションにコピペして入れてください。
    
--------------------------------------------------------------------------

これを導入することで
スティール(盗む)
ができるようになります。

使い方--------------------------------------------------------------------
1.まずはこのスクリプトを導入してください。

2.設定項目を指定してください。

3.スティールスキルを作り、完成です。

--------------------------------------------------------------------------

属性指定では、
stile|*アイテムID|確立(%)
  と指定してください
  
  * の部分は、I(アイテム) W(武器) A(防具)
  のIWA のいずれかを入れてください。
  
  確立 は、数字で。
  小数以下は5桁まで、対応です。
  それ以上もできますが、うまく機能しないと思います。

この属性に対して"F"の設定をした、エネミーから、
盗むことができます。

--------------------------------------------------------------------------

属性とこちらで指定するのとでは、属性のほうが、優先度が高いです。

--------------------------------------------------------------------------

属性の指定でも、設定項目の指定でも、
「スティールスキル」を実行しないと、盗むことができません。

--------------------------------------------------------------------------
=end
module STERS_STILE
  #---------------------------------------------------------------------------
  # スティールスキルの属性ID
  #---------------------------------------------------------------------------
  STILE_SKILL = 19
  #---------------------------------------------------------------------------
  # スティールして、GETできるアイテム
  #---------------------------------------------------------------------------
  #  設定は、
  #  ["*アイテムID",確立(%)],["*アイテムID",確立(%)].....
  #          と、してください。
  #
  #     * の部分は、I(アイテム) W(武器) A(防具)
  #        のIWA のいずれかを入れてください。
  #
  #     確立 は、数字で。
  #       小数以下は5桁まで、対応です。
  #       それ以上もできますが、うまく機能しないと思います。
  #
  #    最初から、順番に確立を計算していきますので、
  #    最後の方にある物をほど、実質的な確立は低いです。
  #
  #---------------------------------------------------------------------------
  STILE_ITEM = [["I3",100],["I2",3],["I1",5]
               ]
  #---------------------------------------------------------------------------
  # スティール時のウェイト
  #---------------------------------------------------------------------------
  #  設定は、
  #    数字(Numeric)
  #        にしてください。
  #---------------------------------------------------------------------------
  STILE_WAIT = 3
  #---------------------------------------------------------------------------
  # スティール時のメッセージ
  #---------------------------------------------------------------------------
  #  設定は、
  #    文字列(String)
  #        にしてください。
  #---------------------------------------------------------------------------
  #
  # 盗んだとき
  #
  MAS_OK = "を盗んだ!"
  #
  # 失敗したとき
  #
  MAS_MISS = "何も盗めなかった"
  
end
class Game_Enemy
  #---------------------------------------------------------------------------
  #---------------------------------------------------------------------------
  #---------------------------------------------------------------------------
  def stile(atk)
    str = STERS_STILE::MAS_MISS
    it = nil
    elements = []
    c = -1
    $data_system.elements.each{|e|
      c += 1
      next if e == nil
      if e=~/stile.*/ and $data_enemies[@enemy_id].element_ranks[c] == 6
        elements.push(bunri(e.sub(/stile\|/,"")))
      end
    }
    elements.each{|a| a[1] = a[1].to_i }
    stile_item = elements + STERS_STILE::STILE_ITEM
    stile_item.each{|i|
      if rand(101)+rand(10000)/10000.0 < i[1]
        it = i[0]
        break
      end
    }
    return str if it == nil
    it.sub!(/(I|W|A)/,"")
    case $1
    when "I"
      $game_party.gain_item(it.to_i,1)
      str = "#{$data_items[it.to_i].name}"+STERS_STILE::MAS_OK
    when "W"
      $game_party.gain_weapon(it.to_i,1)
      str = "#{$data_weapons[it.to_i].name}"+STERS_STILE::MAS_OK
    when "A"
      $game_party.gain_armor(it.to_i,1)
      str = "#{$data_armors[it.to_i].name}"+STERS_STILE::MAS_OK
    end
    return str
  end
  #--------------------------------------------------------------------------
  # ○ 分離させるメソッド
  #--------------------------------------------------------------------------
  def bunri(str)
    return str.split("|")
  end
end
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  #--------------------------------------------------------------------------
  alias stile_update_phase4_step5 update_phase4_step5 unless $@
  def update_phase4_step5
    if @skill.class != RPG::Skill or @active_battler.class != Game_Actor
      stile_update_phase4_step5
      return
    end
    unless @skill.element_set.include?(STERS_STILE::STILE_SKILL)
      stile_update_phase4_step5
      return
    end
    @help_window.visible = true
    for target in @target_battlers
      str = target.stile(@active_battler)
      @help_window.set_text(str, 1)
      target.damage = "STILE!!" if str =~/#{STERS_STILE::MAS_OK}/
      for i in 0...STERS_STILE::STILE_WAIT
        Graphics.update
        @spriteset.update
      end
    end
    stile_update_phase4_step5
    @help_window.visible = true
  end
end

web拍手 by FC2   

コメントの投稿


非公開コメント

コメント

STERS's Development Room

STERSの開発室っぽい何か。


プロフィール

Name:STERS
Unity3D/C#/PHP/js/C++/VB
などを勉強中です

[STERS's Room]
[ファイル置き場]

カテゴリー
最近の記事
最近のコメント
カレンダー
08 ≪│2017/09│≫ 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
RSSリンクの表示
ブログ内Google検索
Google
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。