此段代码主要是用来处理玩家丢弃物品的逻辑。首先通过判断对象是否是克隆出来的来确定是否需要销毁该对象,然后判断玩家是否有丢弃该物品的权限,如果该物品被设置为无法丢弃,则返回错误信息。接着判断当前环境是否允许丢弃物品,如果不允许,则返回错误信息。最后判断玩家是否有足够的权限来丢弃该物品,如果没有,则返回错误信息。

在检测这段代码时,需要注意以下几个问题:

  1. 在第四行中,应该是 if (no_drop := environment(me)->query("no_drop")),而不是 if (no_drop = environment(me)->query("no_drop"))。因为前者是赋值操作,而后者是判断相等操作。

  2. 在第7行中,应该是 if (!stringp(no_drop)),而不是 if (stringp(no_drop))。因为这里需要判断字符串是否为空,而不是是否存在。

  3. 在第13行中,应该是 switch (obj->query("equipped")),而不是 switch ((string)obj->query("equipped"))。因为query函数返回的已经是字符串类型了,不需要再进行强制类型转换。

  4. 最后,在第14行和第17行中,应该是 return notify_fail(obj->name() + "必须解除装备才能丢掉。\n"); 而不是 return 0;。因为这里需要返回错误信息,而不是返回一个数值。

检测bug与逻辑if !clonepobj			writeobj-queryname+化作一道流光消失了!!n;		destructobj;		return 1;		if wiz_levelme 3 && obj-queryno_drop		return notify_fail obj-name + 不能被丢弃。n;	if no_drop = environmentme-queryno_drop

原文地址: https://www.cveoy.top/t/topic/bBk9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录