Wie schaut denn der Code nun bei dir aus?
Beiträge von Kinimod
-
-
for(new i= 0; i<MAX_VEHICLES; i++)
{
if(IsPlayerInRangeOfPoint(playerid,3,vPos[0],vPos[1],vPos[2])){
GetVehicleParamsEx(i,tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective);
if(tmp_doors==1){
tmp_doors= 0;
}else{
tmp_doors=1;
}
SetVehicleParamsEx(i,tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective);
SendClientMessage(playerid,blau,"Auto wurde abgeschlossen/aufgeschlossen");
break;
}
}So ist es korrekt.
Und du hast das "new " oben vor den Variablen vergessen (vor dem tmp_engine). -
Das wird so nicht funktionieren.
Das
GetVehicleParamsEx(i,tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective);
if(tmp_doors==1){
tmp_doors= 0;
}else{
tmp_doors=1;
}
SetVehicleParamsEx(i,tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective);
SendClientMessage(playerid,blau,"Auto wurde abgeschlossen/aufgeschlossen");
muss in die If Abfrage in der Schleife.
Und entfern oben die vID Variable, die wird nicht gebraucht. -
Ja, der Alarm geht, soweit ich weiß, an, sofern jemand gegen das Fahrzeug schlägt.
Habe das gerade nochmal selbst getestet und ich revidiere meine Aussage: Wenn du den Alarm einschaltest (ist halt so'n ganz normaler Hupalarm, wie du ihn aus dem Reallife kennst, ist er sofort an und nicht erst, wenn jemand gegen ihn schlägt.
Du kannst es also prima mit einem eigenen Diebstahlsystem verknüpfen, musst den Alarm damit nur manuell einschalten.Alles anzeigenaber ich könnte doch auch so wie ich es gemacht habe einfach nur
GetVehiclePos(i, vPos[0], vPos[1], vPos[2]);
if(IsPlayerInRangeOfPoint(playerid, 3, vPos[0], vPos[1], vPos[2])){
//Der Spieler ist an Fahrzeug mit der ID i und daher kann es abgeschlossen werden. Vorher muss natürlich noch die Legitimation, das Fahrzeug abzuschließen, geprüft werden.
break;machen in den ocmd befehl oder?
Du kannst das so in den Befehl machen, korrekt.
Du solltest natürlich die Abfrage entfernen, ob er Fahrer ist, da das ja dann keinen Sinn machen würde. -
Ja, der Alarm geht, soweit ich weiß, an, sofern jemand gegen das Fahrzeug schlägt.
Diebstahlalarm ist da vielleicht falsch ausgedrückt.
-
Geht das Motor/Lichtsystem auch einfacher als:
Du könntest die Variablen durch ein Array ersetzen, bspw.:new vehicleParams[7];
/*vehicleParams[0] könntest du dann z.B. für die Türen (ehemaliges tmp_engine) verwenden,
vehicleParams[1] könntest du dann z.B. für das Licht verwenden (ehemaliges tmp_lights),
etc.*/
Ansonsten wüsste ich nicht, wie man es simplifizieren könnte.Ich habe es zwar geschafft Auto abschlissen zu lassen nur die frage ist wie kann ich es auserhalb des Fahrzeuges machen?
Mit einer For Schleife.
Beispiel:
for(new i=0; i<MAX_VEHICLES; i++){
new Float:vPos[3];
GetVehiclePos(i, vPos[0], vPos[1], vPos[2]);
if(IsPlayerInRangeOfPoint(playerid, 3, vPos[0], vPos[1], vPos[2])){
//Der Spieler ist an Fahrzeug mit der ID i und daher kann es abgeschlossen werden. Vorher muss natürlich noch die Legitimation, das Fahrzeug abzuschließen, geprüft werden.
break;
}
}
Dieser Code iteriert durch jedes Fahrzeug und fragt dessen Position ab.
Anschließend wird abgefragt, ob der Spieler mindestens drei Einheiten von dieser Position entfernt ist. Wenn ja, kann das Fahrzeug (ID i) abgeschlossen oder aufgeschlossen werden und die Schleife muss abgebrochen werden (break).3Frage: Für was ist das alarm bei: SetVehicleParamsEx ?
für den Diebstahlalarm
-
Sagen wir mal es existieren folgende Variablen (wir kennen ja dein System nicht):
PHP//$premiumLevel = 2; //das soll die Variable darstellen, die das Premiumlevel des Spielers behinhaltet. $costs = array(5, 8, 12); //Der Preis, der pro Premiumlevel gezahlt werden muss.In dem Array "costs" befindet sich auf Index 0 eine 5, auf Index 1 eine 8 und auf Index 2 eine 12.
Also wäre der Preis:
Hab bitte Verständnis, habe seit einigen Monaten nicht mehr exzessiv mit PHP gearbeitet, aber das sollte so stimmen.
-
Bezugnehmend auf Rockys Post:
Breadfish = GTA Forum und trotzdem kann man die Origin und Steam ID angeben. Bei der SC ID passt es sogar noch zum Forenkonzept.
Darüber hinaus kann man das in wenigen Klicks anpassen.Was muss das Team bitte noch überzeugen?
-
Weil man den erfolgreichsten GTA MP Mod auch so einfach weitergibt...
Wenn mir nicht jemand zufällig reichlich Kohle dafür hinblättern würde, deren Menge sich noch zufälliger dazu geeignet sieht, meine Lebenshaltungskosten + Luxusgegenstände zu finanzieren, würde ich das auch nicht machen.
Bedenk immer, dass du nichts zahlst und im Umkehrschluss sowas auch nicht verlangen kannst.Zitatund es entwickelt sich zu einem Mod, den man aber und zu mal der Erinnerung wegen nutzt!

Lies dir den Post von Weasel bitte noch mal durch und denk bitte noch mal darüber nach, was du für 'nen (nett ausgedrückt) Quark produzierst. -
-
-
-
Es gibt ein Musikbotplugin für TS. Sofern du einen Windowsserver hast, kannst du den ja verwenden.
-
Ich muss sagen, dass es mir echt gefällt.
Es ist seriös gestaltet und die Farben korrespondieren auch miteinander.
-
Syno:
Korrekt, er macht etwas falsch. Es liegt aber nicht am Syntax, sondern an der Länge der Zeile.Er bekommt einen Error, weil die Zeile wohl zu lang ist, da ändert auch kein Zeilenumbruch im Script, wie du ihn etwa gemacht hast, etwas, weil der Compiler es dennoch als eine einzige Zeile erkennt. Ergo: Fehlermeldung "Input line too long"
Die einzigen Möglichkeiten bleiben da die von Jeffry (format()) und die von Kaliber (strcat()).
-
Sind die Checkpoints für jeden Spieler gleich?
-
Das kann ja so dann eigentlich nicht funktionieren für mehr als 2 Checkpoints
Korrekt, nur wofür braucht man das? Man kann pro Spieler nur einen einzigen Checkpoint gleichzeitig anzeigen lassen.
Du speicherst in diesem 2D Array ja nur die Position des aktuellen Checkpoints. -
@Mencent:
Manniac:
Danke, funktioniert prima (musste zwar noch etwas tricksen, weil INVALID_TEXT_DRAW keinen Text:Tag hat, aber jetzt funktioniert es._____________________________
Wie kann ich es jetzt machen, dass beim Betreten des Checkpoints ein 2 erstellt wird usw.. ?
Mach einfach ein globales Array:
enum CHECKPOINT_ARRAY_INFO{
Float:_x,
Float:_y,
Float:_z
};
new currentCheckpoint[MAX_PLAYERS] [CHECKPOINT_ARRAY_INFO];Da speicherst du dann immer bei einem CreateCheckpoint() die Positionen (mach dir am Besten eine Funktion dafür, dann geht es einfacher).
Beispiel:
currentCheckpoint[playerid][_x] = x;Unter OnPlayerEnterCheckpoint() dann einfach:
if(IsPlayerInRangeOfPoint(playerid, 5, currentCheckpoint[playerid][_x], currentCheckpoint[playerid][_y], currentCheckpoint[playerid][_z])){
//Neuen Checkpoint erstellen
}Dann steht es ja für einen String mit einem Array von 2000
Ein String ist nichts Anderes als ein Array.
Es steht genaugenommen also nicht für ein Array, sondern es ist ein Array.Also tank[0] tank[1] tank[2] usw..
Du könntest in deinem Beispiel die Indizes von 0 bis 1999 verwenden. -
Hat jemand irgend 'ne Möglichkeit abzufragen, ob die Selektion eines Textdraws durch die ESC Taste abgebrochen wurde? Dieser Abbruch durch die ESC Taste ist leider von SAMP aus und ich würde gerne mit diesem Abbruch auch das zu selektierende Textdraw schließen. OnPlayerKeyStateChange() bringt nichts, da es, je nachdem ob das Callback seine Tage hat, entweder für die Taste ESC eine 0 zurückgibt oder den Keycode für die Alt Taste.
Danke im Voraus.
-
Weil ich einen so schlechten PC habe, der nichtmal San Andreas über 30 FPS schafft.

Naja, habe es eh auf der PS4, daher macht es nichts.