Modcheck system !!! Helft mir

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
  • Guten Tag,
    ich möchte gerne ein Modcheck System entwickeln.
    Dieses soll detecten ob er bei der Explosion was verliert wenn nicht soll er gebannt werden wenn er was verliert wird er gehealt.!!!



    public check(playerid,targetid)
    {
    new target[MAX_PLAYER_NAME],Float:nh,string[256];
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
    GetPlayerName(targetid,target,sizeof(target));
    GetPlayerHealth(targetid,nh);
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Der Check wurde erfolgreich beendet!");
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Das Ergebnis wurde dem Teammitglied übermittelt.");
    format(string,sizeof(string),"[ModCheck] Du hast den Spieler '%s' (ID: %i) auf Godmode überprüft.",target,targetid);
    SendClientMessage(playerid,0x6FABFFFF,string);
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Ergebnis:");
    if(nh == 100) {//<- was ist das
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Godmode: {00FF00}Vorhanden{FFFFFF}!");
    SetPlayerHealth(targetid,100);
    } else {
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Godmode: {FF0000}Nicht vorhanden{FFFFFF}!");
    SetPlayerHealth(targetid,100);
    TogglePlayerControllable(targetid,0);
    }
    return 1;
    }


    Mit freundlichen Grüßen
    FerienFreak

  • Die Abfrage ist außerdem ziemlich schlecht..
    1. Speichere sein Leben in eine Variable
    2. Porte den Spieler irgendwo hin
    3. "Spawne" einige Explosionen zum Spieler ( 2- 3 Stück )
    4. Frage sein Leben ab ( JetzigesLeben >= VorigesLeben )
    5. Spawne den Spieler zurück
    6. Lasse dem Admin eine Message zurück


    Wenn du abfragst, ob sie immer noch auf 100 ist, kann jemand auch mit 50 HP & Godmode nicht erkannt werden..

  • Wie würdest du denn so ein System angehen.


    Hab es versucht wie aus Tutorial.


    ocmd:modcheck(playerid,params[])
    {
    new targetid,string[256];
    if(sscanf(params,"u",targetid))return SendClientMessage(playerid,0xFF5B00FF,"** Benutzung: /modcheck <Spieler-Name bzw. Spieler-ID>");
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
    new Float:px,Float:py,Float:pz,player[MAX_PLAYER_NAME],target[MAX_PLAYER_NAME];
    GetPlayerName(playerid,player,sizeof(player));
    GetPlayerName(targetid,target,sizeof(target));
    GetPlayerPos(targetid,px,py,pz);
    format(string,sizeof(string),"[ModCheck] Du wirst nun vom Teammitglied '%s' (ID: %i) auf Godmode überprüft.",player,playerid);
    SendClientMessage(targetid,0x6FABFFFF,string);
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Solltest du versuchen, den Check zu umgehen, wirst du permanent vom Server gesperrt!");
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Du wirst nun überprüft, bitte habe einen Moment Geduld...");
    SetPlayerHealth(targetid,100);
    SetPlayerArmour(targetid,0);
    CreateExplosion(px, py, pz, 12, 10.0);
    SetTimerEx("check",1500,false,"dd",playerid,targetid);
    return 1;
    }


    public check(playerid,targetid)
    {
    new target[MAX_PLAYER_NAME],Float:nh,string[256];
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
    GetPlayerName(targetid,target,sizeof(target));
    GetPlayerHealth(targetid,nh);
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Der Check wurde erfolgreich beendet!");
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Das Ergebnis wurde dem Teammitglied übermittelt.");
    format(string,sizeof(string),"[ModCheck] Du hast den Spieler '%s' (ID: %i) auf Godmode überprüft.",target,targetid);
    SendClientMessage(playerid,0x6FABFFFF,string);
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Ergebnis:");
    if(nh == 100) {
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Godmode: {00FF00}Vorhanden{FFFFFF}!");
    SetPlayerHealth(targetid,100);
    } else {
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Godmode: {FF0000}Nicht vorhanden{FFFFFF}!");
    SetPlayerHealth(targetid,100);
    }
    return 1;
    }

  • Naja immoment testen ich und ein Kumpel dieses System er hat Heal hack bei mod - S0beit an. Naja das System wird aktiviert und am ende steht da Nicht Vorhanden.


    Dann wenn man wärend es Aktiviert ist was Isst oder /sethp Id 100 macht wird es erkannt.
    Wie kann ich es machen, das es wenn er kein leben Verliert das es dann erkannt wird, bzw. was denken sie wie ich es am Cleversten machen kann.
    ErikSon:

  • Getestet! Klappt nun so:


    Spoiler anzeigen
    ocmd:modcheck(playerid,params[])
    {
    new targetid;
    if(sscanf(params,"u",targetid))return SendClientMessage(playerid,0xFF5B00FF,"** Benutzung: /modcheck <Spieler-Name bzw. Spieler-ID>");
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
    new Float:px,Float:py,Float:pz,player[MAX_PLAYER_NAME],string[144];
    GetPlayerName(playerid,player,sizeof(player));
    GetPlayerPos(targetid,px,py,pz);
    format(string,sizeof(string),"[ModCheck] Du wirst nun vom Teammitglied '%s' (ID: %i) auf Godmode überprüft.",player,playerid);
    SendClientMessage(targetid,0x6FABFFFF,string);
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Solltest du versuchen, den Check zu umgehen, wirst du permanent vom Server gesperrt!");
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Du wirst nun überprüft, bitte habe einen Moment Geduld...");
    SetPlayerHealth(targetid,100), SetPlayerArmour(targetid,0);
    SetTimerEx("check",2000,false,"dd",playerid,targetid);
    return CreateExplosion(px, py, pz, 0, 10.0);
    }

    Spoiler anzeigen
    forward check(playerid,targetid);
    public check(playerid,targetid)
    {
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
    new target[MAX_PLAYER_NAME],Float:nh,string[144];
    GetPlayerName(targetid,target,sizeof(target));
    GetPlayerHealth(targetid,nh);
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Der Check wurde erfolgreich beendet!");
    SendClientMessage(targetid,0x6FABFFFF,"[ModCheck] Das Ergebnis wurde dem Teammitglied übermittelt.");
    format(string,sizeof(string),"[ModCheck] Du hast den Spieler '%s' (ID: %i) auf Godmode überprüft.",target,targetid);
    SendClientMessage(playerid,0x6FABFFFF,string);
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Ergebnis:");
    if(nh >= 100) {
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Godmode: {00FF00}Vorhanden{FFFFFF}!");
    SetPlayerHealth(targetid,100);
    } else {
    SendClientMessage(playerid,0x6FABFFFF,"[ModCheck] Godmode: {FF0000}Nicht vorhanden{FFFFFF}!");
    SetPlayerHealth(targetid,100);
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Tut mir leid, aber als ich gesehen habe, dass du das MrMonat Script benutzt, wars bei mir eigentlich zuende.
    (Falls du es wirklich, ohne es zu wissen, benutzt, ist alles ok.)


    Damit hier aber nicht direkt von mir gespammt wird, versuch folgendes:


    Leben in Variable Speichern,
    Leben abziehen (durch Schüsse & Explosionen zur Sicherheit),
    Abfragen, ob dieser Spieler Leben verloren hat,
    das alte Leben & Armour wiedergeben und
    eine Nachricht ausgeben oder direkt bannen.


    Achte aber auf folgendes: Wenn der Spieler im Kampf ist, kann dies zu konflikten führen (durch Flames, durch Flucht etc).
    Somit solltest du ein anderes Anti-Cheat verwenden.


  • Hast du dir das Script mal angeschaut?
    Er gibt ihm vorher 100 HP, somit brauch er das Leben eig nicht in eine Variable setzen..


    Außerdem wird er ihn sicherlich tvn, und dann wird er bestimmt nicht den Test machen, wenn er gerade mit nem typen fighted


    //Aber wie du bzw ich schon vorher beschrieben haben, es waere besser, wenn er das Leben usw in eine Variable speichert und am besten auch noch irgendwo hinteleportiert..


    #Handy