...ich tippe darauf, dass du diesen Thread und ein anderen Thread gleichzeitig offen hattest, und die Threads verwechselt hast. Hab' ich recht?
Wahrscheinlich eine Seite weiter vorne.
...ich tippe darauf, dass du diesen Thread und ein anderen Thread gleichzeitig offen hattest, und die Threads verwechselt hast. Hab' ich recht?
Wahrscheinlich eine Seite weiter vorne.
new PlayerCount;
#define ForAll(%0) for(new %0, _ForAllCount_%0; _ForAllCount_%0 < PlayerCount+1 && %0 < MAX_PLAYERS && _ForAllCount_%0 < MAX_PLAYERS; %0++)
public OnPlayerConnect(playerid) { PlayerCount++; }
public OnPlayerDisconnect(playerid, reason) { PlayerCount--; }Zählt wie bekannte ForAll's alle Spieler durch.
Aber:
Wenn z.b. 10 Spieler auf 500 maximalen Slots sind, wird die for-Schleife nur 10 mal ausgeführt, also nur, bis auch alle 10 Spieler bearbeitet wurden. Der Rest wird ignoriert und spart damit Zeit + Leistung.
Die jeweilige Bearbeitung von PlayerCount in OnPlayer(Dis-)Connect macht die ständige Verwendung einer weiteren Schleife, um die verbundenen Spieler zu zählen, unnötig.
Wenn der schon formatiert ist, besteht wenig Hoffnung.
Das hat's wirklich gelöst? :o
Ist dann aber eher ein Fehler im Compiler, da man ja eigentlich nach Lust und Laune die Arrays auf Unendlich stehen lassen kann ...
Die Nummernschildstrings sind leer, daher kommt nix.
Ist, wenn man genau nachdenkt, unpraktisch. Geht jedes Mal alle Spielerslots (bzw 0 - MAX_PLAYERS) durch und verbraucht unnötige Leistung.
Mit meiner Methode zählt man einfach bequem in Einzelschritten mit und braucht keine lastige Schleife.
Aber muss ja am Ende Bloodangel entscheiden.
Zeile 66 new string weg machen. Is doppelt.
Create3DTextLabel("Hier ist jemand gestorben",COLOR_BLACK,x,y,z,40.0,0);}
Die Klammer weg.
Ich glaub die werden dann immernoch erstellt, aber nicht mehr vom Script bzw SA:MP richtig erkannt.
Nimm einfach MAX_VEHICLES
Wie wärs mit Brainfuck?
Zitat von WikipediaAlles anzeigen++++++++[>++++++++<-]>[-<++>]<-----
>[-]++++++++[>[-]<[->+<]>-]<<<<<<<<<
[->+<]>[>+<-<+>]>[>>>>>[->+<]>+<<<<<
++++++++++<[->>+<-[>>>]>[[<+>-]>+>>]
<<<<<]>[-]>[-<<+>>]>[-<<+>>]<<]>>>>>
[<<<<+++++++[-<+++++++>]<-[<+>-]<.[-
]>>>>>>[-<+>]<-]<<<<<<<
Nein, wirklich. C-Sprachen und, wenn du evtl. auch Websites möchtest, PHP sind so die einfachsten, mit denen man auch anfangen sollte/könnte.
Wenn man da die Grundkenntnisse raus hat, sind die anderen, wie wenn du spanisch kannst und italienisch lernst
Normalerweise dürfte sich da an nextcarID nichts ändern.
new PlayerCount, LastConnected;
public OnPlayerConnect(playerid)
{
if(!IsPlayerNPC(playerid)) { PlayerCount++; LastConnected = playerid; }
}
public OnPlayerDisconnect(playerid, reason)
{
if(!IsPlayerNPC(playerid)) { PlayerCount--; }
}
Liegt nicht am Programm. Genauer gesagt liegen die Fehler immer an dem, der 20cm vorm Bildschirm sitzt.
Aber hier bin ich auch am Ende. Keine Ahnung was das soll ...
und genau das ist das, was mich oben stutzig machte. Die Variablen haben im direkten Sinne nichts miteinander zu tun ...
Nimm doch mal die ZeileVehicle[nextcarID][modelid] = dini_Int(Autodatei,"modelid");raus und guck nach ob sich newcarID immernoch ändert.
Nene, das kanns noch schlimmer machen.
Hilft in dem Fall auch nicht wirklich, da ist wohl was innerhalb der Funktionen.
Hast du das dini System abgeändert oder so gelassen wie es ist?
Nee, das hilft nicht wirklich ..
Ich hatte jetzt eher an eine Vereinfachung per #define gedacht, hab ich auch mal gemacht ...
Zeig mal das enum vehicle_daten
Also mir kommts ein bisschen so vor, als wär Vehicle[][] per #define gesetzt. Stimmt das?
Ist nämlich sehr merkwürdig, das gerade beiVehicle[nextcarID][modelid]wo die beiden "Variablen" newcarID und modelid zusammenstehen sich das ändern soll.
Ist für mich im Moment das einzige halbwegs logische. Ich denke nicht, dass es am dini System liegt.
Überprüf doch mal nachdini_IntSet(extraini,"GesamtCars",nextcarID);die Variable nextcarID.printf("%d", nextcarID);
Rechts