Beiträge von MiniYoda

    Kannst du das bitte noch einmal in Deutsch schreiben, wie sieht dein System aus? Wie restartest du denn deinen Server? Wie setzt du deinen Skin? Wird der Skin gesichert? Wie sieht der Quellcode aus?

    Es gibt noch einen weiteren Callback, der


    OnPlayerRequestSpawn(playerid) heißt


    Schau mal in deinem Script, wenn nicht füge ihn hinzu. Dieser Callback wird aufgerufen, wenn der Spieler auf "Spawn" drückt oder die Spawntaste betätigt.


    Returnst du false oder 0 in diesem Callback spawnt die Person nicht,
    returnt du true oder 1 spawnt sie.

    Auf den Link klicken und lesen!


    Sorry, habe gerade total gepennt, viel zu früh für einen Studenten.


    public OnPlayerRequestSpawn(playerid)


    das ist der richtige Callback.


    Hier return false; wenn der Spieler nicht spawnen soll, returnt true; wenn er spawnen soll.


    Guten Morgen -.-

    Also die Spawnmenulösung geht nur über OnPlayerRequestClass und return true; (zum Spawnen) und return false; (zum nicht Spawnen).


    Natürlich kannst du dir auch einen eigenen Skinshop bauen.


    Hierfür packst du alle deine Skins in ein Array und nimmst einen Spieler bezogenen Counter, der Skin für Skin durchgeht.


    Ferner musst du dir dann noch OnPlayerKeyStateChange anschauen, wahlweise kannst du es auch via "klickbare" Textdraws lösen (Dann wäre der Callback OnPlayerClickTextDraw).


    edit:


    Du musst dann nach OnPlayerSpawn den Spieler in die Auswahl senden...

    Du machst das auch ein wenig umständlich, wenn du die gesammte tabelle auslesen willst:


    new string[256];
    mysql_query("SELECT * FROM hierdernamedertabelle");
    mysql_store_result();
    while(mysql_retrieve_row())
    {
    mysql_fetch_field_row(string, "namederspalte");
    }



    Die While-Schleife liest Zeile für Zeile aus, das heißt hier geht das System jetzt Zeile für Zeile aller (siehe Abrage) Einträge durch. Einen Spaltenteil (Spalte: Name beispielsweise) erhälst du durch das fetchen.

    Du kannst beispielsweise mal testen wie hoch du selbst mit einem Fahrzeug fliegst bzw. die Zeit die du in der Luft bist. Dann erstellst du eine Abfrage, die Höhe und Dauer in der Luft misst (gettime() usw.).


    So kannst du die meisten Cheater ausfiltern. Auch ein Trick ist die Abfrage über die Veränderung des Geldes. Du kannst ja auch ein maximales Limit für die Veränderung des Geldes pro 10 Sekunden einführen.

    Ich durfte mal mit Nero zusammenarbeiten und kann seine Angangement und seine Arbeit schätzen. Wer qualitativ ordentliche und auch auf längeren Zeitraum gute, schnelle und kommunikative Lösungen sucht, ist hier richtig. Viel Erfolg dir, Nero!

    :D nein die Abfrage, ob IsAnyFarmerOnline ist muss selbstverständlich außerhalb der Schleife stehen, denk' doch mal logisch:


    Erst fertigen wir einen Fragebogen an: new bool:IsAnyFarmerOnline = false; (Bool := kann nur false und true enthalten)


    Dann befragen wir jede Person, ob sie farmer ist (= Forschleife)
    Wenn die befragte Person Farmer ist, notieren wir das (= In der For-Schleife: IsAnyFarmerOnline = true;)


    nach der Umfrage werten wir Sie aus, d.h. wir können erst NACH der For-Schleife auswerten:
    Also NACH !! der For-Schleife: if (IsAnyFarmerOnline == false) oder kürzer if (!IsAnyFarmerOnline)

    ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen. Ich werde absofort die Forensuche nutzen.



    --> http://forum.sa-mp.com/showthread.php?t=102865


    Der wohl beste, den es momentan gibt.

    floatround(health, floatround_round);
    new newhealth;
    newhealth= health-100;


    health ist weiterhin ein Float: Floatround returnt nur das Integer



    new newhealth;
    newhealth= floatround(health, floatround_round)-100;



    wenn das nicht geht, speicher floatround vorher in eine normale Int_Var ab und arbeite dann damit weiter.