Doppel Nachicht

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
  • Wenn ein Admin Duty geht, bekommt man eine Nachicht. Aber wenn man als Admin Duty geht bekommt der Admin 2 Nachichten. Wo liegt der Fehler


    new Float:heal;
    GetPlayerHealth(playerid,heal);
    SetPVarFloat(playerid,"healsave",heal);
    SetPlayerColor(playerid,ROT);
    s_SetPlayerHealth(playerid,200);
    SendClientMessageToAll(playerid,ROT,"Du bist nun im Admindienst");
    SetPVarInt(playerid,"AdminDuty",1);

  • ocmd:sduty(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1))return SCM(playerid, COLOR_FADE3,"Diesen Befehl kannst du nicht nutzen.");
    {
    new adminname[30];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminname="Nein";}
    case 1:{adminname="{00FF5A}Supporter";}
    case 2:{adminname="{572B54}Moderator";}
    case 3:{adminname="{0000FF}Administrator";}
    case 4:{adminname="{FF0000}Server Manager";}
    case 5:{adminname="{FF0000}Projektleiter";}
    case 6:{adminname="{FF0000}Projektleiter";}
    }
    #pragma unused params
    if(GetPVarInt(playerid,"AdminDuty"))
    {
    SetPlayerColor(playerid,WHITE);
    s_SetPlayerHealth(playerid,GetPVarFloat(playerid,"healsave"));
    DeletePVar(playerid,"AdminDuty");
    DeletePVar(playerid,"healsave");
    Delete3DTextLabel(SDUTY[playerid]);
    TextDrawHideForPlayer(playerid,ADUTY);
    if(lsduty[playerid] == 1)
    {
    SetPlayerColor(playerid,0x0055FFFF);
    }
    if(armyduty[playerid] == 1)
    {
    SetPlayerColor(playerid,0x006400FF);
    }
    if(medicduty[playerid] == 1)
    {
    SetPlayerColor(playerid,0xFF005FFF);
    }
    if(oamtduty[playerid] == 1)
    {
    SetPlayerColor(playerid,0x53969cFF);
    }
    return 1;
    }
    else
    {
    new Float:heal;
    GetPlayerHealth(playerid,heal);
    SetPVarFloat(playerid,"healsave",heal);
    SetPlayerColor(playerid,ROT);
    s_SetPlayerHealth(playerid,200);
    SCM(playerid,ROT,"Du bist nun in der Sduty!");
    SetPVarInt(playerid,"AdminDuty",1);
    TextDrawShowForPlayer(playerid,ADUTY);
    if(GetPVarInt(playerid,"Adminlevel")==1)
    {
    SDUTY[playerid] = Create3DTextLabel("*Supporter onduty*",AdminGelb,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(SDUTY[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(GetPVarInt(playerid,"Adminlevel")==2)
    {
    SDUTY[playerid] = Create3DTextLabel("*Moderator onduty*",AdminGrun,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(SDUTY[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(GetPVarInt(playerid,"Adminlevel")==3)
    {
    SDUTY[playerid] = Create3DTextLabel("*Administrator onduty*",AdminBlau,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(SDUTY[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(GetPVarInt(playerid,"Adminlevel")==4)
    {
    SDUTY[playerid] = Create3DTextLabel("*Server Manager onduty*",AdminRot,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(SDUTY[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(GetPVarInt(playerid,"Adminlevel")==5)
    {
    SDUTY[playerid] = Create3DTextLabel("*Projektleiter onduty*",AdminRot,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(SDUTY[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(GetPVarInt(playerid,"Adminlevel")==6)
    {
    SDUTY[playerid] = Create3DTextLabel("*Projektleiter onduty*",AdminRot,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(SDUTY[playerid], playerid, 0.0, 0.0, 0.4);
    }

    }
    return 1;
    }
    }

  • Bist du sicher, dass der Befehl die Nachricht schickt? Weil in dem Befehl sehe ich definitiv keine Nachricht, die an irgendjemand anderes geschickt wird, als an den Spieler selbst, und das ist die eine SCM, die kommt auch nicht zwei mal.


    Könntest du mal einen Screenshot davon machen, und sagen, welchen Befehl du genau eingibst?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wahrscheinlich hat es durch das SCMTA an alle die Nachricht geschickt das ein Admin On ist(auch an den Admin) und für den Admin intern dann halt Du bist nun als Admin online.
    Meinst du das vielleicht?



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • aber an den admin schickt er dann 2 und das soll nicht so sein


    ...die normale SendClientMessage musst du dann natürlich rausnehmen und dann 1x einfach an alle senden und dann bekommt jeder auf dem Server die Nachricht 1x...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Warum soll die Nachricht mit "Du" an alle geschickt werden, Kaliber? Macht wenig Sinn.


    Schreibe das zu deinem Befehl dazu:
    new str[145], name[MAX_PLAYER_NAME];
    GetPlayerName (playerid, name, MAX_PLAYER_NAME);
    format(str, 145, "%s ist jetzt Duty.", name);
    for(new i =0; i < MAX_PLAYERS; i++) if(i!= playerid) SendClientMessage(i, ROT, str);

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