设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 6002|回复: 30

[有事请教] 如何一键清除身上某个类型的全部物品

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
发表于 2019-2-25 15:27:48 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
如题,物品量比较大,一个一个去除不现实,有没有比较简单的脚本语句
roguelike求生RPG研发中....

Lv4.逐梦者

梦石
0
星屑
7417
在线时间
947 小时
注册时间
2017-9-27
帖子
583
发表于 2019-2-25 21:13:52 | 显示全部楼层
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 - 处理。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

发表于 2019-2-25 21:39:44 | 显示全部楼层
所有看起来是一键什么什么的,功能,全都是一个一个去执行的。
只是,你一键,他里面已经执行了很多了
用循环遍历语句,一个一个去判断
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
17618
在线时间
2124 小时
注册时间
2015-7-4
帖子
913
发表于 2019-2-25 21:56:54 | 显示全部楼层
清除背包所有东西:$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();
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
 楼主| 发表于 2019-2-26 09:46:24 | 显示全部楼层
Fan723 发表于 2019-2-25 21:56
清除背包所有东西:$gameParty.initAllItems();
要分别清除单种类型得自定义方法:
Game_Party.prototype.i ...

额...我说的类型其实指的是物品类型(普通物品、隐藏物品A/B这些)

点评

隐藏物品会很多吗?用二楼的方法吧。如果是除了隐藏物品就用全部删,再补回隐藏物品吧。  发表于 2019-2-26 14:19
roguelike求生RPG研发中....
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
 楼主| 发表于 2019-2-26 09:47:47 | 显示全部楼层
梦想家大魔王 发表于 2019-2-25 21:13
$gameParty.gainItem($dataItems, num);  //丢物品
$gameParty.gainItem($dataWeapons, num, includeEquip ...


想要清除ID 1~xx要怎么填?能实现吗?

点评

这种用二楼的方法,大不了写个 for 语句。  发表于 2019-2-26 14:20
roguelike求生RPG研发中....
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
 楼主| 发表于 2019-2-26 14:35:32 | 显示全部楼层
Fan723 发表于 2019-2-25 21:56
清除背包所有东西:$gameParty.initAllItems();
要分别清除单种类型得自定义方法:
Game_Party.prototype.i ...

但是2楼也只是丢掉单个物品啊...那和事件里面去掉不是没两样么,隐藏道具也很多,全删再去掉没差,如果可以批量丢的话才有意义啊

点评

那就算了吧,也只是试探性看看有没有现成的脚本,我也不知道难度大不大,没有的话我就写个公共事件一个个扔就是了  发表于 2019-2-26 15:51
这种唐伯虎点秋香式的指定数据处理,要么自己会写代码,要么有热心人士愿意给写,要么请人定制。你嫌物品多,会比写个脚本用到的字母多吗?  发表于 2019-2-26 15:32
roguelike求生RPG研发中....
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
15442
在线时间
3944 小时
注册时间
2015-9-14
帖子
1333

开拓者

发表于 2019-2-26 20:31:25 | 显示全部楼层
批量得到所有物品99個,(負數為不要物品99個)

for(var i = 0; i < $dataItems.length; i++){
$gameParty.gainItem($dataItems[i], 99)
}
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33038
在线时间
10469 小时
注册时间
2009-3-15
帖子
4756
发表于 2019-2-26 21:29:08 | 显示全部楼层
本帖最后由 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时便会删除该道具..

评分

参与人数 2+2 收起 理由
csodaszarvas343 + 1 好用,效率大幅改善,感谢大佬!.
黑舞嗜 + 1 可以了,非常感谢

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
 楼主| 发表于 2019-2-27 09:36:07 | 显示全部楼层
wabcmcc 发表于 2019-2-26 20:31
批量得到所有物品99個,(負數為不要物品99個)

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


没办法指定物品类型么?
roguelike求生RPG研发中....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 08:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表