Ein Bug, den ich nicht Nachvollziehen kann...

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey Ho, ich mal wieder


    Folgendes Problem:


    Ich erstelle mir Propertys diese man dann Betreten kann etc.
    Das Problem dabei ist, dass ich wenn ich Shops Erstelle wie Burger Shoot oder Pizzer Hut oder sowas, diese nicht Betreten kann.
    Die Häuser kann ich Betreten komischerweiße, obwohl es im Selben Script aufgebaut ist.


    Hier mal der Code:
    ShowDialog:Shop(playerID)
    {
    FormatNew:title[64](LanguageString(playerID, StringID:17("Shop")), GetMySQLValue("properties", "name", "id", val2str(PVar:playerID[DIALOGPROPERTYID])));
    new options[1024];
    AddLine(options, LanguageString(playerID, StringID:268("Enter")));// Item 0
    AddLine(options, LanguageString(playerID, StringID:328("Sell")));// Item 1
    AddLine(options, LanguageString(playerID, StringID:476("Lock/Unlock")));// Item 2
    CreateDialog(playerID, "Shop", DIALOG_STYLE_LIST, title, options, "OK", LanguageString(playerID, StringID:165("Cancel")));
    }


    DialogResponse:Shop(playerID, response, listItem, inputText[])
    {
    if (response){switch (listItem)
    {
    case 0:// Enter
    {
    printf("Press Button Enter");
    MySQLQuery("SELECT `locked` FROM `properties` LEFT JOIN `pickups` ON `pickups`.`id` = `properties`.`pickupId` WHERE `properties`.`id` = '%d' AND `locked`", PVar:playerID[DIALOGPROPERTYID]);
    mysql_store_result();
    printf("MySQL Query Loading... Locking or not = PropertyID:%d", PVar:playerID[DIALOGPROPERTYID]);
    new isLocked = mysql_num_rows();
    mysql_free_result();
    printf("MySQL Query Loaded...");
    if (isLocked)
    {
    printf("House is Locked...");
    SendClientMessage(playerID, COLOR_ERROR, LanguageString(playerID, StringID:481("This house is locked!")));
    }
    else
    {
    printf("Teleporting to Property Iterior");TeleportToProperty(playerID, PVar:playerID[DIALOGPROPERTYID]);
    }
    printf("Entring... ");
    } //.... Code geht hier weiter aber das ist der Enter...


    Die IDs, etc. sind alle Vorhanden auch alles in der MySQL datenbank stimmt und ich bekomme auch keine MySQL errors...
    Print geht auch bis Entring... er zeigt mir alle printfs an...


    Hier noch TeleportToProperty:
    TeleportToProperty(playerID, propertyID)
    {
    new interiorID = strval(GetMySQLValue("properties", "interiorId", "id", val2str(propertyID)));
    if (interiorID)
    {
    if (TeleportToInterior(playerID, interiorID)){printf("TeleportToProperty???");
    PVar:playerID[CURRENTPROPERTYID] = propertyID;
    SetPlayerVirtualWorld(playerID, propertyID);return true;
    }
    }
    return false;
    }


    Die TeleportToInterior läd er



    //Edit ich hab nun herrausgefunden, wo der Fehler ist und zwar Liest er nicht die PropertyID...
    printf("Press Button Enter");
    MySQLQuery("SELECT `locked` FROM `properties` LEFT JOIN `pickups` ON `pickups`.`id` = `properties`.`pickupId` WHERE `properties`.`id` = '%d' AND `locked`", PVar:playerID[DIALOGPROPERTYID]);
    mysql_store_result();new isLocked = mysql_num_rows();
    printf("MySQL Query Loading... Locking? = %d on PropertyID:%d", isLocked, PVar:playerID[DIALOGPROPERTYID]);
    mysql_free_result();
    printf("MySQL Query Loaded...");
    if (isLocked)
    {
    printf("House is Locked...");
    SendClientMessage(playerID, COLOR_ERROR, LanguageString(playerID, StringID:481("This house is locked!")));
    }
    else
    {
    printf("Teleporting to Property Interior");
    printf("TeleportToProperty %d", PVar:playerID[DIALOGPROPERTYID]);
    TeleportToProperty(playerID, PVar:playerID[DIALOGPROPERTYID]);
    }
    printf("Entring... ");


    Aber wie man sieht, lese ich alles normal aus.


    Das steht dann in der Log:

    Code
    [2016-10-24 18:08:28] Press Button Enter
    [2016-10-24 18:08:28] MySQL Query Loading... Locking? = 0 on PropertyID:0
    [2016-10-24 18:08:28] MySQL Query Loaded...
    [2016-10-24 18:08:28] Teleporting to Property Interior
    [2016-10-24 18:08:28] TeleportToProperty 0
    [2016-10-24 18:08:28] Entring...

    Der Server: [GRG]Grand Racing Game wurde 2014 Eingestampft.
    Weitere Infos: Klick Mich

    4 Mal editiert, zuletzt von AeroxTobi ()

  • Das Problem ist, dass er ständig hier das einrücken weg macht...


    case 0:// Enter
    {
    printf("Press Button Enter");
    MySQLQuery("SELECT `locked` FROM `properties` LEFT JOIN `pickups` ON `pickups`.`id` = `properties`.`pickupId` WHERE `properties`.`id` = '%d' AND `locked`", PVar:playerID[DIALOGPROPERTYID]);
    mysql_store_result();
    new isLocked = mysql_num_rows();
    printf("MySQL Query Loading... Locking? = %d on PropertyID:%d", isLocked, PVar:playerID[DIALOGPROPERTYID]);
    mysql_free_result();
    printf("MySQL Query Loaded...");
    if (isLocked)
    {
    printf("House is Locked...");
    SendClientMessage(playerID, COLOR_ERROR, LanguageString(playerID, StringID:481("This house is locked!")));
    }
    else
    {
    printf("Teleporting to Property Interior");
    printf("TeleportToProperty %d", PVar:playerID[DIALOGPROPERTYID]);
    TeleportToProperty(playerID, PVar:playerID[DIALOGPROPERTYID]);
    }
    printf("Entring... ");
    }


    Es ist komisch, weil es einfach genau gleich ist, wie bei den Häusern und bei den Häusern funktioniert es komischerweiße...


    Hier mal zum vergleich das von den Häusern:


    case 0:// Enter
    {
    MySQLQuery("SELECT `locked` FROM `properties` WHERE `id` = '%d' AND `locked`", PVar:playerID[DIALOGPROPERTYID]);
    mysql_store_result();
    new isLocked = mysql_num_rows();
    mysql_free_result();
    if (isLocked)
    {
    SendClientMessage(playerID, COLOR_ERROR, LanguageString(playerID, StringID:481("This house is locked!")));
    }
    else
    {
    TeleportToProperty(playerID, PVar:playerID[DIALOGPROPERTYID]);
    }
    }



    Hoffe das Einrücken klappt etz so ^^


    //Edit
    Kann mir denn keiner Helfen :(

    Der Server: [GRG]Grand Racing Game wurde 2014 Eingestampft.
    Weitere Infos: Klick Mich

    Einmal editiert, zuletzt von AeroxTobi ()

  • Prüf deinen Query doch mal mit PhpMyAdmin..und lass dir ausgeben..was dir da so angezeigt wird :)


    Ich denke dein Query ist nicht ganz korrekt :hm:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Dann gib mal in SQL klare werte an..ich glaub dieses AND `locked` funzt so nicht...mach mal AND `locked` = 1

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Jetzt gibt er mir aber immer wieder nur einen Null Datensatz ab. Er gibt mir egal welchen SQL befehl ich rein mache immer nur Null...


    SELECT * FROM `properties` WHERE `id` ORDER BY `id` ASC hab ich jetzt Probiert, gibt mir trotzdem eine id Null aus...
    Die tabelle properties ist auch mit pickups geknüpft, aber mit ner Verknüpfung kommt genau das selbe raus.

    Der Server: [GRG]Grand Racing Game wurde 2014 Eingestampft.
    Weitere Infos: Klick Mich