猫史档案馆


「求助」有没有大佬看一下下面这个代码有啥错误,只能用在一个模型上QWQ

用户:抬头就是你抬头就是你查看:10 回复:5 评论:10 创建时间:2023-05-15T15:36:38


async function npc_const(x, Radius, Hint, Color) {
    world.querySelectorAll('*').forEach((e) => {
        if (e.id == x) {
            let c;
            Color == 'red' ? c = new Box3RGBColor(1, 0, 0) : null;
            Color == 'green' ? c = new Box3RGBColor(0, 1, 0) : null;
            Color == 'blue' ? c = new Box3RGBColor(0, 0, 1) : null;
            Color == 'yellow' ? c = new Box3RGBColor(1, 1, 0) : null;
            Color == 'cyan' ? c = new Box3RGBColor(0, 1, 1) : null;
            Color == 'pink' ? c = new Box3RGBColor(1, 0, 1) : null;
            Color == 'black' ? c = new Box3RGBColor(0, 0, 0) : null;
            Color == 'white' ? c = new Box3RGBColor(1, 1, 1) : null;
            e.enableInteract = true;
            e.interactRadius = Radius;
            e.interactHint = Hint;
            e.interactColor = c;
        }
    })
};

                                                                      求求啦。。。。

 


回复

上一页1 页 / 共 1下一页
抬头就是你抬头就是你

......

点赞0


评论


145a145a

1.查找实体直接用选择器就可以

2.不要用三目代替条件分支,三目只能用于静态返回

3.检查一下你传入的参数是否有问题

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

用数组或者swich更好

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

赋值运算符是“=”不是值运算符“==”

点赞0


评论


Chengxuyee_已退Chengxuyee_已退

我把这段代码喂给chatgpt,他是这么说的

  1. 使用 world.querySelectorAll('*') 选择器查询所有元素时,可能会导致性能问题,因为它会遍历整个文档。如果你只想选择特定类型的元素,最好指定更具体的选择器。

  2. 在条件语句中使用了比较运算符 ==,但对于字符串比较,最好使用严格相等运算符 ===,以避免类型转换错误。可以使用 switch 语句来简化多个条件的判断。

    修复后的代码如下:

    javascript<button class="flex ml-auto gap-2">Copy code</button> async function npc_const(x, Radius, Hint, Color) { const elements = world.querySelectorAll('your-selector'); // 替换 'your-selector' 为要选择的特定元素类型的选择器 elements.forEach((e) => { if (e.id === x) { let c; switch (Color) { case 'red': c = new Box3RGBColor(1, 0, 0); break; case 'green': c = new Box3RGBColor(0, 1, 0); break; case 'blue': c = new Box3RGBColor(0, 0, 1); break; case 'yellow': c = new Box3RGBColor(1, 1, 0); break; case 'cyan': c = new Box3RGBColor(0, 1, 1); break; case 'pink': c = new Box3RGBColor(1, 0, 1); break; case 'black': c = new Box3RGBColor(0, 0, 0); break; case 'white': c = new Box3RGBColor(1, 1, 1); break; default: c = new Box3RGBColor(0, 0, 0); // 默认为黑色 } e.enableInteract = true; e.interactRadius = Radius; e.interactHint = Hint; e.interactColor = c; } });

点赞0


评论