Benzin checken :(

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

  • forward TankCheck();


    for(new c=0;c<MAX_VEHICLES;c++)
    {
    Tank[code=c] = 100;
    }


    SetTimer("TankCheck",90000*3200000,1);


    public TankCheck()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new Auto = GetPlayerVehicleID(i);
    if(Tank[Auto] <=1)
    {
    SendClientMessage(i, COLOR_WHITE, "Dein Tank ist Leer, gebe /exitveh ein");
    }
    }
    }
    }
    retu

  • Hier das ist der Timmer wan er immer 1 Benzin abzieht:
    checkgastimer = SetTimer("CheckGas", RunOutTime, 1);





    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~Benzin:~w~ %d%",Gas[vehicle]);
    GameTextForPlayer(i,string,15500,3); }
    if(IsAPlane(vehicle) || IsABoat(vehicle) || IsAFahrrad(vehicle)) { Gas[vehicle]++; }
    Gas[vehicle]--;
    }
    else
    {
    NoFuel[i] = 1;
    TogglePlayerControllable(i, 0);
    GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Nicht genug Benzin im Auto~n~benutze /exit um das Fahrzeug zu verlassen",1500,3);
    }
    }
    }
    }
    return 1;
    }


    Wen du dir jetz mal ganz unten anschaust da steht das hier :
    if(IsAPlane(vehicle) || IsABoat(vehicle) || IsAFahrrad(vehicle)) { Gas[vehicle]++; }
    Gas[vehicle]--;
    Das heist immer wen er den Public aufruft zieht er ein Benzin ab...


    Wie oft er bei dir benziht abzieht musst du schauen wie bei dir RunOutTime definiert ist.. bei mir isses so :


    #define RunOutTime 15000

    Mein I-Net ^^

  • //edit : Könnte man es nicht auch mit Float:Tank[MAX_VEHICLES] machen? das ergäbe doch Sinn oder nicht?


    ahh.. Fiedel das ergibt sinn.. ich prob mal aus


    Naja geht iwie immer noch net :(
    Ich zeig einfach nomma:



    new Tank[MAX_VEHICLES];


    forward TankCheck();


    for(new c=0;c<MAX_VEHICLES;c++)
    {
    Tank[code=c] = 100;
    }


    SetTimer("TankCheck",RunOutTime,1);


    public TankCheck()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new Auto = GetPlayerVehicleID(i);
    if(Tank[Auto] >=1)
    {
    SendClientMessage(i, COLOR_WHITE, "Dein Tank ist Leer, gebe /exitveh ein");
    }
    }
    }
    }
    return 1;
    }


    Ich habe ja noch meinen Textdraw.. vlt ist da etwas dran falsch



    new Text:vtank;


    forward textdrawvtank(playerid);


    vtank = TextDrawCreate(432.8,400.0,"Benzin: 100");


    TextDrawHideForPlayer(playerid,Text:vtank);


    public textdrawvtank(playerid)
    {
    new veh = GetPlayerVehicleID(playerid);
    new tankstr[11];
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(Tank[veh] > 0)
    {
    Tank[veh] --;
    format(tankstr,sizeof tankstr,"Benzin: %d",Tank[veh]);
    TextDrawSetString(vtank,tankstr);
    }
    else
    {
    format(tankstr,sizeof tankstr,"Benzin leer!");
    TogglePlayerControllable(playerid,0);
    TextDrawSetString(vtank,tankstr);
    }
    }
    return 1;
    }
    timer = SetTimerEx("textdrawvtank",RunOutTime,1,"i",playerid);