Alle 3 Kills Level up?

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
  • Ersteinmal:


    Speicherst du seine Kills in einer Variable?


    Wenn nicht:


    new PlayerKills[MAX_PLAYERS];
    new LevelUpCount[MAX_PLAYERS];
    new Level[MAX_PLAYERS];


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(killerid != INVALID_PLAYER_ID)
    {
    PlayerKills[killerid]++;
    LevelUpCount[killerid]--;
    if(LevelUpCount[killerid] == 0)
    {
    SendClientMessage(killerid, 0x00FF14FF, "Level Up!");
    LevelUpCount[killerid] = 3;
    Level[killerid]++;
    }
    }
    }

  • Zum Beispiel so:


    Wenn schon ein enum vorhanden ist einfach die pKills eintrage.


    Code
    enum SpielerInfo
    {
         pKills,
    }
    new SpielerInfo[MAX_PLAYERS][pKills];


    Dann zu OnPlayerDeath:


    Code
    public OnPlayerDeath(playerid,killerid,reason)
    {
          SpielerInfo[killerid][pKills] ++;
          if(SpielerInfo[killerid][pKills] == 3}
          {
                 SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
                 SpielerInfo[killerid][pKills] = 0;
          }
          return 1:
    }


    //Edit Vorposter war schneller :/

  • oder man macht es noch einfacher, indem man mit Modulo arbeitet:



    public OnPlayerDeath(playerid, killerid, reason) {
    if(killerid != INVALID_PLAYER_ID) {
    SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
    if(GetPVarInt(killerid, "Kills") % 3 == 0) {
    SetPVarInt(killerid, "Level", GetPVarInt(killerid, "Level") + 1);
    // LEVEL UP!
    }
    }
    }



  • Ist ja ungefähr das selbe,
    Nur das man dann nichtmehr die Variable "Kills" auf 0 setzen muss :D