Autohaus Problem: Fahrzeug kriegt falsche ID zugewiesen ?!

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
  • Hallo,


    Bei meinem Autohaussystem habe ich testweise 2 Autohäuser erstellt.


    Autos werden erstellt unter Init:


    for(new i=0; i<sizeof(AutohausVehicles); i++)
    {
    AutohausVehicles[i][autohausvid] = AddStaticVehicle(AutohausVehicles[i][modelid],AutohausVehicles[i][ahvposX],AutohausVehicles[i][ahvposY],AutohausVehicles[i][ahvposZ],AutohausVehicles[i][ahvposR],AutohausVehicles[i][ahvcolor1],AutohausVehicles[i][ahvcolor2]);
    }


    Die Fahrzeuge:


    new AutohausVehicles[][AutohausVeh] = {


    {411,2135.8506,-1150.8575,24.1117,5.5569,0,0,2000,0}, // Infernus
    {415,537.7402,-1292.1335,17.2422,18.5504,1,1,9000,1} // Cheetah


    };


    Mein Problem: Wenn ich in den Infernus steige passiert garnichts.
    Wenn ich in den Cheetah steige, kriege ich angezeigt: Fahrzeugname Infernus.
    Also hat der Cheetah die ID vom Infernus.


    Wieso aber??

  • if(newstate == PLAYER_STATE_DRIVER)
    {
    new string[999], vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(AutohausVehicles); i++)
    {
    if(AutohausVehicles[i][autohausvid] != vehicleid)continue;
    SetPVarInt(playerid,"BuyVehicleID",i);
    format(string,sizeof(string),"Möchtest du diesen %s wirklich für %i $ kaufen?",VehicleNames[GetVehicleModel(i) - 400],AutohausVehicles[i][ahvehiclepreis]);
    ShowPlayerDialog(playerid,DIALOG_FAHRZEUGKAUF,DIALOG_STYLE_MSGBOX,"[1/4]:Fahrzeugkauf",string,"JA","NEIN");
    break;
    }
    return 1;
    }

  • Debugge den Code mal.


    for(new i=0; i<sizeof(AutohausVehicles); i++)
    {
    AutohausVehicles[i][autohausvid] = AddStaticVehicle(AutohausVehicles[i][modelid],AutohausVehicles[i][ahvposX],AutohausVehicles[i][ahvposY],AutohausVehicles[i][ahvposZ],AutohausVehicles[i][ahvposR],AutohausVehicles[i][ahvcolor1],AutohausVehicles[i][ahvcolor2]);
    printf("autohausvid(%d) = %d", i, AutohausVehicles[i][autohausvid]);
    }



    if(newstate == PLAYER_STATE_DRIVER)
    {
    new string[999], vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(AutohausVehicles); i++)
    {
    printf("i:%d autohausvid:%d vehicleid:%d", i, AutohausVehicles[i][autohausvid], vehicleid);
    if(AutohausVehicles[i][autohausvid] != vehicleid)continue;
    printf("In %d", vehicleid);
    SetPVarInt(playerid,"BuyVehicleID",i);
    format(string,sizeof(string),"Möchtest du diesen %s wirklich für %i $ kaufen?",VehicleNames[GetVehicleModel(vehicleid) - 400],AutohausVehicles[i][ahvehiclepreis]);
    print(string);
    ShowPlayerDialog(playerid,DIALOG_FAHRZEUGKAUF,DIALOG_STYLE_MSGBOX,"[1/4]:Fahrzeugkauf",string,"JA","NEIN");
    break;
    }
    return 1;
    }


    Was wird beim Erstellen und beim Einsteigen geprintet?

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Sorry, hab die Zeilen übersehn


    [21:04:01] i:0 autohausvid:1 vehicleid:1
    [21:04:01] In 1
    [21:04:01] Möchtest du diesen Infernus wirklich für 9000 $ kaufen?
    [21:04:23] i:0 autohausvid:1 vehicleid:2
    [21:04:23] i:1 autohausvid:2 vehicleid:2
    [21:04:23] In 2

  • Hm, komisch.
    Klappt es so?
    Falls nicht, wie hast du "VehicleNames" definiert? Stehen da einfach alle Namen drin, wie es normal ist?


    if(newstate == PLAYER_STATE_DRIVER)
    {
    new string[256], vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(AutohausVehicles); i++)
    {
    printf("i:%d autohausvid:%d vehicleid:%d", i, AutohausVehicles[i][autohausvid], vehicleid);
    if(AutohausVehicles[i][autohausvid] == vehicleid)
    {
    printf("In %d.", vehicleid);
    SetPVarInt(playerid,"BuyVehicleID",i);
    printf("PVar Set -> Model: %d", vehicleid, GetVehicleModel(vehicleid));
    format(string,sizeof(string),"Möchtest du diesen %s wirklich für %i$ kaufen?",VehicleNames[GetVehicleModel(vehicleid) - 400],AutohausVehicles[i][ahvehiclepreis]);
    print(string);
    ShowPlayerDialog(playerid,DIALOG_FAHRZEUGKAUF,DIALOG_STYLE_MSGBOX,"[1/4]:Fahrzeugkauf",string,"JA","NEIN");
    return 1;
    }
    }
    return 1;
    }


    Falls es auch nicht klappt, poste bitte den Log.