Beiträge von IPrototypeI

    if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein."); { if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein."); { for(new ABP = 0; ABP


    hier test es mal so



    new bool:ja, ABP;
    if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
    if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
    for(; ABP<MAX_PFLANZEN; ABP++){
    if(!IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez])){
    SendClientMessage(playerid,ROT,"Da kannst du bauen");
    ja = false;
    break;
    }else{ ja= true;}
    }
    if(ja)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
    return 1;

    //edit code eingerückt
    nee das break stimmt

    Funktioniert nicht.


    Sonst noch jemand eine Idee?


    xD ok hab nur gedacht das du nur nix haben willst an dem punkt wo du willst

    new bool:ja;
    for(new ABP = 0; ABP<MAX_POINT; ABP++){
    if(IsPlayerInRangeOfPoint(playerid,10,abInfo[playerid][ABP][Px],abInfo[playerid][ABP][Py],abInfo[playerid][ABP][Pz])){
    ja = true;
    break;
    }
    else{ //deine Function

    }
    return 1;

    }
    if(ja) return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");

    valueOne[vehicleid] = 0;
    Hab ich auch bereits drin...^^


    dann sollte es so sein wenn du das machst was ich dir hier geschrieben habe.
    Das die ganzen fahrzeuge beim respawnen diesen "bug" nicht haben oder die fahrzeuge die direkt
    vom script erstellt werden also wenn du allein schon beim erstellen deines fahrzeuges die variabel
    auf 0 für das erstellte auto settest sollte der bug nicht mehr existieren. Meine ich dazu.


    new valueOne[MAX_VEHICLES]; // <- Already done .. ;D


    Code
    valueOne: 1003


    Goldkiller
    Ist mir auch aufgefallen, habs eben direkt behoben. ^^


    dann fällt mir nur noch eins ein


    dass fügst du mal bei public OnVehicleSpawn(vehicleid) ein


    valueOne[vehicleid]=0;


    und für die im script erstellten fahrzeuge machst du mal eine for schleife
    bei ongamemodini


    new i;
    for(; i<MAX_VEHICLES; i++) {
    valueOne[i]=0;
    }


    mehr würde mir jetzt auch nicht mehr einfallen
    bei OnVehicleDeath könntest du es auch einschieben wäre jedoch egal
    da OnVehicleSpawn so wieso danach angesteuert wird


    setzt mal die print abfrage vor der Abfrage if(valueOne[i] > 1000){
    hin


    weil das ist schon ziemlich komisch


    aber du hast die variabel
    valueOne als globale varaibel benutzt ?


    kannst es ja mal so testen
    valueOne[MAX_VEHICLES];


    /edit


    sonst kann es ja nur noch an der berechnung liegen


    jo da hast oben ja recht ich hab ein kleinen Fehler gemacht ^^ naja hätte mir ja auch klar sein müssen weil du ja dezimalzahlen
    abziehst vom Tank.


    Mal so eine frage was gibt valueOne in dem moment aus und wie viel tank verbrauchst das auto auf 1 km in dem zu hockst

    willst du Vorname und Nachname in unterschiedlichen dialogen anzeigen ?


    und zum alter musst du das eingegebene alter splitten und nach dem . suchen und danach das jahr
    von heute mit dem eingebene subtrahieren


    new jahr, monat,tag;
    getdate(jahr, monat,tag);
    new Datum[3][20];
    split(inputtext, Datum, '.');


    dann kannst das ganze auch überprüfen


    if (IsValidDate(strval(Datum[0]),strval(Datum[1]),strval(Datum[2])))


    new Alter= jahr- strval(Datum[2]);




    dazu brauchst halt den stock


    stock IsValidDate(day, month, year)
    {
    new maxDays;
    if (year < 1900 || year > 2010) return 0;
    switch (month)
    {
    case 1,3,5,7,8,10,12: maxDays = 31;
    case 4,6,9,11: maxDays = 30;
    case 2:
    {
    if(IsLeapYear(year))
    {
    maxDays = 29;
    }
    else
    {
    maxDays = 28;
    }
    }
    default: return 0; // Bad Month
    }


    if (day < 1 || day > maxDays) return 0;
    return 1;
    }


    Das ist ein auschnitt aus einem godfather dort kannst du das auch alles nachschauen und auch übernehmen und anpassen.

    Prototype
    Heißt also, die value-Abfrage entfernen, und einfach folgendes machen:
    vehFuel = GetVehicleVerbrauch(i)/100;
    ??

    public BenzinVerbrauch(){
    new engine, lights, alarm, doors, bonnet, boot, objective;
    new model;
    for(new i=0;i<max_vehicles;i++){
    GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
    model = GetVehicleModel(i);
    if(engine == VEHICLE_PARAMS_ON){
    if(!IsAFahrrad(model)){
    if(vehFuel[i] > 0.0){
    valueOne += GetDistanceToLastPoint(i);
    printf("valueOne: %d", valueOne,);
    if(valueOne > 1000){
    printf("Debug 1");
    vehFuel[i]-= GetVehicleVerbrauch(i)/ 100;
    valueOne = 0;
    printf("neuer tank %d", vehFuel[i]);
    }
    SaveCoords(i);
    }
    else{
    vehFuel[i] = 0.0;
    }
    }
    }
    }
    return 1;
    }


    das sollte so gehen ich poste nur ungern gesamte codes da solche leute auch mal selbst überlegen sollen
    und das war wohl mehr als verdeutlicht.


    Ja die berechnung von ihm ist ja nicht wirklich falsch
    nur nicht an meine idee angepasst bei mir
    brauchst die berechnung nicht


    weisst du überhaupt was da berechnet wird ?
    ich erklär dir das mal






    Benzintank -= (((Meters - LastMeters) /1000) * Verbrauch[XY] / 100);



    Beispiel:


    der tank ist 100 und die meter sind die deines neuen standes beispiel 2000 ( 2km) letzte Meter wären 1000(1km) also grob

    100 - (2000 -1000)/1000 * (10.0/100)
    100- 1 * 0.1
    100- 0.1 =
    99.9


    bei mir ist das anders


    hier wird eine id hochgezählt
    id + 100 stell dir das mal in 10 mal vor


    also id = 1000
    und dann wird die id auf 0 gesetzt und der tank wird abgezogen
    also brauchst du die berechnung gar nicht sondern musst nur noch den wert des tanken abziehen wie du es gemacht hattest
    GetVehicleVerbrauch(i) / 100);

    Dann lass es so abziehen dafür brauchst du keine unnötige rechnung


    (((Meters[i] - valueTwo) / 1000) * GetVehicleVerbrauch(i) / 100);


    lass doch einfach hier den betrag abziehen für das auto in deinem array was du wahrscheinlich alles schon
    hast in der Function GetVehicleVerbrauch weil für was gedenkst du ((Meters[i] - valueTwo) / 1000)


    verwenden das würde so gesehen 0 geben und 0* 0.1 genau gibt 0

    Was sagt den
    valueTwo aus kannst du das mal printen lassen


    //edit


    Meine überlegung war so wenn du beispiel pro sekunde eine Distanz von 100 zurück legst wird diese 100.01212
    erstmal zu einem integer umgewandelt auch wenn da snicht umbedingt nötig ist. Also haben wir mal so gesehen 100.
    Diese werden addiert zu valueTwo


    Sekunde 1: valueTwo = 100
    Sekunde 2: valueTwo = 200
    Sekunde 3: valueTwo = 300
    Sekunde 4: valueTwo = 400
    Sekunde 5: valueTwo = 500
    ....
    Sekunde 10: valueTwo = 1000


    jetzt hättest es auch so machen können >= mit Dem ist gleich oder größer Operator, aber egal
    zurück zum wesentlichen und wie du es schon hattest sollte in der Sekunde der tank um 0.1 subtrahiert werden
    if(valueTwo > 1){
    vehFuel[i] -= 0.1;


    nur fehlt dir noch das valueTwo= 0;


    weil unsere variabel soll ja noch mal hochzählen ich hoffe du weisst jetzt was ich mein.
    Das einzigste was du brauchst ist eine gute rechnung um die kilometer zu berechen mehr nicht

    Hallo Breadfishler.


    Nach langem hab ich auch ein kleines Problem und zwar mach ich gerade ein dynamisches Feuerwehrsystem welches ich auch verkaufen will
    nun ist es so. Das sich beim des Feuers also beim erstellen des Feuers 2 und danach wieder des erstellens des Feuers 1 dazu kommt das
    das im ersten Feuer Elemente des zweiten Feuers erstellt wurden jedoch sind diese so gesehen nicht vorhanden obwohl ich das existieren und
    die Positionen extra lösche um so mit die Temporäre Daten zu löschen und um die neuen zu erstellen.


    Jetzt stelle ich mir die Frage wie ich das Problem am besten löse die Temporären datein in der for schleife zu löschen beim editieren
    geht alles ohen probleme ich kann neben dem normalen feuer welches man löschen kann beliebig die datein laden editieren und speichern lassen.


    Ahja was vllt auch noch teilweise komisch ist das die Objekte welche ich erstelle beim löschen des Feuers mit der höchsten Id entfernt werden jedoch der punkt also
    die koordinate wo sich das Feuer befindet erhalten bleibt.


    Wenn eine vllt ein lösungsansatz hätte oder ein Grund wieso dies passieren könnte währe mir schon geholfen.



    //edit kleine anmerkung
    bei der aufsteigenden Reihen folge gehts also 0 1 2 3 4
    jedoch nicht 0 1 2 3 0

    Mal ganz ehrlich mir selbst ist es scheiß egal auf was für einem Script ich spiele , die hauptsache ist daran das es Spaß macht
    und es sind nett Leute drauf die ich kenne. Naja wenig bugs währen halt auch gut. Aber zurück aufs wesentliche , ein Script was voller Features ist
    bedeutet nicht gleich mehr user sie locken nur die Spieler und wenn es Spaß macht bleiben diese auch.

    Hi..
    Wie kann man das nochma machen:
    In einem Dialog zwichen An / Aus wechseln.
    D.h im listitem 1 steht zuerst AN.. wenn ich drauf klicke, soll da AUS stehen und halt die dazugehörige Funktion.
    mfg


    du könntest eine variabel ändern


    new var;
    und beim aufrufen des dialoges dies ausgeben
    if(var == 0){ ShowPlayerDialog(playerid, DIALOG_Beispiel, DIALOG_STYLE_LIST, "Beispiel", "Aus", "Option 1", "Option 2");}
    else if(var == 1){ ShowPlayerDialog(playerid, DIALOG_Beispiel, DIALOG_STYLE_LIST, "Beispiel", "An", "Option 1", "Option 2");}

    du lässt das geld per giveplayermoney abziehen natürlich ein negativen betrag.


    Für den Timer willst es bestimmt für den Spieler machen dazu verwendet man am besten SetTimerEx mit i als parameter für einen spieler
    und setzt für den auch eine variabel auf 1 welche du nach dem ende also nach 15 minuten auf 0 setzt
    für jeden spieler eine variabel zu setzen geht so als array rent[MAX_PLAYERS] und dem erstellten Fahrzeug solltest du so auch eine variabel zu weißen
    das das script beim zerstören des autos auch weiß welches.


    http://wiki.sa-mp.com/wiki/SetTimerEx


    http://wiki.sa-mp.com/wiki/DestroyVehicle


    http://wiki.sa-mp.com/wiki/Function:GivePlayerMoney


    viel spaß beim probieren

    Dies dachte ich auch, doch was soll den fehlen?
    Vor dem GMX ging alles :D


    Woher sollen wir das wissen bitte schön wir haben dein ordner nicht wir haben keine server.cfg geschweige ein screen shot von dem was du benutzt
    also wir haben auch keine kristallkugel und sind keine hellseher

    Hier http://forum.sa-mp.com/showthread.php?t=56564


    schau mal bei Download


    siehst was , genau da steht r 5 das ist das plugin welches du suchst