Beiträge von Oreagel

    Hallo erstmal, habe ein kleines Anticheat gebaut das aber nur Waffenhack & Ping kickt / bannt.
    Hab mir von anderen Anticheats versucht anti moneyhack einzubauen, aber immer kommen errors über errors..
    Hier der bisherige Pawno Text:
    #include a_samp


    #define maxPingWarns 5
    #define maxPing 350


    new
    i = 0,
    ip[16],
    str[64],
    s = 0,
    wep,
    ammo,
    n[MAX_PLAYER_NAME],
    pingWarns[MAX_PLAYERS],
    pingVar[MAX_PLAYERS];


    public OnGameModeInit()
    {
    SetTimer("Checking", 1000, false);
    return 1;
    }


    @Checking();


    @Checking()
    {
    for(; i < MAX_PLAYERS; i++)
    {
    if(BadPlayerWeapons(i))
    {
    GetPlayerName(i, n, sizeof(n));
    GetPlayerIp(i, ip, sizeof(ip));
    for(; s < 13; s++) GetPlayerWeaponData(i, s, wep, ammo);
    format(str, sizeof(str), "%s wurde wegen Waffenhack (WaffenID: %d, Ammo: %d) gebannt. IP: %d", n, wep, ammo, ip);
    SendClientMessageToAll(0xFF0000FF, str);
    BanEx(i, "Weaponhack");
    }
    pingVar[i]++;
    if(pingVar[i] > 10 && pingWarns[i] < maxPingWarns)
    {
    pingVar[i] = 0;
    pingWarns[i]++;
    if(pingWarns[i] > maxPingWarns)
    {
    GetPlayerName(i, n, sizeof(n));
    format(str, sizeof(str), "%s wurde wegen zu hohem Ping (Ping: %d), gekickt.", n, GetPlayerPing(i));
    SendClientMessageToAll(0xFF0000FF, str);
    Kick(i);
    }
    format(str, sizeof(str), "Du hast schon %d von %d Warns bekommen! Bei 5 Warns gibt es Temp-Ban!", pingWarns[i], maxPingWarns);
    SendClientMessage(i, 0xFF0000FF, str);
    }
    }
    return 1;
    }


    stock BadPlayerWeapons(thePlayer)
    {
    new gun = GetPlayerWeapon(thePlayer);
    if(gun == 16 || gun == 18 || gun == 35 || gun == 36 || gun == 37 || gun == 38 || gun == 39) return 1;
    return 0;
    }
    Weis jemand wie ich jetzt noch Anti MoneyHack dazu mache? ?(

    Hallöle, ich bins mal wieder.
    Brauche noch 3 Sachen zur Vollendung meines FreeRoam DM Servers.
    1. Admin System um mich zu Spielern zu porten etc
    2. Register / Login System das Geld & Waffen speichert

    3. Gutes Anticheat ohne Bugs


    Antworten hier im Thread, per PN
    oder ICQ: 578377426.


    Bin dankbar für jede sinnvolle Antwort.

    Erstmal danke das du das bereitstellst, das bringt mich meinem Wunsch zu nem FreeRoam DM Script (70% Selfmade) schon ein Stück näher :)
    Nun Aber der Rückschlag:


    Zeile 17:
    #include <dudb>


    Hmpf...Bin ein Frischling, kann mir da jmd helfen?

    Hallo, ich suche schon seit längerer Zeit nach einem Scriptfetzen für eine Registrierung.
    Dieses ist für einen meiner Bastelscripte, einen FreeRoam DM Server.
    Es soll nichts besonderes sein, nur /register /login beinhalten.
    Nichts muss gespeichert werden, außer Geld und wenn möglich auch Waffen.


    Hoffe das lässt sich bei jemandem Einrichten, finde nirgends ein gescheites.


    Falls jemand nen Link findet -> hier bitte posten, hilft genauso sehr :)

    Sehr gut für Leute, die nachm GC der CJ Skin nervt: (Eher für Fun oder Freeroam Server gedacht)
    if( strcmp( cmdtext, "/andererskin", true) == 0)
    {
    SetPlayerSkin(playerid, 164);
    }



    // PROCESS OTHER COMMANDS



    return 0;
    }


    Einfach bei OnPlayerCommands unten ranhägen :D
    Ihr könnt auch andere ID´s bei SetPlayerSkin einsetzen, nur is das mein Lieblins-Skin :P
    Command könnt ihr auch ändern, is mir Schnuppe :D

    public OnPlayerCommandText( playerid, cmdtext[] )


    {
    new string[256];
    new playermoney;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new cmd[256];
    new giveplayerid, moneys, idx;


    cmd = strtok(cmdtext, idx);


    if(strcmp(cmd, "/help", true) == 0) {
    SendClientMessage(playerid, COLOR_DARKBLUE,"Freeroam DM wurde von Oreagel aus mehreren Scripten zusammengebaut.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"Tippe: /objective : um rauszufinden was du zu tun hast.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"Tippe: /Givecash [PlayerID] [Geld] um anderen Spielern Geld zu geben.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"Tippe: /tips : um ein paar Tipps vom Scripter zu bekommen.");
    return 1;
    }
    if(strcmp(cmd, "/objective", true) == 0) {
    SendClientMessage(playerid, COLOR_DARKBLUE,"Dieser Gamemode ist zum chillen, du wirst nie einen Game Over Bildschirm sehen.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"In FreeRoam DM, wenn du einen Spieler tötest, bekommst du sein ganzes Geld.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"D.H: Wenn du viel Geld hast und getötet wirst, bekommt dein Peiniger das Geld.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"Aber: Du musst nicht töten um an Geld zu kommen. Andere Geldquellen sind zb");
    SendClientMessage(playerid, COLOR_DARKBLUE,"Casinos.");
    return 1;
    }
    if(strcmp(cmd, "/tips", true) == 0) {
    SendClientMessage(playerid, COLOR_DARKBLUE,"Du spawnst mit einer Deagle, die dich nicht sehr viel weiterbringt.");
    SendClientMessage(playerid, COLOR_DARKBLUE,"Besorg dir bessere Waffen, halte Ausschau nach dem reichsten Spieler");
    SendClientMessage(playerid, COLOR_DARKBLUE,"und töte ihn. Du wirst immer wieder sterben, denn auch andere Spieler");
    SendClientMessage(playerid, COLOR_DARKBLUE,"haben Wege um an Geld zu kommen. Ganz einfach, oder?");
    return 1;
    }

    if(strcmp(cmd, "/Givecash", true) == 0) {
    new tmp[256];
    tmp = strtok(cmdtext, idx);


    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Tippe: /Givecash [PlayerID] [GeldMenge]");
    return 1;
    }
    giveplayerid = strval(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Tippe: /givecash [PlayerID] [GeldMenge]");
    return 1;
    }
    moneys = strval(tmp);

    //printf("givecash_command: %d %d",giveplayerid,moneys);



    if (IsPlayerConnected(giveplayerid)) {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = GetPlayerMoney(playerid);
    if (moneys > 0 && playermoney >= moneys) {
    GivePlayerMoney(playerid, (0 - moneys));
    GivePlayerMoney(giveplayerid, moneys);
    format(string, sizeof(string), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "You have recieved $%d from %s(player: %d).", moneys, sendername, playerid);
    SendClientMessage(giveplayerid, COLOR_YELLOW, string);
    printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
    }
    else {
    SendClientMessage(playerid, COLOR_YELLOW, "Diesen Betrag kannst du nicht hergeben.");
    }
    }
    else {
    format(string, sizeof(string), "%d ist kein Aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    return 1;
    }

    // PROCESS OTHER COMMANDS


    return 0;
    }
    Hoffe mir kann das jemand irgendwie hinzufügen ?(

    Hallo nochmals, ich möchte in meinen Script einen neuen Command einfügen.
    und zwar:


    public OnPlayerCommandText( playerid, cmdtext[] )
    {
    if( strcmp( cmdtext, "/meinskin", true) == 0)
    {
    SetPlayerSkin(playerid, 164);
    return 1;
    }
    return 0;
    }


    Wenn ich das zu den CMD´s unten reinmache,
    und kompilieren will kommt ein error
    das onplayercommandtext schon existiert.
    ich suche die stelle, machs unten ran aber dann kommt eine welle von errors und warnings.


    Das Script bis jetzt könnt ihr bei mir erfragen per pm (will nicht veröffentlichen :S )


    Weis jemand wo ungefähr / genau ich das einfügen muss ?(
    Würde mich über Antwort freuen :thumbup: