Tankstellen Laden Problem

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
  • Sehr geehrte Scripter Community,


    ich habe ein kleines Problem mit meinem Tankstellen System. Ich habe 21 Bizzen ... ID 1 - 17 + 21 sind Tankstellen. Das heißt das 18, 19 und 20 keine Tankstellen sind. Nun Lädt er allerdings die Tankstelle mit der ID 21 nicht ...


    Es soll nämlich die ID der Biz auch gleich die ID der Tankstelle sein Sprich BizID = 21 und TankstellenID = 21 (ist ja auch schon so eingerichtet).



    Bizcount wird durch meine vorherige Funktion Übergeben (21) ... Ich habe 18 Tankstellen (1-17 + 21) ... ich möchte ja das System Dynamisch haben damit ich ingame Bizzen erstellen kann.


    Jetzt frage ich mich, wieso nimmt er die Tankstelle mit der ID 21 nicht ? In der MySQL Error Log steht:



    Code
    [10:54:47] [ERROR] cache_get_value_name_float: invalid row index '20' (number of rows: '18') (...selfmade.pwn:2186)

    Ist ja auch eig. klar immerhin sind es 21 Bizzen aber nur 18 Einträge... Aber wie behebe ich dieses Problem ? komme nicht drauf... Habe schon versucht in der Schleife die 18, 19 und 20 mit continue zu überspringen


    Ich verzweifel langsam ;(


    MfG
    XonarZ

  • Entferne diese gegebenenfalls mal.

    Hat leider nix gebracht ... Sieht nun so aus:



    MfG
    XonarZ

  • Wird das bei OnGameModeInit aufgerufen?

    Ne, ich lasse erst die Bizzen laden und dann die Tankstellen. Sprich wenn die Bizzen geladen sind, habe ich bei meinem Public "OnLoadBiz" am ende den Query der dann die Tankstellen laden soll...


    Ich hab es mal testweise bei OnGameModeInit reingeschmissen, allerdings geht es dennoch nicht...


    MfG
    XonarZ

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hast du die Zeile entfernt?
    Wenn ja, poste bitte den Server Log mit den prints.


    Ich lass dir mal zum Vergleich alle Bizzen anzeigen + ID.


    MfG
    XonarZ

  • Es sind alle 18 Tankstellen geladen worden?

    Nicht ganz, wenn du drauf achtest... Ich sagte Biz ID 18, 19 und 20 sind keine Tankstellen... ID 21 (LS Airport Tanke) ist wieder eine Tankstelle... Allerdings lädt er bei Tankstellen als ID: zwar 21 aber nicht LS Airport ... Stattdessen zeigt er den Namen von der Biz ID 18 an


    //EDIT So wie es aussieht nimmt er bei der ID 21 den Namen vom Biz mit der ID 18 allerdings nicht von der 21 ...

    Einmal editiert, zuletzt von XonarZ ()

  • Ok, jetzt verstehe ich das.
    Ändere
    cache_get_value_name_int(i, "id", tInfo[i][id_x]);
    zu:
    cache_get_value_name_int(i, "id", id);
    tInfo[id-1][id_x] = id;
    id--;


    Und in dem public alle
    tInfo[i]
    zu:
    tInfo[id]


    sowie
    bInfo[i]
    zu:
    bInfo[id]


    und
    tankLabel[i]
    zu
    tankLabel[id]

  • Das Problem ist, dass du die in der Datenbank an 18. Stelle befindliche Tankstelle mit dem Biz an der 21. Stelle verknüpfen willst.
    Dann klappt das mit "i" nicht (da das nur bis 18 bei den Tankstellen geht), sondern du musst die "id" nehmen und damit auch auf das Array zugreifen. Dort kannst du dann die 18. Tankstelle (mit der ID 21) mit dem 21. Biz (mit der ID 21) verknüpfen.
    "id" hat in dem Fall dann den Wert 20, da die Indizes von Arrays ja bei 0 beginnen, daher wird id vorher um eine Stelle verkleinert.