Beiträge von IPrototypeI

    Der Ansatz von dir Simon ist gut nur muss man nicht extra jeden user auslesen es reicht einfach die Where Bedingung wegzulassen.
    Sonst kann ich nur dazu sagen das man falls es bereits einen Timer mit einem geringen intervall gibt diesen verwenden sollte anstatt extra einen neuen zu erstellen.
    Zusätzlich sollte man sagen das man den Timestamp nicht benötigt gettime liefert auch die Stunden, minuten und sekunden diese kann man auch abfragen.


    \edit
    Je nach Zeitintervall des Timers sollte man noch eine extra variable hinzufügen um abzufragen ob die Zeitspanne größer und gleich 24 Stunden entspricht da würde es sich doch anbieten einen Timestamp zu verwenden

    PAWN&Raknet*


    In SA:MP gibt es was das nennt sich "ackslimit" Pakete / die Sekunde die ein Spieler senden "kann" (standard 2000 o. 3000).
    Falls du nicht schon "ackslimit" Probleme hast Versuch sie mal runter zudrehen und falls es dann immer noch mit laggs weiter geht solltest wie schon gesagt entweder den Profiler laufen lassen oder eigenständig Callbacks loggen (wird ziemlich groß) und den Übeltäter Limitieren oder halt den Code optimieren.

    Es ist zwar eine Lösung das ackslimit zu reduzieren, jedoch muss man bedenken wie viele Packete pro Sekunde an den Client gesendet werden, sollte er die Anzahl der Objekte, welche vom streamer für den Spieler erstellt werden auf 1000 haben und nebensächlich noch einige Packete über OnPlayerUpdate vom Spieler verlangt werden + von einem Timer so kann das limit schnell überstiegen werden und das führt dazu das die Leute vom Server gekickt werden.

    Also alle musst du da nicht loggen lediglich die Callbacks worauf der Spieler Einfluss hat und es denkbar wäre das er darüber den Server belasten könnte so wäre zum Beispiel OnPlayerUpdate nicht sinnvoll zu loggen.


    Beachte jedoch bei cmd-prozessoren das du bei dem gehookten callback loggst.

    Durch das schnelle aufrufen von Befehlen oder absenden von Nachrichten kann man dafür sorgen das der Server ausgelastet ist.
    Dadurch kommt es dazu das deine Anweisungen nicht direkt ausgeführt werden sondern sich in einer warteschleife befindet.
    Das liegt halt daran das dein Skript nur in einem Prozess läuft, pawn ist halt leider auch nur singelthreaded und kann daher die Anweisungen nicht aufsplitten und auf mehrere threads verteilen.


    Daher überprüfe deine Callbacks

    Nein tust du nicht du kannst entweder eine variable nutzen welche das wcf2 mitbringt


    background-image:url("@{style_image_path}bg.jpg");


    oder du gibst den Pfad dazu an der würde so aussehen


    background-image:url("../images/irp/bg.jpg");

    Dafür musst du wohl oder übel bezahlen müssen, da ich eher weniger glaub das dies jemand kostenlos macht da ein WBB4 Design nicht gerade in 1 Stunde gecodet ist, wenn es jemand richtig macht.


    Wo liegt des bei dir genau das Problem, du hattest dich darüber vor kurzem erkundigt.

    an sich geht das nicht ganz weil das Callback nicht linear aufgerufen wird.
    Daher musst du den Code in das Callbavk packen Dazu übergibst du dem Callback ein parameter nit dem wert der playerid



    mysql_function_query(dbhandle,query,true,"CheckNumber","i", playerid);



    playerid musst du noch als parameter angeben bei dem Callback Checknumber(playerid)

    Also ich geh mal davon aus das du wahrscheinlich mehr als 20 Einträge hast in der DB
    Daher kannst du entweder
    while(fvr<rows)
    Zu


    while(fvr != sizeof(fverwaltung))


    ändern oder du erhöhst die Größe des Arrays fverwaltung von 20 auf bsp 30


    new fverwaltung[30]...

    Mag sein das du am Anfang bist, aber da du dich schon seit Februar mit Problemen quälst was bis jetzt 9 Monate sind kann ich doch wenigsten mal vorraussetzen, dass du wenigstens etwas an Verständis
    von Pawn erlernt hast und wenigstens bissle weisst was du machst.


    Ebenso setzte ich nur ein bissle logisches Denken vorraus, was den Ablauf vom Code angeht schließlich werden die Anweisungen linear abgearbeitet sprich "step by step" daher sollte man schon wissen
    wenn man auf den Code schaut den man selbst geschrieben hat, wann was ausgeführt wird. Schließlich popelst du auch nicht in der Nase, wenn es dich am Arm juckt, sondern kratzst dich am Arm um eine kleine Metapher auf den Sachverhalt den ich anpranger zu beziehen.


    Ich glaube ein Großteil deiner Fehler würdest du selbst finden, wenn du dir etwas zeitlässt und deinen Code durchschaust und das ganze step by step durchgehst.
    Bezogen noch auf meine Beiträge ich hab damals im August 2011 angefangen mich mit dem skripten wirklich auseinander zu setzen und wenn du meine ganzen Probleme von damals anschaust wirst du sehen
    das mir lediglich Erklärungen gereicht haben oder kleine Hilfestellungen.



    Um den Beitrag noch aufs Thema zu beziehen , ich hab dir oben in den Post darüber von mir exakt beschrieben wo Fehler bestehen und einen Lösungsansatz.

    Also falls du den Fehler noch nicht behoben hast


    musst du halt schauen wie du den Fehler vermeiden kannst


    • [18:01:32] [debug] Run time error 4: "Array index out of bounds"
    • [18:01:32] [debug] Accessing element at index 20 past array upper bound 19
    • [18:01:32] [debug] AMX backtrace:
    • [18:01:32] [debug] #0 0065c5f4 in public OnQueryFinish (index[]=@0154c3bc "SELECT * FROM ML_networktowers", sqlresultid=6, extraid=0, SconnectionHandle=1) at C:\Users\Jeremias Benedikt\Desktop\winreducerex100\Server\gamemodes\GeTmyselfmade.pwn:75660


    Wie du bereits ja schon gut erkannt hast wird die Zeile direkt angegeben in der, der Fehler vermutlich steckt (Bsp: Zeile: 75660 )
    Jetzt wirst du dort ein Array haben mit der Größe von 20 (Das Array hat indexe die von 0 - 19 gehen) und in dieser Zeile (75660) wird auf den index 20 zugegriffen der ja nicht existiert da das Array nur von 0 - 19 geht.



    Dasselbe lässt sich auf den anderen Fehler auch anwenden.



    Falls du da Probleme hast kannst du den Code auch hier posten aber da bitte den ganzen Inhalt von dem Anweisungsblock bei case 6 und case 14