[Fehler]Bachicht bei wenig Leben

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 wollte das wen man nur noch unter 20 leben hat eine meldung kommt.
    Aber irgendwie geht es nich -.- endweder spammt die meldung durch den timer oder komt gar net ...
    In diesem falle kommt sie gar nicht:
    public heelthtimer()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health > 20.0)
    {
    StopNachicht=0;
    }
    if(StopNachicht==0)
    {
    if(health < 20.0)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht=1;
    }
    }
    }
    return 1;
    }
    weiß einer wieso und wie ich es machen kan das die meldung nur einmal kommt ??


    mfg bad_company

  • public heelthtimer(){
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health > 20.0)
    {
    if(StopNachicht==0)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht=1;
    }
    }
    }
    return 1;
    }

  • public heelthtimer(){
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health > 20.0)
    {
    if(StopNachicht==0)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht=1;
    }
    }
    else
    {
    StopNachicht=0;
    }
    }
    return 1;
    }

    public heelthtimer()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health < 20.0)
    {
    StopNachicht++;
    if(Stopnachricht==1)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    }
    if(StopNachricht==1000*60)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht=0;
    }
    }
    else


    {
    StopNachicht=0;
    }
    }
    }
    return 1;
    }
    have fun

    I'm Sorry For Your Mistake!
    but it's yours

  • @Süle


    Bescheuerte Codeschnipsel!


    new PlayerHealthTimer;
    new WenigHealth;


    OnGameModeInit:


    PlayerHealthTimer = SetTimer("CheckHealth",4000,1);


    OnPlayerDeath:


    KillTimer(PlayerHealthTimer);
    WenigHealth = 0;


    forward CheckHealth();
    public CheckHealth()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:HP;
    GetPlayerHealth(i,HP);
    if(HP < 30)
    {
    if(WenigHealth == 0)
    {
    SendClientMessage(i,Deine_Farbe,"Dein Text");
    WenigHealth = 1;
    }
    }
    }
    return 1;
    }


    So sollte es eigentlich funktionieren!
    Hoffe ich konnte helfen.
    Lg
    Hardcore

  • Öhm, FaiL?
    Euch ist klar das ihr so ne Lokale Variable setzt?


    Das heist sobald ein Spieler unter 20HP hat wird ne Message gesendet, aber das passiert nur 1x^^


    Ganz oben:
    new StopNachicht[MAX_PLAYERS];
    public heelthtimer()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health > 20.0)
    {
    StopNachicht[playerid]=0;
    }
    if(StopNachicht[playerid]==0)
    {
    if(health < 20.0)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht[playerid]=1;
    }
    }
    }
    return 1;
    }


    Ungetestet.
    MfG Firer


    //EDIT:
    Bei "OnPlayerDeath" noch
    StopNachicht[playerid]=0;

    Einmal editiert, zuletzt von Firerfan ()