Frage wegen SendClientMessage

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
  • hi,
    also ich möchte das statt ein GameTextForPlayer ein SendClientMessage kommt... so nun meine frage


    else if(PlayerToPoint(3, i,-1416.7494,-292.8873,14.1484))
    {
    SendClientMessage(i, COLOR_GREY, "Benutze hier /reisen um einen Flug zu buchen");
    }


    es kommt aber immer und immer wieder :( wie kann ich das machen das es nur einmal erscheint?

  • //Ganz oben ins Script unter den defines
    new NachrichtGesendet[MAX_PLAYERS];
    //Unter OnPlayerConenct UND Disconnect
    NachrichtGesendet[playerid] = 0;
    //
    else if(PlayerToPoint(3, i,-1416.7494,-292.8873,14.1484))
    {
    if(NachrichtGesendet[i] == 0)
    {
    SendClientMessage(i, COLOR_GREY, "Benutze hier /reisen um einen Flug zu buchen");
    NachrichtGesendet[i] = 1;
    }
    else if(NachrichtGesendet[i] == 1)
    {
    //passiert nix
    }
    }


  • Du nimmst einfach einen Parameter und gibst ihn einen Wert, der in der if-Schleífe berücksichtigt wird.
    Das sieht dann so aus...



    new ptpscm[MAX_PLAYERS]; /*Das ist deine Definition du kannst sie nennen wie du lustig bist, der Parameter ist damit eine richtige Zuordnung stattfinden kann da*/


    else if(PlayerToPoint(3, i,-1416.7494,-292.8873,14.1484) && ptpscm[i] == 0)
    {
    SendClientMessage(i, COLOR_GREY, "Benutze hier /reisen um einen Flug zu buchen");
    ptpscm[i]=1;
    }


    Nun darfst du nicht vergessen ptpscm wieder auf 0 zu setzen damit es nach einer Zeit wieder Nachrichten an deinem Punkt geben kann.
    Entweder du suchst dir einen Timer, ich würde sagen mit 50000 Interval oder du baust dir ein public dafür...


    public SetParameterBackToZero()
    {
    for(new p = 0; p < sizeof(ptpscm); p++)
    {
    ptpscm[p]=1;
    }
    return 1;
    }

    [align=center]
    Mta Script Editor - Work in Progress

  • danke euch beiden :)
    ich werde es probieren


    Edit:
    irgendwie geht beides nicht...beim ersten kommen zwar keine errors aber es kommt auch kein text:(
    beim zweiten kommen errors:(


    error 029: invalid expression, assumed zero
    error 029: invalid expression, assumed zero
    error 001: expected token: ";", but found "]"
    fatal error 107: too many error messages on one line


    kein plan woran es liegt :(

    Einmal editiert, zuletzt von Kruegii ()

  • error 001: expected token: ";", but found "]"


    Hier wurde warscheinlich der Text nicht getextet^^. Also einfach so ersetzen:


    SendClientMessae(playerid, 0xAAAAAAAAA, "Das was du eingeben willst");