Lass dir mal den kompletten Array ausgeben, bevor du den Query ausgibst und am besten lässt du dir auch noch den Query ausgeben.
Beiträge von danfai
-
-
Versuche mal
PlayerInfo[playerid][Help] = {1,1,1,1,1}; -
Kannst du bitte die Deklaration(Erstellung) von CarLock[] schicken?
-
Du musst erst einen Primary Index auf die Spalte definieren.
Danach kannst du den auf AutoIncrement stellen. -
Kannst du bitte mal den enum von den Firmeninfo schicken?
-
Dann machst du zuvor schon eine Klammer zuviel zu und du machst zu früh return 1;
Entferne von der for-Schleife davor diesen Code:
return 1;
}
Das muss weg^.
//EDIT: AnzeigeFehler -
Du willst diese Schleife dann aufrufen, wenn z.B. jemand in dieses Pickup geht.
Dann würde dir vor der for-Schleife folgendes fehlen.
public OnPlayerPickUpPickup(playerid,pickupid){ -
Ich meinte, bei was das abgefragt werden soll, bzw. wann.
//EDIT: Problem wurde anderweitig gelöst; -> Anscheinend doch nicht -
Was willst du mit der for-Schleife erreichen bzw. In welcher Funktion soll diese stehen? (bitte mit Code)
-
for(new i=1;i<MAX_HAUS;i++)
{
if(HausInfo[i][haus_pickup] == pickupid)
{
new s[100];
format(s,100,"Owner: %s, Price: %d$",HausInfo[i][haus_besitzer],HausInfo[i][haus_preis]);
SendClientMessage(playerid,0x00FF00,s);
}
}
return 1;
} //Diese Klammer ist, so nehme ich an, von einer Funktion die Klammer zu.
//Alles was jetzt kommt, das muss eine Deklarierung sein!
//Die for-Schleife ist in keiner Funktion und schon deklariert. -
Kannst du bitte das "Umfeld" schicken (Ich meine damit circa 5-10 Zeilen davor und danach)?
-
Dein Schnippsel wird zur Zeit nur das erste Fahrzeug überprüfen und dort schauen ob du in der Nähe bist.
Falls du in der Nähe bist, dann wird das Schloss auf bzw. zugeschlossen. Solltest du aber nicht in der Nähe sein, dann bricht der Code ab!
Mache das so:
if(strcmp(cmdtext, "/lock", true) == 0)
{
new vid=GetPlayerNearestCarID(playerid,5.0);
if(vid == INVALID_VEHICLE_ID){ SendClientMessage(playerid, COLOR_GREY, "Es ist kein Auto in der Nähe."); return 1;}
if(CarLock[vid] == 0)
{
SendClientMessage(playerid, COLOR_WHITE, "Du hast das Auto abgeschlossen.");
LockCar(vid);
CarLock[vid] = 1;
return 1;
}
else if(CarLock[vid] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "Du hast das Auto aufgeschlossen.");
UnLockCar(vid);
CarLock[vid] = 0;
return 1;
}
}
//Das fügst du dann ganz unten ein:
stock GetPlayerNearestCarID(playerid,Float:radius)
{
//Credits to InternetInk aka Benjamin, edited by danfai
new Float:vx,Float:vy,Float:vz,carid=INVALID_VEHICLE_ID;
for(new v = 1; v <= MAX_VEHICLES; v++)
{
GetVehiclePos(v,vx,vy,vz);
if(IsPlayerInRangeOfPoint(playerid,radius,vx,vy,vz))
{
carid = v;
}
}
return carid;
} -
Kanns du bitte nachschauen, ob du die Klammern vor der for-Schleife alle richtig zugemacht hast und keine Klammer zu viel zugemacht hast.
Ich nehme an, dass die for-Schleife nicht in einer Funktion aufgerufen wird und somit es somit einen error gibt. -
Ich werde mich darum kümmern, aber ich muss jetzt ins Bett.
Sobald ich den Fehler herausgefunden habe, poste ich dir das hier. -
Wenn eine MySQL Funktion falsch geschrieben wurde, dann hätte sowie im "Script" als auch in der "include " die Funktion falsch geschrieben sein müssen.
Eine andere Möglichkeit wäre, dass die Include veraltet ist.4#Future:
Hast du eigentlich Spaß daran, meine Beiträge herunter zu ziehen?
Dies macht so langsam den Eindruck.
Es gibt genügend Threads in diesem Forum, die deine Hilfe und die des "Supporters Club" benötigen würden, aber leider in den Tiefen dieses Forums versinken. -
Hast du in der server.cfg die Plugins eingetragen?
Auf welchem Betriebssystem läuft der Server?
Hast du einen größeren Ausschnitt des Server Logs? (zum Beispiel von dort, wo das Plugin geladen wird) -
Was hast du denn genau überarbeitet?
-
Ich komme zu dieser Annahme, dass die Performance nachlässt, dadurch, dass ich dieses Problem in der Praxis ausprobiert hatte.
Zu der Annahme, dass die öffentlichten Funktionen blanko in der .amx stehen, komme ich, da ich interessehalber die .amx-Datei geöffnet habe und zufälligerweise alle öffentlichen Funktionen aufgelistet vor mir fand.
=> Nutze die Suchfunktion von Notepad++ -
Du sollst den Usern auch nicht eine Beratungsstunde über Stringlängen geben.
Was genau meinst du mitZitat von 4#Future
Ob 125 oder 125000 Zeichen ist dem String sowieso schweiß egal,
denn er kann sowieso nur die Zeichen verwenden, die ihm zustehen
bzw. die in dem String definiert sind.
Wenn man einen String (in PAWN ist das ein IntegerArray) deklariert, dann wird dieser auch bei jedem Funktionsaufruf beziehungsweise beim Laden des Scriptes deklariert.
Wenn du mir jetzt erzählen willst, dass du mal so locker flockig einen IntegerArray mit der Größe 125.000 deklarieren willst ohne an Performance einzubüsen, dann musst du schon etwas höheres als Gott sein. -
4#Future:
Du willst die Funktion also öffentlich setzen und diese auch noch "forwarden"?
Ich weiß nicht inwiefern du dich mit "Dekompilieren" auskennst.
Die Funktionen, die öffentlich sind, werden blanko in die .amx hineingeschrieben.
Das macht deinen "Script" sehr unsicher und durch die vielen öffentlichen Funktionen auch inperformant.