Bin dabei!
Wobei Kicktipp besser wäre, da gebe ich meine "echten" Tipps ab, bei 6-er Pack gebe ich die Tipps immer etwas gewagter ab mit eventuellen Ausreisern, vielleicht hat man ja mal Glück und es passt zufällig ![]()
Bin dabei!
Wobei Kicktipp besser wäre, da gebe ich meine "echten" Tipps ab, bei 6-er Pack gebe ich die Tipps immer etwas gewagter ab mit eventuellen Ausreisern, vielleicht hat man ja mal Glück und es passt zufällig ![]()
Dann kannst du die ersten drei Zeilen des Befehls komplett entfernen und brauchst nur die letzte Zeile.
Was willst du mit dem Befehl denn bezwecken? Du nutzt id gar nirgends, außer im Format, jedoch steht dort kein Platzhalter im String, sondern nur eine 7.
Daher ist der sscanf Befehl im Grunde unwirksam.
Die Warnung kommt daher, dass du eigentlich "s[4]" schreiben solltest. Aber wie gesagt, es ist so oder so unwirksam.
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:

Und mit 373:

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:
Die Zahl hinter "dynamic" muss so lange erhöht werden, bis die Meldung nicht mehr erscheint (jedoch nicht sinnfrei übertreiben).
Mit dem Code ist so leider nichts anzufangen.
Wird denn dein ShowPlayerDialog, welchen du angezeigt bekommen möchtest, überhaupt aufgerufen?
Es konnte keine Verbindung zu deiner MySQL Datenbank hergestellt werden (siehe Log).
Das crashdetect Plugin muss als letztes in der server.cfg stehen, sprich als letztes Plugin geladen werden, sonst kennt es die Funktionen der nachfolgenden Plugins nicht.
Folgendes Plugin fehlt oder wird nicht geladen:
if(day > MonthTimes[month][IsLeapYear(year)])
Ändere diese Zeile bitte zu
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
ocmd:admin(playerid,params[])
{
if(!istSpielerAdmin(playerid,3))return SendClientMessage(playerid,COLOR_SERVER_NACHRICHTEN,"** Du besitzt nicht die nötigen Rechte um den Befehl auszuführen!");
new pID,a_level, string[145];
if(sscanf(params,"ud",pID,a_level))return SendClientMessage(playerid,COLOR_SERVER_NACHRICHTEN,"** Nutze: /admin [playerid] [Adminlevel]!");
format(string, sizeof(string), "** Dein Admin Level wurde von %d auf das Level %d geändert!", PlayerInfo[pID][pALevel], a_level);
SendClientMessage(pID,COLOR_SERVER_NACHRICHTEN,string);
format(string, sizeof(string), "** Du hast das Admin Level von %d auf %d geändert!", PlayerInfo[pID][pALevel], a_level);
SendClientMessage(playerid,COLOR_SERVER_NACHRICHTEN,string);
PlayerInfo[pID][pALevel]=a_level;
return 1;
}
Alles anzeigen
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.
Neue Winter-Reifen, die alten sind runter.

Vier neue Polo-Shirts für 54,44€ bei PUMA.
Ein ziemlicher Schnapper für den Preis.

https://eu.puma.com/de/de/pd/e…e-herren-polo/854745.html
Die Polo-Shirts sind aktuell auf 19,44€ heruntergesetzt und zusätzlich gibt es mit dem Code "FAMILY" bis morgen noch 30% auf alles (!) bei PUMA.
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
Die Deklaration von "File" muss so aussehen:
new INI:File;
Bei dir sieht sie vermutlich so aus, oder mit falschem Tag.
new File;