Time im /o Chat

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
  • ochat.....
    ganz oben!
    new ochat[MAX_PLAYERS];

    if(ochat==1)
    {
    SendClientMessage(playerid,ROT,"Erst in 10 Sec wieder!");
    return 1;
    }
    else if(ochat==0)
    {
    SetTimerEx("ochat",10000,0,"d",playerid);
    ochat[playerid]=1;
    return 1;
    }
    forward ochat(playerid);
    public ochat(playerid)
    {
    ochat=0;
    return 1;
    }

  • Dazu wird kein Timer benötigt:


    new oLastChatTime[MAX_PLAYERS];


    /o command (playerid, ....)
    {
    if(gettime() - oLastChatTime[playerid] < 10) return SendClientMessage(playerid, 0xFF0000FF, "Nur alle 10 Sekunden!!!!");
    oLastChatTime[playerid] = gettime();
    //........
    }

  • if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht Eingeloggt !");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, " Du kannst nicht sprechen, du bist gemutet !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(Maske[playerid] == 1)
    {
    sendername = "Maskierter";
    }
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "NUTZUNG: (/o)oc [ooc chat]");
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 1)
    {
    //format(string, sizeof(string), "(( 1339 Admin %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2)
    {
    //format(string, sizeof(string), "(( Moderator %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 3)
    {
    //format(string, sizeof(string), "(( Support Admin 3 %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 4)
    {
    //format(string, sizeof(string), "(( Support Admin 4 %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 5)
    {
    //format(string, sizeof(string), "(( Support Admin 5 %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 1337)
    {
    //format(string, sizeof(string), "(( 1337 Admin %s: %s))", sendername, result);
    format(string, sizeof(string), "(( %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2001)
    {
    //format(string, sizeof(string), "(( Stellv. Projektleiter %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2002)
    {
    //format(string, sizeof(string), "(( Projektleiter %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pSupporter] == 1)
    {
    format(string, sizeof(string), "(( Uservertreter %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 0 && (noooc))
    {
    format(string, sizeof(string), "(( %s: %s))", sendername, result);
    }
    else return 1;
    OOCOff(COLOR_OOC,string);
    Log("OA-Chat.txt",string);
    }
    return 1;
    }




    das ist sind jetz die Zeilen wie muss ich das jetz machen

  • ganz oben!
    new oocchat[MAX_PLAYERS];if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht Eingeloggt !");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, " Du kannst nicht sprechen, du bist gemutet !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(Maske[playerid] == 1)
    {
    sendername = "Maskierter";
    }
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "NUTZUNG: (/o)oc [ooc chat]");
    return 1;
    }
    if(oocchat[playerid]==1)
    {
    SendClientMessage(playerid,COLOR_RED,"Erst in 10 Sekunden wieder!");
    return 1;
    }
    else if(oocchat[playerid]==0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1)
    {
    //format(string, sizeof(string), "(( 1339 Admin %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2)
    {
    //format(string, sizeof(string), "(( Moderator %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 3)
    {
    //format(string, sizeof(string), "(( Support Admin 3 %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 4)
    {
    //format(string, sizeof(string), "(( Support Admin 4 %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 5)
    {
    //format(string, sizeof(string), "(( Support Admin 5 %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 1337)
    {
    //format(string, sizeof(string), "(( 1337 Admin %s: %s))", sendername, result);
    format(string, sizeof(string), "(( %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2001)
    {
    //format(string, sizeof(string), "(( Stellv. Projektleiter %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2002)
    {
    //format(string, sizeof(string), "(( Projektleiter %s : %s))", sendername, result);
    format(string, sizeof(string), "(( %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pSupporter] == 1)
    {
    format(string, sizeof(string), "(( Uservertreter %s : %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 0 && (noooc))
    {
    format(string, sizeof(string), "(( %s: %s))", sendername, result);
    }
    else return 1;
    OOCOff(COLOR_OOC,string);
    oocchat[playerid]=1;
    SetTimerEx("oocchat",10000,0,"d",playerid);
    Log("OA-Chat.txt",string);
    }
    }
    return 1;
    }
    forward oocchat(playerid);
    public oochat(playerid)
    {
    oocchat[playerid]=0;
    return 1;
    }

  • Geht nicht, gibts nicht...


    Du brauchst einen Timestamp. Das ist die Anzahl der Sekunden seit dem 01.01.1970. Somit kannst Du ohne einen Timer zu verwenden, abfragen, ob man etwas eingeben darf.


    Dazu machst du folgendes im /o Befehl:


    if(GetPVarInt(playerid,"ochattstamp") > gettime()){
    SendClientMessage(playerid,FARBE,"Du kannst noch nicht im OOC schreiben.);
    }else{
    SetPVarInt(playerid,ochattstamp,gettime() + 10);
    //Hier den text an alle Spieler senden(OOC)
    }



    Das Ganze läuft folgendermaßen ab:


    Du fragst ab, ob der Timestamp der zeit, wo man wieder schrieben darf größer der aktuelle Timestamp ist.
    Denn wenn der größer ist, als der aktuelle ist die Zeit noch nicht angekommen.
    Wenn nein, darf man schreiben und setzt den Wert von der PlayerVariable auf gettime() (Aktueller Timestamp) +10(10 Sekunden später).



  • geht nicht


    C:\Users\p\Desktop\0.3x Force-Reallife\gamemodes\Force-Reallife.pwn(21686) : error 017: undefined symbol "ooc"



    if(GetPVarInt(playerid,"ooc") > gettime()){
    SendClientMessage(playerid,0xFF004BFF,"Du kannst noch nicht im OOC schreiben.");
    }
    else
    {
    SetPVarInt(playerid,ooc,gettime() + 10);
    SendClientMessage(playerid,0xFF004BFF,"Du kannst nur alle 10sec im /o Chat schreiben.");
    }