Preis erhöhen

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
  • Hey Leute.
    Momentan ist es so, dass ein Liter $1 kostet.
    Wie kann ich das so machen, dass die Preise sich für eine bestimmte Zeit erhöhen, wenn man ein Befehl benutzt hat? Ich hab's versucht, ich hab's nicht geschafft.


    #define PREIS 1 // Preis Pro liter
    #define PREISS 50 //Preis pro Liter nach bomben auf bohrinsel


    forward FillGas(OldFuel, i, playerid, price);
    forward FillGass(OldFuel, i, playerid, price);


    public FillGas(OldFuel, i, playerid, price)
    {
    new str[50];
    if ( OldFuel < MAXFULL ) {
    if (IsAtGasStation(playerid) && Motor[i] == false ) {
    format(str, sizeof str, "Du hast nicht genug Geld dabei!(Kosten: %d$)", price);
    if ( GetPlayerMoney(playerid) >= PREIS ) {
    Tank[i] ++;
    SetTimerEx("FillGas", TANKDAUER * 1, 0, "iiii", Tank[i], i, playerid, price + PREIS);
    GivePlayerMoney(playerid, -PREIS);
    }
    else { SendClientMessage(playerid,error, str); }
    }
    else { format(str, sizeof str, "Das Tanken wurde beendet. (Kosten: %d$)", price); SendClientMessage(playerid,error, str); }
    }
    else { format(str, sizeof str, "Dein Fahrzeug wurde für $%d betankt!", price); SendClientMessage(playerid, info, str); }
    return 1;
    }


    public FillGass(OldFuel, i, playerid, price)
    {
    new str[50];
    if ( OldFuel < MAXFULL ) {
    if (IsAtGasStation(playerid) && Motor[i] == false ) {
    format(str, sizeof str, "Du hast nicht genug Geld dabei!(Kosten: %d$)", price);
    if ( GetPlayerMoney(playerid) >= PREISS ) {
    Tank[i] ++;
    SetTimerEx("FillGass", TANKDAUER * 1, 0, "iiii", Tank[i], i, playerid, price + PREISS);
    GivePlayerMoney(playerid, -PREISS);
    }
    else { SendClientMessage(playerid,error, str); }
    }
    else { format(str, sizeof str, "Da die Bohrinsel kaputt ist kostet es mehr. Tanken wurde beendet. (Kosten: %d$)", price); SendClientMessage(playerid,error, str); }
    }
    else { format(str, sizeof str, "Dein Fahrzeug wurde für $%d betankt!", price); SendClientMessage(playerid, info, str); }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[]) {


    if (strcmp(cmdtext, "/bibomben", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,50.0,4575.9058,-1883.9462,23.1554))
    {
    SendClientMessageToAll(COLOR_ORANGE,"NR Bot: Soeben wurde uns berichtet, dass gerade jemand die Bohrinsel hochjagt.");
    SendClientMessageToAll(COLOR_ORANGE,"NR Bot: Die Tankstellen werden nicht mehr Benzin rauspumpen können. Die daraus folgenden Probleme");
    SendClientMessageToAll(COLOR_ORANGE,"NR Bot: werden die erhöhten Sprit-Preise sein. - Guten Tag, San Andreas.");
    SetTimer("Explosions", 1000, 0);
    SetTimer("FillGass", 1000*60*60*3,0);
    return 1;
    }
    }

  • dann mach aus den defines


    #define PREIS 1 // Preis Pro liter
    #define PREISS 50 //Preis pro Liter nach bomben auf bohrinsel


    variabeln


    new PREIS = 1, PREISS = 50


    die du nun mit einem command verändern kannst oder durch eine funktion

  • if (strcmp(cmdtext, "/bibomben", true) == 0)
    SetTimer("benzinpreise", 2000*60, 0);


    public benzinpreise(OldFuel, i, playerid, price)
    {
    new str[50];
    if ( OldFuel < MAXFULL ) {
    if (IsAtGasStation(playerid) && Motor[i] == false ) {
    format(str, sizeof str, "Du hast nicht genug Geld dabei!(Kosten: %d$)", price);
    if ( GetPlayerMoney(playerid) >= OEL ) {
    Tank[i] ++;
    SetTimerEx("benzinpreise", TANKDAUER * 1, 0, "iiii", Tank[i], i, playerid, price + OEL);
    GivePlayerMoney(playerid, -OEL);
    }
    else { SendClientMessage(playerid,error, str); }
    }
    else { format(str, sizeof str, "Das Tanken wurde beendet. (Kosten: %d$)", price); SendClientMessage(playerid,error, str); }
    }
    else { format(str, sizeof str, "Aufgrund der erhöhten Benzinpreise wurde dein Fahrzeug für $%d betankt!", price); SendClientMessage(playerid, info, str); }
    return 1;
    }


    dcmd_fillcars(playerid, params[]) {
    #pragma unused params
    if(IsPlayerInAnyVehicle(playerid)) {
    if(IsAtGasStation(playerid)) {
    new vehicle = GetPlayerVehicleID(playerid); new price = MAXFULL; price -= Tank[vehicle];
    if ( Motor[vehicle] == true ) { SendClientMessage(playerid, COLOR_GREY, "Du kannst nicht tanken, wenn der Motor noch an ist."); }
    else {
    if(GetPlayerMoney(playerid) > price*OEL) {
    TogglePlayerControllable(playerid, 1);
    new OldFuel = Tank[vehicle], t = price * TANKDAUER;
    SetTimerEx("benzinpreise", 1000, 0, "iiii", OldFuel, vehicle, playerid, 0);
    GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~~n~~n~~n~~n~Das Fahrzeug wird betankt.",t,3);
    }
    else { SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld dabei!"); }
    }
    }
    else { SendClientMessage(playerid, COLOR_GREY, "Du bist an keiner Tankstelle."); }
    }
    return 1;
    }


    Wie kann ich das machen, dass man den Befehl "fillcars" halt nur diese Zeit lang benutzen kann...und den normalen /tanken Befehl "nicht benutzbar" machen kann?
    Weil im moment kann man einfach beide benutzen...Ich will aber halt, dass wenn man /bibomben gemacht hat, man nur /fillcars machen kann.