Beiträge von Johnyy

    #include <a_samp>
    //----------------------
    forward AntiHack();
    //----------------------
    #undef MAX_PLAYERS
    #define MAX_PLAYERS 100 //Definiere deine Serverslots
    //----------------------
    public OnGameModeInit()
    {
    SetTimer("AntiHack",1000,1);
    }
    //----------------------
    public AntiHack()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerWeapon(i) == 35)
    {
    Ban(i);
    }
    }
    }
    }

    Ich habe ein AntiMoneyHack Script in meinem GameMode drinne, doch das Problem ist, wenn jmd. an einem Sprunkautomaten was kauft oder sein Auto repariert, wird das als Hacken angesehen.


    if(GetPlayerMoney(playerid) >= Geld[playerid])
    {
    if(GetMoney[playerid] == 1)
    {
    GetMoney[playerid] = 0;
    }
    else
    {
    ChangePlayerMoney(playerid, Geld[playerid]);
    new name[MAX_PLAYER_NAME];
    new string[MAX_STRING];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"(Antihack) %s hat sich Money ercheatet!",name);
    SendAdminMessage(COLOR_LIGHTRED,string);
    pMoneyWarns[playerid] += 1;
    if(pMoneyWarns[playerid] == 3)
    {
    Kick(playerid);
    }
    }
    }
    Geld[playerid] = GetPlayerMoney(playerid);


    Wie kann ich das machen, das er Werte ab 100$ scannt und net auch 1 oder so..

    Ich suche ein simplen Anti Money Hack.
    FoxHound's hat Probleme mit den Automaten.
    Junkbuster ist mir zuviel drinne.
    Ich suche einfach Anti Money Hack Filterscript oder inc.

    forward SendTeamMessage(team, color, string[]);


    public SendTeamMessage(team, color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[i] == team)
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }


    SendTeamMessage(2, COLOR_DBLUE, string); //Team 2
    SendTeamMessage(1, COLOR_DBLUE, string); //team 1


    So siehts beim GF aus, also wenn ich z.b. /d chat benutze, wird er an team 1 2 un 3 geschickt der string...

    GIbt es irgendnen TogglePlayerControllable mit Zeit, also wielange der gefreezed bleibt?
    Wäre nett wenn mir das jmd kurz machen könnte^^

    forward UnfreezeBiz();


    public UnfreezeBiz()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(bizdrinne[i] == 1)
    {
    if(PlayerInfo[i][pBankRobStarted] == 0)
    {
    TogglePlayerControllable(i, 1);
    return 1;
    }
    }
    }
    }
    return 1;
    }


    Wenn ein Spieler in ein Biz geht, soll er 5 Sekunden gefreezed werden, weil sons manche Objekte net geladen werden, so aber wenn jetz 2 Spieler auf einma in ein biz gehen werden sie zwar gefreezed, aber nur die id 0 wird wieder entfreezt? kp ich sehe gerade garnet den fehler :D

    Habe gerade kurz einen kleinen FS gemacht, eher gesagt einen PositionSaver.
    Ich finds nervig wenn ich /save mache, das er mir dann "AddPlayerClas...blablal" rausspuckt, ich möchte nur die X,Y,Z koordinaten.
    Der Befehl ist /sme & die Koordinaten werden in folgendem Format rausgegeben: "X,Y,Z || X,Y,Z || "
    Ihr benötigt eine "save.log" Datei in euren Scriptfiles, sie muss beschreibbar sein!


    forward SaveLog(string[]);


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/sme", cmdtext, true, 10) == 0)
    {
    new string[128];
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    format(string, sizeof(string), "%d,%d,%d || ", X,Y,Z);
    SaveLog(string);
    SendClientMessage(playerid,0xFFFFFF,"Koordinaten wurden in der save.log gespeichert.");
    return 1;
    }
    return 0;
    }


    public SaveLog(string[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s\n",string);
    new File:hFile;
    hFile = fopen("save.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    }

    public FM_OnPlayerUpdate(playerid)
    {
    if(GetPlayerMoney(playerid) != Cash[playerid])
    {
    if(pGetsMoney[playerid] == 1) { pGetsMoney[playerid] = 0; }
    else {
    ChangePlayerMoney(playerid, Cash[playerid]);
    new string1[MAX_STRING];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string1, sizeof(string1), "[Antihack] %s wurde wegen Moneycheat gekickt!", name);
    CheatLog(string1);
    format(string1, sizeof(string1), "[Antihack] %s wurde wegen Moneycheat gekickt!", name);
    SendClientMessageToAll(COLOR_LIGHTRED,string1);
    Kick(playerid);
    }
    }
    Cash[playerid] = GetPlayerMoney(playerid);
    }
    public GivePlayerCash(playerid, money)
    {
    pGetsMoney[playerid] = 1;
    GivePlayerMoney(playerid, money);
    return 1;
    }
    public ResetPlayerCash(playerid)
    {
    pGetsMoney[playerid] = 1;
    ResetPlayerMoney(playerid);
    return 1;
    }
    public ChangePlayerMoney(playerid, money)
    {
    pGetsMoney[playerid] = 1;
    ResetPlayerCash(playerid);
    GivePlayerCash(playerid, money);
    return 1;
    }