OOC Hilfe

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
  • Ja ne ich will das nicht aus einem Gotfather bzw. ich hab das nicht.


    Habe einen Code hab aber dann 26 Fehler
    if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, GRAU, " Du bist noch nicht Eingeloggt !");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, ROT, " Du kannst nicht sprechen, du bist gemutet !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    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, GELB, "NUTZUNG: (/o)oc [ooc chat]");
    return 1;
    }
    if(PlayerInfo[playerid][pSupporter] == 1)
    {
    format(string, sizeof(string),"(( Supporter %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 1)
    {
    format(string, sizeof(string),"(( Moderator %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 2)
    {
    format(string, sizeof(string),"(( Super-Moderator %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 3)
    {
    format(string, sizeof(string),"(( Administrator %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 4)
    {
    format(string, sizeof(string),"(( High-Admin %s: %s))", sendername, result);
    }
    else if(PlayerInfo[playerid][pAdmin] == 5)
    {
    else { format(string, sizeof(string),"(( User %s: %s))", sendername, result); /* User kannst du zu Spieler oder sonst was ändern */ }
    OOCOff(COLOR_OOC,string);
    Log("OA-Chat.txt",string);
    }
    return 1;
    }
    Das habe ich in diesem Forum gefunden

  • ocmd:ooc(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
    format(text,sizeof(text),"%s: %s",SpielerName(playerid),text);
    SendClientMessageToAll(DEINE FARBE,text);
    return 1;
    }


  • stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return name;
    }

    Das muss dann aber auch noch unten ins Script, wenn du SpielerName verwendest :D

  • Dein Code ist total sinnlos. Sind Fehler enthalten etc.


    Um einen OOC zu gestalten, musst du dir erst ein paar Fragen stellen.
    -Wer soll schreiben können
    -Wer soll das lesen können
    -Kann man ihn aktivieren/deaktivieren?


    Hier mal ein kleiner Code mit erklärung für dich
    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }
    Hiermit bekommen wir den Namen des Spielers


    Ich arbeite hier mal mit ocmd &sscanf
    new gc = 0;
    Ganz oben erstellen, damit wir wissen, ob der chat an oder aus ist.
    ocmd@2:gc,globalerchat(playerid,params[])
    {
    new text[128];//neuer string
    if(gc == 0)return SendClientMessage(playerid, -1, "Der Globale Chat wurde deaktiviert!");//wenn der chat aus ist
    if(sscanf(params,"s[128]", text))return SendClientMessage(playerid, -1, " /gc <text>");//sollten keine parameter angegeben worden sein
    new string[128];//neuer string zum formatieeren
    format(string,sizeof(string)," %s: %s",SpielerName(playerid),text);//wir formatieren den string, da wir %s bei der native SendClientMessageToAll nicht verwenden können
    SendClientMessageToAll(-1, string);//wir senden den string an alle Spieler
    return 1;
    }
    ocmd:gca(playerid,params[])
    {
    new status;//neue variable
    if(sscanf(params, "i", status))return SendClientMessage(playerid, -1, " /gca < 1 = ja > < 2 = nein >");//wir können den chat mit /gca 1 anschalten, mit /gca 2 ausschalten
    if(status > 2 || status < 1)return SendClientMessage(playerid,-1," Nur 1 oder 2 möglich!");//man kann nur 1 oder 2 eingeben
    if(status == 1 && gc != 1)//falls wir 1 eingegeben haben und der chat nicht an ist
    {
    gc = 1;//globale var auf 1 gesetzt
    SendClientMessageToAll( -1, "Globaler Chat aktiviert!");
    }
    else if(status == 2 && gc !=2)//falls wir 2 (nein) angegeben haben und der chat nicht aus ist
    {
    gc =0;//var wird auf 0 gesetzt
    SendClientMessageToAll( -1, " Globaler Chat deaktiviert!");
    }
    return 1;
    }

  • stock GetRank(playerid)
    {
    new str[31];
    switch(SpielerInfo[playerid][pAdminlevel])//ich nehme mal an, du speicherst so deine adminlevel
    {
    case 0:
    {
    strcat(str,"Spieler");
    }
    case 1:
    {
    strcat(str,"Probesupporter");
    }
    case 2:
    {
    strcat(str,"Supporter");
    }
    case 3:
    {
    strcat(str,"Moderator");
    }
    case 4:
    {
    strcat(str,"Administrator");
    }
    case 5:
    {
    strcat(str,"Teamleiter");
    }
    case 6:
    {
    strcat(str,"Projektleiter");
    }
    case 7:
    {
    strcat(str,"Scripter");
    }
    }
    return str;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Genau diese Range will ich anzeigen lassen wie? in diesem Code :


    ocmd:ooc(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
    format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
    SendClientMessageToAll(BLAU,text);
    }
    else
    {
    if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((Team Mitglied %s: %s))",Spielername(playerid,text);
    }
    return 1;
    }


  • if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text);


    Füge einfach dann noch meinen stock hinzu

  • ocmd:ooc(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
    format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
    SendClientMessageToAll(BLAU,text);
    {
    else//Fehler laut Pawno
    }
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text));//Fehler laut Pawno
    return 1;
    }
    Meine Fehler :
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(335) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(359) : error 029: invalid expression, assumed zero
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(361) : error 017: undefined symbol "GetRang"
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(398) : warning 217: loose indentation
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(402) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(409) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Danke für eure hilfe

  • ocmd:ooc(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
    format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
    SendClientMessageToAll(BLAU,text);
    }
    else//Fehler laut Pawno
    {
    if(IsPlayerAnAdmin(playerid,2) return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text);//Fehler laut Pawno
    return 1;
    }

    ehm. Administration StateV ~ Domi

  • ocmd:ooc(playerid,params[])
    {
    new Inhalt[128],string[128];
    if(sscanf(params,"s",Inhalt))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
    format(string,sizeof(string),"*((%s: %s))",Spielername(playerid),text);
    SendClientMessageToAll(BLAU,text);
    if(isPlayerAnAdmin(playerid,2))
    {
    format(string, sizeof(string), "((%s %s: %s))",GetRang(playerid),Spielername(playerid),text);
    SendClientMessage(playerid,ROT,string;
    return 1;
    }
    return 1;
    }


    Benutzt das mal

  • So ist es richtig:
    ocmd:ooc(playerid,params[])
    {
    new text[128],string[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
    if(isPlayerAnAdmin(playerid,2))// Wenn er Admin ist
    { // dann
    format(string, sizeof(string), "((%s %s: %s))",GetRang(playerid),Spielername(playerid),text);
    return SendClientMessage(playerid,ROT,string);
    }
    else // wenn nicht
    { // dann
    format(string,sizeof(string),"*((%s: %s))",Spielername(playerid),text);
    SendClientMessageToAll(BLAU,text);
    }
    return 1;
    }


    MrPawn:
    Bei dir würde er, wenn er Admin ist, 2x ne Nachricht schicken!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen