SendAdminMessage 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
  • Hey,


    wie die Überschrift villt. schon sagt, will ich einen neuen stock erstellen.
    Der soll etwa so aussehen:


    stock SendAdminMessage(farbe,const message[],(evtl. Rang)) //das ist dann praktisch das selbe wie SendClientMessageToAll, nur das es an alle Admins villt. auch nur an admins mit einem Mindestrang (rang) gehen soll
    {
    //hier muss man dann definieren, wer alles Admins sind, und was geschickt werden soll, (SendClientMessage(...)
    //allerdings weiß ich nicht wie man das anstellt, also eine Variable erstellen, die für alle Admins gilt und die man biei SendClientMessage als playerid ersetzen kann, damit es an alle admins geht
    return 1;
    }


    wenn ihr dazu irgentwas wissen müsst, sagt bescheid ich poste gern Codeschnipsel.


    Lg byBSE


    PS: außerdem will ich auch so mal ganz gern wissen, wie man eine Variable erstellt, womit man praktisch alle admins meint, die man zB für /admins braucht, eine liste wo alle online admins angezeigt werden ^^

  • stock SendAdminMessage(farbe,const message[], Rang = 1) // das = 1 macht den "Rang" Optional
    {
    new playerid;
    for(:iplayerid=MAX_PLAYERS;playerid++)
    {
    if(!IsPlayerConnected(playerid)) continue;
    if(Admin[playerid] >= Rang) SendCientMessage(playerid,0xFFFFFFFF,message);
    }
    return 1;
    }
    Ich schätz mal sowas meinst du ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ah sieht gut aus, ehm und new playerid, ist dann sag ich mal für alle admins, zumindest in dem stock?


    bedeutet rang = 1 optinal nur rang eins, oder auch für die die höher sind, oder bedeutet die zahl nicht den rang sondern, 1=ja ein admin und 0 zB =kein admin. ?


    PS:


    Einfügen und compilen hat geklappt.


    Allerdings wenn ich das jetzt ferwende, für /hilfmir


    if(strcmp(cmdtext,"/hilfmir",true)==0)
    {
    new string[128];
    format(string,sizeof(string),"Der Spieler %s braucht einen Admin!",SpielerName(playerid));
    SendAdminMessage(gelb,string);
    return 1;
    }


    Gibs errors, allerdings in dem Stock:


    D:\Spiele\Rockstar Games\San Andreas\GLR\gamemodes\selfmade.pwn(1021) : error 029: invalid expression, assumed zero
    D:\Spiele\Rockstar Games\San Andreas\GLR\gamemodes\selfmade.pwn(1021) : warning 215: expression has no effect
    D:\Spiele\Rockstar Games\San Andreas\GLR\gamemodes\selfmade.pwn(1021) : error 001: expected token: ")", but found ";"
    D:\Spiele\Rockstar Games\San Andreas\GLR\gamemodes\selfmade.pwn(1021) : error 036: empty statement
    D:\Spiele\Rockstar Games\San Andreas\GLR\gamemodes\selfmade.pwn(1021) : 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.



    in der Zeile: for(:iplayerid=MAX_PLAYERS;playerid++)



    Einmal editiert, zuletzt von Tomsen ()

  • auffallen sollte das schon^^


    Habs nur auf die schnelle geschrieben :D

    for(;playerid!=MAX_PLAYERS;playerid++)
    sollte so gehn^^

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ja, ich hab statt admin noch isPlayerAnAdmin genommen, weil das im meinem Script so definiert ist, allerdings kommt dann undefined symbol isPlayAn Admin.


    Also wenn ich diesen Befehl:

    if(strcmp(cmdtext,"/hilfmir",true)==0)
    {
    new string[128];
    format(string,sizeof(string),"Der Spieler %s braucht einen Admin!",SpielerName(playerid));
    SendAdminMessage(gelb,string);
    return 1;
    }


    Nicht drin habe, kommen keine Errors, hab ich den aber drin und benutze ihn kommen die vorhin genannten errors.

  • Und wie ist es so?


    stock SendAdminMessage(farbe,const message[], Rang = 1) // das = 1 macht den "Rang" Optional
    {
    new playerid;
    for(; playerid != MAX_PLAYERS; playerid++)
    {
    if(IsPlayerConnected(playerid)) continue;
    if(deinadmvar >= Rang) SendClientMessage(playerid,farbe,message);
    }
    return 1;
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Naja jetz kommt nur noch ein error.


    Wenn ich isPlayerAnAdmin mache, kommt der Error: syntax error in the expression, or invalid function call


    Wenn ich die PlayerVariable Adminlevel, die ich bei dini_IntSet verwende sprich beim speichern vom spieler, ist diese nicht defined. Ich denke mal die erste ist schon richtig. Allerdings kommt halt der error.


    edit: ich weiß ja nicht ob das Hilft:


    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }



    Einmal editiert, zuletzt von Tomsen ()

  • Oh danke :D Error ist erstmal weg, aber testen muss ichs noch. kleinen moment bitte,


    //edit: allerdings passiert nichts wenn ich den Befehl eingebe


    if(strcmp(cmdtext,"/hilfmir",true)==0)
    {
    new string[128];
    format(string,sizeof(string),"Der Spieler %s braucht einen Admin!",SpielerName(playerid));
    SendAdminMessage(gelb,string);
    return 1;
    }



    Einmal editiert, zuletzt von Tomsen ()