Wenn ihr chatten wollt, dann geht in den IRC-Chat oder verwendet einen Instant-Messenger.
100 Nachrichten sind ausreichend.
Beiträge von Snail
-
-
Schreib halt mal den Support von Steam/Origin an. Eventuell prüfen die das.
-
Jetzt wurde es offiziell bestätigt, 0.3e ist kurz vor dem Release.
Zitathttp://forum.sa-mp.com/showpost.php?p=1842874&postcount=1192
It's looking that way, yes. I'm waiting on some feedback from some of the larger servers testing 0.3e. -
Ok was meinen Speedtest angeht, da hatten wir unterschiedliche Absichten.
Mein Speedtest ruft jedes mal eine neue Zeile/Row auf. --> Kaum schneller als der "original"-Code.
Du hingegen zielst auf höhere Geschwindigkeit bei der Verarbeitung der Daten ab (mehrere Felder in einer Reihe mittels mysql_fetch_field_row).
Da geb ich dir recht, da ist dein Code eindeutig schneller, als jedes mal ein neuer Query.// edit: @ .ibiq: mein speedtest ist nicht auf die Geschwindigkeit bei der Verarbeitung von daten ausgelegt !
-
Der Speedtest ist nicht wirklich aussagekräftig.
Zum einen hast du einen Fehler bei der Berechnung der Zeit:
new Tick2=GetTickCount();
printf("(RFT SQL)Dauer: %dms", r_tests[0][id]);
r_tests[0][id]=Tick2-Tick;
Du gibst zuerst "r_tests[0][id]" aus (was standardmäßig 0 ist) und weißt der Variable erst danach einen Wert zu --> Deine Werte sind alle 0ms.Außerdem lässt sich dein Speedtest nicht auf die Realität übertragen, da du 1000 mal das selbe Feld abfragst.
Damit ist klar, dass dein Code "gewinnt", da dein Code nicht jedes mal einen neuen Query abschickt.Folgender Code ist ein aussagekräftigerer Speedtest, da jedes mal ein anderes Feld abgefragt wird.
Spoiler anzeigen
#include <a_samp>
#include <rtf>
new r_tests[2][6];
main(){}
public OnGameModeInit()
{
r_mysql_Connect_To_Database("localhost", "root", "", "datenbank");
for(new i = 1; i < 6; i++) RichtigerTest(i);
print("Ergebnisse:");
for(new i = 1; i < 6; i++) {
if(r_tests[0][i]<r_tests[1][i])printf("(%d): RFT MySql war: %dms schneller", i, r_tests[1][i]-r_tests[0][i]);
else printf("(%d): RFT MySql war: %dms langsamer", i, r_tests[0][i]-r_tests[1][i]);
}
return 1;
}Spoiler anzeigen RichtigerTest(id)
{
new str[4], string[65];
new Tick=GetTickCount();
for(new i = 0; i < 1000; i++) {
format(str, 4, "%d", (i+2)); // i+2, da IDs in meiner Tabelle erst bei 2 beginnen
r_LoadSQLEntrance("tabelle", "ID", str);
SendClientMessage(0, 0xAFAFAFAA, r_mysql_GetString("FELD"));
r_UnloadSQLEntrance();
}
new Tick2=GetTickCount();
r_tests[0][id]=Tick2-Tick;
printf("(RFT SQL)Dauer: %dms", r_tests[0][id]);
Tick=GetTickCount();
for(new i = 0; i < 1000; i++) {
format(string, 128, "SELECT `FELD` FROM `tabelle` WHERE `ID` = '%d'", (i+2)); // i+2, da IDs in meiner Tabelle erst bei 2 beginnen
mysql_query(string);
mysql_store_result();
mysql_fetch_row(string);
mysql_free_result();
SendClientMessage(0, 0xAFAFAFAA, string);
}
Tick2=GetTickCount();
r_tests[1][id]=Tick2-Tick;
printf("(Mysql-Funktion)Dauer: %dms", r_tests[1][id]);
return 1;
}
Ergebnisse:
[20:07:10] (1): RFT MySql war: 89ms schneller
[20:07:10] (2): RFT MySql war: 87ms schneller
[20:07:10] (3): RFT MySql war: 68ms schneller
[20:07:10] (4): RFT MySql war: 75ms schneller
[20:07:10] (5): RFT MySql war: 84ms schnellerDein Code ist damit bei 1000 MySQL-Abfragen "nur" ~80ms schneller. Es ist also "kein" wirklicher Unterschied erkennbar.
Desweiteren könnte man noch die Namen der Funktionen ein wenig verbessern.
"r_mysql_Connect_To_Database" empfinde ich als zu lang.Neben der ganzen Kritik gibts natürlich auch ein Lob: Gute Arbeit
LG Snail
-
Ich hoffe ja, das Kalcor bevor 0.3e Offiziel Released wird, noch den Bug mit dem Kicken in OnPlayerConnect fixxt.
Das ist nicht unbedingt ein SAMP Bug. Das wird wahrscheinlich von Plugins verursacht (http://forum.sa-mp.com/showthread.php?t=323853). Somit wird das vermutlich nicht behoben. Außerdem kann man das Problem einfach mit nem Timer beheben.
Ein weiterer Hinweis auf ein baldiges Release ist das schließen des "Post new object [model] suggestions here"-Threads.
-
Solange du nicht übermäßig viele Abfragen reinpackst, sollte es keine Probleme geben.
Achte aber darauf, dass du unnötigen Code nicht in OnPlayerUpdate ausführst.
(z.B. Moneyhack: Das muss ja nicht mehr mals pro Sekunde geprüft werden) -
Kommt ganz darauf an, wie du es einsetzt.
OnPlayerUpdate wird pro Spieler bis zu 30 mal pro Sekunde aufgerufen.
Das entspricht einem Timer, der alle 33 Millisekunden aufgerufen wird und dabei dann alle Spieler durchgeht.OnPlayerUpdate eignet sich meiner Meinung nach nur für AFK-Erkennung (Spieler auf dem Desktop) und für Anticheat-Code. Für alles andere würde ich einen Timer nehmen.
-
Hier ist die neuste Version: http://forum.sa-mp.com/showthread.php?t=120356 (Update 7)
-
Naja nicht sehr effizient gecodet.
- OnPlayerUpdate ist für diesen Code ungeeignet !
Es wird bis zu 28 mal pro Sekunde pro Spieler aufgerufen.
D.h. Bei 100 Spielern wird OnPlayerUpdate bis zu 2800 mal pro Sekunde aufgerufen !
Beim Aufruf von OnPlayerUpdate überprüfst du ob der Spieler durch eines der 500 Nagelbänder fährt.
D.h. Im Extremfall heißt das, dass der Server pro Sekunde 1.4 Millionen Koordinaten vergleichen muss. (Wenn 100 Spieler online und in einem Fahrzeug sind) - Prüfe zuerst ob das Nagelband existiert, bevor du die Koordination vergleichst.
- Beende die For-Schleife wenn man durch ein Nagelband gefahren ist. (break oder return)
Dein Code läuft da einfach weiter.
an sonsten ganz ok
- OnPlayerUpdate ist für diesen Code ungeeignet !
-
Tausche Gutscheine gegen Kohle:
• 50 % Rabatt auf Dirt 3
• 50% Rabatt auf AI War: Fleet Command
• 50% Rabatt auf Recettear: An Item Shop's Tale
• 25% Rabatt auf Valve-Spiele -
Nein, die Open-Beta-Phase wurde am 10. Oktober beendet. Wenn du das Spiel spielen willst, dann kauf es dir !
-
Wenn du die Regeln gelesen hättest, wüsstest du dass dies bereits in den Regeln steht:
Zitat
Beiträge oder Themen, die einen nichts aussagenden Titel haben, werden je nach Moderator gelöscht, geschlossen und/oder verwarnt. -
Es gibt übrigens wieder einen neuen Track:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Habe ich nicht gesehen, da ich zu dieser Zeit mit der Verlinkung deiner Threads beschäftigt war.
-
Reicht nicht ein Thread, wo du diese Keys verschenkst ?
Das ist jetzt schon der 6te[Gratis] Humble Packs
[Gratis] Humble Packs
[ PC ] [Gratis] Humble Packs (4 Keys)
[Gewinne] Einen von 7 Humble Bundle Keycodes
[Gewinne] Einen von 3 Humble Bundle Keycodes Half a Bundle Key -
Ist die Datei "Release.amx" im /gamemodes Ordner ?
Kannst du einen Standard-Gamemode wie lvdm starten ? -
Du kannst auch den String in eine Zahl umwandeln
new zahl=strval(string);
if(zahl < 1000 || zahl > 9999) return false;
else return true; -
nicht lustig
-
Aus den Ostereiern könnte man interpretieren, dass die nächste Samp Version nicht vor Ostern kommt