Was funktioniert denn nicht?
Werden sie einfach nicht ausgeführt?
Habt ihrs schon versucht sie einfach zweimal hintereinander auszuführen? Oft muss die animlib erst geladen werden.
Was funktioniert denn nicht?
Werden sie einfach nicht ausgeführt?
Habt ihrs schon versucht sie einfach zweimal hintereinander auszuführen? Oft muss die animlib erst geladen werden.
Genau, zunno hat recht. Die pvars werden beim restart schon vorher zuruckgsetzt. Wie gesagt, musst du den account schon davor speichern und verhindern, dass der Account beim onplayerdisconnect nicht nochmal gespeichert wird.
Geh mit ner schleife alle Spieler durch und Speicher in ner variable jeden, dessen vehid gleich der des buses ist.
Danach berechnest du das Geld einfach so
Geld=personen*(10+random(91));
das is ja mal die schlechteste erklärung seit langem...
sollte ungefähr so aussehen:
das compilsd du dann, fügst die .amx in den filterscript-ordner ein.
Um das Filterscript zu laden gibt es mehrere möglichkeiten:
Sieht gut aus. Am besten einfach mal ausprobieren.
Am Handy eher schwer. Naja, vielleicht verstehst Dus ja.
Natürlich deklariwrst du erstmal ein globales Array.
new pfandflasche[2];
In dieses speicherst du dann deine pickupid rein, wenn du das pickup erstellst.
pfandflasche[0]=createpickup(....
pfandflasche[1]=createpickup
Im callback gehst du mit ner schleife dein gesamtes Array durch und prufst ob die pickupid in deinem Array enthalten ist.
For(new i=0; i<sizeof(pfandflaschen); i++) {
if(pickupid==pfandflaschen[i]) {
}
}
Is zwar Jetz extrem schlecht geschrieben, aber mehr mag ich am Handy auch ned schreiben...
Vielleicht checkst ja, wies im Grunde geht.
Nicht unbedingt aber wenn du das weiter ausbauen willst auf jeden Fall sinnvoll
Wenn du vor hast noch mehrere solche pickups zu erstellen, ware es auf jeden Fall übersichtlicher und einfacher, wenn auch ned Viel Ressourcensparender, die pickupids in nem array zu speichern und diese dann im calback entweder mit nem switch, oder direkt mit ner for-schleife abzufangen.
Das würde Dir bei richtiger anwendung und bei steugender quantitat viele Zeilen Script und auch arbeit ersparen.
Naja, beim Befehl ermittelst du, welches fahrzeug hinter deinem Fahrzeug steht. Dieses hängst du dann mit attachtrailertovehicle genauso wie einen Anhänger hinten an dein Fahrzeug dran.
Normalerweise vergleichst du in einer Anfrage, ob der inputtext mit dem gespeicherten Passwort übereinstimmt. Strcmp gibt auch 0 zurück, wenn einer der strings leer ist. Du musst also noch && strlen(inputtext) einfügen
Das hat Kalcor schon ganz gut gemacht.
Kommt nämlich irgendjemand auf die Idee mittendrin ein Textdraw zu machen, kann man nichtmehr auf die Scorelist zugreifen, weil das textdraw sie überlagert.
kommt denn überhaupt der Gametext?
Wenn ja, was macht diese Funktion, bzw variable:
fLockCar(FactionCars[fc][fCarid]);
FactionCars[fc][fLock] = true;
und 14=20
//so, hab die Lösung: Auenland
Du rechnest die Zahlen durchs hexadezimal system um. = {12, 7, 3, 28, 20, 12, 28, 14}
Das Alphabet des Informatikers geht von q-m, von links oben nach rechts unten. ä, ö und ü werden mitgezählt.
Zählst du alle Zahlen nacheinander aus, kommst du schließlich auf auenland
Ist ganz nützlich den text genau zu analysieren, dann kommt man ganz gut drauf
Das hexadezimalsystem ist ein zahlensystem, bei dem jede Ziffer von 0-15 geht. Das es für die Zahlen von 10-15 keine Ziffern gibt, werden diese Ziffern mit a-f dargestellt. Dadurch, dass in deinem Code zahlen und Buchstaben bis f vorkommen könnte man darauf schließen, dass man die zeichen mit dem hexadezimalsystem übersetzen muss. dann hat man dezimalzahlen. was man dann damit anfängt is die nachste Frage.
Schlechte Idee. Sonst vergisst man die variable... Und da sie kein stock is, vermüllt sie das script...
So... natürlich kannst du das immer weiter fortführen. Wenn du mehr gates hast, eben immer weiter machen...
Nachteil dabei ist, dass im moment nicht gespeichert wird, ob das tor offen oder zu ist. Daher wird es wenn einer länger im Bereich des Tors ist auch öfter aufgemacht und dass es ansonsten dauernd zugemacht wird, was du zwar ingame nicht merkst, was sich aber auf die performance auswirkt.
Dem könntest du entgegenwirken, indem du globale bools erstellst, die den status des gates speichern und diese dann vor moveobject nochmal abfragen.
Bei OnGameModeInit();
SetTimer("updateGates", 1500, true);
forward updateGates();
public updateGates()
{
new bool:gate1;
new bool:gate2;
for(new i=0; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
if(!PlayerInfo[i][pFlyLic]) continue;
if(IsPlayerInRangeOfPoint(playerid, 20.0, GATE1_POS)) gate1=true;
if(IsPlayerInRangeOfPoint(playerid, 20.0, GATE2_POS)) gate2=true;
}
if(gate1) MoveObject(gate1, ....); //aufmachen
else MoveObject(gate1, ....) //schliesen
if(gate2) MoveObject(gate2, ....); //aufmachen
else MoveObject(gate2, ....) //schliesen
}
Alles anzeigen
Naja, du könntest mal probieren ob das funktioniert, dass wenn die Kamera auf halber Strecke ist(maximale gescheindigkeit), dass du sie dann schon zum nächsten Punkt losfliegen lässt.
Schreib eine Funktion, die per Timer regelmäßig aufgerufen wird. In der Funktion eine schleife die alle Spieler durchläuft. Natürlich musst du auch abfragen ob er ne Lizenz hat. Dann fragst du ab, ob der Spieler grade bei einem Tor steht, wenn ja setzt du einen bool in der Methode auf true. Nach der schleife öffnest Su das Tor wenn der Böll true ist und schließt du das Tor wenn der bool false ist.
Mhm ja ich hatte mir das irgendwie kompliziert aufgezeichnet, dann bin ich irgendwie aufn cosinus gekommen. Kann nicht so falsch gewesen sein, wenn nur das Vorzeichen falsch war.
Davor hatte ich das auch schonmal mitm tangens, hatte da aber irwie auch schon das Problem mit den Vorzeichen.
Naja, is ja wayne, nachdem ich deinen Code bisschen bearbeitet hatte hats dann alles problemlos funktioniert.
Danke