Nochmal die Frage:
Nutzt du das Plugin oder die stock Funktion?
Falls Funktion: Nutze das neue Plugin und mach unten stehende Änderung.
Falls Plugin:
if(sscanf(params,"s",text))
zu:
if(sscanf(params,"s[256]",text))
Nochmal die Frage:
Nutzt du das Plugin oder die stock Funktion?
Falls Funktion: Nutze das neue Plugin und mach unten stehende Änderung.
Falls Plugin:
if(sscanf(params,"s",text))
zu:
if(sscanf(params,"s[256]",text))
Du greifst zu Anfang mit playerid auf den Index zu, dann muss es so sein:
AdminObjects[playerid][AObjectX] = fX;
AdminObjects[playerid][AObjectY] = fZ;
AdminObjects[playerid][AObjectZ] = fY;
if(strcmp("/objects", cmd, true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "Objecte:");
if(AdminObjects[playerid][AObjectID] != -1)
{
format(string, sizeof(string), "ID %d, X %f, Y %f, Z %f", AdminObjects[playerid][AObjectID], AdminObjects[playerid][AObjectX], AdminObjects[playerid][AObjectY], AdminObjects[playerid][AObjectZ]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
return 1;
}
Mit welchem Code prüfst du denn, ob die Koordinaten im enum geändert worden sind?
Poste den Code dazu, mit dem du siehst, dass die neuen Koordinaten nicht im enum sind.
Nutzt du das sscanf Plugin oder die stock Funktion?
Hast du den "Tickets" Ordner erstellt?
Hast du den Code 1:1 kopiert? Wenn nicht, poste deinen Code ggf.
Habe es ihm per TeamViewer kurz gemacht.
Das Haupt-Problem, dass es nicht richtig ging war der AI-Key in der Datenbank und falsche Zugriffe auf die Variablen.
Es funktioniert nun alles, auch wenn man Fraktionen aus der Mitte löscht, werden diese wieder eingefügt.
Du hast eine Zeile mehr, also 11 und 6.
Oder du lässt es einfach leer:
So wie ich das sehe fehlt vor mysql_connect das hier:
mysql_debug(1);
Hast du das nicht eingefügt? Es wird nämlich kein Query geloggt, nichts. Du siehst ja, dass es praktisch leer ist. ![]()
Erstelle doch in deiner Datenbank mal die Tabelle für die Fraktionsfahrzeuge. Wenn du das gemacht hast, und alle benötigten Spalten hinzugefügt hast, poste einen Screenshot der Tabelle.
Dann poste bitte auch das enum deiner Fraktionen dazu.
Es ist allerdings egal, ob da jetzt 0 steht, oder mysql_num_rows 0 ausgibt, das kommt im Endeffekt auf das gleiche raus.
Natürlich muss es so aussehen:
mysql_query("SELECT * FROM Kassen");
mysql_store_result();
new rows = mysql_num_rows();
for(new i=rows; i < MAX_FRAKTION; i++)
{
if(mysql_CheckKasse(i) == 0)
{
switch(i)
{
case 1: mysql_query("INSERT INTO Kassen (Name) VALUES ('ADAC');");
case 2: mysql_query("INSERT INTO Kassen (Name) VALUES ('Staatskasse');");
case 3: mysql_query("INSERT INTO Kassen (Name) VALUES ('Test');");
}
}
}
Und das "Connect_To_Database();" muss vor dem Code stehen.
Schreibe am besten "Connect_To_Database();" in die erste Zeile nach public OnGameModeInit.
Nein BlackAce, dann erstellt es ja bei jedem Server-Start die Fraktionen. Er prüft ja, wie viele Fraktionen existieren und erstellt dann ggf. die, die noch nicht existieren.
TVPikachu, du rufst den Code gar nicht auf. Poste doch bitte mal dein gesamtes OnGameModeInit, und zwar auch den Teil, mit dem du die Verbindung zur Datenbank herstellst (Passwort entfernen!).
Und ändere das wieder zurück, das war schon richtig, sonst hätte ich es dir nicht gesagt.
Dann gibt es zwei Möglichkeiten:
- Entweder du arbeitest dich in die Arbeit mit MySQL ein (das ist nicht in 5 Minuten gemacht, sondern kann mehrere Wochen dauern),
- oder du baust erst mal Systeme auf, die du dir zutraust.
Gegebenenfalls kannst du das System ja auch zuerst mit Dateien aufbauen, wenn dir das leichter fällt.
Hast du die Fraktionen denn schon in MySQL?
Du kannst es dir ja von hier abschauen:
Dynamisches Fraktionssystem V1 | SQLite
Bzw, du kannst das System nutzen.
Wenn du es selbst machen willst, brauchst du natürlich erst ein Fraktionssystem.
Der Abschnitt mit den INSERT's (also den Code Teil den du gepostet hast) muss nach der Herstellung der Verbindung zur Datenbank stehen.
Von jetzt an, wenn es nicht geht, immer den MySQL Log gleich dazu posten.
Das ist der Server Log, und nicht der MySQL Log.
Aber schreib den switch mal so:
case 1: mysql_query("INSERT INTO Kassen (Name) VALUES ('ADAC');");
case 2: mysql_query("INSERT INTO Kassen (Name) VALUES ('Staatskasse');");
case 3: mysql_query("INSERT INTO Kassen (Name) VALUES ('Test');");
Auf dem Bild heißt es ja "Name" und nicht "fName". Der Rest müsste passen. Wenn es immer noch nicht geht, poste bitte den MySQL Log.
Wird der Code bei dir korrekt ausgeführt, bzw. überhaupt ausgeführt?
Zeig bitte mal mehr von deinem OnGameModeInit und poste dazu bitte den MySQL Log, der kommt, wenn du den Server startest. Wie du den Debug Log erstellst, siehst du hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4)
Hast du deinen Plugins Ordner gelöscht? An einer Änderung am Code können diese Fehler nicht liegen, das ist ausgeschlossen.
Was hast du gemacht?
Du hast bei jedem Zeitpunkt diese Position:
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
Wenn du die Position ändern willst, musst du diese Koordinaten ändern.
Poste bitte den Code zu deinem Tutorial, der Teil der fehlerhaft ist.
Was heißt denn, es funktioniert nicht ganz?
Poste bitte den Befehl wie er jetzt ist.