內建玩家的背包,在Game party裡面
玩家身上的道具:
$gameParty._items
玩家身上的武器:
$gameParty._weapons
玩家身上的防具:
$gameParty._armors
看起來是一個倉庫,其實是三個陣列,另外有一個numItems()的函式專門用來算數量,還有一個叫做this.itemContainer()的也是倉庫...
$gameParty.itemContainer(item)的內容跟$gameParty._items 一模一樣
而且是不管我item.id給幾號都回傳整個倉庫給我...
除了0不行以外
$gameParty.numItems($dataItems[176])
回傳編號176號道具的數量
另外倉庫裡面只有存id 跟數量兩個資料而已,並不是完整的data
到了$gameParty.items()時候會變成實體
------------------------------------
補
我又去看了一下Window_ItemList
發現他背包抓得是$gameParty.allItems()
這是用來畫UI的,所以我想這個才是遊戲裡面真正的背包
allItems就包含了下面三者
Game_Party.prototype.items = function() {
var list = [];for (var id in this._items) {list.push($dataItems[id]);}return list;
};
Game_Party.prototype.weapons = function() {
var list = [];for (var id in this._weapons) {list.push($dataWeapons[id]);}return list;
};
Game_Party.prototype.armors = function() {
var list = [];for (var id in this._armors) {list.push($dataArmors[id]);}return list;
};
在進行道具分類時候,會用到這個
DataManager.isItem = function(item) {
return item && $dataItems.contains(item);
};
DataManager.isWeapon = function(item) {
return item && $dataWeapons.contains(item);
};
DataManager.isArmor = function(item) {
return item && $dataArmors.contains(item);
};