befehl mit SendPlayerMessageToPlayer

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
  • hab da eine frage bin ein neuling im bereich scripten aber irgendwie finde ich nichts was mir helfen kann aber wie mache ich einen befehl das zb so funktioniert /perso [ID] und es zeigt dann den ein spieler alles und wie frage ich die daten ab


    Spieler daten enum


    Licenses:
    pAutoschein,
    pMotorradschein,
    pLKWschein,
    pBootschein,
    pFlugschein,


    Perso:
    pName
    pLevel
    pGeschlecht




    ocmd:licenses(playerid,params[])
    {
    SendPlayerMessageToPlayer(playerid, COLOR_ROT, "============= {"#COL_WEIS#"}Licenses{"#COL_ROT#"}=============");
    SendPlayerMessageToPlayer(playerid, COLOR_ROT, "============= {"#COL_WEIS#"}Licenses{"#COL_ROT#"}=============");
    return 1;
    }


    ocmd:perso(playerid,params[])
    {
    SendPlayerMessageToPlayer(playerid, COLOR_ROT, "============= {"#COL_WEIS#"}Perso{"#COL_ROT#"}=============");
    SendPlayerMessageToPlayer(playerid, COLOR_ROT, "============= {"#COL_WEIS#"}Perso{"#COL_ROT#"}=============");
    return 1;
    }



    Mit freundlichen Grüßen

  • Ich bin selber relativ neu beim scripten daher sorry wenn ich etwas falsches sage aber wenn ich das richtig sehe nutzt du


    SendPlayerMessageToPlayer


    falsch. Laut SA:MP Wiki musst du ihn so nutzen:


    SendPlayerMessageToPlayer(playerid, senderid, const message[])



    https://wiki.sa-mp.com/wiki/SendPlayerMessageToPlayer


    Ich würde es aber auch anders machen:


    ocmd:licenses(playerid,params[])
    {
    new pID,str[128]; //Die ID an den das dann geschickt werden soll und die man hinter /licenses eingeben muss
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR,"Befehl: /licenses [ID]"); //Abfrage ob der Spieler überhaupt eine ID angegeben hat
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR,"Fehler: Der Spieler ist nicht online!"); //Schauen ob der Spieler der angegeben wurde überhaupt online ist
    new name1[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name1,sizeof(name1)),GetPlayerName(playerid,name2,sizeof(name2)); //Wir speichern uns die Namen der beiden Spieler
    format(str,sizeof(str),"Du zeigst %s deine Licenses!",name1); //Bei "%s" wird dann der name1 angezeigt
    SendClientMessage(playerid,COLOR,str); //Hier senden wir der playerid den formatierten str
    format(str,sizeof(str),"============= Licenses von %s=============",name2); //Bei "%s" wird dann der name2 angezeigt
    SendClientMessage(pID,COLOR,"str);format(str,sizeof(str), "Autoführerschein: %", pAutoschein"); //Hier ist die Frage wie du das speicherst. Mehr dazu unten
    SendClientMessage(pID,COLOR,str);
    return 1;
    }


    1. Überall bei COLOR musst du natürlich deine Farben eintragen
    2. bei dem letzten format musst du schauen wie du das speicherst. Wenn du es als zahl speicherst und ausgeben willst musst du %i machen.
    Zudem musst du bei pAutoschein warscheinlich noch [playerid] oder so hinter machen je nach dem wie du es speicherst wiegesagt.
    3. Das letzte format und SendClient... musst du dann einfach kopieren und deine anderen Scheine eintragen


    Wie gesagt bin selber Anfänger aber vielleicht hilft dir das ein wenig.


    /edit Hab jetzt erst gesehen das er gebannt ist^^

  • [wiki]SendPlayerMessageToPlayer[/wiki] klappt doch? Es sendet eine Nachricht mit dem Namen von der Person die den Befehl eingeben hat.


    Beispiel:


    Ich gebe ein /perso 1
    Dann bekommt der Cop oder so die gewählt Nachricht z.B.


    m4a_X: Führerschein -> Ja



    [wiki]SendClientMessage[/wiki] Würde natürlich besser sein, dann sieht man den Namen nicht. ^^