Batterie 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
  • Hatt jemand vllt ein script von einer Batterie also wen der wargen Licht anhat das den die Batterie runtergeht und ab ca.2 Volt kann man den Mototr und Das Licht nicht mehr starten ich habe überhaupt kein Plan
    wen die Batterie noch 3Volt hat kann man alles starten und durchs fahren Lädt die sich wiedr auf
    Ich bitte dringend um Hilfe da Ich in der Sufu rein garnichts gefunden habe.
    Bitte Bitte
    Mfg: Gurkie

  • Fahrzeug bezogene Timer verwenden die bei Licht an ab ner bestimmten Sekunde -- zählen.
    Und dann einfache Abfragen, aber ist das nicht argh ressourcen fressend für jedes Fahrzeug welches Licht anhat einen Timer zu bauen?

    KleineHilfe 2.0

  • Nehmen wir mal an auf deinem Server sind 60 Leute, von 60 Leuten besitzen 50 ein Auto, bzw mehrere Autos. Gehen wir mal davon aus, jeder hat 2 Autos, macht zusammen 100 Autos = 100 Timer + die Fraktionsfahrzeuge dazu..

  • Gurke ich würde nach gefahrenen Kilometern zählen z.B. nach 100 km lässt du eine Zahl immer weniger in einer Datei zählen.


    Nur wie du das wieder "aufladen" willst ... ich sehe vorläufig keinen Sinn, da ein Auto ja immer fährt ^^...

    MfG ;-D.

  • ja aber das muss doch irgendwie gehen sonst über ein timer und wen das auto steht und licht an is geht die zahl runter aber ich habe kp wie ich das scripten soll


    Zitat

    Nur wie du das wieder "aufladen" willst ... ich sehe vorläufig keinen Sinn, da ein Auto ja immer fährt ^^...


    in Real kann die autobatterie leer gehen wen Man Radio oder licht anlässt den kann man sie ersetzen oder aufladen alles kein problem nur das er es abzieht ich habe kp wie ich das zur hölle machen soll :(

  • Du nimmst einfach einen GLOBALEN Timer und fragst alle X Sekunden ab also im Timer Callback ob der Spieler in einem Fahrzeug ist, ob das Licht/der Motor an ist!


    Lg

  • Du nimmst einfach einen GLOBALEN Timer und fragst alle X Sekunden ab also im Timer Callback ob der Spieler in einem Fahrzeug ist, ob das Licht/der Motor an ist!


    Lg


    Aber er möchte ja, wenn das Auto steht, dass der Timer läuft wenn ja soll ja etwas passieren ^^...
    Ich denke halt an einem Timer, der Zählt wenn sich das Fahrzeug nicht mehr bewegt, und wenn X Sekunden zusammen gekommen sind, dass es X Batterie abzieht - und wenn es fährt dann wird der timer resetet, und die Batterie wieder befüllt ^^ natürlich auch nach X Sekunden fahrt :D.

    MfG ;-D.


  • Aber er möchte ja, wenn das Auto steht, dass der Timer läuft wenn ja soll ja etwas passieren ^^...
    Ich denke halt an einem Timer, der Zählt wenn sich das Fahrzeug nicht mehr bewegt, und wenn X Sekunden zusammen gekommen sind, dass es X Batterie abzieht - und wenn es fährt dann wird der timer resetet, und die Batterie wieder befüllt ^^ natürlich auch nach X Sekunden fahrt :D.

    Eine Autobatterie im Realen Leben 'startet' auch nicht erst wenn der Wagen steht :huh:


    Er setzt einfach einen globalen Timer unter OnGameModeInit, dann lässt er im Timer Callback einfach abfragen, ob das Fahrzeug an ist, dann wird eine globale spieler variable um 1 erhöht oder wenn er sie oben auf 100 setzt um 1 gesenkt (--; / ++; ), dann fragt er darunter ab, den status der batteriem, ist sie 0 oder was weiß ich, dann schaltet er den motor ab und setzt ne variable, dass der motor aus ist, der timer wird für den spieler gestppt da das Fahrzeug aus ist.


    MfG :thumbup:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Eine Autobatterie im Realen Leben 'startet' auch nicht erst wenn der Wagen steht :huh:


    Er setzt einfach einen globalen Timer unter OnGameModeInit, dann lässt er im Timer Callback einfach abfragen, ob das Fahrzeug an ist, dann wird eine globale spieler variable um 1 erhöht oder wenn er sie oben auf 100 setzt um 1 gesenkt (--; / ++; ), dann fragt er darunter ab, den status der batteriem, ist sie 0 oder was weiß ich, dann schaltet er den motor ab und setzt ne variable, dass der motor aus ist, der timer wird für den spieler gestppt da das Fahrzeug aus ist.


    MfG :thumbup:


    Das stimmt schon, aber im realen Leben hast du die Lichtmaschine, die immer läuft sobald der Motor an ist :whistling:
    Ich denke einfach, dass es die einfache Variante ist, wie ich mir so das vorgestellt habe, mit dem stehenden Timer und wenn das Licht an ist kann man den Timer * 2 machen oder so ^^... ist denke ich mir mal das einfache :b

    MfG ;-D.

  • Leute, so wie ich es gesagt habe ist es die ressourcendsparendste/einfachste/sauberste Methode.
    So sieht bsp. mein Tacho / Bezin System aus.


    forward BenzinVerlust();
    public BenzinVerlust()
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    new x = GetPlayerVehicleID(i);
    if(IsPlayerInAnyVehicle(i) && GetPlayerState(i)==PLAYER_STATE_DRIVER)
    {
    if(Motor[x] == 1 && !IsABike(x))
    {
    //------------> Tank wird geupdatet
    vTank[x]++;
    if(vTank[x]==Verlust)//Alle X Sek. wird der Tank verringert
    {
    Tank[x]--;
    vTank[x]=0;
    }
    if (Tank[x]<1)
    {
    Tank[x] = 0;
    GetVehicleParamsEx(x,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(x,0,lights,alarm,doors,bonnet,boot,objective);
    Motor[x] = 0;
    GameTextForPlayer(i, "~r~Tank leer!~n~~g~Ruf einen Mechaniker!", 1000, 5);
    }
    }
    //---------> Fahrzeugname
    new string[20];
    format(string,sizeof(string),"%s",GetVehicleName(x));
    PlayerTextDrawSetString(i,TachoTank[20],string);
    //---------> Km/h Anzeige wird geupdatet
    new string2[10];
    format(string2,sizeof (string2),"%d Km/h",GetPlayerSpeed(i));
    PlayerTextDrawSetString(i,TachoTank[ 1],string2);
    //---------> Schloss wird geupdatet
    if(Schloss[x] == 0)
    {
    PlayerTextDrawColor(i,TachoTank[ 2], 16711935);
    PlayerTextDrawColor(i,TachoTank[ 4], 16711935);
    PlayerTextDrawColor(i,TachoTank[ 5], 16711935);
    PlayerTextDrawColor(i,TachoTank[ 6], 16711935);
    PlayerTextDrawShow(i, TachoTank[ 2]);
    PlayerTextDrawShow(i, TachoTank[ 4]);
    PlayerTextDrawShow(i, TachoTank[ 5]);
    PlayerTextDrawShow(i, TachoTank[ 6]);
    }
    if(Schloss[x] == 1)
    {
    PlayerTextDrawColor(i,TachoTank[ 2], -16776961);
    PlayerTextDrawColor(i,TachoTank[ 4], -16776961);
    PlayerTextDrawColor(i,TachoTank[ 5], -16776961);
    PlayerTextDrawColor(i,TachoTank[ 6], -16776961);
    PlayerTextDrawShow(i, TachoTank[ 2]);
    PlayerTextDrawShow(i, TachoTank[ 4]);
    PlayerTextDrawShow(i, TachoTank[ 5]);
    PlayerTextDrawShow(i, TachoTank[ 6]);
    }
    //---------> Tankanzeige wird geupdatet
    if(Tank[x] == 100){}
    if(Tank[x] == 90){}
    if(Tank[x] == 85){}
    if(Tank[x] <= 80){PlayerTextDrawHide(i, TachoTank[ 3]);}else PlayerTextDrawShow(i, TachoTank[ 3]);
    if(Tank[x] <= 75){PlayerTextDrawHide(i, TachoTank[ 3]);}else PlayerTextDrawShow(i, TachoTank[ 3]);
    if(Tank[x] <= 70){PlayerTextDrawHide(i, TachoTank[ 3]);}else PlayerTextDrawShow(i, TachoTank[ 3]);
    if(Tank[x] <= 65){PlayerTextDrawHide(i, TachoTank[ 7]);}else PlayerTextDrawShow(i, TachoTank[ 7]);
    if(Tank[x] <= 60){PlayerTextDrawHide(i, TachoTank[ 8]);}else PlayerTextDrawShow(i, TachoTank[ 8]);
    if(Tank[x] <= 55){PlayerTextDrawHide(i, TachoTank[ 9]);}else PlayerTextDrawShow(i, TachoTank[ 9]);
    if(Tank[x] <= 50){PlayerTextDrawHide(i, TachoTank[10]);}else PlayerTextDrawShow(i, TachoTank[10]);
    if(Tank[x] <= 45){PlayerTextDrawHide(i, TachoTank[11]);}else PlayerTextDrawShow(i, TachoTank[11]);
    if(Tank[x] <= 40){PlayerTextDrawHide(i, TachoTank[12]);}else PlayerTextDrawShow(i, TachoTank[12]);
    if(Tank[x] <= 35){PlayerTextDrawHide(i, TachoTank[13]);}else PlayerTextDrawShow(i, TachoTank[13]);
    if(Tank[x] <= 30){PlayerTextDrawHide(i, TachoTank[14]);}else PlayerTextDrawShow(i, TachoTank[14]);
    if(Tank[x] <= 25){PlayerTextDrawHide(i, TachoTank[15]);}else PlayerTextDrawShow(i, TachoTank[15]);
    if(Tank[x] <= 20){PlayerTextDrawHide(i, TachoTank[16]);}else PlayerTextDrawShow(i, TachoTank[16]);
    if(Tank[x] <= 15){PlayerTextDrawHide(i, TachoTank[17]);}else PlayerTextDrawShow(i, TachoTank[17]);
    if(Tank[x] <= 10){PlayerTextDrawHide(i, TachoTank[18]);}else PlayerTextDrawShow(i, TachoTank[18]);
    if(Tank[x] == 5){PlayerTextDrawHide(i, TachoTank[19]);} else PlayerTextDrawShow(i, TachoTank[19]);
    }
    //------------> Wenn er nicht in einem Fahrzeug ist und nicht der Fahrer ist
    else
    {
    PlayerTextDrawHide(i, TachoTank[ 0]);
    PlayerTextDrawHide(i, TachoTank[ 1]);
    PlayerTextDrawHide(i, TachoTank[ 2]);
    PlayerTextDrawHide(i, TachoTank[ 3]);
    PlayerTextDrawHide(i, TachoTank[ 4]);
    PlayerTextDrawHide(i, TachoTank[ 5]);
    PlayerTextDrawHide(i, TachoTank[ 6]);
    PlayerTextDrawHide(i, TachoTank[ 7]);
    PlayerTextDrawHide(i, TachoTank[ 8]);
    PlayerTextDrawHide(i, TachoTank[ 9]);
    PlayerTextDrawHide(i, TachoTank[10]);
    PlayerTextDrawHide(i, TachoTank[11]);
    PlayerTextDrawHide(i, TachoTank[12]);
    PlayerTextDrawHide(i, TachoTank[13]);
    PlayerTextDrawHide(i, TachoTank[14]);
    PlayerTextDrawHide(i, TachoTank[15]);
    PlayerTextDrawHide(i, TachoTank[16]);
    PlayerTextDrawHide(i, TachoTank[17]);
    PlayerTextDrawHide(i, TachoTank[18]);
    PlayerTextDrawHide(i, TachoTank[19]);
    PlayerTextDrawHide(i, TachoTank[20]);
    }
    }
    return 1;
    }


    Lg