Filterscript wären eine Möglichkeit, aber du wärst begrenzt auf 16.
Als Alternative könntest du dich mit Hooking auseinandersetzten und auf Includes setzten.
Filterscript wären eine Möglichkeit, aber du wärst begrenzt auf 16.
Als Alternative könntest du dich mit Hooking auseinandersetzten und auf Includes setzten.
Hast du die common.rpf im Hauptverzeichnis von GTA ersetzt?
Hast du denn die libmysqlclient Datei?
Für die ganzen Baumfetischisten unter euch: WLRDBONSAIDAY
Bitte direkt nochmal an die Regelungen anpassen: Regeln für den Marktplatz
Moin,
wenn man sich mal deinen "Ablauf bevor der Account erstellt wird" anschaut, sieht man ja, dass die Variable tmpInfo[playerid][inputPassword] anscheinend nie befüllt wird.
Wann bzw. Wie speicherst du denn das eingegebene Input Password in die Variable?
Du kannst statt deiner eigenen Koordinaten die Koordinaten des Spieler direkt auslesen, dann sparst du dir einen Schritt. Sprich:
public static void AccountSpeichern(MyPlayer.MyPlayer myplayer)
{
MySqlCommand command = Connection.CreateCommand();
command.CommandText = "UPDATE accounts SET adminlevel=@adminlevel, geld=@geld, fraktion=@fraktion, rang=@rang, posx=@posx, posy=@posy, posz=@posz, posA=@posA WHERE id=@id";
command.Parameters.AddWithValue("@id", myplayer.SpielerID);
command.Parameters.AddWithValue("@adminlevel", myplayer.Adminlevel);
command.Parameters.AddWithValue("@geld", myplayer.Geld);
command.Parameters.AddWithValue("@fraktion", myplayer.Fraktion);
command.Parameters.AddWithValue("@rang", myplayer.Rang);
command.Parameters.AddWithValue("@posx", myplayer.Position.X);
command.Parameters.AddWithValue("@posy", myplayer.Position.Y);
command.Parameters.AddWithValue("@posz", myplayer.Position.Z);
command.Parameters.AddWithValue("@posA", myplayer.Rotation.Yaw);
command.ExecuteNonQuery();
Connection.Close();
}
Alles anzeigen
Und so kannst du beim Laden den Spieler direkt dort Spawnen lassen (oder hinteleportieren, je nachdem wie du willst)
Woran machst du es fest, dass es nicht richtig geladen wird?
Spawnst du den spieler denn auch an den Koordinaten?
Ich finde eher, dass man an dem Beispiel sieht (abgesehen von der nicht sonderlich aussagekräftigen Eingabe), dass man doch noch einiges selbst machen muss.
Nicht nur, dass hier Funktionen, etc. verwendet werden, die nicht existieren, sondern auch das grundsätzliche "Schranken" kommen hier nicht vor.
Auch die Logik finde ich fragwürdig
Das kannst du dir sparen, true = 1 und false = 0, somit ist das nicht nötig
or(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
if(fracVehicle[i][e_vID] == 0)
{
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
fracVehicle[i][e_modelID] = model;
fracVehicle[i][e_x] = x;
fracVehicle[i][e_y] = y;
fracVehicle[i][e_z] = z;
fracVehicle[i][e_a] = a;
fracVehicle[i][e_color1] = color1;
fracVehicle[i][e_color2] = color2;
fracVehicle[i][e_fracID] = fID;
fracVehicle[i][e_rank] = rID;
fracVehicle[i][e_horn] = horn;
Alles anzeigen
Wenn ein Wert ein bool-Wert sein soll, musst du dies auch so deklarieren.
Soll heißen
enum fracVehEnum
{
e_modelID,
Float:e_x,
Float:e_y,
Float:e_z,
Float:e_a,
e_color1,
e_color2,
bool:e_horn, // Ich nehme mal an, dass dieser Wert das Problem ist. Hier kannst du das "bool:" angeben, es funktioniert genau so wie die Float-Werte, wichtig hier ist nur, dass es kleingeschrieben wird
e_fracID,
e_vID,
e_rank
};
new fracVehicle[MAX_FRAC_VEHICLES][fracVehEnum];
Alles anzeigen
bzw das man ihn per script endgleisen lässt
Es gibt keine "Entgleisen" Funktion, du könntest natürlich aber die Geschwindigkeit abfragen und den Zug ab einer gewissen Geschwindigkeit löschen und mit Objekten neben dem Gleis arbeiten
Denkt immer daran, ein Backup zu machen. Damit ihr es nicht vergesst, hier ein Badge: WRLDBCKPDY
Was stört denn aktuell an dem vorhandenen Multigaming Bereich?
Und damit euch allen einen schönen Valentinstag: VLTND23
Vergebe
5x 1 Monat Breadfish Donator Codes
Ui, wie kommts?
Wie Views genau erstellt werden?
Dann würde ich dir vermutlich wirklich eine View empfehlen.
Dann hättest du deinen Code wieder kürzer und es in der View übersichtlich.
Es würde schon Methoden geben, indem du alles in eine "temporäre" Tabelle lädst und dort dann die Zeilen entfernst.
Aber wie wäre denn der Anwendungszweck, reicht vielleicht auch eine View?
Du meinst sowas wie "SELECT * FROM table WHERE..." ?