anticheat-system und /gov geht nicht ;(

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
  • Hallo alle miteinander,
    ich habe mal wieder doofe Fragen...


    1) in "meinem" script is ein anticheat system eingebaut, und zwar wenn man sich rocketlauncher, handgranaten, etc .. cheatet, wird man gebannt....ich hab das mal umgeändert, das nur die waffen entnommen werden, aber nicht gebannt wird, aber ich wollte es auch so machen, dass wenn man (rcon)admin is, das man die waffen bekommt....
    aber trotzdem werden die waffen entnommen, bei /givegun natürlich auch...
    ...wenn dann die waffe entnommen wurden, bekommen die admins eine warnung, das ein spieler waffenhack benutzt


    forward Anticheat();
    public Anticheat()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    new string[256] = 0;
    new giveplayer[MAX_PLAYER_NAME];
    new w;
    w=GetPlayerWeapon(i);
    if(w==9 || w==16 || w==18 || w==17 || w==27 || w==28 || w==32 || w==35 || w==35 || w==36 || w==37 || w==43 || w==38 || w==39 || w==44 || w==45 && !IsPlayerAdmin(i))
    {
    GetPlayerName(i, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "%s [ID:%d] benutzt vermutlich Waffenhack", giveplayer, i);
    ABroadCast(COLOR_YELLOW,string,1);
    //SendClientMessage(i, COLOR_ROT, " ");
    //SendClientMessage(i, COLOR_ROT, " ");
    SendClientMessage(i, COLOR_ROT, " Bitte unterlasse das cheaten, oder du wirst gebannt !!");
    SendClientMessage(i, COLOR_ROT, " Bitte unterlasse das cheaten, oder du wirst gebannt !!");
    SendClientMessage(i, COLOR_ROT, " Bitte unterlasse das cheaten, oder du wirst gebannt !!");
    //SendClientMessage(i, COLOR_ROT, " ");
    //SendClientMessage(i, COLOR_ROT, " ");
    //GameTextForPlayer(i, " ~r~ Cheater ~n~ Noob ~n~ Down ~n~ ", 5000, 3);
    //PlayerInfo[i][pLevel] = -999;
    //Ban(i);
    ResetPlayerWeapons(i);

    }
    else if(w==9 || w==16 || w==18 || w==17 || w==27 || w==28 || w==32 || w==35 || w==35 || w==36 || w==37 || w==43 || w==38 || w==39 || w==44 || w==45 && IsPlayerAdmin(i))
    {
    return 1;
    }
    }
    return 1;
    }


    2) habe auch einen /gov befehl, der aber nicht funktioniert, es wird angezeigt, das man kein beamter is, obwohl ich cop-leader bin X(


    if(strcmp(cmd, "/gov", true) == 0 || strcmp(cmd, "/Gov", true) == 0)
    {
    if(IsAtGovpoint(playerid))
    {
    if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 7 || PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 15 || PlayerInfo[playerid][pMember] == 15)
    {
    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, COLOR_GRAD2, "Benutze: /gov [text]");
    return 1;
    }
    SendClientMessageToAll(COLOR_BLAU, "|___________ Regierungs Nachrichten ___________|");
    format(string, sizeof(string), "Sprecher %s: %s", sendername, result);
    SendClientMessageToAll(COLOR_WHITE, string);
    }
    else if(PlayerInfo[playerid][pRank] < 5 || PlayerInfo[playerid][pLeader] != 1 || PlayerInfo[playerid][pMember] != 1 || PlayerInfo[playerid][pLeader] != 2 || PlayerInfo[playerid][pMember] != 2 || PlayerInfo[playerid][pLeader] != 3 || PlayerInfo[playerid][pMember] != 3 || PlayerInfo[playerid][pLeader] != 7 || PlayerInfo[playerid][pMember] != 7 || PlayerInfo[playerid][pLeader] != 15 || PlayerInfo[playerid][pMember] != 15)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du brauchst Rang 5 und musst eine Beamter sein !!");
    return 1;
    }
    }
    return 1;
    }



    pls helft mir....


    MfG Neo-God

  • else if(w==9 || w==16 || w==18 || w==17 || w==27 || w==28 || w==32 || w==35 || w==35 || w==36 || w==37 || w==43 || w==38 || w==39 || w==44 || w==45 && IsPlayerAdmin(i))
    {
    return 1;
    }

    wegmachen.
    && !IsPlayerAdmin(i)
    wegmachen
    if(IsPlayerAdmin(i))continue;
    einfügen unterfor(new i = 0;i<MAX_PLAYERS;i++)
    {

  • pls kann mir denn einer helfen das /gov zu richten
    mit /ram hatte ich ähnliches problem, und habs auch auf diese weise gemacht, aber bei /gov geht i-was nicht, der macht gar nix, so als hätte ich den befehl gar ned benutzt


    pls helft mir


    MfG Neo-God



    PS: sry wegen Doppelpost

  • So Leute, zu meinem /gov problem...
    habe mal den stuhl angeheizt und ging auf fehler suche, dann kam ich drauf das es ehh ganz simple is/war...


    if(IsAtGovpoint(playerid))


    das habe ich rausgenommen, denn das war i-wie umsonst, man musste anscheinend an einem bestimmten punkt sein, dass man den befehl benutzen kann, das will ich aber ned, man sollte ihn immer benutzen können...


    if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 7 || PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 15 || PlayerInfo[playerid][pMember] == 15)


    in dieser zeile habe ich es mal so gemacht, dass man mind. Rank 5 sein muss, damit man den befehl benutzen kann...
    so das kam dann heraus...


    if(PlayerInfo[playerid][pRank] >=5 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || .........


    der fehler dabei war aber das ...


    if(PlayerInfo[playerid][pRank] >=5 &&


    statt dem "&&" musste eig "||" hin, und das war eig das problem, warum ich im spiel keine meldung bekam



    aber ich habe das problem gelöst, bin i-wie stolz auf mich^^, dass ich das ohne hilfe geschafft habe


    aber danke nochmal an kleinerOpa das er mir beim ersten problem geholfen hat


    MfG Neo-God


    PS: werde versuchen nicht mehr so blöde fehler zu machen :rolleyes:
    PPS: Es tut mir sehr Leid, das ich dreimal hintereinander gepostet habe, habe auf das nicht geachtet. :S