/a Befehl erstellen aber wie?

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
  • ocmd:a(playerid, params[])
    {
    if(SpielerInfo[playerid][aLevel] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Nur für Admins.");
    if(!params[0])) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /a [Text]");
    new str[145];
    GetPlayerName(playerid, str, MAX_PLAYER_NAME);
    format(str, sizeof(str), "[Admin] %s: %s", str, params);
    for(new i=0; i<MAX_PLAYERS; i++) if(SpielerInfo[i][aLevel] > 0) SendClientMessage(i, 0xFFFFFFFF, str);
    return 1;
    }


    EDIT:
    Sorry, [] bei params vergessen, danke Red_Romeo:.

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()


  • Danke, aber ich habe ein Fehler bei meinem /mute System bekomme ein Error :


    C:\Users\W\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(36) : error 021: symbol already defined: "SetTimer"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.



    forward UnMuteTimer();
    forward sekunde();
    forward unfreezePlayer(playerid);
    SetTimer("UnMuteTimer",60000,1);


    public UnMuteTimer()
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"Mute")>0)
    {
    new wert = GetPVarInt(i,"Mute" )-1;
    SetPVarInt(i,"Mute",wert);
    if(GetPVarInt(i,"Mute") == 0) return SendClientMessage(i,COLOR_GREEN,"You have been Unmuted.");
    return 1;
    }
    }
    return 1;
    }



    ocmd:unmute(playerid,params[])
    {
    if(isPlayerAnAdmin(playerid,1))//<-- Abfrage anpassen!
    {
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Usage: /unmute [PlayerID]");
    {
    if(GetPVarInt(pID,"Mute")!=0)
    {
    new string[128];
    format(string,sizeof(string),"You have been unmuted by Admin %s",SpielerName(playerid));
    SetPVarInt(pID,"Mute",0);
    SendClientMessage(pID,COLOR_GREEN,string);
    SendClientMessage(playerid,COLOR_GREEN,"Successfully done.");
    return 1;
    }
    }
    }
    return 1;
    }


    ocmd:mute(playerid,params[])
    {
    if(isPlayerAnAdmin(playerid,1))//<-- Abfrage anpassen
    {
    #define Copy & Paste ist für Dummis
    new pID;
    new reason[64];
    new time;
    if(sscanf(params,"uis",pID,time,reason))return SendClientMessage(playerid,COLOR_GREY,"Usage: /mute [PlayerID] [Time (In Minutes)] [Reason]");
    {
    if(isPlayerAnAdmin(pID,1))//<-- Abfrage anpassen
    {
    SendClientMessage(playerid,COLOR_RED,"You can't mute an Admin");
    return 1;
    }
    else if(time > 0 && time < 999999)
    {
    new string[128],tmptime = time;//Das ganze wird bereits in Minuten gespeichert!
    format(string,sizeof(string),"%s has been Muted by Admin %s for %i Minutes. Reason: %s",SpielerName(pID),SpielerName(playerid),tmptime,reason);//Hier wird der String definiert, eig ganz einfach
    SendClientMessageToAll(COLOR_RED,string);//sollte klar sein
    SendClientMessage(playerid,COLOR_GREEN,"Successfully done.");//sollte klar sein
    SetPVarInt(pID,"Mute",tmptime);//Hier wird die Zeit in die PlayerVariable gespeichert
    return 1;
    #define Copy & Paste ist für Dummis
    }
    }
    }
    return 1;
    }

  • Das muss bei OnGameModeInit hin, nicht zu den forwards.
    SetTimer("UnMuteTimer",60000,1);


    Und der Timer so:
    public UnMuteTimer()
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"Mute")>0)
    {
    new wert = GetPVarInt(i,"Mute" )-1;
    SetPVarInt(i,"Mute",wert);
    if(GetPVarInt(i,"Mute") == 0) SendClientMessage(i,COLOR_GREEN,"You have been Unmuted.");
    }
    }
    return 1;
    }


  • Danke jetzt bekomme ich einen SSCANF warning bei Server.exe


  • Okay hier kommt noch so ein warning bei /say


    ocmd:say(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht befugt!.");
    new string[500],stringz[500];
    if(sscanf(params,"s[500]",string))return SendClientMessage(playerid,BLAU,"Benutze /say [text]");
    format(string,sizeof(string),"[ ADMIN ]: {FEFEFE}%s",string);
    SendClientMessageToAll(BLAU,string);
    format(stringz,sizeof(stringz),"%s : %s",SpielerName(playerid),string);
    return 1;
    }


  • Versuchs mal so:

    ocmd:say(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht befugt!.");
    new string[500],stringz[500];
    if(sscanf(params,"s[500]",string))return SendClientMessage(playerid,BLAU,"Benutze /say [text]");
    format(string,sizeof(string),"[ ADMIN ]: {FEFEFE}%s",string);
    SendClientMessageToAll(BLAU,string);
    format(stringz,sizeof(stringz),"%s : %s",SpielerName(playerid),string);
    return 1;
    }

  • Der steht doch in Post #2 bereits.



    C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : error 028: invalid subscript (not an array or too many subscripts): "params"
    C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : warning 215: expression has no effect
    C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : error 001: expected token: ";", but found "]"
    C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : error 029: invalid expression, assumed zero
    C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.