Beiträge von LeonMrBonnie


    ACChecks()
    {
    new iString[160];
    foreach(new i : Player)
    {
    if(IsPlayerConnected(i) && Player[i][Spawned] == true)
    {
    /*
    //animation



    new animlib[32];
    new animname[32];
    GetAnimationName(GetPlayerAnimationIndex(i),animlib,32,animname,32);
    format(iString, sizeof(iString), "Animation: %s %s --- %d", animlib, animname, GetPlayerAnimationIndex(i));
    SendACWarning(i, iString);
    */



    //jetpack
    if(Player[i][SafeJetpack] == false && GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
    {
    SendACWarning(i, "Jetpack");
    }




    //weaponhacks
    new weaponid = GetPlayerWeapon(i);
    if(Player[i][SafeGun] == false && weaponid != 0 && weaponid != DEAGLE && weaponid != SHOTGUN && weaponid != SPAS && weaponid != MP5 && weaponid != AK47 && weaponid != M4 && weaponid != RIFLE && weaponid != SNIPER && weaponid != GRENADE)
    {
    format(iString, sizeof(iString), "Waffen Hack: %s", WeaponNames[weaponid]);
    SendACWarning(i, iString);
    }




    //ammohack
    new Weapon[13], Ammo[13];
    for(new k = 0; k < 13; k++) GetPlayerWeaponData(i, k, Weapon[k], Ammo[k]);

    if(Player[i][VIP] == 1 && Player[i][SafeGun] == false)
    {
    if(Ammo[2] > 200 || Ammo[3] > 200 || Ammo[4] > 200 || Ammo[5] > 400 || Ammo[6] > 200 || Ammo[8] > 2)
    {
    SendACWarning(i, "Ammo Hack");
    }
    }
    else if(Player[i][VIP] == 0 && Player[i][SafeGun] == false)
    {
    if(Ammo[2] > 100 || Ammo[3] > 100 || Ammo[4] > 100 || Ammo[5] > 200 || Ammo[6] > 100 || Ammo[8] > 1)
    {
    SendACWarning(i, "Munitions Hack");
    }
    }




    //armorhack
    new Float:AP;
    GetPlayerArmour(i, AP);
    if(AP > 25)
    {
    SendACWarning(i, "Rüstungs Hack");
    }




    //airbreak
    if(GetPlayerAnimationIndex(i) == 958 || GetPlayerAnimationIndex(i) == 959 || GetPlayerAnimationIndex(i) == 961 || GetPlayerAnimationIndex(i) == 962)
    {
    SendACWarning(i, "Airbreak");
    }




    //speedhack
    new Float:V[3], Float:SumV;
    GetPlayerVelocity(i, V[0], V[1], V[2]);
    if(V[0] > 0 && V[1] > 0) SumV = V[0] + V[1];
    if(V[0] < 0 && V[1] < 0) SumV = V[0] + V[1];
    if(V[0] > 0 && V[1] < 0) SumV = V[0] - V[1];
    if(V[0] < 0 && V[1] > 0) SumV = V[1] - V[0];
    if(SumV > 0.44 || SumV < -0.44)
    {
    format(iString, sizeof(iString), "Speedhack/Macros/Slidebug -- Geschwindigkeit: %.5f", SumV);
    SendACWarning(i, iString);
    }
    }
    }
    }


    CMD:toggleanticheat(playerid,params[])
    {
    if(Player[playerid][Level] < 4) return SendErrorMessage(playerid,"Du musst ein Serverleiter sein um diesen Command zu benutzen.");
    new iString[64];
    printf("AntiCheat Status: %s", AntiCheatActive);



    if(AntiCheatActive == true)
    {
    AntiCheatActive = false;
    printf("AntiCheat Status: %s", AntiCheatActive);
    SendClientMessage(playerid, COLOR_GREEN, "Du hast das AntiCheat erfolgreich deaktiviert.");
    SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|");
    SendClientMessageToAll(COLOR_RED,"");
    format(iString, sizeof(iString), "{101080}%s hat das komplette AntiCheat deaktiviert.", GetName(playerid));
    SendClientMessageToAll(COLOR_RED, iString);
    SendClientMessageToAll(COLOR_RED,"");
    SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|");
    printf("[warning] %s deaktiviert das Anticheat.",GetName(playerid));
    }



    else if(AntiCheatActive == false)
    {
    AntiCheatActive = true;
    printf("AntiCheat Status: %s", AntiCheatActive);
    SendClientMessage(playerid, COLOR_GREEN, "Du hast AntiCheat erfolgreich aktiviert.");
    SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|");
    SendClientMessageToAll(COLOR_GREEN,"");
    format(iString, sizeof(iString), "{101080}%s hat das komplette AntiCheat aktivert.", GetName(playerid));
    SendClientMessageToAll(COLOR_GREEN, iString);
    SendClientMessageToAll(COLOR_GREEN,"");
    SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|");
    printf("[warning] %s aktiviert das Anticheat.",GetName(playerid));
    }

    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es ist ein Fehler aufgetreten.");
    }

    return 1;
    }

    Auch eine SendClientMessage wird mir nicht ausgegeben...


    EDIT:
    Ich weiß nicht obs damit zu tun hat aber ich habe einen Timer der jede Sekunden "OnScriptUpdate" aufruft und bei OnScriptUpdate steht:

    forward OnScriptUpdate();
    public OnScriptUpdate()
    {
    if(AntiCheatActive == true)
    {
    ACChecks();
    }
    ......
    ......

    ehm hey
    ist AntiCheatActive mit ein new definiert also so?
    new AntiCheatActive;
    wenn ja gibts bei mir warnings ich muss mit true zu 1 und fals als 0 angeben also so dann
    if(AntiCheatActive == 1) { AntiCheatActive = 0; SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|"); SendClientMessageToAll(COLOR_RED,""); format(iString, sizeof(iString), "{101080}%s hat das komplette AntiCheat deaktiviert.", GetName(playerid)); SendClientMessageToAll(COLOR_RED, iString); SendClientMessageToAll(COLOR_RED,""); SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|"); printf("[warning] %s deaktiviert das Anticheat.",GetName(playerid)); } else if(AntiCheatActive == 0) { AntiCheatActive = 1; SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|"); SendClientMessageToAll(COLOR_GREEN,""); format(iString, sizeof(iString), "{101080}%s hat das komplette AntiCheat aktivert.", GetName(playerid)); SendClientMessageToAll(COLOR_GREEN, iString); SendClientMessageToAll(COLOR_GREEN,""); SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|"); printf("[warning] %s aktiviert das Anticheat.",GetName(playerid)); } return 1;}

    Ich habe AntiCheatActive definiert, aber mit einem bool also ist true und false richtig. new bool:AntiCheatActive;

    Hallo,
    ich habe einen Befehl erstellt um das AntiCheat des Servers zu de/aktivieren. Wenn ich den Befehl ausführe passiert GARNIX, keine Nachricht im Chat, nichts im Server Log und auch keine Errors oder Warnings in PAWN.


    /toggleanticheat Befehl:

    CMD:toggleanticheat(playerid,params[])
    {
    if(Player[playerid][Level] < 4 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein Serverleiter sein um diesen Command zu benutzen.");
    new iString[64];



    if(AntiCheatActive == true)
    {
    AntiCheatActive = false;
    SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|");
    SendClientMessageToAll(COLOR_RED,"");
    format(iString, sizeof(iString), "{101080}%s hat das komplette AntiCheat deaktiviert.", GetName(playerid));
    SendClientMessageToAll(COLOR_RED, iString);
    SendClientMessageToAll(COLOR_RED,"");
    SendClientMessageToAll(COLOR_RED,"|____________{ANTI CHEAT NACHRICHT}____________|");
    printf("[warning] %s deaktiviert das Anticheat.",GetName(playerid));
    }



    else if(AntiCheatActive == false)
    {
    AntiCheatActive = true;
    SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|");
    SendClientMessageToAll(COLOR_GREEN,"");
    format(iString, sizeof(iString), "{101080}%s hat das komplette AntiCheat aktivert.", GetName(playerid));
    SendClientMessageToAll(COLOR_GREEN, iString);
    SendClientMessageToAll(COLOR_GREEN,"");
    SendClientMessageToAll(COLOR_GREEN,"|____________{ANTI CHEAT NACHRICHT}____________|");
    printf("[warning] %s aktiviert das Anticheat.",GetName(playerid));
    }
    return 1;
    }


    Wo ist der Fehler?

    Bei der Projektleitung nicht oderwas? :wacko:
    Du bist 15 Jahre und machst ein SA:MP Projekt oder möchtest eins starten.
    Naja ich seh darin keinerlei Zukunft sowie das das ein 08/15 Projekt wird. Trotzalledem viel Glück.


    Mit freundlichen Grüßen,
    Notice

    Guten Tag,
    ich bin mir ziemlich sicher dass dieses Projekt kein 0815 Projekt wird, der Scripter (Ich) arbeitet täglich mehrere Stunden am Script und entwickelt dieses weiter, auf Userideen wird natürlich auch geachtet. Wir haben ein nettes Adminteam mit dem niemand Probleme haben sollte; und wenn doch, meldet man sich bei mir oder Syntation.
    LG

    Hallo,
    ich versuche grad über OnPlayerClickPlayer ein Admin Menü für Admins zu machen, aber bei meinem Versuch damit jemanden ins CP Prison zu stecken scheitert es.
    Wenn ich im Admin Menü "Spieler ins CP Prison stecken" gewählt habe erscheint das richtige Textfenster in dem nach den CPs gefragt wird, aber nachdem ich dort egal was eingebe schließt sich der Dialog und nichts passiert. In der Serverlog steht nichts.


    Admin Menü:

    if(dialogid == 1337)
    {
    if(!response) return SendClientMessage(playerid, 0xFF0C29FF,"Auswahl abgebrochen.");
    else
    {
    if(listitem == 0) return ShowPlayerDialog(playerid, 1338, DIALOG_STYLE_INPUT, "Spieler kicken", "Gib den Kickgrund ein", "Kicken", "Abbrechen");
    if(listitem == 1) return ShowPlayerDialog(playerid, 1339, DIALOG_STYLE_INPUT, "Spieler muten", "Gib den Mutegrund ein", "Muten", "Abbrechen");
    if(listitem == 2) return ShowPlayerDialog(playerid, 1444, DIALOG_STYLE_INPUT, "Spieler ins CP Prison stecken", "Gib die gewünschten Checkpoints ein", "CPs setzen", "Abbrechen");
    if(listitem == 3) return ShowPlayerDialog(playerid, 1343, DIALOG_STYLE_INPUT, "Nachricht versenden", "Gib deine Nachricht ein", "Versenden", "Abbrechen");
    if(listitem == 4) return ShowPlayerDialog(playerid, 1340, DIALOG_STYLE_INPUT, "Spieler bannen", "Gib den Banngrund ein", "Bannen", "Abbrechen");
    if(listitem == 5) return ShowPlayerDialog(playerid, 1341, DIALOG_STYLE_INPUT, "Spieler IP bannen", "Gib den IP Banngrund ein", "IP bannen", "Abbrechen");
    if(listitem == 6) return ShowPlayerDialog(playerid, 1342, DIALOG_STYLE_INPUT, "Rang ändern", "Gib den gewünschten Rang ein", "Rang setzen", "Abbrechen");



    }
    }


    Dialog 1344 (CP Prison):

    if(dialogid == 1344)
    {
    SavedText[playerid] = inputtext[playerid];
    if(SavedText[playerid] > 99 || SavedText[playerid] < 5) return ShowPlayerDialog(playerid, 1444, DIALOG_STYLE_INPUT, "Spieler ins CP Prison stecken", "Gib die gewünschten Checkpoints ein", "CPs setzen", "Abbrechen");
    if(!response) return SendClientMessage(playerid, 0xff0c29ff, "Auswahl abgebrochen.");
    else
    {
    ShowPlayerDialog(playerid, -1, 0, "", "", "","");
    ShowPlayerDialog(playerid, 1345, DIALOG_STYLE_INPUT, "Spieler ins CP Prison stecken", "Gib den gewünschten Grund ein", "Grund angeben", "Abbrechen");
    return 1;
    }
    }


    Dialog 1345(Grund):

    if(dialogid == 1345)
    {
    new target,str[140], reason[64], cps;
    target = ClickedPlayer[playerid];
    reason[playerid] = inputtext[playerid];
    cps = SavedText[playerid];
    if(!response) return SendClientMessage(playerid, 0xff0c29ff, "Auswahl abgebrochen.");
    else
    {



    if(pJailed[target] == true)
    {
    return SendErrorMessage(playerid, "Der Spieler befindet sich bereits im CP Prison.");
    }



    MaxCheckPoints[target] = cps;



    //Save Old Data
    SaveOldData(target);



    //Let's Jail
    ResetPlayerWeapons(target);
    ShowCPTextDraws(target);
    format(str, sizeof(str), "PRISON: {FFFFFF}%s {FFFF00}hat {FFFFFF}%s {FFFF00}mit CP Jail(%d CPs) bestraft. [Grund: {FFFFFF}%s{FFFF00}]", GetName(playerid), GetName(target), cps,reason);
    SendClientMessageToAll(COLOR_YELLOW, str);
    SetPlayerPos(target, -1398.103515,937.631164,1036.479125);
    SetPlayerInterior(target, 15);
    SetPlayerVirtualWorld(target, 77);
    pJailed[target] = true;
    RandomCheckPointCreate(target);
    printf("[warning] %s hat %s für %d CP's ins CP Prison gesteckt.",GetName(playerid),GetName(target),cps);
    return 1;
    }
    }

    Hallo,
    ich erstelle momentan eine Liste bei OnPlayerClickPlayer wenn ein Teamitglied ein Spieler anklickt kriegt er ein Dialog indem er den Spieler bestrafen kann etc. Wenn man das Adminlevel 4 hat kriegt man die Auswahlmöglichkeit "Räng ändern" hinzu, diese funktioniert aber nicht, weil die in der Textbox eingegebene Zahl als 0 ausgegeben wird egal was man reinschreibt.


    OnPlayerClickPlayer:

    if(Player[playerid][Level] == 4)
    {
    ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "{FFFF00}Admin Menü", "{FFFF00}Spieler kicken\n{15ff00}Spieler muten\n{FF0000}Spieler bannen\n{ff7400}Spieler IP bannen\n{FFCC00}Rang ändern", "Auswählen", "Abbrechen");
    ClickedPlayer[playerid] = clickedplayerid;
    }


    OnDialogResponse:

    if(dialogid == 1337)
    {
    if(!response) return SendClientMessage(playerid, 0xFF0C29FF,"Auswahl abgebrochen.");
    else
    {
    if(listitem == 0) return ShowPlayerDialog(playerid, 1338, DIALOG_STYLE_INPUT, "Spieler kicken", "Gib den Kickgrund ein", "Kicken", "Abbrechen");
    if(listitem == 1) return ShowPlayerDialog(playerid, 1339, DIALOG_STYLE_INPUT, "Spieler muten", "Gib den Mutegrund ein", "Muten", "Abbrechen");
    if(listitem == 2) return ShowPlayerDialog(playerid, 1340, DIALOG_STYLE_INPUT, "Spieler bannen", "Gib den Banngrund ein", "Bannen", "Abbrechen");
    if(listitem == 3) return ShowPlayerDialog(playerid, 1341, DIALOG_STYLE_INPUT, "Spieler IP bannen", "Gib den IP Banngrund ein", "IP bannen", "Abbrechen");
    if(listitem == 4) return ShowPlayerDialog(playerid, 1342, DIALOG_STYLE_INPUT, "Rang ändern", "Gib den gewünschten Rang ein", "Rang setzen", "Abbrechen");
    }
    }


    if(dialogid == 1342)
    {
    new string[128], target, level;
    ClickedPlayer[playerid] = target;
    inputtext[playerid] = level;
    if(!response) return SendClientMessage(playerid, 0xff0c29ff,"Auswahl abgebrochen.");
    if(isnull(inputtext) || !IsNumeric(inputtext) || level > 4) return ShowPlayerDialog(playerid, 1342, DIALOG_STYLE_INPUT, "Rang ändern", "Gib den gewünschten Rang ein", "Rang setzen", "Abbrechen");
    else
    {
    Player[target][Level] = level;
    SavePlayer(target);
    format(string,sizeof(string),"%s hat %s's Rang geändert zu: %s",GetName(playerid),GetName(target),GetRang(target));
    SendAdminMessage(1,string);
    printf("[warning] %s ändert das Adminlevel von %s auf %s(%d)",GetName(playerid),GetName(target),GetRang(target),level);
    return 1;
    }
    }

    Wo ist der Fehler?

    Benutze das Script jetzt auch auf meinem Server, funktioniert wirklich gut, danke!


    EDIT:
    Ich hätte noch eine Idee fürs Script, undzwar wenn niemand im CP Prison ist und man /prisonlist eingibt passiert nichts, wie wäre es wenn man da eine Nachricht im Chat kriegt dass niemand im CP Prison ist?


    EDIT2:
    Hier mal ne Idee wie man das umsetzen könnte:

    CMD:prisonlist(playerid)
    {
    new cQuery[1024];
    if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein Supporter sein um diesen Befehl zu benutzen.");
    foreach(new i: Player)
    {
    if(pJailed[i] == true)
    {
    format(cQuery, sizeof(cQuery),"{FFFF00}%s {FFFFFF}|| Verbleibende CP's: {FFFF00}%d\n", GetName(i), MaxCheckPoints[i]-CheckPointCounter[i]);
    ShowPlayerDialog(playerid, D_PRISONLIST, DIALOG_STYLE_MSGBOX, "Spieler im CP Prison", cQuery, "Schliessen", "");
    }
    }
    if(strlen(cQuery) < 1) ShowPlayerDialog(playerid,D_PRISONLIST,DIALOG_STYLE_MSGBOX,"{FFFF00}Spieler im CP Prison", "Es ist niemand im CP Prison.","Schliessen","");



    return 1;
    }