Warum funktioniert das nicht?

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
  • Guten Tag,
    Es wird einfach nicht abgefragt ob ich weniger als 80 HP habe, warum?


    if(listitem == 0)
    {
    new Float:Heal;
    if(SpielerInfo[playerid][pBestellung] == 0)
    {
    if(GetPlayerHealth(playerid,Heal) <= 80)
    {
    SetPlayerHealth(playerid,Heal+20);
    GivePlayerMoney(playerid,-10);
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du hast kein Hunger mehr!");
    return 1;
    }
    }
    else if(SpielerInfo[playerid][pBestellung] == 1)
    {
    if(GetPlayerHealth(playerid,Heal) <= 90)
    {
    SetPlayerHealth(playerid,Heal+10);
    GivePlayerMoney(playerid,-6);
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du hast kein Hunger mehr!");
    return 1;
    }
    }


    Bitte um eure Hilfe!


    Mit freundlichen Grüßen
    Xtreme

  • Ja, aber GetPlayerHealth gibt nicht das Leben des Spielers zurück, sondern speichert is in der Variable "Health".
    Du musst diese prüfen, nicht den Rückgabewert der Funktion.


    if(listitem == 0)
    {
    new Float:Heal;
    if(SpielerInfo[playerid][pBestellung] == 0)
    {
    if(GetPlayerHealth(playerid,Heal))
    {
    if(Heal <= 80)
    SetPlayerHealth(playerid,Heal+20);
    GivePlayerMoney(playerid,-10);
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du hast kein Hunger mehr!");
    return 1;
    }
    }
    else if(SpielerInfo[playerid][pBestellung] == 1)
    {
    if(GetPlayerHealth(playerid,Heal) <= 90)
    {
    SetPlayerHealth(playerid,Heal+10);
    GivePlayerMoney(playerid,-6);
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du hast kein Hunger mehr!");
    return 1;
    }
    }


    so?


  • Nope funktioniert nicht!



    if(listitem == 0)
    {
    new Float:Heal;
    GetPlayerHealth(playerid,Heal);
    if(SpielerInfo[playerid][pBestellung] == 0)
    {
    if(Heal <= 80.0)
    {
    SetPlayerHealth(playerid,Heal+20);
    GivePlayerMoney(playerid,-10);
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du hast kein Hunger mehr!");
    return 1;
    }
    }
    else if(SpielerInfo[playerid][pBestellung] == 1)
    {
    if(Heal <= 90.0)
    {
    SetPlayerHealth(playerid,Heal+10);
    GivePlayerMoney(playerid,-6);
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du hast kein Hunger mehr!");
    return 1;
    }
    }
    }

  • Dann stimmt etwas Anderes nicht. Daran liegt es jedenfalls in deinem Code nicht (mehr).
    Versuch mit Debug-Nachrichten raus zu finden, wo das Problem liegt.


    Hey, das hat jetzt zwar funktioniert jedoch wird jetzt kein HP gesetzt!



    if(listitem == 0)
    {
    new Float:Heal;
    GetPlayerHealth(playerid,Heal);
    if(SpielerInfo[playerid][pBestellung] == 0)
    {
    SetPlayerHealth(playerid,Heal+20);
    GivePlayerMoney(playerid,-10);
    }
    else if(SpielerInfo[playerid][pBestellung] == 1)
    {
    SetPlayerHealth(playerid,Heal+10);
    GivePlayerMoney(playerid,-6);
    }
    else if(SpielerInfo[playerid][pBestellung] == 2)
    {
    SetPlayerHealth(playerid,Heal+8);
    GivePlayerMoney(playerid,-3);
    }
    else if(SpielerInfo[playerid][pBestellung] == 3)
    {
    SetPlayerHealth(playerid,Heal+25);
    GivePlayerMoney(playerid,-20);
    }
    else if(SpielerInfo[playerid][pBestellung] == 4)
    {
    SetPlayerHealth(playerid,Heal+15);
    GivePlayerMoney(playerid,-15);
    }
    }