Text in PVar

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
  • Guten Abend allen zusammen ;)


    Mein Fehler liegt im Abspeichern des Ban Grunds:



    ocmd:ban(playerid, params[])
    {
    if(isPlayerAnAdmin(playerid, 6))
    {
    new pID, string[258], string1[258], reason[258];
    if(sscanf(params, "us", pID, reason))return SendClientMessage(playerid, Rot, "[Benutze]: /ban [ID] [Grund]");
    if(IsPlayerConnected(pID))
    {
    format(string, sizeof(string), "[AdmCmd]: {FFFFFF} Du hast %s (ID: %d) vom Server gebannt. Grund: %s.", SpielerName(pID), pID, reason);
    format(string1, sizeof(string1), "[AdmCmd]: %s wurde von %s vom Server gebannt. Grund: %s.", SpielerName(pID), SpielerName(playerid), reason);
    SendClientMessage(playerid, Leuchtrot, string);
    SendClientMessageToAll(Leuchtrot, string1);
    SetPVarInt(pID, "Gesperrt", 1);
    SetTimerEx("BanWithMessage", 100, true, "i", pID, SetPVarString(pID, "Grund", reason)); // Hier wird es im Sting gespeichert
    return 1;
    }
    return SendClientMessage(playerid, Rot, "Der Ausgewählte Spieler ist nicht Online.");
    }
    return SendClientMessage(playerid, Rot, "Du bist nicht berechtigt diesen Befehl zu benutzen.");
    }



    public BanWithMessage(playerid)
    {
    new string[258];
    BanEx(playerid, GetPVarString(playerid, "Grund", string, 258)); // Hier soll dan der Grund wieder ausgegebn werden
    return 1;
    }


    Fehler ist:


    SQL
    Selfmade.pwn(831) : error 035: argument type mismatch (argument 2)
  • Gib den Grund doch einfach mit dem Timer weiter?
    Einfach beim Timer:


    SetTimerEx("BanWithMessage", 100, true, "is", pID, reason);
    und dann beim Aufrufen vom Timer:


    public BanWithMessage(playerid, reason)
    {
    BanEx(playerid, reason); // Hier soll dan der Grund wieder ausgegebn werden
    return 1;
    }


    edit: Zu deinem Problem weiß ich leider auch nicht wirklich etwas.

  • public BanWithMessage(playerid)
    {
    new string[258];
    BanEx(playerid, GetPVarString(playerid, "Grund", string, 258)); // Hier soll dan der Grund wieder ausgegebn werden
    return 1;
    }


    Der Fehler liegt hier, dass muss so aussehen:


    public BanWithMessage(playerid)
    {
    new string[128];
    GetPVarString(playerid, "Grund", string, 128);
    BanEx(playerid,string);
    return 1;
    }


    //Edit: und in deinem cmd musst du das so machen:


    SetPVarString(pID, "Grund", reason);
    SetTimerEx("BanWithMessage", 100, true, "i", pID); // Hier wird es im Sting gespeichert


    mfg. :thumbup:

    ast2ufdyxkb1.png


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