Ok, gleich den ganzen Code. Dann musst du aber noch kurz erklären, welche Schritte du nacheinander gemacht hast um dieses Ergebnis zustande zu bekommen (welche Befehle hast du eingegeben?).
Beiträge von Jeffry
-
-
Das ist, sofern nicht gewollt, schlecht wenn das da steht, daher ist es nicht zu empfehlen es zu erzwingen.
Wenn du es aber haben willst, erstelle im Pawno-Ordner eine Datei pawn.cfg und schreibe dort "-d3" rein (ohne die Anführungszeichen). -
Zeig mal den Code mit dem du die Häuser bzw die Interiors erstellst und den Code mit dem du in das Haus gehst.
-
Dann reicht es wenn du das else vor dem if in der zweiten Abfrage weg machst.
-
Du hast vergessen SetPlayerInterior zu verwenden, bzw. das richtig Interior anzugeben.
-
Zeile 3:
if(player_car[playerid]) return //hier hat er schon ein auto!
Zu
if(player_car[0][playerid]) return //hier hat er schon ein auto!Außerdem bei OnPlayerDisconnect:
if(player_car[0][playerid])
{
DestroyVehicle(player_car[0][i]);
player_car[0][i]=0;
} -
Erste die eine Abfrage und danach die andere, oder was meinst du?
Für was willst du es denn verwenden? -
-
In diesem Fall setze dich mit deinem Host in Verbindung.
-
[19:18:34] CMySQLHandler::CMySQLHandler() - Connecting to "5.39.74.166" | DB: "samp5290_mvd" | Username: "samp5290" ...
[19:18:34] CMySQLHandler::Connect() - Can't connect to MySQL server on '5.39.74.166' (111) (Error ID: 2003)Entweder die Login-Daten sind falsch oder du hast keinen Zugriff auf die Datenbank (Server down oder keine Berechtigung).
-
Macht doch nichts. Poste einfach mal was der Log ausgibt, dann sehen wir weiter.
-
Lass dir die Koordinaten mal ausgeben, dann weißt du wo das Fahrzeug steht.
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
zu:
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
printf("Fahrzeug %d (Idx: %d) steht: %f / %f / %f", FactionCars[fc][fCarid], fc, FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2]); -
Schalte bitte den MySQL Debug Modus an und poste was im MySQL Log steht, wenn du den Server an machst.
Wie du das machst steht hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4) -
Klar, wenn diese Möglichkeit besteht wäre das natürlich die sinnvollste Variante hinsichtlich dem Ressourcenverbrauch.
-
Naja, übertreiben solltest du es nicht, weil du bedenken musst, dass der Speicher dafür reserviert wird, die amx Datei größer wird und der Compiler länger braucht zum kompilieren.
Das Limit ist also abhängig von den Ressourcen.Angenommen du hast 10 Registrationen pro Tag auf deinem Server, dann reichen 10000 für die nächsten drei Jahre. Erst dann müsstest du es erhöhen. Ich, an deiner Stelle, würde es auf 1000 lassen und beobachten wie viele Spieler pro Tag dazu kommen. Entsprechend kannst du es dann anpassen.
-
Ok, dann ändere das zu:
public DestroyAndCreateFactionCar(fc)
{
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
{
DestroyVehicle(FactionCars[fc][fCarid]);
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
#if defined FACTION_CARS_TUNEABLE
if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0]))
{
for(new i=0; i<13; i++)
{
if(FactionCars[fc][fTuning][i] != 0)
{
AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][i]);
}
}
}
#endif
}
return true;
}Und OnVehicleDeath zu:
Function OnVehicleDeath(vehicleid)
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
for(new x = 0; x < MaxVeh; x++)
{
if(IsPlayerConnected(playerid) && Dtc_PlayerHaveCar[playerid][x])
{
if (vehicleid == PlayerCar[playerid][x][CarId])
{
DestroyVehicle(PlayerCar[playerid][x][CarId]);
PlayerCarSpawn(playerid,x);
}
}
}
}
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(vehicleid == FactionCars[fc][fCarid])
{
DestroyAndCreateFactionCar(fc);
break;
}
}
return 1;
} -
Du musst die Größe angeben, sonst geht es nicht richtig.
new PlayerGlobalName[1000][MAX_PLAYER_NAME];Die 1000 musst du gegebenenfalls erhöhen, wenn du mehr User hast.
-
Poste dann bitte die DestroyAndCreateFactionCar Funktion.
-
Die Nutzung von
PlayerGlobalName[PlayerInfo[playerid][pId]]
würde keinerlei Ladedauer haben, da es ja komplett im RAM steht.Du kannst also problemlos
format(string, sizeof(string), "Globaler Name: %s", PlayerGlobalName[PlayerInfo[playerid][pId]]);
nutzen.Wenn ich mir die Varianten so durchdenke, ist das wahrscheinlich sogar die beste Möglichkeit. Es kann halt sein, dass du etwas Verzögerung beim Server-Start hast.
-
Das ist auch keine so gute Idee, da du davon ausgehen musst, dass du vielleicht mal 100.000 registrierte Benutzer hast, und das würde doch ziemlich Speicher nutzen und auch etwas beim Laden dauern.
Kannst du zwar machen (funktioniert auch), ist aber ebenfalls nicht empfohlen.