Beiträge von Mogly1

    verrück die 4 mal anch weiter unten also so...



    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    printl("4");



    wird sie dann imme rnoch geprintet?

    dann du doch mal hier printen


    ]
    //Private Fahrzeuge
    for(new id = 0; id < sizeof(cInfo); id++)
    {
    if(cInfo[id][id_x] == Vehicle)
    {
    printl("1");
    if(cInfo[id][besitzer] == PlayerInfo[playerid][p_id])
    {
    printl("2");
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == VEHICLE_PARAMS_ON)
    {
    printl("3");
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    return 1;
    }
    else
    {
    printl("4");
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    return 1;
    }
    printl("5");
    }
    printl("6");
    }
    }

    was wird denn falsch geprintet?
    du hast beim print auch nen kleinen fehler schau
    printf("Besitzer: %d | ID: %d",cInfo[id][besitzer],cInfo[i][db_id]);
    du hast nur i, dieses muss aber zu id also so
    printf("Besitzer: %d | ID: %d",cInfo[id][besitzer],cInfo[id][db_id]);

    ehm du schau mal ganz genau hin...



    for(new id = 0; id < sizeof(cInfo); id++)
    {
    if(cInfo[id][id_x] == Vehicle)
    {
    }
    }
    else
    {
    return SendClientMessage(playerid,-1,"Kaputt");
    }



    Das else ist anch der for schleife da fehlt ne if abfrage ob das fahrzeug kaputt ist oder nicht? schau mal so evt.

    for(new id = 0; id < sizeof(cInfo); id++)
    {
    if(cInfo[id][id_x] == Vehicle)
    {
    //weitere sachen
    SendClientMessage(playerid,-1,"Ich sollte im Chat stehen");
    }
    }

    Ja hey
    Der fehler ist glaube das wenn du kein admin warst, dass das
    return SCM(playerid,BUSFARBESYSTEM,"Du besitzt keine Schlüssel für dieses Fahrzeug.");
    dort nicht ganz angebracht ist
    versuchs mal so

    if((newkeys & KEY_ANALOG_DOWN) && IsPlayerInAnyVehicle(playerid) && !IsVehAKeyVeh(vehicleid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(Spieler[playerid][pHealTime] != 0)return SCM(playerid,GRAU,"Du kannst während des Geschlechtsverkehr den Motor des Fahrzeuges nicht starten.");
    if(RepairAVehicle[vehicleid] == 1)return SCM(playerid,GRAU,"Dein Fahrzeug wird gerade repariert!");
    if(RefillVehicle[vehicleid] == 1)return SCM(playerid,GRAU,"Du tankst gerade!");
    if(IsAFahrrad(GetVehicleModel(vehicleid)))return SCM(playerid, GRAU, "Dieses Fahrrad hat keinen Motor!");
    else if(MotorDown[vehicleid] != 0)return SCM(playerid,WEISS,"Das Fahrzeug ist kaputt. Rufe einen Abschlepper oder einen Kraftfahrzeugmechaniker.");
    else if(vFahrzeug[vehicleid][Tank] <= 0.0 && !IsVehAZug(vehicleid))return SCM(playerid,GRAU,"Tank leer.");
    if(IsPlayerAnAdmin(playerid,1))
    {
    if(IsValidVehicle(vehicleid))
    {
    if(Motor[vehicleid] == false)
    {
    Motor[vehicleid] = true;
    KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
    vFahrzeug[vehicleid][VehicleEngineTimer] = SetTimerEx("VehicleEngine",VehicleInfo[GetVehicleModel(vehicleid)-400][vEngineStartInSek]*1000,0,"ii",playerid,vehicleid);
    format(string, sizeof(string), "%s betätigt die Zündung.", SpielerName(playerid));
    SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
    SendClientMessage(playerid, HELLBLAU, "Du betätigst die Zündung.");
    }
    else if(Motor[vehicleid] == true)
    {
    KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = false;
    format(string, sizeof(string), "%s stellt den Motor ab.", SpielerName(playerid));
    SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
    SendClientMessage(playerid, HELLBLAU, "Du stellst den Motor ab.");
    }
    }
    }
    else if(isPlayerInJob(playerid,17))
    {
    if(IsValidVehicle(vehicleid))
    {
    if(Motor[vehicleid] == false)
    {
    Motor[vehicleid] = true;
    KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
    vFahrzeug[vehicleid][VehicleEngineTimer] = SetTimerEx("VehicleEngine",VehicleInfo[GetVehicleModel(vehicleid)-400][vEngineStartInSek]*1000,0,"ii",playerid,vehicleid);
    format(string, sizeof(string), "%s betätigt die Zündung.", SpielerName(playerid));
    SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
    SendClientMessage(playerid, HELLBLAU, "Du betätigst die Zündung.");
    }
    else if(Motor[vehicleid] == true)
    {
    KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = false;
    format(string, sizeof(string), "%s stellt den Motor ab.", SpielerName(playerid));
    SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
    SendClientMessage(playerid, HELLBLAU, "Du stellst den Motor ab.");
    }
    }
    }
    else{return SCM(playerid,BUSFARBESYSTEM,"Du besitzt keine Schlüssel für dieses Fahrzeug.");}
    }


    #edit

    du müsstest evt. das anpassen bei
    getFreeCarID()
    da du ja nur die
    cInfo[i][id_x]
    setzt wenn es nicht gesperrt ist, somit überschreibt sich das glaube anch meiner theorie erstell mal noch nen
    "geladen"
    cInfo[i][geladen]
    das setzt du dann auf 1 bei


    OnPlayerCarsLoad
    also so dann

    forward OnPlayerCarsLoad(playerid);
    public OnPlayerCarsLoad(playerid)
    {
    for(new i=0; i<cache_num_rows(); i++)
    {
    new id = getFreeCarID();
    cInfo[id][geladen]=1;



    und bei getfreecarID


    getFreeCarID()
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][geladen]==0)return i;
    }
    return 0;
    }


    und wenn das Fahrzeug sich ausloggt alsow eiss ja net wie du es hast musst du geladen wieder 0 setzen dann sollte eigentlich das erstmal wieder richtig gehen ^^

    na dann zeig mal dein load/save von cars evt. ist da was nicht ganz richtig
    und print mal beim Code
    cInfo[i][db_id], bzw je nach dem wei du es hast aus

    printf("ID:%d | Besitzer:%d | Model:%d | Gesperrt:%d",cInfo[i][db_id],cInfo[i][besitzer],cInfo[i][model],cInfo[i][c_gespeert]);

    Also alles klar funkt eig alles richtig pass auf...


    printf("ID:%d | Besitzer:%d | Model:%d | Gesperrt:%d",i,cInfo[i][besitzer],cInfo[i][model],cInfo[i][c_gespeert]);


    un die ergebnisse von dir



    [19:12:46]
    [19:12:46] ID:0 | Besitzer:3 | Model:496 | Gesperrt:0
    [19:12:46] ID:1 | Besitzer:3 | Model:496 | Gesperrt:0
    [19:12:46] ID:2 | Besitzer:3 | Model:496 | Gesperrt:1


    stimmen so apss auf die ID ist nullw eil der print das i vond er schleife wieder gibt...
    und dir wird nur ein fahrzeug im dialog gezeigt weil nur 1 Gesperrt ist...
    somit Funktioniert doch alles oder wolltest du es anders haben?

    Ja da du hier ein return hast
    return SendClientMessage(playerid,COLOR_RED,"Keine gefunden");
    das return beendet somit die ganzeschleife und was darutner kommt
    somit versuchs mal damit

    ocmd:freikaufen(playerid)
    {
    if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
    new string[128],fahrzeugevorhanden=0;
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][besitzer] == PlayerInfo[playerid][p_id])
    {
    if(cInfo[i][c_gespeert] == 1)
    {
    format(string,sizeof(string),"%s %d \n",string,cInfo[i][model]);
    fahrzeugevorhanden=1;
    }
    }
    }
    if( fahrzeugevorhanden==1)
    {
    return ShowPlayerDialog(playerid,DIALOG_CARFREIKAUFEN_AUSWAHL,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Auswählen","Abbruch");
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Keine Fahrzeuge in der Verwahrstelle");
    }
    return 1;
    }


    und das



    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Besitzer");
    }

    lassen wir auch aus der Schleife weil das genau das gleiche wie mit dem c_gesperrt ist
    Warum?
    also es ist relativ egal ob wir nicht der besitzer vom fahrzeug sind, denn es passiert auch nichts mit dem wagen


    Hoffe du verstehst es mfg. Mogly1

    Okay schuldige habe ich wohl schlecht erklärt...



    for(new i=0;i<sizeof(cInfo);i++)
    {
    new string[500];
    if(cInfo[i][OWer]==playerid)//anpasssen aufbesitzer also ob der wagen dem gehört
    {
    if(cInfo[i][c_gesperrt] == 1)
    {
    format(string,sizeof(string)," %s %d \n", string, cInfo[i][Hier]);
    }
    }
    }
    ShowPlayerDialog(playerid,Dialog,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Weiter","Abbrechen");


    so Pass auf er geht in der for schleife alles deine wagens die abgeschleppt sind druch und setzt den string
    durch das \n wird nach jedem string gleich ne neue Zeile genommen.
    heisst bei zwei wagen kommt dann beim string beim nächsten durch gang das neue dazu.

    Hey,
    wie wäre es mit einer for schleife?
    also

    for(new i=0;i<MAX_VEHICLES;i++)//MAX_VEHICLES evt anpassen
    {
    new string[250];//länge je nach wie viele cars wer sieht
    if(abgeschleppt==true)//anpassen
    {
    format(string,sizeof(string)," Alle angaben die ausgegebenw erden sollen(wichtig nur das \n zum schluss) \n", die angaben zu dem string);
    }
    ShowPlayerDialog(playerid,Dialog,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Weiter","Abbrechen");
    }



    das wäre mein ansatz

    Hey nur mal so ne Fragen wenn du hier SendClientMessage rein machst


    bekommt dann jede spieler id diesen text auch?


    Edit:
    versuch mal den Code so aus ob der Funktioniert


    Ich finds super schön,



    edit: Kritik nicht zu der Tankstelle, sondern zu den Häusern