FAHRZEUG - Fahrzeugschlüssel Infomation

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,


    Ich habe kurz eine Frage.
    Wie mache ich am besten wen er ein Fahrzeug auswählt das eine Infomation kommt welche Farbe undso in Dialog.


    Heißt er wählt den Schlüssel aus.
    Es erscheint ein Dialog.


    Fahrzeug:
    Farbe:
    Tank:
    usw.


    Wie mache ich das am besten?

  • Schau mal hier rein: Schneller & strukturierter skripten


    Das könnte dir helfen, dann kannst du dir einiges schenken, wie mehrere Strings, die isLoggedIn Abfrage in jedem Befehl und eine einzelne Auflistung, da solltest du eine Schleife verwenden.


    Wie zum teufel, hast du modelid deklariert bzw wie verwendest du das da, so wird das nicht funktionieren.


    Und zu deiner Frage, du kannst dann einfach listitem verwenden und dann weißt du, auf welches Fahrzeug er geklickt hat, nämlich:


    PrivateVehicle[playerid][listitem][modelid]

    ast2ufdyxkb1.png


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

  • So habe ich das erstmal gestaltet um zu gucken ob das mit den ID´s klappt ja es klappt :D




    Habe das nun so:



    [debug] #0 00064f0c in public OnDialogResponse (playerid=0, dialogid=86, response=1, listitem=0, inputtext[]=@0072d2dc "Sultan") at C:\Users\Patrik\Desktop\Selfmade\gamemodes\German.pwn:6684

  • Ups mein fehler sry :D


    Code
    [debug] Run time error 4: "Array index out of bounds"
    [debug]  Attempted to read/write array element at negative index -400
    [debug] AMX backtrace:
    [debug] #0 00064f0c in public OnDialogResponse (playerid=0, dialogid=86, response=1, listitem=0, inputtext[]=@0072d2dc "Sultan") at C:\Users\Patrik\Desktop\Selfmade\gamemodes\German.pwn:6684
  • Das liegt daran, dass deine Variable vehicleid immer 0 ist. Du setzt da keinen Wert.


    Deshalb wenn GetVehicleModel(0) aufgerufen wird und da 0 keine gültige vehicleid ist, wird hier auch immer 0 zurückgegeben und 0-400 = -400 und dann greifst du auf diesen index zu, der natürlich nicht existiert.


    Also vehicleid einen Wert zuweisen und sicher sein, dass das Auto auch existiert ;)

    ast2ufdyxkb1.png


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

  • habe ich gesehn danke :D


    Habe nun folgendes Problem wen ich auf Auswählen klicke:




    [debug] Run time error 4: "Array index out of bounds"
    [debug] Attempted to read/write array element at negative index -1
    [debug] AMX backtrace:
    [debug] #0 00065344 in public OnDialogResponse (playerid=0, dialogid=87, response=1, listitem=-1, inputtext[]=@0072d3f4 "") at C:\Users\Patrik\Desktop\Selfmade\gamemodes\German.pwn:6708

  • Wie haste es denn geschafft auf ein leeres nicht vorhandenes Feld zu klicken?


    Kannst du mal ein Bild vom Dialog machen und zeigen, was du ausgewählt hast?

    ast2ufdyxkb1.png


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

  • Das ist doch wieder ein völlig anderer Dialog, das ist doch kein DIALOG_LIST...da kannst du auch kein listitem nutzen.



    Du musst das listitem, was er zuvor ausgewählt hat z.B. in einer PVar speichern, dann kannst du das da wiederverwenden.

    ast2ufdyxkb1.png


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


  • Das sind die 2 Codes. Einmal wen er das Fahrzeug auswhält hat wen er dann auf auswählen klickt soll es geortet werden.


    Sry bin heute schon neben mir und genervt von den mist :D

  • Ja...oben im DIALOG_CARKEYS nutzt du z.B.:


    SetPVarInt(playerid, "carkey_listitem", listitem);


    und unten im DIALOG_FAHRZEUG sagst du:




    new id = GetPVarInt(playerid, "carkey_listitem");
    DeletePVar(playerid, "carkey_listitem");

    ast2ufdyxkb1.png


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

  • So das habe ich nun andere sachlage noch dann hab ich den müll endlich hinter mir..


    CARINFO:



    Um festzustellen den Besitzer:


    Also das heitß:


    Wen ich /carinfo und die Fahrzeug ID eingebe kommt der Dialog. -> Das Ist schon soweit richtig.
    Nur das Problem ist das es keine Werte ausgibt außer Tank und den Tank. Mehr sagt er mir nicht steht überall 0 oder garnichts

  • Was ein Messi Code...


    der stimmt vorne und hinten nicht.


    • slot wird nirgends zugewiesen.
    • (VehicleOwner = getVehicleOwner(vehicleid)) != -1 was glaubst du, machst du da? :D Ich meine es funktioniert, aber ich glaube nicht aus dem Grund, was du ursprünglich wolltest xD im Endeffekt kannst du auch einfach prüfen ob VehicleOwner == 1 ist :D
    • Das bringt uns zum nächsten Problem, VehicleOwner ist entweder 1 oder -1. Du glaubst aber, es entspricht der playerid vom Besitzer, was nicht der Fall ist :)

    ast2ufdyxkb1.png


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

  • Ja bin gerne eine Messi haha :D


    Ich check nur mehr 0.


    Also das mit -1 kacke da habe ich nun == 1 ersetzt :D


    ZITAT:


    slot wird nirgends zugewiesen. <- Fraglich ist was ich da zuweisen soll.
    Das bringt uns zum nächsten Problem, VehicleOwner ist entweder 1 oder -1. Du glaubst aber, es entspricht der playerid vom Besitzer, was nicht der Fall ist <- Verstehe nicht ganz wo du damit hin willst :D



    X( bin total heute schon überfordert :D

  • So sollte das schon eher funktionieren, vorrausgesetzt IsAFraktionsVeh gibt dir eine eindeutige ID zurück und nicht nur 0 oder INVALID_PLAYER_ID.

    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 ()

  • Code
    stock IsAFraktionsVeh(vehicleid)
    {
    	for(new fV;fV<MAX_FVEHS;fV++)
    	{
    		if(vehicleid == fVehicle[fV][vehID])return fV;
    	}
    	return INVALID_VEHICLE_ID;
    }


    Wen ich /carinfo eingebe und die ID´s von den Privaten autos angebe steht das es keine Besitzer gibt von den Fahrzeug obwohl es einen gibt