[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Hey,
Gibt es eine möglichkeit das man einen Trailer "Tank Trailer" per Command abkoppeln kann wen ja wie?
-
MuellPickup:
Versuchs mal so:
new Text3D:MuellPickup[sizeof(MuellPickups)];"Tank Trailer" per Command abkoppeln kann wen ja wie?
Einfach: [wiki]DetachTrailerFromVehicle[/wiki]?
-
Versuchs mal so:new Text3D:MuellPickup[sizeof(MuellPickups)];
Einfach: [wiki]DetachTrailerFromVehicle[/wiki]?
Habe ich mal gemacht aber er compeliert es nicht..
Code
Alles anzeigenocmd:abhängen(playerid,params[]) { new vehicleid = GetPlayerVehicleID(playerid); if(Spieler[playerid][pFraktion] != 13)return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION); if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsTrailerAttachedToVehicle(vehicleid)) { AttachTrailerToVehicle(GetVehicleTrailer(vehicleid), vehicleid); DetachTrailerFromVehicle(vehicleid); } else { SendClientMessage(playerid, COLOR_WHITE,"{AFAFAF}Du hast keinen Anhänger angekoppelt!"); } } return 1; }
-
-
AttachTrailerToVehicle(GetVehicleTrailer(vehicleid), vehicleid);
Das musst du entfernen, du willst den Anhänger ja nicht nochmal anhängen.
Wenn ein Fehler im Compiler auftritt, poste diesen.
-
Das könnte an 2 Möglichkeiten liegen.
1. Das ä im Command namen, mach da mal ein ae draus.
2. Falls es dann immer noch nicht compilt zeig mal wie du ERROR_FRAKTION definiert hast. Da können auch immer mal Fehler auftreten.
PS: Nur als Anmerkung, du musst den Trailer nicht nochmal attachen, um ihn dann zu detachen, das macht wenig Sinn
//Edit:
@Kaliber bringt leider nichts es kommen die selben Fehler aber statt 3 mal jetzt 7 Mal
Hast du sicher die neuste Streamer Version?
und zeig auch nochmal MuellPickups.
-
Habe es jetzt hinbekommen
Habe es einfach umbenannt:
new Text3D:MuellText[sizeof(MuellPickups)];if(IsValidDynamic3DTextLabel(MuellText[MuellSackSpawn[y]])) DestroyDynamic3DTextLabel(MuellText[MuellSackSpawn[y]]);
MuellText[MuellSackSpawn[y]] = CreateDynamic3DTextLabel("{FFFF6E}[Müllsack]{FFFFFF}\nBenutze LALT", FARBE_WEIS,MuellPickups[MuellSackSpawn[y]][0], MuellPickups[MuellSackSpawn[y]][1], MuellPickups[MuellSackSpawn[y]][2], 12.0); -
Moin,
2 Fragen
Wie bekomme ich einen unix timestamp ? (Beispiel Timestamp in die Datenbank für UCP später und script)
Und wie wandel ich einen unix timestamp in einen lesbaren Wert um ? (statt 12351403018 halt ein normales datum im Format DD/MM/YYYY)
Mit freundlichen Grüßen
XonarZ -
-
-
Wie bekomme ich einen unix timestamp ? (Beispiel Timestamp in die Datenbank für UCP später und script)
Und wie wandel ich einen unix timestamp in einen lesbaren Wert um ? (statt 12351403018 halt ein normales datum im Format DD/MM/YYYY)new timestamp = gettime();
Dann ist die Variable timestamp, der Unix Timestamp von der Sekunde, in dem die Funktion aufgerufen wurde.Du kannst das eigentlich garnicht umwandeln.
Du kannst stattdessen einfach [wiki]getdate[/wiki] verwenden, und auch in der Datenbank speichern.gibt es da Möglichkeiten?
Nein, das ist nicht möglich. Ohne die PWN kannst du das Script nicht neu compilen, dass heißt die neue Include Version kann dort nicht eingebunden werden.
-
Du kannst das eigentlich garnicht umwandeln.
Natürlich kann man das umwandeln, das sind doch schließlich nur Sekunden.
Gibt da eine Funktion die heißt mktime kannste ja mal googeln die wirste bestimmt irgendwo finden.
Oder wenn du schwere Geschütze auffahren magst: https://forum.sa-mp.com/showthread.php?t=294054
-
Und wie wandel ich einen unix timestamp in einen lesbaren Wert um ? (statt 12351403018 halt ein normales datum im Format DD/MM/YYYY)
Der einfachste Weg ist folgende kleine Include: https://forum.sa-mp.com/showthread.php?t=347605
Bitte den Hinweis auf der letzten Seite (Seite von mir beachten und einbauen.habe nur .amx Files aber die wurden anscheinend mit einer älteren Streamer Version compiliert aber möchte diese mit der neuen Streamer Version auf dem Server abspielen, gibt es da Möglichkeiten?
Das geht nicht, der Code muss mit der zum Plugin passenden Include kompiliert werden, da sich die Funktionen zum Teil unterscheiden.
-
@Jeffry Alles klar Danke
Andere frage, ich lese zum beispiel Positionen aus und an der Position wird ein Sphere erstellt, ist ein Spieler drin im Sphere kriegt er Nitro, Repair etc... Das Problem ist wenn 2 Spieler gleichzeit durch dieses Nitro fahren kriegt nur einer es.
Kann man das anders erstellen ohne das da ein Pickup geladen wird oder ein Objekt? Und das er es nur kriegt wenn er genau auf dieser Position ist und nicht mit einem Sphere beispiel von nen umkreis 5 meter? -
Kann man das anders erstellen ohne das da ein Pickup geladen wird oder ein Objekt?
Kannst du grundsätzlich schon machen, zum Beispiel mit einem Timer oder unter OnPlayerUpdate.
Wenn es nicht allzuviele Plätze sind, dann ist das kein Problem. Die Plätze speicherst du in einem globalen Array.Und das er es nur kriegt wenn er genau auf dieser Position ist und nicht mit einem Sphere beispiel von nen umkreis 5 meter?
Einen kleinen Umkreis musst du allerdings machen, da man nie exakt eine Position trifft. IsPlayerInRangeOfPoint mit z.B. 1m Umkreis.
Das Problem ist wenn 2 Spieler gleichzeit durch dieses Nitro fahren kriegt nur einer es.
Das passiert bei Timer/OnPlayerUpdate nicht.
-
Das Problem ist das es teilweise auch über 100 "Pickups geben kann" und habe halt angst wenn ich das für jeden Spieler bei OnPlayerUpdate abfrage also ob der Spieler da in diesen "Pickup" bzw range ist das es dem Server schadet, mit laggs oder abstürze.
-
Das sollte eigentlich kein Problem sein und auch keine Lags erzeugen, sind ja nur interne Funktionen und ein IsPlayerInRangeOfPoint Aufruf.
Wobei, warum willst du es eigentlich nicht mit Pickups machen?
-
Dann versuche ich das einfach mal, danke dir
Könnte man auch machen aber ich möchte halt das nur der 3DText zu sehen ist und kein Objekt, sowie das, dass "Pickup" nicht verschwindet wenn ein Spieler durch fährt etc... Habe halt kein Pickup type gefunden der diese Vorstellungen entspricht. Man kann es auch sicherlich ohne Objekt erstellen in dem man ein Unsichtbares benutzt aber ich weiß nicht...
-
kein Objekt
Du könntest es mit Model ID 19300 versuchen.
nicht verschwindet wenn ein Spieler durch fährt etc
Wenn es im Fahrzeug pickup-bar sein soll wird es schwierig, das kann wohl nur der Typ 14, der verschwindet aber.
Du könntest es natürlich direkt nach dem Pickup einmal destroyen und wieder erstellen.
https://wiki.sa-mp.com/wiki/PickupTypes -
Richtig, soll im Fahrzeug aufgenommen werden.
Du hast aber recht, mit dem destroyen und wieder erstellen. Obwohl man eigentlich drauf kommen sollte bin ich es nicht
Ich teste aber auf jeden Fall beide Varianten von Dir, ich bedanke mich