Killcounter oder i-was ähnliches ^^

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
  • Hallo zusammen,


    Habe wiedermal eine kleine Frage und zwar möchte ich für meinen kleinen DM-Server eine Art Kill-Counter machen für jeden Spieler.


    Das sollte etwa so aussehen:


    Nachdem man 10 Kills gemacht hat soll das PlayerScore um eins erhöht werden. Folglich ist man dann Level 2.


    Vllt. nach weiteren 25 Kills ist man dann Level 3. Und bei 50 weiteren Kills Level 4 und dann bei 100 weiteren Kills Level 5.




    Das alles möchte ich dann in der Spielerdatei (nach MrMonats-Tutorial) speichern. Also das Level hab ich schon als PlayerScore gemacht, dass ist nicht das Problem aber der hat ja auch seine eigenen Funktionen wie SetPlayerScore und GetPlayerScore aber wie mach ich jetzt meine eigenen Funktionen wie: SetPlayerKills und GetPlayerKills? Am besten noch GivePlayerKills oder so.


    Ich hoffe ihr könnt mir helfen, weil dann kann ich so für jedes Level sein eigenes Waffenmenü machen. ^^ Wie bei Call of Duty :D


    176.9.44.136:5555 <-- Das ist der Server, dann versteht ihr vllt. besser was ich meine wenn ihr es gleich seht. Bin dort auch erreichbar.

  • Mach doch einen neuen wert für den Spieler
    BSP:


    Kill = XBeliebigen wert +1 nehmen
    dann fragst du ab ob er 10 Kills hat und gibst den das Level 2
    nachdem du das Level gesetzt hast setzt du den killwert auf 0 Zurück und machst das ganze von Vorn

  • Das ist eigentlich das gröbste, musst halt bei Connect oder Disconnect auf 0 setzen bzw aus der Datei laden.
    Du könntest das ganze auch ohne die Funktionen machen (nur per Array) aber du wolltest ja Funktionen ;)

    new Kills[MAX_PLAYERS];


    stock SetPlayerKills(playerid, kills)
    {
    Kills[playerid] = kills;
    }


    stock GetPlayerKills(playerid)
    {
    return Kills[playerid];
    }


    stock GivePlayerKills(playerid, kills)
    {
    Kills[playerid]+=kills;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(killerid != INVALID_PLAYER_ID) {
    GivePlayerKills(killerid, 1);
    if(GetPlayerKills(killerid) == 10) {
    // Level 2 usw..
    }
    }
    return 1;
    }

  • Hey vielen dank! :D


    Was meinst du mit Array? Hab ich schonmal gehärt aber das check ich i-wie nicht xD


    Muss ich mal nachschlagen aber danke :D


    Damit sollte es gehen :D


    Noch was: Das MAX_PLAYERS hinter new Kills steht dafür, dass es für ALLE Spieler gilt oder?


    Und noch ne Frage: Wie kann ich abfragen ob der Spieler mindestens eine Waffe hat?

    Einmal editiert, zuletzt von Vegeta ()

  • Ein Arry ist eine Variable, die du einfach gesagt, öfters verwenden kannst und anstatt Kills1, Kills2, Kills3 etc einfach Kills[MAX_PLAYERS] machen kannst.


    MAX_PLAYERS steht im Normalfall für 500 (außer du hast es anderes definierst; 800-Slot-Version, usw). Das heißt, der Server erstellt 500 mal eine "Kills" Variable. Für jeden Spieler eine.
    Angefangen bei 0 - 500



    Zu den Waffen:


    (SA:MP Wiki)


    new weapons[13][2];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    }
    if(weapons[1][1] == 0 && weapons[2][1] == 0 &&
    weapons[3][1] == 0 &&
    weapons[4][1] == 0 &&
    weapons[5][1] == 0 &&
    weapons[6][1] == 0 &&
    weapons[7][1] == 0 &&
    weapons[8][1] == 0 &&
    weapons[9][1] == 0 &&
    weapons[10][1] == 0 &&
    weapons[11][1] == 0 &&
    weapons[12][1] == 0)






    {Hat garkeine Waffen (außer Schlagring, wenn das auch miteinbegriffen, füge " &&
    weapons[0][1] == 0" hinzu) }

    Berlin - Tel Aviv - Moskau