[Scriptwunsch]25kills Lvl up [Dm server]

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
  • also wäre es dann so?


    switch(GetPVarInt(playerid,"EXP"))
    {
    case 25:{}
    case 50:{}
    }

  • Also ich habe 2 (Variabeln)



    stock HavePlayerAnKills(playerid,points)
    {
    if(GetPVarInt(playerid,"Kills")>=points) return 1;
    return 0;
    }


    stock HavePlayerAnEXP(playerid,exp)
    {
    if(GetPVarInt(playerid,"EXP")>=exp) return 1;
    return 0;
    }


    Dazu kommt das ich möchte das man EXP pro Kill bekommt,
    dass kan ich ja auch mti switch & case machen und dann ab einer bestimmten Menge EXP auch ein LEvel bekommt.
    Ich werde dies jetzt mal aus probrieren danke.


  • naja das ist etwas umständlich mach es am besten so das der spieler beim Kill auch die EXP bekommt.
    Dann arbeitest du hier am besten mit OnPlayerDeath und lässt halt wie gesagt den wert der killerid erhöhen da dies der Spieler ist welcher die playerid
    also den Spieler tötet und für den die Funktion ausgerufen wird.
    die kills kannst du ja so erhöhen jedoch denke ich das dir das klar ist


    SetPVarInt(playerid, "Kills", GetPVarInt(playerid, "Kills")++);


    und dabei kannst du auch die EXPs dazu addieren.


    weil sowas wie oben genannt wäre dann nur sinnvoll wenn du auch bei einer bestimmten anzahl was verändert hinzufügen willst bei spiel je mehr exp desto
    mehr geld oder je mehr kills desto mehr exp.

  • Habe 2 switch & case gemacht.


    OnPlayerDeath



    switch(GetPVarInt(killerid,"Kills"))
    {
    case 25:{}
    case 50:{}
    case 100:{}
    case 250:{}
    case 500:{}
    case 1000:{}
    case 2500:{}
    case 5000:{}
    case 10000:{}
    }


    OnPlayerConnect



    switch(GetPVarInt(playerid,"EXP"))
    {
    case 50:{SetPlayerScore(playerid,1);}
    case 100:{}
    case 250:{}
    case 500:{}
    case 1000:{}
    case 2000:{}
    case 4000:{}
    case 8000:{}
    case 16000:{}
    case 32000:{}
    case 64000:{}
    case 128000:{}

    }

  • also ich würde es so machen:



    new i = 1; kills = GetPVarInt(playerid,"Kills");
    while ( kills >= (25 * i) ) { i++; }
    SetPlayerScore(playerid,i); // i ist in dem fall das Level.

    Das funktioniert und das machst du einfach unter OnPlayerDeath sobald der Killer ein Punkt bekommt.


    // E: PS: Ich bin jetzt nicht sicher ob die Abfrage in der while Schleife jetzt wirklich richtig ist oder anders rum muss...
    // E2: Script nochmal besser gestaltet ;)