Ok, ist auch egal. Poste bitte den Code so wie er jetzt ist, das bekommen wir auch ohne Log hin, so viel ist es ja nicht.
Beiträge von Jeffry
-
-
Schau mal ob es neben dem server_log.txt noch einen MySQL Log gibt. Falls ja, steht das Zeug da drin.
-
SetPlayerSkin(playerid,dini_Get(Accounts,"Skin"));
zu:
SetPlayerSkin(playerid,strval(dini_Get(Accounts,"Skin")));oder:
SetPlayerSkin(playerid,dini_Int(Accounts,"Skin"));Wie du willst.
-
Nein, das wird nicht gehen.
Das Problem liegt daran, dass du die Fraktion des Spielers abfragst, wenn er gerade connected hat. Da hast du der Variable PlayerInfo[playerid][pLeader] noch keinen Wert zugewiesen, somit ist sie 0.
Du musst also entweder den Spieler VOR der Nachricht einloggen, oder sie Fraktion direkt bei OnPlayerConnect vor der Nachricht aus der Datei bzw der Datenbank auslesen.
-
Ja kann ich, wenn du bitte den aktuellen Code postest und erklärst was genau du wie haben willst.
-
Zitat
[22:32:31] Verstecke Marker bei ID 1 von ID 0
[22:32:31] Verstecke Marker bei ID 0 von ID 1Laut Debug stimmt alles. Hast du den Code geändert? Ich habe es selbst getestet, da ging es, der Debug zeigt auch das Richtige an.
-
Hast du denn den Log Modus auf LOG_ALL? Wenn nein, mache das (mysql_log).
Poste zudem den aktuellen Code der zu diesen Warnungen und dem neuen Log dann gehört.
-
Es muss
mysql_tquery(dbhandle, query, "OnUserCheck", "d", playerid);
heißen. -
Da fehlt das query ja komplett vor dem Aufruf von OnUserCheck.
Mache es so wie in diesem Beispiel:
http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_tqueryOnPlayerDataLoaded entspricht deinem OnUserCheck.
-
Ändere das
sizeof(text)Zu
256128 dürfte wohl auch reichen, mehr kannst du nicht eingeben. Je nach dem ob du noch etwas dazu setzen willst.
-
Sieht sehr gut aus. Ja, jetzt können wir zu den Textdraws.
Poste bitte den Code, bei wessen Ausführung diese Cache Warnungen kommen.
-
Der User muss weiterhin root sein, nicht samp.
Wir beheben jetzt erstmal das Problem mit MySQL. Wenn das gescheit läuft gehen wir an die Textdraws ran, aber vielleicht klärt sich das von selbst wenn MySQL läuft.
-
Der Typ ist der hammer, jede Meldung die ich abgebe, übernimmt er zu 99%.
Sobald man ihn anschreibt und ein Anliegen hat, kümmert er sich drum. - Dem wünsche ich den Kon Administrator Rank.
Kann ich nur zustimmen.Ich muss hiermit endlich auch mal seegras: und Trooper[Y]: loben, welche beide sehr schnell und immer in korrektem Maße Meldungen bearbeiten.
Außerdem hatte ich mit beiden schon Kontakt via PN, beide waren sehr zuvorkommend und nett. Solche Moderatoren braucht ein Forum. Macht weiter so! -
Nimm kein Passwort. root hat standardmäßig kein Passwort. Wenn du da nichts geändert hast, ist das auch noch so.Wenn es dann noch nicht klappt, aber die Fehler im Log weg sind, beschreibe dein Problem bitte nochmals genauer (was meinst du mit "der Dialog der nicht auftauchen sollte"?)
-
Oje, ich glaube so wird das nichts, mit dem Code fange ich gar nichts an, das sind viel zu viele Bruchstücke.
Gehen wir anders an die Sache ran, wird eben etwas länger dauern, aber Schritt für Schritt ist hier wohl besser.Poste bitte den Code, mit dem du die Textdraws erstellst, die nicht angezeigt werden.
Poste dazu den Code, mit dem du dem Spieler genau diese Textdraws anzeigen lässt.(Falls es mehrere Textdraws sind, reicht es wenn du ein paar nimmst, nicht dass du jetzt 100 Textdraws hier postest.)
Dann debuggen wir zuerst den Teil.
-
Also wird jetzt von mir verlangt, das ich meine Tür zumache und ich den Ton aufnehme, in MP3-Datei und ihn dann auf den Webspace hochlade ?
Oder ich mein Auto beim anschmeißen aufnehmen solle, so wie bei der Tür und dann hochladen ? Das klingt zwar ein bisschen albern, gibt es nicht so einen Sound, der schon vorhanden ist, den ich anwenden kann ?
Yup.
Ein paar Wände reingemappt, ich wollte das die die selbe Textur annehmen, wie die normale Wand, jedoch war das
Versuche mal einen anderen material-Index:
SetDynamicObjectMaterial(materialobjects[21],1,14847,"CJ_LIGHTWOOD","mp_cop_wallpink",0); //zweiter Parameter = material-Index
Ich habe es zu 1 gesetzt, vorher war es 0. Probierst halt mal. -
Syno: Sekündlich, aber das ist, wie BlackAce sagt, irrelevant.
@BlackAce: Ich habe mir bezüglich des genauen Grundes auch schon einige Gedanken gemacht, allerdings keine Lösung gefunden habe. Es geht mir auch nicht um die Lösung, weil das Problem ja nur bei hoher Schreib- und Leserate am Server selbst auftritt, sondern um die ursprüngliche Aussage, dass MySQL Lags verursachen kann. Das ist wohl hiermit geklärt: Ja, es kann.
Dass du mit dem format eine höhere Latenz hast ist ja klar, aber dass die so hoch ist scheint mir merkwürdig. Ich selbst hatte mit format noch nie sonderlich Probleme. Klar, wenn man es auf 1Mio Aufrufe jagt, dann spürt man die Differenz, aber sonst merkt man da keinen Unterschied, zumindest nicht so enorm wie bei dir.
Wie dem auch sei, ich denke wir sind doch etwas vom Thema abgeschweift. Manyula dürfte jetzt mehr Informationen haben als ihm lieb ist.
-
stimmt zwar aber wer lässt bitte alle Max_Player timer gleichzeitig laufen, der hat ja auch den sinn der Timer nicht verstanden. Wenn man dass macht gebe ich dir recht dann ist ein einzelener Timer besser.
Doch wenn man die Playerspezifischen Timer erst beim connecten des Spielers startet und beim disconnecten wieder killt so ist automatisch eine Zeitdifferenz zwichen den einzelnen Timern... esseiden ich hätte einen 10sek timer und die Spieler würden alle auf die ms genau nach 10 sekunden joinen...
Es ging um sich wiederholende Timer, wie zum Beispiel ein Tacho, der jede Sekunde aktualisiert wird. Wenn du 500 Spieler im Server hast, hast du entweder einen Timer der 500 Schleifendurchläufe hat, oder 500 Timer mit einem Durchlauf.
Aber klar, ich denke wir wollen beide aufs gleiche hinaus: Es kommt auf die Situation an. Je nach dem ist das eine oder das andere besser.@BlackAce: Meinst du wirklich ich hätte es nicht ohne das format getestet? ._.
Und wie ich schon sagte:Generell tritt dieses Problem auf, wenn auf dem Server auf dem die Datenbank liegt eine hohe Lese-/Schreibrate im Gange ist. Dies hat aber weder Files noch sonstige Funktionen beeinflusst, nur MySQL.
Die files habe ich ebenfalls über einem formatierten String geöffnet. Somit ist format ausgeschlossen. -
Jeffry: welches Mysql Plugin + VErsion verwendest du? sieht mir nach einem Plugin ohne Multithread aus.
Das wurde mit dem R5 (was sehr viele hier noch nutzen) sowie dem neusten von StrickenKid getestet.Gerne - das Problem leigt hier an Format.
Dein Ernst?
Wie erklärst du dir dann, dass der gleiche Code in 1ms sowie in 1238ms ausgeführt wird?
Wo ist denn dein Test? Den würde ich gerne sehen...Also bitte, wenn das am Format liegt, dann müsste doch jeder Server sofort abschmieren.
-
Wie gesagt den Test will ich immernoch sehen
Spoiler anzeigen forward Repeater();
public Repeater()
{
new a = GetTickCount();
new query[128];
format(query, 128, "UPDATE test SET coll = %d WHERE ID = 0", a);
mysql_query(query);
printf("MySQL: %d", GetTickCount()-a);
return 1;
}
ZitatSpoiler anzeigen [02:00:25] MySQL: 1
[02:00:26] MySQL: 1
[02:00:27] MySQL: 0
[02:00:28] MySQL: 1
[02:00:29] MySQL: 1
[02:00:30] MySQL: 0
[02:00:31] MySQL: 1
[02:00:32] MySQL: 0
[02:00:33] MySQL: 111
[02:00:34] MySQL: 296
[02:00:36] MySQL: 1238
[02:00:36] MySQL: 12
[02:00:37] MySQL: 172
[02:00:38] MySQL: 141
[02:00:40] MySQL: 347
[02:00:40] MySQL: 280
[02:00:42] MySQL: 312
[02:00:42] MySQL: 6
[02:00:43] MySQL: 2
[02:00:44] MySQL: 216
[02:00:45] MySQL: 5
[02:00:46] MySQL: 2
[02:00:47] MySQL: 8
[02:00:48] MySQL: 1
[02:00:49] MySQL: 1
[02:00:50] MySQL: 2
[02:00:52] MySQL: 148
[02:00:52] MySQL: 60
[02:00:54] MySQL: 136
[02:00:54] MySQL: 21
[02:00:56] MySQL: 283
[02:00:57] MySQL: 181
[02:00:57] MySQL: 7
[02:00:58] MySQL: 1
[02:00:59] MySQL: 1
[02:01:00] MySQL: 1
[02:01:02] MySQL: 1
[02:01:03] MySQL: 59
[02:01:04] MySQL: 63
[02:01:05] MySQL: 19
[02:01:06] MySQL: 165
[02:01:07] MySQL: 103
[02:01:08] MySQL: 46
[02:01:09] MySQL: 115
[02:01:10] MySQL: 69
[02:01:11] MySQL: 43
[02:01:12] MySQL: 85
[02:01:13] MySQL: 67
[02:01:14] MySQL: 113
[02:01:15] MySQL: 112
[02:01:16] MySQL: 38
[02:01:17] MySQL: 1
[02:01:18] MySQL: 1
[02:01:19] MySQL: 1
[02:01:20] MySQL: 1
Jetzt darfst du ran mit deiner Logik.Manyula: Was [DT]Sniper: sagt stimmt auch, eben bezogen auf die größeren Berechnungen. Kleine Berechnungen = 1 Timer besser, größere Berechnungen (nach dem was ich vorhin beschrieben habe, MySQL, Files, etc) mehrere verteile Timer. Wie gesagt, es kommt darauf an was du machen willst.