该段代码似乎没有明显的 bug,但需要注意以下几点:

  1. 第一行的判断条件应该是if (clonep(obj)),即如果 obj 是个 clone 对象,则执行下面的代码。

  2. 第二个 if 语句中,no_drop 应该是个变量,需要加上 = 进行赋值操作。

  3. 最后一个 if 语句中,应该将 obj->query("equipped") 的返回值转换为字符串再进行判断,即 switch (to_string(obj->query("equipped")))

  4. 可以考虑在第二个 if 语句中添加一个 else 分支,返回一个成功的信息。

  5. 可以考虑在最后一个 if 语句中添加一个 else 分支,返回一个成功的信息。

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

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

 if (no_drop = environment(me)->query('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->name() + '必须脱下来才能丢掉。\n');
		return 0;

	case 'wielded':
		tell_object(me, obj->name() + '必须解除装备才能丢掉。\n');
		return 0;
	}
}
Mud 游戏代码分析:检测 bug 和逻辑问题

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

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