PlayerToPoint

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
  • Habe ein klitzekleines problem, und zwar habe ich diese ptp funktion erstellt aber wenn jemand an den besagten Punkt geht wird der chat mit den client messages zugespammt. Kann man es irgendwie ändern das diese, in dem Fall 7 messages nur einmal angezeigt werden wenn der spieler den punkt betritt ?



    if(IsPlayerConnected(playerid)) //
    {
    if(PlayerToPoint(2.0,playerid,308.4610,-141.1845,999.6016))
    {
    SendClientMessage(playerid,COLOR_WEISS,"**********Beispiel**********");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"111");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"222 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"333 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"444 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"555 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"666");
    return 1;
    }}



    Danke schonmal im vorraus :)



    Mit freundlichen Grüßen


    Traxter

  • if(IsPlayerConnected(playerid)) //
    {
    if(PlayerToPoint(2.0,playerid,308.4610,-141.1845,999.6016))
    {
    SendClientMessage(playerid,COLOR_WEISS,"**********Beispiel**********");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"111");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"222 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"333 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"444 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"555 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"666");
    }
    return 1;
    }


    Vllt. so..Keine ahnung aub das so richtig ist..Vllt ist das auch nur Sinlos :D

  • Oben ins Script:
    new TextGesendet[MAX_PLAYERS];
    Bei OnPlayerConnect:
    public OnPlayerConnect(playerid)
    {
    TextGesendet[playerid] = 0;
    if(IsPlayerConnected(playerid)) //
    {
    if(PlayerToPoint(2.0,playerid,308.4610,-141.1845,999.6016))
    {
    if(TextGesendet[playerid] == 0)
    {
    SendClientMessage(playerid,COLOR_WEISS,"**********Beispiel**********");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"111");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"222 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"333 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"444 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"555 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"666");
    TextGesendet[playerid] = 1;
    return 1;
    }
    }
    }

  • OnGameModeInit :
    SetTimer(Message,1000,1);


    public Message() {
    for(new i = 0;i<MAX_PLAYERS;i++) {
    if(PlayerToPoint(2.0,playerid,308.4610,-141.1845,999.6016)) {
    SendClientMessage(playerid,COLOR_WEISS,"**********Beispiel**********");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"111");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"222 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"333 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"444 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"555 ");
    SendClientMessage(playerid,COLOR_HELLGRUEN,"666");
    }
    }

  • Öh Tuner,lieste eigentlich was er will?


    Zitat

    wenn jemand an den besagten Punkt geht wird der chat mit den client messages zugespammt. Kann man es irgendwie ändern das diese, in dem Fall 7 messages nur einmal angezeigt werden wenn der spieler den punkt betritt ?


    Was du da gemacht hast ist nicht wirklich die Lösung :rolleyes: Erst Lesen,dann Posten...

  • omg einfach den timer auf 999999 machen und fertig es kommt nur 1 x -.-

  • tuner aber bei deiner funktion kommt der text ja erst nach dem server restart wieder also würde ich das noch einfügen


    unter Message



    SetTimer("back",20000,1);//nach 20 sekundne



    forward back(playerid)
    public back(playerid)
    {
    TextGesendet[playerid] = 0;
    return 1;
    }

    RFT

  • lol ich habs so bei mir gemacht : 9999999 und wenn ich bei den punkt geh kommt des 1 mal ohne warten

  • Habe jetzt die Lösung von Benjamin genommen, schien mir am einfachsten und klappt super :)


    Allerdings muss ein spieler erst reconnecten wenn er an dem Punkt die messages nochmal sehen will. Da der Punkt in einem Interior ist werde ich am interior ausgang einfach TextGesendet[playerid] = 0; einbauen sodass der Wert dann wieder auf 0 gesetzt wird und der user beim nächsten betreten des raumes bzw des Punktes die Messages wieder sehen kann.



    Vielen dank :)