Beiträge von ErikSon

    ocmd:setcarheal(playerid,params[])
    {
    if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid,rot,"Du hast nicht den nötigen Admin Rang!");
    new car,Float:carheal,string[128];
    if(sscanf(params,"if",car,carheal))return SendClientMessage(playerid,rot,"Benutzung: /setcarheal [FahrzeugID] [Fahrzeug Health]");
    SetVehicleHealth(car,carheal);
    format(string,sizeof(string),"Du hast das Auto mit %.2f Carheal ausgerüstet",carheal); //1.
    return SendClientMessage(playerid,gelb,string); //2.
    }


    Probiers mal so!


    Wie soll das denn beim connecten gehen, wenn man kein Zugriff auf das Verzeichniss hat?

    Hier mal ein Update..
    Aktuelle Funktionen

    Spoiler anzeigen
    |AntiCheat Version 1.0|
    Anti Jetpack
    Anti Weaponhack
    Anti Healthhack
    Anti Armourhack
    Anti Moneyhack
    Pingkick
    Anti Badword
    Anti Speedhack
    Anti C-Bug
    Anti Spawnkill
    Anti Fakekill
    Anti Driveby
    Anti Spam
    Anti IP-Spam
    Anti TuningHack
    Anti Flyhack

    |AntiCheat Version 2.0|
    Anti Airbrake
    Anti Joypad
    Anti Godmode
    Anti Rapid-Fire
    Anti Vehicle Teleport
    Anti Teleporthack
    Anti Carsurf


    Pastebin
    Direkt


    Ja, in der neuen Version wird es nicht mehr so sein..
    Und das mit switch & case .. Das ist mir klar ;)



    Da ich einige Funktionen nicht ohne Testperson testen kann, suche ich hier eine Person, die sich zu Verfügung stellt.
    Voraussetzung ist Hamachi, da ich keinen Testserver habe..
    Bitte hier melden, falls jemand machen will ;)

    Sieht eigentlich recht sauber aus, wurden die oben gennanten Funktionen den auch ausgibig getestet? :)
    Würde mich mal interessieren.

    Aber ansonsten saubere Arbeit :)


    Danke dir ;)


    Naja, in der nächsten Version wird es, wie von Slider gesagt wurde, etwas sparender mit den Variablen und auch etwas sicherer mit den Funktionen ;)
    Es wurde zwar eig gut getestet, jedoch wurde auch schon ein Fail von MrPawn angegeben..
    Also, in der nächsten Version wirds schon etwas sicherer sein, da sollte dann eig nichts mehr schief gehen..



    Falls ihr noch neue Anti-Funktionen hat, bitte posten ;)

    Der Flyhack würde so eig nicht klappen
    if(!strcmp(lib, "SWIM", true))if(IsPlayerInWater(playerid))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",Name(playerid)),Kick(playerid);
    Du fragst so nur ab ob er schwimmt wenn schon müsstest du es so machen


    if(!strcmp(lib, "SWIM", true && !IsPlayerInWater(playerid))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",Name(playerid)),Kick(playerid);


    Danke dir, habe das übersehen ;)


    also es folgt folgendes:


    Zitat

    |AntiCheat Version 2.0|
    Anti Airbreak
    Anti Aimbot
    Anti Godmode
    Anti RapidFire
    Anti Carsurf


    Und bitte, wenn ihr eine Verbesserung postet ( neue Anti-Funktion ) bitte auch dazuschreiben, was es ist...

    Aber wie kann ich zum Beispiel sowas auslesen?
    1.Hausid: 1
    2. Preis: 2000
    3. Interior: 4
    4. Kasse: 2000


    //
    1,2000,4,2000
    //Wie kann ich das hier auslesen?
    // Das wird ja glaube bei GFs benutzt und da alles in einer Reihe ist, muss man dann nicht 10 Reihen fuer ein Haus machen..
    Wie macht man sowas, dass man dann zum Beispiel bei meinem Beispiel nur den Preis ausgeben lassen kann?
    Sowas moechte ich wissen, nicht so einfaches Zeug, wie ich ganz einfach etwas in eine Datei schreiben kann..


    Gibt es dazu vlt schon ein Tutorial?
    Sowas ist eig fuer vieles viel
    besser..

    stock LoadHaus()
    {


    new rows, fields, content[MAX_PLAYER_NAME],query[60];
    cache_get_data(rows, fields);
    format(query,sizeof(query),"SELECT * FROM `house`");
    mysql_query(1,query);
    mysql_store_result();
    if(!rows)return 1;
    for(new i = 0; i != rows; i++)
    {
    cache_get_row(i, 0, content);
    hausInfo[i][hID] = strval(content);


    cache_get_row(i, 1, content);
    hausInfo[i][hPreis] = strval(content);


    cache_get_row(i, 2, content);
    format(hausInfo[i][hBesitzer], MAX_PLAYER_NAME, "%s", content);


    cache_get_row(i, 3, content);
    hausInfo[i][hInterior] = strval(content);


    cache_get_row(i, 4, content);
    hausInfo[i][hX] = floatstr(content);


    cache_get_row(i, 5, content);
    hausInfo[i][hY] = floatstr(content);


    cache_get_row(i, 6, content);
    hausInfo[i][hZ] = floatstr(content);


    CreateHouseOnMap(i);
    }
    return printf("- | IFNO: Es wurden %i Häuser geladen. INFO | -", rows);


    }


    Das hättest du aber auch selber machen können..


    Zitat

    should return a value


    Ist doch klar?!


    Wird es aber nicht.. ( siehe markierte Stellen )


    Ja, daran liegt es auch..


    Mach den Code so:
    dcmd_adminmachen(playerid, params[])
    {
    new sID,prang;
    if(sscanf(params, "ui", sID, prang))return SendClientMessage(playerid, ROT, "Verwendung: /adminmachen [Spielerid][rang]");
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, ROT, "Du bist kein Admin, oder hast nicht die benötigten Rechte!");
    SpielerD[sID][Adminlevel] = prang;
    new nachricht[128],pname[MAX_PLAYER_NAME];
    GetPlayerName(sID,pname,MAX_PLAYER_NAME);
    format (nachricht,sizeof(nachricht),"Du hast %s den adminrang %i gegeben!",pname,prang);
    SendClientMessage(playerid, GRÜN, nachricht);
    GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
    format(nachricht,sizeof(nachricht),"Du hast von %s den Adminrang %i bekommen!",pname,prang);
    return SendClientMessage(sID, GRÜN, nachricht);
    }

    Ich nehme an es liegt an diesen beiden Stellen..
    oder?

    format (adminmachennachrichtanadmin,sizeof(adminmachennachrichtanadmin),"Du hast %s den adminrang %i gegeben!",GetPlayerName(sID),prang);


    format(adminmachennachrichtanbekommer,sizeof(adminmachennachrichtanbekommer),"Du hast von %s den Adminrang %i bekommen!",GetPlayerName(playerid),prang);