[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • von jeder tankstelle den Namen auslesen lasse also nach ID nach?

    Was ist das für ein Deutsch? hahaha xD


    Aber ja einfach mit einer Schleife?


    C
    for(new i; i<sizeof(Tanke); i++)
    {
        Tanke[i][tName] //Hier haste jetzt den Tankstellennamen von allen Tankstellen xD
    }

    ast2ufdyxkb1.png


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

  • Ja,


    Ich habe es falsch ausgedrückt bin total müde sry.

    Habe das nun so gemacht

  • Warum ignorierst du denn einfach Kalibers Code?



    new string[550];
    for(new i; i<sizeof(Tanke); i++)
    {
    format(string,sizeof(string),"%s\n%s\t\t\t\tBenötigt: %d Liter",string,getTankName(i), getProdukts(i));
    }
    ShowPlayerDialog(playerid, DIALOG_TANKSTELLEN, DIALOG_STYLE_LIST,"Transport GmbH - Tankstellen Übersicht",string,"GPS","Schließen");

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Gelöst sehr schlau gewesen :D ().
  • Hallo,


    Habe das Problem habe ingesamt momentan 6 Tankstellen.


    Werden geladen alles kein Problem.


    Die Sache ist nun wen ich /lieferung ausführe wird mir kaum was angezeigt außer von der letzten Tankstelle die ich in der DB drinnen habe.




    Datenkbank:




    Dialog:


    Einmal editiert, zuletzt von Dr. Frauenarzt () aus folgendem Grund: Code Aktualisiert #1 #2

  • 1. Für die Übersicht http://wiki.sa-mp.com/wiki/Dialog_Styles wurde extra z.B. DIALOG_STYLE_TABLIST_HEADERS dafür eingeführt.


    2. Es scheint, als würden wohl nicht alle deine Tankstellen geladen werden...wenn die Arrays leer sind, sind sie leer.


    3. Lerne zu debuggen, du siehst hier oh, es scheint als wäre das leer.

    • Da müssen jetzt folgende Gedanken in dir vorgehen.
      • Vielleicht da ich das nur in dem String hier mache, ein formatierungs fehler.
      • Also mal ohne format einfach mal alles durch printen.
      • Dann siehst du oh immer noch alles bis auf 1 leer.
      • Hmm dann muss der Fehler wohl beim laden passieren, da ja in der Datenbank alles gespeichert ist.
    • Dann schaust du dir den Code an, wo du alles lädst.
      • Dann machst du hier einen print, was er alles lädt und ob das funktioniert.
      • und dann wirst du feststellen, dass dem nicht so ist :)
      • Deshalb zeig uns direkt mal deinen Code vom laden :P


    ast2ufdyxkb1.png


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

  • Es stand ja immer da das 6/6 Tankstellen geladen wurden wen ich ingame gehe sind die Tankstellen auch da an der Richtigen Position der Name ect.




    So sieht das aus es wird alles erstellt alles geladen laut den Sprint auch die Namen. Es steht überall der Name richtig von den Tankstellen.

  • new tankeID = cache_get_value_name_int(i, "id", Tanke[tankeID][tdbID]);

    Das hier ist dein Fehler.


    Die Zeile macht keinen Sinn, da die Funktion cache_get_value_name_int immer nur den selben Wert returnt, somit überschreibst du fortwährend dein Array.


    Deshalb wird dir alles angezeigt, aber letztlich wird das alles nur in einem Feld gespeichert und immer überschrieben.


    Deshalb lösche diese Variable und verwende anstelle von tankeID einfach dein i :)

    ast2ufdyxkb1.png


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

  • Es stand ja immer da das 6/6 Tankstellen geladen wurden wen ich ingame gehe sind die Tankstellen auch da an der Richtigen Position der Name ect.




    So sieht das aus es wird alles erstellt alles geladen laut den Sprint auch die Namen. Es steht überall der Name richtig von den Tankstellen.


    Wenn du schon aus dem Virtual Reallife Script kopierst und es nur leicht umgeändert einfügst, brauchst du dich nicht wundern, wenn du nur Fehler bekommst.


  • Habe ich verstanden werde so nun auch weiter arbeiten.
    Dachte halt nur das es sein muss das man den nochmal auslesen muss dachte aber nicht das es überschrieben wird?


    Habe das nun beim Haus system auch ausgebessert.




    Klar möchte ich damit arbeiten aber irgendwie spinnt das bei mir bei mir wird das alles 5 mal ausgegeben ?







    Liegt das eventuell am string oder an was kann das liegen?

  • aber irgendwie spinnt das bei mir bei mir wird das alles 5 mal ausgegeben ?

    Nein da spinnt nichts, du formatierst den String nur immer wieder in den String, deshalb wird das 5x ausgegeben :D



    Als "Bezugspreis" hab ich nur so den PreisProLiter angegeben, kp was du damit aussagen magst.

    ast2ufdyxkb1.png


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

  • Danke @Kaliber



    Wollte kurz fragen wie kann ich machen das er keine menge mehr angeben muss um das abzuladen?
    Das heißt er fährt einfach dahin gibt /unload ein dann wird die menge abgegeben die im Truck sind falls das zuviel sind wird nur das angeliefert was benötigt wird und der rest bleibt dann ja drinnen wen es zuviel war..


  • Wollte kurz fragen wie kann ich machen das er keine menge mehr angeben muss um das abzuladen?

    Ja, versuch dich mal daran, das ist ja nicht so schwer.


    • Du nimmst logischerweise die Eingabe Abfragen raus, die willst du schließlich raus haben.
    • Dann überlegst du dir, wie du jetzt an die Liter kommst.
      • Dann merkst du ah, die stehen ja alle in der in Tank Variable. (Als Tipp schau einfach wo int überall verwendet wurde.)
      • Im Endeffekt ist ja das was du willst nichts anderes als die Differenz von MAX_LITER - AKTUELLE_LITER = int
      • Das verwendest du dann einfach überall da und passt das an.

    Und dann bist du feritg, komm, das schaffst du! :)

    ast2ufdyxkb1.png


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

  • Will nur auf nummer sicher gehn ob idas so richtig ist?

    Dann lies dir nochmal durch, was ich geschrieben habe.


    Ich sagte MAX - AKTUELL.


    Du rechnest AKTUELL - MAX.


    Die Subtraktion ist nicht kommutativ, das lernt man glaube ich in der 5. Klasse.


    3 - 5 != 5 - 3


    Und wieso verwendest du in der Gleichung -=?


    Das macht keinen Sinn, einfach nur -.


    Schau dir eventuell noch mal die Basic Syntax in Pawn an: http://wiki.sa-mp.com/wiki/Scripting_Basics


    //Edit:


    Weil ich da bestimmte Anklickbar haben will aber die anderen nicht

    2 Möglichkeiten:

    • Du machst die TextSize so geschickt, dass nur alles andere außer dem Pfeil selbst anklickbar ist.
    • Du musst mehrere TextDraws erstellen, so dass das anklickbar ist was du willst und das, was du nicht willst eben ein eigenes TextDraw ist.

    ast2ufdyxkb1.png


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

    Einmal editiert, zuletzt von Kaliber ()

  • C:\Users\ASUS\Desktop\Coming Soon\gamemodes\CS.pwn(14442) : warning 213: tag mismatch



    Sagt der mir immer wieder,


    Ja das habe ich verstanden max minus liter war von mir ein fehler


    new int = Tanke[it][tMaxLiter] - Tanke[it][tLiter];

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen