Problem mit /mute und /muteinfo

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,



    Ich habe eine frage wen ich mich jetzt für eine Minute mute,
    zeigt er mir unter /muteinfo 0 Minuten an.


    Mute ich mich 2 Minuten zeigt er mir unter /muteinfo 1 Minute an warum?

  • 1min -> 60 Sekunden.
    Wenn du dich nur eine Minute lang mutest, und der Timer in der selben Sekunde einwirkt, hast du einen Mute von 59 Sekunden -> 59/60 gleich 0 in PAWN.


    Goldkiller hat hier mal eine Funktion namens "ConvertSecEx" gepostet.
    Damit könntest du die Zeit umformatieren. :)

  • Hi,
    du musst mit Modulo arbeiten (Teilen mit Rest).
    Wenn du den Spieler 1 Minute mutest und nach 3 Sekunden abfragst wie viele Minuten er noch gemutet ist kommt klar 0 raus, da 57/60 = 0 ist, da nur ganze Zahlen als Ergebnis rauskommen.
    Wenn du den Rest willst, also die Sekunden musst du Modulo benutzen, das %-Zeichen.
    Somit wäre 57%60 = 57
    Wenn du noch die Sekunden anzeigen willst geht das so.


    Code
    format(string, sizeof(string), "{00C0FF}%s  -  %d Minuten  und %i Sekunden", GetName(i),(PlayerInfo[i][pMuted]/60), PlayerInfo[i][pMuted] % 60);

    Der Output wäre dann mit dem Zahlenbeispiel:


    0 Minuten und 57 Sekunden.

  • Danke,




    Habe noch eine frage wen ich undercover bin mit irgend ein skin und dann nochmal undercover gehe sollte ich eigentlich den normalen skin wieder bekommen warum geht das nicht?

  • Da deine Funktion nur checkt, ob der Spieler Cop ist, solltest du das Ganze so gestalten.

    Die Felder "IsUndercover" und "FSkin" musst du jeweils noch in deinem Playerenum anlegen.
    Schlauer wäre es natürlich den Fraktionsskin (FSkin) schon beim Login des Players aus der Datenbank etc. zu holen.