Admin Onduty

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
  • Hi,


    Ich habe mir ein AdminOnDuty System gescriptet und habe eine Frage dazu.


    Ich bin bis jetzt soweit:


    if(!strcmp(cmdtext, "/sonduty", true)) //Plattform
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Supporter %s ist OnDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    SetPlayerColor(playerid,COLOR_RED);
    return 1;
    }
    }



    Meine Frage ist jetzt. Wenn ich /offduty scripte, wie mach ich das, dass dann der Spieler wieder die normale Spielerfarbe bekommt? Denn es sind auch verschiedene Fraktionen noch drauf.


    Also wenn jetzt ein Admin Polizist ist, dann ist er blau. Wenn er OnDuty geht, wird er Rot. Wenn er wieder /offduty geht, dann sollte er wieder die Farbe blau kriegen.


    Wie mache ich das?



    Mfg Vince

  • if(!strcmp(cmdtext, "/soffduty", true)) //Plattform
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Supporter %s ist OffDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    SetPlayerColor(playerid,DeineFarbe);
    return 1;
    }
    }

  • if(!strcmp(cmdtext, "/soffduty", true)) //Plattform
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Supporter %s ist OffDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    if(PlayerInfo[playerid][pFaction] == Cop)
    {
    SetPlayerColor(playerid,DeineFarbe);
    }
    else if(PlayerInfo[playerid][pFaction] == Zivilist)
    {
    SetPlayerColor(playerid,DeineFarbe);
    }
    return 1;
    }
    }



    usw

  • Oben eine Variable für jeden Spieler erstellen.
    Also: " new offdutycolor[MAX_PLAYER_NAME]; "


    Dann speicherst du sie:


    offdutycolor[playerid]=GetPlayerColor(playerid);


    Und liest sie wieder aus:


    SetPlayerColor(playerid,offdutycolor[playerid]);


    Fertig. :)


    IP: 91.194.84.134:7777 :love:

  • Hi,


    Danke für deine Mühe^^ Ich habe doch Frank's Methode genommen^^


    Aber da hab ich ein paar Errors.


    Hier das Script:


    if(!strcmp(cmdtext, "/soffduty", true)) //Plattform
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Supporter %s ist OffDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    if(isPlayerInFrakt(playerid,1))
    {
    SetPlayerColor(playerid,COLOR_BLAU);
    }
    else if(isPlayerInFrakt(playerid,2))
    {
    SetPlayerColor(playerid,COLOR_RED);
    }
    else if(isPlayerInFrakt(playerid,3))
    {
    SetPlayerColor(playerid,COLOR_ORANGE);
    }
    return 1;
    }
    }



    Errors:


    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4027) : error 029: invalid expression, assumed zero
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4027) : error 035: argument type mismatch (argument 2)
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4050) : error 029: invalid expression, assumed zero
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4050) : error 035: argument type mismatch (argument 2)
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4073) : error 029: invalid expression, assumed zero
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4073) : error 035: argument type mismatch (argument 2)
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4096) : error 029: invalid expression, assumed zero
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4096) : error 035: argument type mismatch (argument 2)
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4119) : error 029: invalid expression, assumed zero
    C:\Users\Vince\Desktop\Selfmade123\gamemodes\Selfmade123.pwn(4119) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    10 Errors.



    Die Errors sind alle bei den SetPlayerColor's


    Mfg Vince

  • hast du SetPlayerToTeamColor?
    wenn ja könntest du es einfach so machen:
    if(!strcmp(cmdtext, "/soffduty", true)) //Plattform
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Supporter %s ist OffDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    SetPlayerToTeamColor(playerid);
    }
    return 1;
    }

  • if(!strcmp(cmdtext, "/soffduty", true)) //Plattform
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Supporter %s ist OffDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    if(isPlayerInFrakt(playerid,1))
    {
    SetPlayerColor(playerid,COLOR_BLAU);
    }
    else if(isPlayerInFrakt(playerid,2))
    {
    SetPlayerColor(playerid,COLOR_RED);
    }
    else if(isPlayerInFrakt(playerid,3))
    {
    SetPlayerColor(playerid,COLOR_ORANGE);
    }
    }
    return 1;
    }



    return ist an der falschen stelle, müsste eig klappen..


  • //oben zu den Forwards//
    forward SetPlayerToTeamColor(playerid);
    /////////////////////


    /////OnPlayerConnect///////


    SetPlayerToTeamColor(playerid);


    /////////////////
    ///Unten///
    public SetPlayerToTeamColor(playerid)
    {
    switch(gTeam[playerid])
    {
    case TEAM_Grove: SetPlayerColor(playerid,COLOR_GROVE);
    case TEAM_Ballas: SetPlayerColor(playerid,COLOR_PURPLE);
    case TEAM_Aztecas: SetPlayerColor(playerid,COLOR_ATZEN);
    }
    return 1;
    }


    //////////
    Müsstest du noch ändern

  • Ich hab bei OnPlayerSpawn schon das:


    public OnPlayerSpawn(playerid)
    {
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0: {}
    case 1: {SetPlayerColor(playerid,0x007AFFFF);}
    case 2: {SetPlayerColor(playerid,COLOR_RED);}
    case 3: {SetPlayerColor(playerid,COLOR_ORANGE;}
    }
    }


    Was soll ich jetz machen? Rauslöschen?


  • public SetPlayerToTeamColor(playerid)
    {
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0: {}
    case 1: {SetPlayerColor(playerid,0x007AFFFF);}
    case 2: {SetPlayerColor(playerid,COLOR_RED);}
    case 3: {SetPlayerColor(playerid,COLOR_ORANGE;}
    }
    return 1;
    }
    dann einfach bei OnPlayerSpawn
    SetPlayerToTeamColor(playerid);

  • Hi,


    Ich glaub das klappt schon ganz gut :D


    Habe noch 1 Error:


    public SetPlayerToTeamColor(playerid)
    {
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0: {}
    case 1: {SetPlayerColor(playerid,0x007AFFFF);}
    case 2: {SetPlayerColor(playerid,COLOR_RED);}
    case 3: {SetPlayerColor(playerid,COLOR_ORANGE;}
    }
    return 1;
    }


    Der Error ist bei case 3...


    Aber was ist da falsch?



    Mfg Vince

  • Hast ein ')' vergessen.



    public SetPlayerToTeamColor(playerid)
    {
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{}
    case 1: {SetPlayerColor(playerid,0x007AFFFF);}
    case 2:{SetPlayerColor(playerid,COLOR_RED);}
    case 3: {SetPlayerColor(playerid,COLOR_ORANGE);}
    }
    return 1;
    }


  • EDIT:


    OK, ich habe oben bei den Farben defines die Zahl hinten vergessen xD. Es geht nun..


    Nun, ich habe für jeden Adminrang so einen cmd gemacht und will, dass dies auch nur mit dem jeweiligen Rang geht.


    So siehts jetz aus:


    if(!strcmp(cmdtext, "/coffduty", true)) //Plattform
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Co-Owner");
    {
    new Spieler[MAX_PLAYER_NAME], string[50];
    GetPlayerName(playerid, Spieler, sizeof(Spieler));
    format(string, sizeof(string), "Co-Owner %s ist OffDuty.",Spieler);
    SendClientMessageToAll(0xFF8C00FF, string);
    if(isPlayerInFrakt(playerid,1))
    {
    SetPlayerToTeamColor(playerid);
    }
    else if(isPlayerInFrakt(playerid,2))
    {
    SetPlayerToTeamColor(playerid);
    }
    else if(isPlayerInFrakt(playerid,3))
    {
    SetPlayerToTeamColor(playerid);
    }
    return 1;
    }
    }


    Doch ich kann als Server Owner imm noch Co-Owner OnDuty gehen... Warum?

    Einmal editiert, zuletzt von Vince ()