Project1
标题: 如何一键清除身上某个类型的全部物品 [打印本页]
作者: 黑舞嗜 时间: 2019-2-25 15:27
标题: 如何一键清除身上某个类型的全部物品
如题,物品量比较大,一个一个去除不现实,有没有比较简单的脚本语句
作者: 梦想家大魔王 时间: 2019-2-25 21:13
$gameParty.gainItem($dataItems[id], num); //丢物品
$gameParty.gainItem($dataWeapons[id], num, includeEquip); //丢武器
$gameParty.gainItem($dataArmors[id], num, includeEquip); //丢护甲
// id: 要处理的物品序号;
// num: 处理的物品数量,获取用正整数,丢弃用负整数;
// includeEquip: 是否处理已装备的物品,0 - 不处理,1 - 处理。
$gameParty.gainItem($dataItems[id], num); //丢物品
$gameParty.gainItem($dataWeapons[id], num, includeEquip); //丢武器
$gameParty.gainItem($dataArmors[id], num, includeEquip); //丢护甲
// id: 要处理的物品序号;
// num: 处理的物品数量,获取用正整数,丢弃用负整数;
// includeEquip: 是否处理已装备的物品,0 - 不处理,1 - 处理。
作者: yang1zhi 时间: 2019-2-25 21:39
所有看起来是一键什么什么的,功能,全都是一个一个去执行的。
只是,你一键,他里面已经执行了很多了
用循环遍历语句,一个一个去判断
作者: Fan723 时间: 2019-2-25 21:56
清除背包所有东西:$gameParty.initAllItems();
要分别清除单种类型得自定义方法:
Game_Party.prototype.initOnlyItems = function() {
this._items = {};
};
Game_Party.prototype.initOnlyWeapons = function() {
this._weapons = {};
};
Game_Party.prototype.initOnlyArmors = function() {
this._armors = {};
};
然后分别执行:
$gameParty.initOnlyItems();
$gameParty.initOnlyWeapons();
$gameParty.initOnlyArmors();
作者: 黑舞嗜 时间: 2019-2-26 09:46
额...我说的类型其实指的是物品类型(普通物品、隐藏物品A/B这些)
作者: 黑舞嗜 时间: 2019-2-26 09:47
想要清除ID 1~xx要怎么填?能实现吗?
作者: 黑舞嗜 时间: 2019-2-26 14:35
但是2楼也只是丢掉单个物品啊...那和事件里面去掉不是没两样么,隐藏道具也很多,全删再去掉没差,如果可以批量丢的话才有意义啊
作者: wabcmcc 时间: 2019-2-26 20:31
批量得到所有物品99個,(負數為不要物品99個)
for(var i = 0; i < $dataItems.length; i++){
$gameParty.gainItem($dataItems[i], 99)
}
作者: soulsaga 时间: 2019-2-26 21:29
本帖最后由 soulsaga 于 2019-2-27 11:51 编辑
for(var i = 1; i <= 10; i++){
if ([1,3,4].contains($dataItems[i].itypeId)) {$gameParty.gainItem($dataItems[i], -77)};
}
for(var i = 1; i <= 10; i++){
if ([1,3,4].contains($dataItems[i].itypeId)) {$gameParty.gainItem($dataItems[i], -77)};
}
$dataItems.itypeId为道具类型..1为普通道具..如此类推..
上面代码是当道具类型是普通道具或隐藏道具A,B时便会删除该道具..
作者: 黑舞嗜 时间: 2019-2-27 09:36
没办法指定物品类型么?
作者: 黑舞嗜 时间: 2019-2-27 09:36
没办法指定物品类型么?
作者: 黑舞嗜 时间: 2019-2-27 11:37
额..不会用啊,放事件脚本里直接报错,能稍微讲下用法吗?谢谢了
作者: 黑舞嗜 时间: 2019-3-4 16:33
不好意思还想问下,在这个基础上,删掉某类型的全部道具换成删掉某类型随机一个物品要怎么改?
作者: soulsaga 时间: 2019-3-4 16:46
本帖最后由 soulsaga 于 2019-3-4 18:08 编辑
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataItems[r], -77)};
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataItems[r], -77)};
作者: 黑舞嗜 时间: 2019-3-4 17:54
额...报错了
作者: 黑舞嗜 时间: 2019-3-4 18:24
这个好像没判断身上是否有东西啊(有时候扔无效果),然后一扔就把同样的道具全扔了,尴尬(只想扔一个来着)
作者: 黑舞嗜 时间: 2019-3-5 09:46
额额不好意思忘记了,但重点好像是没有判断是否携带?
作者: 黑舞嗜 时间: 2019-3-5 10:42
额...不是,是因为执行这个脚本大部分没反应啊(身上只有2个道具),偶尔才会删一个,所以我推断是因为这个脚本会检索所有物品?(不管你有没有)
作者: 黑舞嗜 时间: 2019-3-5 11:16
没事,我用事件一个个判断就是了,还是谢谢你
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |