WizeBot Script Fehler

Hallöchen liebe Community,

ich habe mir für meinen Stream überlegt, eine Abenteuergilde für den Chat zu entwerfen. Da ich mich mit Programmieren nicht auskenne, fragte ich die AI WizeBot (ChatGPT), ob Sie mir bei der Entwicklung helfen kann. Nach gut 3 Tagen stehe ich immer noch am gleichen Problem und hoffe, dass mir hier jemand helfen kann, wie ich diesen Fehler lösen kann bzw. wo sich der Fehler versteckt, denn ich finde ihn nicht.

Hallo,
Können Sie mir sagen, was das Problem ist?

Wie lautet der Name Ihrer Bestellung und der Name Ihres Kontos?

Wir werden uns das alles ansehen! :slight_smile:

Hallo, das Skript sieht wie folgt aus:

const quests = [
    { name: "Kräutersammeln", exp: 10 },
    { name: "Eskorte", exp: 15, encounters: ["Räuber", "Monster"] },
    { name: "Monsterjagd", exp: 20 }
];

const equipableItems = ["Magisches Schwert", "Ritterrüstung", "Eisenhelm", "Stahlschild"];

const equipment = {};
const inventory = {};
const gold = {};

const sendmsg = msg => JS.wizebot.send_chat_message(msg);

const getRandom = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

const addExp = (user, amount) => {
    if (!inventory[user]) inventory[user] = {};
    if (typeof inventory[user].exp !== 'number') inventory[user].exp = 0;
    inventory[user].exp += amount;
    sendmsg(`${user} hat ${amount} EXP erhalten!`);
};

const startQuest = user => {
    if (!inventory[user]) inventory[user] = {};
    if (typeof inventory[user].exp !== 'number') inventory[user].exp = 0;
    const quest = quests[getRandom(0, quests.length - 1)];
    sendmsg(`Du hast die Quest '${quest.name}' erhalten!`);

    if (quest.name === "Eskorte" && getRandom(1, 100) > 50) {
        const encounter = quest.encounters[getRandom(0, quest.encounters.length - 1)];
        sendmsg(`Während der Eskorte wurdest du von einem ${encounter} überfallen!`);

        if (getRandom(1, 100) > 50) {
            sendmsg(`Du hast den ${encounter} besiegt und zusätzliche 10 EXP erhalten!`);
            addExp(user, 10);
        } else {
            sendmsg(`Der ${encounter} war zu stark. Die Eskorte war nicht erfolgreich.`);
            return;
        }
    }

    sendmsg(`Die Quest '${quest.name}' war erfolgreich! Du erhältst ${quest.exp} EXP.`);
    addExp(user, quest.exp);
};

JS.wizebot.call_tag('name', user => {
    startQuest(user);
});

Dies wird aber in Wize.Bot nicht erkannt, da es immer wieder Fehler aufweist. Laut einem Programmierer und KI-Hilfe, ist der Code aber korrekt. Mit was kann Wize.Bot hier nicht umgehen ?

Hallo,
Entschuldigen Sie die Wartezeit!

Also, was ich im Skript sehe:

JS.wizebot.call_tag('name', user => {
    startQuest(user);
});

Es ist völlig unmöglich, call_tag so zu verwenden, und „name” existiert nicht.

Die Speicherung von Benutzerinformationen kann ebenfalls nicht funktionieren.


Die KI-Hilfe… Haben Sie unseren „Assistenten” verwendet?

Nachfolgend finden Sie den von unserem Assistenten korrigierten Code, der die korrekte Speicherung und Verwendung der Funktionen berücksichtigt:

// === Initialisierung der Daten ===
let user = JS.wizebot.command.user_name();
let displayName = JS.wizebot.command.display_name();

// Verfügbare Quests
const quests = [
    { name: "Kräutersammeln", exp: 10 },
    { name: "Eskorte", exp: 15, encounters: ["Räuber", "Monster"] },
    { name: "Monsterjagd", exp: 20 }
];

// Ausrüstbare Items (für zukünftige Erweiterungen vorbereitet)
const equipableItems = ["Magisches Schwert", "Ritterrüstung", "Eisenhelm", "Stahlschild"];

// Funktion zum Senden einer Nachricht
const sendmsg = (msg, type = 'simple') => JS.wizebot.send_chat_message(msg, type);

// Zufallszahl generieren
const getRandom = (min, max) => JS.utils.random(min, max);

// EXP hinzufügen
const addExp = (userName, amount) => {
    let expKey = "exp_" + userName;
    let currentExp = JS.wizebot.get_var(expKey) || 0;
    currentExp += amount;
    JS.wizebot.set_var(expKey, currentExp);
    sendmsg(`${displayName} hat ${amount} Erfahrungspunkte erhalten!`);
};

// Quest starten
const startQuest = userName => {
    const quest = quests[getRandom(0, quests.length - 1)];
    sendmsg(`${displayName}, du hast die Quest '${quest.name}' erhalten!`);

    if (quest.name === "Eskorte" && getRandom(1, 100) > 50) {
        const encounter = quest.encounters[getRandom(0, quest.encounters.length - 1)];
        sendmsg(`Während der Eskorte wurdest du von einem ${encounter} überfallen!`);

        if (getRandom(1, 100) > 50) {
            sendmsg(`Du hast den ${encounter} besiegt und 10 zusätzliche EXP erhalten!`);
            addExp(userName, 10);
        } else {
            sendmsg(`Der ${encounter} war zu stark. Die Eskorte war nicht erfolgreich.`);
            return;
        }
    }

    sendmsg(`Die Quest '${quest.name}' war erfolgreich! Du erhältst ${quest.exp} EXP.`);
    addExp(userName, quest.exp);
};

// Quest ausführen
startQuest(user);

Ja ich habe diese Funktion getestet und nach 3 Tagen aufgegeben, da es immer wieder Fehler geworfen hat. WizeBot kann mit dem Javascript nicht umgehen.

WizeBot unterstützt JavaScript gut,

aber man muss verstehen, dass sich das JavaScript, das für diese WizeBot-Befehle verwendet wird, ein wenig von dem JavaScript unterscheidet, das für Websites (oder sogar NodeJS-Anwendungen (im Beispiel)) verwendet wird.

In Ihrem ursprünglichen Skript hat die KI, die es generiert hat, Fehler gemacht.

Der Hauptfehler (der zum Absturz/zur Nicht-Ausführung des Skripts führt) ist „JS.wizebot.call_tag”, das nicht korrekt verwendet wird (JS.wizebot.command.user_name() ruft den Namen korrekt ab).

Außerdem wird der EXP während der Ausführung gespeichert, jedoch nicht dauerhaft.

Das Skript, das ich in meinem vorherigen Beitrag bereitgestellt habe, behebt das Hauptproblem und speichert den EXP korrekt!

Nun liegt es an Ihnen, zu entscheiden, ob Sie es verwenden möchten oder nicht.

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.