Mir schon klar, dass das nicht überall so ist...aber bei denen hier ist es mir aufgefallen:
- three.js
- Unity
- Godot
- Babylon.js
Ich wollte lediglich anmerken, dass ich es dumm finde, dass das nicht überall einheitlich ist 😅
Mir schon klar, dass das nicht überall so ist...aber bei denen hier ist es mir aufgefallen:
Ich wollte lediglich anmerken, dass ich es dumm finde, dass das nicht überall einheitlich ist 😅
Gibt es hier eigentlich noch das System von Mittelsmännern noch? Damals zu Kindzeiten einmal benutzt, dann laaaaaaaaaange hier in Inaktivität verfallen.
Nein. Aber wenn du Leute privat anschreibst, gibt sicher Leute, die dir helfen.
Was passiert dann?
Hast du die neuste OMP Version?
Gib mal den Wert aus, kommt dann der richtige Wert heraus?
Gibt es Hooks von GetPlayerHealth ggfs Anti-Cheat?
Crashdetect mal ausprobieren...
Achso, du nutzt kein OMP und nicht den neusten Compiler 😅
Dann lösch Zeile 8-12 von meinem Code...
Hattest du vorher was an den natives im Include geändert?
Die darfst du natürlich nicht anfassen.
👻
Das klingt sehr mysteriös...hast du Windows 10 oder Windows 11?
Hast du die Datei ggfs als auszublenden markiert? Über das Kontextmenü im Explorer könntest du versuchen versteckte Dateien einzublenden.
Bist du sicher, dass der Pfad stimmt und die Datei da liegt?
Wird die .amx in dem Ordner erstellt?
Erstell mal ein neues Skript und Kopiere nur den Inhalt um (nicht die Datei), geht es dann?
Mach das so und schon hast du das gleiche Ergebnis, ohne irgendwelche Includes bearbeiten oder Plugins recompilen zu müssen.
Nein, so funktioniert es nicht ganz, da SetDynamicObjectMaterialText durch das Makro auch in der Funktion überschrieben wird, somit hätten wir hier eine unendliche Rekursion und einen Parameter Fehler 😅
// Pack das in das Streamer Include ganz nach Unten
native __SetDynamicObjectMaterialText(STREAMER_TAG_OBJECT:objectid, materialindex, const text[], materialsize = OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0) = SetDynamicObjectMaterialText;
stock _SetDynamicObjectMaterialText(STREAMER_TAG_OBJECT:objectid, const text[], materialindex, materialsize = OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0)
{
return __SetDynamicObjectMaterialText(objectid, materialindex, text, materialsize, fontface, fontsize, bold, fontcolor, backcolor, textalignment);
}
#if defined _ALS_SetDynamicObjectMaterialText
#undef SetDynamicObjectMaterialText
#else
#define _ALS_SetDynamicObjectMaterialText
#endif
#define SetDynamicObjectMaterialText _SetDynamicObjectMaterialText
Alles anzeigen
Ganz ganz schlechte Idee, selbst die Plugins compilen zu wollen, wegen so einem Quatsch.
Am Einfachsten wäre n Makro, wo du die Funktion umbennenst und die Parameter tauschst oder du Hookst die Funktion und änderst da die Parameter Reihenfolge.
Ich kann später mal n Codebeispiel geben, wenn gewünscht, gerade aber unterwegs. (Kannst ja mal suchen, gibt hier viele Beispiele)
also das ist der auslöser dafür das er 2x mal durch läuft ?
Kann sein, ich kenne dein Skript ja nicht...
Du kannst ja mal überall wo SpawnPlayer aufgerufen wird ein Log setzen und TogglePlayerSpectating mal entfernen und dann im Log schauen, wie das so aussieht.
wo setze ich es denn dann anbesten hin
Ja, eig nur dahin, wo du willst, dass jmd aus dem Spectator Mode rausgeholt wird. Bei OnPlayerSpawn macht es auf jeden Fall keinen Sinn.
TogglePlayerSpectating(playerid, false);
Das sorgt auch dafür, dass OnPlayerSpawn aufgerufen wird
Wie sieht denn SetPlayerSpawn aus? Wo verwendest du noch überall TogglePlayerSpectating
Hier teile ich gerne mal mit dir, das gilt für jedes Problem unabhängig von SA:MP: Tipps: Scripting-Probleme richtig erklären
Code NIEMALS als Bild teilen, dafür gibt es extra BBCodes, lerne und nutze sie
Versuch es bitte erneut.
Wenn ich dich richtig verstehe, dann willst du das so:
$uids = [];
$pids = [];
$since = [];
while ($row = $exec->fetch(PDO::FETCH_OBJ)) {
$uids[] = $row->UID;
$pids[] = $row->PID;
$since[] = $row->Since;
}
$json = [
'uids' => implode(', ', $uids),
'pids' => implode(', ', $pids),
'since' => implode(', ', $since)
];
echo json_encode($json);
Alles anzeigen
Aber nur als Info:
Hier wären weitere Infos von Vorteil...
Ja, ich hatte so einen Fehler tatsächlich auch mal festgestellt...
Lieber die nativen Funktionen nutzen, wie CreatePickup oder CreatePlayerPickup. Glaube seit OMP ist da was durcheinander gekommen.