Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # TheoAllen - Condition Checkers
- # Version : 1.0
- # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
- # (This script documentation is written in informal indonesian language)
- # =============================================================================
- ($imported ||= {})[:Theo_ConditionCheck] = true
- # =============================================================================
- # CHANGE LOGS:
- # -----------------------------------------------------------------------------
- # 2013.09.10 - Initial idea
- # =============================================================================
- =begin
- ---------------------------------------------------------------------------
- Perkenalan :
- Script ini nambahin fitur di script call yang bisa ngebantu kamu untuk make
- script di conditional branch. Seperti ngecek jumlah item dan semacemnya.
- Disarankan untuk mengunjungi link ini juga :
- http://theolized.blogspot.com/2013/08/list-kondisi-berdasar-script.html
- ---------------------------------------------------------------------------
- Cara penggunaan :
- Pasang dibawah material namun diatas main
- Baca manualnya. Dan gunakan di script call conditional branch
- ---------------------------------------------------------------------------
- Terms of use :
- Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
- keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
- dipake buat komersil, jangan lupa, gw dibagi gratisannya.
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- USER MANUAL
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Gunakan symbol perbandingan sebagai berikut untuk membandingkan dua nilai.
- Abaikan kurungnya :
- ( < ) --> Lebih kecil dari
- ( > ) --> Lebih besar dari
- ( <= ) --> Lebih kecil atau sama dengan
- ( >= ) --> Lebih besar atau sama dengan
- ( == ) --> Sama dengan
- ( != ) --> Tidak sama dengan
- Contoh penggunaan :
- angka_pertama <= angka_kedua
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Untuk pengecekan jumlah item yang dipunyai player
- ---------------------------------------------------------------------------
- $data_items[id].amount -> Pengecekan jumlah item tertentu dalam inventory
- $data_weapons[id].amount -> Pengecekan jumlah weapon tertentu dalam inventory
- $data_armors[id].amount -> Pengecekan jumlah armor tertentu dalam inventory
- id >> adalah nomor ID dari item yang kamu cek (bisa diliat di database)
- Contoh penggunaan :
- $data_items[1].amount >= 10
- apakah item dengan ID 1 jumlahnya lebih atau sama dengan 10?
- Untuk pengecekan jumlah diantara nilai tertentu, kamu bisa menggunakan
- .amount_between?(minimal, maksimal)
- Contoh penggunaan :
- $data_items[1].amount_between?(1, 50)
- Apakah item dengan ID 1 jumlahnya antara 1 sampai dengan 50?
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Untuk pengecekan actor
- ---------------------------------------------------------------------------
- Gunakan awalan sebagai berikut (Pilih salah satu)
- - actors[id].{method}
- - party.members[urutan].{method} >> urutan dimulai dari 0
- Dimana {method} adalah yang tercantum dibawah ini
- ----------------------------
- .has_atype?(id,id,id ...)
- Apakah actor tersebut sedang memakai armor type dengan id (boleh diisi
- sebanyak yg kamu mau). Armor type adalah tipe armor yang ada di database
- terms.
- ----------------------------
- .has_wtype?(id,id,id ...)
- Apakah actor tersebut sedang memakai weapon type dengan id (boleh diisi
- sebanyak yg kamu mau). Armor type adalah tipe weapon yang ada di database
- terms.
- ----------------------------
- .has_etype?(id,id,id ...)
- Apakah actor tertebut sedang memakai equip dengan tipe id tertentu? Equip
- type adalah slot equip tersebut. Semisal jika kamu ingin mengecek apakah
- seorang actor sedang memakai shield, maka kamu bisa tulis .has_etype?(1)
- ----------------------------
- .weapon_equipped?
- Apakah seorang actor tersebut sedang make weapon atau ngga?
- ----------------------------
- .armor_equipped?
- Apakah seorang actor tersebut sedang make armor atau ngga?
- ----------------------------
- .all_skills_learned?(id,id,id ...)
- Apakah seorang actor sudah memiliki SEMUA skill dengan id (isi seperlunya)
- ----------------------------
- .any_skills_learned?(id,id,id ...)
- Apakah seorang actor sudah memiliki SALAH SATU dari skill dengan id ...
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Untuk pengecekan party
- ---------------------------------------------------------------------------
- Gunakan awalan
- - party.{method}
- Dimana {method} adalah sebagai berikut
- ----------------------------
- .has_class?(class_id)
- Apakah ada anggota party yang memiliki class id tertentu?
- ----------------------------
- .highest_level
- Level tertinggi dari level actor yang ada dalam party. Gunakan symbol diatas
- untuk membandingannya
- ----------------------------
- .average_level
- Jumlah rata-rata dari level actor. Gunakan symbol diatas untuk
- membandingkannya
- ----------------------------
- .lowest_level
- Level terendah dari level actor yang ada dalam party. Gunakan symbol diatas
- untuk membandingannya
- ----------------------------
- .gold_spent
- Jumlah gold yang sudah dikeluarkan saat membeli barang. Gunakan symbol diatas
- untuk membandingkannya
- =end
- # =============================================================================
- # Tidak ada konfigurasi
- # =============================================================================
- class RPG::BaseItem
- def amount
- return 0
- end
- def amount_between?(min,max)
- amount >= min && amount <= max
- end
- end
- class RPG::Item < RPG::UsableItem
- def amount
- return $game_party.item_number($data_items[id])
- end
- end
- class RPG::Weapon < RPG::EquipItem
- def amount
- return $game_party.item_number($data_weapons[id])
- end
- end
- class RPG::Armor < RPG::EquipItem
- def amount
- return $game_party.item_number($data_armors[id])
- end
- end
- class Game_Interpreter
- def party
- $game_party
- end
- def actors
- $game_actors
- end
- end
- class Game_Actor < Game_Battler
- def has_atype?(*args)
- !(args & armors.compact.collect {|armor| armor.atype_id}).empty?
- end
- def has_etype?(*args)
- !(args & equips.compact.collect {|armor| armor.etype_id}).empty?
- end
- def has_wtype?(*args)
- !(args & weapons.compact.collect {|weapon| weapon.wtype_id}).empty?
- end
- def weapon_equipped?
- equips.any? {|eq| !eq.nil? && eq.etype_id == 0}
- end
- def armor_equipped?
- equips.any? {|eq| !eq.nil? && eq.etype_id != 0}
- end
- def all_skills_learned?(*args)
- args.all? {|id| skill_learn?(id)}
- end
- def any_skill_learned?(*agrs)
- args.any? {|id| skill_learn?(id)}
- end
- end
- class Game_Party < Game_Unit
- attr_accessor :gold_spent
- attr_reader :gained_gold
- alias theo_checkers_init initialize
- def initialize
- theo_checkers_init
- @gained_gold = gold
- @gold_spent = 0
- end
- alias theo_checkers_gain_gold gain_gold
- def gain_gold(amount)
- @gained_gold += amount if amount > 0
- theo_checkers_gain_gold(amount)
- end
- def has_class?(class_id)
- members.any? {|actor| actor.class_id == class_id}
- end
- def average_level
- av = members.inject(0) {|total,member| total + member.level}
- return av/members.size
- end
- def lowest_level
- members.collect {|member| member.level}.min
- end
- end
- class Scene_Shop < Scene_MenuBase
- alias theo_checkers_buy do_buy
- def do_buy(number)
- theo_checkers_buy(number)
- $game_party.gold_spent = number * buying_price
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment