Project1

标题: 如何一键清除身上某个类型的全部物品 [打印本页]

作者: 黑舞嗜    时间: 2019-2-25 15:27
标题: 如何一键清除身上某个类型的全部物品
如题,物品量比较大,一个一个去除不现实,有没有比较简单的脚本语句
作者: 梦想家大魔王    时间: 2019-2-25 21:13
JAVASCRIPT 代码复制
  1. $gameParty.gainItem($dataItems[id], num);  //丢物品
  2. $gameParty.gainItem($dataWeapons[id], num, includeEquip);  //丢武器
  3. $gameParty.gainItem($dataArmors[id], num, includeEquip);  //丢护甲
  4. // id: 要处理的物品序号;
  5. // num: 处理的物品数量,获取用正整数,丢弃用负整数;
  6. // 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
Fan723 发表于 2019-2-25 21:56
清除背包所有东西:$gameParty.initAllItems();
要分别清除单种类型得自定义方法:
Game_Party.prototype.i ...

额...我说的类型其实指的是物品类型(普通物品、隐藏物品A/B这些)
作者: 黑舞嗜    时间: 2019-2-26 09:47
梦想家大魔王 发表于 2019-2-25 21:13
$gameParty.gainItem($dataItems, num);  //丢物品
$gameParty.gainItem($dataWeapons, num, includeEquip ...


想要清除ID 1~xx要怎么填?能实现吗?
作者: 黑舞嗜    时间: 2019-2-26 14:35
Fan723 发表于 2019-2-25 21:56
清除背包所有东西:$gameParty.initAllItems();
要分别清除单种类型得自定义方法:
Game_Party.prototype.i ...

但是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 编辑

JAVASCRIPT 代码复制
  1. for(var i = 1; i <= 10; i++){
  2. if ([1,3,4].contains($dataItems[i].itypeId)) {$gameParty.gainItem($dataItems[i], -77)};
  3. }

$dataItems.itypeId为道具类型..1为普通道具..如此类推..
上面代码是当道具类型是普通道具或隐藏道具A,B时便会删除该道具..

作者: 黑舞嗜    时间: 2019-2-27 09:36
wabcmcc 发表于 2019-2-26 20:31
批量得到所有物品99個,(負數為不要物品99個)

for(var i = 0; i < $dataItems.length; i++){


没办法指定物品类型么?
作者: 黑舞嗜    时间: 2019-2-27 09:36
soulsaga 发表于 2019-2-26 21:29
for(var i = 1; i


没办法指定物品类型么?
作者: 黑舞嗜    时间: 2019-2-27 11:37
soulsaga 发表于 2019-2-26 21:29
for(var i = 1; i

额..不会用啊,放事件脚本里直接报错,能稍微讲下用法吗?谢谢了
作者: 黑舞嗜    时间: 2019-3-4 16:33
soulsaga 发表于 2019-2-26 21:29
for(var i = 1; i

不好意思还想问下,在这个基础上,删掉某类型的全部道具换成删掉某类型随机一个物品要怎么改?
作者: soulsaga    时间: 2019-3-4 16:46
本帖最后由 soulsaga 于 2019-3-4 18:08 编辑
黑舞嗜 发表于 2019-3-4 16:33
不好意思还想问下,在这个基础上,删掉某类型的全部道具换成删掉某类型随机一个物品要怎么改? ...


JAVASCRIPT 代码复制
  1. r = Math.randomInt(101);
  2. if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataItems[r], -77)};

作者: 黑舞嗜    时间: 2019-3-4 17:54
soulsaga 发表于 2019-3-4 16:46
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataI ...



额...报错了
作者: 黑舞嗜    时间: 2019-3-4 18:24
soulsaga 发表于 2019-3-4 16:46
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataI ...


这个好像没判断身上是否有东西啊(有时候扔无效果),然后一扔就把同样的道具全扔了,尴尬(只想扔一个来着)
作者: 黑舞嗜    时间: 2019-3-5 09:46
soulsaga 发表于 2019-3-4 16:46
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataI ...

额额不好意思忘记了,但重点好像是没有判断是否携带?
作者: 黑舞嗜    时间: 2019-3-5 10:42
soulsaga 发表于 2019-3-4 16:46
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataI ...

额...不是,是因为执行这个脚本大部分没反应啊(身上只有2个道具),偶尔才会删一个,所以我推断是因为这个脚本会检索所有物品?(不管你有没有)
作者: 黑舞嗜    时间: 2019-3-5 11:16
soulsaga 发表于 2019-3-4 16:46
r = Math.randomInt(101);
if ([1,3,4].contains($dataItems[r].itypeId)) {$gameParty.gainItem($dataI ...

没事,我用事件一个个判断就是了,还是谢谢你




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1