irpg Community

Full Version: มอนเตอร์ให้ไอเทมมากกว่า 1 อย่าง
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
[XP]มอนเตอร์ให้ไอเทมมากกว่า 1 อย่าง

สคริปต์เขียนโดย : thetitsueng
ลิงค์ต้นฉบับ : Link


รายละเอียด :
ท่านอยากให้มอนสเตอร์ 1 ตัวมีไอเท็มให้เก็บได้หลายๆแบบไหม สคริปต์นี้ช่วยท่านได้

สกรีนช๊อต :
ไม่มีน่อ

วิธีการใช้งาน :
หาอ่านในสคริปต์ได้เลยน่อ มีวิธีใช้ละเอียดๆเขียนไว้อยู่แล้ว

ข้อตกลงการนำไปใช้งาน :
อย่างน้อยๆก็ใส่ชื่อ thetitsueng ลงในเครดิตด้วยล่ะ



โค๊ดสคริปต์
Code:
โค๊ดของสคริปต์
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]มอนเตอร์ให้ไอเทมมากกว่า 1 อย่าง
# By Thetitsueng
# Ver 1.00 [24/3/2553]
# http://necz.net
# [email protected]
#=====================================================
=begin
------------------------------------------------------
=> วิธีตั้งค่า :
    - นำไปใส่ไว้เหนือ Main และใต้ Scene_Debug
=> วิธีใช้ :
    - ตั้งค่าการดรอปไอเทมของมอนเตอร์ได้ตั้งแต่บรรทัด 24
------------------------------------------------------
=end
#=====================================================
# *ส่วนการตั้งค่า
#=====================================================
class Scene_Battle
  def initialize_item
    @monster_id = []
    item,armor,weapon = "item","armor","weapon"
    #  ตั้งค่าการดรอปไอเทมได้ที่บรรทัดนี้
    @monster_id[1] = [  [item,1,100],[armor,2,30],[weapon,2,20]  ]
    @monster_id[2] = [  [item,1,100],[item,5,40]  ]
    @monster_id[5] = [  [item,2,55],[item,5,40],[weapon,10,1]  ]
    
    #  สามารถเพิ่มได้โดยใช้แบบฟอร์มด้านล่าง
    #  @monster_id[ไอดีของศัตรู] = [  [ประเภท,ไอดีของไอเทมในประเภท,โอกาศที่จะได้รับ],...  ]
    #  เช่น @monster_id[1] = [  [item,1,100],[armor,2,30]  ]
    #  หมายถึงมอนเตอร์ไอดี 1 มีโอกาสดรอปไอเทม ไอดี 1 100% และ ชุดเกราะไอดี 2 30%
    #  ประเภทของไอเทมมีดังนี้ => item,armor,weapon

#=====================================================
# *จบส่วนการตั้งค่า
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
  end
  def start_phase5
    initialize_item
    @phase = 5
    $game_system.me_play($game_system.battle_end_me)
    $game_system.bgm_play($game_temp.map_bgm)
    exp = 0
    gold = 0
    treasures = []
    for enemy in $game_troop.enemies
      unless enemy.hidden
        id = enemy.id
        exp += enemy.exp
        gold += enemy.gold
        if @monster_id[id] == nil
          if rand(100) < enemy.treasure_prob
            if enemy.item_id > 0
              treasures.push($data_items[enemy.item_id])
            end
            if enemy.weapon_id > 0
              treasures.push($data_weapons[enemy.weapon_id])
            end
            if enemy.armor_id > 0
              treasures.push($data_armors[enemy.armor_id])
            end
          end
        else
          for @a in @monster_id[id]
            if rand(100) < @a[2]
              if @a[0] == "item"
                treasures.push($data_items[@a[1]])
              elsif @a[0] == "weapon"
                treasures.push($data_weapons[@a[1]])
              elsif @a[0] == "armor"
                treasures.push($data_armors[@a[1]])
              end
            end
          end
        end
      end
    end
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          @status_window.level_up(i)
        end
      end
    end
    $game_party.gain_gold(gold)
    for item in treasures
      case item
      when RPG::Item
        $game_party.gain_item(item.id, 1)
      when RPG::Weapon
        $game_party.gain_weapon(item.id, 1)
      when RPG::Armor
        $game_party.gain_armor(item.id, 1)
      end
    end
    @result_window = Window_BattleResult.new(exp, gold, treasures)
    @phase5_wait_count = 100
  end
end
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]มอนเตอร์ให้ไอเทมมากกว่า 1 อย่าง
# By thetitsueng
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
โอ้ สคริปทำ Database แยก =[]=b แจ๋วมากครับ