Was ist hier falsch? (OOC Command)

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
  • Hallo liebe User,


    leider weiß ich nicht wieso dieser Command nicht funktionieren will. Ich hoffe ihr könnt mir weiter helfen!



    Code:
    dcmd_ooc(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(!isAdmin(playerid,2))return SendClientMessage(playerid,Rot,"Du hast nicht das nötige Adminlevel dafür!");
    if(sInfo[playerid][eingeloggt]==0)
    {
    SendClientMessage(playerid, Rot, "Du bist nicht eingeloggt oder es kommt gleich ein Restart!");
    return 1;
    }
    new text[128];
    new string[128];
    if(sscanf(params,"us",playerid,text))
    {
    SendClientMessage(playerid,Rot,"INFO: /ooc (Text)");
    return 1;
    }
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "(( %s: %s ))", sendername, text);
    SendClientMessageToAll(COLOR_OOC,string);
    printf("%s", string);
    return 1;
    }
    return 1;
    }



    Mit freundlichen Grüßen,
    DexterA1

  • Da der meister oben einfach nur was verändert ohne was zu sagen erkläre ich dir deinen Fehler mal kurz.


    sscanf liest parameter aus die nach dem Befehl eingegeben werden.
    us bedeutet er erwartet einen spieler und mit einem leerzeichen getrennt eine zeichenkette.
    Den Text


    Da musst du das u raus nehmen und die variable playerid auch aus der FUnktion nehmen.



    Zu dem sendername @[LoF]Domi: das ist schwachsinn.
    Lass die Speicherplatzreservierung bei MAX_PLAYER_NAME, da ein SAMP Name nur 24 Zeichen beeinhalten kann.
    Sollte es in einer neuen version mehr werden, wird MAX_PLAYER_NAME darauf angepasst.

    ik bin der vito c:

  • Probiere das hier mal, sollte gehen:
    dcmd_ooc(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(!isAdmin(playerid,2)) return SendClientMessage(playerid,Rot,"Du hast nicht das nötige Adminlevel dafür!");
    if(sInfo[playerid][eingeloggt]==0) return SendClientMessage(playerid, Rot, "Du bist nicht eingeloggt oder es kommt gleich ein Restart!");
    new string[128], text[128], sendername[MAX_PLAYER_NAME];
    if(sscanf(params,"s",text)) return SendClientMessage(playerid,Rot,"INFO: /ooc (Text)");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "(( %s: %s ))", sendername, text);
    SendClientMessageToAll(COLOR_OOC,string);
    printf("%s", string);
    return 1;
    }
    return 1;
    }

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Ich schätze mal, dass es früher so war, dass es ohne diese zeile zu irgendwelchen Sync Fehlern oder so ein scheiss kommen könnte.


    Zu 0.1 und 0.2.X anfangszeiten, ist der Server immer weggeschissen, wenn der Spieler nicht connected war aber für ihn etwas ausgeführt werden sollte.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

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