Wird die Datei angelegt? Wenn nein, dann füge das hier nach dem Format ein:
if(!fexist(Player)) dini_Create(Player);
Ansonsten prüfe, ob LoggedIn wirklich auf 1 steht.
Wird die Datei angelegt? Wenn nein, dann füge das hier nach dem Format ein:
if(!fexist(Player)) dini_Create(Player);
Ansonsten prüfe, ob LoggedIn wirklich auf 1 steht.
Stimmt, sorry, hatte das mit strlen verwechselt, da geht es nämlich.
Dann musst du es so machen, anders geht es da nicht wirklich sinnvoll:
#define MAX_INFO3_LEN 2
enum info
{
info1,
info2,
info3[MAX_INFO3_LEN]
}
Und dann:
new len = MAX_INFO3_LEN;
Damit wir uns vorstellen können, wie es im Spiel aussieht, ob sie nah beieiander sind, oder weit entfernt, etc. Das sieht man anhand der enum Daten schlecht.
Poste einfach ein Bild, wenn du Zeit hast, das pressiert ja nicht. Einen Code könntest du ja am Handy jetzt auch nicht ausprobieren, und der wäre ohnehin nur ins Blaue geraten.
Wie sieht es denn im Spiel aus, wenn du an die Stelle hin läufst, wo die Traktoren und Anhänger stehen? (Kannst du ein Bild davon machen?)
switch(PlayerInfo[playerid][Wanted])
{
case 10..19: SetPlayerWantedLevel(playerid, 1);
case 20..29: SetPlayerWantedLevel(playerid, 2);
case 30..39: SetPlayerWantedLevel(playerid, 3);
case 40..49: SetPlayerWantedLevel(playerid, 4);
case 50..59: SetPlayerWantedLevel(playerid, 5);
case 60: SetPlayerWantedLevel(playerid, 6);
}
Das kannst du so auch bei den beiden Befehlen einfügen:
switch(PlayerInfo[pID][Wanted])
{
case 10..19: SetPlayerWantedLevel(pID, 1);
case 20..29: SetPlayerWantedLevel(pID, 2);
case 30..39: SetPlayerWantedLevel(pID, 3);
case 40..49: SetPlayerWantedLevel(pID, 4);
case 50..59: SetPlayerWantedLevel(pID, 5);
case 60: SetPlayerWantedLevel(pID, 6);
}
Es wäre gut, wenn du davon mal ein Video machen könntest, damit wir uns das mal genau anschauen können.
Möglicherweise ist das, was du beschreibst, auch normal so. Ohne es aber komplett gesehen zu haben, kann ich es nicht beurteilen.
Was sagt denn der MySQL Log, wenn dieser Code ausgeführt wird?
Nein, außer dem Spieler die Leben immer wieder hochzusetzen, wenn er unter Wasser ist.
format(query,sizeof(query),"%s,Tode='%i",query,SpielerInfo[playerid][pTode]);
Zu
format(query,sizeof(query),"%s,Tode='%i'",query,SpielerInfo[playerid][pTode]);
Du nutzt ein altes MySQL Plugin. Du musst das neuste Plugin nutzen:
https://github.com/pBlueG/SA-MP-MySQL/releases
In welcher virtuellen Welt bist du denn?
Es wundert mich nämlich auch, dass bei CreatePickup nichts angegeben ist.
Versuche es mal anstatt wie oben beschrieben mit HausInfo[ho][hVW] im vorletzten Parameter bei den beiden Create3DTextLabel, mit 0, also so:
HausInfo[ho][hLabel]=Create3DTextLabel(str,COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ],0,1);
Das sind ja gar keine Float-publics wie vom crashdetect angegeben. Komisch.
Versuche mal, ob es hilft, wenn du nur das crashdetect Plugin aktualisierst, vielleicht löst das das Problem.
Dann poste bitte mal die OnGangwarUpdate1 und die UpdateTime2 Funktion.
Hast du beim kompilieren im Compiler eine mehrzeilige Meldung mit vielen Zahlen drin stehen?
Ok, ändere dort mal:
Create3DTextLabel(str,COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ],15,1);
zu:
HausInfo[ho][hLabel]=Create3DTextLabel(str,COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ],HausInfo[ho][hVW],1);
Und dort wo alle geladen werden:
HausInfo[ho][hLabel]=Create3DTextLabel(str,COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ],7,1);
zu:
HausInfo[ho][hLabel]=Create3DTextLabel(str,COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ],HausInfo[ho][hVW],1);
Scheint als rufst du die Funktion(en) vor mysql_connect auf.
Das lange hochfahren kann daran liegen, dass die Performanz des Codes, bzw. des MySQL Servers, nicht so gut ist, daran kann man erstmal nicht viel machen, außer den Code zu optimieren.
Zwecks dem Kick:
Da du einen Code für 0.3d nutzt, wie es aussieht, kann es sein, dass da noch Dinge drin sind, die mit der neusten Version nicht mehr funktionieren. Der Kick scheint wohl daran zu liegen, dass der Spieler mit SpawnPlayer aus der Class Selection gespawnt wird, ohne dass zuvor SetSpawnInfo genutzt wurde. Das sollte man am besten bei OnPlayerConnect bzw. OnPlayerRequestClass nutzen.
Was sagt der MySQL Log?
Und:
FactionCars[i][fdb_id] = cache_get_field_content_int(1, "id", dbhandle);
zu:
FactionCars[i][fdb_id] = cache_get_field_content_int(i, "id", dbhandle);
Das ist aber nicht der Grund für das Problem.
Zeigt Quellcode-Boxen automatisch im ausgeklappten Zustand an. (Danke an @Jeffry für den Vorschlag)
Vielen Dank! Diesbezüglich ist mir aber noch ein Fehler aufgefallen, und zwar stimmt die Seitenpositionierung nicht mehr, wenn dies eingeschaltet ist (#postXXX), da landet er immer irgendwo in der Mitte, wegen der Größe der ausgeklappten Codes. Erst wenn man nochmal in der URL-Bar ENTER drückt (damit er zu der Hash-Position springt), passt es.
In meinem Userscript mit Greasemonkey habe ich das mit
behoben. Sowas, oder ähnliches, müsste noch nach dem ausklappen eingefügt werden, in Breadfish++, damit die Positionierung passt.
EDIT:
Außerdem werden Quellcodes, die mit der Schnell-Antwort geschrieben werden, und dann gepostet sind, nicht ausgeklappt. Das ist kein großes Problem, aber vielleicht lässt es sich ja relativ einfach beheben.
Die Reihenfolge und die Klammersetzung hat nicht ganz gepasst.
Du musst es so machen:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:health;
GetVehicleHealth(vehicleid, health);
if(health > 995)
{
new name[MAX_PLAYER_NAME], string[50+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s has been banned by the System for Vehicle Health Hack.", name);
SendClientMessageToAll(RED,string);
SetVehicleHealth(vehicleid, 995);
Kick(playerid);
}
return 1;
}