Beiträge von Goldkiller

    Deine Lösunger ist totaler Schrott,firestormZ.
    Wieso fügst du ein Callback unter OnPlayerStateChange ein und noch zusätzlich eine Funktion ? Das klappt nicht.


    Zitat

    Bei einem printf kommt:


    Auto Id: 0
    Auto Id: 1
    Auto Id: 2
    Auto Id: 3


    Und das obwohl es bis jetzt nur 3 Autos sind!


    Deine Auswertung der Daten ist falsch. So wirst du niemals richtige Daten erhalten.
    Vom Prinzip her ist die for-Schleife unnötig und du müsstest lediglich in der while-Schleife den Index für die Fahrzeuge ( z.B. i ) erhöhen.


    Spoiler anzeigen
    for(new i = 0; i <= MAX_CARS; i++) { // Wir machen also MAX_CARS's mal alles hier drunter
    while(mysql_fetch_row_format(data, "|")) { // Eine While Schleife durch ALLE Ergebnisse die wir durch store_result() haben.
    sscanf(data, "p<|>iffffii", CarInfo[i][ModelId], CarInfo[i][Car_PosX], CarInfo[i][Car_PosY],CarInfo[i][Car_PosZ],CarInfo[i][Car_PosA],CarInfo[i][CarColor1],CarInfo[i][CarColor2]);
    norm_car[i] = CreateVehicle(CarInfo[i][ModelId], CarInfo[i][Car_PosX], CarInfo[i][Car_PosY], CarInfo[i][Car_PosZ],CarInfo[i][Car_PosA],CarInfo[i][CarColor1],CarInfo[i][CarColor2],5);
    }
    printf("%d",i); // <-- i wird erst im NÄCHSTEN Schleifen Durchgang erhöht. Da haben wir aber keine weiteren Ergebnisse mehr in store_result(), da wir alle durch die while-Schleife ausgelesen haben
    }

    Ich mache es immer so:


    format(query, sizeof(query), "UPDATE `accounts` SET \
    `PosX` = '%f',\
    `PosY` = '%f',\
    `USW` = 'USW'
    WHERE `Name` = '%s'",
    PlayerInfo[playerid][pX],PlayerInfo[playerid][pY],SpielerName(playerid) );
    Mit dem Backslash \ kannst du den String in der nächsten Zeile fortführen.

    Die Funktion "mysql_real_escape_string" hat nichts mit dem Stehlen von Daten zu tun. Sie filtert lediglich die Eingabe um eventuellen Schadcode zu entfernen.

    Zitat

    Jedoch da auch ich nicht gerade sehr weit und fortgeschritten bin würde mich noch interessieren, worauf ist zu achten, welche Vorteile habe ich und was ich eventuell ganz wichtig ?!


    Nicht die Hilfsfunktionen alá mysql_get/set-String/Int/Float zu nutzen, da die einfach nur extrem schlecht sind und keine Vorteile von SQL Nutzen.Um sie nicht nutzen zu müssen,müsstest du dich aber zuerst mit SQL beschäftigen, um deine eigenen Querys schreiben zu können. Sollte aber vom Prinzip her keine große Hürde darstellen.


    Zitat

    Ich habe nun gesehen das es einige MySQL Systeme gibt, darunter ("R5, R6, und R7") was mich jetzt zu der Frage bringt wo sind hier die Unterschiede und unterstützt auch wirklich jedes System diese Plugin's ?


    Ich rate dir R7 bzw R8 nutzen. R8 ist die Folgeversion von R7, die paar Fehler verbessert haben soll. Jedenfalls funktionieren beide nur noch ausschließlich über Threaded Querys ( eventuell auch schon R6 ) . Selbst habe ich R8 nicht ausprobiert, denn R7 läuft bei mir Problemlos.
    Guter Erklärungen was dieses "Threaded" soll bzw bewirkt findest du hier:
    http://forum.sa-mp.de/san-andr…e-verbessern/#post1084007
    http://forum.sa-mp.de/san-andr…nktionen-threaded-querys/

    Zitat
    Spoiler anzeigen

    Ich möchte auch nicht das hier irgend Jemand mit Links wie Samp WIKI kommt, so clever bin ich auch das ich da von alleine nachsehen kann.

    Spoiler anzeigen

    Keine Wiki-Links ;)

    Das Script aber sicher auf R7 oder R8 ( allg. Threaded Querys ) zu stellen ist nicht ganz so einfach. Für den Einstieg mit MySQL eventuell zu schwierig.

    Wie Necktrox sagte,solltest du direkt das Passwort über das SQL Kommando prüfen lassen.

    SQL
    [..] AND `Passwort` = '$passwort'


    Dann müsstest du allerdings den Code etwas umbauen,da das Vergleichen der Passwörter per PHP nicht mehr notwendig ist.


    Lass dir doch mal zu Testzwecken das Array $pruefung und $passwort ausgeben.
    Übrigens,Passwörter nicht im Klartext speichern.

    Herzlichen Glückwunsch, du hast es geschafft die Zeile 3719 nicht zu markieren.
    Meinst du Jemand hat Lust die Zeile zu raten ? Es erspart Leuten die helfen können sinnlose Sucharbeit, indem du einfach dein Problem besser beschreibst.


    Wie soll denn auch jemals etwas in result stehen ? Da du anscheinend auf Threaded umsteigen willst, solltest du dir vorher nochmal die Anleitung dazu durchlesen. Es läuft nicht alles direkt nacheinander ab und greift ineinander.
    Das Ergebnis ( Ein Result,nicht deine Variable result ) ist erst im Callback "OnLoadMySQL" nutzbar, da es vorher nicht existiert.

    Das hier ist nicht der "Wünsch dir was"-Bereich.
    Woran scheitert denn deine Umsetzung eines solchen Befehles ? Das Hilft dir später viel mehr als eine Copy+Paste Lösung.

    Ja hier,Ich.


    Ich schlage dir Bitmanipulation vor, um folgende Variablen zu "kürzen":

    //Autosystem
    new bool:Motor[MAX_VEHICLES] = false; // <-- Das hier initialisiert nicht wirklich richtig.Das merkst du allerdings nicht,da standartmäüig alles sowieso mit 0 / false initialisiert wird.
    new bool:Tueren[MAX_VEHICLES] = false; // = { false,...}; -->
    new bool:TanktGerade[MAX_VEHICLES]=false;


    // == > Von 3 auf 1


    //BOOLS
    new bool:JobAnnahme[MAX_JOBS][MAX_PLAYERS];
    new bool:AktuellerCP[MAX_JOBS][MAX_PLAYERS];


    // == > 2 auf 1


    new bool:HatGemietet[MAX_PLAYERS];
    new bool:inHaus[MAX_PLAYERS];
    new bool:HatProbeFahrt[MAX_PLAYERS];
    new bool:AdminDuty[MAX_PLAYERS];
    new bool:TicketAngenommen[MAX_PLAYERS];


    // == > 5 auf 1


    Das klappt auch alles über weniger große Variablen.

    Mit OnPlayerUpdate kannst du eher prüfen,ob der Spieler überhaupt Ingame ist oder sich stattdessen im Menu oder auf dem Desktop befindet.
    Wenn du lediglich auf die Änderung der Position hinaus willst,dann sollte es ein einfacher Timer auch tun.
    Du musst dich erstmal für einen Weg entscheiden welches du als Kriterium für AFK festlegen willst.

    FacInfo[Faction][fFacExitY] = GetMySQLfloat("faction", "FacExitY", "id", SpielerInfo[Faction][fID]);
    Sicher,dass du bei SpielerInfo Faction und fID nutzen kannst ;) ? Der Fehler wird sicherlich wegen fID kommen,da es nicht in Bezug zum enum steht welches du wahrscheinlich für SpielerInfo verwendest.

    Macht halt eine public Funktion die nichts anderes tut,als Kick() auszuführen.Diese Funktion lässt du nach X Millisekunden aufrufen und übergibst ihr noch zusätzlich die Id des Spielers,der gekickt werden soll.
    DasNeo hat ja schon eine fertige Lösung gepostet ( wie langweilig ), allerdings mit dem Platzhalter "u" den es nicht gibt für SetTimerEx.

    Nein!
    Vergessen wir das ganze und nehmt uns die Verwarnungen weg!
    Ich bin seit 3 Jahren hier im Forum und hab keine Verwarnungen gehabt!
    Nehmt die Warnungen weg und schliesst die Themen und die Sache ist geklärt.


    Ich vergesse es aber nicht. Zumindest jetzt nicht, nachdem ihr hier auch von mehr oder weniger neutralen Usern gehört habt,dass es Spam ist/war.

    Zitat

    Spam im Smalltalk lal.


    SMALLTalk,nicht SPAMTalk.


    Zitat

    Mein fazit aus dem ganzen hier: Das zeigt mir mal wieder , wie tief manche gesunken sind. Manche halten sich eben für etwas gaanz besonderes und meinen das wenn sie den "Bestrafen-Button" drücken, sie mehr und mehr ihre Möchtegern-Macht demonstrieren können. Ja macht nur, es sitzen tatsächlich Menschen hinter diesen Beiträgen, ob ihr es glaubt oder nicht.


    Es sitzt tatsächlich auch Menschen hinter den Moderatoren,Super Moderatoren oder Administratoren...ob du es glaubst oder nicht.

    Zitat

    das ich in dem Small Talk Thema zum Meteroiteneinschalg in Russland geschrieben habe, das mein Joghurt noch bis nächste Woche haltbar ist und kein Meteroit einschlagen darf


    Deine Beiträge haben definitiv nichts zum Thema beigetragen.

    Zitat

    Godkiller, sag mal... gehtst du zum lachen in den Keller? Du gibst mir eine Verwarnung? Wofür?


    Nein. Ja . Spam . Übrigens Goldkiller,nicht Godkiller.

    Zitat

    Dafür das ich versucht habe ein wenig Spaß in ein Thema zu bringen versuche? Godkiller scheint wohl sehr gerne Verwarnungen zu verteilen, aber mal ehrlich, wie unnötig ist das denn bitte schön?


    Spaß ist nicht das Problem. Ich hab bereits den Spam im Thema gelöscht gehabt und noch dazu geschrieben,dass ihr es lassen sollt. Wenn du und Andere User dann weiter machst,soll ich doof zuschauen ?
    Wo das Forum hingekommen ist kannst du dich am Besten selber fragen, wenn du dir nochmal überlegst was für Quatsch in dem Thema alles stand.

    Zitat

    Ich bin mehr als 3x11 Jahre alt und weis schon was sich gehört. Darüberhinaus habe ich niemanden beleidigt oder persönlich verletzt.


    Dein Alter interessiert mich nicht und sollte auch keinen Anderen interessieren. Du wurdest auch nicht wegen Beleidigung verwarnt, nochmal zur Erinnerung.

    Zitat

    Überdenke mal deine Handlungen und überlege mal was du hier anrichtest. Deine Vergabe der Verwarnung macht den Anschein, das du nicht erst überlegst bevor du handelst, deswegen stufe ich dich bei mir persönlich als "unreif" ein.
    Naja, Weisheit kommt mit den Jahren, oder sie bleibt ganz aus.....


    Mit 3x11 Jahren ist bei dir die Weisheit wohl noch nicht angekommen. Trortzdem danke für deinen netten Worte.


    Hier nochmal deine Beiträge,vllt möchte sich ja Jemand selbst ein Bild davon machen.

    Spoiler anzeigen

    Moooment, das darf nicht passieren heute Abend. Mein Joghurt ist noch bis nächste Woche haltbar.

    Spoiler anzeigen

    ??? Komm schon, bist du auch einer derjenigen die zum Lachen in den Keller gehen? Jetzt übertreib mal nicht und komm wieder runter. Man man man.


    Zitat

    Jetzt fehlt natürlich noch eine Verwarnung für diesen Post hier.... kommt sicher noch....


    Ne,du kannst hier ruhig weiter posten.