Kaliber: Ja bitte mit dem Code ^^.
Sollte eigentlich kein Wettbewerb werden, wollte das nur wissen,
glaube dir das auch so, wenn du mir das erklärst.
Ja DobbleLoop = Schleife in Schleife^^
L.G.
Kaliber: Ja bitte mit dem Code ^^.
Sollte eigentlich kein Wettbewerb werden, wollte das nur wissen,
glaube dir das auch so, wenn du mir das erklärst.
Ja DobbleLoop = Schleife in Schleife^^
L.G.
Saubere Arbeit :handup:
Tom Sunder: Google das einfach, dann findeste es
So sollte es klappen (ungetestet):
Das musst du mir erklären
Ist das nicht kontraproduktiv, wenn du eine DobbleLoop machst?
Es würde doch schneller mit meiner Methode gehen... oder nicht?
Du deklarierst 'i' global für beide Schleifen, so zählt er einfach weiter.
Zudem machst du unnötig viele Abfragen.
Wenn jemand nicht online, eingeloggt oder sonst etwas ist, dann sitzt er auch nicht in einem Auto.
-> IsPlayerInAnyVehicle.
Ich hatte dir bereits ein beispiel gemacht
new bool:unwanted[...];
for(new i; i<GetMaxPlayers; i++) if(IsPlayerInAnyVehicle(i)) { unwanted[GetPlayerVehicleID(i)]=true; }
for(new car; car < ...; car++) if(!unwanted[car]) SetVehicleToRespawn(car);
Aktuell Funktioniert es immer noch nicht.
Wenn du Beiträge komplett ignorierst, kann man dir auch nicht helfen...
L.G.
Zeig mal bitte, wie du "PlayerVehicleInfo" deklarierst.
L.G.
is das ne neue funktion bei samp? kenn ich noch nicht.
Die Deklaration aus deinem Code (beziehe mich auf MAX_PLAYERS) ist total unnötig.
Zudem verwendest du unnötig viele Klammern und keine booleans.
Und nein unwanted ist keine Funktion. ("new bool:unwanted[...];")
Also wird es wohl eine Variable sein, genauer eine Array.
Im Grunde genommen ist...
if(!unwanted[car])
das Gleiche, wie
if(unwanted[car] == false)
(! bedeutet immer "alles außer")
Kannste dir so vorstellen.:
if(unwanted[car])
if(unwanted[car] == true)
Jetzt schreiben wir oben aber sozusagen, "alles außer true", also false.
Wie wir wissen ist 0 das gleiche, wie false.
L.G.
Du machst eine Schleife und gibst die maximalen Spieler an?
Du willst doch die Autos respawnen?
new bool:unwanted[...];
for(new i; i<GetMaxPlayers; i++) if(IsPlayerInAnyVehicle(i)) { unwanted[GetPlayerVehicleID(i)]=true; }
for(new car; car < ...; car++) if(!unwanted[car]) SetVehicleToRespawn(car);
L.G.
proudshout
allerdings noch etwas zu lang.
Also man sucht sich ja kurze Namen mit dem Ziel aus, dass man es sich einfach merken kann.
Das entfällt aber, wenn der Name sich reimt. Ich finde, dann kann man sich den besser merken ^^.
Gute Idee
Danke, genannte Verbesserungen werden bald hinzugefügt/korrigiert.
L.G.
Ist ein Mensch stark von seiner Überzeugung überzeugt, kann man schlecht mit ihm darüber reden.
Ich finde schon immer mit stark religiösen Leuten kann man nicht über das reden
Dass du dich angegriffen gefühlt hast tut mir leid.
Trotzdem spiegelt deine Aussage meine fast genauso wieder?
L.G.
SetSpawnInfo / SetPlayerPos nachgucken.
Wird sich dann wohl klären (AddPlayerClass kann auch möglich sein)
kann es zu einem Array out of Bounds bzw. Buffer underflow (negativer Wert) kommen.
Werde ich beheben.
Zum Thema splitten: Kann man machen, muss man aber nicht...
L.G.
//Edit:
Video hinzugefügt!
Vorab, ich habe nichts gegen religöse Leute o.ä.
weshalb diese dann nicht mit dir darüber reden wollen.
Lesen bildet.
Hättest du alles gelesen, was man schon deinem Beitrag entnehme kann, dass du es nicht gemacht hast,
wüsstest du, dass er keinerlei Gründe für sein Verhalten aufweißt.
Jetzt frage ich dich allerdings, was machst du bitte?
Vielleicht war das ein bisschen hart gegriffen, aber meine Erfahrungen damit sind immer schlecht.
Ich meinte das auch mehr im Bezug mit Religion.
Ist ein Mensch stark von seiner Religion überzeugt, kann man nicht darüber reden, was hier auch noch einmal deutlich gemacht wird.
(Vgl. das ganze mit Firmen und deren Chefs)
Meine Meinung ist in diesem Fall meine Erfahrung und ich möchte gerne nicht weiter darüber diskutieren.
L.G.
Könntest du das Filterscript mal auf pastebin.com hochladen?
Filterscript in die cfg eingetragen?
Wenn ja kommt eine Fehlermeldung im Log?
Ja das ist möglich, aber an deiner Stelle würde ich mit einem Include arbeiten,
weil du dann mit den Autos auch im Script arbeiten kannst.
Entweder du hookst OnGamemodeInit oder lässt einfach eine Funktion aufrufen.
Setzt den Bot nicht beim Connecten sondern beim spawnen. (OnPlayerSpawn)
Zum temporären disconnecten, verwende mal das Plugin crashdetect. (mit der pawn.cfg)
L.G.
Guck mal im Callback OnPlayerSpawn nach. (und nein, du sendest uns nicht alles ^^)
Ich kenne leider das Script nicht... Du kannst ja mal nach Messages suchen und dann den Kontext mit senden.
Aber wieso machst du dir den Anfang so schwer?
Fang doch mit etwas leichterem an. http://wiki.sa-mp.com/wiki/Scripting_Basics_DE, http://wiki.sa-mp.com/wiki/Scripting_Basics
Trotzdem: learning by doing!
new id = playerid; <- Muss ganz hoch richtig?
Nein, denn playerid ist nur ein Varialenname, der in den Standard-Callbacks so heißt.
Sprich, du deklarierst die Variable oben und weißt ihr im Context dann den Wert zu.
Aber das Problem hierbei ist, wenn noch einer ein Ticket absendet, hat die Variable den Wert und nicht, von dem davor.
Deswegen würde ich an deiner Stelle mit Arrays arbeiten.
Den Namen würde ich auch auf einer Array speichern (nicht die gleiche), die du beim connecten dann darauf formatierst.
So kannst du dann über den Index der Spielerid den Namen herrausfinden. Beispiel mit Array "PlayerInfo"
GetPlayerName(playerid,PlayerInfo[playerid][Name],24);
Unklarheiten bitte melden
L.G.