Beiträge von carlos1710

    moment ich komm grad nicht mit.
    Also ich will einfach nur das die farbe die ein spieler nach dem tunen hat gespeichert wird, wenn er sein auto verlässt
    Am anfang wenn das auto gespawnt wird definire ich ein modelid 2 farben und das nummernschild.
    Dann wird das Auto erstellt und alles was dazugehört in eine dini gespeichert( also auch die zugewisenen farben)
    Nun mach ich eine funktion die bei serverstart das auto läd(mit allem tuning und farben)
    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(veh,0));
    dini_IntSet(Autodatei,"Hood",GetVehicleComponentInSlot(veh,1));
    dini_IntSet(Autodatei,"Roof",GetVehicleComponentInSlot(veh,2));
    dini_IntSet(Autodatei,"Sideskirt",GetVehicleComponentInSlot(veh,3));
    dini_IntSet(Autodatei,"Lamps",GetVehicleComponentInSlot(veh,4));
    dini_IntSet(Autodatei,"Nitro",GetVehicleComponentInSlot(veh,5));
    dini_IntSet(Autodatei,"Exhaust",GetVehicleComponentInSlot(veh,6));
    dini_IntSet(Autodatei,"Wheels",GetVehicleComponentInSlot(veh,7));
    dini_IntSet(Autodatei,"Stereo",GetVehicleComponentInSlot(veh,8));
    dini_IntSet(Autodatei,"Hydraulics",GetVehicleComponentInSlot(veh,9));
    dini_IntSet(Autodatei,"FrontBumper",GetVehicleComponentInSlot(veh,10));
    dini_IntSet(Autodatei,"RearBumper",GetVehicleComponentInSlot(veh,11));
    dini_IntSet(Autodatei,"VentRight",GetVehicleComponentInSlot(veh,12));
    dini_IntSet(Autodatei,"VentLeft",GetVehicleComponentInSlot(veh,13));
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    dini_IntSet(Autodatei,"Paintjob",paintjobid);
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    dini_IntSet(Autodatei,"Farbe1",color1);
    dini_IntSet(Autodatei,"Farbe2",color2);
    return 1;
    }
    //EDIT:Stimmt das wenn ich die componenten den paintjob und die farbe hier abspeicher?Hab vergessen "Autodatei" zu definiren aber dann sollte es doch gehen oder?

    hex ihr, hab mal wieder eine Frage zum Autosystem
    Ich möchte nun beim verlassen des Fahrzeug salle Daten abspeichern
    Nur wie find ich heraus, welche farbe oder paintjob das auto hat.
    dini_IntSet(Autodatei,"Abgeschlossen",0);
    dini_IntSet(Autodatei,"Farbe1",color1);//welcher code findet die autofarbe und paintjob heraus?
    dini_IntSet(Autodatei,"Farbe2",color2);
    dini_IntSet(Autodatei,"Paintjob",-1);
    dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(veh,0));

    ja du liegst richtig cih habe versucht diese arry dynamisch zu machen hihi
    nagut nun kämpf ich noch mim nummernschild immerhin ist der string nicht leer
    das was auf dem schild steht wird aus der autodatei geladen und da drinn steht Numemrnschild=12ab
    Das nummerschild ist nicht leer da ich ja ein string eingebe der gespeichert wird, was ist da falsch
    dcmd_createcar(playerid , params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    new pname[MAX_PLAYERS],accFormat[128],extraini[50];
    [...]//dateipfade
    new model,color1,color2,nummernschild[32];
    if(sscanf(params, "ddds", model, color1, color2, nummernschild))// ich gebe für nummerschild 1234abcd ein
    {
    return SendClientMessage(playerid,COLOR_RED, "Nutze: /createcar [model] [color1] [color2] [nummerschild(32)]");
    }
    else
    {
    [...]//speicherungen
    dini_IntSet(Autodatei,"Paintjob",-1);
    dini_Set(Autodatei,"Nummernschild",nummernschild);
    dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(nextcarID,0));
    [...]//noch mehr speicherungen
    SetVehicleNumberPlate(nextcarID,dini_Get(Autodatei,"Nummernschild"));// in der datei steht 1234abcd aber das nummernschilsd wird nicht so gesetzt
    Vehicle[nextcarID][modelid] = dini_Int(Autodatei,"modelid");
    Vehicle[nextcarID][HP] = dini_Int(Autodatei,"HP");
    Vehicle[nextcarID][Farbe1] = dini_Int(Autodatei,"Farbe1");
    [...]//unnötig
    Vehicle[nextcarID][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
    printf("%d", nextcarID);
    Vehicle[nextcarID][RearBumper] = dini_Int(Autodatei,"RearBumper");
    printf("%d", nextcarID);
    if(dini_Int(accFormat,"car1") == -1){dini_Set(accFormat,"car1",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car2") == -1){dini_Set(accFormat,"car2",Vehicle[nextcarID][Nummernschild]);}// das nummernschild wird ebenfalls beim spieler gespeichert als beweis dass es sein asuto ist
    else if(dini_Int(accFormat,"car3") == -1){dini_Set(accFormat,"car3",Vehicle[nextcarID][Nummernschild]);}//allerdings steht hier nicht 1234abcd sondern 0
    else if(dini_Int(accFormat,"car4") == -1){dini_Set(accFormat,"car4",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car5") == -1){dini_Set(accFormat,"car5",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car6") == -1){dini_Set(accFormat,"car6",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car7") == -1){dini_Set(accFormat,"car7",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car8") == -1){dini_Set(accFormat,"car8",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car9") == -1){dini_Set(accFormat,"car9",Vehicle[nextcarID][Nummernschild]);}
    else if(dini_Int(accFormat,"car10") == -1){dini_Set(accFormat,"car10",Vehicle[nextcarID][Nummernschild]);}
    nextcarID ++;
    dini_IntSet(extraini,"GesamtCars",nextcarID);
    CreateVehicle(model, x, y, z, 0, color1, color2, -1);
    }
    }
    else
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin, du darfst das nicht!");
    return 1;
    }
    Wiso sind die nummernschildstrings leer?

    der der 50cm hinterm bildschrim liegt macht gerne solche fehler an dem alle programirer verzweifeln xxD
    zudem sollte man min 30 cm hinterm bildschirm sein :P
    letztens wollte ein objekt sich nicht löschen ,dinni wollte dinge nicht speicher usw und das kann sich alles keiner erklären.
    //EDIT der fehler muss hier sein
    Vehicle[nextcarID][modelid] = dini_Int(Autodatei,"modelid");
    ich hab es mal vor dem variablen erhöhen eingesetzt und wieder hat sie sich verändert aber alle gleichungen davor stimmen

    ich habs mit new definirt
    new Vehicle[][vehicle_daten];
    das feld in der mitte ist leer da ich keine maxcar anzahl festlegen kann da dich die immer erhöhrt wenn ein auto erstellt wird
    ich weis nicht obs am dinisystemligt beim letzten server hatte ich einige probleme weil dini meine daten nicht gespeichert hat obwohl ich die neuste version drinne hab

    Hab das mal gedebugt und mir die Zahl anzeigen lassen, nun weis ich wo nextcarID umgestellt wird, weis aber immernoch nicht wiso.
    printf("8%d", nextcarID);//Zahl stimmt
    SetVehicleNumberPlate(nextcarID,dini_Get(Autodatei,"Nummernschild"));
    printf("9%d", nextcarID);//zahl stimmt
    Vehicle[nextcarID][modelid] = dini_Int(Autodatei,"modelid");
    printf("%d", nextcarID);//Zahl wird auf modelid gesetzt
    Vehicle[nextcarID][HP] = dini_Int(Autodatei,"HP");
    printf("%d", nextcarID);// das bleibt dann bis zum ende, dann wird die Zahl nochmal erhöht von modelid auf modelid +1 und so abgespeichert
    Vehicle[nextcarID][Farbe1] = dini_Int(Autodatei,"Farbe1");
    Vehicle[nextcarID][Farbe2] = dini_Int(Autodatei,"Farbe2");
    Vehicle[nextcarID][Paintjob] = dini_Int(Autodatei,"Paintjob");
    Wiso wird zwischen den Zeilen die Variable verändert?
    //EDIT verbessert

    gesamtcars soll aber die zahl der autos + 1 speichern somit geb ich jedem fahrzeig eine eigene id
    in der ini steht das gesamtcar 0 ist, nach dem erstellen eines autos wird diese variable immer erhöht damit es kein überlappen dieser id´s gibt
    und wenn das script unterbricht soll gesamtcars nicht wieder 0 sein darum hab ich die 0 manuell hinein geschrieben

    das mit der datei hatt ich schon das mim nummernschild auch danke hab gesehen das nummernschild ans intger gespeichert wird aber als string aufgerufen.
    nun nur noch der hauptfehler mit den variablen
    //Edit, das nummernschilf wird immernoch nicht angezeigt der intger ist aber nicht leer es steht wie eingegeben 1234 drinne
    nun wird das auto gespeichert mit dem dateinamen 0 wie gewollt und dannach wird nextcarID irgendwo mit model gleich gesetzt

    Ich habe nun mein Autosystem fertig, funktionirt super bis auf ein kleiner Fehler zwischen 2 Variablen


    Ich gebe CreateCar mit allen dazugehörigen Parametern ein aber die Variable nextcarID nimmt automatisch den Wert von model an wiso?
    dcmd_createcar(playerid , params[])
    {
    new extraini[50];
    format(extraini,50,"/extra.txt");
    nextcarID = dini_Int(extraini,"GesamtCars");//nextcarID ist gleich 0 soll nach dem erstellen auf 1 erhöht werden jenachdem wie viele Autos es gibt
    new model,color1,color2,nummernschild;// die parameter wobei model automatischt nextcarID ist WISO?
    if(sscanf(params, "dddd", model, color1, color2, nummernschild))//hier wird model z.b. auf 555 gesetzt das auto mit der modelid 555 wird erfolgreich erstellt
    {
    return SendClientMessage(playerid,COLOR_RED, "Nutze: /createcar [model] [color1] [color2] [nummerschild]");
    }
    else
    {
    new Float:x,Float:y,Float:z;
    new Autodatei[50];
    format(Autodatei,50,"/Autos/%s.txt",nextcarID);
    GetPlayerPos(playerid,x,y,z);
    CreateVehicle(model, x, y, z, 0, color1, color2, -1);//funktionirt
    dini_Create(Autodatei);//autodatei wird erstellt es wird alles eingetragen ALLERDINGS hat diese datei keinen namen
    dini_IntSet(Autodatei,"modelid",model);
    [...]//geht alles
    dini_IntSet(Autodatei,"VentRight",GetVehicleComponentInSlot(nextcarID,12));
    dini_IntSet(Autodatei,"VentLeft",GetVehicleComponentInSlot(nextcarID,13));
    SetVehicleNumberPlate(nextcarID,dini_Get(Autodatei,"Nummernschild"));//nummernschild wird nicht gesetzt wiso nicht
    Vehicle[nextcarID][modelid] = dini_Int(Autodatei,"modelid");
    Vehicle[nextcarID][HP] = dini_Int(Autodatei,"HP");
    Vehicle[nextcarID][Farbe1] = dini_Int(Autodatei,"Farbe1");
    Vehicle[nextcarID][Farbe2] = dini_Int(Autodatei,"Farbe2");
    Vehicle[nextcarID][Paintjob] = dini_Int(Autodatei,"Paintjob");
    Vehicle[nextcarID][Nummernschild] = dini_Int(Autodatei,"Nummernschild");
    Vehicle[nextcarID][posx] = dini_Int(Autodatei,"posx");
    Vehicle[nextcarID][posy] = dini_Int(Autodatei,"posy");
    Vehicle[nextcarID][posz] = dini_Int(Autodatei,"posz");
    Vehicle[nextcarID][posa] = dini_Int(Autodatei,"posa");
    Vehicle[nextcarID][Abgeschlossen] = dini_Int(Autodatei,"Abgeschlossen");
    Vehicle[nextcarID][Spoiler] = dini_Int(Autodatei,"Spoiler");
    Vehicle[nextcarID][Wheels] = dini_Int(Autodatei,"Wheels");
    Vehicle[nextcarID][Nitro] = dini_Int(Autodatei,"Nitro");
    Vehicle[nextcarID][Roof] = dini_Int(Autodatei,"Roof");
    Vehicle[nextcarID][Hood] = dini_Int(Autodatei,"Hood");
    Vehicle[nextcarID][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
    Vehicle[nextcarID][Lamps] = dini_Int(Autodatei,"Lamps");
    Vehicle[nextcarID][Exhaust] = dini_Int(Autodatei,"Exhaust");
    Vehicle[nextcarID][Stereo] = dini_Int(Autodatei,"Stereo");
    Vehicle[nextcarID][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
    Vehicle[nextcarID][VentRight] = dini_Int(Autodatei,"VentRight");
    Vehicle[nextcarID][VentLeft] = dini_Int(Autodatei,"VentLeft");
    Vehicle[nextcarID][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
    Vehicle[nextcarID][RearBumper] = dini_Int(Autodatei,"RearBumper");
    nextcarID ++;//nextcarid wird einfach um 1 erhöhr allerdings ist nextcarid == modelid und wird auf 556 erhöht
    dini_IntSet(extraini,"GesamtCars",nextcarID);
    }
    else
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin, du darfst das nicht!");
    return 1;
    }
    meine frage wär nun
    1.Wiso ist nextcarID automatisch die zahl der modelid [ich habe nirgendwo nextcarID = model; stehen]
    2.Wiso wird das nummernschild nicht angezeigt
    3.Wiso wird der name der datei Autodatei nicht eingegeben//EDIT: Das sollte gelöst sein hab statt %d beim erstellen der datei %s geschrieben und nextcarid ist ein Intger
    Das schreckliche einrücken stammt nicht von mir es passirte automatisch