bbesitzer, zu bbesitzer[MAX_PLAYER_NAME],
Beiträge von FineTime
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
-
-
Es geht darum, wie es im enum definiert ist.
-
Wahrscheinlich hast du bbesitzer als Integer (Zahl) definiert, aber du frägst mit %s nach einem String.
-
Die Fehlermeldung kommt, da in dieser Zeile eine Klammer zu viel ist:
format(string, sizeof(string), "24/7 Am Neulingspawn\nEintritt:%d \nWaren: %d\nBesitzer: %s",bInfo[bizid][beintritt],bInfo[bizid][bwaren],bInfo[bizid][bbesitzer] ));
-
Du musst schon die [wiki]format[/wiki] Funktion benutzen
Wenn in der Datenbank die ID vom Besitzer gespeichert ist, kannst du über eine MySQL-Abfrage den Namen des Besitzers auslesen.
Wenn du dich für diese Option entscheidest, brauchst du nicht einmal mehr eine zusätzliche Variable beim Spieler.Als Schleife kannst du im Grunde die selbe Schleife verwenden, die du schon in deinen stocks hast (for(new bizid = 0; bizid < MAX_BIZ; bizid++)).
-
also das ich z.b bInfo[bizid][bbesitzer]= playerid oder so ungefähr mache
Du müsstest dort nicht die playerid sondern die ID des Spielers in der Datenbank abspeichern.
Kann ich einfach bei den ganzen Sachen mit : dahinter bInfo[bizid][bwaren] machen?
Im Prinzip schon, du müsstest dafür allerdings erstmal an jede einzelne bizid ran kommen.
Das lässt sich sehr gut mit einer Schleife realisieren, die jedes Unternehmen abfragt und dieses Label erstellt. -
Probier mal, folgendes auszutauschen:
for(new bizid = 0; bizid < 1; bizid++)
zu
new MAX_BUSINESS = 1;
for(new bizid = 0; bizid < MAX_BUSINESS; bizid++)
Tritt der Fehler danach immer noch auf?PS: Ich würde in der Schleife eine andere Variable als "bizid" nehmen, da die offenbar Warnungs hervorruft.
-
Zeig mir nochmal das enum, offenbar hast du dort bbesitzer nicht eingetragen.
Und probier mal - wie ich bereits oben schrieb - die 1 durch eine Variable (z. B. new MAX_BUSINESS = 1;) auszutauschen.
-
for(new bizid = 0; bizid < 1; bizid++)
Ersetze mal die 1 durch eine Variable.
Der andere Fehler ist, dass du ein nicht definiertes bbiz benutzt. Das musst du ggf. ins enum eintragen. -
[i] und [/i] kannst du rausnehmen. War ein kleiner Formatfehler meinerseits
Nachtrag: Unabhängig davon musst du "bizid" noch gegen "i" eintauschen.
-
Am Besten so:
public OnGameModeExit()
{
ServerSpeichern();
return 1;
}stock ServerSpeichern()
{
for(new i = 0; i < ANZAHL_UNTERNEHMEN; i++)
{
[i]Dein MySQL-Zeug (jeweils mit i als Business-ID)[/i]
}
} -
Ein kleiner Tipp dennoch am Rande... Glaub mir vergeude deine wertvolle Zeit lieber in die Schule.
Ich glaube, den Tipp hat er bereits beherzigt:#close
-
-
Bei ServerSpeichern brauchst du noch eine Schleife, die alle vorhandenen Unternehmen aufruft.
Diese kannst du entweder unter OnGameModeExit einfügen oder direkt im stock ServerSpeichern.Exemplarische Schleife:
for(new i = 0; i < ANZAHL_UNTERNEHMEN; i++)Abhängig davon, wo du die Schleife unterbringst, benötigst du dann einen Parameter (bizid) oder auch nicht.
PS: Mit playerid hat das gar nichts zu tun.
-
new bInfo[MAX_PLAYERS][playerinfo];
Hier muss ich kurz meckern, du musst MAX_PLAYERS durch die Höchstanzahl der Unternehmen
und playerinfo durch den Namen von dem neuen Enum austauschen.So richtig? Also kann ich jetzt z.b sagen [playerid][bbizkasse] = 10
Nein, du musst es so formulieren: bInfo[businessid][bbizkasse] = 10;
-
Ja, erstell ein neues enum
-
Wenn ich in diese reingehe sagt die mir das ich kein Primary Key gesetzt habe
Das liegt daran, dass du keine Spalte id hast. Das solltest du lieber ändern.
Bei der id Spalte musst du dann Auto Increment und Primary Key aktivieren. -
brauche ich eine neue Tabelle in der Datenbank?
Ja, du solltest eine neue Tabelle in der Datenbank erstellen.
Dort hat dann jedes Biz einen Eintrag, in dem du alle benötigten Infos (Besitzer, Produkte, usw.) speicherst.Zu deinem Problem mit den Objekten:
Die Objekte sind wohl irgendwo in deinem Script untergegangen, normal sind die nämlich nicht dort. -
-