Welches ist die Zeile 808?
Beiträge von Jeffry
-
-
Du nutzt die R40+ Funktionen, aber sagst, dass du das R39 Plugin nutzt. Das geht nicht.
Lade dir das aktuelle Plugin herunter und kompiliere deinen Code mit der aktuellen Include. Starte dann den Server mit dem aktuellen Plugin.
-
Dann poste bitte deinen Code.
-
Die Tabelle komplett löschen (DROP TABLE) und danach die Struktur wieder anlegen, sodass keine Datensätze in der Tabelle sind.
PS: Du musst nicht immer meinen kompletten Post zitieren, es steht ja direkt drüber. Das macht es nur unübersichtlich.
-
Ah, das erklärt dann warum es so kurz ist.
Wobei es mir dann nicht klar wird, warum beim Login nichts gefunden wird.
Lösche mal die ganze Tabelle und erstelle sie neu, sodass keine Einträge mehr drin sind.
Registriere dich dann neu. Klappt es dann? -
Die Struktur hast du vergessen zu posten.
Dem Passwort Hash entnehme ich aber, dass deine password Spalte nur 32 Zeichen hat. Erhöhe das auf 128.
-
Das sieht soweit gut aus.
Wie sieht deine Tabelle in der Datenbank aus? Poste bitte den Inhalt und die Struktur der Tabelle. -
Dann schalte bitte den MySQL Debug Modus an und poste dann was im MySQL Log steht.
mysql_log(LOG_ALL); -
Schreibe in deinen Gamemode unter den includes:
main() { } -
Welche Version du verwendest steht auch im Server Log, schaue da nach.
Der Fehler den du gepostet hast, kommt der mehrmals oder nur einmal?
-
Das hört sich ganz danach an, als hast du das Limit erreicht.
Lasse dir beim letzten funktionierenden Label die ID in eine Variable speichern:
new Text3D:label =Create3DTextLabel(...);
Und gebe die ID direkt drunter im Print aus:
printf("Das letzte funktionierende Label hat die ID %d.", _:label);Was steht dann im Server Log?
-
Da haben wir schon das Problem. Das Label wird doppelt erstellt, da einmal bei OnGameModeInit und einmal wenn das Fahrzeug spawnt.
Entferne das bei OnVehicleSpawn. -
Hm, eventuell ist das Label zuvor bereits doppelt vorhandenen? Prüfe mal, ob das der Fall ist, indem du anstatt das Label zu löschen und ein neues zu erstellen, das alte nur per Update Funktion im Text änderst. Wenn dann die Texte auch ineinander stehen, ist das Label doppelt (oder mehr) vorhanden.
-
bool:a_status
Zu
a_status -
Super, dann hast du mir weiterhelfen! Vielen Dank für deine Zeit und Geduld, wird bestimmt nicht das letzte mal gewesen sein.
Gerne! Bei Fragen einfach im entsprechenden Thread oder in der Scripting Base melden.
Mach dir ein schönen Samstag, gehe jetzt erst mal Steak essen
Danke, gleichfalls! Lass es dir schmecken und ess eins für mich mit!
-
Den kannst du lassen, der stört nicht.
-
Es ging eigentlich darum, dass ,,nur" vor hatte, in der Tabelle den Spieler auf online = 1 zu setzten sobald er sich eingeloggt hat.
Da wollte ich nicht mitten in der OnPlayerConnect die MySQL Abfrage mit drinnen haben.Solltest du auch gar nicht. Das UPDATE-Query solltest du erst nach erfolgreichem Login absenden, somit steht das Query im public OnUserLogin, nach dem Auslesen der Caches.
Der Code dann dort:
new query[128];
mysql_format(handle, query, sizeof(query), "UPDATE users SET online = 1 WHERE id = %d", PlayerInfo[playerid][p_id]);
mysql_pquery(handle, query); -
Vorab erstmal, super Tutorial! Kann man gut nachvollziehen und funktioniert sogar alles wie es soll, klasse Arbeit!
Danke! Freut mich.
Ich möchte mir eine Methode bauen um einfacher Daten in der Datenbank zu ändern oder abzurufen.
Sowas solltest du aus Performancegründen bei diesem Plugin gar nicht machen, da du dir damit, vor allem bei der Abfrage nach Daten, den herausragenden Vorteil des Cachings nimmst.
PS: Nutze im mysql_format anstatt %s lieber %e, das escaped den String gleich.
-
Das Problem ist, dass du mit der vehicleid auf den Bus-Index zugreifst, das geht aber nicht, da du die Busse so nicht erstellst.
Du musst also anhand der vehicleid des Busses den Index im Array finden.
if(isPlayerInJob(playerid,11) && IsVehicleABus(GetPlayerVehicleID(playerid)))//busfahrerjob
{
new idx = GetBusIndex(GetPlayerVehicleID(playerid)); //Index des Busses auslesen
if(idx == -1) return 1; //Kein Bus
Spieler[playerid][WorkInJob] = 1;
SetPlayerCheckpoint(playerid,buslinie1[0][Xcp],buslinie1[0][Ycp],buslinie1[0][Zcp],buslinie1[0][CPSize]);
BusCheckpointStatus1[playerid] = 0;
//DestroyDynamic3DTextLabel(buslinieninfo[idx]);
DestroyDynamic3DTextLabel(buspriceinfo[idx]);
buslinieninfo[playerid] = 11;//für das textlabel
format(string,sizeof(string),"Linie %i | Busfahrer %s ist nun im Dienst! Kosten: %i$",buslinieninfo[playerid],SpielerName(playerid),MAX_BUS_PRICE);
SCMALL(GRUEN,string);
SCM(playerid,GELB,"Fahre nun einzeln die Haltestellen ab! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
format(string,sizeof(string),"Linie %i\nNächster Halt: %s\nBusfahrer: %s\nKosten: %i$",buslinieninfo[playerid],buslinie1[BusCheckpointStatus1[playerid]][CheckPointText],SpielerName(playerid),MAX_BUS_PRICE);
VehicleOnDuty[GetPlayerVehicleID(playerid)] = true;
//buspriceinfo[idx] = CreateDynamic3DTextLabel(string,BUSuTAXIDUTYFARBE, 0.0,0.0,0.0,25.0,INVALID_PLAYER_ID, GetPlayerVehicleID(playerid),1,0,-1,-1);
//Attach3DTextLabelToVehicle(buspriceinfo[idx],GetPlayerVehicleID(playerid),0.0,0.0,0.0);
buspriceinfo[idx] = CreateDynamic3DTextLabel(string,SERVERFARBEHEX,0.0,0.0,0.0,50.0,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),1,-1,0,-1,-1,-1);
UpdateDynamic3DTextLabelText(buspriceinfo[idx], SERVERFARBEHEX, string);
return 1;
}Und dazu diese Funktion:
stock GetBusIndex(vehicleid)
{
for(new i=0; i<sizeof(Busse); i++)
{
if(Busse[i] == vehicleid) return i;
}
return -1;
} -
Welche davon werden angezeigt, welche davon nicht?