Sscanf wieder einmal

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
  • Ich bin wie gesagt noch recht neu in sscanf und verstehen tuhe ich es ja doch ich weiß auch nicht mehr weiter
    immer bugt ein command z.b jetz mein ban wenn ich jemanden banne zeigt er den grund nicht mehr an,und setzt er die variabel
    Gebannt (bei allen spielern auf 1) obwohl er nur die ID die ich angebe bannen soll und dort die variabel auf 1 setzen schaut mal selber
    (Ich benutze den Sscanf code) nicht das plugin


    dcmd_ban(playerid,params[])
    {
    new ID,grund[128];
    new sname[MAX_PLAYER_NAME];
    new string[128],name[MAX_PLAYER_NAME];
    if(PlayerInfo[playerid][Admin] >= 1)
    {
    if(sscanf(params,"us",ID,grund))
    {
    SendClientMessage(playerid,Rot,"Benutze /ban [playerid][grund]");
    return 1;
    }
    if(!IsPlayerConnected(ID))
    {
    SendClientMessage(playerid,Rot,"Angegebene ID ist nicht online!");
    return 1;
    }
    PlayerInfo[ID][Gebannt] = 1;
    GetPlayerName(ID,sname,sizeof(sname));
    GetPlayerName(playerid,name,sizeof(name));
    format(string, sizeof(string), "%s wurde von %s gebannt.",sname,name,grund);
    SendClientMessageToAll(Gelb,string);
    Ban(ID);
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist kein Admin!");
    }
    return 1;
    }

  • Hey,


    Zitat

    jetz mein ban wenn ich jemanden banne zeigt er den grund nicht mehr an


    Wie denn auch, wenn der String wie folgt erstellt wird:
    format(string, sizeof(string), "%s wurde von %s gebannt.",sname,name,grund);
    Da fehlt noch ein Platzhalter.


    Grüße,
    tony

  • Vielleicht solltest du den Grund auch anzeigen lassen...


    dcmd_ban(playerid,params[])
    {
    new ID,grund[128];
    new sname[MAX_PLAYER_NAME];
    new string[128],name[MAX_PLAYER_NAME];
    if(PlayerInfo[playerid][Admin] >= 1)
    {
    if(sscanf(params,"us",ID,grund))
    {
    SendClientMessage(playerid,Rot,"Benutze /ban [playerid][grund]");
    return 1;
    }
    if(!IsPlayerConnected(ID))
    {
    SendClientMessage(playerid,Rot,"Angegebene ID ist nicht online!");
    return 1;
    }
    PlayerInfo[ID][Gebannt] = 1;
    GetPlayerName(ID,sname,sizeof(sname));
    GetPlayerName(playerid,name,sizeof(name));
    format(string, sizeof(string), "%s wurde von %s gebannt. Grund: %s",sname,name,grund);
    SendClientMessageToAll(Gelb,string);
    Ban(ID);
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist kein Admin!");
    }
    return 1;
    }


  • Zeile habe ich mit "<<<<<<<" makiert du hast nur zwei Variablen für die Texte ( derzeit Name des gebannten & admin ? ) Fehlt halt einmal %s noch für den Grund bzw davor i-wo den Namen einsetzen. Hoffe ich habe das einiger maßen gut erklärt. ( kann mich beim Scripten garnicht ausdrücken )


    MfG

  • Ok Danke euch ich denke es klappt jetzt habe aber noch eine 2te frage und zwar
    ich habe unter OnPlayerConnect ein paar nachrichten und ein paar Mapicons doch es dauert immer so 5 sekunden bis der
    Login / Register Dialog erscheint war vorher nicht so woran könnte das liegen?

  • Hast du dir meinen Code mal angekukt ?


    Da hab ichs doch berichtigt...