Mute klappt nicht

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
  • Guten Tag, wenn ich mich selbst Mute dann kann ich nichts Schreiben und wenn ich in die Datenbank gucke steht da "mute" == 1 also ich bin noch gemutet, aber wenn ich Ingame gehe kann ich trotzdem noch Schreiben?

    ocmd:mute(playerid,params[])
    {
    new pID;
    new string[528];
    new grund[64];
    if(IsPlayerConnected(pID))
    {
    if(sInfo[playerid][alevel] < 2)return SendClientMessage(playerid,GRAU,"Du bist nicht befugt!");
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,GRAU,"Verwendung: /mute [PlayerID][Grund]");
    if(sInfo[playerid][alevel] < sInfo[pID][alevel])
    {
    return SendClientMessage(playerid,ORANGE,"Du kannst keinen Admin muten, der einen höheren Rang als du besitzt!");
    }
    format(string,sizeof(string),"%s wurde von %s gemutet! Grund: %s",GetName(playerid),GetName(pID),grund);
    for(new i=0; i<MAX_PLAYERS; i++) if(sInfo[i][alevel] > 0) SendClientMessage(i,ROT,string);
    sInfo[pID][mute] = 1;
    savePlayer(playerid);
    }
    return 1;
    }

    public OnPlayerText(playerid, text[])
    {
    if(sInfo[playerid][mute]==1)
    {
    SendClientMessage(playerid,0xFF000FFF,"Gemutet");
    return 0;
    }
    return 1;
    }

  • warum überbaut saveplayer wenn er doch mit sinfo enum arbeitet...


    wie speicherst du dein script ?
    mysql oder dini ?
    denn wenn du es so machst


    sInfo[pID][mute] = 1;
    dann wird es eigendlich auch sofort gesetzt
    und saveplayer an besten bei onplayerupdate saven

    public OnPlayerUpdate(playerid)
    {
    savePlayer(playerid);
    return 1;
    }


    so zb

  • @Xtrats
    Schau dir nochmal seinen Beitrag an. Er SETZT Mute bereits für die richtige ID auf 1.
    Er speichert danach aber die Playerid ab und nicht die pID. ;)


    Um Gottes Willen!
    Bitte auf garkeinen Fall SavePlayer unter OnPlayerUpdate ausführen!

    wieso kein onplayerupdate habe ich auch so und es laggt nix am server..
    es kommt nur drauf an wie er speichert...
    ich arbeite mit mysql und alles geht super hatte auch voher überall
    saveaccount nur es nervte mich..

  • Beitrag von Xtrats ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Ach wirklich? Kannst mir ja mal entsprechende Changelogs von den 0.3.7 Updates für OnPlayerUpdate zukommen lassen.
    Bitte.... Bitte lass es einfach.....
    Wenn du 30 mal in der Sekunde bei 50 Usern speicherst sind das 1500 Speicherung in der Sekunde. Das sind 90.000 Speicherungen in der Minute. Und du willst mir erzählen, dass hätte bei dir nicht gelaggt? Du laberst hier ziemlichen Bullshit. ;)


    PS:
    30 mal in der Sekunde ist nur ein Richtwert. Wenn der Spieler Auto fährt, schwimmt oder schießt liegen die Werte nochmal ein gutes Stück höher.

  • Beitrag von Xtrats ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: du hast keine ahnung und fertig ().
  • So sollte der Befehl passen, speicherst und lädst du den auch den Wert von Mute, wenn ja und es sollte immer noch nicht funktionieren,
    dann lass dir beim laden der Spielerdaten zum schluss den Wert von mute ausgeben


    printf("Mute- Wert %d", sInfo[playerid][mute]);


    //edit


    Das ist zwar offtopic, jedoch Leute, welche unter OnPlayerUpdate die Spielerdaten andauernt speichern die haben keine Ahnung vom Skripten geschweige von Performance, ich glaube schlimmer kann man sein Skript nicht vergewaltigen.