Beiträge von carlos1710

    Ich habe mir nun mein eigenen Algorithmus gemacht, villeicht geht es besser aber mein eigenen hab ICH verstanden und durch Wikipedia sogar was gelernt.


    GetWeekDay(Tag,Monat,Jahr)
    {
    new Schaltjahr, Wochentag, Jahrhundert;
    if ( ( (Jahr%4==0) && (Jahr%100!=0) ) || (Jahr%400==0) )
    {
    Schaltjahr = 1;
    }
    Jahrhundert = (Jahr - (Jahr % 100)) / 100;
    Jahr %= 100;
    Wochentag = ((Tag % 7) + MonatsZahlen[Monat - 1] + ((Jahr + ((Jahr - (Jahr % 4)) / 4)) % 7) + ((3 - (Jahrhundert % 4))*2) - Schaltjahr) % 7;
    return Wochentag;
    }


    Hier meiner, funktioniert ebenfalls IMMER.
    //EDIT: Vorrausgesetzt man besitzt das Monatszahlen Arry:


    new MonatsZahlen[12] = {
    0,//Jan 1.
    3,//Feb 2.
    3,//Mär 3.
    6,//Apr 4.
    1,//Mai 5.
    4,//Jun 6.
    6,//Jul 7.
    2,//Aug 8.
    5,//Sep 9.
    0,//Oct 10.
    3,//Nov 11.
    5 //Dez 12.
    };

    Nun im Prinzip wars mir klar das eine Arry ungültig ist, dies verrät mir crashdetect: (danke für die empfehlung einfacher als gedacht)


    Die zeile 1030 Werd ich im oberen Code markieren da für mich immernoch nicht ersicht lich ist welche arry wiso zu groß ist.
    Viellciht dient es der Problembehandlung wenn cih die Arrys poste hier:

    enum car_positions
    {
    Float:car_x,
    Float:car_y,
    Float:car_z,
    Float:car_a
    }


    new RandomCarPositions[] [car_positions] = {//5 testparkplätze die zur auswahl stehen
    {2802.9133,-1876.1327,9.5953,179.6676},
    {2797.9016,-1876.0061,9.5754,180.3924},
    {2792.7432,-1875.3015,9.5558,178.2313},
    {2788.1750,-1875.9563,9.5380,179.2994},
    {2782.8958,-1875.8506,9.5166,179.8098}
    };


    new ZiviCars[] = {400,401,402,404,405}; //5 testautos die zur auswahl stehen


    Fehler Gefunden !!!
    printf("%d %f %f %f %f",ZiviCars[ZiviAuto],RandomCarPositions[Parkplatz][car_x],RandomCarPositions[Parkplatz][car_y],RandomCarPositions[Parkplatz][car_z],RandomCarPositions[rnd2][car_a]);//1030
    für die dies interessiert schaut euch pos_a an dadurch das oben waffen gespant werden ist der arryindey auf rnd2 was (was eine waffenposition ist)

    Hallo Community,
    ich habe folgendes Problem und bitte um Hilfe,
    Eine Funktion berechnet eine Zufällige zahl von autos, und parkt die zufällig auf parkplätzen aber mitten in einer whileschleife wird abgebrochen.


    printf("\n\n\n\n\n\nStart");
    rnd = random(sizeof RandomCarPositions);//Zufällige Anzahl autos
    new ZiviAuto;
    new bool:fehler;
    new Parkplatz;
    new belegt[sizeof RandomCarPositions];
    printf("Anzahl Autos: %d",rnd);
    for(new i = 0;i < rnd; i++)
    {
    do{
    ZiviAuto = random(sizeof ZiviCars);//Zufällige Carid
    Parkplatz = random(sizeof RandomCarPositions); //Zufälliger Parkplatz
    printf("Schleifen durchlauf %d",i);
    fehler = false;
    printf("Start Sekundärschleife");
    for(new y = 0; y < i;y++)//Alle schon erstellten autos
    {
    printf("Prüfzahl %d",y);
    if(Parkplatz == belegt[y])//ist ein Parkplatz schon belegt?
    {
    fehler = true;//dann nochmal von do{
    printf("fehler: %d %d",Parkplatz, belegt[y]);
    break;
    }
    }
    printf("SekundärSchleife Fertig %d",fehler);
    }while(fehler);//laut debug funktioniert das
    printf("debug"); //´diser print wird unten nicht aufgelistet den print hab ich später eingefügt, dieser wird allerdings IMMER angezeigt
    //ab hier crasht es MANCHMAL ich kann aber auch nicht erkennen,
    //Dass ich auf ein undefiniertes Arryelement zugreif
    printf("%d %f %f %f %f",ZiviCars[ZiviAuto],RandomCarPositions[Parkplatz][car_x],RandomCarPositions[Parkplatz][car_y],RandomCarPositions[Parkplatz][car_z],RandomCarPositions[rnd2][car_a]);//1030
    CreateVehicle(ZiviCars[ZiviAuto],RandomCarPositions[Parkplatz][car_x],RandomCarPositions[Parkplatz][car_y],RandomCarPositions[Parkplatz][car_z],RandomCarPositions[rnd2][car_a] + random(2) * 180,random(128),random(128),-1);
    printf("Auto %d Erstellt",i);
    belegt[i] = Parkplatz;//der belegte parkplatz kann nicht wieder verwendet werden
    }
    printf("PrimärSchleife Fertig!");
    }


    Der Compiler Printet Folgendes


    Start
    [16:59:46] Anzahl Autos: 0
    [16:59:46] PrimärSchleife Fertig!
    [16:59:57]
    Soweit stimmt das wird ja keins erstellt


    ABER es wird auch folgendes geprintet


    [17:01:19]Start
    [17:01:19] Anzahl Autos: 4
    [17:01:19] Schleifen durchlauf 0
    [17:01:19] Start Sekundärschleife
    [17:01:19] SekundärSchleife Fertig 0
    Hier crasht die Funktion oft nicht immer aber immer öfter


    //EDIT:
    In Ganz wenigen fällen funktioniert alles dann sehen die Prints so aus:


    [17:05:31]Start
    [17:05:31] Anzahl Autos: 3
    [17:05:31] Schleifen durchlauf 0
    [17:05:31] Start Sekundärschleife
    [17:05:31] SekundärSchleife Fertig 0
    [17:05:31] 400 2792.743164 -1875.301513 9.555800 179.667602
    [17:05:31] Auto 0 Erstellt
    [17:05:31] Schleifen durchlauf 1
    [17:05:31] Start Sekundärschleife
    [17:05:31] Prüfzahl 0
    [17:05:31] SekundärSchleife Fertig 0
    [17:05:31] 401 2782.895751 -1875.850585 9.516599 179.667602
    [17:05:31] Auto 1 Erstellt
    [17:05:31] Schleifen durchlauf 2
    [17:05:31] Start Sekundärschleife
    [17:05:31] Prüfzahl 0
    [17:05:31] Prüfzahl 1
    [17:05:31] SekundärSchleife Fertig 0
    [17:05:31] 405 2797.901611 -1876.006103 9.575400 179.667602
    [17:05:31] Auto 2 Erstellt
    [17:05:31] PrimärSchleife Fertig!


    //EDIT: Weiterer Debug eingefügt und fehler eingeschränkt
    //EDIT: Überschrift verbessert
    //EDIT: Zeile Markiert

    Du bist nicht alleine mit deinem Problem, bei mir auch aber nur abends.
    Ich habe das seit neustem auch seit einer Woche bin dem auch auf den Grund gegangen und ich kann es nichtmal lauter/leiser machen.
    Das Signal kommt von deinen langen Kabeln (lang genug um ein mittelwellensignal zu empfangen), verstrahlt bist ja bekanntlich überall.
    Es geht bei mir nicht durch die Soundkarte und wird auch nicht verstärkt, ich bekomme das ganze auf Italienisch.
    Warum das bei mir/dir so plötzlich kam weis ich nicht und du kannst dagegen auch nichts machen.
    Garnichts auser den PC umstellen oder versuchen Kabelsalat zu vermeiden.

    Wie sag ich dem Compiler ohne zählen zu müssen wie groß dieses Arry ist
    new RandomWeaponPositions[] [weapon_positions] = {
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    {2.45,3.65,33.5}
    };
    Ich möchte Koordinaten hinzufügen und wegnehmen und der compiler soll herausfinden wie viele verschiedene Elemente hier sind.

    Das habe ich getan, ich rechne 20/50 und bekomme 0
    //EDIT: Egal was ich mach hab nun den Print verändert
    printf("ProzentFaktor %f TempEpSpieler %d LevelListe[ExArryLevelVerschiebung][ExpProLevel] %d ProzentFaktor2 %f",ProzentFaktor, TempEpSpieler, LevelListe[ExArryLevelVerschiebung][ExpProLevel],TempEpSpieler / LevelListe[ExArryLevelVerschiebung][ExpProLevel] );

    Selbst im Print rechnet er nicht richtig Denn Prozentfaktor ist 0 und die rechnung am schluss est ebenfalls 0.00000

    Guten Mittag Community,


    mein compiler verrechnet sich des öfteren in folgendem :

    if(TempEpSpieler == 0){ProzentFaktor = 0.0;} //Der Super GAU, Division durch 0 verhindern
    else
    {
    Float:ProzentFaktor = TempEpSpieler / LevelListe[ExArryLevelVerschiebung][ExpProLevel];
    printf("%f ff %d %d",ProzentFaktor, TempEpSpieler, LevelListe[ExArryLevelVerschiebung][ExpProLevel]);
    ProzentFaktor *= 100;
    printf("%f ff",ProzentFaktor);
    }
    Ich berechne wie viel % es noch bis zum levelup sind geprintet wird folgendes:
    ProzentFaktor: 0 TempEpSpieler: 20 LevelListe:50
    danach sollte %faktor 0.4 ergeben (Prozentfaktor ist eine Float)

    Ich finde, über den allgemeinen Marktplatz kann man diskutieren, zu einem SA:MP Forum gehört auch das Server vermieter Mieter finden.
    Man muss im allgemeinen Marktplatz nicht seine alte Playstation 2 Verkaufen oder fragen was seine XBox noch wert ist aber WBB3 Lizensen, Server und andere dinge die mit dem aufbau eines servers zu tun haben können ruhig verkauft werden.

    Meine Spieler Laden funktion gibt mir falsche Zahlen,
    ich habe mein Server per Tutorial auf MySql Geupgradet
    und herausgefunden das folgende Variable nicht richtig geladen wird

    Spieler[playerid][ECash] = mysql_GetInt("accounts", "ECash", "Name", Spieler[playerid][Name]); // Diese und mehr variablen werden geladen
    //Geprintet wird direkt nach dem Laden
    printf("ECash %d",Spieler[playerid][ECash]); // der Print ist immer -1 obwohl in der Tabelle deutlich eine 0 steht
    Es wird auch nur diese Variable falsch geladen andere wie skin funktionieren.


    Edit: Hier das stock
    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }