Hallo community,
lange Zeit habe ich es geschaft ohne weitere Fragen zu programmieren.
Jedoch kam mir jetzt ein Fehler auf den ich nicht lösen kann.
Ich wette es ist ein Leichtsinnsfehler den ich mal wieder nicht sehe weil ich zu sehr in den Code vertieft bin
![tongue tongue](/ubb7/images/graemlins/default_dark/tongue1.gif)
Also ich habe eine Funktion:
function einheiten_kosten(var who)
{
var sekunden = 0;
var seks,aim_seks;
diag("\n");diag("Check1~~~~~~~~~"); //Diagprototyp
sekunden = total_secs;
diag("\n");diag("Check2~~~~~~~~~"); //Diagprototyp
while(1)
{
diag("\n");diag("Check2.4~~~~~~~~~"); //Diagprototyp
seks = total_secs;
aim_seks = seks-zahltag;
diag("\n");diag("Check2.5~~~~~~~~~"); //Diagprototyp
if(aim_seks == sekunden)//Wenn Zahltag ist
{
diag("\n");diag("Check3~~~~~~~~~"); //Diagprototyp
geld -= unit_preis[who];
diag("\n");diag("Check4~~~~~~~~~"); //Diagprototyp
sekunden = total_secs;
diag("\n");diag("Check5~~~~~~~~~"); //Diagprototyp
}
wait(1);
}
}
Vorher sah sie so aus:
function einheiten_kosten(var who)
{
var sekunden = 0;
diag("\n");diag("Check1~~~~~~~~~"); //Diagprototyp
sekunden = total_secs;
diag("\n");diag("Check2~~~~~~~~~"); //Diagprototyp
while(1)
{
diag("\n");diag("Check2.5~~~~~~~~~"); //Diagprototyp
if((total_secs - zahltag) == sekunden)//Wenn Zahltag ist
{
diag("\n");diag("Check3~~~~~~~~~"); //Diagprototyp
geld -= unit_preis[who];
diag("\n");diag("Check4~~~~~~~~~"); //Diagprototyp
sekunden = total_secs;
diag("\n");diag("Check5~~~~~~~~~"); //Diagprototyp
}
wait(1);
}
}
Zur info: Zahltag ist eine Globale Variable mit dem Wert 120.
Jetzt mein Problem:
Ich habe 2 Aktionen die diese Funktion aufrufen.
Wenn ich es mit einer mache funktioniert alles super (Sie rut die Funktion mit who = 0 auf.
Bei der anderen (who = 1) funktioniert es jedoch nicht. Also dachte ich das "unit_preis[x]" vielleicht nur 1 groß ist. Jedoch ist es declariert als : unit_preis[2] = {100,50};
Außerdem kann es daran nicht liegen, da im Log steht das es bei "Check2.5" crasht. Denn "Check3" wird nicht erreicht.
In beiden Code teilen!
Was kann mit dieser if-Verzweigung nicht stimmen? Ich finde keinen Fehler!
Vielen Dank im Vorraus
EDIT: Nebeninformation: Es crasht im ersten durchlauf. und im ersten Durchlauf ist die if-Bedingung noch nicht erfüllt(wie ihr aus meinen Informationen entnehmen könnt). Aber was ist falsch?
EDIT2: Wenn ich vor das: seks = total_secs; ein "wait(1);" setze crasht es schon bei "Check 2.4" also scheint ein Fehler mit total_secs vorzuliegen. Aber welcher? Das ist doch eine normale variable oder?