> größer
< kleiner
== gleich
>= größer gleich
<= kleiner gleich
!= nicht gleich
&& und
||oder
Denke die meinst du.
> größer
< kleiner
== gleich
>= größer gleich
<= kleiner gleich
!= nicht gleich
&& und
||oder
Denke die meinst du.
Wie sieht deine Kaufliste aus?
new Float:angle;
GetPlayerFacingAngle(playerid, angle);
if(angle < 90 && angle > 70) //Beispiel
{
//Mach was
}
Ändere mal:
if(IsPlayerConnected(playerid) && Carlist[playerid][CarKey1][Typ] != -1)
zu:
printf("CreateTunedCar: Typ: %d", Carlist[playerid][CarKey1][Typ]);
if(IsPlayerConnected(playerid) && Carlist[playerid][CarKey1][Typ] != -1)
{
printf("Model: %d", Kaufliste[Carlist[playerid][CarKey1][Typ]][Modelid]);
Was wird dir dann in dem ganzen Vorgang geprintet?
Rot sein sollte zwar immernoch Grün
Ist das Grün zufällig die Farbe der Fraktion in der Liste die vor oder nach der Grove steht?
Bekommst du im MySQL Log einen Fehler ausgegeben? Poste den Log gegebenenfalls mal.
Ja, verstehe ich, hast du die Änderung gemacht? Das behebt möglicherweise beides.
Ahh, über den Besitzer nimmst du die Farbe.
Ändere
cache_get_row(0, 1, gwInfo[id][f_gebiet]);
zu:
cache_get_row(0, 1, gwInfo[id][f_gebiet], dbhandle, 258);
Das macht eigentlich keinen Unterschied, ob du drei publics hast, die du jeweils aufrufst, oder ob du ein public hast, dem du eine ID mit gibst.
Schriftarten die auf dem Rechner des Users installiert sind funktionieren. Daher sollte man sich an die Standard-Fonts halten, da sonst jeder die Schriftart braucht, die dein SetObjectMaterialText nutzt.
Wie kann ich den Code mit den for-Schleifen in den stock schreiben?
stock LoadMysqlData()
{
mysql_function_query(dbhandle, "SELECT * FROM `haeuser`", true, "OnServerStart", "i", 1);
mysql_function_query(dbhandle, "SELECT * FROM `gate`", true, "OnServerStart", "i", 2);
new query[256];
format(query, sizeof(query), "SELECT * FROM haeuser");
mysql_function_query(dbhandle, query, true, "OnHousesLoad","");
format(query,sizeof(query),"SELECT * FROM gate");
mysql_function_query(dbhandle, query, true, "OnGateLoad", "");
for(new i = 1; i < MAX_TONNEN; i++)
{
mysql_format(dbhandle, query, 128, "SELECT * FROM muelltonnen WHERE id = %d",i);
mysql_function_query(dbhandle, query, true, "LoadMuellTonnen","d",i);
}
for(new i = 1; i < MAX_ATMS; i++)
{
mysql_format(dbhandle, query, 128, "SELECT * FROM atm WHERE id = %d",i);
mysql_function_query(dbhandle, query, true, "LoadATMS","d",i);
}
return 1;
}
Und was muss ich dann bei dem public (Spoiler) beachten?
Was willst du beachten? An sich passt das für die zwei Queries so, wie du es gemacht hast, davon ausgehend, dass noch Code dazu kommt.
Gangzonefarben falsch
Die lädst du dort gar nicht, das müsstest du hinzufügen.
der Gebiets Name wird nicht ausgelesen
Wie sieht das enum zu gwInfo aus?
PS: Es wäre besser, wenn du nur ein Query sendest, und dann eine Schleife durch die rows machst.
Du rufst OnPasswordResponse auf, dein public heißt aber OnPasswortResponse.
Du musst im enum die Werte als Array anlegen, wie BlackAce schon sagte.
enum ServerDaten
{
sServername[32],
sMapname[32],
sServerversion1,
sServerversion2
}
new ServerInformationen[ServerDaten];
Außerdem darf mysql_GetString keinen direkten Wert zurück geben, du musst es so machen:
stock LoadServerInformationen()
{
format(ServerInformationen[sServername], 32, mysql_GetString("Serverinformationen", "Servername", "id", "1"));
format(ServerInformationen[sMapname], 32, mysql_GetString("Serverinformationen", "Mapname", "id", "1"));
ServerInformationen[sServerversion1] = mysql_GetInt("Serverinformationen", "Serverversion1", "id", "1");
ServerInformationen[sServerversion2] = mysql_GetInt("Serverinformationen", "Serverversion2", "id", "1");
return 1;
}
Zudem habe ich den hinteren Teil abgeändert, da du nicht nach dem Name selektieren kannst, wenn du den Name nicht kennst.
Du musst in deiner Tabelle zusätzlich eine Spalte "id" anlegen, nach der du selektieren kannst (hier: 1).
Somit sieht deine Tabelle so aus:
| id | Servername | Mapname | Serverversion1 | Serverversion2 |
| 1 | Mein Server | Meine Map | 2 | 1337 |
https://github.com/pBlueG/SA-MP-MySQL/releases/tag/R35
Außerdem brauchst du, wie es aussieht, das FileManager Plugin.
Du sollst es entfernen, da du die Variable nie nutzt.
Lösche Zeile 4:
new reparieren;
Lade dir das crashdetect Plugin herunter und füge es in deinen Server ein. Dann poste was im Server Log steht, wenn du den Server startest.
Versuche es anstatt der mysql.so mit der mysql_static.so.
Zwecks der Fehlermeldung:
Versuche mal, das "return 1;" nach dieser Zeile zu entfernen:
printf("Alle Fahrzeuge wurden erfolgreich geladen. Beende Funktion.");
Zu den Fahrzeugen:
Das erkennt man auch daran, dass dein CreateTunedCar -1 zurück gibt, sprich es wurde kein Fahrzeug erstellt.
Poste die CreateTunedCar Funktion bitte mal und prüfe, wie viele Fahrzeuge du insgesamt im Server hast, nicht dass da das Limit erreicht ist.