Private Message erlauben bzw deaktivieren

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
  • Hei ich habe ein großes Problem mit einer Funktion. Es handelt sich um einen private Chat aktivieren bzw deaktivieren.
    Also man sollte mit dem Befehl /allowpm die anderen User erlauben können das sie mit dir mit dem Befehl /pm Chaten können. Dieser Befehl sollte aber auch zum deaktivieren gehen
    Habe es so gemacht aber das funktioniert iergendwie nicht.....:( Es ist egal ob es aktiviert ist oder nicht ich bekomm immer ne Nachricht und das sollte aber nicht sein :(


    Hier mein Script:



    ganz oben unter den includes:
    new pm[MAX_PLAYERS];


    und das mittem im Script:
    ocmd:pm(playerid,params[])
    {
    new pID, text, string[300], string2[300];
    if(sscanf(params,"us",pID,text))return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /pm [Spieler][Text]");
    if(pm[pID] == 0)
    {
    format(string,sizeof(string),"*Du hast dem Spieler %s einen Persönliche Nachricht gesendet!*",SpielerName(pID));
    format(string2,sizeof(string2),"*PM von %s: %s*",SpielerName(playerid),text);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,COLOR_WHITE,string2);
    }
    else if(pm[pID] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Der Spieler hat den PM Chat deaktiviert!");
    }
    return 1;
    }
    das hab ich bei OnPlayerCommandText
    //=========================================================/allowpm!======================================================================
    if(strcmp("/allowpm",cmdtext,true, 10) == 0)
    {
    if(pm[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen PM Chat aktiviert!");
    pm[playerid] = 1;
    }
    else if(pm[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast deinen PM Chat deaktiviert!!");
    pm[playerid] = 0;
    }
    return 1;
    }



    Hoffe ihr könnt mir helfen 8) :P


    MfG

  • ocmd:pm(playerid,params[])
    {
    new pID, text[128], string[128]; // Maximale größe des SA-MP Chats 128 Zeichen
    // ausserdem brauchste keine 3 Strings
    if(sscanf(params,"us[128]",pID,text))return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /pm [Spieler][Text]");
    if(pm[pID] == 1) // wenn PM On ist
    {
    format(string,sizeof(string),"*Du hast dem Spieler %s einen Persönliche Nachricht gesendet!*",SpielerName(pID));
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string2,sizeof(string),"*PM von %s: %s*",SpielerName(playerid),text);
    SendClientMessage(pID,COLOR_WHITE,string); // hier hattest du playerid heißt die nachricht würder der Spieler niemals sehen
    }
    else if(pm[pID] == 0) // wenn PM off ist
    {
    SendClientMessage(playerid,COLOR_RED,"Der Spieler hat den PM Chat deaktiviert!");
    return 1;
    }
    return 1;
    }



    Why you should not use 256 or above


    Edit: das 2te:



    ocmd:allowpm(playerid,params[])
    {
    #pragma unused params
    if(pm[playerid] == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen PM Chat aktiviert!");
    pm[playerid] =1;
    }
    else if (pm[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen PM Chat Deaktiviert!");
    pm[playerid] =0;
    }
    return 1;
    }

  • Danke für die Hilfe :D. Funkt ;) ,aber ich musste einen 2 String machen, weil ja der Spieler der die Nachricht bekommt auch mit format gemacht werden muss


    format(string2,sizeof(string2),"Spieler %s: %s",SpielerName(playerid,text)
    SendClientMessage(pID,COLOR_WHITE,string2)

    und so funkt es auch ;)