FindCarByPlate
Nur mal aus Spaß, dass kann zu einer gefährlichen Funktion werden ![]()
Im worst worst case, sind 500 Spieler online und alle 9999 Autos vergeben.
Und wir wollen blöderweise eins der letzten Autos checken.
Das macht 500*9999 String Abfragen, das sind 4.999.500 ![]()
Resultat: ~930ms
Das bedeutet, dein Server würde für ne Sekunde hängen, spammt man den Befehl, wäre er quasi unspielbar und down xD
Wenn, dann solltest du direkt mit Zahlen arbeiten
(mit Zahlen sind es immer noch ~200ms)
Der Witz aber ist, dass der Code nicht einmal funktioniert. Denn wenn der Spieler, dem das Kennzeichen gehört nicht online ist, kann das Auto nicht zugeordnet werden.
Es wäre hier viel effizienter einen einfachen MySQL Query zu nutzen, mit dem du prüfst, zu wem das eindeutige Kennzeichen gehört ![]()
10.000 eindeutig zufällige Zahlen effizient zu generieren, die sich nicht wiederholen, ist gar nicht mal so trivial in Pawn.
Mir fällt mir ein, entweder y_iterate zu nutzen, oder besser ein eigenes System zu entwickeln.
Sprich du hast eine Datenbank mit 10.000 Einträgen. Dann wählst du random(n) (wo n die Anzahl der Einträge in der Datenbank ist) aus und löschst diese.
Dann bist du kannst du dir immer sicher sein, dass das eindeutig ist, und das super effizient.