nach vollem Tank abfragen??

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
  • Moin,
    ich editiere grade das Lifeplay script und wollte wissen wie ich da nach nem Tank abfrage ?
    z.B ich erstelle mit dem Befehl /auto ein Auto nur spawnt es dann ohne Benzin, wie kann ich angeben das
    es mit vollem Tank spawnen soll ?


    Wäre dankbar für hilfe, danke im voraus.
    Lg.

  • Tja wie wohl ? Im Script nach einer Variable suchen die wahrscheinlich die größe von MAX_VEHICLES hat und im Namen irgendwas mit Benzin zu tun hat.


    Ich kenn das Script übrigens nicht,brauch ich aber auch nicht. Eine Variable finden ist schließlich keine große Kunst.

  • Wenn die globale Variable new Spielerdatei[MAX_PLAYERS][Benzin] ist ( ist natürlich eine feststellung , weil du keine Variable angegeben hast -.-)


    Also müsste es so gehen
    Vorab:Wir wissen das der Wert natürlicherweise 100 sein muss (max. Wert)

    if(Spielerdatei[playerid][Benzin] = 100);
    {
    Code//
    Hier könnte was entstehen , was bei der Variable die den Wert 100 beträgt , passieren kann.
    Beispiel:
    SetPlayerDeath(playerid,0); Spieler stirbt,istzwar sinnlos aber ist ja nur ein beispiel.
    }

    Wenn das deine Frage beantwortet oder wenn das deine Frage garnicht entspricht. dann ja...

  • Die Tank variable zu finden ist schon nicht leicht^^ ich bin ja noch am lernen und im script gibts ja Benzin diesel und autogas das muss dann auch entsprechend definiert werden nur weiß ich nicht wie ich z.B GetFuel oder sowas xd
    Lg.

  • Variablen findest um im oberen Teil des Scripts.


    Und merke : Als Anfänger solltest du nicht so ein großes Script benutzen oder es gar davon zu lernen , weil es für dich zu komplex ist oder werden kann.

  • Meinste nicht du hättest in dem Post zumindest mal den Link zu dem Gamemode posten können ? Eventuell macht sich ja dann Jemand die Mühe und sucht für dich.


    Das Script ist leider nicht mehr zu downloaden :/


    Und ich lerne durch das Script recht schnell und komme gut damit klar, nur hab ich nie was mit Tank abfragen oderso zutuhen gehabt, das Script ist ja schon recht beliebt von Deadwalker.
    Daher dachte ich hier von jmd hilfe zu bekommen der das Script recht gut kennt und schon was damit gemacht hat.


    Lg.

  • Goldkiller ,
    Das hätte ich auch nicht gemacht.
    Was ich davon weiß ist , dass es von einem Editer von Los Angeles Reallife ist.
    Ich weiß leider nicht den Namen.
    Mein vorpost besagt , was du andeuten willst.
    Das Script hat 30k Linien und ist für Anfänger unübersichtlich.


    //guck dir mal meinen Post an , da habe ich es beschrieben wie es gehen könnte.
    und was bringt es dir eig. aus dem Script zu lernen, obwohl du nach dem scripting hier fragst ?

  • Das bringt doch nichts ! Die Variable gibts schon nur ist es wgn dem Benzin Diesel und Autogas etwas kompliziert wie ich das Abfragen soll, ich habs versucht Errors oder Warnings gibt net aber der wagen spawnt ohne Benzin deswegen wollte ich hier jmd fragen der sich damit auskennt und wie ich das angebe das er mit vollen Tank spawnt.!


    Lg.

  • Also wirklich?



    if(Spielerdatei[playerid][Benzin] = 100);
    Dann kann die Variable Benzine auch Diesel sein , so :
    if(Spielerdatei[playerid][Diesel] = 100);
    Achtung:Diese Variable gibts es wahrscheinlich nicht im Script -.-

  • if(Spielerdatei[playerid][Benzin] = 100);
    dann muss ich das ja dann da einfügen, es ging mir z.B hier mal ein kopierter Befehl von einem RentRoller system die stelle die ich abfragen bzw angeben möchte ist orange makiert:


    if (strcmp( "/roller", cmdtext, true, 10) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,1658.7644,-1693.1583,20.4504))
    {
    if(SpielerInfo[playerid][pLevel] < 3)
    {
    if(MietetRoller[playerid] == 0)
    {
    SetCameraBehindPlayer(playerid);
    ClearChatbox(playerid, 100);
    MietetRoller[playerid] = 1;
    GivePlayerMoney(playerid, -50);


    if(IsPlayerInRangeOfPoint(playerid, 5.0,1658.7644,-1693.1583,20.4504)) // LS
    {
    seinroller[playerid] = CreateVehicle(462,1672.5883,-1719.3019,20.4844, 90.0000, -1, -1, -1);
    }


    PutPlayerInVehicle(playerid, seinroller[playerid], 0);
    [color=#ff6600]Tankmenge[seinroller[playerid]] = GasMax[GetVehicleModel(playerid)-400];[/color]
    SeinRollerLocked[playerid] = 1;
    SetVehicleParamsForAll(seinroller[playerid],0,0);
    SetVehicleParamsForPlayer(seinroller[playerid],playerid,0,0);
    SendClientMessage(playerid, COLOR_GREEN, "Mit /droller kannst du den Roller wieder abgeben!");
    SendClientMessage(playerid, COLOR_GREEN, "Mit /lockroller kannst du deinen Roller abschließen!");
    SendClientMessage(playerid, COLOR_GREEN, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Beim nächsten Disconnect wird dein Roller auch gelöscht !!");
    TogglePlayerControllable(playerid,1);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Mit Level 3 kannst du dir kein Roller mehr mieten.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du bist an keiner Roller Vermietung!");
    return 1;
    }
    return 1;
    }
    }

  • Du hast es leider immer noch nicht verstanden.
    Das war ein kleines Beispiel meinerseits , mein Ziel war , das du es umsetzen kannst.


    Und zum Thema Copy/Paste , dieser Fehler begehen alle Anfänger , unterlass es lieber.
    So eine Variable ( wie du es im script bestimmt stehen hast) musst du zuerst finden , dann poste es mal hier , dann werde ich dir weiter helfen.

  • Ok.
    Vergiss den Teil.
    Dann such mal nach der Variable mit dem Benzin dann kann ich dir es mal erklären , wie man sie nutzt.
    Für mich ist es ja kein Problem , ich will dir es nur leicht "verträglich" machen.

  • hmm beim /tanken befehl ist es doch eigentlich auch so das sich der Tank füll also muss dort angegeben sein ob Diesel Benzin oder Autogas auf 100 gesetzt wird, aber nu wo geschieht das ?
    if(!strcmp("/tanken", cmdtext, true))
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    for(new ta = 0; ta < sizeof(Tanken); ta++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20, Tanken[ta][trax], Tanken[ta][tray], Tanken[ta][traz]))
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(GetPlayerVehicleID(playerid) == PlayerCar[i][vid])
    {


    format(str, sizeof str, "Benzin: %0.2f\nDiesel: %0.2f\nAutogas: %0.2f", Tanken[ta][Benzin], Tanken[ta][Diesel], Tanken[ta][Autogas]);
    ShowPlayerDialog(playerid, TankenDiag, 2, "Tanken", str, "Tanken", "Abbrechen");
    return 1;
    }
    }
    }
    }
    SendClientMessage(playerid, Grey, "Du bist an keiner Tanke!");
    }
    else
    {
    return SendClientMessage(playerid, Grey, "Du bist in keinem Fahrzeug oder nicht der Fahrer!");
    }
    return 1;
    }


    Upps hab grade gemerkt das das im Dialog veräuft, hier der Dialog:
    if(dialogid == TankenDiag)
    {
    if(response)
    {
    if(!listitem)
    {
    for(new ta = 0; ta < sizeof(Tanken); ta++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20, Tanken[ta][trax], Tanken[ta][tray], Tanken[ta][traz]))
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(GetPlayerVehicleID(playerid) == PlayerCar[i][vid])
    {
    new price = floatround(Tanken[ta][Benzin])*(100-PlayerCar[i][Fuel]);
    if(price >= GetPlayerMoney(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld!");
    return 1;
    }
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF, al, doors, bo, boot, obj);
    VehInfo[GetPlayerVehicleID(playerid)][Motor] = 0;
    VehInfo[GetPlayerVehicleID(playerid)][Licht] = 0;
    Refueling[playerid] = 1;
    SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0);
    new t = vrandom(2000, 5000);
    SetTimerEx("FillGas", t, 0, "iiii", i, playerid, price, 1);
    GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~~n~~n~~n~~n~Fahrzeug wird betankt...",t,3);
    return 1;
    }
    }
    }
    }
    }
    else if(listitem)
    {
    for(new ta = 0; ta < sizeof(Tanken); ta++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20, Tanken[ta][trax], Tanken[ta][tray], Tanken[ta][traz]))
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(GetPlayerVehicleID(playerid) == PlayerCar[i][vid])
    {
    new price = floatround(Tanken[ta][Diesel])*(100-PlayerCar[i][Fuel]);
    if(price >= GetPlayerMoney(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld!");
    return 1;
    }
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF, al, doors, bo, boot, obj);
    VehInfo[GetPlayerVehicleID(playerid)][Motor] = 0;
    VehInfo[GetPlayerVehicleID(playerid)][Licht] = 0;
    Refueling[playerid] = 1;
    SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0);
    new t = vrandom(2000, 5000);
    SetTimerEx("FillGas", t, 0, "iiii", i, playerid, price, 2);
    GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~~n~~n~~n~~n~Fahrzeug wird betankt...",t,3);
    return 1;
    }
    }
    }
    }
    }
    else if(listitem == 2)
    {
    for(new ta = 0; ta < sizeof(Tanken); ta++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20, Tanken[ta][trax], Tanken[ta][tray], Tanken[ta][traz]))
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(GetPlayerVehicleID(playerid) == PlayerCar[i][vid])
    {
    new price = floatround(Tanken[ta][Autogas])*(100-PlayerCar[i][Fuel]);
    if(price >= GetPlayerMoney(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld!");
    return 1;
    }
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF, al, doors, bo, boot, obj);
    VehInfo[GetPlayerVehicleID(playerid)][Motor] = 0;
    VehInfo[GetPlayerVehicleID(playerid)][Licht] = 0;
    Refueling[playerid] = 1;
    SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0);
    new t = vrandom(2000, 5000);
    SetTimerEx("FillGas", t, 0, "iiii", i, playerid, price, 3);
    GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~~n~~n~~n~~n~Fahrzeug wird betankt...",t,3);
    return 1;
    }
    }
    }
    }
    }
    }
    }


  • Tanken[ta][Benzin], Tanken[ta][Diesel], Tanken[ta][Autogas]

    3 Variablen , die dafür sprechen.


    //edit

    Tanken[ta][trax], Tanken[ta][tray], Tanken[ta][traz]

    Ohne das Script zu kennen, weiß ich dass diese 3 Variablen die Koordianten : X,Y,Z sind.