Hallo, Gast
Sie müssen sich registrieren bevor Sie auf unserer Seite Beiträge schreiben können.

Benutzername/E-Mail:
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 440
» Neuestes Mitglied: cnqhnbmg
» Foren-Themen: 22
» Foren-Beiträge: 73

Komplettstatistiken

Benutzer Online
Momentan sind 21 Benutzer online
» 0 Mitglieder
» 20 Gäste
Bing

Aktive Themen
Textarea leeren, ohne Sei...
Forum: Javascript
Letzter Beitrag: admin
26.10.2021, 23:25
» Antworten: 3
» Ansichten: 59
Anfängerfrage: Funktion u...
Forum: Javascript
Letzter Beitrag: admin
21.10.2021, 19:06
» Antworten: 4
» Ansichten: 60
localStorage
Forum: Javascript
Letzter Beitrag: DeepEagle
17.10.2021, 19:53
» Antworten: 5
» Ansichten: 102
[js] Datein von URL laden...
Forum: Javascript
Letzter Beitrag: admin
17.10.2021, 19:51
» Antworten: 6
» Ansichten: 196
Probleme mit Menü
Forum: Javascript
Letzter Beitrag: Gast
11.10.2021, 12:43
» Antworten: 3
» Ansichten: 208
addEventListener
Forum: Javascript
Letzter Beitrag: admin
04.10.2021, 17:31
» Antworten: 1
» Ansichten: 166
3 Scripte zusammenfassen ...
Forum: Javascript
Letzter Beitrag: Traeumerin1998
26.09.2021, 05:01
» Antworten: 2
» Ansichten: 286
Script mehrfach wiederhol...
Forum: Javascript
Letzter Beitrag: Ammeres
14.09.2021, 22:40
» Antworten: 4
» Ansichten: 439
API Abfrage
Forum: Javascript
Letzter Beitrag: test
14.09.2021, 17:37
» Antworten: 4
» Ansichten: 418
Frage zu Übergabeparamete...
Forum: Javascript
Letzter Beitrag: admin
09.09.2021, 10:10
» Antworten: 1
» Ansichten: 244

 
  Textarea leeren, ohne Seite neu zu laden
Geschrieben von: ASenna - 18.10.2021, 08:10 - Forum: Javascript - Antworten (3)

Moin,

ich würde gern ein Textarea leeren, ohne dass die Seite neu geladen wird. Folgenden Code habe

Code:
document.getElementById("btn_textfeldleeren").addEventListener("click",
    function () {
        document.getElementById("mailtext").value="";
    }
);

Eingebunden ist der Button zum Auslösen des Skriptes mit:

Code:
<script type="text/javascript" src="' . $ordner_js . 'feld_leeren.js"></script>
Code:
...
<button id="btn_textfeldleeren" class="btn_duenn">Textfeld leeren</button>


Und das dürfte wohl auch das Problem sein, weil der Button-Tag immer eine neue Seite beim Server abfordert, oder?

Drucke diesen Beitrag

  Anfängerfrage: Funktion umschreiben
Geschrieben von: leof.22 - 17.10.2021, 22:40 - Forum: Javascript - Antworten (4)

Hallo zusammen,
ich bräuchte Hilfe beim Umschreiben einer Funktion...

Auf einem Raspberry nutze ich zwei 1-wire-Busse. Das Plugin "ds18b20" für node-red zeigt mir immer nur die Thermostate an, die in der Datei ''/sys/bus/w1/devices/w1_bus_master'''1'''/w1_master_slaves'' liegen. Die Sensoren in der Datei ''/sys/bus/w1/devices/w1_bus_master'''2'''/w1_master_slaves'' werden ignoriert.
Ich habe versucht die Funktion so umzuschreiben, dass beide Dateien ausgelesen, verarbeitet und deren Inhalt zusammen gefügt wird. Leider habe ich wo einen Fehler, so dass mir node-red eine leere Liste anzeigt ;-(

Weiß leider nicht woran es liegt. Habe auch versucht über readFileSync Fehler bzgl. mit synchroner/asynchroner Programmierung zu vermeiden - aber js ist alles Neuland für mich...
Kann mir hier vllt. jemand weiter helfen?

Hier die Originaldatei, in der die Funktion ''sensors'' umgeschrieben werden muss:

Code:
'use strict';

//
// Get and temperature from connected sensors.
//
// @chamerling
//

var fs = require('fs');

var W1_FILE = '/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves';
var W2_FILE = '/sys/bus/w1/devices/w1_bus_master2/w1_master_slaves';

function parseHexData(data) {
  var arr = data.split(' ');

  if (arr[1].charAt(0) === 'f') {
    var x = parseInt('0xffff' + arr[1].toString() + arr[0].toString(), 16);
    return (-((~x + 1) * 0.0625));
  } else if (arr[1].charAt(0) === '0') {
    return parseInt('0x0000' + arr[1].toString() + arr[0].toString(), 16) * 0.0625;
  }
  throw new Error('Can not parse data');
}

function parseDecimalData(data) {
  var arr = data.split('\n');

  if (arr[0].indexOf('YES') > -1) {
    var output = data.match(/t=(-?(\d+))/);
    return Math.round(output[1] / 100) / 10;
  } else if (arr[0].indexOf('NO') > -1) {
    return false;
  }
  throw new Error('Can not get temperature');
}

var parsers = {
  'hex': parseHexData,
  'decimal': parseDecimalData,
  'default': parseDecimalData
};

function parseData(data, options) {
  var parser = options.parser || 'default';
  if (!parsers[parser]) {
    parser = 'default';
  }
  return parsers[parser](data);
}
module.exports.parseData = parseData;

// Get all connected sensor IDs as array
// @param callback(err, array)
function sensors(callback) {

  fs.readFile(W1_FILE, 'utf8', function(err, data) {
    if (err) {
      return callback(err);
    }

    var parts = data.split('\n');
    parts.pop();
    return callback(null, parts);
  });
}
module.exports.sensors = sensors;

// Get the temperature of a given sensor
// @param sensor : The sensor ID
// @param callback : callback (err, value)
function temperature(sensor, options, callback) {
  if (options instanceof Function) {
    callback = options;
    options = {};
  }

  fs.readFile('/sys/bus/w1/devices/' + sensor + '/w1_slave', 'utf8', function(err, data) {
    if (err) {
      return callback(err);
    }

    try {
      return callback(null, parseData(data, options));
    } catch(e) {
      return callback(new Error('Can not read temperature for sensor ' + sensor));
    }
  });
};
module.exports.temperature = temperature;

function temperatureSync(sensor, options) {
  options = options || {};
  var data = fs.readFileSync('/sys/bus/w1/devices/' + sensor + '/w1_slave', 'utf8');
  return parseData(data, options);
};
module.exports.temperatureSync = temperatureSync;


Folgendes habe ich umgeschrieben:

Code:
var W1_FILE = '/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves';
var W2_FILE = '/sys/bus/w1/devices/w1_bus_master2/w1_master_slaves';
var sensorsW1;
var sensorsW2;
var sensorsAll;

[...........]

// Get all connected sensor IDs as array
// @param callback(err, array)
function sensors(callback) {
  sensorsW1 =  fs.readFileSync(W1_FILE, 'utf8', function(err, data) {
    if (err) {
      return callback(err);
    }

    var parts = data.split('\n');
    parts.pop();
    return parts;
  });

  sensorsW2 =  fs.readFileSync(W2_FILE, 'utf8', function(err, data) {
    if (err) {
      return callback(err);
    }

    var parts = data.split('\n');
    parts.pop();
    return parts;
  });
return callback(null, sensorsW1);
}
module.exports.sensors = sensors;


Danke und liebe Grüße
Leo

Drucke diesen Beitrag

  localStorage
Geschrieben von: DeepEagle - 17.10.2021, 19:09 - Forum: Javascript - Antworten (5)

Hey Leute ich bin neu im Gebiet JavaScript, ich versuche derzeit unterschiedliche kleine Projekte aufzubauen, bei meinem jetzigen jedoch stoße ich auf ein Problem mit dem Auslesen des localStorage.
Ich möchte einen Prototypen für das erstellen einer Passwort-Benutzernamen Liste erstellen, dabei soll der Benutzer einen Appnamen, sein dazugehörigen Benutzernamen und Passwort eingeben, diese werden dann im LocalStorage gespeichert und sollen wann immer er den Appnamen erneut eingibt wieder ausgelesen werden.
Es "funktioniert" auch beim Benutzernamen, jedoch nicht beim Passwort.
Daher meine Frage liegt es an meinen Variablen oder hab ich einfach einen Logikfehler? 
Schonmal Danke im Voraus!

Code:
[font=Consolas, "Courier New", monospace]<body>

    <input id="app" type="text" placeholder="App" value="">  
    <input id="anmeldename" type="text" placeholder="Anmeldename" value="">
    <input id="passwort" type="text" placeholder="Passwort" value="">
    <button onclick="datenSpeichern()" type="button" class="btn btn-secondary">Speichern</button>
    <button onclick="datenAusgeben()">Anzeigen</button>
    <button onclick="löschen()">löschen</button>
    <br>
    <input id="benutzernameAusgabe" type="text" value="">
    <input id="passwortAusgabe" type="text" value="">

</body>
</html>
<script type="text/javascript">
    function datenSpeichern() {
        var app = document.getElementById('app').value;
        var anmeldename = document.getElementById('anmeldename').value;
        var passwort = document.getElementById('passwort').value;
        window.localStorage.setItem(app,anmeldename,passwort);
        console.log(app,anmeldename,passwort)
    }
    function datenAusgeben() {
    var app = document.getElementById('app').value;
    document.getElementById('benutzernameAusgabe').value = window.localStorage.getItem(app);
    var app = document.getElementById('app').value;
    document.getElementById('passwortAusgabe').value = window.localStorage.getItem(anmeldename);
    }
 function löschen() {
    window.localStorage.clear();
 }[/font]


Eng:
Hey guys I'm new to JavaScript, I'm currently trying to build different small projects, however with my current one I'm running into a problem with reading the localStorage.
I want to build a prototype for creating a password username list, where the user is supposed to enter an appname, it's associated username and password, these are then stored in the localStorage and are supposed to be read again whenever he enters the appname again.
It "works" also for the username, but not for the password.
So my question is it because of my variables or do I just have a logic error?

Drucke diesen Beitrag

  [js] Datein von URL laden und als Array bearbeiten
Geschrieben von: Mitron - 14.10.2021, 14:32 - Forum: Javascript - Antworten (6)

Hallo Zusammen,

ich bin neu hier in diesen Forum und hoffe das ich hier an der richtigen Stelle bin.
Ich muss in einen Plug-In Berechnungen anstellen. Leider biete mir diese Plug-in nicht die Möglichkeit direkt auf interne und externe Quellen zuzugreifen. Im genauen geht es zum eine Preisliste in .csv Format.
Die Idee war, die csv von einer URL herunterzuladen und in ein Array umzuwandeln, damit ich damit rechnen kann.
Eine CSV in Array schreiben funktioniert, Suche in Array auch, allerdings klappt das mit den Download nicht so.

Mein Code:

Code:
<head> </head>
<body>
  <form id="myForm">
    <input type="file" id="csvFile" accept=".csv" />
    <br />
    <input type="submit" value="Submit" />
  </form>
  <script>
    const myForm = document.getElementById("myForm");
    const csvFile = document.getElementById("csvFile");

function stringToArray(csvDatei) {
    var allTextLines = csvDatei.split(/\r\n|\n/);
    var headers = allTextLines[0].split(';');
    var lines = [];

    for (var i=1; i<allTextLines.length; i++) {
        var data = allTextLines[i].split(';');
        if (data.length == headers.length) {

            var tarr = [];
            for (var j=0; j<headers.length; j++) {
                tarr.push(data[j]);
            }
            lines.push(tarr);
        }
    }
    return(lines);
}

function getIndexOf(a,v) {
  var l = a.length;
  for (var k=0;k<l;k++) {
    if (a[k][0]==v) {
        return k;
      }
  }                     
  return false;
}

function downloadFile(urlData) {
    var aLink = document.createElement("a");
    aLink.href = urlData;
    document.body.appendChild(aLink);
    aLink.click();
    window.URL.revokeObjectURL(urlData);
    aLink.remove();
}

    myForm.addEventListener("submit", function (e) {
      e.preventDefault();
      const input = csvFile.files[0];
      const reader = new FileReader();
      reader.onload = function (e) {
        const text = e.target.result;
        //const text2 = downloadFile('URL');
        const data = stringToArray(text);
    
        var index;
        index = getIndexOf(data,"101400");
        document.writeln(index+"<br>");        
        document.writeln(data[index][0]);
        document.writeln(data[index][1]);
        document.writeln(data[index][2]);
      };
     
      reader.readAsText(input);
    });
  </script>
</body>

Ich habe die Zeile mit den Download Abruf deaktiviert. Unter Edge lud er zwar die Datei an der URL herunter, aber danach brach das Programm ab und arbeitet nicht weiter. Unter Firevox startete er garnicht.
Vielleicht hat einer eine Idee oder einen Gedankenanstoß, wie ich:
- eine csv von einer URL in ein Object umwandeln kann, oder oder.

Der Code ist nur in einen HTML eingebettet, damit ich es testen konnt und Rückmeldungen über die Console bekam.
Wie gesagt, es soll in einen Plug-in, wo ich leider keinerlei Rückmeldungen bekomme, nur noch einen Wert am Ende der Berechnung.

MfG

Sebastian

Drucke diesen Beitrag

  Probleme mit Menü
Geschrieben von: none - 09.10.2021, 14:46 - Forum: Javascript - Antworten (3)

Hallo Ihr Wissenden,

leider sind meine JavaScript-Kenntnisse = 0.

Habe folgendes Problem:

Ich möchte, dass sich das Menu nach einem Klick auf einen Link automatisch schließt. Die Seite ist als OneSidePage angelegt.

Code:
<!-----------------------_MENU_NEW_---------------------------------------->

<nav class="site-nav">
    </summary>
  <ul>
        <li><a href="#UE">Über mich</a></li>
        <li><a href="#Leistungen">Leistungen</a></li>
        <li><a href="#Kurse">Kurse</a></li>
        <li><a href="#Kontakt">Kontakt</a></li>
        <li><a href="#Recht"><strong>§</strong> Rechtliche Hinweise</a></li>
  </ul>
    </summary>
</nav>


    <div id="full-screen-menu-toggle" style=" font-size: 1.5em;">&Congruent;</div>


<script>
  // Quelle: http://johnm.io/project/hamburgler/
 
  document.getElementById('full-screen-menu-toggle').addEventListener('click', checkNav);
  window.addEventListener("keyup", function(e) {
    if (e.keyCode == 27) closeNav();
  }, false);

  function checkNav() {
    if (document.body.classList.contains('full-screen-menu-active')) {
      closeNav();
    } else {
      openNav();
    }
  }

  function closeNav() {
    document.body.classList.remove('full-screen-menu-active');
  }

  function openNav() {
    document.body.classList.add('full-screen-menu-active');
  }
</script>

Könnt Ihr mir bitte helfen?
Vielen Dank für Eure Hilfe im Voraus...
none

Drucke diesen Beitrag

  addEventListener
Geschrieben von: iceblock - 03.10.2021, 17:28 - Forum: Javascript - Antworten (1)

Hallo zusammen! ich möchte ein "onblur" event erstellen das bei leeren textfeld oder buchstaben statt zahlen einen text ausgibt. wurde eine zahl eingegeben sollte "### " ausgegeben werden.mein aktueller code: 
[font=Consolas, "Courier New", monospace]eingabe2.addEventListener("blur"function () {
    let enter2 = eingabe2.value;
    if (enter2 == "") {
        result.innerHTML = "bitte geben sie eine zahl ein!";
    } else { result.innerHTML = "###"; }


}, false);
[/font]

ich weiß nicht genau weiter, vl kann mir bitte jemand helfen. danke

Drucke diesen Beitrag

  3 Scripte zusammenfassen birgt Konflikte
Geschrieben von: Traeumerin1998 - 26.09.2021, 03:42 - Forum: Javascript - Antworten (2)

hi ich habe hier 3 Scripte umgebaut/erstellt/zusammengefügt.

1.03x Script
3.00x Script
10.00x Script



zum Verständnis:
die Scripte wetten jeweils 50$, 1$ oder 100$ bei einem "Zufallsspiel"
Runde für Runde geht eine Zahl von 1.00 bis 9000.00 hoch und stoppt zufällig.

Die Scripte "bieten" jeweils auf die Multiplikatoren 1.03x oder 3.00x oder 10.00x.

Und sie beginnen erst, wenn das Spiel z.B. 30mal unter 3.00x stoppte.
Oder 4mal unter 1.03x
oder 70mal unter 10.00x.
Und Sie erhöhen dann jeweils den vorherigen Einsatz, bis das Spiel beim gewünschten Multiplikator stoppt.

Also es setzt immer wieder Etwas mehr Einsatz auf den Multiplikator. Prinzip Martingale:
1.03x: 50, 2500, 125000, 6250000, 312500000, ...
3.00x: 1, 1, 2, 4, 7, 11, 17, 26, 40, 61, 93, 141, 213, 322, 487, 736, 1112, 1680, 2537, 3831, 5785, 8736, 13192, 19920, 30080, ...
10.00x: 100, 112, 125, 139, 155, 173, 193, 215, 240, 267, 297, 331, 369, 411, 458, 510, 568, 632, 703, 782, 870, 968, 1077, 1198, ...



Beim 1.03x Script Einsatz*50:
myBet = (myBet*50)


Beim 3.00x Script Einsatz*1.51:
myBet = (myBet*1.51)

Da ich zweimal 1$ auf 3.00x bieten möchte, gilt hier der "losecounter"
if (losecounter==1){myBet =1
und ab dann gilt automatisch wieder Einsatz*1.51 für die folgenden Runden.
also 1, 1, 2, 4, 7, ...


Beim 10.00x Script Einsatz*1.112
hier gilt der "losecounter" bis =50
if (losecounter==1){myBet =112
if (losecounter==2){myBet =125
...
if (losecounter==50){myBet =21134



Einzeln funktioniert jedes Script sehr gut.

Es wartet und steigt im richtigen Moment ein. Bspw. bei GamesUnter3 >= 30


Nur manchmal hab ich z.B. das 10.00x Script laufen und verpasse dann 30mal unter 3.00x
oder habe das 3.00x Script laufen und verpasse 4mal unter 1.03x

Daher versuch ich mich schon eine Weile daran, diese Scripte zusammenzufügen.


Habe nun schon viel versucht. Wenn ich mehrere der Script-Befehle ineinander füge, stimmt das mit dem losecounter leider nicht mehr, weil dann mehrere losecounter gleichzeitig aktiv sind oder garkeiner.


Problem-Beispiel beim All-In-One Script:
Angenommen es wurde 30mal unter 3.00x gestoppt, nun soll "Operation3.00x" starten und bietet in folgenden Schritten:
Runde 30: 1$ auf 3.00x
Runde 31: 2$ auf 3.00x
Runde 32: 4$ auf 3.00x
Runde 33: 7$ auf 3.00x
Runde 34: 11$ auf 3.00x

usw...

Nun aber, wenn der Stopp 32mal unter 3.00x ist, ist er auch manchmal gleichzeitig 70mal unter 10.00x
oder 4mal unter 1.03x.

Somit bietet das Script dann plötzlich
Runde 30: 1$ auf 3.00x
Runde 31: 1$ auf 3.00x
Runde 32: 2$ auf 3.00x
Runde 33: 50$ auf 1.03x ...



oder beim Start des 10.00x Script in diesem Moment:
Runde 30: 1$ auf 3.00x
Runde 31: 1$ auf 3.00x
Runde 32: 2$ auf 3.00x
Runde 33: 139$ auf 10.00x ...

weil:
if (losecounter==3){myBet = 139



Nun, daher wende ich mich an euch hier
> Wie ist es möglich, diese Scripte zu einem zusammenzufügen?
- Und jede "Operation" in einen seperaten Bereich zu unterteilen (Operation103, Operation3,Operation10)
- Und sobald eine Operation aktiviert ist, sollte sich keine andere Operation aktivieren dürfen.

also ich stell mir das in etwa so vor, beispielsweise:
if RundenUnter103 >= 4 > start Operation103
if RundenUnter3 >= 30 > start Operation3
if RundenUnter10 >= 70 >start Operation10


und zusätzlich dazu:
if Operation103=true > Lasse keine andere Operation zu, bis aktuelle Operation mit Gewinn abgeschlossen.
> Danach lasse weitere Operationen zu & Setze Counter für Operation3 zurück








Hier meine drei Scripte einzeln (Deutsch):
1.03x: https://privnote.com/7wjXNHvb#ET4lM03VY
3.00x: https://privnote.com/ayl572p3#JJ7YcZUtU
10.00x: https://privnote.com/dLnXlbSJ#zzQSNuTSq

Hier die aktuelle All-In-One-Version, von mir zusammengestellt und nicht 100% funktionstüchtig:
Aktuell sieht es so aus:

Code:
var config = {
    skipRounds103: { value: '5', type: 'text', label: 'Skip 1.03x'},
    skipRounds3: { value: '5', type: 'text', label: 'Skip 3x'},
    skipRounds10: { value: '5', type: 'text', label: 'Skip 10x'},
};
 
var GamesWait103 = config.skipRounds103.value;
var GamesWait3 = config.skipRounds3.value;
var GamesWait10 = config.skipRounds10.value;
 
var baseBet103 = 50;
var baseBet3 = 1;
var baseBet10 = 100;
 
var putMultiplier103 = 1.03;
var putMultiplier3 = 3;
var putMultiplier10 = 10;
 
var putBet103 = baseBet103;
var putBet3 = baseBet3;
var putBet10 = baseBet10;
 
var losecounter103 = 0;
var losecounter3 = 0;
var losecounter10 = 0;
 
var Operation103 = false
var Operation3 = false
var Operation10 = false
 
var GamesBelow103 = GetGamesBelow103();
var GamesBelow105 = GetGamesBelow105();
var GamesBelow125 = GetGamesBelow125();
var GamesBelow150 = GetGamesBelow150();
var GamesBelow2 = GetGamesBelow2();
var GamesBelow3 = GetGamesBelow3();
var GamesBelow4 = GetGamesBelow4();
var GamesBelow5 = GetGamesBelow5();
var GamesBelow7 = GetGamesBelow7();
var GamesBelow10 = GetGamesBelow10();
var GamesBelow100 = GetGamesBelow100();
 
 
//    log('Unter 1.03x: ' + GamesBelow103 + '. | Unter 1.05x: ' + GamesBelow105 + '.');
//    log('Unter 1.25x: ' + GamesBelow125 + '. | Unter 1.50x: ' + GamesBelow150 + '.');
//    log('Unter 2.00x: ' + GamesBelow2 + '. | Unter 3.00x: ' + GamesBelow3 + '.');
//    log('Unter 4.00x: ' + GamesBelow4 + '. | Unter 5.00x: ' + GamesBelow5 + '.');
//    log('Unter 7.00x: ' + GamesBelow7 + '. | Unter 10.0x: ' + GamesBelow10 + '.');
//    log('Unter 100x: ' + GamesBelow100 + '.');
 
 
engine.on('GAME_STARTING', function()
{
    log('Games below 1.03x: ' + GamesBelow103 + '.');
    log('Games below 3.00x: ' + GamesBelow3 + '.');
    log('Games below 10.0x: ' + GamesBelow10 + '.');
 
 
   
   
 
if(GamesBelow103 >= GamesWait103){
    putBet103 = Math.ceil(putBet103);
    engine.bet(parseInt(putBet103*100), parseFloat(putMultiplier103));
 
    log('Bet ' + putBet103 + ' x ' + putMultiplier103 + ' next round.');
    Operation103 = true;
    }else{  
    Operation103 = false;
    let countWait103 = GamesWait103 - GamesBelow103;
    if(countWait103 == 0){
    log('Bet ' + baseBet103 + ' x ' + putMultiplier103 + ' next round.');
    }else{
    log('Wait ' + countWait103 + ' Games below 1.03x');
    losecounter103=0;}}
 
 
 
 
 
 
if(GamesBelow3 >= GamesWait3){
    putBet3 = Math.ceil(putBet3);
    engine.bet(parseInt(putBet3*100), parseFloat(putMultiplier3));
 
    log('Bet ' + putBet3 + ' x ' + putMultiplier3 + ' next round.');
    Operation3 = true;
    }else{
   
    Operation3 = false;
    let countWait3 = GamesWait3 - GamesBelow3;
    if(countWait3 == 0){
    log('Bet ' + baseBet3 + ' x ' + putMultiplier3 + ' next round.');
    }else{
    log('Wait ' + countWait3 + ' Games below 3x');
    losecounter3=0;}}
 
 
 
if(GamesBelow10 >= GamesWait10){
    putBet10 = Math.ceil(putBet10);
    engine.bet(parseInt(putBet10*100), parseFloat(putMultiplier10));
 
    log('Bet ' + putBet10 + ' x ' + putMultiplier10 + ' next round.');
    Operation10 = true;
    }else{
    Operation10 = false;
    let countWait10 = GamesWait10 - GamesBelow10;
    if(countWait10 <= 0){
    log('Bet ' + baseBet10 + ' x ' + putMultiplier10 + ' next round.');
    }else{
    log('Wait ' + countWait10 + ' Games below 10x');
    losecounter10=0;}}
       
});
 
 
 
 
 
 
 
 
 
 
engine.on('GAME_ENDED', function() {
   
    var lastGame = engine.history.first();
    if(Operation103){
    losecounter103++;
    if(!lastGame.cashedAt){
    putBet103 = (putBet103*50);
    putMultiplier103 = 1.03
    log('Verloren @1.03x.');
 
    }else if(lastGame.cashedAt >= 1.03){
    putBet103 = baseBet103;
    log('Gewonnen @1.03x.');
    losecounter103=0;}}
   
    if(Operation3){
    losecounter3++;
    if(!lastGame.cashedAt){
    putBet3 = (putBet3*1.51);
    putMultiplier3 = 3
    log('Verloren @3x.');
 
    }else if(lastGame.cashedAt >= 3){
    putBet3 = baseBet3;
    log('Gewonnen @3x.');
    losecounter3=0;}}
   
    if(Operation10){
    losecounter10++;
    if(!lastGame.cashedAt){
    putBet10 = (putBet10*1.112);
    putMultiplier10 = 10
    log('Verloren @10x.');
 
    }else if(lastGame.cashedAt >= 10){
    putBet10 = baseBet10;
    log('Gewonnen @10x.');
    losecounter10=0;}}
   
 
 
 
 
 
 
 
 
 
 
    if(lastGame.bust > 1.03){
    GamesBelow103 = 0;
    }else{
    GamesBelow103++;}
    if(lastGame.bust > 1.05){
    GamesBelow105 = 0;
    }else{
    GamesBelow105++;}
    if(lastGame.bust > 1.25){
    GamesBelow125 = 0;
    }else{
    GamesBelow125++;}
    if(lastGame.bust > 1.50){
    GamesBelow150 = 0;
    }else{
    GamesBelow150++;}
    if(lastGame.bust > 2){
    GamesBelow2 = 0;
    }else{
    GamesBelow2++;}  
    if(lastGame.bust > 3){
    GamesBelow3 = 0;
    }else{
    GamesBelow3++;}
    if(lastGame.bust > 4){
    GamesBelow4 = 0;
    }else{
    GamesBelow4++;}      
    if(lastGame.bust > 5){
    GamesBelow5 = 0;
    }else{
    GamesBelow5++;}  
    if(lastGame.bust > 7){
    GamesBelow7 = 0;
    }else{
    GamesBelow7++;}  
    if(lastGame.bust > 10){
    GamesBelow10 = 0;
    }else{
    GamesBelow10++;}  
    if(lastGame.bust > 100){
    GamesBelow100 = 0;
    }else{
    GamesBelow100++;}
 
 
    log('...');
})
 
 
 
 
 
 
 
 
 
 
// Funktionen
 
 
    function GetGamesBelow103(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow103 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 1.03){
    break;}
    generatedGamesBelow103++;}
    return generatedGamesBelow103;}
   
    function GetGamesBelow105(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow105 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 1.05){
    break;}
    generatedGamesBelow105++;}
    return generatedGamesBelow105;}
   
    function GetGamesBelow125(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow125 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 1.25){
    break;}
    generatedGamesBelow125++;}
    return generatedGamesBelow125;}
   
    function GetGamesBelow150(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow150 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 1.50){
    break;}
    generatedGamesBelow150++;}
    return generatedGamesBelow150;}
   
    function GetGamesBelow2(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow2 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 2){
    break;}
    generatedGamesBelow2++;}
    return generatedGamesBelow2;}
   
    function GetGamesBelow3(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow3 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 3){
    break;}
    generatedGamesBelow3++;}
    return generatedGamesBelow3;}
   
    function GetGamesBelow4(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow4 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 4){
    break;}
    generatedGamesBelow4++;}
    return generatedGamesBelow4;}
 
    function GetGamesBelow5(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow5 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 5){
    break;}
    generatedGamesBelow5++;}
    return generatedGamesBelow5;}
   
    function GetGamesBelow7(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow7 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 7){
    break;}
    generatedGamesBelow7++;}
    return generatedGamesBelow7;}
   
    function GetGamesBelow10(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow10 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 10){
    break;}
    generatedGamesBelow10++;}
    return generatedGamesBelow10;}
 
    function GetGamesBelow100(){
    let GamesArray = engine.history.toArray();
    let generatedGamesBelow100 = 0;
    for (var i = 0; i < GamesArray.length; i++) {
    if(GamesArray[i].bust >= 100){
    break;}
    generatedGamesBelow100++;}
    return generatedGamesBelow100;}
 





Leider bietet es relativ "durcheinander" und laut den Logs will es mehrfach zeitgleich bieten.
Code:
04:17: Script starting
04:18: ...
04:18: Games below 1.03x: 0.
04:18: Games below 3.00x: 0.
04:18: Games below 10.0x: 0.
04:18: Wait 5 Games below 1.03x
04:18: Wait 5 Games below 3x
04:18: Wait 5 Games below 10x
04:18: ...
04:18: Games below 1.03x: 0.
04:18: Games below 3.00x: 0.
04:18: Games below 10.0x: 1.
04:18: Wait 5 Games below 1.03x
04:18: Wait 5 Games below 3x
04:18: Wait 4 Games below 10x
04:19: ...
04:19: Games below 1.03x: 0.
04:19: Games below 3.00x: 0.
04:19: Games below 10.0x: 2.
04:19: Wait 5 Games below 1.03x
04:19: Wait 5 Games below 3x
04:19: Wait 3 Games below 10x
04:19: ...
04:19: Games below 1.03x: 0.
04:19: Games below 3.00x: 1.
04:19: Games below 10.0x: 3.
04:19: Wait 5 Games below 1.03x
04:19: Wait 4 Games below 3x
04:19: Wait 2 Games below 10x
04:20: ...
04:20: Games below 1.03x: 0.
04:20: Games below 3.00x: 0.
04:20: Games below 10.0x: 0.
04:20: Wait 5 Games below 1.03x
04:20: Wait 5 Games below 3x
04:20: Wait 5 Games below 10x
04:20: ...
04:20: Games below 1.03x: 0.
04:20: Games below 3.00x: 1.
04:20: Games below 10.0x: 1.
04:20: Wait 5 Games below 1.03x
04:20: Wait 4 Games below 3x
04:20: Wait 4 Games below 10x
04:20: ...
04:20: Games below 1.03x: 0.
04:20: Games below 3.00x: 2.
04:20: Games below 10.0x: 2.
04:20: Wait 5 Games below 1.03x
04:20: Wait 3 Games below 3x
04:20: Wait 3 Games below 10x
04:20: ...
04:21: Games below 1.03x: 0.
04:21: Games below 3.00x: 3.
04:21: Games below 10.0x: 3.
04:21: Wait 5 Games below 1.03x
04:21: Wait 2 Games below 3x
04:21: Wait 2 Games below 10x
04:21: ...
04:21: Games below 1.03x: 0.
04:21: Games below 3.00x: 4.
04:21: Games below 10.0x: 4.
04:21: Wait 5 Games below 1.03x
04:21: Wait 1 Games below 3x
04:21: Wait 1 Games below 10x
04:21: ...
04:21: Games below 1.03x: 0.
04:21: Games below 3.00x: 5.
04:21: Games below 10.0x: 5.
04:21: Wait 5 Games below 1.03x
04:21: Bet 1 x 3 next round.
04:21: Bet 100 x 10 next round.
04:21: Verloren @3x.
04:21: Verloren @10x.
04:21: ...
04:21: Games below 1.03x: 0.
04:21: Games below 3.00x: 6.
04:21: Games below 10.0x: 6.
04:21: Wait 5 Games below 1.03x
04:21: Bet 2 x 3 next round.
04:21: Bet 112 x 10 next round.
04:21: Verloren @3x.
04:21: Verloren @10x.
04:21: ...
04:22: Games below 1.03x: 0.
04:22: Games below 3.00x: 7.
04:22: Games below 10.0x: 7.
04:22: Wait 5 Games below 1.03x
04:22: Bet 4 x 3 next round.
04:22: Bet 125 x 10 next round.









Das Script sollte nichtstun und warten, bis
GamesUnter10 >= 70, oder
GamesUnter3 >= 30, oder
GamesUnter103 >= 4
Und dann sollte es bei der erstbesten Gelegenheit bieten und bei dieser Strategie bleiben, bis zum Gewinn.


wie komme ich dahin, dass das Script wartet und entsprechend bietet, bis WIN?

Wie erschaffe ich den "richtigen" Waiting Zustand?
Im Grunde wartet das Script ja die ganze Zeit auf den richtigen Moment.
Nur Momente wie:
GamesUnter3 >= 30 & GamesUnter103 >= 4

geschehen leider immer wieder gleichzeitig und dann springt das Script vom bidding auf 3.00x über zur neuen Strategie > bidding auf 1.03x.


wie erreiche ich, dass das Script nicht auf 1.03x sondern weiterhin auf 3.00x bietet, wenn während dem bidding auf 3.00x plötzlich
GamesUnter103 >= 4 kommt?


Kann man irgendwie GamesUnter10 und GamesUnter103 ignorieren, während es auf GamesUnter3 spielt?

wie erreiche ich, dass das Script alles umher ignoriert und geradewegs die begonnene Strategie bis zum Gewinn vollzieht?


Ich bin am hin und her bearbeiten.
Habe auch alle deutschen Befehle soweit es ging auf englisch bearbeitet. Aber das ändert wohl auch nichts

Drucke diesen Beitrag

Question API Abfrage
Geschrieben von: CellSplitter - 12.09.2021, 22:45 - Forum: Javascript - Antworten (4)

Hallo zusammen, bin hier irwie am verzweifeln, vorweg ich bin noch nicht so lange dabei mich mit js auseinander zu setzen.

Ich frage eine Api ab und möchte dies in einer json Datei speichern. klappt auch soweit ganz gut, doch ist das was gespeichert wird zu viel für mich, also nicht relevantes zeug.

mein Code:

Code:
function getPriceList() {
    request(priceUrl, (error, response, body) => {
        if (error || response.statusCode !== 200) return console.log(`Error: ${error} - Status Code: ${response.statusCode}`);
        //console.log("DEBUG: " + body);
        fs.writeFileSync("prices.json", JSON.stringify(JSON.parse(body), null, 2));
       
    });
}

getPriceList();

prices.json Snippet:
Code:
{
  "status": "success",
  "prices": [
    {
      "app_id": "730",
      "context_id": "2",
      "market_hash_name": "'Blueberries' Buckshot | NSWC SEAL",
      "price": "1.71",
      "pricing_mode": "market",
      "skewness": "-0.49",
      "created_at": 1631410301,
      "icon_url": null,
      "name_color": null,
      "quality_color": null,
      "rarity_color": null,
      "instant_sale_price": null
    },
    {
      "app_id": "730",
      "context_id": "2",
      "market_hash_name": "'The Doctor' Romanov | Sabre",
      "price": "3.06",
      "pricing_mode": "market",
      "skewness": "-0.05",
      "created_at": 1631419491,
      "icon_url": null,
      "name_color": null,
      "quality_color": null,
      "rarity_color": null,
      "instant_sale_price": "1.22"
    },
    {
      "app_id": "730",
      "context_id": "2",
      "market_hash_name": "'Two Times' McCoy | TACP Cavalry",
      "price": "1.23",
      "pricing_mode": "market",
      "skewness": "-0.11",
      "created_at": 1631407484,
      "icon_url": null,
      "name_color": null,
      "quality_color": null,
      "rarity_color": null,
      "instant_sale_price": null
    }
  ]
}

meine Frage nun, ist es irgendiwe möglich, das nur noch dies:
Code:
{
  "'Blueberries' Buckshot | NSWC SEAL": 1.71,
  "'The Doctor' Romanov | Sabre": 3.06,
  "'Two Times' McCoy | TACP Cavalry": 1.23
}
in der prices.json Datei ankommt?

Also quasi der

"market_hash_name": price



mfG

André

Drucke diesen Beitrag

  Script mehrfach wiederholen
Geschrieben von: Ammeres - 10.09.2021, 11:52 - Forum: Javascript - Antworten (4)

Hallo,

Hintergrund:
Ich möchte ein Formular erstellen, das dem Nutzer ähnlich einer MindMap durch einen Pfad führt, abhängig von seinen bisherigen Eingaben. Ausgehend vom Hauptknoten gibt es jeweils mehrere Fieldsets, die anfangs "hidden" sind und über eine Wenn-Dann-Funktion für den Nutzer sichtbar werden sollen.

Kurz gesagt:
Ich möchte mit JS das Attribut "hidden" hinzufügen oder entfernen können.

Gedanke:
Theoretisch sollte dafür EIN JavaScript genügen, das immer wieder verwendet wird.
JS-DATEI:
function Sichtbarkeit() {
if (WertIst == WertSoll)
document.getElementByClass("EinAusblenden").removeAttribute "hidden"
else
document.getElementByClass("EinAusblenden").setAttribute "hidden"
}

Entsprechent wird in jedem Fieldset ein Script eingebunden, das die jeweilige Variable deklariert.
HTML-DATEI:
<fieldset name="..." class="EinAusblenden">
<script>
let WertIst = document.getElementById("vorherigeAuswahl").value
let WertSoll = "RichtigeAuswahlFürDiesesFieldset"
</script>

[nächste Auswahlmöglichkeiten]
</fieldset>


Die Lösung sollte möglich sein und ist sicher deutlich eleganter, als für jedes Fieldset ein eigenes Script mit geringen Abweichungen zu definieren.
Leider bin ich zu doof, das auch praktisch umzusetzen. Möglich, dass ich irgendwo einen dummen Anfängerfehler mache und was übersehe.

Alternativ könnte ich auch im HTML direkt zu "true" oder "false" auswerten und im JS nur noch den Attributswechsel verarbeiten. Das kann praktisch sein, wenn mehrere Auswahlmöglichkeiten richtig sind, erfordert aber wieder mehr Code im HTML-Dokument.

Hat irgend jemand Vorschläge?

Drucke diesen Beitrag

  Frage zu Übergabeparametern
Geschrieben von: N3WM4N - 06.09.2021, 12:49 - Forum: Javascript - Antworten (1)

Guten Tag,
ich habe Probleme folgendes Scriot zu verstehen.
Die Frage lautet: Welche Werte haben die Variblen g und h am Ende.
Unten wird die Funktion umwand_2 mit Übergabe von h aufgerufen.
Wird dann innerhalb der Funktion par mit h erstezt? Oder wie läuft das ab.
Und wenn ja wieso hat h="ist egal" keine Auswirkung auf par=par+"ist heute schlecht";



<script type="text/javascript"> //<![CDATA[
var g, h = "Wetter";
function umwand_2(par)
{
h="ist egal";
par = par+"ist heute schlecht";
return par;
}
g=umwand_2(h);

//]]>

</script>

Drucke diesen Beitrag