Beiträge von Goldkiller

    Trotzdem noch Fehler.
    if(!IsPlayerInRangeOfPoint(pID /* pID ist noch "leer bzw 0 */,10,x,y,z))return SendClientMessage(playerid,HELLBLAU,"Du kannst den Spieler nicht ins Gefängnis stecken da er nicht in deiner Nähe ist");
    if(sscanf(params,"us",pID /* Erst "jetzt" wird pID zugewiese bzw geprüft */,Zeit))return SendClientMessage(playerid,HELLBLAU,"Benutze: /Arrest [PLAYERID] [ZEIT]");
    // Reihenfolge also tauschen

    Je nach sscanf Version fehlt auch bei s die Größe von Zeit.

    Geht natürlich, dazu müsstest du dir nur die Sounds besorgen und irgendwo als Audiostream hinterlegen.
    Vom Prinzip in etwa so:

    new url[32];
    switch(count) {
    case 0: url = "url/sound_5.mp3";
    case 1: url = "url/sound_4.mp3";
    case 2: url = "url/sound_3.mp3";
    case 3: url = "url/sound_2.mp3";
    case 4: url = "url/sound_1.mp3";
    }
    loopPlayers( playerid ) { /*PlayerPlaySound muss raus,willst ja kein "piepen" */
    StopAudioStreamForPlayer(..);
    PlayAudioStreamForPlayer(... , url , ...);
    }

    Schwer zu sagen wie du es löst.
    Welche Daten verwendest du denn, um den Server mit der Datenbank zu verbinden ( host, db, user, pw eventuell ). Hast du mal probiert, mit localhost zu verbinden ?
    Je nach Host kann es sein, dass externe Verbindungen zur Datenbank nicht gestattet werden. Ob das jetzt bei dir auch der Fall ist kann ich nicht sagen.
    Zumindest ist es schon mehr sehr gut,dass du dir den Fehlercode hast ausgeben lassen bzw hier gepostet.

    Zitat

    #EDIT: _Advanced_: Also ich habe alles nachgeguckt und es ist alle okay, wie es sein sollte...


    Heisst aber nicht,dass es dann auch fehlerfrei ist.
    Da du ja das crashdetect Plugin nutzt, setzt auch die Compile-Flags richtig:
    http://forum.sa-mp.com/showpost.php?p=1253632&postcount=7
    Dann würdest du zu folgender Aussage des Plugins auch die konkrete Zeile angezeigt bekommen:

    Zitat

    [18:54:36] [debug] Run time error 4: "Array index out of bounds"
    [18:54:36] [debug] Accessing element at negative index -1

    PHP
    $source = "SELECT Name,Leader FROM Users_AL WHERE Name = '".$username."' AND Leader = 1";
    mysql_query($source) OR die(mysql_error()); // <-- z.B. $result = mysql_query($source)
    if(!mysql_num_rows($source)){//LINE 16 <-- ja,weil $source ein STRING ist und nicht das Ergebnis von mysql_query()

    Das Problem ist das sizeof().
    sizeof(ShuttleParkX[playerid])
    Das wird nicht klappen bei enums. Anstatt o.g. benutzt direkt die Größe.
    format(ShuttleParkX[playerid], 16 /* als Beispiel, weiss die Größe nicht die du verwendest */ ,"%.4f",ShuttleMissions[rand][LandX]);


    Abgesehen davon solltest du Floats als Floats speichern und nicht als String ( siehe ScriptingFreak ).

    Der Code hilft dazu aber nicht.
    Du zeigst nur eine Variable. Nicht aber, wie du die Route durchlaufen lässt. Merk dir lieber,dass zu viele Informationen besser sind als zu wenig.

    Mit error_logging(E_ALL) hättest du wahrscheinlich ausgegeben bekommen, dass die Variable $money undefiniert ist.
    $money ist nur innerhalb der while() Schleife gültig, außerhalb dürfte sie nicht mehr existieren. Außerdem ist $money kein guter Variablenname für eine E-Mail Adressen ;)


    Du könntest:
    a) <span class="param">EMAIL: <?php $money ?></span> in die while Schleife packen.
    b) $money außerhalb der while-Schleife als Variable deklarieren. ( ähnlich wie $username oder $query )

    Spoiler anzeigen
    Eine while-Schleife brauchst du auch nicht unbedingt, lasse ich jetzt aber mal außen vor.

    Zu sanitize:
    sanitize macht auch nur wenig Sinn an dieser Stelle. Du machst es VOR einem SQL Kommando und nicht NACHDEM du bereits die Daten erhalten hast.


    //Edit:

    PHP
    $money = sanitize($_POST['EMAIL']);


    Ach komm, wieso $_POST ? $row war doch richtig :/ Alles steht in $row:

    PHP
    echo "<pre>",print_r($row),"</pre>";

    Mit error_logging(E_ALL) hättest du wahrscheinlich ausgegeben bekommen, dass die Variable $money undefiniert ist.
    $money ist nur innerhalb der while() Schleife gültig, außerhalb dürfte sie nicht mehr existieren. Außerdem ist $money kein guter Variablenname für eine E-Mail Adressen ;)


    PHP
    mysql_real_escape_string($money);


    Wozu ?


    //Edit: Dann ließ es lieber nochmal nach :p
    http://www.php.net/manual/de/f…ql-real-escape-string.php
    Auslesen tust du eigentlich mit "mysql_query" und "mysql_fetch_assoc" in deinem Beispiel.

    Ich weiß gehört hier zwar nicht rein, aber ist die Abfrage so richtig?


    if(IsPlayerInWater(playerid) == 3)


    Ich möchte abfragen ob er die Schwimmanimation ausführt aber nicht im Wasser ist.
    /edit So funktioniert das nicht, irgendwas mache ich da falsch :evil:


    Du machst nicht unbedingt etwas falsch. Da ist ein Fehler im Quellcode:


    new idx = GetPlayerAnimationIndex(playerid); // <---
    new lib[32], name[32];
    GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32); // <-- idx statt GetPlayerAnimationIndex

    for(new i, size = sizeof(WaterCords); i != size; i++) // <-- sizeof ist keine Funktion. Ich weiss das Fachwort nicht, jedenfalls ist in der AMX der Wert wie n Konstante drin. Per DeAMX wird man das sicherlich sehen


    if(x >= WaterCords[i][0] && x <= WaterCords[i][3] && y >= WaterCords[i][1] && y <= WaterCords[i][4])
    {
    // if( ... ) { }
    break; // <- Hier vllt ein break. Kann mir nicht vorstellen, dass es Wasserplanen gibt die sich in den Koordinaten ( X , Y ) überschneiden. Sollte man vielleicht mal prüfen ob es wirklich so ist.
    }


    // den Wert 3, wenn der Spiele schwimmt, aber nicht im / unter Wasser ist.
    if(strcmp(animlib, "SWIM", true)) // <-- dann aber strcmp() == 0
    {
    return 3;
    }


    else return 2; // <-- Geschmackssache, aber das "else" braucht man ja nicht unbedingt
    else return -1; // ""

    Du änderst den Skin pet SetPlayerSkin an der falschen Stelle.


    if(PlayerInfo[playerid][pMember] == 0){
    if(SelectedSkin[playerid] > 6){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    }

    Die Abfrage mit > 6 ist bestimmt dazu gut, um wieder bei 0 mit dem Zählen anzufangen sobald man am Ende der Skins angekommen ist. Du änderst aber den Skin innerhalb dieser Abfrage, würde also heißen, erst wenn man 6 7x den "nächsten/weiter" Skin genommen hat, wird wieder der Skin mit Index 0 von ZiviSkins_mann gewählt.
    Du solltest die Änderung des Skins mit SetPlayerSkin nicht in der if( > 6 ) Bedingung machen, sondern danach.
    if(PlayerInfo[playerid][pMember] == 0){
    if(SelectedSkin[playerid] > 6){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    }
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); // <--
    }
    Denn du willst ja bei jedem "Weiter" den Skin wechseln und nicht nur, wenn du am Ende bis am Anfang angekommen bist.


    //Edit:
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    Das kannst du wahrscheinlich auch aus der if( > 6 ) Bedingung raus ziehen und vor SetPlayerSkin einfügen.

    Da es sich bei Daniel Benz um Hosting4Gamer und noch X weitere Multiaccounts hat, wird eure Werbung geschlossen.
    H4G | André H. hat das ganze zusätzlich nochmal bestätigt, dass der Benutzer "Daniel Benz" der rechtmäßige Eigentümer ist und somit hier eine Vielzahl an Multiaccounts hat.


    Ihr habt jetzt hier offiziell ein Verbot, weiterhin für "Hosting4Gamer" Werbung zu machen.

    Zitat

    if(strcmp(inputtext,dini_Get(Spieler,"Passwort"),true))


    Das ist falsch. Mit dieser Abfrage ist jedes Passwort "richtig" außer das echte Passwort.
    Dein Problem hast du damit definitiv nicht gelößt.


    Ich verweise daher nochmal auf den Debug Tipp aus meinem vorherigem Post.


    Die Funktion loadPlayer() solltest du trotzdem noch posten.

    Zitat

    CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '1', `Geld` = '1000' WHERE `Name` = '3231')


    Du nennst dich wirklich 3231 ? :-0

    Zitat

    Noch was : Ich hab ingame 15k er schreibt in die datenbank 1k ich hab 998 : er schreibt in die datenbank 1k immer 1k


    PInfo[playerid][pGeld] != GetPlayerMoney().
    Eventuell hast du 998 bei Set/GetPlayerMoney und nicht bei PInfo[playerid][pGeld]. Prüf mal nach, ob du dich richtige Variable verwendest.


    Zitat

    [17:50:01] CMySQLHandler::Query(SELECT `passwort` FROM `accounts` WHERE = '3231') - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '3231'' at line 1)

    Da fehlt der Name der Spalte ( Name ).