Tank System

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.
    Liebe Breadfish community.
    Wie muss ich das machen das es aus dem tank biz entzogen wird wieviel es pro lieter koste soll?



    public Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    if(Refueling[i] == 1)
    {
    if(GetPlayerMoney(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    FillUp = FillUp * SPRITPREIS; // FillUp = FillUp * SBizzInfo[3][sbEntranceCost];
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,SPRITPREIS);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(i, - FillUp);
    SBizzInfo[3][sbTill] += FillUp;
    ExtortionSBiz(3, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }


    Ich weiß nicht wie ich das machen muss


    //edit

    10 Mal editiert, zuletzt von Rush ()

  • übertreib nicht er hat nur gepusht was aber verboten ist.
    Ne verwarnung ist dies nicht.
    Ehm es wird schon abgezogen nur nicht pro liter

  • ja ist mir aufgefallen:
    TankstellenInfo[i][tsProducts]--;
    aber wie muss ich das machen das immer 120 abgezogen wird?


    Also wenn jemand tank das die tankestelle dan 120 benzin wieder benötig?


    TankstellenInfo[i][tsProducts]--120;
    oder
    TankstellenInfo[i][tsProducts]120--;
    geht nicht

  • TankstellenInfo[i][tsProducts]-120;
    oder
    TankstellenInfo[i][tsProducts]=TankstellenInfo[i][tsProducts]-120;


    sollte beides gehen

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Okee das funktionirt nun.
    Aber wie muss ich das machen:


    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",tsEntranceCost,TankstellenInfo[i][tsEntranceCost]);


    weil zuzeit wird bei: Preis pro Liter: immer $222 angezeigt?


    //edit
    Text veränder


    // edit
    noch was geschrieben:


    Ich habe das als public drinne:
    public Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    if(Refueling[i] == 1)
    {
    if(GetPlayerMoney(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    //FillUp = FillUp * tsEntranceCost;
    FillUp = FillUp * TankstellenInfo[i][tsEntranceCost];
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",tsEntranceCost,TankstellenInfo[i][tsEntranceCost]);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(i, - FillUp);
    TankstellenInfo[i][tsProducts]=TankstellenInfo[i][tsProducts]-120;
    //SBizzInfo[3][sbTill] += FillUp;
    //ExtortionSBiz(3, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }


    komischer weiße wird man nun nicht mehr ungefreeze nach dem man /fill gemacht hat und es kommt auch keine nachricht das man getank hat

    2 Mal editiert, zuletzt von Rush ()


  • So ist es kürzer:
    TankstellenInfo[i][tsProducts] -= 120;

  • thx das alte problem habe ich auch gelöst mit dem unfreeze und so.


    Wie muss ich es machen das es direkt in das biz geht wo man steht???


    FillUp = FillUp * TankstellenInfo[i][tsEntranceCost];
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,tsEntranceCost);
    TankstellenInfo[i][tsProducts] -= 120;
    TankstellenInfo[i][tsTill] += FillUp;


    Muss ich das villt so machen:

    FillUp = FillUp * TankstellenInfo[i][tsEntranceCost];
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,tsEntranceCost);
    TankstellenInfo[tsProducts] -= 120;
    TankstellenInfo[tsTill] += FillUp;


    ??


    //edit
    text entfernt
    //edit
    neuer text (altes problem gelöst)

    4 Mal editiert, zuletzt von Rush ()

  • Hallo.
    Ich habe das nun so definirt:
    if (strcmp(cmdtext, "/fill3", true) == 0)
    {
    if (PlayerToPoint(9.0, playerid,1943.5537,-1771.2035,13.1177)) // hinterm lspd die tanke
    {
    if(PlayerInfo[playerid][pPtankkey] == 1 || GetPlayerMoney(playerid) >= TankstellenInfo[1][tsEntranceCost])
    {
    if(PlayerInfo[playerid][pPtankkey] != 1)
    {
    if(TankstellenInfo[1][tsLocked] == 1)
    {
    SendClientMessage(playerid,COLOR_RED, "Die Tanke hat geschlossen");
    return 1;
    }
    if(TankstellenInfo[1][tsProducts] == 0)
    {
    SendClientMessage(playerid,COLOR_RED, "Die Tankstelle hat kein Benzin mehr");
    return 1;
    }
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_YELLOW," Ein Fahrrad hat doch keinen Tank...");
    }
    else
    {
    SetTimer("Fillup1",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist an keiner Tankstelle!");
    }
    }
    }
    else
    {
    GameTextForPlayer(playerid, "~r~Du hast nicht genug Geld", 5000, 1);
    }
    }
    else if (PlayerToPoint(9.0, playerid,1004.5674,-939.7189,41.9067)) //bsn tanke
    {
    if(PlayerInfo[playerid][pPtankkey] == 2 || GetPlayerMoney(playerid) >= TankstellenInfo[2][tsEntranceCost])
    {
    if(PlayerInfo[playerid][pPtankkey] != 2)
    {
    if(TankstellenInfo[2][tsLocked] == 1)
    {
    SendClientMessage(playerid,COLOR_RED, "Die Tanke hat geschlossen");
    return 1;
    }
    if(TankstellenInfo[2][tsProducts] == 0)
    {
    SendClientMessage(playerid,COLOR_RED, "Die Tankstelle hat kein Benzin mehr");
    return 1;
    }
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_YELLOW," Ein Fahrrad hat doch keinen Tank...");
    }
    else
    {
    SetTimer("Fillup2",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist an keiner Tankstelle!");
    }
    }
    }
    else
    {
    GameTextForPlayer(playerid, "~r~Du hast nicht genug Geld", 5000, 1);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED,"Du bist Nicht an einem Mafia tor");
    return 1;
    }
    }
    und den public fillup1 und fillup2:
    public Fillup1()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[128];
    VID = GetPlayerVehicleID(i);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    if(Refueling[i] == 1)
    {
    if(GetPlayerMoney(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    //FillUp = FillUp * tsEntranceCost;
    FillUp = FillUp * TankstellenInfo[1][tsEntranceCost];
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,tsEntranceCost);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(1, - FillUp);
    TankstellenInfo[1][tsProducts] -= 120;
    TankstellenInfo[1][tsTill] += FillUp;
    //SBizzInfo[3][sbTill] += FillUp;
    //ExtortionSBiz(3, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }
    public Fillup2()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[128];
    VID = GetPlayerVehicleID(i);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    if(Refueling[i] == 1)
    {
    if(GetPlayerMoney(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    //FillUp = FillUp * tsEntranceCost;
    FillUp = FillUp * TankstellenInfo[i][tsEntranceCost];
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,tsEntranceCost);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(2, - FillUp);
    TankstellenInfo[2][tsProducts] -= 120;
    TankstellenInfo[2][tsTill] += FillUp;
    //SBizzInfo[3][sbTill] += FillUp;
    //ExtortionSBiz(3, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }


    aber es funktionirt immer noch nicht wenn ich /fill3 mache an bsn oder lspd tanek dann kommt bei beiden pro liter 23 so isit es am bsn eingstellt..
    Ich weiß nicht mehr weiter


    //edit

    3 Mal editiert, zuletzt von Rush ()