[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Und schau mal hier rein: Schneller & strukturierter skripten Eventuell hilft das ein wenig

    Hab ich tatsächlich schon und verwende schon:
    #define ADM_ERROR "Du besitzt nicht die benötigten Rechte!"
    #define NOT_CON "Der Spieler ist nicht online!"


    Allerdings hab ich die älteren Befehle alle noch nicht umgeschrieben ^^


    //Edit: Funktioniert nach dem /restart Befehl doch nicht ^^

  • Hab ich tatsächlich schon und verwende schon:

    Ahh, das freut mich ^^


    Aber das war auf das hier z.B. bezogen:

    if(PlayerInfo[playerid][pLoggedIn] == 0) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht eingeloggt.");

    Hatte ja gezeigt, wie man das nur noch 1x schreiben muss xD

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Wie sieht denn die Funktion: SaveUserStats aus? :)


    stock SaveUserStats(playerid)
    {
    if(!PlayerInfo[playerid][pLoggedIn]) return 1;


    new query[256];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d', skinid = '%d', adminlevel = '%d' WHERE id = '%d'",
    PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pSkinid], PlayerInfo[playerid][adminlevel], PlayerInfo[playerid][p_id]);


    mysql_pquery(handle, query);
    return 1;
    }

  • Hmm das was ich im Admin Befehl geschrieben hatte, schreibs mal so:



    C
    for(new i=GetPlayerPoolSize(); i!=-1; i--)
    {
        if(IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn])
        {
            SaveUserStats(i);
            PlayerInfo[i][pLoggedIn] = 0;
        }
    }

    Und dann probiere es nochmal.


    Wenn es dann immer noch nicht geht, lass mal den mysql_log mitlaufen und schau dann da mal rein.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich weiß

    Hast du eventuell 2x mysql_log oder sowas in deinem Skript?


    Hast du es auch wirklich compilt...usw


    Es muss einen Log geben, sonst würde das heißen, dass du kein MySQL nutzt ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • ast du eventuell 2x mysql_log oder sowas in deinem Skript?

    Habe es exakt 1x im Script vorhanden, eben noch einmal geschaut.


    Hast du es auch wirklich compilt...usw

    Ja, habe ich :D



    Es muss einen Log geben, sonst würde das heißen, dass du kein MySQL nutzt

    Uff ^^


    Woran könnte es noch liegen?
    Hab jetzt nochmal alles nachgeschaut, wüsste aber nicht, woran es liegen könnte. ._.


    //Edit: Hab's geschafft :D
    Log:

    2 Mal editiert, zuletzt von _Max ()

  • Hab's geschafft

    Okay, jup aber dort wird kein Query angezeigt, das bedeutet es wird keins verschickt...


    Setz mal ein print über das Query und schau, ob das ausgeführt wird.


    Oder sollte das query jetzt schon ausgeführt werden oder hast du mir nur den Log nach dem Server Start gegeben?! ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Oder sollte das query jetzt schon ausgeführt werden oder hast du mir nur den Log nach dem Server Start gegeben?!

    Ups ^^





    SkinID wurde nicht gefunden, ich schau da nochmal genauer nach :D


    //Edit: Habe es gefixxt.
    Hatte unter cache_get_value_name_int(0, "skinid", PlayerInfo[playerid][pSkinid]); das s in skinid groß geschrieben.


    ------------------------------------
    ANDERES THEMA:


    Gibt es eine Funktion ,die den Waffen Namen ausliest?
    Ich möchte einen /givegun Befehl machen und dann sollte eine Admin Nachricht kommen wie bspw.
    "AdmCMD: Admin Max hat Spieler Max eine Deagle mit 244 Schuss gegeben."
    Und als Befehl gibt er ein: /givegun Max 24 244


    Brauche dann den Waffennamen von der ID 24 (ist die Deagle)

    Einmal editiert, zuletzt von _Max ()

  • kommt eine Fehlermeldung, dass der Befehl nicht existiert.

    Lade sowas am Besten auf ein leeres Skript.


    Ansonsten könnten da die CMD-Prozessoren sich gegenseitig in den Weg kommen ^^


    Wenn es notwendig ist, dass es auf dem main Skript lädt, dann kommste nicht drum herum, als dir anzuschauen, wer was wo blockiert :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hallo, ich hätte eine Frage und zwar würde ich ganz gerne im Dialog eingeben was man einzahlen soll in Euro und Cent beträgen. Spricht "30, 20" Euro. Wie mache ich eine Abfrage das er auch Cent betrag eingibt und wie frage ich dann nur den Cent betrag ab ?

  • Hi,
    warum bekomme ich bei folgendem Befehl diese Fehlermeldung?


    ocmd:ban(playerid, params[]){new pID, reason[40], string[128];if(sscanf(params, "us", pID, reason)) return SendClientMessage(playerid, COLOR_GREY, "Befehl: /ban [Name/Spieler-ID] [Grund]");if(PlayerInfo[playerid][adminlevel] < PlayerInfo[pID][adminlevel]) return SendClientMessage(playerid, COLOR_GREY, "Du kannst keine ranghöheren Admins bannen!");if(!IsPlayerConnected(pID)) return NOT_CONif(!isAdmin(playerid, 2)) return ADM_ERRORformat(string, sizeof(string), "AdmCMD: %s hat %s gebannt. Grund: %s", SpielerName(playerid), SpielerName(pID), reason);SendClientMessageToAll(COLOR_DARKRED, string);PlayerInfo[pID][pBanned] = 1;PlayerInfo[pID][pReason] = reason;SetTimerEx("KickTimer", 250, false, "i", pID);return 1;}


    error 006: must be assigned to an array ist bei PlayerInfo[pID][pReason] = reason;

    Einmal editiert, zuletzt von _Max ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen