/accept refill Problem

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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 user,
    habe ein problem das Problem ist wenn ich jemanden /refill anbiete und er /acceptet dann geht zwar alles bloß der Tank geht nicht hoch also das Auto wird nicht getankt.
    Könnt ihr mir bitte helfen hier mein /accept refill
    else if(strcmp(x_job,"refill",true) == 0)
    {
    if(RefillOffer[playerid] < 999)
    {
    if(IsPlayerConnected(RefillOffer[playerid]))
    {
    if(GetPlayerMoney(playerid) > RefillPrice[playerid])
    {
    GetPlayerName(RefillOffer[playerid], giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new car = gLastCar[playerid];
    new fuel;
    format(string, sizeof(string), "* Du hast %d% Benzin für %d€ vom Mechaniker %s bekommen.",fuel,RefillPrice[playerid],giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s's Fahrzeug mit %d% Benzin gefüllt. Du bekommst die %d€ zu deinem nächsten Gehalt.",sendername,fuel,RefillPrice[playerid]);
    SendClientMessage(RefillOffer[playerid], COLOR_LIGHTBLUE, string);
    PlayerInfo[RefillOffer[playerid]][pPayCheck] += RefillPrice[playerid];
    GivePlayerMoney(playerid, -RefillPrice[playerid]);
    if(Gas[car] < 110) { Gas[car] += fuel; }
    RefillOffer[playerid] = 999;
    RefillPrice[playerid] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst dir den Benzin nicht leisten !");
    return 1;
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Keiner hat dir angeboten deinen Benzin aufzufüllen !");
    return 1;
    }
    }


    Liebe Grüße und Danke

  • Hast du ein Tacho? Hächstwahrscheinlich ja ^^, dann bitte zeig mir vom Tacho die Zeile mit


    format


    oder du kannst mir gleich zeigen, womit du den Tank abliest, also wie die Variable bei dir heißt.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • halber ausschiit vom Tacho
    new vehicle = GetPlayerVehicleID(i);
    GetVehicleVelocity(GetPlayerVehicleID(i), X, Y, Z);
    Speed = floatmul(floatsqroot(floatadd(floatadd(floatpower(X, 2), floatpower(Y, 2)), floatpower(Z, 2))), 250.0);
    new PlayerVehicleModelID = GetVehicleModel(GetPlayerVehicleID(i));
    PlayerVehicleModelID -= 400;
    format(String,sizeof(String),"~b~Auto:~w~ %s~n~~b~Tank:~w~ %d~n~~b~Schaden:~n~~n~Geschwindigkeit:~n~~w~%ikm/h", PlayerVehicle[PlayerVehicleModelID], Gas[vehicle], floatround(floatdiv(Speed, 1.609344), floatround_floor));
    if(VHSCreated[i] == true)
    {
    TextDrawDestroy(VHS[i]);
    }
    VHS[i] = TextDrawCreate(485.000000,355.000000,String);
    TextDrawAlignment(VHS[i],0);
    TextDrawBackgroundColor(VHS[i],0x000000ff);



    Tank System ist vom Standart GF:


    public CheckGas()
    {
    new string[256];
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new vehicle = GetPlayerVehicleID(i);
    if(Gas[vehicle] >= 1)
    {
    if(Gas[vehicle] <= 10) { PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); }
    if(gGas[i] == 1) {
    format(string, sizeof(string), "~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Tank:~w~ %d/100 Liter",Gas[vehicle]);
    GameTextForPlayer(i,string,15500,3); }
    if(IsAPlane(vehicle) || IsABoat(vehicle) || IsANeuling(vehicle) || IsABot(vehicle)) { Gas[vehicle]++; }
    Gas[vehicle]--;
    }
    else
    {
    NoFuel[i] = 1;
    TogglePlayerControllable(i, 0);
    GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Tank Leer. Benutze /aussteigen um das Fahrzeug zu verlassen.",1500,3);
    }
    }
    }
    }
    return 1;
    }


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

  • Danke mir hätte nur das einfache format gereicht ^^


    Also höchstwahrscheinlich liegt es dann am


    new car = gLastCar[playerid];


    wichtig ist nur, dass bei OnPlayerStateChange wenn der Spieler in ein Fahrzeug als Fahrer oder Passant einsteigt, dass der Wert gLastCar auf das derzeitige Fahrzeug setzt bzw. ist ein Fehler aufgetreten, aber um dies zu umgehen machst du folgendes:


    else if(strcmp(x_job,"refill",true) == 0)
    {
    if(RefillOffer[playerid] >= 999) return SendClientMessage(playerid, COLOR_GREY, "Keiner hat dir angeboten deinen Benzin aufzufüllen !");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY, "Du sitzt in keinem Fahrzeug, welches du auftanken lassen möchtest !");
    if(!IsPlayerConnected(RefillOffer[playerid])) return SendClientMessage(playerid,COLOR_GREY,"Der Mechaniker ist nichtmehr auf dem Server !");
    if(GetPlayerMoney(playerid) < RefillPrice[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Du kannst dir den Benzin nicht leisten !");
    GetPlayerName(RefillOffer[playerid], giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new car = GetPlayerVehicleID(playerid),fuel;
    format(string, sizeof(string), "* Du hast %d% Benzin für %d€ vom Mechaniker %s bekommen.",fuel,RefillPrice[playerid],giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s's Fahrzeug mit %d% Benzin gefüllt. Du bekommst die %d€ zu deinem nächsten Gehalt.",sendername,fuel,RefillPrice[playerid]);
    SendClientMessage(RefillOffer[playerid], COLOR_LIGHTBLUE, string);
    PlayerInfo[RefillOffer[playerid]][pPayCheck] += RefillPrice[playerid];
    GivePlayerMoney(playerid, -RefillPrice[playerid]);
    if(Gas[car] < 110) { Gas[car] += fuel; }
    RefillOffer[playerid] = 999;
    RefillPrice[playerid] = 0;
    return 1;
    }


    abner dann ist das auftanken nur mehr möglich, wenn der Spieler der das Angebot erhält im Fahrzeug sitzt. Der Mechaniker muss nicht im Fahrzeug sitzen.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • geht leider immer noch nicht
    Du hast 0 Benzin für.. getankt

  • Verdammt, entschuldige ich blindes huhn...


    new car = GetPlayerVehicleID(playerid),fuel = 110 - Gas[car];


    bitte der Fix, und entschuldige, hab die Variable total vergessen xD

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Vielen Dank es geht :)
    Ein Admin bitte closen.


    MFG.
    HaxXorr