Kannst du das bitte gescheit posten, so erkennt man wirklich nichts im Code.
Edit: Danke, ich schau es mir gleich an wenn ich zu hause bin.
Edit2: Poste Bitte noch die "hRange(playerid)" Funktion.
Kannst du das bitte gescheit posten, so erkennt man wirklich nichts im Code.
Edit: Danke, ich schau es mir gleich an wenn ich zu hause bin.
Edit2: Poste Bitte noch die "hRange(playerid)" Funktion.
Schalte mal den MySQL Debug Modus an und poste dann hier was im Server_log steht.
Außerdem
format(query,sizeof(query),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);
Zu
format(query2,sizeof(query2),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);
Debugge den Code, das ist die beste Methode um so einen Fehler zu finden. Möglicherweiße kommt der Code gar nicht bis zu deinen Abfragen.
Falls du nicht weißt wie man das macht: http://wiki.sa-mp.com/wiki/Debugging
=> Zwischen die Zeilen print's einsetzen, und schauen wie weit der Code geprintet wird. Dann kannst du darauf zurückschließen, wo der Fehler liegt.
Außerdem würde ich an deiner Stelle auch die Werte von den Variablen prüfen (Lager[playerid], etc).
Das wird das Beste sein, ohne den ganzen Code umzuschreiben.
Debugge den Code, das ist die beste Methode um so einen Fehler zu finden.
Falls du nicht weißt wie man das macht: http://wiki.sa-mp.com/wiki/Debugging
=> Zwischen die Zeilen print's einsetzen, und schauen wie weit der Code geprintet wird. Dann kannst du darauf zurückschließen, wo der Fehler liegt.
Über Arrays. Wie du das im Code letztenendes realisierst hängt ganz von deinem Haussystem ab.
So kann es aussehen:
new HausZimmerGemietet[MAX_HAUSER][5]; //Jedes Haus hat 5 Zimmer
new HausZimmerBesitzer[MAX_HAUSER][5][MAX_PLAYER_NAME];
HausZimmerGemietet[hausID][2] = 0; //Zimmer 2 nicht gemietet
HausZimmerGemietet[hausID][0] = 1;//Zimmer 0 gemietet
HausZimmerBesitzer[hausID][0] = "Jeffry";
stock Float:CalcDifference(Floate:value1,Floate:value2)
Floate => Float.
Eine weitere Frage: Gibt es keine sauberere Möglichkeit die Waffen des Spielers zu speichern?
So wie du es machst ist es völlig in Ordnung, das ist die sauberste Methode die mir dazu einfallen würde.
SpielerInfo[playerid][pWeaponId][weapon_slot] = WaffenP[i][0];
SpielerInfo[playerid][pWeaponAmmo][weapon_slot] = WaffenP[i][1];
Analog dazu die anderen auch.
Schreib einfach bei OnPlayerCommandText gaaaanz unten bei dem return 0;
return SendClientMessage(playerid, 0xFF0000FF, "Error....");
Eine Funktion gibt es dafür nicht, aber du kannst die Bounds ja einfach entfernen wenn der Spieler die virtuelle Welt wechselt.
Und da er es schon definiert hat muss er es nicht noch einmal definieren.
So einfach.
Alles andere wäre nur Verschwendung von Ressourcen.
Was Kevin sagt ist absolut richtig.
Das wirst du wohl oder übel so machen müssen. Du könntest zwar für jede Waffe eine Nummer definieren, aber das würde auch nichts ändern, dann musst du eben die Nummer angeben statt dem enum Wert.
Wenn du alle Waffen nimmst, könntest du es von der Waffen ID abhängig machen, wenn nicht fällt das aber auch weg.
Was du genau mit "in einer Zuordnung speichern" meinst ist mir unklar, kannst du das erklären, was genau du machen willst?
Poste mal deinen gesamten Code wenn du es draußen hast, und dann wenn du es drinne hast.
Ich werde mir es dann später am Abend ansehen, wenn das Problem noch immer besteht.
Von mir aus kannst es mir auch per PM schicken.
Nutze http://www.pastebin.com
Wenn die Busse nicht da sind, dann kann das Label ja auch nicht angehängt werden.
Du solltest dann mal prüfen warum die nicht erstellt werden, denn es muss auf jeden Fall eine VehicleID bei "Bus: %d" stehen.
Hast du bereits eine Variable die so heißt?
Benenne mal "Perso" um zu "Perso_".
Falls das nichts bringt, entferne mal die zu "Perso" gehörigen Zeilen und schau ob der Fehler weiter besteht.
buscar[0]=AddStaticVehicleEx(431,1095.8516,-1775.4436,13.4399,90.8237,202,203,130); // bus1
printf("Bus: %d", buscar[0]);
buscar[1]=AddStaticVehicleEx(431,1095.8394,-1771.6570,13.4451,89.9243,202,203,130); // bus2
printf("Bus: %d", buscar[1]);
buscar[2]=AddStaticVehicleEx(431,1096.6622,-1766.2585,13.4551,90.0711,202,203,130); // bus3
printf("Bus: %d", buscar[2]);
buscar[3]=AddStaticVehicleEx(431,1096.3569,-1759.1108,13.4595,90.1655,202,203,130); // bus4
printf("Bus: %d", buscar[3]);
buscar[4]=AddStaticVehicleEx(431,1065.0988,-1775.2299,13.4428,269.2989,202,203,130); // bus5
printf("Bus: %d", buscar[4]);
buscar[5]=AddStaticVehicleEx(431,1065.3099,-1771.2938,13.4653,270.2178,202,203,130); // bus6
printf("Bus: %d", buscar[5]);
buscar[6]=AddStaticVehicleEx(431,1065.2445,-1767.1741,13.4776,269.2612,202,203,130); // bus7
printf("Bus: %d", buscar[6]);
buscar[7]=AddStaticVehicleEx(431,1065.1586,-1737.7998,13.5843,268.1894,202,203,130); // bus8
printf("Bus: %d", buscar[7]);
Ausgabe?
Wenn alle 0 sind, benutze mal "CreateVehicle" anstatt AddStaticVehicleEx.
Werden die Autos geladen?
Wenn ja, poste bitte den Code dazu, den richtigen und nicht nur Pseudocode.
Wie du siehst ist "buscar[i]" immer 0, was bedeutet irgendwas geht beim Erstellen der Autos schief.
Das kompiliert bei mir ohne Probleme. Sicher das du die richtige Zeile hast?
An dem Code liegt es jedenfalls nicht.