可能的Bug:

  1. 第一行代码中的"!"符号可能是多余的,因为clonep()函数返回的是一个布尔值,应该不需要再取反。

  2. 第三行中的"obj->name()"可能会导致错误,因为如果obj已经被析构了,那么调用其name()函数就会报错。

  3. 第四行中的"no_drop"应该是一个赋值操作,而不是一个比较操作,应该改为"no_drop = environment(me)->query("no_drop");"。

  4. 最后一段代码中,应该在每个case语句的末尾加上"break;",否则会继续执行下一个case语句中的代码。

修改建议:

  1. 第一行代码中的"!"符号可以去掉。

  2. 第三行代码中的"obj->name()"可以改为"obj->query("name")",这样即使obj已经被析构了也不会报错。

  3. 第四行代码中的"no_drop"应该改为一个赋值操作,即"no_drop = environment(me)->query("no_drop");"。

  4. 最后一段代码中,每个case语句末尾加上"break;",以避免执行下一个case语句中的代码。

修改后的代码:

if (clonep(obj)) { write(obj->query("name")+"化作一道流光消失了!!\n"); destruct(obj); return 1; }

if (wiz_level(me) < 3 && obj->query("no_drop"))
	return notify_fail( obj->query("name") + "不能被丢弃。\n");

no_drop = environment(me)->query("no_drop");
if (no_drop)
	return notify_fail(stringp(no_drop) ? no_drop : "这里东西丢弃下去也看不见。\n");

if(!wizardp(me)){
	switch ((string)obj->query("equipped"))
	{
	case "worn":
		tell_object(me, obj->query("name") + "必须脱下来才能丢掉。\n");
		return 0;
		break;

	case "wielded":
		tell_object(me, obj->query("name") + "必须解除装备才能丢掉。\n");
		return 0;
		break;
	}
}
检测Bug !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		ret

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

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