Ist spieler level?

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 liebe brotfische ,
    ich bin auf der suche nach DINI Level ( Score ) abfrage die man dann benutzen könnte.


    Benutzung zmb



    IstSpielerLevel=<3
    {
    //Hier zmb wenn er lvl 3 ist bleibt es leer
    return 1;
    }
    else
    {
    //Hier wenn er kein lvl 3 ist kommt das
    SendClientMessage(playerid,ROT,"Du bist kein Level 3 und kannst deswegen keine waffen tragen!");
    //Hier der command für waffen weg
    return 1;
    }


    Die frage , wie ist denn der code dafür? und wo muss ich das dann einfügen?


    Danke schonmal für die Hilfsbereiten antworten ;)

  • Abfrage mit deinem stock:


    if(IstSpielerLevel(playerid,3))return SendClientMessage(playerid,-1,"Du bist kein Level 3 und kannst deswegen keine waffen tragen!"); 


    Pvar direkt abfragen:


    if(GetPVarInt(playerid,"Score") == 3)

  • Danke für deine schnelle antwort :D
    und wo soll das rein?



    //Edit noch dazu hinzugefügt


    so wo muss ich das genau einfügen? ;D
    2
    3
    4


    if(GetPlayerScore(playerid) <= 3)
    {
    //Wenn der Score <= 3 ist
    }
    ele
    {
    //Wenn er kein score 3 ist ist die waffe einfach weg
    }

  • Du könntest einen Timer bei OnGameModeInit jede Sekunde durchlaufen lassen, und im Callback dann:



    if(GetPlayerScore(playerid) >= 3)
    {
    //LEVEL 3 ODER HÖHER
    return 1;
    }
    else
    {
    UNTER LEVEL 3
    SendClientMessage(playerid,ROT,"Du bist kein Level 3 und kannst deswegen keine waffen tragen!");
    ResetPlayerWeapons(playerid);
    return 1;
    }

  • So:


    //Unter OnGameModeInit
    SetTimer("@No_Weapons", 1000, 1);


    //Irgendwo im Script (nur in keinem Callback)
    @No_Weapons();@No_Weapons() {
    for(new i; i<MAX_PLAYERS; i++) if(GetPlayerScore(i) <= 3 && IsPlayerConnected(i)) SendClientMessage(i,ROT,"Du bist kein Level 3 und kannst deswegen keine waffen tragen!"),ResetPlayerWeapons(i);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Oh stimmt ^^


    Dann einfach so:


    @No_Weapons();@No_Weapons() {
    for(new i; i<MAX_PLAYERS; i++) if(GetPlayerScore(i) <= 3 && IsPlayerConnected(i) && GetPlayerWeapon(i) != 0) ResetPlayerWeapons(i);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber, dieses '@' Zeichen im Timer hat dies eine bestimme Funktion aufzurufen?
    verstehe nämlich nicht warum du es mit einem '@' Zeichen davor machst und dann die publics @No_Weapons(); nennst ?


    weil ich mach das immer eigentlich so:


    forward verstehtest();
    SetTimer("verstehtest",1000,1);
    public verstehtest();
    {
    // Sachen machen
    return 1;
    }





    Grüße

  • Kaliber, dieses '@' Zeichen im Timer hat dies eine bestimme Funktion aufzurufen?


    Das @ Zeichen setzt einen Pointer, funktioniert eigentlich genauso wie forward und public ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Das @ Zeichen setzt einen Pointer, funktioniert eigentlich genauso wie forward und public ;)


    mfg. :thumbup:

    Achso, also verstehe ich das jetzt richtig?


    wenn ich es jetzt so machen würde:


    forward Timer1(); // Timer erstellt
    SetTimer("Timer1",1000,1); // Timer ausgeführt
    public Timer1(); // Hier wird der Timer abgerufen was passieren soll ..
    {
    // Inhalt
    }


    wäre es später ein normaler public.


    Würde ich es aber jetzt so machen:


    forward Timer2();
    SetTimer("@Timer2",1000,1);
    @Timer2();
    {
    // Inhalt
    }


    könnte ich den 'public' mit einem '@' Zeichen als public kennzeichnen oder wie?


  • Kaliber: ist das ressourcenschonender?


    Nein :D
    Im Prinzip macht es keinen Unterschied, bis auf die Zeilen Länge :)


    Finde das nur schöner als da immer forward und public hinzuschreiben...da setze ich lieber so den Pointer im Speicher :)


    mfg. ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S