Beiträge von Warren


    Was passiert wenn du mit where arbeitest?


    Läuft beides perfekt, jedoch gibt es nach manch einem GMX das Problem das er die Daten von der Datenbank falsch ausließt.
    Also gibt er an das er den Account "angeblich" nicht gefunden hat und leitet mich zur Registration weiter.
    Habe die Vermutung gehabt das er nach dem GMX nicht schnell genug ist alles zu verarbeiten.


    Ich denke aber das ich den Bug behoben habe. :)

    Eigentlich dürfte das nicht an samp liegen, hatte das Problem damals nie.


    Wieso benutzt du auch LIKE im query?


    LIKE hab ich erst hinzugefügt weil ich dachte das es ein Problem mit dem Input vom Namen gibt.
    Soweit kommt der Bug nicht oft vor, deswegen kann ich nicht immer gleich sehen obs was bringt.
    Verwende eigentlich kein LIKE sondern nur die abfrage ob der exakte Name besteht. :)

    Hallo leute,


    Ich möchte mich nicht scheuen mal zu fragen ob jemand das Problem kennt wenn man den Server ein paar mal Rebootet (gmx).
    Und man sich beim Login registrieren muss obwohl der Name schon in der Datenbank existiert.
    Der Account wird in die Datenbank geschrieben und ist nun doppelt vorhanden.
    Natürlich closed mein Server vor dem Reboot die Connection zur Database.


    Als normale abfrage verwende ich:
    mysql_format(Handle, strQuery, 256, "SELECT * FROM users WHERE username LIKE '%e'", Player[playerid][Name]);


    Benutze MySQL R35 von BlueG.


    Jemand anderes auch das Problem?
    Bis jetzt schätze ich das dass Problem am Plugin liegt, falls nicht gibt auch noch zu der abfrage extra Checks.

    Du hast da [playerid] vergessen, und dann funktioniert das ganze nicht mehr, sondern du erhälst einen Error bzw. Warning.
    Das muss so aussehen: if(!TowLightsBool[playerid])


    Oh stimmt, hab ich ja jetzt garnicht drauf geachtet. Hatte gedacht Kaliber meinte damit den Operator.


    Ja, hatte ich vergessen weil ich den Code nochmal editiert hatte im Forum. Kommt vor.


    Du hast da [playerid] vergessen, und dann funktioniert das ganze nicht mehr, sondern du erhälst einen Error bzw. Warning.
    Das muss so aussehen: if(!TowLightsBool[playerid])



    Right,
    Ja, konstante variable sind besser, wenn man sie nicht im Code verändern möchte.
    In SAMP wusste ich bis jetzt noch nicht das man ein bools in char Arrays verwenden kann.

    Wenn du das compilt hast...solltest du eigentlich Warnings bzw Errors bekommen...


    Ich möchte jetzt nichts Kritisieren, aber du hast regelrecht nur die Variablen Konstant gemacht und den Code verkürzt.
    Wieso sollte ich Errors bekommen? Das ist nur ein Snippet kein voller Code.


    Meine Persönliche meinung zu Sparen an Platz ist anders.


    Ich mag es nicht wenn alles gleich in eine Zeile geklatscht wird wie der loop: for(new i = 0; i < 4; i++) { Destroy(...); }
    Wirkt mir auf dauer einfach so zusammen gequetscht :P



    IsPlayerInAnyVehicle sollte z.B im Else zurückgeben das man nicht im Fahrzeug sitzt.
    Natürlich kann man GetPlayerVehicleId gleich an die Variable übergeben, find ich aber unübersichtlicher.
    Und zu dem anderen halt immer noch die Meinung, zuviel kürzen find ich unübersichtlich.

    Hallo,


    Auch wenn es dies schon oft gegeben hat und es vielleicht auch schon oft genug Released wurde.
    Arbeite gerade am Ordnungsamt in meinem Script und hab mir eben die Warnleuchten vom Towtruck gebaut.
    Hier habt ihr den Snippet, kann nützlich sein für manch einen.


    new TowLights[MAX_VEHICLES][4];
    new TowLightsBool[MAX_PLAYERS];
    new Float:TowLightPos[][] = {
    {-0.19590, 2.47680, 0.37230, 0.00000, 0.00000, 0.00000},
    {0.22910, 2.47680, 0.37230, 0.00000, 0.00000, 0.00000},
    {-0.53590, -0.49220, 1.48230, 0.00000, 0.00000, 0.00000},
    {0.54510, -0.49220, 1.48230, 0.00000, 0.00000, 0.00000}
    };


    if(newkeys == KEY_CROUCH)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new VehicleID;
    VehicleID = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(VehicleID) == 525)
    {
    if(!TowLightsBool)
    {
    TowLightsBool[playerid] = true;
    for(new i = 0; i < 4; i++)
    {
    TowLights[VehicleID][i] = CreateObject(19154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 90.0);
    AttachObjectToVehicle(TowLights[VehicleID][i], VehicleID, TowLightPos[i][0], TowLightPos[i][1], TowLightPos[i][2], TowLightPos[i][3], TowLightPos[i][4], TowLightPos[i][5]);
    }
    SendClientMessage(playerid, 0xFFFF00FF, "INFO: Du hast die Warnleuchten eingeschaltet!");
    }
    else
    {
    TowLightsBool[playerid] = false;
    for(new i = 0; i < 4; i++)
    {
    DestroyObject(TowLights[VehicleID][i]);
    }
    SendClientMessage(playerid, 0xFFFF00FF, "INFO: Du hast die Warnleuchten ausgeschaltet!");
    }
    }
    }
    }



    Have fun.

    Natürlich, es gibt aber immer momente wo man einfach nicht weiter kommt auch wenn man die einzele bestandteile gerlernt hat.
    Dies hat viel mit dem Logischen Denken zu tun. und wenn jemand die Aufgabe nicht Logisch erfassen kann braucht er eine Hilfestellung.


    wichtig ist dass er sich überlegt, warum der Code funktioniert und richtig ist.
    Wenn er dies nicht macht so wird er sowohl im Schul als auch im Arbeitsleben versagen.


    Da stimme ich dir 100% zu und freue mich das du normal darauf antwortest und nicht wie andrere gleich Aggresiv werden.


    Was bitte bringt ihm das wenn er keine Ahnung hat wie das gehen soll?


    Ich weiß nicht ob die Leute sich hier mit jedem anlegen...


    Wenn er es Schulisch behandelt wird sein Lehrer ihn wohl auch Informationen gegeben habe wie man es umsetzen kann.
    Oder er wird mit dem Stoff soweit sein das er es theoretisch umsetzen kann. Meine Gott... 8 Klasse oder so?

    Ich hatte mich oben eben etwas falsch ausgedrückt entschuldigung wenn es falsch aufgenommen wurde.
    Wie oben im Tutorial meinte ich damit die Variable gleich wenn der Server gestartet wird mit GetMaxPlayers zu beschreiben.
    Natürlich ist es besser die Definition von MAX_PLAYERS neu zu definieren, so steht es auch oben im Tutorial.
    Ja, es ist auch schneller wenn man es nicht jedesmal aus dem Speicher lesen muss.
    Eigentlich wollte ich in diesem Tutorial nicht auf Geschwindigkeit beruhen lassen aber ich hab es hinzugefügt.
    Danke für eure Antworten :)


    Es ging doch gerade eben noch um Die funktion in der Schleife oder irre ich mich :huh:


    Nein BlackAce du irrst dich nicht!


    H4rd_B4se wie schon ich denke der Unterschied zwischen einer Variable und einer Funktion sollte allen klar sein?
    Ich weiß nicht für wie dumm einen die Leute abstempeln oder jemanden halten falls man sich mal falsch ausdrückt.


    Nicht wirklich, du rufst jedesmal die Funktion auf, das mag bei niedriger Zahl noch schneller als die direkte Konstante sein, aber das rentiert sich im Grunde nicht.


    Nicht wenn man es vorerst in eine globale Variable speichert und es im callback ongamemodeinit aufruft.


    Damit meinte ich das die Leute die Konstante weg lassen :P
    Konstanten könnte man z.B bei Fraktions Arrays verwenden oder bei sachen die man eh ins Script Hardcoded.


    Ich schau mal wenn ich zuhause bin welches nun wirklich schneller ist.

    Man sollte aber auch wissen das mein eine constance variable nicht mit dem Code modifizieren kann.
    In den meisten fällen fällt deshalb die Konstante weg.



    GetMaxPlayers macht die Schleife nicht langsamer sondern schneller soweit ich weiß.