Problem mit Car heal etc.

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 ich habe ein Problem ich wollte scripten das wenn ein Auto ein Leben von unter 294 hat
    der Text erscheint der sagt das , das Auto kaputt ist.


    Aber wenn ich das Auto zerstöre kommt zwar die Nachricht aber sie spamt alles voll!



    if(IsPlayerInAnyVehicle(i))
    {
    new Float:health
    new vehicle = GetPlayerVehicleID(i);
    GetVehicleHealth(vehicle, health);
    if(health < 294)
    {
    SendClientMessage(i,COLOR_RED,"Dein Auto ist kaputt");
    return 1;
    }
    return 0;
    }


    Wie kann ich machen das die Nachricht nur einmal kommt?


    mfg. Chris

    Einmal editiert, zuletzt von iceblack ()

  • Baue folgendes ein:
    forward SendReset(playerid);
    new bool:SendMessage[MAX_PLAYERS]=false ;
    Die Abfrage if(health < 294) erweiterst du auf if(health<294 && SendMessage[i]==false) und setzt unter SendClientMessage den Bool auf true und startest den Timer SetTimerEx("SendReset", 3000, false, "i", playerid) und setzt bei der Funktion des Timeraufrufens den Bool des jeweiligen Spielers wieder auf False. So wird die Nachricht alle 3 Sekunden nur 1x angezeigt (andernfalls erweitere 3000 auf mehr).


    Mit freundlichen Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Er will es aber nur ein mal angezeigt bekommen


    probier es mal so :
    if(IsPlayerInAnyVehicle(i))
    {
    SetPVarInt(playerid,"Kaputt",0);
    new Float:health;
    new vehicle = GetPlayerVehicleID(i);
    GetVehicleHealth(vehicle, health);
    if(GetPVarInt(playerid,"Kaputt")==0)
    {
    if(health < 294)
    {
    SendClientMessage(i,COLOR_RED,"Dein Auto ist kaputt");
    SetPVarInt(playerid,"Kaputt",1);
    return 1;
    }
    }
    return 0;
    }

    hier das müsste gehen bei mir funktioniert das :)

    Einmal editiert, zuletzt von Megabyte ()

  • Wie auch immer das bei dir funktionert :D


    if(IsPlayerInAnyVehicle(i) && GetPVarInt(playerid,"Kaputt") == 0)
    {


    new Float:health;
    new vehicle = GetPlayerVehicleID(i);
    GetVehicleHealth(vehicle, health);
    if(health < 294)
    {
    SendClientMessage(i,COLOR_RED,"Dein Auto ist kaputt");
    SetPVarInt(playerid,"Kaputt",1);
    return 1;
    }
    return 0;
    }
    wenn überhaupt so

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski