SendClientMessage Spam

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 habe ein kleines Problem nach einem Timer der abläuft in dem Fall "suche" wird die Nachricht "Du hast deine Brieftasche gefunden" gespamt ich willl das sie nur einmal kommt ich hänge dort schon ein wenig wollt euch jetzt einfach mal um Rat bitten....


    Codeschnipsel


    Ja oben ist new killsuchtimer; ...

    - heftig abhängig von Karli Kugelblitz Choco Drinks

  • Schreib das so:


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == suche)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,247.0259,302.6663,999.1484))
    {
    new string[128];
    format(string, sizeof(string), "~g~%s sucht",PlayerName(playerid));
    GameTextForPlayer(playerid, string, 1000, 1);
    SetTimerEx("suchen",7000,false,"i",playerid);
    TogglePlayerControllable(playerid,0);
    return 1;
    }
    }
    return 1;
    }
    forward suchen(playerid);
    public suchen(playerid)
    {
    GameTextForPlayer(playerid, "~g~Gefunden", 1000, 1);
    SendClientMessage(playerid,WEISS,"Du hast deine Brieftasche gefunden!");
    TogglePlayerControllable(playerid,1);
    SetPlayerCheckpoint(playerid,243.7181,304.9580,999.1484,1);
    return 1;
    }


    und der Typ von dem Pickup sollte vom Typ 2 sein!


    mfg. :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Das liegt schlichtweg daran, dass OnPlayerPickUpPickup immer wieder aufgerufen wirst, während du im Pickup "eingefroren" bist.


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    static inSuche[MAX_PLAYERS];
    if(pickupid == suche && inSuche[playerid] + 12 < gettime()) //12 Sekunden gesperrt.
    {
    if(IsPlayerInRangeOfPoint(playerid,1,247.0259,302.6663,999.1484))
    {
    new string[128];
    format(string, sizeof(string), "~g~%s sucht",PlayerName(playerid));
    GameTextForPlayer(playerid, string, 1000, 1);
    SetTimerEx("suchen",7000,false,"i",playerid);
    TogglePlayerControllable(playerid,0);
    inSuche[playerid] = gettime();
    return 1;
    }
    }
    return 1;
    }



    forward suchen(playerid);
    public suchen(playerid)
    {
    GameTextForPlayer(playerid, "~g~Gefunden", 1000, 1);
    SendClientMessage(playerid,WEISS,"Du hast deine Brieftasche gefunden!");
    TogglePlayerControllable(playerid,1);
    SetPlayerCheckpoint(playerid,243.7181,304.9580,999.1484,1);
    return 1;
    }



    Enum:
    if(pickupid==suche{
    :pinch:
    Und das "forward" fehlt auch.

  • Das liegt schlichtweg daran, dass OnPlayerPickUpPickup immer wieder aufgerufen wirst, während du im Pickup "eingefroren" bist.


    Das kommt auf den Pickup Typen drauf an, wenn es Pickup Type 2 z.B. ist, verschwindet das Pickup und es dauert seine Zeit bis es respawnt.


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Das kommt auf den Pickup Typen drauf an, wenn es Pickup Type 2 z.B. ist, verschwindet das Pickup und es dauert seine Zeit bis es respawnt.


    Dessen bin ich mir bewusst, aber er hat gesagt, dass er dort schon ewig fest hängt und die Nachricht immer wieder kommt. Und da dein Code gar nicht ging (warum auch immer? sieht korrekt aus), soll er es eben so probieren.
    Cheers 8)