Wie kann man Einstellen, das alle Spieler die Level 1 sind nicht gekillt werden können?

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
  • Mach das mit OnPlayerTakeDamage.


    also z.B


    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) // Parameter setzen
    {
    if[pInfo][level]==1
    {
    SetPlayerHealth(playerid, 100);
    }
    return 1;
    }



    War jetzt nix richtiges, war halt nur son "hingeklatsches Beispiel mitm Handy.

  • Beitrag von VAM ()

    Dieser Beitrag wurde von seegras aus folgendem Grund gelöscht: Grundsätzlich hast du vollkommen Recht, jedoch ist es an dieser Stelle in diesem Thema komplett irrelevant ().
  • Danke erstmal, bekomme aber die error Meldungen.


    error 001: expected token: ";", but found "forward"
    : error 028: invalid subscript (not an array or too many subscripts): "pInfo"
    : error 001: expected token: ";", but found "]"
    : error 010: invalid function or declaration
    : error 021: symbol already defined: "M_SetPlayerHealth"
    : error 010: invalid function or declaration
    : warning 203: symbol is never used: "Leben"

  • nutze nicht OnPlayerUpdate!
    Das frisst nur ressourcen, nutze stattdessen einen Timer ;)
    Aber es gibt hier bereits nen Beitrag über OnPlayerUpdate.

  • Versuch das mal so, hab den Code von VAM etwas überarbeitet:


    Code
    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) 
    {
              if(PlayerInfo[playerid][pLevel] ==  1)
              {
                  SetPlayerHealth(playerid, 100);
              }
    return 1;
    }


    Versuche das mal so einzusetzten.


    Beachte, ich weiß nicht wie dein Spieler Enum aussieht, da müsstest du eventuell bei diesem Code halt ändern sonst sollte das so funktionieren.


    Wenn nicht dann ersetzte playerid zu issureid.
    Aber dieses Callback ist schon richtig.



    Hier aber mal der Wiki eintrag zum nachlesen ;)
    ( klicke hier )


    //edit:
    wegen dem Link formatiere ich es morgen wenn ich am Pc bin, sry ist mobil bisschen schwer :D


    - Handy -

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Code
    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) 
    {
              if(pInfo[playerid][pLevel] == 1)
              {
    	      new Float:leben;
                  GetPlayerHealth(playerid,leben);
                  SetPlayerHealth(playerid, leben);
              }
              return 1;
    }

    Eventuell +1 noch einfügen ^^


    Also



    Code
    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) 
    {
              if(pInfo[playerid][pLevel] == 1)
              {
    	      new Float:leben;
                  GetPlayerHealth(playerid,leben);
                  SetPlayerHealth(playerid, leben+1);
              }
              return 1;
    }


    //edt
    mit fällt gerade auf, dass man ja auch mit Waffen Schaden bekommen kann :D
    Daher bringt +1 keinen Sinn :D

    Einmal editiert, zuletzt von N1co ()

  • Habe das so eingetragen:
    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
    {
    if(PlayerInfo[playerid][pLevel] == 1)
    {
    SetPlayerHealth(playerid, 100);
    }
    return 1;
    }


    Ich bekomme aber einen Error in der Zeile von Public
    Error: function heading differs from prototype
    Muss ich irgendwo noch was eintragen? Irgendwas bei new oder so?

  • Beitrag von VAM ()

    Dieser Beitrag wurde von shoxinat0r aus folgendem Grund gelöscht: Spam ().
  • Namo,
    du musst doch die Parameter richtig eintragen.


    Bitte lern doch einfach mal die Grundlagen von PAWN, sonst kommst du NIE weiter.


    Außerdem ist dieses Feature sowas von sinnlos.
    Dann kann man ja mit Level 1 jeden Level 2er schlagen / töten, und kann nicht mal von Cops festgenommen werden / erschossen.

    Doch kannst du in dem du Abfragst ob du jemanden angreifst etc. und ob der angreifer cop ist etc xD

  • Doch kannst du in dem du Abfragst ob du jemanden angreifst etc. und ob der angreifer cop ist etc xD

    Die Funktion selber ist sinnlos. Man muss nicht unnötige Abfragen machen.
    Geht nicht darum ob es nur Cop ist, es gibt auch andere Fraktionen ( Gangs etc ).

  • Erstens ist das schon mal das falsche public gewesen, da wenn der Spieler von einer Brücke springt würde er kein Leben verlieren.
    Allerdings soll der Spieler kein Leben verlieren wenn er durch einen anderen Spieler verletzt wird, oder?



    So sollte es funktionieren, allerdings muss die eine Variable wahrscheinlich geändert werden.