Beiträge von Jeffry

    Jeffry der Compiler sagt sogar wie viele es genau sein müssen, bei total requirements. In diesem Fall müssen 47550456 Bytes extra reserviert werden.

    Das ist nicht richtig.


    Anbei ein Beispiel:

    bSOvFC2.png


    Und mit 373:

    PTI84rS.png


    Lässt btw auf einen nicht sehr guten Scripting-Stil schließen, dass so viel Speicher zusätzlich reserviert werden muss.

    Das würde ich so auch nicht unterschreiben, es heißt nur, dass man sehr viel Speicher im Vergleich zur Code-Größe verwendet.

    Das kann aber durchaus gewollt sein. So hatte ich z.B. in meinem Server-Code damals ein mehrdimensionales Array mit 100.000 als erstem Index, um mein komplettes Ban-System (ja, es waren sogar über 100k Bans, wurde auch mal resetted) zur Laufzeit verfügbar zu haben. Die Performance war gigantisch und im Vergleich zu MySQL oder Files (was damals noch durchaus ein legitimes Mittel war) enorm besser.


    Von daher, es kommt immer darauf an, was man benötigt und wie der Code dazu aussieht. Natürlich kann es auch auf einen schlechten Stil schließen lassen, muss es aber bei weitem nicht automatisch.


    Habe auch mal den Code hierfür raus gekramt, der hat die Meldung auch drin, schlicht aus der Notwendigkeit der großen Arrays (für die Auflösung) und dem relativ kleinen Code dazu.

    Noch ein Hinweis hierzu. Solange diese Meldung hinsichtlich Header size etc. im Compiler steht, kann es sein, dass für den Code nicht genügend Speicher reserviert wird.

    Es kann zu unerklärlichen Fehlern im Code-Ablauf während der Laufzeit des Servers kommen (z.B. dass Variablen nicht oder nicht richtig aufgerufen werden, was bei Befehlen zu einem return 0 führt).


    Daher, füge bitte direkt unter den Includes folgendes ein:

    Code
    #pragma dynamic 128000

    Die Zahl hinter "dynamic" muss so lange erhöht werden, bis die Meldung nicht mehr erscheint (jedoch nicht sinnfrei übertreiben).

    if(day > MonthTimes[month][IsLeapYear(year)])

    Ändere diese Zeile bitte zu

    Code
    if(day > MonthTimes[month-1][IsLeapYear(year)])

    Sonst bricht der Code im Dezember ab, da das Array gesprengt wird.


    Was den Fehler mit dem Tagesdatum angeht, lass dir mal die Stunden und Minuten mit ausgeben, und vergleiche das mit der Ist-Zeit.

    Die Offset-Stunden zeihst du dann mal 3600 von "Timestamp" (Zeile 43 in deinem Post) ab, dann klappt alles.

    Hallo Breadfish Community,


    es sind inzwischen mehr als 6 Jahre vergangen, seitdem ich mich im Juni 2013 hier registriert habe, mehr oder weniger zufällig und keineswegs mit der Absicht, zum einen über eine so lange Zeit hier aktiv zu sein und zum anderen über diese Zeit auch so intensiv aktiv zu sein, wie die meisten sicher wissen, fast ausschließlich in der Scripting Base von SA:MP. Manchmal kommt es eben anders, als man es sich ursprünglich gedacht hat.


    Mit diesem Post, dem genau 18.000’sten, möchte ich die Gelegenheit nutzen um der gesamten Community, allen voran den unermüdlichen Teammitgliedern, meinen Dank auszusprechen, für alles was gemeinsam über die Jahre aufgebaut wurde. Breadfish hat sich über die Jahre stets weiterentwickelt und ist nie stehengeblieben, das erfordert größten Respekt an alle, die dazu beigetragen haben, egal in welcher Art und Weise. Daher widme ich diesen Post euch allen!


    Mir selbst hat Breadfish sehr viel gegeben, auch wenn man es vielleicht mit dem ersten Gedanken nicht glauben mag. So war, und ist es noch jeden Tag, für mich immer eine Freude, wenn ich jemanden bei seinem Problem, seiner Frage, oder seiner Idee beim Scripting mit PAWN unterstützen kann. Dies ist auch auf mehreren Ebenen in mein Leben hinein gewachsen. So konnte ich beispielsweise während meiner Ausbildung sehr von den bereits vorhandenen Programmier-Kenntnissen profitieren und durch die regelmäßige Lösung von teils komplexen Problemen oder teils völlig unbekannten Problemen, habe ich zum einen ein großes Wissen aufgebaut und zum anderen viele Methoden über die Jahre entwickelt, wie am besten an eine Problemlösung gegangen werden kann. Diese Erfahrungen sind in meinem heutigen Beruf mehr als Gold wert, da es täglich darum geht, Probleme zu lösen, Anwendern und Kollegen zu helfen und dabei selbst noch Projekte in eigener Entwicklung umzusetzen. Im Grunde spiegelt sich so mein gesamter Arbeitsalltag in den letzten 11 Jahren mit SA:MP wieder. Hätte mir das jemand 2009 oder auch 2013 gesagt, oder wie weit ich es damit in dieser Zeit schaffen kann, ich hätte es nicht geglaubt.


    Auch wenn die Scripting Base für SA:MP in den letzten beiden Jahren nach und nach ruhiger geworden ist, es ist für mich stets Ehrensache mein Wissen weiterzugeben, sei es hier oder sei es im Beruf beim Unterstützen von Kollegen oder insbesondere bei der Ausbildung von neuen Auszubildenden. Das ist eines der wichtigsten Dinge im Leben. Nur wenn wir gemeinsam für etwas arbeiten und uns jederzeit unterstützen, kommen wir alle weiter.


    Und auch wenn es über die Jahre die ein oder andere hitzige Diskussion in der Scripting Base gab, können sicher alle Beteiligten im Nachhinein sagen, es hat uns alle weiter gebracht. Ich für meinen Teil, sehe das so, denn aus jeder Diskussion nimmt man am Ende wertvolle Erkenntnisse mit, ob man Recht hat, oder nicht.


    -


    Würde es Breadfish nicht, oder nicht mehr, geben - wer weiß wo wir heute allen stünden. Besser? Schlechter? Gleich? Das kann niemand sagen. Was ich aber mit Gewissheit sagen kann: Macht immer das, was euch eine Freude bereitet, man weiß nie, wohin es einen bringt, die Freude jedoch, die kann einem keiner mehr nehmen.


    In diesem Sinne: Vielen Dank für die 18.000 und bleibt gesund!


    Viele Grüße

    Jeffry

    Du musst format nutzen, und %d für Integers (oder alternativ %i, das ist identisch).

    Die Zuweisung des Wertes muss dann nach den Nachrichten kommen, sonst hast du den alten Wert des Levels nicht mehr.

    Wofür sorry? :) Irgendwas scheint die Funktion dann zu stören bzw. zu denken, dass x, y und z nicht mit Float definiert wurden.

    Aber wenn es jetzt so klappt, passt es ja.


    Die Y... Funktionsbibliotheken sind leider so undurchschaubar, daher habe ich diese auch nie genutzt.

    Ok, dann nutze die 4.0.2 vorerst.

    Versuche es testweise mal so:

    INI_WriteFloat(File,"posX",Float:x);

    INI_WriteFloat(File,"posY",Float:y);

    INI_WriteFloat(File,"posZ",Float:z);

    oder:

    INI_WriteFloat(File,"posX",_:x);

    INI_WriteFloat(File,"posY",_:y);

    INI_WriteFloat(File,"posZ",_:z);

    Grundsätzlich ist das alles richtig.


    Nutzt du eventuell eine veraltete Version von y_ini?

    Schau mal in die y_ini.inc bzw. in die zugehörige y_ini_impl.inc, dort müsste sich folgender Funktionsheader finden:

    stock bool:INI_WriteFloat(INI:file, const name[], Float:data, accuracy = 6)


    Suche nach INI_WriteFloat und schaue, wie bei dir der Header aussieht. Gegebenenfalls sieht der dritte Parameter "data" anders aus.


    Sofern dem so ist, hier findest du die neuste Version: https://github.com/pawn-lang/YSI-Includes/releases

    1x einen Scherkopf für meinen Braun Series 9 für 34,99€.



    Außerdem noch ergänzend:

    Habe mir zum Spaß mal die SoundPEATS Bluetooth Kopfhörer gekauft. Waren von 37,89€ auf 12,89€ heruntergesetzt. Bei dem Preis und den guten Bewertungen bin ich neugierig geworden.

    Bin gespannt, ob sie was taugen. Hohe Erwartungen habe ich nicht.

    Ich hatte jetzt gut zwei Wochen Zeit, die SoundPEATS Bluetooth Kopfhörer zu testen und muss sagen, dass meine geringen Erwartungen bei einem Kaufpreis von 12,89€ durchaus übertroffen worden sind. Sie sitzen sehr gut im Ohr und dichten den Gehörgang sehr gut ab (wer das mag), somit sind Umgebungsgeräusche schon ziemlich stark gedämpft. Man bekommt zusätzlich zwei weitere Aufsätze in groß und klein, die mittelgroßen sind standardmäßig drauf. Da ich die Kopfhörer größtenteils nicht zum Musik hören nutze, sondern im Büro als Headset Alternative brauche ich keine vollständige Abdichtung des Gehörgangs, da man sich selbst relativ gewöhnungsbedürftig anhört, wenn man spricht. Daher habe ich die Gummi-Aufsätze komplett entfernt, was zu einem ziemlich perfekten Ergebnis für mich führt.


    Die Sprachqualität ist für den Preis absolut top, wobei man auch bedenken muss, es gibt hier technische Einschränkungen durch Windows und Bluetooth, sodass die Übertragung "nur" mit 16000Hz stattfindet. Das ist dank Bluetooth 5.0 zwar deutlich besser als die sonst genutzte Telefonqualität (8000Hz), trotzdem merkt man zu kabel-gebundenen Headsets einen Unterschied (z.B. bei Teams, Skype, ...). Hier muss die Technik einfach noch etwas weiter entwickelt werden. Das ist aber auch bei 300€ Kopfhörern der Fall, habe es mit den Bose QC35 verglichen, hier setzt Windows die gleichen Einstellungen, sodass die Qualität nicht anders ist. Bluetooth ist einfach noch nicht für volle DVD-Tonqualität bei Headset-Funktion gemacht, im Gegensatz zu 4-Pin Klinkenanschlüssen.


    Zur Tonqualität bei Gesprächen gibt es nicht sonderlich viel zu sagen, diese ist einwandfrei, hier ist die Begrenzung auch durch die maximalen Datenraten von Bluetooth begrenzt.


    Die Tonqualität bei reiner Musik-Übertragung ist für den Preis in Ordnung. Da sollte man auch nicht sonderlich viel erwarten. Meiner Meinung nach sind die Töne zu hoch. Ich bin kein Experte in dem Thema "Klänge", aber verglichen mit den kabel-gebundenen Earpods beispielsweise, klingt die Musik nicht ganz so gut, für meinen Geschmack. Das dürfte daran liegen, dass die Bässe so gut wie gar nicht durchkommen. Da ich die Kopfhörer aber nicht zum Musik hören nutzen werde, ist mir das egal. Es ist auch etwas Gewohnheitssache, nachdem ich testweise eine Stunde damit Musik gehört habe, fiel mir das nicht mehr so auf. Natürlich wäre hier ein Vergleich mit deutlich teureren Kopfhörern albern, das sollte auch klar sein. Daher: Für den Preis, völlig in Ordnung.


    Beide Kopfhörer haben ein Mikrofon eingebaut, das heißt, man kann sie auch einzeln zum telefonieren nutzen, bzw. unabhängig davon auch zum Musik hören. Das Mikrofon ist immer am zuerst aus der Ladeschale genommenen Kopfhörer an, wechselt aber, wenn man den Kopfhörer in die Schale legt, bei dem das Mikrofon an ist, während man den anderen im Ohr behält. Auch das Hinzukoppeln des jeweils anderen Kopfhörers von Einzel- auf Doppelnutzung klappt einwandfrei. Die Steuerung über die Touch-Flächen an den Kopfhörern ist ebenfalls komfortabel, jedoch muss man darauf achten, nicht versehentlich Befehle abzusetzen, wenn man sie Kopfhörer zurecht rückt.


    Fazit: Für unter 13€ ein absolutes Schnäppchen und sein Geld auf jeden Fall wert. Für mich persönlich absolut top, da die Dinge, für die ich sie hauptsächlich nutze einwandfrei funktionieren.