村姑 发表于 3 天前

TAKE命令

TAKE               //物品1|物品2|物品3... 数量 P0 1第四参数=1时,不取走极品装备,第三参数P0不需要时可以用""代替 第六参数=1时 回收仓库道具
                     TAKE 龙之手镯|骑士手镯|三眼手镯|紫碧螺|泰坦戒指|绿色项链|万年雪霜|力量戒指|炼狱 46 "" 1 0 1


哪位大侠有现成的案例讲解下呢?如本次拿走了1个龙之手镯,给了你2个金币。

完美 发表于 3 天前

好的,我们来详细讲解一下这个 TAKE 命令的案例。
根据您提供的【参考资料】中的 BLUE引擎说明书2025.pdf 以及 引擎更新日志 中的说明,这个命令的功能非常强大。
命令格式详解
TAKE 物品列表 数量 目标变量 忽略极品开关 保留数量 作用于仓库

您的案例:TAKE 龙之手镯|骑士手镯|三眼手镯|紫碧螺|泰坦戒指|绿色项链|万年雪霜|力量戒指|炼狱 46 "" 1 0 1
让我们一步步拆解这个命令:

物品列表: 龙之手镯|骑士手镯|三眼手镯|紫碧螺|...

这是一个用竖线 | 分隔的物品名称列表。引擎会按顺序在这个列表中查找并拿走物品。

数量: 46

这表示总共要尝试拿走46个物品。但请注意,这里的“数量”是按类型计算的,而不是单个物品的数量。实际上,当遇到这样的多物品列表时,这个参数通常被解释为“最多尝试拿走这么多件不同类型的物品”。

目标变量 (P0): ""

这是用来存储实际拿走了多少种物品的变量。例如,如果引擎拿走了龙之手镯、骑士手镯、三眼手镯这3种物品,那么这个变量的值就会变成3。
您写的是 "",表示不关心这个结果,不存入任何变量。

忽略极品开关 (第四参数): 1

这是关键参数。1 表示不取走极品装备。
如果这件物品的随机属性超过了设定的“极品”标准(由服务器设置),这个命令将跳过它,不进行拿走操作。

保留数量 (第五参数): 0

这个参数的含义是每种物品最少保留多少个在背包中不拿走。0 表示不保留,有多少拿多少。
如果设为 1,那么即使背包里有10个龙之手镯,也只会拿9个,保留1个。

作用于仓库 (第六参数): 1

这是一个非常实用的功能。1 表示该命令还会检查并拿走仓库中的物品。

执行逻辑模拟
当执行这条命令时,引擎会这样做:

从包裹(因为最后参数是 1,所以也会从仓库)开始,依次寻找列表中的物品:龙之手镯、骑士手镯、三眼手镯...
对于找到的一件物品,引擎会检查它是否是“极品”。
如果不是极品,并且背包(或仓库)里的这件物品的数量大于保留数量(0个),引擎就会拿走它。
拿走的条件:引擎会一直尝试拿走列表中的物品,直到拿走的物品种类数达到了 数量(46) 这一上限,或者把所有符合条件的物品都遍历完了。

如何实现“拿走了1个龙之手镯,给了你2个金币”?
这个 TAKE 命令本身只负责拿走物品。要实现在拿走物品后给予奖励,您需要像参考资料中的其他回收脚本(如 血色修改回收 不会被刷 元宝回收-3.txt)一样,将多个脚本段结合起来。
一个完整的案例脚本:
[@GiveGoldForTake]
#IF
CHECKITEM 龙之手镯 1   ; 先检查背包里是否有至少1个龙之手镯(非极品的)
#ACT
TAKE 龙之手镯 1          ; 拿走1个龙之手镯(这里用的是简单版,没考虑极品问题)
GAMEGOLD + 2            ; 给予2个元宝(您问题中是“金币”,但元宝是更常见的代币)
SENDMSG 6 提示:您成功上交1个龙之手镯,获得了2个元宝! 249 255
#ELSEACT
MESSAGEBOX 您身上没有可上交的龙之手镯!

更符合您需求的逻辑(结合极品过滤)
根据参考资料中的 自动回收执行.txt,更成熟的脚本通常使用一个循环或条件判断,并结合极品开关变量(如 $(极品回收开关))来实现。但就您这个具体问题,最直接的解答是:
TAKE 命令 + GAMEGOLD 等给予命令是组合使用的。TAKE 只负责从你身上拿走物品,给予奖励需要另一条命令紧接着执行。
总结
参数你的值作用物品列表`龙之手镯(@context-ref?id=4)...`数量46要拿走的物品种类总数上限。目标变量""存储实际拿走的物品种类数,这里不使用。忽略极品1非常重要:不拿走极品属性装备。保留数量0每种物品最少保留数量,0代表不留。作用于仓库1同时从仓库中回收。
要实现“拿走1个龙之手镯,给2个金币”,正确的写法是:
[@MyRecycle]
#IF
CHECKITEM 龙之手镯 1   ; 确保有货
#ACT
TAKE 龙之手镯 1          ; 拿走1个(注意:这里没加极品过滤,是简单版)
GAMEGOLD + 2            ; 给予2个元宝
; 如需加上世界公告,可用 SENDMSG 0
#ELSEACT
MESSAGEBOX 你没有龙之手镯!

希望这个详细的讲解能帮助您理解! AI回复仅供参考~

村姑 发表于 3 天前

本帖最后由 村姑 于 2026-5-12 11:49 PM 编辑


俺想的是用这个做一键回收装备:)

Blue老洪 发表于 前天 11:04 PM

#IF
TRUE
#ACT
TAKE 龙之手镯|力量戒指|三眼手镯|骑士手镯 40 M_回收数量

#IF
LARGE M_回收数量 0
#ACT
CALC "<$STR(M_回收数量)> * 2" M_获得数量
GIVE 金币 <$STR(M_获得数量)>
MOV M_回收数量 0
MOV M_获得数量 0

最下面MOV 两个数量为0可要可不要,防止抽风现象建议还是加上。

村姑 发表于 前天 11:27 PM

Blue老洪 发表于 2026-5-13 11:04 PM
#IF
TRUE
#ACT


万谢。在这个脚本中如果能实现极品检测就更完美了。这个脚本省时,还不会导致复制修改出错。

Blue老洪 发表于 昨天 12:09 AM

极品过滤-自动拾取回收、自动转移+测试回收返还-【12】
https://www.bluem2.cn/forum.php?mod=viewthread&tid=3765&fromuid=1673
(出处: Blue引擎)
这里面就有噢。
极品过滤的
页: [1]
查看完整版本: TAKE命令