Das ist ein anderer Fehler. Ich kann anhand dem Log aber nicht erkennen, wo der Fehler ist, das musst du selbst herausfinden, wann der Fehler auftritt.
Das erste ist "nur" eine Warnung, prinzipiell ist diese Warnung nicht so schlimm, falls du da keine Stelle findest, an der du noch eine Verbindung aufbaust.
Beiträge von Jeffry
-
-
format(query,sizeof(query),"INSERT INTO onlines (ID, Name) VALUES ('%d','%s')",playerid,Spieler[playerid][pName]);
zu:
format(query,sizeof(query),"INSERT INTO onlines (ID, Name) VALUES ('%d','%s') ON DUPLICATE KEY UPDATE Name='%s'",playerid,Spieler[playerid][pName],Spieler[playerid][pName]);Dann sollte der Fehler weg sein.
-
Suche danach:
INSERT INTO onlines (ID, Name) VALUES -
Die Fehlermeldung scheint mir beim Login (Online-Liste) zu kommen, da dies ein INSERT ist. Genau kann man das der Meldung so aber nicht entnehmen, wann es passiert.
Das musst du im Code suchen. -
Was heißt sie funktionieren nicht?
-
Ich hatte dieses Problem auch mit Windows 7. Möglicherweise hattest du dort den Administrator Zugriff standardmäßig in der pawno.exe eingestellt, bei den Einstellungen.
-
Öffne die pawno.exe als Administrator, dann zeigt es die Funktionen an.
-
Das musst du dann mit einer Schleife realisieren:
for(new i = 0; i < sizeof(CarIDs); i++)
{
if(GetPlayerVehicleID(playerid) == CarIDs[i])
{
//Mache etwas
}
} -
Situation 1:
new money = random(2001) + 1000;Situation 2:
new chance = random(100);
switch(chance)
{
case 0..39:
{
//40%
}
default:
{
//60%
}
} -
Ja, in Zeile 4 und geprüft in Zeile 16.
-
Das kannst du dann so machen:
NextPostCp(playerid)
{
new r = random(sizeof(Postfuhr_Stationen)), count;
while(Postfuhr_Stationen[r][p_benutzt][playerid] == 1 && count < 1000)
{
r = random(sizeof(Postfuhr_Stationen));
count++;
}
if(Postfuhr_Stationen[r][p_benutzt][playerid] == 0) return r;
r = random(sizeof(Postfuhr_Stationen));
for(new p = r; p < sizeof(Postfuhr_Stationen); p++)
{
if(Postfuhr_Stationen[p][p_benutzt][playerid] == 0)
{
return p;
}
}
for(new p = 0; p < r; p++)
{
if(Postfuhr_Stationen[p][p_benutzt][playerid] == 0)
{
return p;
}
}
return -1;
}Das sollte dann auch verhindern, dass er in einer Endlos-Schleife landet.
Beachte aber, dass du dort, wo du NextPostCp ausliest abfragen musst, ob es -1 zurück gegeben hat, wenn ja konnte kein neuer CP gefunden werden. -
Wie kann ich den noch Random nehmen ? soll ich das in der Funktion oder wo ?
Was meinst du?
-
Zu den Warnungen:
Du versuchst mehrmals eine Verbindung zu den gleichen Daten aufzubauen (mysql_connect).Zu den Errors:
Du versuchst einen Cache auszulesen, der nicht existiert. Dazu müsstest du den entsprechenden Code posten, durch den das verursacht wird. -
Beim Start auf 0 (nicht betreten), und beim Betreten auf 1 setzen (jeweils den, den du betrittst).
-
In dem Fall würde ich die Warnung einfach ignorieren.
-
Du setzt beim Starten alle auf 1:
Postfuhr_Stationen[p][p_benutzt][playerid] = 1;
zu:
Postfuhr_Stationen[p][p_benutzt][playerid] = 0; -
Dann beendest du die Verbindung vor den mysql_tqueries, bzw. hast erst gar keine Verbindung aufgebaut.
-
Das stimmt, das wird dann nicht aufgerufen.
Führst du denn dort MySQL Queries aus? Falls ja, entferne den Code mal testweise aus dem Callback und teste dann ob es noch immer abstürzt. -
Du kannst dir dieses Tutorial anschauen: http://forum.sa-mp.com/showthread.php?t=337810
Dort gibt es den Punkt "Converting", da ist beschrieben, wie du das umschreiben musst, damit es klappt. -
Dann steht in der MySQL Log keine Meldung.
Dann kannst du den Server ja so beenden, anstatt mit "/exit", oder?
Die MySQL Verbindung wird sowieso getrennt, egal wie du es beendest.Warum genau es da abstürzt kann ich nicht sagen, vielleicht kann @maddin dir dazu was sagen, falls das Problem bekannt ist, bezüglich dem Plugin.