Lebenspunkte / HP nabfragen

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?


    Wie kann ich die hp abfragen?
    also wenn der spieler 100 hp hat ist alles in ordnung, aber wenn er weniger als 100 hat soll etwas passieren. damit etwas passiert muss ich die hp abfragen um rauszubekommen ob er weniger als 100 hat. was dann passieren soll kann ich selber =)


    bedanke mich schon mal


    mfg

  • public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health <= 100)
    {
    // was passierren soll


    return 1;
    }


    versuchs mal ich weiß nicht obs klappt

  • CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,9999999999);
    SetPlayerArmour(playerid,9999999999);
    if(GetPlayerHealth(playerid) < 9999999999) //die zeile wo warning auftritt
    {
    SetPlayerHealth(playerid,9999999999);
    }
    }
    }


    das CMD und alles ist richtig definiert


    C:\Users\Simon Siggelkow\Desktop\Pawno\filterscripts\gAdmin.pwn(5862) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

  • Bei forwards :
    forward timer(playerid);
    dann bei OnGameModeinit
    SetTimer("timer",150000,1);
    dann nach ganz unten
    public timer(playerid)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health == 70)
    {
    }
    return 1;
    }


    EDIT
    bei deinem Duty befehl ist dass hier Falsch es geht nur bis 100 ;)


    CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    if(GetPlayerArmour(playerid) < 100)
    {
    SetPlayerArmour(playerid,100);
    }
    }
    }

  • watt will ich den mit timer?!


    ich will einfach nur wenn ein Admin OnDuty ist, das der net geötetet werden kann!
    sobald der duty eingiebt, wird die farbe dunkel rot, sein leben und rückstung auf 9999999999. und sobald das leben unter 9999999999 geht soll es wieder auf 9999999999 gemacht werden (SetPlayerHealth....). ich muss aber dazu abfragen ob der unter ist: if(GetPlayerHealth(playerid) < 9999999) { das klappt aber net weil da was fehlt.
    und nun muss ich wissen was da fehlt.


    //edit: @ SiriiuzZ dat hatte ich vorher auch nur mit 9999999999 leben und armor


    //edit: kla geht es weiter ^^


    CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    if(GetPlayerArmour(playerid) < 100)
    {
    SetPlayerArmour(playerid,100);
    }
    }
    }
    und es geht immer noch net

  • !!Lesen hilft Lösen!!


    nochmaL: ich möchte einen admin der on duty ist unverwundbar machen, deswegen auch soviel leben und armor. man kann nun mit der minigun draufballern bis 0 hp, deswegen soll life immer wieder gefüllt werden sobald es weniger wird.


    //edit: Lesen hilft Lösen²^^


    mein error:


    C:\Users\Simon Siggelkow\Desktop\Pawno\filterscripts\gAdmin.pwn(5862) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    da steht nicht "should turn a value"

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • hab ich^^
    scroll mal hoch ^^


    nochmal:


    CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    if(GetPlayerArmour(playerid) < 100) // HIER KOMMT EIN WARN
    {
    SetPlayerArmour(playerid,100);
    }
    }
    }


    C:\Users\Simon Siggelkow\Desktop\Pawno\filterscripts\gAdmin.pwn(5862) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    //edit: kann man nicht abfragen wieviel leben der hat? und sobald der unter xy leben hat wird das leben auf xy mit SetPlayerHealth gesetzt

  • Wollt ihr nicht verstehen,dass die Funktion GetPlayerHealth eine Andere Syntax hat ?
    Kein Wunder das ihr immer Warnings bekommt.
    // Sets players health to 50 if it was lower than
    // 50 before, as soon as he typed /doctor

    if(strcmp(cmdtext, "/doctor", true) == 0)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if (health < 50.0)
    {
    SetPlayerHealth(playerid, 50.0);
    }
    return 1;
    }
    Das Gleiche gilt auch für GetPlayerAmor(),da wird ebenfalls ein 2 Parameter benötigt.


    >> GetPlayerHealth
    >> GetPlayerArmour



    CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    new //
    Float:fArmour; //
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    GetPlayerArmour(playerid,fArmour); //
    if(fArmour < 100) //
    {
    SetPlayerArmour(playerid,100);
    }
    }
    }

  • endlich danke =)
    so wollte ich das haben ^^
    ich sagte doch man braucht kein timer ich wusste bloß net wie man die Abfrage macht. und nun weiß ich es^^
    danke


    //edit:


    ich habe nun:


    CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    new Float:arm;
    new Float:hp;
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    GetPlayerArmour(playerid,arm);
    GetPlayerHealth(playerid,hp);
    if(arm < 100)
    {
    SetPlayerArmour(playerid,100);
    }
    if(hp < 100)
    {
    SetPlayerHealth(playerid,100);
    }
    }
    }


    habe es getestet aber irgentwie füllt sich das leben/armor net ^^

    2 Mal editiert, zuletzt von Simon ()

  • CMD:duty(playerid,params[] )
    {
    if(PlayerInfo[playerid][AdminLevel]>=2)
    {
    new Float:arm;
    new Float:hp;
    SetPlayerColor(playerid,0x950000FF);
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SendClientMessageToAll(0x800000FF," Ein Admin ist nun on Duty!!! ");
    SendClientMessageToAll(0x800000FF,"__________________________________");
    SetPlayerHealth(playerid,100.0);
    SetPlayerArmour(playerid,100.0);
    GetPlayerArmour(playerid,arm);
    GetPlayerHealth(playerid,hp);
    if(arm <= 99.9)
    {
    SetPlayerArmour(playerid,100.0);
    }
    if(hp <= 99.9)
    {
    SetPlayerHealth(playerid,100.0);
    }
    }
    }


    klappt net ^^ also ich bekomme 100 hp und armor und meine farbe ist rot. aber sobald ich life verliere wird sie net aufgefült


    //edit: hab den fehler aber net die lösuung ^^


    fehler: das passiert nur wenn ich /duty mache ^^ also brauche ich verscheinlich doch nen timer der alle 3 sekunden abfragt wieviel life ich habe.

    Einmal editiert, zuletzt von Simon ()